@qooxdoo/framework 7.0.0-beta.1 → 7.0.0-beta.10

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 (1599) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/Manifest.json +2 -2
  3. package/README.md +9 -3
  4. package/bin/deploy/qx +0 -0
  5. package/lib/compiler/compile-info.json +45 -44
  6. package/lib/compiler/index.js +6600 -11001
  7. package/lib/resource/qx/tool/cli/templates/loader/loader-node.tmpl.js +3 -1
  8. package/lib/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css +1 -1
  9. package/lib/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css.map +1 -1
  10. package/lib/resource/qx/tool/cli/templates/template_vars.js +1 -1
  11. package/lib/resource/qx/tool/loadsass.js +16 -21
  12. package/lib/resource/qx/tool/schema/Manifest-1-0-0.json +1 -2
  13. package/lib/resource/qx/tool/schema/Manifest-2-0-0.json +1 -2
  14. package/lib/resource/qx/tool/schema/compile-1-0-0.json +16 -20
  15. package/lib/resource/qx/tool/website/build/assets/bluebird.min.js +4593 -9
  16. package/lib/resource/qx/tool/website/build/assets/buttons.js +391 -1
  17. package/lib/resource/qx/tool/website/build/assets/fontawesome-all.js +8963 -1
  18. package/lib/resource/qx/tool/website/build/assets/jquery.js +5452 -3
  19. package/lib/resource/qx/tool/website/build/diagnostics/dependson.js +31 -31
  20. package/lib/resource/qx/tool/website/build/diagnostics/requiredby.js +32 -36
  21. package/lib/resource/qx/tool/website/build/scripts/serve.js +87 -66
  22. package/lib/resource/qx/tool/website/src/assets/bluebird.min.js +4593 -9
  23. package/lib/resource/qx/tool/website/src/assets/buttons.js +391 -1
  24. package/lib/resource/qx/tool/website/src/assets/fontawesome-all.js +8963 -1
  25. package/lib/resource/qx/tool/website/src/assets/jquery.js +5452 -3
  26. package/lib/resource/qx/tool/website/src/diagnostics/dependson.js +31 -31
  27. package/lib/resource/qx/tool/website/src/diagnostics/requiredby.js +32 -36
  28. package/lib/resource/qx/tool/website/src/scripts/serve.js +87 -66
  29. package/npm-shrinkwrap.json +7293 -0
  30. package/package.json +29 -14
  31. package/source/class/q.js +4 -2
  32. package/source/class/qx/Annotation.js +48 -57
  33. package/source/class/qx/Bootstrap.js +206 -207
  34. package/source/class/qx/Class.js +602 -504
  35. package/source/class/qx/Interface.js +169 -137
  36. package/source/class/qx/Mixin.js +162 -120
  37. package/source/class/qx/Part.js +48 -77
  38. package/source/class/qx/Promise.js +5891 -4655
  39. package/source/class/qx/Theme.js +200 -134
  40. package/source/class/qx/__init__.js +8 -8
  41. package/source/class/qx/application/AbstractGui.js +20 -32
  42. package/source/class/qx/application/Basic.js +9 -18
  43. package/source/class/qx/application/IApplication.js +6 -10
  44. package/source/class/qx/application/Inline.js +4 -7
  45. package/source/class/qx/application/Mobile.js +22 -45
  46. package/source/class/qx/application/Native.js +8 -19
  47. package/source/class/qx/application/Routing.js +88 -114
  48. package/source/class/qx/application/Standalone.js +4 -9
  49. package/source/class/qx/application/__init__.js +1 -1
  50. package/source/class/qx/bom/AnimationFrame.js +26 -25
  51. package/source/class/qx/bom/Blocker.js +92 -100
  52. package/source/class/qx/bom/Cookie.js +18 -22
  53. package/source/class/qx/bom/Document.js +24 -31
  54. package/source/class/qx/bom/Element.js +65 -51
  55. package/source/class/qx/bom/Event.js +68 -78
  56. package/source/class/qx/bom/FileReader.js +110 -115
  57. package/source/class/qx/bom/Font.js +82 -122
  58. package/source/class/qx/bom/FullScreen.js +32 -41
  59. package/source/class/qx/bom/GeoLocation.js +39 -44
  60. package/source/class/qx/bom/HashHistory.js +58 -64
  61. package/source/class/qx/bom/History.js +61 -89
  62. package/source/class/qx/bom/Html.js +75 -71
  63. package/source/class/qx/bom/IdleCallback.js +20 -23
  64. package/source/class/qx/bom/Iframe.js +37 -69
  65. package/source/class/qx/bom/IframeHistory.js +83 -88
  66. package/source/class/qx/bom/Input.js +50 -66
  67. package/source/class/qx/bom/Label.js +65 -86
  68. package/source/class/qx/bom/Lifecycle.js +7 -9
  69. package/source/class/qx/bom/MediaQuery.js +324 -307
  70. package/source/class/qx/bom/NativeHistory.js +51 -46
  71. package/source/class/qx/bom/Notification.js +41 -47
  72. package/source/class/qx/bom/PageVisibility.js +19 -25
  73. package/source/class/qx/bom/Range.js +20 -30
  74. package/source/class/qx/bom/Selection.js +163 -172
  75. package/source/class/qx/bom/Selector.js +2401 -2181
  76. package/source/class/qx/bom/Shortcut.js +103 -129
  77. package/source/class/qx/bom/Storage.js +9 -8
  78. package/source/class/qx/bom/String.js +285 -290
  79. package/source/class/qx/bom/Style.js +30 -31
  80. package/source/class/qx/bom/Stylesheet.js +36 -60
  81. package/source/class/qx/bom/Template.js +730 -657
  82. package/source/class/qx/bom/Viewport.js +40 -46
  83. package/source/class/qx/bom/Vml.js +43 -28
  84. package/source/class/qx/bom/WebWorker.js +61 -50
  85. package/source/class/qx/bom/Window.js +88 -105
  86. package/source/class/qx/bom/__init__.js +11 -11
  87. package/source/class/qx/bom/client/Browser.js +45 -47
  88. package/source/class/qx/bom/client/Css.js +85 -85
  89. package/source/class/qx/bom/client/CssAnimation.js +41 -49
  90. package/source/class/qx/bom/client/CssTransform.js +21 -29
  91. package/source/class/qx/bom/client/CssTransition.js +9 -12
  92. package/source/class/qx/bom/client/Device.js +45 -45
  93. package/source/class/qx/bom/client/EcmaScript.js +153 -96
  94. package/source/class/qx/bom/client/Engine.js +38 -35
  95. package/source/class/qx/bom/client/Event.js +75 -63
  96. package/source/class/qx/bom/client/Html.js +97 -97
  97. package/source/class/qx/bom/client/Idle.js +4 -6
  98. package/source/class/qx/bom/client/Locale.js +15 -15
  99. package/source/class/qx/bom/client/OperatingSystem.js +89 -106
  100. package/source/class/qx/bom/client/Pdfjs.js +1364 -1067
  101. package/source/class/qx/bom/client/PhoneGap.js +6 -9
  102. package/source/class/qx/bom/client/Plugin.js +93 -97
  103. package/source/class/qx/bom/client/Runtime.js +14 -12
  104. package/source/class/qx/bom/client/Scroll.js +20 -16
  105. package/source/class/qx/bom/client/Stylesheet.js +44 -32
  106. package/source/class/qx/bom/client/Transport.js +38 -41
  107. package/source/class/qx/bom/client/Xml.js +39 -41
  108. package/source/class/qx/bom/client/__init__.js +4 -4
  109. package/source/class/qx/bom/element/Animation.js +15 -12
  110. package/source/class/qx/bom/element/AnimationCss.js +95 -64
  111. package/source/class/qx/bom/element/AnimationHandle.js +22 -29
  112. package/source/class/qx/bom/element/AnimationJs.js +94 -71
  113. package/source/class/qx/bom/element/Attribute.js +119 -134
  114. package/source/class/qx/bom/element/Background.js +35 -35
  115. package/source/class/qx/bom/element/BoxSizing.js +43 -44
  116. package/source/class/qx/bom/element/Class.js +50 -72
  117. package/source/class/qx/bom/element/Clip.js +36 -60
  118. package/source/class/qx/bom/element/Cursor.js +13 -20
  119. package/source/class/qx/bom/element/Dataset.js +33 -31
  120. package/source/class/qx/bom/element/Decoration.js +178 -168
  121. package/source/class/qx/bom/element/Dimension.js +78 -60
  122. package/source/class/qx/bom/element/Location.js +87 -94
  123. package/source/class/qx/bom/element/Opacity.js +42 -44
  124. package/source/class/qx/bom/element/Scroll.js +78 -88
  125. package/source/class/qx/bom/element/Style.js +61 -101
  126. package/source/class/qx/bom/element/Transform.js +38 -56
  127. package/source/class/qx/bom/element/__init__.js +4 -4
  128. package/source/class/qx/bom/media/Abstract.js +136 -143
  129. package/source/class/qx/bom/media/Audio.js +7 -12
  130. package/source/class/qx/bom/media/Video.js +15 -27
  131. package/source/class/qx/bom/request/IRequest.js +18 -21
  132. package/source/class/qx/bom/request/Jsonp.js +34 -39
  133. package/source/class/qx/bom/request/Script.js +94 -90
  134. package/source/class/qx/bom/request/SimpleXhr.js +111 -79
  135. package/source/class/qx/bom/request/Xhr.js +196 -143
  136. package/source/class/qx/bom/request/__init__.js +1 -1
  137. package/source/class/qx/bom/rest/Resource.js +269 -203
  138. package/source/class/qx/bom/storage/Memory.js +18 -29
  139. package/source/class/qx/bom/storage/UserData.js +28 -35
  140. package/source/class/qx/bom/storage/Web.js +19 -30
  141. package/source/class/qx/bom/webfonts/Manager.js +199 -130
  142. package/source/class/qx/bom/webfonts/Validator.js +84 -118
  143. package/source/class/qx/bom/webfonts/WebFont.js +24 -28
  144. package/source/class/qx/bom/webfonts/__init__.js +1 -1
  145. package/source/class/qx/core/Aspect.js +15 -22
  146. package/source/class/qx/core/Assert.js +391 -333
  147. package/source/class/qx/core/AssertionError.js +6 -15
  148. package/source/class/qx/core/BaseInit.js +25 -28
  149. package/source/class/qx/core/Environment.js +72 -86
  150. package/source/class/qx/core/GlobalError.js +12 -20
  151. package/source/class/qx/core/IDisposable.js +6 -9
  152. package/source/class/qx/core/Id.js +25 -15
  153. package/source/class/qx/core/Init.js +20 -20
  154. package/source/class/qx/core/MAssert.js +54 -97
  155. package/source/class/qx/core/MBindTo.js +10 -14
  156. package/source/class/qx/core/MEvent.js +76 -65
  157. package/source/class/qx/core/MLogging.js +9 -18
  158. package/source/class/qx/core/MObjectId.js +104 -65
  159. package/source/class/qx/core/MProperty.js +18 -34
  160. package/source/class/qx/core/Object.js +93 -122
  161. package/source/class/qx/core/ObjectRegistry.js +58 -81
  162. package/source/class/qx/core/Property.js +974 -780
  163. package/source/class/qx/core/ValidationError.js +3 -4
  164. package/source/class/qx/core/WindowError.js +13 -24
  165. package/source/class/qx/core/Wrapper.js +8 -9
  166. package/source/class/qx/data/Array.js +178 -191
  167. package/source/class/qx/data/Conversion.js +11 -18
  168. package/source/class/qx/data/IListData.js +11 -20
  169. package/source/class/qx/data/MBinding.js +31 -26
  170. package/source/class/qx/data/SingleValueBinding.js +491 -225
  171. package/source/class/qx/data/__init__.js +1 -1
  172. package/source/class/qx/data/controller/CheckedList.js +82 -54
  173. package/source/class/qx/data/controller/Form.js +81 -69
  174. package/source/class/qx/data/controller/IControllerDelegate.js +7 -12
  175. package/source/class/qx/data/controller/ISelection.js +6 -10
  176. package/source/class/qx/data/controller/List.js +151 -167
  177. package/source/class/qx/data/controller/MSelection.js +53 -72
  178. package/source/class/qx/data/controller/Object.js +106 -77
  179. package/source/class/qx/data/controller/Tree.js +164 -142
  180. package/source/class/qx/data/controller/__init__.js +1 -1
  181. package/source/class/qx/data/controller/website/List.js +34 -43
  182. package/source/class/qx/data/controller/website/__init__.js +2 -2
  183. package/source/class/qx/data/marshal/IMarshaler.js +4 -7
  184. package/source/class/qx/data/marshal/IMarshalerDelegate.js +10 -18
  185. package/source/class/qx/data/marshal/Json.js +112 -85
  186. package/source/class/qx/data/marshal/MEventBubbling.js +44 -42
  187. package/source/class/qx/data/marshal/__init__.js +1 -1
  188. package/source/class/qx/data/store/IStoreDelegate.js +6 -9
  189. package/source/class/qx/data/store/Json.js +71 -85
  190. package/source/class/qx/data/store/Jsonp.js +19 -25
  191. package/source/class/qx/data/store/Offline.js +21 -29
  192. package/source/class/qx/data/store/Rest.js +25 -23
  193. package/source/class/qx/data/store/__init__.js +1 -1
  194. package/source/class/qx/dev/Debug.js +105 -124
  195. package/source/class/qx/dev/FakeServer.js +68 -65
  196. package/source/class/qx/dev/ObjectSummary.js +33 -39
  197. package/source/class/qx/dev/Profile.js +62 -63
  198. package/source/class/qx/dev/StackTrace.js +64 -70
  199. package/source/class/qx/dev/Tokenizer.js +114 -126
  200. package/source/class/qx/dev/unit/AbstractTestSuite.js +17 -31
  201. package/source/class/qx/dev/unit/AsyncWrapper.js +22 -26
  202. package/source/class/qx/dev/unit/JsUnitTestResult.js +9 -21
  203. package/source/class/qx/dev/unit/MMeasure.js +46 -37
  204. package/source/class/qx/dev/unit/MMock.js +236 -240
  205. package/source/class/qx/dev/unit/MRequirements.js +53 -79
  206. package/source/class/qx/dev/unit/MRequirementsBasic.js +24 -19
  207. package/source/class/qx/dev/unit/MTestLoader.js +52 -57
  208. package/source/class/qx/dev/unit/MeasurementResult.js +18 -22
  209. package/source/class/qx/dev/unit/RequirementError.js +8 -17
  210. package/source/class/qx/dev/unit/Sinon.js +18826 -4613
  211. package/source/class/qx/dev/unit/TestCase.js +40 -51
  212. package/source/class/qx/dev/unit/TestClass.js +22 -23
  213. package/source/class/qx/dev/unit/TestFunction.js +28 -48
  214. package/source/class/qx/dev/unit/TestLoader.js +11 -14
  215. package/source/class/qx/dev/unit/TestLoaderBasic.js +3 -6
  216. package/source/class/qx/dev/unit/TestLoaderInline.js +8 -14
  217. package/source/class/qx/dev/unit/TestLoaderMobile.js +8 -14
  218. package/source/class/qx/dev/unit/TestLoaderNative.js +7 -13
  219. package/source/class/qx/dev/unit/TestResult.js +140 -118
  220. package/source/class/qx/dev/unit/TestSuite.js +46 -55
  221. package/source/class/qx/dom/Element.js +29 -74
  222. package/source/class/qx/dom/Hierarchy.js +60 -95
  223. package/source/class/qx/dom/Node.js +54 -81
  224. package/source/class/qx/dom/__init__.js +9 -9
  225. package/source/class/qx/event/AcceleratingTimer.js +28 -46
  226. package/source/class/qx/event/Emitter.js +54 -49
  227. package/source/class/qx/event/GlobalError.js +22 -38
  228. package/source/class/qx/event/IEventDispatcher.js +4 -9
  229. package/source/class/qx/event/IEventHandler.js +7 -13
  230. package/source/class/qx/event/Idle.js +32 -47
  231. package/source/class/qx/event/Manager.js +222 -237
  232. package/source/class/qx/event/Messaging.js +55 -48
  233. package/source/class/qx/event/Pool.js +5 -8
  234. package/source/class/qx/event/Registration.js +128 -118
  235. package/source/class/qx/event/Timer.js +50 -96
  236. package/source/class/qx/event/Utils.js +41 -28
  237. package/source/class/qx/event/dispatch/AbstractBubbling.js +133 -93
  238. package/source/class/qx/event/dispatch/Direct.js +46 -51
  239. package/source/class/qx/event/dispatch/DomBubbling.js +8 -15
  240. package/source/class/qx/event/dispatch/MouseCapture.js +74 -91
  241. package/source/class/qx/event/handler/Appear.js +40 -77
  242. package/source/class/qx/event/handler/Application.js +100 -126
  243. package/source/class/qx/event/handler/Capture.js +15 -37
  244. package/source/class/qx/event/handler/DragDrop.js +342 -228
  245. package/source/class/qx/event/handler/Element.js +45 -72
  246. package/source/class/qx/event/handler/ElementResize.js +35 -70
  247. package/source/class/qx/event/handler/Focus.js +908 -637
  248. package/source/class/qx/event/handler/Gesture.js +144 -93
  249. package/source/class/qx/event/handler/GestureCore.js +214 -163
  250. package/source/class/qx/event/handler/Iframe.js +21 -35
  251. package/source/class/qx/event/handler/Input.js +332 -209
  252. package/source/class/qx/event/handler/Keyboard.js +325 -270
  253. package/source/class/qx/event/handler/Mouse.js +212 -173
  254. package/source/class/qx/event/handler/Object.js +13 -31
  255. package/source/class/qx/event/handler/Offline.js +52 -67
  256. package/source/class/qx/event/handler/Orientation.js +56 -62
  257. package/source/class/qx/event/handler/OrientationCore.js +33 -43
  258. package/source/class/qx/event/handler/Pointer.js +84 -72
  259. package/source/class/qx/event/handler/PointerCore.js +183 -105
  260. package/source/class/qx/event/handler/Touch.js +43 -59
  261. package/source/class/qx/event/handler/TouchCore.js +159 -120
  262. package/source/class/qx/event/handler/Transition.js +91 -100
  263. package/source/class/qx/event/handler/UserAction.js +18 -42
  264. package/source/class/qx/event/handler/Video.js +12 -12
  265. package/source/class/qx/event/handler/Window.js +53 -69
  266. package/source/class/qx/event/message/Bus.js +109 -128
  267. package/source/class/qx/event/message/Message.js +14 -29
  268. package/source/class/qx/event/type/Data.js +11 -22
  269. package/source/class/qx/event/type/Dom.js +37 -52
  270. package/source/class/qx/event/type/Drag.js +37 -56
  271. package/source/class/qx/event/type/Event.js +80 -104
  272. package/source/class/qx/event/type/Focus.js +5 -8
  273. package/source/class/qx/event/type/GeoPosition.js +32 -41
  274. package/source/class/qx/event/type/KeyInput.js +9 -19
  275. package/source/class/qx/event/type/KeySequence.js +10 -21
  276. package/source/class/qx/event/type/Mouse.js +69 -72
  277. package/source/class/qx/event/type/MouseWheel.js +5 -9
  278. package/source/class/qx/event/type/Native.js +16 -27
  279. package/source/class/qx/event/type/Orientation.js +18 -30
  280. package/source/class/qx/event/type/Pinch.js +21 -27
  281. package/source/class/qx/event/type/Pointer.js +38 -41
  282. package/source/class/qx/event/type/Rest.js +7 -10
  283. package/source/class/qx/event/type/Roll.js +49 -58
  284. package/source/class/qx/event/type/Rotate.js +21 -27
  285. package/source/class/qx/event/type/Swipe.js +75 -86
  286. package/source/class/qx/event/type/Tap.js +2 -4
  287. package/source/class/qx/event/type/Touch.js +262 -286
  288. package/source/class/qx/event/type/Track.js +23 -28
  289. package/source/class/qx/event/type/dom/Custom.js +24 -20
  290. package/source/class/qx/event/type/dom/Pointer.js +86 -60
  291. package/source/class/qx/event/util/Keyboard.js +94 -106
  292. package/source/class/qx/html/Blocker.js +17 -18
  293. package/source/class/qx/html/Canvas.js +13 -29
  294. package/source/class/qx/html/Element.js +372 -497
  295. package/source/class/qx/html/Factory.js +31 -26
  296. package/source/class/qx/html/Iframe.js +35 -69
  297. package/source/class/qx/html/Image.js +43 -55
  298. package/source/class/qx/html/Input.js +44 -57
  299. package/source/class/qx/html/Jsx.js +49 -41
  300. package/source/class/qx/html/JsxRef.js +3 -5
  301. package/source/class/qx/html/Label.js +20 -32
  302. package/source/class/qx/html/Node.js +362 -422
  303. package/source/class/qx/html/Root.js +7 -16
  304. package/source/class/qx/html/Text.js +34 -27
  305. package/source/class/qx/io/ImageLoader.js +66 -90
  306. package/source/class/qx/io/PartLoader.js +17 -30
  307. package/source/class/qx/io/__init__.js +5 -3
  308. package/source/class/qx/io/exception/Cancel.js +33 -0
  309. package/source/class/qx/io/exception/Exception.js +37 -0
  310. package/source/class/qx/{tool/compiler/Version.js → io/exception/Protocol.js} +12 -7
  311. package/source/class/qx/io/exception/Transport.js +38 -0
  312. package/source/class/qx/io/exception/__init__.js +4 -0
  313. package/source/class/qx/io/graphql/Client.js +122 -0
  314. package/source/class/qx/io/graphql/__init__.js +9 -0
  315. package/source/class/qx/io/graphql/protocol/Message.js +65 -0
  316. package/source/class/qx/io/graphql/protocol/Request.js +93 -0
  317. package/source/class/qx/io/graphql/protocol/Response.js +63 -0
  318. package/source/class/qx/io/graphql/protocol/__init__.js +6 -0
  319. package/source/class/qx/io/jsonrpc/Client.js +355 -0
  320. package/source/class/qx/io/jsonrpc/__init__.js +15 -0
  321. package/source/class/qx/io/jsonrpc/protocol/Batch.js +103 -0
  322. package/source/class/qx/io/jsonrpc/protocol/Error.js +65 -0
  323. package/source/class/qx/io/jsonrpc/protocol/Message.js +48 -0
  324. package/source/class/qx/io/jsonrpc/protocol/Notification.js +47 -0
  325. package/source/class/qx/io/jsonrpc/protocol/Parser.js +105 -0
  326. package/source/class/qx/io/jsonrpc/protocol/Request.js +94 -0
  327. package/source/class/qx/io/jsonrpc/protocol/Result.js +49 -0
  328. package/source/class/qx/io/jsonrpc/protocol/__init__.js +5 -0
  329. package/source/class/qx/io/part/ClosurePart.js +16 -35
  330. package/source/class/qx/io/part/Package.js +35 -63
  331. package/source/class/qx/io/part/Part.js +29 -53
  332. package/source/class/qx/io/part/__init__.js +4 -4
  333. package/source/class/qx/io/request/AbstractRequest.js +268 -201
  334. package/source/class/qx/io/request/Jsonp.js +16 -19
  335. package/source/class/qx/io/request/Xhr.js +38 -37
  336. package/source/class/qx/io/request/__init__.js +1 -1
  337. package/source/class/qx/io/request/authentication/Basic.js +7 -13
  338. package/source/class/qx/io/request/authentication/Bearer.js +46 -0
  339. package/source/class/qx/io/request/authentication/IAuthentication.js +3 -6
  340. package/source/class/qx/io/request/authentication/__init__.js +1 -1
  341. package/source/class/qx/io/rest/Resource.js +122 -90
  342. package/source/class/qx/io/transport/AbstractClient.js +121 -0
  343. package/source/class/qx/io/transport/AbstractTransport.js +40 -0
  344. package/source/class/qx/io/transport/Fetch.js +98 -0
  345. package/source/class/qx/io/transport/ITransport.js +42 -0
  346. package/source/class/qx/io/transport/PostMessage.js +54 -0
  347. package/source/class/qx/io/transport/Websocket.js +97 -0
  348. package/source/class/qx/io/transport/Xhr.js +138 -0
  349. package/source/class/qx/io/transport/__init__.js +18 -0
  350. package/source/class/qx/lang/Array.js +133 -170
  351. package/source/class/qx/lang/Function.js +101 -104
  352. package/source/class/qx/lang/Json.js +1041 -774
  353. package/source/class/qx/lang/Number.js +11 -16
  354. package/source/class/qx/lang/Object.js +129 -100
  355. package/source/class/qx/lang/String.js +86 -94
  356. package/source/class/qx/lang/Type.js +44 -65
  357. package/source/class/qx/lang/normalize/Array.js +39 -49
  358. package/source/class/qx/lang/normalize/Date.js +50 -32
  359. package/source/class/qx/lang/normalize/Error.js +4 -7
  360. package/source/class/qx/lang/normalize/Function.js +11 -19
  361. package/source/class/qx/lang/normalize/Number.js +3 -5
  362. package/source/class/qx/lang/normalize/Object.js +17 -18
  363. package/source/class/qx/lang/normalize/String.js +39 -40
  364. package/source/class/qx/locale/Date.js +175 -178
  365. package/source/class/qx/locale/Key.js +13 -11
  366. package/source/class/qx/locale/LocalizedString.js +18 -15
  367. package/source/class/qx/locale/MTranslation.js +22 -23
  368. package/source/class/qx/locale/Manager.js +62 -100
  369. package/source/class/qx/locale/Number.js +20 -12
  370. package/source/class/qx/locale/String.js +26 -15
  371. package/source/class/qx/log/Logger.js +128 -180
  372. package/source/class/qx/log/__init__.js +3 -3
  373. package/source/class/qx/log/appender/Console.js +100 -111
  374. package/source/class/qx/log/appender/Element.js +25 -39
  375. package/source/class/qx/log/appender/Formatter.js +117 -66
  376. package/source/class/qx/log/appender/Native.js +4 -10
  377. package/source/class/qx/log/appender/NodeConsole.js +20 -28
  378. package/source/class/qx/log/appender/PhoneGap.js +5 -13
  379. package/source/class/qx/log/appender/RhinoConsole.js +12 -23
  380. package/source/class/qx/log/appender/RhinoFile.js +19 -26
  381. package/source/class/qx/log/appender/RingBuffer.js +10 -19
  382. package/source/class/qx/log/appender/Util.js +11 -9
  383. package/source/class/qx/module/Animation.js +73 -63
  384. package/source/class/qx/module/Attribute.js +27 -46
  385. package/source/class/qx/module/Blocker.js +33 -41
  386. package/source/class/qx/module/Cookie.js +6 -10
  387. package/source/class/qx/module/Css.js +82 -97
  388. package/source/class/qx/module/Dataset.js +12 -24
  389. package/source/class/qx/module/Environment.js +4 -6
  390. package/source/class/qx/module/Event.js +124 -127
  391. package/source/class/qx/module/Io.js +5 -9
  392. package/source/class/qx/module/Manipulating.js +98 -117
  393. package/source/class/qx/module/MatchMedia.js +50 -24
  394. package/source/class/qx/module/Messaging.js +6 -10
  395. package/source/class/qx/module/Placeholder.js +54 -44
  396. package/source/class/qx/module/Placement.js +33 -33
  397. package/source/class/qx/module/Rest.js +3 -4
  398. package/source/class/qx/module/Storage.js +34 -48
  399. package/source/class/qx/module/Template.js +6 -9
  400. package/source/class/qx/module/TextSelection.js +13 -21
  401. package/source/class/qx/module/Transform.js +28 -45
  402. package/source/class/qx/module/Traversing.js +160 -154
  403. package/source/class/qx/module/__init__.js +1 -1
  404. package/source/class/qx/module/dev/FakeServer.js +19 -25
  405. package/source/class/qx/module/event/GestureHandler.js +25 -13
  406. package/source/class/qx/module/event/Keyboard.js +42 -31
  407. package/source/class/qx/module/event/Mouse.js +48 -46
  408. package/source/class/qx/module/event/Native.js +18 -30
  409. package/source/class/qx/module/event/Orientation.js +11 -18
  410. package/source/class/qx/module/event/OrientationHandler.js +19 -17
  411. package/source/class/qx/module/event/Pinch.js +13 -14
  412. package/source/class/qx/module/event/Pointer.js +22 -22
  413. package/source/class/qx/module/event/PointerHandler.js +14 -11
  414. package/source/class/qx/module/event/Rotate.js +13 -14
  415. package/source/class/qx/module/event/Swipe.js +18 -24
  416. package/source/class/qx/module/event/Tap.js +25 -25
  417. package/source/class/qx/module/event/Touch.js +4 -7
  418. package/source/class/qx/module/event/TouchHandler.js +16 -16
  419. package/source/class/qx/module/event/Track.js +13 -14
  420. package/source/class/qx/module/util/Array.js +30 -41
  421. package/source/class/qx/module/util/Function.js +1 -2
  422. package/source/class/qx/module/util/Object.js +8 -11
  423. package/source/class/qx/module/util/String.js +10 -18
  424. package/source/class/qx/module/util/Type.js +3 -4
  425. package/source/class/qx/test/Annotation.js +195 -89
  426. package/source/class/qx/test/Bootstrap.js +98 -124
  427. package/source/class/qx/test/Browser.js +8 -11
  428. package/source/class/qx/test/Class.js +164 -198
  429. package/source/class/qx/test/Dom.js +10 -28
  430. package/source/class/qx/test/EditDistance.js +16 -16
  431. package/source/class/qx/test/Interface.js +380 -383
  432. package/source/class/qx/test/MAppearance.js +10 -14
  433. package/source/class/qx/test/MDecoration.js +1 -3
  434. package/source/class/qx/test/Mixin.js +449 -173
  435. package/source/class/qx/test/Promise.js +422 -333
  436. package/source/class/qx/test/Theme.js +204 -179
  437. package/source/class/qx/test/Xml.js +155 -84
  438. package/source/class/qx/test/application/Routing.js +45 -44
  439. package/source/class/qx/test/bom/AnimationFrame.js +23 -21
  440. package/source/class/qx/test/bom/Attribute.js +66 -47
  441. package/source/class/qx/test/bom/Basic.js +52 -27
  442. package/source/class/qx/test/bom/Blocker.js +100 -70
  443. package/source/class/qx/test/bom/Class.js +19 -34
  444. package/source/class/qx/test/bom/Cookie.js +49 -28
  445. package/source/class/qx/test/bom/Dataset.js +12 -24
  446. package/source/class/qx/test/bom/Element.js +55 -47
  447. package/source/class/qx/test/bom/Event.js +68 -45
  448. package/source/class/qx/test/bom/FileReader.js +6 -12
  449. package/source/class/qx/test/bom/Font.js +256 -118
  450. package/source/class/qx/test/bom/GeoLocation.js +82 -64
  451. package/source/class/qx/test/bom/History.js +63 -84
  452. package/source/class/qx/test/bom/IdleCallback.js +51 -38
  453. package/source/class/qx/test/bom/Iframe.js +14 -18
  454. package/source/class/qx/test/bom/Label.js +74 -105
  455. package/source/class/qx/test/bom/Location.js +70 -99
  456. package/source/class/qx/test/bom/PageVisibility.js +13 -16
  457. package/source/class/qx/test/bom/Selector.js +16 -16
  458. package/source/class/qx/test/bom/String.js +19 -15
  459. package/source/class/qx/test/bom/Stylesheet.js +39 -48
  460. package/source/class/qx/test/bom/Template.js +49 -57
  461. package/source/class/qx/test/bom/Viewport.js +7 -11
  462. package/source/class/qx/test/bom/WebWorker.js +49 -37
  463. package/source/class/qx/test/bom/Window.js +6 -12
  464. package/source/class/qx/test/bom/client/Css.js +26 -19
  465. package/source/class/qx/test/bom/client/Device.js +29 -18
  466. package/source/class/qx/test/bom/client/OperatingSystem.js +17 -20
  467. package/source/class/qx/test/bom/client/Pdfjs.js +15 -13
  468. package/source/class/qx/test/bom/element/AnimationHandle.js +20 -17
  469. package/source/class/qx/test/bom/element/AnimationJs.js +48 -31
  470. package/source/class/qx/test/bom/element/Background.js +93 -46
  471. package/source/class/qx/test/bom/element/BoxSizing.js +66 -61
  472. package/source/class/qx/test/bom/element/Class.js +33 -58
  473. package/source/class/qx/test/bom/element/Dimension.js +58 -37
  474. package/source/class/qx/test/bom/element/Style.js +87 -83
  475. package/source/class/qx/test/bom/element/Transform.js +209 -86
  476. package/source/class/qx/test/bom/media/Audio.js +18 -14
  477. package/source/class/qx/test/bom/media/MediaTestCase.js +61 -66
  478. package/source/class/qx/test/bom/media/Video.js +39 -28
  479. package/source/class/qx/test/bom/request/Jsonp.js +60 -57
  480. package/source/class/qx/test/bom/request/Script.js +150 -138
  481. package/source/class/qx/test/bom/request/SimpleXhr.js +206 -134
  482. package/source/class/qx/test/bom/request/Xhr.js +179 -132
  483. package/source/class/qx/test/bom/request/XhrWithRemote.js +206 -160
  484. package/source/class/qx/test/bom/rest/Resource.js +345 -281
  485. package/source/class/qx/test/bom/rest/ResourceWithRemote.js +74 -57
  486. package/source/class/qx/test/bom/storage/Local.js +3 -4
  487. package/source/class/qx/test/bom/storage/Session.js +3 -4
  488. package/source/class/qx/test/bom/storage/WebStorageTestCase.js +28 -27
  489. package/source/class/qx/test/bom/webfonts/Abstract.js +8 -10
  490. package/source/class/qx/test/bom/webfonts/Manager.js +127 -80
  491. package/source/class/qx/test/bom/webfonts/Validator.js +36 -30
  492. package/source/class/qx/test/compiler/ClassFile.js +29 -11
  493. package/source/class/qx/test/compiler/jsdoc/Parser.js +122 -96
  494. package/source/class/qx/test/core/Assert.js +151 -86
  495. package/source/class/qx/test/core/Environment.js +162 -123
  496. package/source/class/qx/test/core/EventEmitterDummy.js +7 -8
  497. package/source/class/qx/test/core/InheritanceDummy.js +23 -33
  498. package/source/class/qx/test/core/MemoryManagement.js +13 -5
  499. package/source/class/qx/test/core/Object.js +106 -112
  500. package/source/class/qx/test/core/ObjectId.js +7 -6
  501. package/source/class/qx/test/core/Property.js +483 -387
  502. package/source/class/qx/test/core/PropertyHelper.js +49 -64
  503. package/source/class/qx/test/core/Target.js +9 -13
  504. package/source/class/qx/test/core/Validation.js +409 -136
  505. package/source/class/qx/test/data/DataArray.js +1059 -394
  506. package/source/class/qx/test/data/DataArrayWithChangeBubble.js +315 -172
  507. package/source/class/qx/test/data/__init__.js +4 -4
  508. package/source/class/qx/test/data/controller/Form.js +141 -99
  509. package/source/class/qx/test/data/controller/FormWithArrayAndModel.js +66 -51
  510. package/source/class/qx/test/data/controller/List.js +644 -336
  511. package/source/class/qx/test/data/controller/ListReverse.js +64 -63
  512. package/source/class/qx/test/data/controller/ListWithObjects.js +305 -149
  513. package/source/class/qx/test/data/controller/Object.js +252 -94
  514. package/source/class/qx/test/data/controller/Tree.js +1219 -383
  515. package/source/class/qx/test/data/controller/__init__.js +4 -4
  516. package/source/class/qx/test/data/marshal/Json.js +832 -447
  517. package/source/class/qx/test/data/marshal/__init__.js +4 -4
  518. package/source/class/qx/test/data/singlevalue/Array.js +383 -144
  519. package/source/class/qx/test/data/singlevalue/Deep.js +361 -175
  520. package/source/class/qx/test/data/singlevalue/Resolve.js +51 -29
  521. package/source/class/qx/test/data/singlevalue/Simple.js +530 -208
  522. package/source/class/qx/test/data/singlevalue/TextFieldDummy.js +32 -28
  523. package/source/class/qx/test/data/singlevalue/__init__.js +4 -4
  524. package/source/class/qx/test/data/store/Json.js +574 -313
  525. package/source/class/qx/test/data/store/Jsonp.js +103 -77
  526. package/source/class/qx/test/data/store/Offline.js +127 -110
  527. package/source/class/qx/test/data/store/Rest.js +58 -52
  528. package/source/class/qx/test/data/store/RestWithRemote.js +36 -30
  529. package/source/class/qx/test/data/store/__init__.js +4 -4
  530. package/source/class/qx/test/dev/Debug.js +9 -13
  531. package/source/class/qx/test/dev/StackTrace.js +51 -42
  532. package/source/class/qx/test/dev/unit/Requirements.js +36 -49
  533. package/source/class/qx/test/dev/unit/Sinon.js +85 -73
  534. package/source/class/qx/test/dev/unit/TestCase.js +12 -17
  535. package/source/class/qx/test/dom/Element.js +17 -12
  536. package/source/class/qx/test/dom/Hierarchy.js +53 -38
  537. package/source/class/qx/test/dom/Node.js +97 -43
  538. package/source/class/qx/test/event/Bubbling.js +258 -88
  539. package/source/class/qx/test/event/Emitter.js +38 -39
  540. package/source/class/qx/test/event/GlobalError.js +59 -87
  541. package/source/class/qx/test/event/GlobalEventMonitors.js +22 -25
  542. package/source/class/qx/test/event/Messaging.js +66 -49
  543. package/source/class/qx/test/event/MockBubblingHandler.js +10 -15
  544. package/source/class/qx/test/event/MockHandler.js +14 -33
  545. package/source/class/qx/test/event/Registration.js +38 -32
  546. package/source/class/qx/test/event/Timer.js +61 -39
  547. package/source/class/qx/test/event/Utils.js +164 -123
  548. package/source/class/qx/test/event/dispatch/MouseCapture.js +61 -51
  549. package/source/class/qx/test/event/dispatch/MouseEventOnDocument.js +22 -23
  550. package/source/class/qx/test/event/dispatch/TestingHandler.js +8 -10
  551. package/source/class/qx/test/event/dispatch/TestingWindow.js +9 -13
  552. package/source/class/qx/test/event/dispatch/__init__.js +4 -4
  553. package/source/class/qx/test/event/handler/Offline.js +7 -8
  554. package/source/class/qx/test/event/message/Bus.js +112 -72
  555. package/source/class/qx/test/event/message/__init__.js +4 -4
  556. package/source/class/qx/test/event/type/Dom.js +12 -11
  557. package/source/class/qx/test/event/type/Event.js +7 -16
  558. package/source/class/qx/test/event/type/Mouse.js +12 -11
  559. package/source/class/qx/test/event/type/Native.js +12 -11
  560. package/source/class/qx/test/event/type/__init__.js +4 -4
  561. package/source/class/qx/test/event/util/Keyboard.js +4 -3
  562. package/source/class/qx/test/html/Element.js +538 -239
  563. package/source/class/qx/test/html/Iframe.js +85 -73
  564. package/source/class/qx/test/html/jsx/TestJsx.js +15 -4
  565. package/source/class/qx/test/html/jsx/TestJsxBrowser.js +37 -19
  566. package/source/class/qx/test/html/jsx/TestWidget.js +26 -26
  567. package/source/class/qx/test/io/ImageLoader.js +256 -160
  568. package/source/class/qx/test/io/MAssert.js +46 -0
  569. package/source/class/qx/test/io/MRemoteTest.js +9 -11
  570. package/source/class/qx/test/io/__init__.js +4 -4
  571. package/source/class/qx/test/io/graphql/Client.js +190 -0
  572. package/source/class/qx/test/io/graphql/ClientFetch.js +34 -0
  573. package/source/class/qx/test/io/graphql/Request.js +41 -0
  574. package/source/class/qx/test/io/jsonrpc/Client.js +333 -0
  575. package/source/class/qx/test/io/jsonrpc/Protocol.js +108 -0
  576. package/source/class/qx/test/io/request/Jsonp.js +23 -20
  577. package/source/class/qx/test/io/request/JsonpWithRemote.js +25 -22
  578. package/source/class/qx/test/io/request/MRequest.js +137 -114
  579. package/source/class/qx/test/io/request/Xhr.js +367 -209
  580. package/source/class/qx/test/io/request/XhrWithRemote.js +133 -100
  581. package/source/class/qx/test/io/rest/Resource.js +325 -270
  582. package/source/class/qx/test/io/rest/ResourceWithRemote.js +75 -58
  583. package/source/class/qx/test/io/transport/PostMessage.js +56 -0
  584. package/source/class/qx/test/io/transport/Websocket.js +64 -0
  585. package/source/class/qx/test/lang/Array.js +79 -105
  586. package/source/class/qx/test/lang/Function.js +64 -53
  587. package/source/class/qx/test/lang/Json.js +51 -79
  588. package/source/class/qx/test/lang/Number.js +4 -6
  589. package/source/class/qx/test/lang/Object.js +143 -133
  590. package/source/class/qx/test/lang/String.js +151 -95
  591. package/source/class/qx/test/lang/Type.js +34 -44
  592. package/source/class/qx/test/lang/Webkit.js +8 -13
  593. package/source/class/qx/test/lang/normalize/Array.js +121 -68
  594. package/source/class/qx/test/lang/normalize/Date.js +232 -49
  595. package/source/class/qx/test/lang/normalize/Error.js +5 -8
  596. package/source/class/qx/test/lang/normalize/Function.js +7 -13
  597. package/source/class/qx/test/lang/normalize/Object.js +22 -29
  598. package/source/class/qx/test/lang/normalize/String.js +19 -28
  599. package/source/class/qx/test/locale/Date.js +91 -43
  600. package/source/class/qx/test/locale/Locale.js +52 -32
  601. package/source/class/qx/test/locale/LocalizedString.js +12 -12
  602. package/source/class/qx/test/log/DeprecationMethodOverriding.js +52 -31
  603. package/source/class/qx/test/log/Filters.js +6 -3
  604. package/source/class/qx/test/log/Formatter.js +13 -7
  605. package/source/class/qx/test/log/Logger.js +19 -29
  606. package/source/class/qx/test/log/RingBuffer.js +14 -25
  607. package/source/class/qx/test/log/__init__.js +4 -4
  608. package/source/class/qx/test/log/fixture/ClassA.js +22 -22
  609. package/source/class/qx/test/log/fixture/ClassB1.js +7 -9
  610. package/source/class/qx/test/log/fixture/ClassB2.js +5 -7
  611. package/source/class/qx/test/log/fixture/ClassC1.js +5 -7
  612. package/source/class/qx/test/log/fixture/ClassC2.js +7 -9
  613. package/source/class/qx/test/mobile/LocaleSwitch.js +29 -36
  614. package/source/class/qx/test/mobile/MobileTestCase.js +39 -49
  615. package/source/class/qx/test/mobile/basic/Atom.js +129 -53
  616. package/source/class/qx/test/mobile/basic/Image.js +41 -31
  617. package/source/class/qx/test/mobile/basic/Label.js +6 -10
  618. package/source/class/qx/test/mobile/container/Carousel.js +41 -45
  619. package/source/class/qx/test/mobile/container/Composite.js +48 -65
  620. package/source/class/qx/test/mobile/container/Drawer.js +42 -29
  621. package/source/class/qx/test/mobile/container/Navigation.js +14 -20
  622. package/source/class/qx/test/mobile/container/Scroll.js +23 -19
  623. package/source/class/qx/test/mobile/core/Widget.js +150 -86
  624. package/source/class/qx/test/mobile/dialog/Menu.js +47 -26
  625. package/source/class/qx/test/mobile/dialog/Popup.js +30 -19
  626. package/source/class/qx/test/mobile/embed/Html.js +5 -8
  627. package/source/class/qx/test/mobile/form/Button.js +15 -13
  628. package/source/class/qx/test/mobile/form/CheckBox.js +21 -17
  629. package/source/class/qx/test/mobile/form/Form.js +37 -24
  630. package/source/class/qx/test/mobile/form/Group.js +5 -9
  631. package/source/class/qx/test/mobile/form/Label.js +11 -13
  632. package/source/class/qx/test/mobile/form/NumberField.js +49 -45
  633. package/source/class/qx/test/mobile/form/RadioButton.js +30 -19
  634. package/source/class/qx/test/mobile/form/SelectBox.js +39 -25
  635. package/source/class/qx/test/mobile/form/SingleRenderer.js +31 -27
  636. package/source/class/qx/test/mobile/form/Slider.js +55 -35
  637. package/source/class/qx/test/mobile/form/TextArea.js +34 -24
  638. package/source/class/qx/test/mobile/form/TextField.js +34 -24
  639. package/source/class/qx/test/mobile/form/ToggleButton.js +10 -14
  640. package/source/class/qx/test/mobile/layout/Card.js +21 -17
  641. package/source/class/qx/test/mobile/layout/HBox.js +25 -20
  642. package/source/class/qx/test/mobile/layout/VBox.js +25 -21
  643. package/source/class/qx/test/mobile/list/List.js +114 -83
  644. package/source/class/qx/test/mobile/navigationbar/NavigationBar.js +5 -9
  645. package/source/class/qx/test/mobile/page/Manager.js +7 -13
  646. package/source/class/qx/test/mobile/page/NavigationPage.js +7 -17
  647. package/source/class/qx/test/mobile/page/Page.js +101 -68
  648. package/source/class/qx/test/mobile/tabbar/TabBar.js +11 -21
  649. package/source/class/qx/test/mobile/toolbar/Toolbar.js +16 -16
  650. package/source/class/qx/test/performance/BaseCall.js +31 -36
  651. package/source/class/qx/test/performance/Event.js +60 -53
  652. package/source/class/qx/test/performance/Object.js +16 -22
  653. package/source/class/qx/test/performance/Property.js +20 -22
  654. package/source/class/qx/test/performance/data/Marshaling.js +25 -30
  655. package/source/class/qx/test/performance/decorator/AbstractDecorator.js +22 -34
  656. package/source/class/qx/test/performance/decorator/Background.js +4 -6
  657. package/source/class/qx/test/performance/decorator/BackgroundScale.js +6 -8
  658. package/source/class/qx/test/performance/decorator/Single.js +4 -6
  659. package/source/class/qx/test/performance/element/Element.js +50 -67
  660. package/source/class/qx/test/performance/widget/AbstractWidget.js +31 -44
  661. package/source/class/qx/test/performance/widget/Button.js +5 -7
  662. package/source/class/qx/test/performance/widget/Label.js +5 -7
  663. package/source/class/qx/test/performance/widget/RichLabel.js +6 -8
  664. package/source/class/qx/test/performance/widget/Widget.js +5 -7
  665. package/source/class/qx/test/performance/widget/WidgetWithDecorator.js +7 -9
  666. package/source/class/qx/test/performance/widget/WidgetWithSingle.js +9 -11
  667. package/source/class/qx/test/renderer/Color.js +22 -49
  668. package/source/class/qx/test/testclasses/BaseClassBoth.js +11 -8
  669. package/source/class/qx/test/testclasses/BaseClassIncluded.js +5 -6
  670. package/source/class/qx/test/testclasses/BaseClassPatched.js +15 -8
  671. package/source/class/qx/test/testclasses/DerivedClassBoth.js +7 -7
  672. package/source/class/qx/test/testclasses/DerivedClassIncluded.js +7 -7
  673. package/source/class/qx/test/testclasses/DerivedClassPatched.js +7 -7
  674. package/source/class/qx/test/testclasses/MMixinOne.js +4 -4
  675. package/source/class/qx/test/testclasses/MMixinTwo.js +2 -2
  676. package/source/class/qx/test/testclasses/RootClass.js +8 -8
  677. package/source/class/qx/test/theme/__init__.js +4 -4
  678. package/source/class/qx/test/theme/manager/Color.js +52 -66
  679. package/source/class/qx/test/theme/manager/Decoration.js +177 -154
  680. package/source/class/qx/test/theme/manager/Font.js +68 -39
  681. package/source/class/qx/test/theme/manager/Icon.js +46 -43
  682. package/source/class/qx/test/theme/manager/Meta.js +121 -110
  683. package/source/class/qx/test/theme/manager/__init__.js +4 -4
  684. package/source/class/qx/test/theme/manager/mock/Appearance.js +17 -23
  685. package/source/class/qx/test/theme/manager/mock/Color.js +7 -9
  686. package/source/class/qx/test/theme/manager/mock/Decoration.js +7 -10
  687. package/source/class/qx/test/theme/manager/mock/Font.js +6 -10
  688. package/source/class/qx/test/theme/simple/Appearance.js +268 -210
  689. package/source/class/qx/test/tool/utils/Utils.js +10 -8
  690. package/source/class/qx/test/toolchain/PrivateOptimization.js +20 -13
  691. package/source/class/qx/test/toolchain/TestRunner.js +12 -12
  692. package/source/class/qx/test/toolchain/VariantOptimization.js +37 -26
  693. package/source/class/qx/test/toolchain/__init__.js +4 -4
  694. package/source/class/qx/test/type/Array.js +8 -12
  695. package/source/class/qx/test/type/BaseArray.js +58 -78
  696. package/source/class/qx/test/type/BaseString.js +30 -61
  697. package/source/class/qx/test/type/__init__.js +4 -4
  698. package/source/class/qx/test/ui/BackgroundColor.js +20 -21
  699. package/source/class/qx/test/ui/ChildrenHandling.js +136 -81
  700. package/source/class/qx/test/ui/Destroy.js +310 -248
  701. package/source/class/qx/test/ui/Focus.js +40 -87
  702. package/source/class/qx/test/ui/Insets.js +14 -18
  703. package/source/class/qx/test/ui/LayoutTestCase.js +99 -92
  704. package/source/class/qx/test/ui/LocaleSwitch.js +37 -41
  705. package/source/class/qx/test/ui/RadioItems.js +11 -22
  706. package/source/class/qx/test/ui/Widget.js +13 -17
  707. package/source/class/qx/test/ui/Window.js +26 -39
  708. package/source/class/qx/test/ui/basic/Atom.js +37 -25
  709. package/source/class/qx/test/ui/basic/Image.js +179 -138
  710. package/source/class/qx/test/ui/basic/Label.js +147 -65
  711. package/source/class/qx/test/ui/basic/__init__.js +4 -4
  712. package/source/class/qx/test/ui/command/Command.js +105 -69
  713. package/source/class/qx/test/ui/command/Group.js +24 -21
  714. package/source/class/qx/test/ui/command/GroupManager.js +7 -12
  715. package/source/class/qx/test/ui/container/Stack.js +26 -36
  716. package/source/class/qx/test/ui/core/AbstractScrollArea.js +84 -67
  717. package/source/class/qx/test/ui/core/Appearance.js +53 -54
  718. package/source/class/qx/test/ui/core/Blocker.js +80 -44
  719. package/source/class/qx/test/ui/core/DragDropScrolling.js +69 -55
  720. package/source/class/qx/test/ui/core/Placement.js +22 -34
  721. package/source/class/qx/test/ui/core/Queues.js +28 -39
  722. package/source/class/qx/test/ui/core/SizeHint.js +32 -76
  723. package/source/class/qx/test/ui/core/SizeHintX.js +8 -15
  724. package/source/class/qx/test/ui/core/SizeHintY.js +8 -15
  725. package/source/class/qx/test/ui/core/Spacer.js +11 -18
  726. package/source/class/qx/test/ui/core/Widget.js +117 -112
  727. package/source/class/qx/test/ui/core/__init__.js +4 -4
  728. package/source/class/qx/test/ui/decoration/LinearGradient.js +18 -14
  729. package/source/class/qx/test/ui/embed/Iframe.js +70 -65
  730. package/source/class/qx/test/ui/embed/__init__.js +4 -4
  731. package/source/class/qx/test/ui/form/AbstractSelectBox.js +11 -16
  732. package/source/class/qx/test/ui/form/AbstractVirtualBox.js +12 -19
  733. package/source/class/qx/test/ui/form/BooleanFormat.js +40 -25
  734. package/source/class/qx/test/ui/form/Color.js +29 -19
  735. package/source/class/qx/test/ui/form/ComboBox.js +39 -67
  736. package/source/class/qx/test/ui/form/Date.js +34 -21
  737. package/source/class/qx/test/ui/form/DateField.js +16 -19
  738. package/source/class/qx/test/ui/form/Executable.js +98 -68
  739. package/source/class/qx/test/ui/form/Field.js +65 -54
  740. package/source/class/qx/test/ui/form/Form.js +211 -123
  741. package/source/class/qx/test/ui/form/FormManager.js +72 -100
  742. package/source/class/qx/test/ui/form/FormValidator.js +549 -399
  743. package/source/class/qx/test/ui/form/Label.js +87 -65
  744. package/source/class/qx/test/ui/form/List.js +19 -19
  745. package/source/class/qx/test/ui/form/MenuButton.js +26 -20
  746. package/source/class/qx/test/ui/form/ModelProperty.js +40 -36
  747. package/source/class/qx/test/ui/form/ModelSelection.js +39 -84
  748. package/source/class/qx/test/ui/form/NumberFormat.js +30 -19
  749. package/source/class/qx/test/ui/form/Placeholder.js +147 -87
  750. package/source/class/qx/test/ui/form/RadioButtonGroup.js +31 -26
  751. package/source/class/qx/test/ui/form/RadioGroup.js +58 -54
  752. package/source/class/qx/test/ui/form/Range.js +63 -28
  753. package/source/class/qx/test/ui/form/Renderer.js +39 -33
  754. package/source/class/qx/test/ui/form/Resetter.js +21 -35
  755. package/source/class/qx/test/ui/form/Slider.js +37 -21
  756. package/source/class/qx/test/ui/form/Spinner.js +9 -5
  757. package/source/class/qx/test/ui/form/SplitButton.js +7 -11
  758. package/source/class/qx/test/ui/form/StringFormat.js +60 -30
  759. package/source/class/qx/test/ui/form/TextArea.js +59 -41
  760. package/source/class/qx/test/ui/form/TextField.js +14 -16
  761. package/source/class/qx/test/ui/form/ToggleButton.js +20 -24
  762. package/source/class/qx/test/ui/form/VirtualSelectBox.js +66 -40
  763. package/source/class/qx/test/ui/form/__init__.js +4 -4
  764. package/source/class/qx/test/ui/form/virtual/VirtualComboBox.js +58 -60
  765. package/source/class/qx/test/ui/form/virtual/VirtualDropDownList.js +120 -110
  766. package/source/class/qx/test/ui/form/virtual/VirtualSelectBox.js +43 -27
  767. package/source/class/qx/test/ui/groupbox/CheckGroupBox.js +13 -18
  768. package/source/class/qx/test/ui/indicator/ProgressBar.js +73 -48
  769. package/source/class/qx/test/ui/layout/Box.js +23 -22
  770. package/source/class/qx/test/ui/layout/Flow.js +233 -153
  771. package/source/class/qx/test/ui/layout/Grid.js +88 -101
  772. package/source/class/qx/test/ui/layout/LayoutItem.js +57 -83
  773. package/source/class/qx/test/ui/layout/LayoutRoot.js +7 -11
  774. package/source/class/qx/test/ui/layout/Util.js +30 -31
  775. package/source/class/qx/test/ui/layout/__init__.js +4 -4
  776. package/source/class/qx/test/ui/list/AbstractListTest.js +13 -21
  777. package/source/class/qx/test/ui/list/Group.js +191 -114
  778. package/source/class/qx/test/ui/list/List.js +189 -132
  779. package/source/class/qx/test/ui/list/MAssert.js +14 -9
  780. package/source/class/qx/test/ui/list/ObjectGroup.js +131 -109
  781. package/source/class/qx/test/ui/list/core/MultiSelection.js +58 -44
  782. package/source/class/qx/test/ui/list/core/SingleSelection.js +43 -43
  783. package/source/class/qx/test/ui/list/fixture/GroupMock.js +6 -9
  784. package/source/class/qx/test/ui/list/fixture/ItemMock.js +9 -13
  785. package/source/class/qx/test/ui/root/Inline.js +22 -20
  786. package/source/class/qx/test/ui/selection/AbstractMultiSelectonTest.js +188 -105
  787. package/source/class/qx/test/ui/selection/AbstractSingleSelectonTest.js +173 -125
  788. package/source/class/qx/test/ui/selection/ListMultiSelection.js +19 -21
  789. package/source/class/qx/test/ui/selection/ListSingleSelection.js +19 -21
  790. package/source/class/qx/test/ui/selection/RadioGroup.js +41 -29
  791. package/source/class/qx/test/ui/selection/SelectBox.js +11 -17
  792. package/source/class/qx/test/ui/selection/Stack.js +22 -27
  793. package/source/class/qx/test/ui/selection/TabView.js +35 -26
  794. package/source/class/qx/test/ui/selection/TreeMultiSelection.js +14 -19
  795. package/source/class/qx/test/ui/selection/TreeSingleSelection.js +20 -24
  796. package/source/class/qx/test/ui/selection/__init__.js +4 -4
  797. package/source/class/qx/test/ui/table/Dispose.js +46 -46
  798. package/source/class/qx/test/ui/table/Table.js +74 -69
  799. package/source/class/qx/test/ui/table/__init__.js +4 -4
  800. package/source/class/qx/test/ui/table/celleditor/AbstractField.js +14 -28
  801. package/source/class/qx/test/ui/table/celleditor/ComboBox.js +11 -18
  802. package/source/class/qx/test/ui/table/celleditor/PasswordField.js +6 -10
  803. package/source/class/qx/test/ui/table/celleditor/SelectBox.js +16 -32
  804. package/source/class/qx/test/ui/table/celleditor/TextField.js +6 -9
  805. package/source/class/qx/test/ui/table/celleditor/__init__.js +4 -4
  806. package/source/class/qx/test/ui/table/columnmodel/Basic.js +130 -129
  807. package/source/class/qx/test/ui/table/model/Filtered.js +51 -36
  808. package/source/class/qx/test/ui/table/model/Simple.js +43 -45
  809. package/source/class/qx/test/ui/table/selection/Model.js +70 -22
  810. package/source/class/qx/test/ui/toolbar/OverflowHandling.js +145 -123
  811. package/source/class/qx/test/ui/toolbar/ToolBar.js +20 -30
  812. package/source/class/qx/test/ui/tree/Tree.js +63 -42
  813. package/source/class/qx/test/ui/tree/TreeFolder.js +44 -46
  814. package/source/class/qx/test/ui/tree/virtual/AbstractTreeTest.js +61 -96
  815. package/source/class/qx/test/ui/tree/virtual/MultiSelection.js +68 -39
  816. package/source/class/qx/test/ui/tree/virtual/OneSelection.js +82 -42
  817. package/source/class/qx/test/ui/tree/virtual/OpenCloseController.js +80 -101
  818. package/source/class/qx/test/ui/tree/virtual/SingleSelection.js +40 -32
  819. package/source/class/qx/test/ui/tree/virtual/Sorting.js +46 -47
  820. package/source/class/qx/test/ui/tree/virtual/Tree.js +267 -191
  821. package/source/class/qx/test/ui/tree/virtual/TreeItem.js +60 -63
  822. package/source/class/qx/test/ui/tree/virtual/UtilTest.js +65 -50
  823. package/source/class/qx/test/ui/tree/virtual/WidgetProvider.js +127 -132
  824. package/source/class/qx/test/ui/virtual/Axis.js +210 -193
  825. package/source/class/qx/test/ui/virtual/Pane.js +287 -190
  826. package/source/class/qx/test/ui/virtual/PaneUpdate.js +71 -77
  827. package/source/class/qx/test/ui/virtual/PointerEventMock.js +10 -13
  828. package/source/class/qx/test/ui/virtual/Scroller.js +29 -39
  829. package/source/class/qx/test/ui/virtual/__init__.js +4 -4
  830. package/source/class/qx/test/ui/virtual/cell/WidgetCell.js +39 -40
  831. package/source/class/qx/test/ui/virtual/layer/CellSpanManager.js +157 -127
  832. package/source/class/qx/test/ui/virtual/layer/Column.js +6 -10
  833. package/source/class/qx/test/ui/virtual/layer/GridLines.js +6 -10
  834. package/source/class/qx/test/ui/virtual/layer/GridLinesHorizontal.js +6 -9
  835. package/source/class/qx/test/ui/virtual/layer/GridLinesVertical.js +6 -9
  836. package/source/class/qx/test/ui/virtual/layer/HtmlCell.js +12 -19
  837. package/source/class/qx/test/ui/virtual/layer/HtmlCellSpan.js +13 -21
  838. package/source/class/qx/test/ui/virtual/layer/LayerMock.js +31 -43
  839. package/source/class/qx/test/ui/virtual/layer/LayerSimple.js +26 -26
  840. package/source/class/qx/test/ui/virtual/layer/LayerTestCase.js +52 -50
  841. package/source/class/qx/test/ui/virtual/layer/Row.js +6 -10
  842. package/source/class/qx/test/ui/virtual/layer/WidgetCell.js +45 -52
  843. package/source/class/qx/test/ui/virtual/layer/WidgetCellSpan.js +71 -48
  844. package/source/class/qx/test/ui/virtual/layer/__init__.js +4 -4
  845. package/source/class/qx/test/ui/virtual/performance/AbstractLayerTest.js +84 -68
  846. package/source/class/qx/test/ui/virtual/performance/DomCell.js +6 -9
  847. package/source/class/qx/test/ui/virtual/performance/DomPoolCell.js +6 -9
  848. package/source/class/qx/test/ui/virtual/performance/HtmlDivCell.js +7 -11
  849. package/source/class/qx/test/ui/virtual/performance/HtmlDivRelative.js +6 -9
  850. package/source/class/qx/test/ui/virtual/performance/HtmlTableCell.js +8 -13
  851. package/source/class/qx/test/ui/virtual/performance/HtmlTableCellNaive.js +8 -13
  852. package/source/class/qx/test/ui/virtual/performance/HtmlTableCssCell.js +8 -19
  853. package/source/class/qx/test/ui/virtual/performance/WidgetCell.js +10 -15
  854. package/source/class/qx/test/ui/virtual/performance/__init__.js +4 -4
  855. package/source/class/qx/test/ui/virtual/performance/layer/DomCell.js +24 -18
  856. package/source/class/qx/test/ui/virtual/performance/layer/DomPoolCell.js +28 -26
  857. package/source/class/qx/test/ui/virtual/performance/layer/HtmlDivRelative.js +13 -17
  858. package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCell.js +29 -28
  859. package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCellNaive.js +22 -24
  860. package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCssCell.js +32 -47
  861. package/source/class/qx/test/ui/virtual/performance/layer/__init__.js +4 -4
  862. package/source/class/qx/test/ui/window/Desktop.js +21 -12
  863. package/source/class/qx/test/util/Base64.js +10 -13
  864. package/source/class/qx/test/util/ColorUtil.js +121 -54
  865. package/source/class/qx/test/util/DateFormat.js +569 -299
  866. package/source/class/qx/test/util/DateMock.js +16 -19
  867. package/source/class/qx/test/util/DeferredCall.js +12 -13
  868. package/source/class/qx/test/util/Delegate.js +28 -26
  869. package/source/class/qx/test/util/DisposeUtil.js +32 -14
  870. package/source/class/qx/test/util/DynamicScriptLoader.js +99 -64
  871. package/source/class/qx/test/util/Fsm.js +16 -18
  872. package/source/class/qx/test/util/Function.js +23 -19
  873. package/source/class/qx/test/util/LibraryManager.js +15 -22
  874. package/source/class/qx/test/util/NumberFormat.js +53 -64
  875. package/source/class/qx/test/util/PropertyUtil.js +35 -35
  876. package/source/class/qx/test/util/Request.js +26 -18
  877. package/source/class/qx/test/util/ResourceManager.js +50 -35
  878. package/source/class/qx/test/util/ResponseParser.js +45 -35
  879. package/source/class/qx/test/util/RingBuffer.js +15 -28
  880. package/source/class/qx/test/util/Serializer.js +210 -153
  881. package/source/class/qx/test/util/StringBuilder.js +7 -13
  882. package/source/class/qx/test/util/StringSplit.js +114 -69
  883. package/source/class/qx/test/util/Uri.js +74 -78
  884. package/source/class/qx/test/util/Validate.js +95 -64
  885. package/source/class/qx/test/util/placement/BestFitAxis.js +17 -26
  886. package/source/class/qx/test/util/placement/DirectAxis.js +8 -11
  887. package/source/class/qx/test/util/placement/KeepAlignAxis.js +17 -26
  888. package/source/class/qx/test/util/placement/Placement.js +607 -244
  889. package/source/class/qx/test/util/placement/__init__.js +4 -4
  890. package/source/class/qx/theme/Classic.js +9 -11
  891. package/source/class/qx/theme/Indigo.js +9 -11
  892. package/source/class/qx/theme/Modern.js +9 -11
  893. package/source/class/qx/theme/Simple.js +9 -11
  894. package/source/class/qx/theme/TangibleDark.js +1 -1
  895. package/source/class/qx/theme/TangibleLight.js +1 -1
  896. package/source/class/qx/theme/__init__.js +4 -4
  897. package/source/class/qx/theme/classic/Appearance.js +995 -1336
  898. package/source/class/qx/theme/classic/Color.js +83 -83
  899. package/source/class/qx/theme/classic/Decoration.js +318 -299
  900. package/source/class/qx/theme/classic/Font.js +38 -25
  901. package/source/class/qx/theme/icon/Oxygen.js +4 -5
  902. package/source/class/qx/theme/icon/Tango.js +4 -5
  903. package/source/class/qx/theme/indigo/Appearance.js +66 -85
  904. package/source/class/qx/theme/indigo/Color.js +65 -66
  905. package/source/class/qx/theme/indigo/Decoration.js +31 -45
  906. package/source/class/qx/theme/indigo/Font.js +20 -29
  907. package/source/class/qx/theme/manager/Appearance.js +58 -91
  908. package/source/class/qx/theme/manager/Color.js +20 -41
  909. package/source/class/qx/theme/manager/Decoration.js +72 -100
  910. package/source/class/qx/theme/manager/Font.js +51 -67
  911. package/source/class/qx/theme/manager/Icon.js +13 -27
  912. package/source/class/qx/theme/manager/Meta.js +27 -44
  913. package/source/class/qx/theme/modern/Appearance.js +1049 -1440
  914. package/source/class/qx/theme/modern/Color.js +155 -166
  915. package/source/class/qx/theme/modern/Decoration.js +471 -598
  916. package/source/class/qx/theme/modern/Font.js +59 -52
  917. package/source/class/qx/theme/simple/Appearance.js +936 -1207
  918. package/source/class/qx/theme/simple/Color.js +62 -62
  919. package/source/class/qx/theme/simple/Decoration.js +456 -678
  920. package/source/class/qx/theme/simple/Font.js +18 -25
  921. package/source/class/qx/theme/simple/Image.js +49 -52
  922. package/source/class/qx/theme/tangible/Appearance.js +1575 -1743
  923. package/source/class/qx/theme/tangible/ColorDark.js +5 -5
  924. package/source/class/qx/theme/tangible/ColorEngine.js +38 -35
  925. package/source/class/qx/theme/tangible/ColorLight.js +7 -7
  926. package/source/class/qx/theme/tangible/Decoration.js +1108 -1300
  927. package/source/class/qx/theme/tangible/Font.js +66 -70
  928. package/source/class/qx/theme/tangible/Image.js +44 -48
  929. package/source/class/qx/tool/cli/Application.js +5 -5
  930. package/source/class/qx/tool/cli/Cli.js +107 -54
  931. package/source/class/qx/tool/cli/ConfigDb.js +18 -15
  932. package/source/class/qx/tool/cli/LibraryApplication.js +1 -1
  933. package/source/class/qx/tool/cli/Watch.js +174 -102
  934. package/source/class/qx/tool/cli/api/AbstractApi.js +17 -18
  935. package/source/class/qx/tool/cli/api/CompilerApi.js +29 -12
  936. package/source/class/qx/tool/cli/api/LibraryApi.js +4 -6
  937. package/source/class/qx/tool/cli/api/Test.js +12 -9
  938. package/source/class/qx/tool/cli/commands/Add.js +12 -15
  939. package/source/class/qx/tool/cli/commands/Clean.js +10 -9
  940. package/source/class/qx/tool/cli/commands/Command.js +25 -13
  941. package/source/class/qx/tool/cli/commands/Compile.js +635 -269
  942. package/source/class/qx/tool/cli/commands/Config.js +75 -42
  943. package/source/class/qx/tool/cli/commands/Create.js +108 -59
  944. package/source/class/qx/tool/cli/commands/Deploy.js +138 -86
  945. package/source/class/qx/tool/cli/commands/Es6ify.js +118 -0
  946. package/source/class/qx/tool/cli/commands/Lint.js +101 -41
  947. package/source/class/qx/tool/cli/commands/Migrate.js +13 -7
  948. package/source/class/qx/tool/cli/commands/Package.js +67 -46
  949. package/source/class/qx/tool/cli/commands/Pkg.js +21 -18
  950. package/source/class/qx/tool/cli/commands/Run.js +57 -37
  951. package/source/class/qx/tool/cli/commands/Serve.js +62 -37
  952. package/source/class/qx/tool/cli/commands/Test.js +40 -18
  953. package/source/class/qx/tool/cli/commands/add/Class.js +66 -28
  954. package/source/class/qx/tool/cli/commands/add/Script.js +54 -27
  955. package/source/class/qx/tool/cli/commands/package/Install.js +265 -103
  956. package/source/class/qx/tool/cli/commands/package/List.js +199 -75
  957. package/source/class/qx/tool/cli/commands/package/Migrate.js +7 -3
  958. package/source/class/qx/tool/cli/commands/package/Publish.js +230 -115
  959. package/source/class/qx/tool/cli/commands/package/Remove.js +40 -17
  960. package/source/class/qx/tool/cli/commands/package/Update.js +115 -48
  961. package/source/class/qx/tool/cli/commands/package/Upgrade.js +41 -20
  962. package/source/class/qx/tool/compiler/Analyser.js +443 -239
  963. package/source/class/qx/tool/compiler/ClassFile.js +831 -401
  964. package/source/class/qx/tool/compiler/Console.js +136 -87
  965. package/source/class/qx/tool/compiler/Es6ify.js +404 -0
  966. package/source/class/qx/tool/compiler/Preprocess.js +28 -25
  967. package/source/class/qx/tool/compiler/app/Application.js +149 -72
  968. package/source/class/qx/tool/compiler/app/Cldr.js +506 -106
  969. package/source/class/qx/tool/compiler/app/Library.js +62 -27
  970. package/source/class/qx/tool/compiler/app/Part.js +10 -12
  971. package/source/class/qx/tool/compiler/app/Translation.js +189 -162
  972. package/source/class/qx/tool/compiler/app/WebFont.js +216 -162
  973. package/source/class/qx/tool/compiler/jsdoc/ChildControlParser.js +3 -3
  974. package/source/class/qx/tool/compiler/jsdoc/CommandParser.js +8 -9
  975. package/source/class/qx/tool/compiler/jsdoc/ParamParser.js +7 -6
  976. package/source/class/qx/tool/compiler/jsdoc/Parser.js +27 -18
  977. package/source/class/qx/tool/compiler/jsdoc/ReturnParser.js +3 -3
  978. package/source/class/qx/tool/compiler/jsdoc/ThrowsParser.js +4 -4
  979. package/source/class/qx/tool/compiler/makers/AbstractAppMaker.js +5 -6
  980. package/source/class/qx/tool/compiler/makers/AppMaker.js +53 -32
  981. package/source/class/qx/tool/compiler/makers/Maker.js +29 -21
  982. package/source/class/qx/tool/compiler/resources/AbstractMatcher.js +8 -8
  983. package/source/class/qx/tool/compiler/resources/Asset.js +123 -61
  984. package/source/class/qx/tool/compiler/resources/ImageLoader.js +18 -8
  985. package/source/class/qx/tool/compiler/resources/Manager.js +156 -93
  986. package/source/class/qx/tool/compiler/resources/MetaLoader.js +5 -3
  987. package/source/class/qx/tool/compiler/resources/ResourceConverter.js +8 -8
  988. package/source/class/qx/tool/compiler/resources/ResourceLoader.js +8 -9
  989. package/source/class/qx/tool/compiler/resources/ScssConverter.js +54 -18
  990. package/source/class/qx/tool/compiler/resources/ScssFile.js +157 -80
  991. package/source/class/qx/tool/compiler/resources/ScssIncludeConverter.js +3 -3
  992. package/source/class/qx/tool/compiler/targets/BuildTarget.js +23 -13
  993. package/source/class/qx/tool/compiler/targets/SourceCodeCopier.js +29 -9
  994. package/source/class/qx/tool/compiler/targets/SourceTarget.js +2 -2
  995. package/source/class/qx/tool/compiler/targets/Target.js +292 -187
  996. package/source/class/qx/tool/compiler/targets/TypeScriptWriter.js +163 -104
  997. package/source/class/qx/tool/compiler/targets/meta/AbstractJavascriptMeta.js +48 -23
  998. package/source/class/qx/tool/compiler/targets/meta/ApplicationMeta.js +75 -62
  999. package/source/class/qx/tool/compiler/targets/meta/BootJs.js +49 -29
  1000. package/source/class/qx/tool/compiler/targets/meta/Javascript.js +6 -7
  1001. package/source/class/qx/tool/compiler/targets/meta/Package.js +54 -51
  1002. package/source/class/qx/tool/compiler/targets/meta/PackageJavascript.js +41 -21
  1003. package/source/class/qx/tool/compiler/targets/meta/Part.js +9 -10
  1004. package/source/class/qx/tool/compiler/targets/meta/PolyfillJs.js +23 -10
  1005. package/source/class/qx/tool/compiler/targets/meta/Uglify.js +35 -23
  1006. package/source/class/qx/tool/config/Abstract.js +61 -25
  1007. package/source/class/qx/tool/config/Compile.js +3 -2
  1008. package/source/class/qx/tool/config/Lockfile.js +3 -2
  1009. package/source/class/qx/tool/config/Manifest.js +3 -2
  1010. package/source/class/qx/tool/config/Registry.js +4 -3
  1011. package/source/class/qx/tool/config/Utils.js +97 -37
  1012. package/source/class/qx/tool/migration/BaseMigration.js +67 -25
  1013. package/source/class/qx/tool/migration/M6_0_0.js +96 -46
  1014. package/source/class/qx/tool/migration/M7_0_0.js +12 -6
  1015. package/source/class/qx/tool/migration/Runner.js +28 -14
  1016. package/source/class/qx/tool/utils/IndexedArray.js +15 -18
  1017. package/source/class/qx/tool/utils/Json.js +36 -15
  1018. package/source/class/qx/tool/utils/LogManager.js +50 -26
  1019. package/source/class/qx/tool/utils/Logger.js +11 -12
  1020. package/source/class/qx/tool/utils/Promisify.js +45 -49
  1021. package/source/class/qx/tool/utils/Utils.js +63 -48
  1022. package/source/class/qx/tool/utils/Values.js +4 -7
  1023. package/source/class/qx/tool/utils/Website.js +82 -29
  1024. package/source/class/qx/tool/utils/files/FindFiles.js +37 -33
  1025. package/source/class/qx/tool/utils/files/Utils.js +74 -54
  1026. package/source/class/qx/tool/utils/json/Parser.js +163 -54
  1027. package/source/class/qx/tool/utils/json/Stringify.js +87 -72
  1028. package/source/class/qx/tool/utils/json/Tokenizer.js +64 -39
  1029. package/source/class/qx/tool/utils/json/Writer.js +20 -21
  1030. package/source/class/qx/type/Array.js +19 -41
  1031. package/source/class/qx/type/BaseArray.js +136 -151
  1032. package/source/class/qx/type/BaseError.js +17 -34
  1033. package/source/class/qx/type/BaseString.js +104 -120
  1034. package/source/class/qx/type/__init__.js +3 -3
  1035. package/source/class/qx/ui/basic/Atom.js +75 -109
  1036. package/source/class/qx/ui/basic/Image.js +283 -319
  1037. package/source/class/qx/ui/basic/Label.js +161 -208
  1038. package/source/class/qx/ui/command/Command.js +51 -86
  1039. package/source/class/qx/ui/command/Group.js +43 -50
  1040. package/source/class/qx/ui/command/GroupManager.js +50 -53
  1041. package/source/class/qx/ui/container/Composite.js +15 -29
  1042. package/source/class/qx/ui/container/Resizer.js +7 -11
  1043. package/source/class/qx/ui/container/Scroll.js +10 -21
  1044. package/source/class/qx/ui/container/SlideBar.js +78 -118
  1045. package/source/class/qx/ui/container/Stack.js +27 -54
  1046. package/source/class/qx/ui/control/ColorPopup.js +109 -130
  1047. package/source/class/qx/ui/control/ColorSelector.js +334 -301
  1048. package/source/class/qx/ui/control/DateChooser.js +143 -177
  1049. package/source/class/qx/ui/core/Blocker.js +91 -127
  1050. package/source/class/qx/ui/core/ColumnData.js +16 -34
  1051. package/source/class/qx/ui/core/DragDropCursor.js +17 -30
  1052. package/source/class/qx/ui/core/DragDropScrolling.js +8 -14
  1053. package/source/class/qx/ui/core/EventHandler.js +108 -132
  1054. package/source/class/qx/ui/core/FocusHandler.js +78 -127
  1055. package/source/class/qx/ui/core/IMultiSelection.js +5 -9
  1056. package/source/class/qx/ui/core/ISingleSelection.js +10 -16
  1057. package/source/class/qx/ui/core/ISingleSelectionProvider.js +4 -6
  1058. package/source/class/qx/ui/core/LayoutItem.js +190 -306
  1059. package/source/class/qx/ui/core/MBlocker.js +22 -38
  1060. package/source/class/qx/ui/core/MChildrenHandling.js +14 -29
  1061. package/source/class/qx/ui/core/MContentPadding.js +50 -69
  1062. package/source/class/qx/ui/core/MDragDropScrolling.js +82 -80
  1063. package/source/class/qx/ui/core/MExecutable.js +27 -52
  1064. package/source/class/qx/ui/core/MLayoutHandling.js +6 -14
  1065. package/source/class/qx/ui/core/MMovable.js +64 -80
  1066. package/source/class/qx/ui/core/MMultiSelectionHandling.js +68 -87
  1067. package/source/class/qx/ui/core/MNativeOverflow.js +16 -26
  1068. package/source/class/qx/ui/core/MPlacement.js +171 -170
  1069. package/source/class/qx/ui/core/MRemoteChildrenHandling.js +14 -27
  1070. package/source/class/qx/ui/core/MRemoteLayoutHandling.js +4 -7
  1071. package/source/class/qx/ui/core/MResizable.js +142 -175
  1072. package/source/class/qx/ui/core/MSingleSelectionHandling.js +40 -45
  1073. package/source/class/qx/ui/core/SingleSelectionManager.js +41 -60
  1074. package/source/class/qx/ui/core/Spacer.js +12 -22
  1075. package/source/class/qx/ui/core/Widget.js +688 -973
  1076. package/source/class/qx/ui/core/queue/Appearance.js +15 -24
  1077. package/source/class/qx/ui/core/queue/Dispose.js +7 -16
  1078. package/source/class/qx/ui/core/queue/Layout.js +44 -71
  1079. package/source/class/qx/ui/core/queue/Manager.js +140 -133
  1080. package/source/class/qx/ui/core/queue/Visibility.js +21 -39
  1081. package/source/class/qx/ui/core/queue/Widget.js +15 -26
  1082. package/source/class/qx/ui/core/scroll/AbstractScrollArea.js +124 -162
  1083. package/source/class/qx/ui/core/scroll/IScrollBar.js +13 -24
  1084. package/source/class/qx/ui/core/scroll/MRoll.js +14 -19
  1085. package/source/class/qx/ui/core/scroll/MScrollBarFactory.js +3 -6
  1086. package/source/class/qx/ui/core/scroll/MWheelHandling.js +10 -12
  1087. package/source/class/qx/ui/core/scroll/NativeScrollBar.js +103 -124
  1088. package/source/class/qx/ui/core/scroll/ScrollBar.js +89 -130
  1089. package/source/class/qx/ui/core/scroll/ScrollPane.js +95 -134
  1090. package/source/class/qx/ui/core/scroll/ScrollSlider.js +13 -19
  1091. package/source/class/qx/ui/core/scroll/__init__.js +4 -4
  1092. package/source/class/qx/ui/core/selection/Abstract.js +255 -456
  1093. package/source/class/qx/ui/core/selection/ScrollArea.js +35 -73
  1094. package/source/class/qx/ui/core/selection/Widget.js +57 -120
  1095. package/source/class/qx/ui/decoration/Abstract.js +11 -20
  1096. package/source/class/qx/ui/decoration/Decorator.js +56 -55
  1097. package/source/class/qx/ui/decoration/IDecorator.js +5 -11
  1098. package/source/class/qx/ui/decoration/MBackgroundColor.js +13 -20
  1099. package/source/class/qx/ui/decoration/MBackgroundImage.js +82 -77
  1100. package/source/class/qx/ui/decoration/MBorderImage.js +72 -94
  1101. package/source/class/qx/ui/decoration/MBorderRadius.js +35 -38
  1102. package/source/class/qx/ui/decoration/MBoxShadow.js +61 -55
  1103. package/source/class/qx/ui/decoration/MDoubleBorder.js +157 -155
  1104. package/source/class/qx/ui/decoration/MLinearBackgroundGradient.js +169 -89
  1105. package/source/class/qx/ui/decoration/MSingleBorder.js +138 -124
  1106. package/source/class/qx/ui/decoration/MTransition.js +46 -42
  1107. package/source/class/qx/ui/decoration/__init__.js +2 -2
  1108. package/source/class/qx/ui/embed/AbstractIframe.js +37 -55
  1109. package/source/class/qx/ui/embed/Canvas.js +34 -66
  1110. package/source/class/qx/ui/embed/Html.js +46 -70
  1111. package/source/class/qx/ui/embed/Iframe.js +178 -158
  1112. package/source/class/qx/ui/embed/ThemedIframe.js +91 -135
  1113. package/source/class/qx/ui/form/AbstractField.js +262 -303
  1114. package/source/class/qx/ui/form/AbstractSelectBox.js +98 -88
  1115. package/source/class/qx/ui/form/Button.js +38 -73
  1116. package/source/class/qx/ui/form/CheckBox.js +47 -45
  1117. package/source/class/qx/ui/form/CheckedList.js +41 -25
  1118. package/source/class/qx/ui/form/CheckedSelectBox.js +97 -62
  1119. package/source/class/qx/ui/form/ComboBox.js +129 -143
  1120. package/source/class/qx/ui/form/DateField.js +150 -176
  1121. package/source/class/qx/ui/form/Form.js +50 -69
  1122. package/source/class/qx/ui/form/HoverButton.js +37 -54
  1123. package/source/class/qx/ui/form/IArrayForm.js +8 -16
  1124. package/source/class/qx/ui/form/IBooleanForm.js +8 -16
  1125. package/source/class/qx/ui/form/IColorForm.js +8 -16
  1126. package/source/class/qx/ui/form/IDateForm.js +8 -16
  1127. package/source/class/qx/ui/form/IExecutable.js +7 -14
  1128. package/source/class/qx/ui/form/IField.js +7 -14
  1129. package/source/class/qx/ui/form/IForm.js +17 -32
  1130. package/source/class/qx/ui/form/IListItem.js +1 -4
  1131. package/source/class/qx/ui/form/IModel.js +7 -15
  1132. package/source/class/qx/ui/form/IModelForm.js +8 -16
  1133. package/source/class/qx/ui/form/IModelSelection.js +4 -8
  1134. package/source/class/qx/ui/form/INumberForm.js +8 -15
  1135. package/source/class/qx/ui/form/IRadioItem.js +8 -17
  1136. package/source/class/qx/ui/form/IRange.js +10 -20
  1137. package/source/class/qx/ui/form/IStringForm.js +8 -16
  1138. package/source/class/qx/ui/form/List.js +85 -122
  1139. package/source/class/qx/ui/form/ListItem.js +21 -38
  1140. package/source/class/qx/ui/form/MForm.js +35 -41
  1141. package/source/class/qx/ui/form/MModelProperty.js +9 -14
  1142. package/source/class/qx/ui/form/MModelSelection.js +30 -32
  1143. package/source/class/qx/ui/form/MenuButton.js +68 -73
  1144. package/source/class/qx/ui/form/PasswordField.js +4 -6
  1145. package/source/class/qx/ui/form/RadioButton.js +43 -72
  1146. package/source/class/qx/ui/form/RadioButtonGroup.js +70 -82
  1147. package/source/class/qx/ui/form/RadioGroup.js +110 -126
  1148. package/source/class/qx/ui/form/RepeatButton.js +57 -106
  1149. package/source/class/qx/ui/form/Resetter.js +19 -29
  1150. package/source/class/qx/ui/form/SelectBox.js +80 -101
  1151. package/source/class/qx/ui/form/Slider.js +216 -268
  1152. package/source/class/qx/ui/form/Spinner.js +173 -217
  1153. package/source/class/qx/ui/form/SplitButton.js +76 -115
  1154. package/source/class/qx/ui/form/Tag.js +7 -8
  1155. package/source/class/qx/ui/form/TextArea.js +147 -153
  1156. package/source/class/qx/ui/form/TextField.js +37 -46
  1157. package/source/class/qx/ui/form/ToggleButton.js +62 -90
  1158. package/source/class/qx/ui/form/VirtualComboBox.js +73 -113
  1159. package/source/class/qx/ui/form/VirtualSelectBox.js +264 -274
  1160. package/source/class/qx/ui/form/core/AbstractVirtualBox.js +117 -157
  1161. package/source/class/qx/ui/form/core/VirtualDropDownList.js +101 -144
  1162. package/source/class/qx/ui/form/renderer/AbstractRenderer.js +48 -55
  1163. package/source/class/qx/ui/form/renderer/Double.js +25 -34
  1164. package/source/class/qx/ui/form/renderer/IFormRenderer.js +4 -8
  1165. package/source/class/qx/ui/form/renderer/Single.js +25 -35
  1166. package/source/class/qx/ui/form/renderer/SinglePlaceholder.js +12 -11
  1167. package/source/class/qx/ui/form/renderer/__init__.js +5 -5
  1168. package/source/class/qx/ui/form/validation/AsyncValidator.js +13 -19
  1169. package/source/class/qx/ui/form/validation/Manager.js +74 -108
  1170. package/source/class/qx/ui/form/validation/__init__.js +6 -6
  1171. package/source/class/qx/ui/groupbox/CheckGroupBox.js +30 -47
  1172. package/source/class/qx/ui/groupbox/GroupBox.js +36 -75
  1173. package/source/class/qx/ui/groupbox/RadioGroupBox.js +29 -59
  1174. package/source/class/qx/ui/groupbox/__init__.js +3 -3
  1175. package/source/class/qx/ui/indicator/ProgressBar.js +29 -46
  1176. package/source/class/qx/ui/layout/Abstract.js +28 -53
  1177. package/source/class/qx/ui/layout/Atom.js +95 -111
  1178. package/source/class/qx/ui/layout/Basic.js +29 -30
  1179. package/source/class/qx/ui/layout/Canvas.js +62 -99
  1180. package/source/class/qx/ui/layout/Dock.js +266 -250
  1181. package/source/class/qx/ui/layout/Flow.js +50 -76
  1182. package/source/class/qx/ui/layout/Grid.js +268 -343
  1183. package/source/class/qx/ui/layout/Grow.js +26 -32
  1184. package/source/class/qx/ui/layout/HBox.js +137 -153
  1185. package/source/class/qx/ui/layout/LineSizeIterator.js +19 -28
  1186. package/source/class/qx/ui/layout/Util.js +91 -120
  1187. package/source/class/qx/ui/layout/VBox.js +125 -147
  1188. package/source/class/qx/ui/list/List.js +148 -262
  1189. package/source/class/qx/ui/list/core/IListDelegate.js +13 -26
  1190. package/source/class/qx/ui/list/core/MWidgetController.js +51 -78
  1191. package/source/class/qx/ui/list/provider/IListProvider.js +15 -28
  1192. package/source/class/qx/ui/list/provider/WidgetProvider.js +52 -84
  1193. package/source/class/qx/ui/menu/AbstractButton.js +141 -122
  1194. package/source/class/qx/ui/menu/Button.js +14 -25
  1195. package/source/class/qx/ui/menu/ButtonLayout.js +49 -37
  1196. package/source/class/qx/ui/menu/CheckBox.js +28 -45
  1197. package/source/class/qx/ui/menu/Layout.js +45 -51
  1198. package/source/class/qx/ui/menu/Manager.js +132 -208
  1199. package/source/class/qx/ui/menu/Menu.js +227 -250
  1200. package/source/class/qx/ui/menu/MenuSlideBar.js +13 -20
  1201. package/source/class/qx/ui/menu/RadioButton.js +38 -51
  1202. package/source/class/qx/ui/menu/Separator.js +9 -16
  1203. package/source/class/qx/ui/menubar/Button.js +22 -67
  1204. package/source/class/qx/ui/menubar/MenuBar.js +17 -9
  1205. package/source/class/qx/ui/mobile/__init__.js +5 -5
  1206. package/source/class/qx/ui/mobile/basic/Atom.js +79 -101
  1207. package/source/class/qx/ui/mobile/basic/Image.js +80 -86
  1208. package/source/class/qx/ui/mobile/basic/Label.js +38 -54
  1209. package/source/class/qx/ui/mobile/container/Carousel.js +281 -188
  1210. package/source/class/qx/ui/mobile/container/Collapsible.js +57 -77
  1211. package/source/class/qx/ui/mobile/container/Composite.js +9 -13
  1212. package/source/class/qx/ui/mobile/container/Drawer.js +167 -164
  1213. package/source/class/qx/ui/mobile/container/INavigation.js +6 -10
  1214. package/source/class/qx/ui/mobile/container/IScrollDelegate.js +4 -6
  1215. package/source/class/qx/ui/mobile/container/MIScroll.js +108 -100
  1216. package/source/class/qx/ui/mobile/container/MNativeScroll.js +118 -102
  1217. package/source/class/qx/ui/mobile/container/MScrollHandling.js +8 -7
  1218. package/source/class/qx/ui/mobile/container/Navigation.js +46 -65
  1219. package/source/class/qx/ui/mobile/container/Scroll.js +140 -151
  1220. package/source/class/qx/ui/mobile/control/Picker.js +125 -112
  1221. package/source/class/qx/ui/mobile/core/Blocker.js +62 -71
  1222. package/source/class/qx/ui/mobile/core/DomUpdatedHandler.js +24 -60
  1223. package/source/class/qx/ui/mobile/core/EventHandler.js +158 -138
  1224. package/source/class/qx/ui/mobile/core/MChildrenHandling.js +14 -30
  1225. package/source/class/qx/ui/mobile/core/MLayoutHandling.js +6 -14
  1226. package/source/class/qx/ui/mobile/core/MResize.js +16 -30
  1227. package/source/class/qx/ui/mobile/core/Root.js +90 -80
  1228. package/source/class/qx/ui/mobile/core/Widget.js +351 -479
  1229. package/source/class/qx/ui/mobile/dialog/BusyIndicator.js +31 -46
  1230. package/source/class/qx/ui/mobile/dialog/Manager.js +127 -89
  1231. package/source/class/qx/ui/mobile/dialog/Menu.js +111 -122
  1232. package/source/class/qx/ui/mobile/dialog/Popup.js +202 -194
  1233. package/source/class/qx/ui/mobile/embed/Canvas.js +12 -25
  1234. package/source/class/qx/ui/mobile/embed/Html.js +13 -27
  1235. package/source/class/qx/ui/mobile/form/Button.js +12 -18
  1236. package/source/class/qx/ui/mobile/form/CheckBox.js +20 -35
  1237. package/source/class/qx/ui/mobile/form/Form.js +31 -51
  1238. package/source/class/qx/ui/mobile/form/Group.js +18 -30
  1239. package/source/class/qx/ui/mobile/form/Input.js +30 -35
  1240. package/source/class/qx/ui/mobile/form/Label.js +76 -79
  1241. package/source/class/qx/ui/mobile/form/MState.js +20 -27
  1242. package/source/class/qx/ui/mobile/form/MText.js +27 -47
  1243. package/source/class/qx/ui/mobile/form/MValue.js +66 -94
  1244. package/source/class/qx/ui/mobile/form/NumberField.js +30 -47
  1245. package/source/class/qx/ui/mobile/form/PasswordField.js +8 -14
  1246. package/source/class/qx/ui/mobile/form/RadioButton.js +25 -46
  1247. package/source/class/qx/ui/mobile/form/RadioGroup.js +2 -4
  1248. package/source/class/qx/ui/mobile/form/Row.js +14 -29
  1249. package/source/class/qx/ui/mobile/form/SelectBox.js +77 -104
  1250. package/source/class/qx/ui/mobile/form/Slider.js +116 -144
  1251. package/source/class/qx/ui/mobile/form/TextArea.js +26 -39
  1252. package/source/class/qx/ui/mobile/form/TextField.js +18 -28
  1253. package/source/class/qx/ui/mobile/form/Title.js +11 -19
  1254. package/source/class/qx/ui/mobile/form/ToggleButton.js +35 -58
  1255. package/source/class/qx/ui/mobile/form/__init__.js +1 -1
  1256. package/source/class/qx/ui/mobile/form/renderer/AbstractRenderer.js +24 -31
  1257. package/source/class/qx/ui/mobile/form/renderer/Single.js +59 -85
  1258. package/source/class/qx/ui/mobile/form/renderer/SinglePlaceholder.js +8 -16
  1259. package/source/class/qx/ui/mobile/layout/Abstract.js +48 -85
  1260. package/source/class/qx/ui/mobile/layout/AbstractBox.js +93 -125
  1261. package/source/class/qx/ui/mobile/layout/Card.js +133 -116
  1262. package/source/class/qx/ui/mobile/layout/CardAnimation.js +95 -72
  1263. package/source/class/qx/ui/mobile/layout/HBox.js +9 -12
  1264. package/source/class/qx/ui/mobile/layout/VBox.js +9 -12
  1265. package/source/class/qx/ui/mobile/list/IListDelegate.js +5 -9
  1266. package/source/class/qx/ui/mobile/list/List.js +172 -183
  1267. package/source/class/qx/ui/mobile/list/provider/Provider.js +58 -65
  1268. package/source/class/qx/ui/mobile/list/renderer/Abstract.js +54 -82
  1269. package/source/class/qx/ui/mobile/list/renderer/Default.js +39 -55
  1270. package/source/class/qx/ui/mobile/list/renderer/group/Abstract.js +20 -33
  1271. package/source/class/qx/ui/mobile/list/renderer/group/Default.js +29 -45
  1272. package/source/class/qx/ui/mobile/navigationbar/BackButton.js +11 -15
  1273. package/source/class/qx/ui/mobile/navigationbar/Button.js +11 -15
  1274. package/source/class/qx/ui/mobile/navigationbar/NavigationBar.js +23 -29
  1275. package/source/class/qx/ui/mobile/navigationbar/Title.js +12 -20
  1276. package/source/class/qx/ui/mobile/page/Manager.js +195 -169
  1277. package/source/class/qx/ui/mobile/page/NavigationPage.js +132 -196
  1278. package/source/class/qx/ui/mobile/page/Page.js +109 -148
  1279. package/source/class/qx/ui/mobile/tabbar/TabBar.js +41 -62
  1280. package/source/class/qx/ui/mobile/tabbar/TabButton.js +19 -28
  1281. package/source/class/qx/ui/mobile/toolbar/Button.js +7 -11
  1282. package/source/class/qx/ui/mobile/toolbar/Separator.js +11 -15
  1283. package/source/class/qx/ui/mobile/toolbar/ToolBar.js +30 -39
  1284. package/source/class/qx/ui/popup/Manager.js +41 -53
  1285. package/source/class/qx/ui/popup/Popup.js +22 -47
  1286. package/source/class/qx/ui/popup/__init__.js +32 -32
  1287. package/source/class/qx/ui/progressive/Progressive.js +96 -137
  1288. package/source/class/qx/ui/progressive/State.js +12 -19
  1289. package/source/class/qx/ui/progressive/headfoot/Abstract.js +10 -15
  1290. package/source/class/qx/ui/progressive/headfoot/Null.js +4 -7
  1291. package/source/class/qx/ui/progressive/headfoot/Progress.js +67 -69
  1292. package/source/class/qx/ui/progressive/headfoot/TableHeading.js +42 -54
  1293. package/source/class/qx/ui/progressive/model/Abstract.js +8 -15
  1294. package/source/class/qx/ui/progressive/model/Default.js +17 -29
  1295. package/source/class/qx/ui/progressive/renderer/Abstract.js +6 -11
  1296. package/source/class/qx/ui/progressive/renderer/FunctionCaller.js +4 -7
  1297. package/source/class/qx/ui/progressive/renderer/table/Row.js +215 -242
  1298. package/source/class/qx/ui/progressive/renderer/table/Widths.js +32 -47
  1299. package/source/class/qx/ui/progressive/renderer/table/cell/Abstract.js +17 -24
  1300. package/source/class/qx/ui/progressive/renderer/table/cell/Boolean.js +68 -79
  1301. package/source/class/qx/ui/progressive/renderer/table/cell/Conditional.js +146 -199
  1302. package/source/class/qx/ui/progressive/renderer/table/cell/Default.js +14 -32
  1303. package/source/class/qx/ui/progressive/renderer/table/cell/Html.js +2 -3
  1304. package/source/class/qx/ui/progressive/renderer/table/cell/Icon.js +38 -53
  1305. package/source/class/qx/ui/progressive/renderer/table/cell/Image.js +20 -42
  1306. package/source/class/qx/ui/progressive/renderer/table/cell/String.js +6 -12
  1307. package/source/class/qx/ui/progressive/structure/Abstract.js +14 -26
  1308. package/source/class/qx/ui/progressive/structure/Default.js +20 -40
  1309. package/source/class/qx/ui/root/Abstract.js +73 -90
  1310. package/source/class/qx/ui/root/Application.js +57 -61
  1311. package/source/class/qx/ui/root/Inline.js +78 -64
  1312. package/source/class/qx/ui/root/Page.js +25 -46
  1313. package/source/class/qx/ui/splitpane/Blocker.js +23 -30
  1314. package/source/class/qx/ui/splitpane/HLayout.js +53 -49
  1315. package/source/class/qx/ui/splitpane/Pane.js +115 -150
  1316. package/source/class/qx/ui/splitpane/Slider.js +9 -15
  1317. package/source/class/qx/ui/splitpane/Splitter.js +27 -46
  1318. package/source/class/qx/ui/splitpane/VLayout.js +53 -49
  1319. package/source/class/qx/ui/style/Stylesheet.js +12 -19
  1320. package/source/class/qx/ui/table/ICellEditorFactory.js +4 -8
  1321. package/source/class/qx/ui/table/ICellRenderer.js +3 -7
  1322. package/source/class/qx/ui/table/IColumnMenuButton.js +6 -11
  1323. package/source/class/qx/ui/table/IColumnMenuItem.js +5 -8
  1324. package/source/class/qx/ui/table/IHeaderRenderer.js +4 -8
  1325. package/source/class/qx/ui/table/IRowRenderer.js +6 -12
  1326. package/source/class/qx/ui/table/ITableModel.js +23 -41
  1327. package/source/class/qx/ui/table/MTableContextMenu.js +25 -28
  1328. package/source/class/qx/ui/table/Table.js +573 -743
  1329. package/source/class/qx/ui/table/celleditor/AbstractField.js +16 -26
  1330. package/source/class/qx/ui/table/celleditor/CheckBox.js +15 -16
  1331. package/source/class/qx/ui/table/celleditor/ComboBox.js +24 -34
  1332. package/source/class/qx/ui/table/celleditor/Dynamic.js +25 -32
  1333. package/source/class/qx/ui/table/celleditor/PasswordField.js +4 -8
  1334. package/source/class/qx/ui/table/celleditor/SelectBox.js +29 -38
  1335. package/source/class/qx/ui/table/celleditor/TextField.js +9 -14
  1336. package/source/class/qx/ui/table/cellrenderer/Abstract.js +79 -72
  1337. package/source/class/qx/ui/table/cellrenderer/AbstractImage.js +71 -86
  1338. package/source/class/qx/ui/table/cellrenderer/Boolean.js +36 -50
  1339. package/source/class/qx/ui/table/cellrenderer/Conditional.js +74 -63
  1340. package/source/class/qx/ui/table/cellrenderer/Date.js +12 -22
  1341. package/source/class/qx/ui/table/cellrenderer/Debug.js +9 -9
  1342. package/source/class/qx/ui/table/cellrenderer/Default.js +30 -52
  1343. package/source/class/qx/ui/table/cellrenderer/Dynamic.js +13 -24
  1344. package/source/class/qx/ui/table/cellrenderer/Html.js +6 -8
  1345. package/source/class/qx/ui/table/cellrenderer/Image.js +13 -26
  1346. package/source/class/qx/ui/table/cellrenderer/Number.js +13 -24
  1347. package/source/class/qx/ui/table/cellrenderer/Password.js +8 -11
  1348. package/source/class/qx/ui/table/cellrenderer/Replace.js +27 -42
  1349. package/source/class/qx/ui/table/cellrenderer/String.js +5 -7
  1350. package/source/class/qx/ui/table/columnmenu/Button.js +19 -29
  1351. package/source/class/qx/ui/table/columnmenu/MenuItem.js +11 -19
  1352. package/source/class/qx/ui/table/columnmenu/__init__.js +4 -4
  1353. package/source/class/qx/ui/table/columnmenu/grid/__init__.js +4 -4
  1354. package/source/class/qx/ui/table/columnmenu/simple/__init__.js +4 -4
  1355. package/source/class/qx/ui/table/columnmodel/Basic.js +193 -215
  1356. package/source/class/qx/ui/table/columnmodel/Resize.js +65 -111
  1357. package/source/class/qx/ui/table/columnmodel/resizebehavior/Abstract.js +17 -24
  1358. package/source/class/qx/ui/table/columnmodel/resizebehavior/Default.js +66 -117
  1359. package/source/class/qx/ui/table/headerrenderer/Default.js +25 -46
  1360. package/source/class/qx/ui/table/headerrenderer/HeaderCell.js +39 -51
  1361. package/source/class/qx/ui/table/headerrenderer/Icon.js +11 -27
  1362. package/source/class/qx/ui/table/model/Abstract.js +52 -62
  1363. package/source/class/qx/ui/table/model/Filtered.js +121 -153
  1364. package/source/class/qx/ui/table/model/Remote.js +166 -271
  1365. package/source/class/qx/ui/table/model/Simple.js +215 -250
  1366. package/source/class/qx/ui/table/pane/CellEvent.js +25 -32
  1367. package/source/class/qx/ui/table/pane/Clipper.js +8 -12
  1368. package/source/class/qx/ui/table/pane/FocusIndicator.js +42 -48
  1369. package/source/class/qx/ui/table/pane/Header.js +48 -86
  1370. package/source/class/qx/ui/table/pane/Model.js +80 -97
  1371. package/source/class/qx/ui/table/pane/Pane.js +129 -189
  1372. package/source/class/qx/ui/table/pane/Scroller.js +542 -663
  1373. package/source/class/qx/ui/table/rowrenderer/Default.js +76 -87
  1374. package/source/class/qx/ui/table/selection/Manager.js +23 -57
  1375. package/source/class/qx/ui/table/selection/Model.js +89 -179
  1376. package/source/class/qx/ui/tabview/Page.js +69 -74
  1377. package/source/class/qx/ui/tabview/TabButton.js +45 -72
  1378. package/source/class/qx/ui/tabview/TabView.js +96 -140
  1379. package/source/class/qx/ui/toolbar/Button.js +13 -43
  1380. package/source/class/qx/ui/toolbar/CheckBox.js +12 -43
  1381. package/source/class/qx/ui/toolbar/MenuButton.js +18 -34
  1382. package/source/class/qx/ui/toolbar/Part.js +42 -64
  1383. package/source/class/qx/ui/toolbar/PartContainer.js +19 -28
  1384. package/source/class/qx/ui/toolbar/RadioButton.js +29 -15
  1385. package/source/class/qx/ui/toolbar/Separator.js +15 -25
  1386. package/source/class/qx/ui/toolbar/SplitButton.js +18 -55
  1387. package/source/class/qx/ui/toolbar/ToolBar.js +185 -232
  1388. package/source/class/qx/ui/tooltip/Manager.js +125 -123
  1389. package/source/class/qx/ui/tooltip/ToolTip.js +49 -79
  1390. package/source/class/qx/ui/tooltip/__init__.js +23 -23
  1391. package/source/class/qx/ui/tree/Tree.js +95 -148
  1392. package/source/class/qx/ui/tree/TreeFile.js +8 -15
  1393. package/source/class/qx/ui/tree/TreeFolder.js +8 -15
  1394. package/source/class/qx/ui/tree/VirtualTree.js +207 -333
  1395. package/source/class/qx/ui/tree/VirtualTreeItem.js +30 -45
  1396. package/source/class/qx/ui/tree/__init__.js +50 -50
  1397. package/source/class/qx/ui/tree/core/AbstractItem.js +98 -152
  1398. package/source/class/qx/ui/tree/core/AbstractTreeItem.js +83 -137
  1399. package/source/class/qx/ui/tree/core/FolderOpenButton.js +15 -34
  1400. package/source/class/qx/ui/tree/core/IVirtualTree.js +13 -33
  1401. package/source/class/qx/ui/tree/core/IVirtualTreeDelegate.js +9 -16
  1402. package/source/class/qx/ui/tree/core/MWidgetController.js +58 -69
  1403. package/source/class/qx/ui/tree/core/OpenCloseController.js +29 -35
  1404. package/source/class/qx/ui/tree/core/Util.js +12 -16
  1405. package/source/class/qx/ui/tree/provider/IVirtualTreeProvider.js +10 -23
  1406. package/source/class/qx/ui/tree/provider/WidgetProvider.js +39 -67
  1407. package/source/class/qx/ui/tree/selection/SelectionManager.js +27 -41
  1408. package/source/class/qx/ui/treevirtual/DefaultDataCellRenderer.js +2 -3
  1409. package/source/class/qx/ui/treevirtual/MFamily.js +26 -63
  1410. package/source/class/qx/ui/treevirtual/MNode.js +43 -103
  1411. package/source/class/qx/ui/treevirtual/MTreePrimitive.js +41 -52
  1412. package/source/class/qx/ui/treevirtual/SelectionManager.js +44 -58
  1413. package/source/class/qx/ui/treevirtual/SimpleTreeDataCellRenderer.js +172 -229
  1414. package/source/class/qx/ui/treevirtual/SimpleTreeDataModel.js +256 -367
  1415. package/source/class/qx/ui/treevirtual/SimpleTreeDataRowRenderer.js +8 -18
  1416. package/source/class/qx/ui/treevirtual/TreeVirtual.js +155 -250
  1417. package/source/class/qx/ui/treevirtual/celleditor/NodeEditor.js +10 -16
  1418. package/source/class/qx/ui/treevirtual/pane/Scroller.js +14 -11
  1419. package/source/class/qx/ui/virtual/__init__.js +4 -4
  1420. package/source/class/qx/ui/virtual/behavior/Prefetch.js +71 -86
  1421. package/source/class/qx/ui/virtual/cell/Abstract.js +18 -27
  1422. package/source/class/qx/ui/virtual/cell/AbstractImage.js +42 -51
  1423. package/source/class/qx/ui/virtual/cell/AbstractWidget.js +25 -49
  1424. package/source/class/qx/ui/virtual/cell/Boolean.js +31 -44
  1425. package/source/class/qx/ui/virtual/cell/Cell.js +143 -183
  1426. package/source/class/qx/ui/virtual/cell/CellStylesheet.js +31 -38
  1427. package/source/class/qx/ui/virtual/cell/Date.js +15 -24
  1428. package/source/class/qx/ui/virtual/cell/Html.js +9 -20
  1429. package/source/class/qx/ui/virtual/cell/ICell.js +4 -6
  1430. package/source/class/qx/ui/virtual/cell/IWidgetCell.js +7 -12
  1431. package/source/class/qx/ui/virtual/cell/IWidgetCellDelegate.js +4 -6
  1432. package/source/class/qx/ui/virtual/cell/Image.js +8 -14
  1433. package/source/class/qx/ui/virtual/cell/Number.js +14 -23
  1434. package/source/class/qx/ui/virtual/cell/String.js +11 -20
  1435. package/source/class/qx/ui/virtual/cell/WidgetCell.js +13 -16
  1436. package/source/class/qx/ui/virtual/cell/__init__.js +4 -4
  1437. package/source/class/qx/ui/virtual/core/Axis.js +75 -103
  1438. package/source/class/qx/ui/virtual/core/CellEvent.js +23 -31
  1439. package/source/class/qx/ui/virtual/core/IHtmlCellProvider.js +4 -6
  1440. package/source/class/qx/ui/virtual/core/ILayer.js +5 -15
  1441. package/source/class/qx/ui/virtual/core/IWidgetCellProvider.js +5 -7
  1442. package/source/class/qx/ui/virtual/core/Pane.js +199 -242
  1443. package/source/class/qx/ui/virtual/core/Scroller.js +25 -43
  1444. package/source/class/qx/ui/virtual/layer/Abstract.js +44 -83
  1445. package/source/class/qx/ui/virtual/layer/AbstractBackground.js +47 -68
  1446. package/source/class/qx/ui/virtual/layer/CellSpanManager.js +74 -96
  1447. package/source/class/qx/ui/virtual/layer/Column.js +26 -36
  1448. package/source/class/qx/ui/virtual/layer/GridLines.js +43 -70
  1449. package/source/class/qx/ui/virtual/layer/HtmlCell.js +34 -32
  1450. package/source/class/qx/ui/virtual/layer/HtmlCellSpan.js +54 -56
  1451. package/source/class/qx/ui/virtual/layer/Row.js +28 -36
  1452. package/source/class/qx/ui/virtual/layer/WidgetCell.js +87 -123
  1453. package/source/class/qx/ui/virtual/layer/WidgetCellSpan.js +123 -124
  1454. package/source/class/qx/ui/virtual/selection/Abstract.js +26 -54
  1455. package/source/class/qx/ui/virtual/selection/CellLines.js +11 -21
  1456. package/source/class/qx/ui/virtual/selection/CellRectangle.js +45 -73
  1457. package/source/class/qx/ui/virtual/selection/Column.js +16 -35
  1458. package/source/class/qx/ui/virtual/selection/ISelectionDelegate.js +5 -9
  1459. package/source/class/qx/ui/virtual/selection/MModel.js +84 -122
  1460. package/source/class/qx/ui/virtual/selection/Row.js +29 -61
  1461. package/source/class/qx/ui/website/Accordion.js +39 -42
  1462. package/source/class/qx/ui/website/Button.js +17 -25
  1463. package/source/class/qx/ui/website/Calendar.js +243 -172
  1464. package/source/class/qx/ui/website/Carousel.js +169 -155
  1465. package/source/class/qx/ui/website/DatePicker.js +99 -85
  1466. package/source/class/qx/ui/website/Rating.js +35 -53
  1467. package/source/class/qx/ui/website/Slider.js +174 -153
  1468. package/source/class/qx/ui/website/Table.js +482 -456
  1469. package/source/class/qx/ui/website/Tabs.js +225 -180
  1470. package/source/class/qx/ui/website/Widget.js +39 -52
  1471. package/source/class/qx/ui/window/Desktop.js +14 -12
  1472. package/source/class/qx/ui/window/IDesktop.js +8 -10
  1473. package/source/class/qx/ui/window/IWindowManager.js +7 -9
  1474. package/source/class/qx/ui/window/MDesktop.js +34 -62
  1475. package/source/class/qx/ui/window/Manager.js +31 -57
  1476. package/source/class/qx/ui/window/Window.js +256 -349
  1477. package/source/class/qx/util/AliasManager.js +23 -42
  1478. package/source/class/qx/util/Animation.js +248 -191
  1479. package/source/class/qx/util/Base64.js +144 -89
  1480. package/source/class/qx/util/ColorUtil.js +253 -287
  1481. package/source/class/qx/util/DeferredCall.js +21 -30
  1482. package/source/class/qx/util/DeferredCallManager.js +23 -44
  1483. package/source/class/qx/util/Delegate.js +4 -10
  1484. package/source/class/qx/util/DisposeUtil.js +76 -70
  1485. package/source/class/qx/util/DynamicScriptLoader.js +83 -66
  1486. package/source/class/qx/util/EditDistance.js +64 -58
  1487. package/source/class/qx/util/ExtendedColor.js +157 -163
  1488. package/source/class/qx/util/Function.js +8 -8
  1489. package/source/class/qx/util/LibraryManager.js +11 -18
  1490. package/source/class/qx/util/OOUtil.js +17 -36
  1491. package/source/class/qx/util/ObjectPool.js +19 -45
  1492. package/source/class/qx/util/Permutation.js +9 -16
  1493. package/source/class/qx/util/PropertyUtil.js +58 -70
  1494. package/source/class/qx/util/Request.js +27 -16
  1495. package/source/class/qx/util/ResourceManager.js +103 -104
  1496. package/source/class/qx/util/ResponseParser.js +14 -21
  1497. package/source/class/qx/util/RingBuffer.js +46 -48
  1498. package/source/class/qx/util/Serializer.js +103 -68
  1499. package/source/class/qx/util/StringBuilder.js +11 -22
  1500. package/source/class/qx/util/StringEscape.js +15 -29
  1501. package/source/class/qx/util/StringSplit.js +18 -21
  1502. package/source/class/qx/util/TimerManager.js +61 -70
  1503. package/source/class/qx/util/Uri.js +42 -30
  1504. package/source/class/qx/util/Uuid.js +50 -35
  1505. package/source/class/qx/util/Validate.js +88 -73
  1506. package/source/class/qx/util/ValueManager.js +17 -29
  1507. package/source/class/qx/util/Wheel.js +22 -16
  1508. package/source/class/qx/util/format/DateFormat.js +853 -763
  1509. package/source/class/qx/util/format/IFormat.js +4 -8
  1510. package/source/class/qx/util/format/NumberFormat.js +84 -91
  1511. package/source/class/qx/util/fsm/FiniteStateMachine.js +323 -382
  1512. package/source/class/qx/util/fsm/State.js +210 -249
  1513. package/source/class/qx/util/fsm/Transition.js +138 -160
  1514. package/source/class/qx/util/placement/AbstractAxis.js +12 -14
  1515. package/source/class/qx/util/placement/BestFitAxis.js +5 -8
  1516. package/source/class/qx/util/placement/DirectAxis.js +5 -7
  1517. package/source/class/qx/util/placement/KeepAlignAxis.js +8 -14
  1518. package/source/class/qx/util/placement/Placement.js +39 -56
  1519. package/source/class/qx/util/placement/__init__.js +4 -4
  1520. package/source/class/qx/xml/Document.js +21 -34
  1521. package/source/class/qx/xml/Element.js +90 -73
  1522. package/source/class/qx/xml/String.js +15 -21
  1523. package/source/class/qxWeb.js +104 -69
  1524. package/source/resource/qx/decoration/Indigo/font/JosefinSlab-SemiBold.ttf +0 -0
  1525. package/source/resource/qx/decoration/Indigo/font/SIL Open Font License 1.1.txt +0 -0
  1526. package/source/resource/qx/iconfont/MaterialIcons/fetch-fonts.sh +0 -0
  1527. package/source/resource/qx/mobile/js/iscroll.js +1328 -982
  1528. package/source/resource/qx/mobile/js/iscroll.min.js +1081 -1
  1529. package/source/resource/qx/mobile/scss/common/_gradients.scss +3 -1
  1530. package/source/resource/qx/mobile/scss/theme/indigo/_styles.scss +1 -1
  1531. package/source/resource/qx/mobile/scss/ui/_carousel.scss +2 -2
  1532. package/source/resource/qx/mobile/scss/ui/_checkbox.scss +3 -3
  1533. package/source/resource/qx/mobile/scss/ui/_collapsible.scss +2 -2
  1534. package/source/resource/qx/mobile/scss/ui/_picker.scss +4 -4
  1535. package/source/resource/qx/mobile/scss/ui/_radiobutton.scss +4 -4
  1536. package/source/resource/qx/mobile/scss/ui/_slider.scss +7 -7
  1537. package/source/resource/qx/scss/_gradients.scss +3 -1
  1538. package/source/resource/qx/scss/_mixins.scss +4 -2
  1539. package/source/resource/qx/test/dynamicscriptloader/first.js +1 -1
  1540. package/source/resource/qx/test/dynamicscriptloader/second.js +1 -1
  1541. package/source/resource/qx/test/dynamicscriptloader/third.js +1 -1
  1542. package/source/resource/qx/test/script.js +1 -1
  1543. package/source/resource/qx/test/webworker.js +2 -2
  1544. package/source/resource/qx/tool/bin/build-devtools +0 -0
  1545. package/source/resource/qx/tool/bin/build-website +0 -0
  1546. package/source/resource/qx/tool/bin/download-assets +0 -0
  1547. package/source/resource/qx/tool/cli/templates/loader/loader-node.tmpl.js +3 -1
  1548. package/source/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/scss/_styles.scss +1 -1
  1549. package/source/resource/qx/tool/cli/templates/template_vars.js +1 -1
  1550. package/source/resource/qx/tool/loadsass.js +16 -21
  1551. package/source/resource/qx/tool/schema/Manifest-1-0-0.json +1 -2
  1552. package/source/resource/qx/tool/schema/Manifest-2-0-0.json +1 -2
  1553. package/source/resource/qx/tool/schema/compile-1-0-0.json +16 -20
  1554. package/source/resource/qx/tool/website/build/assets/bluebird.min.js +4593 -9
  1555. package/source/resource/qx/tool/website/build/assets/buttons.js +391 -1
  1556. package/source/resource/qx/tool/website/build/assets/fontawesome-all.js +8963 -1
  1557. package/source/resource/qx/tool/website/build/assets/jquery.js +5452 -3
  1558. package/source/resource/qx/tool/website/build/diagnostics/dependson.js +31 -31
  1559. package/source/resource/qx/tool/website/build/diagnostics/requiredby.js +32 -36
  1560. package/source/resource/qx/tool/website/build/scripts/serve.js +87 -66
  1561. package/source/resource/qx/tool/website/src/assets/bluebird.min.js +4593 -9
  1562. package/source/resource/qx/tool/website/src/assets/buttons.js +391 -1
  1563. package/source/resource/qx/tool/website/src/assets/fontawesome-all.js +8963 -1
  1564. package/source/resource/qx/tool/website/src/assets/jquery.js +5452 -3
  1565. package/source/resource/qx/tool/website/src/diagnostics/dependson.js +31 -31
  1566. package/source/resource/qx/tool/website/src/diagnostics/requiredby.js +32 -36
  1567. package/source/resource/qx/tool/website/src/scripts/serve.js +87 -66
  1568. package/source/resource/qx/website/scss/ui/_carousel.scss +2 -2
  1569. package/source/translation/hr.po +297 -0
  1570. package/lib/resource/qx/static/blank.gif +0 -0
  1571. package/lib/resource/qx/tool/website/.gitignore +0 -2
  1572. package/source/class/qx/io/remote/Exchange.js +0 -1063
  1573. package/source/class/qx/io/remote/Request.js +0 -1021
  1574. package/source/class/qx/io/remote/RequestQueue.js +0 -521
  1575. package/source/class/qx/io/remote/Response.js +0 -137
  1576. package/source/class/qx/io/remote/Rpc.js +0 -1075
  1577. package/source/class/qx/io/remote/RpcError.js +0 -198
  1578. package/source/class/qx/io/remote/__init__.js +0 -88
  1579. package/source/class/qx/io/remote/transport/Abstract.js +0 -513
  1580. package/source/class/qx/io/remote/transport/Iframe.js +0 -652
  1581. package/source/class/qx/io/remote/transport/Script.js +0 -475
  1582. package/source/class/qx/io/remote/transport/XmlHttp.js +0 -1019
  1583. package/source/class/qx/io/remote/transport/__init__.js +0 -3
  1584. package/source/class/qx/io/request/auth/.gitignore +0 -0
  1585. package/source/class/qx/test/bom/client/.gitignore +0 -0
  1586. package/source/class/qx/test/io/remote/AbstractRequest.js +0 -150
  1587. package/source/class/qx/test/io/remote/RequestIframe.js +0 -105
  1588. package/source/class/qx/test/io/remote/RequestXhr.js +0 -151
  1589. package/source/class/qx/test/io/remote/Rpc.js +0 -205
  1590. package/source/class/qx/test/io/remote/__init__.js +0 -4
  1591. package/source/class/qx/test/io/remote/transport/Iframe.js +0 -67
  1592. package/source/class/qx/test/io/remote/transport/XmlHttp.js +0 -133
  1593. package/source/class/qx/test/io/remote/transport/__init__.js +0 -4
  1594. package/source/class/qx/test/ui/control/.gitignore +0 -0
  1595. package/source/resource/qx/decoration/Modern/treevirtual/.gitignore +0 -0
  1596. package/source/resource/qx/mobile/css/.gitignore +0 -3
  1597. package/source/resource/qx/tool/website/.gitignore +0 -2
  1598. package/source/resource/qx/website/.gitignore +0 -1
  1599. package/source/resource/qx/website/scss/.gitignore +0 -1
@@ -64,16 +64,13 @@
64
64
  * single-quoted.
65
65
  *
66
66
  * The same format patterns will be used for both parsing and output formatting.
67
- *
67
+ *
68
68
  * NOTE: Instances of this class must be disposed of after use
69
69
  *
70
70
  */
71
- qx.Class.define("qx.util.format.DateFormat",
72
- {
73
- extend : qx.core.Object,
74
- implement : [ qx.util.format.IFormat ],
75
-
76
-
71
+ qx.Class.define("qx.util.format.DateFormat", {
72
+ extend: qx.core.Object,
73
+ implement: [qx.util.format.IFormat],
77
74
 
78
75
  /*
79
76
  *****************************************************************************
@@ -87,37 +84,38 @@ qx.Class.define("qx.util.format.DateFormat",
87
84
  * @param locale {String?} optional locale to be used. In case this is not present, the {@link #locale} property of DateFormat
88
85
  * will be following the {@link qx.locale.Manager#locale} property of qx.locale.Manager
89
86
  */
90
- construct : function(format, locale)
91
- {
92
- this.base(arguments);
87
+ construct(format, locale) {
88
+ super();
93
89
 
94
90
  this.__initialLocale = this.__locale = locale;
95
91
 
96
- if (format != null)
97
- {
92
+ if (format != null) {
98
93
  this.__format = format.toString();
99
- if(this.__format in qx.util.format.DateFormat.ISO_MASKS)
100
- {
101
- if(this.__format === 'isoUtcDateTime') {
94
+ if (this.__format in qx.util.format.DateFormat.ISO_MASKS) {
95
+ if (this.__format === "isoUtcDateTime") {
102
96
  this.__UTC = true;
103
97
  }
104
98
  this.__format = qx.util.format.DateFormat.ISO_MASKS[this.__format];
105
99
  }
106
- } else
107
- {
108
- this.__format = qx.locale.Date.getDateFormat("long", this.getLocale()) + " " + qx.locale.Date.getDateTimeFormat("HHmmss", "HH:mm:ss", this.getLocale());
100
+ } else {
101
+ this.__format =
102
+ qx.locale.Date.getDateFormat("long", this.getLocale()) +
103
+ " " +
104
+ qx.locale.Date.getDateTimeFormat(
105
+ "HHmmss",
106
+ "HH:mm:ss",
107
+ this.getLocale()
108
+ );
109
109
  }
110
110
  },
111
111
 
112
-
113
112
  /*
114
113
  *****************************************************************************
115
114
  STATICS
116
115
  *****************************************************************************
117
116
  */
118
117
 
119
- statics :
120
- {
118
+ statics: {
121
119
  /**
122
120
  * Convenience factory that returns a <code>DateFomat</code> instance that
123
121
  * uses a short date-only format. Beware that the overall layout of the
@@ -128,21 +126,22 @@ qx.Class.define("qx.util.format.DateFormat",
128
126
  *
129
127
  * @return {DateFormat} a DateFormat instance.
130
128
  */
131
- getDateInstance : function()
132
- {
129
+ getDateInstance() {
133
130
  var DateFormat = qx.util.format.DateFormat;
134
131
 
135
132
  var format = qx.locale.Date.getDateFormat("short") + "";
136
133
 
137
134
  // Memoizing the instance, so caller doesn't have to dispose it.
138
- if (DateFormat._dateInstance == null || DateFormat._dateInstance.__format != format) {
135
+ if (
136
+ DateFormat._dateInstance == null ||
137
+ DateFormat._dateInstance.__format != format
138
+ ) {
139
139
  DateFormat._dateInstance = new DateFormat(format);
140
140
  }
141
141
 
142
142
  return DateFormat._dateInstance;
143
143
  },
144
144
 
145
-
146
145
  /**
147
146
  * Convenience factory that returns a <code>DateFomat</code> instance that
148
147
  * uses a long date/time format. Beware that the overall layout of the
@@ -153,63 +152,63 @@ qx.Class.define("qx.util.format.DateFormat",
153
152
  *
154
153
  * @return {DateFormat} a DateFormat instance.
155
154
  */
156
- getDateTimeInstance : function()
157
- {
155
+ getDateTimeInstance() {
158
156
  var DateFormat = qx.util.format.DateFormat;
159
157
 
160
- var format = qx.locale.Date.getDateFormat("long") + " " + qx.locale.Date.getDateTimeFormat("HHmmss", "HH:mm:ss");
158
+ var format =
159
+ qx.locale.Date.getDateFormat("long") +
160
+ " " +
161
+ qx.locale.Date.getDateTimeFormat("HHmmss", "HH:mm:ss");
161
162
 
162
163
  // Memoizing the instance, so caller doesn't have to dispose it.
163
- if (DateFormat._dateTimeInstance == null || DateFormat._dateTimeInstance.__format != format) {
164
+ if (
165
+ DateFormat._dateTimeInstance == null ||
166
+ DateFormat._dateTimeInstance.__format != format
167
+ ) {
164
168
  DateFormat._dateTimeInstance = new DateFormat(format);
165
169
  }
166
170
 
167
171
  return DateFormat._dateTimeInstance;
168
172
  },
169
173
 
170
-
171
174
  /**
172
175
  * @type {Integer} The threshold until when a year should be assumed to belong to the
173
176
  * 21st century (e.g. 12 -> 2012). Years over this threshold but below 100 will be
174
177
  * assumed to belong to the 20th century (e.g. 88 -> 1988). Years over 100 will be
175
178
  * used unchanged (e.g. 1792 -> 1792).
176
179
  */
177
- ASSUME_YEAR_2000_THRESHOLD : 30,
180
+ ASSUME_YEAR_2000_THRESHOLD: 30,
178
181
 
179
182
  /** @type {Map} Special masks of patterns that are used frequently*/
180
- ISO_MASKS : {
181
- isoDate : "yyyy-MM-dd",
182
- isoTime : "HH:mm:ss",
183
- isoDateTime : "yyyy-MM-dd'T'HH:mm:ss",
184
- isoUtcDateTime : "yyyy-MM-dd'T'HH:mm:ss'Z'"
183
+ ISO_MASKS: {
184
+ isoDate: "yyyy-MM-dd",
185
+ isoTime: "HH:mm:ss",
186
+ isoDateTime: "yyyy-MM-dd'T'HH:mm:ss",
187
+ isoDateTimeTz: "yyyy-MM-dd'T'HH:mm:ssZ",
188
+ isoUtcDateTime: "yyyy-MM-dd'T'HH:mm:ss'Z'"
185
189
  },
186
190
 
187
191
  /** @type {String} The am marker. */
188
- AM_MARKER : "am",
192
+ AM_MARKER: "am",
189
193
 
190
194
  /** @type {String} The pm marker. */
191
- PM_MARKER : "pm"
192
-
195
+ PM_MARKER: "pm"
193
196
  },
194
197
 
195
-
196
-
197
-
198
198
  /*
199
199
  *****************************************************************************
200
200
  MEMBERS
201
201
  *****************************************************************************
202
202
  */
203
203
 
204
- members :
205
- {
206
- __locale : null,
207
- __initialLocale : null,
208
- __format : null,
209
- __parseFeed : null,
210
- __parseRules : null,
211
- __formatTree : null,
212
- __UTC : null,
204
+ members: {
205
+ __locale: null,
206
+ __initialLocale: null,
207
+ __format: null,
208
+ __parseFeed: null,
209
+ __parseRules: null,
210
+ __formatTree: null,
211
+ __UTC: null,
213
212
 
214
213
  /**
215
214
  * Fills a number with leading zeros ("25" -> "0025").
@@ -218,9 +217,8 @@ qx.Class.define("qx.util.format.DateFormat",
218
217
  * @param minSize {Integer} the minimum size the returned string should have.
219
218
  * @return {String} the filled number as string.
220
219
  */
221
- __fillNumber : function(number, minSize)
222
- {
223
- var str = "" + (number < 0 ? ((-1) * number) : number);
220
+ __fillNumber(number, minSize) {
221
+ var str = "" + (number < 0 ? -1 * number : number);
224
222
 
225
223
  while (str.length < minSize) {
226
224
  str = "0" + str;
@@ -229,20 +227,17 @@ qx.Class.define("qx.util.format.DateFormat",
229
227
  return number < 0 ? "-" + str : str;
230
228
  },
231
229
 
232
-
233
230
  /**
234
231
  * Returns the day in year of a date.
235
232
  *
236
233
  * @param date {Date} the date.
237
234
  * @return {Integer} the day in year.
238
235
  */
239
- __getDayInYear : function(date)
240
- {
236
+ __getDayInYear(date) {
241
237
  var helpDate = new Date(date.getTime());
242
238
  var day = helpDate.getDate();
243
239
 
244
- while (helpDate.getMonth() != 0)
245
- {
240
+ while (helpDate.getMonth() != 0) {
246
241
  // Set the date to the last day of the previous month
247
242
  helpDate.setDate(-1);
248
243
  day += helpDate.getDate() + 1;
@@ -251,26 +246,25 @@ qx.Class.define("qx.util.format.DateFormat",
251
246
  return day;
252
247
  },
253
248
 
254
-
255
249
  /**
256
250
  * Returns the thursday in the same week as the date.
257
251
  *
258
252
  * @param date {Date} the date to get the thursday of.
259
253
  * @return {Date} the thursday in the same week as the date.
260
254
  */
261
- __thursdayOfSameWeek : function(date) {
262
- return new Date(date.getTime() + (3 - ((date.getDay() + 6) % 7)) * 86400000);
255
+ __thursdayOfSameWeek(date) {
256
+ return new Date(
257
+ date.getTime() + (3 - ((date.getDay() + 6) % 7)) * 86400000
258
+ );
263
259
  },
264
260
 
265
-
266
261
  /**
267
262
  * Returns the week in year of a date.
268
263
  *
269
264
  * @param date {Date} the date to get the week in year of.
270
265
  * @return {Integer} the week in year.
271
266
  */
272
- __getWeekInYear : function(date)
273
- {
267
+ __getWeekInYear(date) {
274
268
  // The following algorithm comes from http://www.salesianer.de/util/kalwoch.html
275
269
  // Get the thursday of the week the date belongs to
276
270
  var thursdayDate = this.__thursdayOfSameWeek(date);
@@ -283,7 +277,9 @@ qx.Class.define("qx.util.format.DateFormat",
283
277
  var thursdayWeek1 = this.__thursdayOfSameWeek(new Date(weekYear, 0, 4));
284
278
 
285
279
  // Calculate the calendar week
286
- return Math.floor(1.5 + (thursdayDate.getTime() - thursdayWeek1.getTime()) / 86400000 / 7);
280
+ return Math.floor(
281
+ 1.5 + (thursdayDate.getTime() - thursdayWeek1.getTime()) / 86400000 / 7
282
+ );
287
283
  },
288
284
 
289
285
  /**
@@ -292,11 +288,15 @@ qx.Class.define("qx.util.format.DateFormat",
292
288
  * @param date {Date} the date to get the week in year of.
293
289
  * @return {Integer} the week in month.
294
290
  */
295
- __getWeekInMonth : function(date)
296
- {
291
+ __getWeekInMonth(date) {
297
292
  var thursdayDate = this.__thursdayOfSameWeek(date);
298
- var thursdayWeek1 = this.__thursdayOfSameWeek(new Date(date.getFullYear(), date.getMonth(), 4));
299
- return Math.floor(1.5 + (thursdayDate.getTime() - thursdayWeek1.getTime()) / 86400000 / 7);
293
+ var thursdayWeek1 = this.__thursdayOfSameWeek(
294
+ new Date(date.getFullYear(), date.getMonth(), 4)
295
+ );
296
+
297
+ return Math.floor(
298
+ 1.5 + (thursdayDate.getTime() - thursdayWeek1.getTime()) / 86400000 / 7
299
+ );
300
300
  },
301
301
 
302
302
  /**
@@ -308,8 +308,7 @@ qx.Class.define("qx.util.format.DateFormat",
308
308
  * @param date {Date} the date to get the week in year of.
309
309
  * @return {Integer} the week year.
310
310
  */
311
- __getWeekYear : function(date)
312
- {
311
+ __getWeekYear(date) {
313
312
  var thursdayDate = this.__thursdayOfSameWeek(date);
314
313
  return thursdayDate.getFullYear();
315
314
  },
@@ -320,9 +319,8 @@ qx.Class.define("qx.util.format.DateFormat",
320
319
  * @param year {Integer} the year to check.
321
320
  * @return {Boolean} true if it is a leap year.
322
321
  */
323
- __isLeapYear : function(year)
324
- {
325
- var februaryDate = new Date(year,2,1);
322
+ __isLeapYear(year) {
323
+ var februaryDate = new Date(year, 2, 1);
326
324
  februaryDate.setDate(-1);
327
325
  return februaryDate.getDate() + 1 === 29;
328
326
  },
@@ -334,34 +332,29 @@ qx.Class.define("qx.util.format.DateFormat",
334
332
  * @param year {Integer} the year to check.
335
333
  * @return {Object} a json object {month: M, day: D}.
336
334
  */
337
- __getMonthAndDayFromDayOfYear : function(dayOfYear,year)
338
- {
335
+ __getMonthAndDayFromDayOfYear(dayOfYear, year) {
339
336
  var month = 0;
340
337
  var day = 0;
341
338
  // if we don't know the year, we take a non-leap year'
342
- if(!year) {
339
+ if (!year) {
343
340
  year = 1971;
344
341
  }
345
342
  var dayCounter = 0;
346
- for(var i=1; i <= 12; i++)
347
- {
348
- var tempDate = new Date(year,i,1);
343
+ for (var i = 1; i <= 12; i++) {
344
+ var tempDate = new Date(year, i, 1);
349
345
  tempDate.setDate(-1);
350
346
  var days = tempDate.getDate() + 1;
351
347
  dayCounter += days;
352
- if(dayCounter < dayOfYear)
353
- {
348
+ if (dayCounter < dayOfYear) {
354
349
  month++;
355
350
  day += days;
356
- }
357
- else
358
- {
359
- day = dayOfYear - (dayCounter-days);
351
+ } else {
352
+ day = dayOfYear - (dayCounter - days);
360
353
  break;
361
354
  }
362
355
  }
363
356
 
364
- return {month: month,day: day};
357
+ return { month: month, day: day };
365
358
  },
366
359
 
367
360
  /**
@@ -372,25 +365,29 @@ qx.Class.define("qx.util.format.DateFormat",
372
365
  * @param dayOfMonth {Integer} the day in month
373
366
  * @return {Integer} the year.
374
367
  */
375
- __getYearFromWeekYearAndMonth : function(weekYear, month, dayOfMonth)
376
- {
368
+ __getYearFromWeekYearAndMonth(weekYear, month, dayOfMonth) {
377
369
  var year;
378
- switch(month){
379
- case 11 :
370
+ switch (month) {
371
+ case 11:
380
372
  year = weekYear - 1;
381
- if (weekYear != this.__getWeekYear(new Date(year,month,dayOfMonth))) {
373
+ if (
374
+ weekYear != this.__getWeekYear(new Date(year, month, dayOfMonth))
375
+ ) {
382
376
  year = weekYear;
383
377
  }
384
- break;
385
- case 0 :
378
+ break;
379
+ case 0:
386
380
  year = weekYear + 1;
387
- if (weekYear != this.__getWeekYear(new Date(year,month,dayOfMonth))) {
381
+ if (
382
+ weekYear != this.__getWeekYear(new Date(year, month, dayOfMonth))
383
+ ) {
388
384
  year = weekYear;
389
385
  }
390
- break;
391
- default :
386
+ break;
387
+ default:
392
388
  year = weekYear;
393
389
  }
390
+
394
391
  return year;
395
392
  },
396
393
 
@@ -399,25 +396,26 @@ qx.Class.define("qx.util.format.DateFormat",
399
396
  * @param value {String} The new value.
400
397
  *
401
398
  */
402
- setLocale : function(value)
403
- {
399
+ setLocale(value) {
404
400
  if (value !== null && typeof value != "string") {
405
- throw new Error("Cannot set locale to " + value + " - please provide a string");
401
+ throw new Error(
402
+ "Cannot set locale to " + value + " - please provide a string"
403
+ );
406
404
  }
407
405
  this.__locale = value === null ? this.__initialLocale : value;
408
406
  },
409
-
407
+
410
408
  /**
411
409
  * Resets the Locale
412
410
  */
413
- resetLocale : function() {
411
+ resetLocale() {
414
412
  this.setLocale(null);
415
413
  },
416
-
414
+
417
415
  /**
418
416
  * Returns the locale
419
417
  */
420
- getLocale : function() {
418
+ getLocale() {
421
419
  var locale = this.__locale;
422
420
  if (locale === undefined) {
423
421
  locale = qx.locale.Manager.getInstance().getLocale();
@@ -427,7 +425,7 @@ qx.Class.define("qx.util.format.DateFormat",
427
425
 
428
426
  /**
429
427
  * Returns the original format string
430
- *
428
+ *
431
429
  * @return {String}
432
430
  */
433
431
  getFormatString() {
@@ -440,22 +438,29 @@ qx.Class.define("qx.util.format.DateFormat",
440
438
  * @param date {Date} The date to format.
441
439
  * @return {String} the formatted date.
442
440
  */
443
- format : function(date)
444
- {
441
+ format(date) {
445
442
  // check for null dates
446
443
  if (date == null) {
447
444
  return null;
448
445
  }
449
446
 
450
- if(isNaN(date.getTime())) {
447
+ if (isNaN(date.getTime())) {
451
448
  if (qx.core.Environment.get("qx.debug")) {
452
449
  qx.log.Logger.error("Provided date is invalid");
453
450
  }
454
451
  return null;
455
452
  }
456
453
 
457
- if(this.__UTC) {
458
- date = new Date(date.getUTCFullYear(),date.getUTCMonth(),date.getUTCDate(),date.getUTCHours(),date.getUTCMinutes(),date.getUTCSeconds(),date.getUTCMilliseconds());
454
+ if (this.__UTC) {
455
+ date = new Date(
456
+ date.getUTCFullYear(),
457
+ date.getUTCMonth(),
458
+ date.getUTCDate(),
459
+ date.getUTCHours(),
460
+ date.getUTCMinutes(),
461
+ date.getUTCSeconds(),
462
+ date.getUTCMilliseconds()
463
+ );
459
464
  }
460
465
 
461
466
  var locale = this.getLocale();
@@ -478,15 +483,12 @@ qx.Class.define("qx.util.format.DateFormat",
478
483
  this.__initFormatTree();
479
484
  var output = "";
480
485
 
481
- for (var i=0; i<this.__formatTree.length; i++)
482
- {
486
+ for (var i = 0; i < this.__formatTree.length; i++) {
483
487
  var currAtom = this.__formatTree[i];
484
488
 
485
489
  if (currAtom.type == "literal") {
486
490
  output += currAtom.text;
487
- }
488
- else
489
- {
491
+ } else {
490
492
  // This is a wildcard
491
493
  var wildcardChar = currAtom.character;
492
494
  var wildcardSize = currAtom.size;
@@ -494,9 +496,8 @@ qx.Class.define("qx.util.format.DateFormat",
494
496
  // Get its replacement
495
497
  var replacement = "?";
496
498
 
497
- switch(wildcardChar)
498
- {
499
- case 'y': // Year
499
+ switch (wildcardChar) {
500
+ case "y": // Year
500
501
  if (wildcardSize == 2) {
501
502
  replacement = this.__fillNumber(fullYear % 100, 2);
502
503
  } else {
@@ -507,16 +508,16 @@ qx.Class.define("qx.util.format.DateFormat",
507
508
  replacement = "0" + replacement;
508
509
  }
509
510
  }
510
- if(fullYear < 0) {
511
+ if (fullYear < 0) {
511
512
  replacement = "-" + replacement;
512
513
  }
513
514
  }
514
515
 
515
516
  break;
516
517
 
517
- case 'Y': // Year
518
+ case "Y": // Year
518
519
  replacement = this.__getWeekYear(date) + "";
519
- var year = replacement.replace('-','');
520
+ var year = replacement.replace("-", "");
520
521
  if (wildcardSize > replacement.length) {
521
522
  for (var j = year.length; j < wildcardSize; j++) {
522
523
  year = "0" + year;
@@ -526,155 +527,275 @@ qx.Class.define("qx.util.format.DateFormat",
526
527
 
527
528
  break;
528
529
 
529
- case 'G': // Era - there is no CLDR data for ERA yet
530
+ case "G": // Era - there is no CLDR data for ERA yet
530
531
  if (wildcardSize >= 1 && wildcardSize <= 3) {
531
- replacement = fullYear > 0 ? 'AD' : 'BC';
532
- }
533
- else if(wildcardSize == 4) {
534
- replacement = fullYear > 0 ? 'Anno Domini' : 'Before Christ';
535
- }
536
- else if(wildcardSize == 5) {
537
- replacement = fullYear > 0 ? 'A' : 'B';
532
+ replacement = fullYear > 0 ? "AD" : "BC";
533
+ } else if (wildcardSize == 4) {
534
+ replacement = fullYear > 0 ? "Anno Domini" : "Before Christ";
535
+ } else if (wildcardSize == 5) {
536
+ replacement = fullYear > 0 ? "A" : "B";
538
537
  }
539
538
 
540
539
  break;
541
540
 
542
- case 'Q': // quarter
541
+ case "Q": // quarter
543
542
  if (wildcardSize == 1 || wildcardSize == 2) {
544
- replacement = this.__fillNumber(parseInt(month/4) + 1, wildcardSize);
543
+ replacement = this.__fillNumber(
544
+ parseInt(month / 4) + 1,
545
+ wildcardSize
546
+ );
545
547
  }
546
- if(wildcardSize == 3) {
547
- replacement = 'Q' + (parseInt(month/4) + 1);
548
+ if (wildcardSize == 3) {
549
+ replacement = "Q" + (parseInt(month / 4) + 1);
548
550
  }
549
551
 
550
552
  break;
551
553
 
552
- case 'q': // quarter stand alone
554
+ case "q": // quarter stand alone
553
555
  if (wildcardSize == 1 || wildcardSize == 2) {
554
- replacement = this.__fillNumber(parseInt(month/4) + 1, wildcardSize);
556
+ replacement = this.__fillNumber(
557
+ parseInt(month / 4) + 1,
558
+ wildcardSize
559
+ );
555
560
  }
556
- if(wildcardSize == 3) {
557
- replacement = 'Q' + (parseInt(month/4) + 1);
561
+ if (wildcardSize == 3) {
562
+ replacement = "Q" + (parseInt(month / 4) + 1);
558
563
  }
559
564
 
560
565
  break;
561
566
 
562
- case 'D': // Day in year (e.g. 189)
563
- replacement = this.__fillNumber(this.__getDayInYear(date), wildcardSize);
567
+ case "D": // Day in year (e.g. 189)
568
+ replacement = this.__fillNumber(
569
+ this.__getDayInYear(date),
570
+ wildcardSize
571
+ );
572
+
564
573
  break;
565
574
 
566
- case 'd': // Day in month
575
+ case "d": // Day in month
567
576
  replacement = this.__fillNumber(dayOfMonth, wildcardSize);
568
577
  break;
569
578
 
570
- case 'w': // Week in year (e.g. 27)
571
- replacement = this.__fillNumber(this.__getWeekInYear(date), wildcardSize);
579
+ case "w": // Week in year (e.g. 27)
580
+ replacement = this.__fillNumber(
581
+ this.__getWeekInYear(date),
582
+ wildcardSize
583
+ );
584
+
572
585
  break;
573
586
 
574
- case 'W': // Week in year (e.g. 27)
587
+ case "W": // Week in year (e.g. 27)
575
588
  replacement = this.__getWeekInMonth(date);
576
589
  break;
577
590
 
578
- case 'E': // Day in week
591
+ case "E": // Day in week
579
592
  if (wildcardSize >= 1 && wildcardSize <= 3) {
580
- replacement = qx.locale.Date.getDayName("abbreviated", dayOfWeek, locale, "format", true);
593
+ replacement = qx.locale.Date.getDayName(
594
+ "abbreviated",
595
+ dayOfWeek,
596
+ locale,
597
+ "format",
598
+ true
599
+ );
581
600
  } else if (wildcardSize == 4) {
582
- replacement = qx.locale.Date.getDayName("wide", dayOfWeek, locale, "format", true);
601
+ replacement = qx.locale.Date.getDayName(
602
+ "wide",
603
+ dayOfWeek,
604
+ locale,
605
+ "format",
606
+ true
607
+ );
583
608
  } else if (wildcardSize == 5) {
584
- replacement = qx.locale.Date.getDayName("narrow", dayOfWeek, locale, "format", true);
609
+ replacement = qx.locale.Date.getDayName(
610
+ "narrow",
611
+ dayOfWeek,
612
+ locale,
613
+ "format",
614
+ true
615
+ );
585
616
  }
586
617
 
587
618
  break;
588
619
 
589
- case 'e': // Day in week
620
+ case "e": // Day in week
590
621
  var startOfWeek = qx.locale.Date.getWeekStart(locale);
591
622
  // the index is 1 based
592
- var localeDayOfWeek = 1 + ((dayOfWeek - startOfWeek >=0) ? (dayOfWeek - startOfWeek) : 7 + (dayOfWeek-startOfWeek));
623
+ var localeDayOfWeek =
624
+ 1 +
625
+ (dayOfWeek - startOfWeek >= 0
626
+ ? dayOfWeek - startOfWeek
627
+ : 7 + (dayOfWeek - startOfWeek));
593
628
  if (wildcardSize >= 1 && wildcardSize <= 2) {
594
629
  replacement = this.__fillNumber(localeDayOfWeek, wildcardSize);
595
630
  } else if (wildcardSize == 3) {
596
- replacement = qx.locale.Date.getDayName("abbreviated", dayOfWeek, locale, "format", true);
631
+ replacement = qx.locale.Date.getDayName(
632
+ "abbreviated",
633
+ dayOfWeek,
634
+ locale,
635
+ "format",
636
+ true
637
+ );
597
638
  } else if (wildcardSize == 4) {
598
- replacement = qx.locale.Date.getDayName("wide", dayOfWeek, locale, "format", true);
639
+ replacement = qx.locale.Date.getDayName(
640
+ "wide",
641
+ dayOfWeek,
642
+ locale,
643
+ "format",
644
+ true
645
+ );
599
646
  } else if (wildcardSize == 5) {
600
- replacement = qx.locale.Date.getDayName("narrow", dayOfWeek, locale, "format", true);
647
+ replacement = qx.locale.Date.getDayName(
648
+ "narrow",
649
+ dayOfWeek,
650
+ locale,
651
+ "format",
652
+ true
653
+ );
601
654
  }
602
655
 
603
656
  break;
604
657
 
605
- case 'c': // Stand-alone local day in week
658
+ case "c": // Stand-alone local day in week
606
659
  var startOfWeek = qx.locale.Date.getWeekStart(locale);
607
660
  // the index is 1 based
608
- var localeDayOfWeek = 1 + ((dayOfWeek - startOfWeek >=0) ? (dayOfWeek - startOfWeek) : 7 + (dayOfWeek-startOfWeek));
661
+ var localeDayOfWeek =
662
+ 1 +
663
+ (dayOfWeek - startOfWeek >= 0
664
+ ? dayOfWeek - startOfWeek
665
+ : 7 + (dayOfWeek - startOfWeek));
609
666
  if (wildcardSize == 1) {
610
- replacement = ''+localeDayOfWeek;
667
+ replacement = "" + localeDayOfWeek;
611
668
  } else if (wildcardSize == 3) {
612
- replacement = qx.locale.Date.getDayName("abbreviated", dayOfWeek, locale, "stand-alone", true);
669
+ replacement = qx.locale.Date.getDayName(
670
+ "abbreviated",
671
+ dayOfWeek,
672
+ locale,
673
+ "stand-alone",
674
+ true
675
+ );
613
676
  } else if (wildcardSize == 4) {
614
- replacement = qx.locale.Date.getDayName("wide", dayOfWeek, locale, "stand-alone", true);
677
+ replacement = qx.locale.Date.getDayName(
678
+ "wide",
679
+ dayOfWeek,
680
+ locale,
681
+ "stand-alone",
682
+ true
683
+ );
615
684
  } else if (wildcardSize == 5) {
616
- replacement = qx.locale.Date.getDayName("narrow", dayOfWeek, locale, "stand-alone", true);
685
+ replacement = qx.locale.Date.getDayName(
686
+ "narrow",
687
+ dayOfWeek,
688
+ locale,
689
+ "stand-alone",
690
+ true
691
+ );
617
692
  }
618
693
 
619
694
  break;
620
695
 
621
- case 'M': // Month
696
+ case "M": // Month
622
697
  if (wildcardSize == 1 || wildcardSize == 2) {
623
698
  replacement = this.__fillNumber(month + 1, wildcardSize);
624
699
  } else if (wildcardSize == 3) {
625
- replacement = qx.locale.Date.getMonthName("abbreviated", month, locale, "format", true);
700
+ replacement = qx.locale.Date.getMonthName(
701
+ "abbreviated",
702
+ month,
703
+ locale,
704
+ "format",
705
+ true
706
+ );
626
707
  } else if (wildcardSize == 4) {
627
- replacement = qx.locale.Date.getMonthName("wide", month, locale, "format", true);
708
+ replacement = qx.locale.Date.getMonthName(
709
+ "wide",
710
+ month,
711
+ locale,
712
+ "format",
713
+ true
714
+ );
628
715
  } else if (wildcardSize == 5) {
629
- replacement = qx.locale.Date.getMonthName("narrow", month, locale, "format", true);
630
-
716
+ replacement = qx.locale.Date.getMonthName(
717
+ "narrow",
718
+ month,
719
+ locale,
720
+ "format",
721
+ true
722
+ );
631
723
  }
632
724
 
633
725
  break;
634
726
 
635
- case 'L': // Stand-alone month
727
+ case "L": // Stand-alone month
636
728
  if (wildcardSize == 1 || wildcardSize == 2) {
637
729
  replacement = this.__fillNumber(month + 1, wildcardSize);
638
730
  } else if (wildcardSize == 3) {
639
- replacement = qx.locale.Date.getMonthName("abbreviated", month, locale, "stand-alone", true);
731
+ replacement = qx.locale.Date.getMonthName(
732
+ "abbreviated",
733
+ month,
734
+ locale,
735
+ "stand-alone",
736
+ true
737
+ );
640
738
  } else if (wildcardSize == 4) {
641
- replacement = qx.locale.Date.getMonthName("wide", month, locale, "stand-alone", true);
739
+ replacement = qx.locale.Date.getMonthName(
740
+ "wide",
741
+ month,
742
+ locale,
743
+ "stand-alone",
744
+ true
745
+ );
642
746
  } else if (wildcardSize == 5) {
643
- replacement = qx.locale.Date.getMonthName("narrow", month, locale, "stand-alone", true);
747
+ replacement = qx.locale.Date.getMonthName(
748
+ "narrow",
749
+ month,
750
+ locale,
751
+ "stand-alone",
752
+ true
753
+ );
644
754
  }
645
755
 
646
756
  break;
647
757
 
648
- case 'a': // am/pm marker
758
+ case "a": // am/pm marker
649
759
  // NOTE: 0:00 is am, 12:00 is pm
650
- replacement = (hours < 12) ? qx.locale.Date.getAmMarker(locale) : qx.locale.Date.getPmMarker(locale);
760
+ replacement =
761
+ hours < 12
762
+ ? qx.locale.Date.getAmMarker(locale)
763
+ : qx.locale.Date.getPmMarker(locale);
651
764
  break;
652
765
 
653
- case 'H': // Hour in day (0-23)
766
+ case "H": // Hour in day (0-23)
654
767
  replacement = this.__fillNumber(hours, wildcardSize);
655
768
  break;
656
769
 
657
- case 'k': // Hour in day (1-24)
658
- replacement = this.__fillNumber((hours == 0) ? 24 : hours, wildcardSize);
770
+ case "k": // Hour in day (1-24)
771
+ replacement = this.__fillNumber(
772
+ hours == 0 ? 24 : hours,
773
+ wildcardSize
774
+ );
775
+
659
776
  break;
660
777
 
661
- case 'K': // Hour in am/pm (0-11)
778
+ case "K": // Hour in am/pm (0-11)
662
779
  replacement = this.__fillNumber(hours % 12, wildcardSize);
663
780
  break;
664
781
 
665
- case 'h': // Hour in am/pm (1-12)
666
- replacement = this.__fillNumber(((hours % 12) == 0) ? 12 : (hours % 12), wildcardSize);
782
+ case "h": // Hour in am/pm (1-12)
783
+ replacement = this.__fillNumber(
784
+ hours % 12 == 0 ? 12 : hours % 12,
785
+ wildcardSize
786
+ );
787
+
667
788
  break;
668
789
 
669
- case 'm': // Minute in hour
790
+ case "m": // Minute in hour
670
791
  replacement = this.__fillNumber(minutes, wildcardSize);
671
792
  break;
672
793
 
673
- case 's': // Second in minute
794
+ case "s": // Second in minute
674
795
  replacement = this.__fillNumber(seconds, wildcardSize);
675
796
  break;
676
797
 
677
- case 'S': // Fractional second
798
+ case "S": // Fractional second
678
799
  replacement = this.__fillNumber(ms, 3);
679
800
  if (wildcardSize < replacement.length) {
680
801
  replacement = replacement.substr(0, wildcardSize);
@@ -686,33 +807,31 @@ qx.Class.define("qx.util.format.DateFormat",
686
807
  }
687
808
  break;
688
809
 
689
- case 'z': // Time zone
690
- if (wildcardSize >= 1 && wildcardSize <= 4)
691
- {
810
+ case "z": // Time zone
811
+ if (wildcardSize >= 1 && wildcardSize <= 4) {
692
812
  replacement =
693
- "GMT" +
694
- ((timezoneSign > 0) ? "-" : "+") +
695
- this.__fillNumber(Math.abs(timezoneHours), 2) +
696
- ":" + this.__fillNumber(timezoneMinutes, 2);
813
+ "GMT" +
814
+ (timezoneSign > 0 ? "-" : "+") +
815
+ this.__fillNumber(Math.abs(timezoneHours), 2) +
816
+ ":" +
817
+ this.__fillNumber(timezoneMinutes, 2);
697
818
  }
698
819
 
699
820
  break;
700
821
 
701
- case 'Z': // RFC 822 time zone
702
- if (wildcardSize >= 1 && wildcardSize <= 3)
703
- {
704
- replacement =
705
- ((timezoneSign > 0) ? "-" : "+") +
706
- this.__fillNumber(Math.abs(timezoneHours), 2) +
707
- this.__fillNumber(timezoneMinutes, 2);
708
- }
709
- else
710
- {
822
+ case "Z": // RFC 822 time zone
823
+ if (wildcardSize >= 1 && wildcardSize <= 3) {
824
+ replacement =
825
+ (timezoneSign > 0 ? "-" : "+") +
826
+ this.__fillNumber(Math.abs(timezoneHours), 2) +
827
+ this.__fillNumber(timezoneMinutes, 2);
828
+ } else {
711
829
  replacement =
712
- "GMT" +
713
- ((timezoneSign > 0) ? "-" : "+") +
714
- this.__fillNumber(Math.abs(timezoneHours), 2) +
715
- ":" + this.__fillNumber(timezoneMinutes, 2);
830
+ "GMT" +
831
+ (timezoneSign > 0 ? "-" : "+") +
832
+ this.__fillNumber(Math.abs(timezoneHours), 2) +
833
+ ":" +
834
+ this.__fillNumber(timezoneMinutes, 2);
716
835
  }
717
836
  break;
718
837
  }
@@ -724,7 +843,6 @@ qx.Class.define("qx.util.format.DateFormat",
724
843
  return output;
725
844
  },
726
845
 
727
-
728
846
  /**
729
847
  * Parses a date.
730
848
  *
@@ -733,43 +851,46 @@ qx.Class.define("qx.util.format.DateFormat",
733
851
  * @throws {Error} If the format is not well formed or if the date string does not
734
852
  * match to the format.
735
853
  */
736
- parse : function(dateStr)
737
- {
854
+ parse(dateStr) {
738
855
  this.__initParseFeed();
739
856
 
740
857
  // Apply the regex
741
858
  var hit = this.__parseFeed.regex.exec(dateStr);
742
859
 
743
860
  if (hit == null) {
744
- throw new Error("Date string '" + dateStr + "' does not match the date format: " + this.__format);
861
+ throw new Error(
862
+ "Date string '" +
863
+ dateStr +
864
+ "' does not match the date format: " +
865
+ this.__format
866
+ );
745
867
  }
746
868
 
747
869
  // Apply the rules
748
- var dateValues =
749
- {
750
- era : 1,
751
- year : 1970,
752
- quarter : 1,
753
- month : 0,
754
- day : 1,
755
- dayOfYear : 1,
756
- hour : 0,
757
- ispm : false,
758
- weekDay : 4,
759
- weekYear : 1970,
760
- weekOfMonth : 1,
761
- weekOfYear : 1,
762
- min : 0,
763
- sec : 0,
764
- ms : 0
870
+ var dateValues = {
871
+ era: 1,
872
+ year: 1970,
873
+ quarter: 1,
874
+ month: 0,
875
+ day: 1,
876
+ dayOfYear: 1,
877
+ hour: 0,
878
+ ispm: false,
879
+ weekDay: 4,
880
+ weekYear: 1970,
881
+ weekOfMonth: 1,
882
+ weekOfYear: 1,
883
+ min: 0,
884
+ sec: 0,
885
+ ms: 0,
886
+ tzOffsetMins: null
765
887
  };
766
888
 
767
889
  var currGroup = 1;
768
890
  var applyWeekYearAfterRule = false;
769
891
  var applyDayOfYearAfterRule = false;
770
892
 
771
- for (var i=0; i<this.__parseFeed.usedRules.length; i++)
772
- {
893
+ for (var i = 0; i < this.__parseFeed.usedRules.length; i++) {
773
894
  var rule = this.__parseFeed.usedRules[i];
774
895
 
775
896
  var value = hit[currGroup];
@@ -780,72 +901,115 @@ qx.Class.define("qx.util.format.DateFormat",
780
901
  rule.manipulator(dateValues, value, rule.pattern);
781
902
  }
782
903
 
783
- if(rule.pattern == "Y+")
784
- {
904
+ if (rule.pattern == "Y+") {
785
905
  var yearRuleApplied = false;
786
- for(var k=0; k<this.__parseFeed.usedRules.length; k++) {
787
- if(this.__parseFeed.usedRules[k].pattern == 'y+'){
906
+ for (var k = 0; k < this.__parseFeed.usedRules.length; k++) {
907
+ if (this.__parseFeed.usedRules[k].pattern == "y+") {
788
908
  yearRuleApplied = true;
789
909
  break;
790
910
  }
791
911
  }
792
- if(!yearRuleApplied) {
912
+ if (!yearRuleApplied) {
793
913
  applyWeekYearAfterRule = true;
794
914
  }
795
915
  }
796
916
 
797
- if(rule.pattern.indexOf("D") != -1)
798
- {
917
+ if (rule.pattern.indexOf("D") != -1) {
799
918
  var dayRuleApplied = false;
800
- for(var k=0; k<this.__parseFeed.usedRules.length; k++) {
801
- if(this.__parseFeed.usedRules[k].pattern.indexOf("d") != -1){
919
+ for (var k = 0; k < this.__parseFeed.usedRules.length; k++) {
920
+ if (this.__parseFeed.usedRules[k].pattern.indexOf("d") != -1) {
802
921
  dayRuleApplied = true;
803
922
  break;
804
923
  }
805
924
  }
806
- if(!dayRuleApplied) {
925
+ if (!dayRuleApplied) {
807
926
  applyDayOfYearAfterRule = true;
808
927
  }
809
928
  }
810
929
 
811
- currGroup += (rule.groups == null) ? 1 : rule.groups;
930
+ currGroup += rule.groups == null ? 1 : rule.groups;
812
931
  }
813
- if(applyWeekYearAfterRule) {
814
- dateValues.year = this.__getYearFromWeekYearAndMonth(dateValues.weekYear,dateValues.month,dateValues.day);
932
+ if (applyWeekYearAfterRule) {
933
+ dateValues.year = this.__getYearFromWeekYearAndMonth(
934
+ dateValues.weekYear,
935
+ dateValues.month,
936
+ dateValues.day
937
+ );
815
938
  }
816
939
 
817
- if(applyDayOfYearAfterRule)
818
- {
819
- var dayAndMonth = this.__getMonthAndDayFromDayOfYear(dateValues.dayOfYear, dateValues.year);
940
+ if (applyDayOfYearAfterRule) {
941
+ var dayAndMonth = this.__getMonthAndDayFromDayOfYear(
942
+ dateValues.dayOfYear,
943
+ dateValues.year
944
+ );
945
+
820
946
  dateValues.month = dayAndMonth.month;
821
947
  dateValues.day = dayAndMonth.day;
822
948
  }
823
949
 
824
- if(dateValues.era < 0 && (dateValues.year * dateValues.era < 0)) {
950
+ if (dateValues.era < 0 && dateValues.year * dateValues.era < 0) {
825
951
  dateValues.year = dateValues.year * dateValues.era;
826
952
  }
827
953
 
828
- var date = new Date(dateValues.year, dateValues.month, dateValues.day, (dateValues.ispm) ? (dateValues.hour + 12) : dateValues.hour, dateValues.min, dateValues.sec, dateValues.ms);
829
-
830
- if(this.__UTC) {
831
- date = new Date(date.getUTCFullYear(),date.getUTCMonth(),date.getUTCDate(),date.getUTCHours(),date.getUTCMinutes(),date.getUTCSeconds(),date.getUTCMilliseconds());
832
- }
833
-
834
- if (dateValues.month != date.getMonth() || dateValues.year != date.getFullYear()) {
835
- throw new Error("Error parsing date '" + dateStr + "': the value for day or month is too large");
954
+ var date;
955
+ if (this.__UTC || dateValues.tzOffsetMins !== null) {
956
+ var utcMs = Date.UTC(
957
+ dateValues.year,
958
+ dateValues.month,
959
+ dateValues.day,
960
+ dateValues.ispm ? dateValues.hour + 12 : dateValues.hour,
961
+ dateValues.min,
962
+ dateValues.sec,
963
+ dateValues.ms
964
+ );
965
+
966
+ if (dateValues.tzOffsetMins !== 0) {
967
+ utcMs += dateValues.tzOffsetMins * 60000;
968
+ }
969
+ date = new Date(utcMs);
970
+ if (
971
+ this.__UTC &&
972
+ (dateValues.month !== date.getUTCMonth() ||
973
+ dateValues.year !== date.getUTCFullYear())
974
+ ) {
975
+ throw new Error(
976
+ "Error parsing date '" +
977
+ dateStr +
978
+ "': the value for day or month is too large"
979
+ );
980
+ }
981
+ } else {
982
+ date = new Date(
983
+ dateValues.year,
984
+ dateValues.month,
985
+ dateValues.day,
986
+ dateValues.ispm ? dateValues.hour + 12 : dateValues.hour,
987
+ dateValues.min,
988
+ dateValues.sec,
989
+ dateValues.ms
990
+ );
991
+
992
+ if (
993
+ dateValues.month !== date.getMonth() ||
994
+ dateValues.year !== date.getFullYear()
995
+ ) {
996
+ throw new Error(
997
+ "Error parsing date '" +
998
+ dateStr +
999
+ "': the value for day or month is too large"
1000
+ );
1001
+ }
836
1002
  }
837
1003
 
838
1004
  return date;
839
1005
  },
840
1006
 
841
-
842
1007
  /**
843
1008
  * Helper method for {@link #format()} and {@link #parse()}.
844
1009
  * Parses the date format.
845
1010
  *
846
1011
  */
847
- __initFormatTree : function()
848
- {
1012
+ __initFormatTree() {
849
1013
  if (this.__formatTree != null) {
850
1014
  return;
851
1015
  }
@@ -861,20 +1025,15 @@ qx.Class.define("qx.util.format.DateFormat",
861
1025
 
862
1026
  var i = 0;
863
1027
 
864
- while (i < format.length)
865
- {
1028
+ while (i < format.length) {
866
1029
  var currChar = format.charAt(i);
867
1030
 
868
- switch(state)
869
- {
1031
+ switch (state) {
870
1032
  case "quoted_literal":
871
1033
  // We are now inside a quoted literal
872
1034
  // Check whether the current character is an escaped "'" character
873
- if (currChar == "'")
874
- {
875
- if (i + 1 >= format.length)
876
- {
877
-
1035
+ if (currChar == "'") {
1036
+ if (i + 1 >= format.length) {
878
1037
  // this is the last character
879
1038
  i++;
880
1039
 
@@ -883,22 +1042,16 @@ qx.Class.define("qx.util.format.DateFormat",
883
1042
 
884
1043
  var lookAhead = format.charAt(i + 1);
885
1044
 
886
- if (lookAhead == "'")
887
- {
1045
+ if (lookAhead == "'") {
888
1046
  currLiteral += currChar;
889
1047
  i++;
890
- }
891
- else
892
- {
893
-
1048
+ } else {
894
1049
  // quoted literal ends
895
1050
  i++;
896
1051
 
897
1052
  state = "unkown";
898
1053
  }
899
- }
900
- else
901
- {
1054
+ } else {
902
1055
  currLiteral += currChar;
903
1056
  i++;
904
1057
  }
@@ -907,21 +1060,17 @@ qx.Class.define("qx.util.format.DateFormat",
907
1060
 
908
1061
  case "wildcard":
909
1062
  // Check whether the currChar belongs to that wildcard
910
- if (currChar == currWildcardChar)
911
- {
1063
+ if (currChar == currWildcardChar) {
912
1064
  // It does -> Raise the size
913
1065
  currWildcardSize++;
914
1066
 
915
1067
  i++;
916
- }
917
- else
918
- {
1068
+ } else {
919
1069
  // It does not -> The current wildcard is done
920
- this.__formatTree.push(
921
- {
922
- type : "wildcard",
923
- character : currWildcardChar,
924
- size : currWildcardSize
1070
+ this.__formatTree.push({
1071
+ type: "wildcard",
1072
+ character: currWildcardChar,
1073
+ size: currWildcardSize
925
1074
  });
926
1075
 
927
1076
  currWildcardChar = null;
@@ -933,17 +1082,16 @@ qx.Class.define("qx.util.format.DateFormat",
933
1082
 
934
1083
  default:
935
1084
  // We are not (any more) in a wildcard or quoted literal -> Check what's starting here
936
- if ((currChar >= 'a' && currChar <= 'z') || (currChar >= 'A' && currChar <= 'Z'))
937
- {
1085
+ if (
1086
+ (currChar >= "a" && currChar <= "z") ||
1087
+ (currChar >= "A" && currChar <= "Z")
1088
+ ) {
938
1089
  // This is a letter -> All letters are wildcards
939
1090
  // Start a new wildcard
940
1091
  currWildcardChar = currChar;
941
1092
  state = "wildcard";
942
- }
943
- else if (currChar == "'")
944
- {
945
- if (i + 1 >= format.length)
946
- {
1093
+ } else if (currChar == "'") {
1094
+ if (i + 1 >= format.length) {
947
1095
  // this is the last character
948
1096
  currLiteral += currChar;
949
1097
  i++;
@@ -952,36 +1100,28 @@ qx.Class.define("qx.util.format.DateFormat",
952
1100
 
953
1101
  var lookAhead = format.charAt(i + 1);
954
1102
 
955
- if (lookAhead == "'")
956
- {
1103
+ if (lookAhead == "'") {
957
1104
  currLiteral += currChar;
958
1105
  i++;
959
1106
  }
960
1107
 
961
1108
  i++;
962
1109
  state = "quoted_literal";
963
- }
964
- else
965
- {
1110
+ } else {
966
1111
  state = "default";
967
1112
  }
968
1113
 
969
- if (state != "default")
970
- {
1114
+ if (state != "default") {
971
1115
  // Add the literal
972
- if (currLiteral.length > 0)
973
- {
974
- this.__formatTree.push(
975
- {
976
- type : "literal",
977
- text : currLiteral
1116
+ if (currLiteral.length > 0) {
1117
+ this.__formatTree.push({
1118
+ type: "literal",
1119
+ text: currLiteral
978
1120
  });
979
1121
 
980
1122
  currLiteral = "";
981
1123
  }
982
- }
983
- else
984
- {
1124
+ } else {
985
1125
  // This is an unquoted literal -> Add it to the current literal
986
1126
  currLiteral += currChar;
987
1127
  i++;
@@ -992,26 +1132,20 @@ qx.Class.define("qx.util.format.DateFormat",
992
1132
  }
993
1133
 
994
1134
  // Add the last wildcard or literal
995
- if (currWildcardChar != null)
996
- {
997
- this.__formatTree.push(
998
- {
999
- type : "wildcard",
1000
- character : currWildcardChar,
1001
- size : currWildcardSize
1135
+ if (currWildcardChar != null) {
1136
+ this.__formatTree.push({
1137
+ type: "wildcard",
1138
+ character: currWildcardChar,
1139
+ size: currWildcardSize
1002
1140
  });
1003
- }
1004
- else if (currLiteral.length > 0)
1005
- {
1006
- this.__formatTree.push(
1007
- {
1008
- type : "literal",
1009
- text : currLiteral
1141
+ } else if (currLiteral.length > 0) {
1142
+ this.__formatTree.push({
1143
+ type: "literal",
1144
+ text: currLiteral
1010
1145
  });
1011
1146
  }
1012
1147
  },
1013
1148
 
1014
-
1015
1149
  /**
1016
1150
  * Initializes the parse feed.
1017
1151
  *
@@ -1020,10 +1154,8 @@ qx.Class.define("qx.util.format.DateFormat",
1020
1154
  *
1021
1155
  * @throws {Error} If the date format is malformed.
1022
1156
  */
1023
- __initParseFeed : function()
1024
- {
1025
- if (this.__parseFeed != null)
1026
- {
1157
+ __initParseFeed() {
1158
+ if (this.__parseFeed != null) {
1027
1159
  // We already have the parse feed
1028
1160
  return;
1029
1161
  }
@@ -1038,15 +1170,12 @@ qx.Class.define("qx.util.format.DateFormat",
1038
1170
  var usedRules = [];
1039
1171
  var pattern = "^";
1040
1172
 
1041
- for (var atomIdx=0; atomIdx<this.__formatTree.length; atomIdx++)
1042
- {
1173
+ for (var atomIdx = 0; atomIdx < this.__formatTree.length; atomIdx++) {
1043
1174
  var currAtom = this.__formatTree[atomIdx];
1044
1175
 
1045
1176
  if (currAtom.type == "literal") {
1046
1177
  pattern += qx.lang.String.escapeRegexpChars(currAtom.text);
1047
- }
1048
- else
1049
- {
1178
+ } else {
1050
1179
  // This is a wildcard
1051
1180
  var wildcardChar = currAtom.character;
1052
1181
  var wildcardSize = currAtom.size;
@@ -1054,12 +1183,10 @@ qx.Class.define("qx.util.format.DateFormat",
1054
1183
  // Get the rule for this wildcard
1055
1184
  var wildcardRule;
1056
1185
 
1057
- for (var ruleIdx=0; ruleIdx<this.__parseRules.length; ruleIdx++)
1058
- {
1186
+ for (var ruleIdx = 0; ruleIdx < this.__parseRules.length; ruleIdx++) {
1059
1187
  var rule = this.__parseRules[ruleIdx];
1060
1188
 
1061
- if ( this.__isRuleForWildcard(rule,wildcardChar,wildcardSize))
1062
- {
1189
+ if (this.__isRuleForWildcard(rule, wildcardChar, wildcardSize)) {
1063
1190
  // We found the right rule for the wildcard
1064
1191
  wildcardRule = rule;
1065
1192
  break;
@@ -1067,19 +1194,22 @@ qx.Class.define("qx.util.format.DateFormat",
1067
1194
  }
1068
1195
 
1069
1196
  // Check the rule
1070
- if (wildcardRule == null)
1071
- {
1197
+ if (wildcardRule == null) {
1072
1198
  // We have no rule for that wildcard -> Malformed date format
1073
1199
  var wildcardStr = "";
1074
1200
 
1075
- for (var i=0; i<wildcardSize; i++) {
1201
+ for (var i = 0; i < wildcardSize; i++) {
1076
1202
  wildcardStr += wildcardChar;
1077
1203
  }
1078
1204
 
1079
- throw new Error("Malformed date format: " + format + ". Wildcard " + wildcardStr + " is not supported");
1080
- }
1081
- else
1082
- {
1205
+ throw new Error(
1206
+ "Malformed date format: " +
1207
+ format +
1208
+ ". Wildcard " +
1209
+ wildcardStr +
1210
+ " is not supported"
1211
+ );
1212
+ } else {
1083
1213
  // Add the rule to the pattern
1084
1214
  usedRules.push(wildcardRule);
1085
1215
  pattern += wildcardRule.regex;
@@ -1094,16 +1224,15 @@ qx.Class.define("qx.util.format.DateFormat",
1094
1224
 
1095
1225
  try {
1096
1226
  regex = new RegExp(pattern);
1097
- } catch(exc) {
1227
+ } catch (exc) {
1098
1228
  throw new Error("Malformed date format: " + format);
1099
1229
  }
1100
1230
 
1101
1231
  // Create the this.__parseFeed
1102
- this.__parseFeed =
1103
- {
1104
- regex : regex,
1105
- "usedRules" : usedRules,
1106
- pattern : pattern
1232
+ this.__parseFeed = {
1233
+ regex: regex,
1234
+ usedRules: usedRules,
1235
+ pattern: pattern
1107
1236
  };
1108
1237
  },
1109
1238
 
@@ -1114,50 +1243,47 @@ qx.Class.define("qx.util.format.DateFormat",
1114
1243
  * @param wildcardSize {Integer} the number of wildcardChar characters in the wildcard
1115
1244
  * @return {Boolean} if the rule matches or not
1116
1245
  */
1117
- __isRuleForWildcard : function(rule, wildcardChar, wildcardSize)
1118
- {
1119
- if(wildcardChar==='y' && rule.pattern==='y+')
1120
- {
1246
+ __isRuleForWildcard(rule, wildcardChar, wildcardSize) {
1247
+ if (wildcardChar === "y" && rule.pattern === "y+") {
1121
1248
  rule.regex = rule.regexFunc(wildcardSize);
1122
1249
  return true;
1123
- }
1124
- else if(wildcardChar==='Y' && rule.pattern==='Y+')
1125
- {
1250
+ } else if (wildcardChar === "Y" && rule.pattern === "Y+") {
1126
1251
  rule.regex = rule.regexFunc(wildcardSize);
1127
1252
  return true;
1128
- }
1129
- else
1130
- {
1131
- return wildcardChar == rule.pattern.charAt(0) && wildcardSize == rule.pattern.length;
1253
+ } else {
1254
+ return (
1255
+ wildcardChar == rule.pattern.charAt(0) &&
1256
+ wildcardSize == rule.pattern.length
1257
+ );
1132
1258
  }
1133
1259
  },
1134
1260
  /**
1135
1261
  * Initializes the static parse rules.
1136
1262
  *
1137
1263
  */
1138
- __initParseRules : function()
1139
- {
1264
+ __initParseRules() {
1140
1265
  var DateFormat = qx.util.format.DateFormat;
1141
1266
  var LString = qx.lang.String;
1142
1267
 
1143
- if (this.__parseRules != null)
1144
- {
1268
+ if (this.__parseRules != null) {
1145
1269
  // The parse rules are already initialized
1146
- return ;
1270
+ return;
1147
1271
  }
1148
1272
 
1149
- var rules = this.__parseRules = [];
1273
+ var rules = (this.__parseRules = []);
1150
1274
 
1151
- var amMarker = qx.locale.Date.getAmMarker(this.getLocale()).toString() || DateFormat.AM_MARKER;
1152
- var pmMarker = qx.locale.Date.getPmMarker(this.getLocale()).toString() || DateFormat.PM_MARKER;
1275
+ var amMarker =
1276
+ qx.locale.Date.getAmMarker(this.getLocale()).toString() ||
1277
+ DateFormat.AM_MARKER;
1278
+ var pmMarker =
1279
+ qx.locale.Date.getPmMarker(this.getLocale()).toString() ||
1280
+ DateFormat.PM_MARKER;
1153
1281
  var locale = this.getLocale();
1154
1282
 
1155
- var yearManipulator = function(dateValues, value)
1156
- {
1283
+ var yearManipulator = function (dateValues, value) {
1157
1284
  value = parseInt(value, 10);
1158
1285
 
1159
- if(value >= 0)
1160
- {
1286
+ if (value >= 0) {
1161
1287
  if (value < DateFormat.ASSUME_YEAR_2000_THRESHOLD) {
1162
1288
  value += 2000;
1163
1289
  } else if (value < 100) {
@@ -1168,12 +1294,10 @@ qx.Class.define("qx.util.format.DateFormat",
1168
1294
  dateValues.year = value;
1169
1295
  };
1170
1296
 
1171
- var weekYearManipulator = function(dateValues, value)
1172
- {
1297
+ var weekYearManipulator = function (dateValues, value) {
1173
1298
  value = parseInt(value, 10);
1174
1299
 
1175
- if(value >= 0)
1176
- {
1300
+ if (value >= 0) {
1177
1301
  if (value < DateFormat.ASSUME_YEAR_2000_THRESHOLD) {
1178
1302
  value += 2000;
1179
1303
  } else if (value < 100) {
@@ -1184,100 +1308,135 @@ qx.Class.define("qx.util.format.DateFormat",
1184
1308
  dateValues.weekYear = value;
1185
1309
  };
1186
1310
 
1187
- var monthManipulator = function(dateValues, value) {
1311
+ var monthManipulator = function (dateValues, value) {
1188
1312
  dateValues.month = parseInt(value, 10) - 1;
1189
1313
  };
1190
1314
 
1191
- var localWeekDayManipulator = function(dateValues, value) {
1315
+ var localWeekDayManipulator = function (dateValues, value) {
1192
1316
  var startOfWeek = qx.locale.Date.getWeekStart(locale);
1193
- var dayOfWeek = (parseInt(value,10) - 1 + startOfWeek) <= 6 ? parseInt(value,10) - 1 + startOfWeek : (parseInt(value,10) - 1 + startOfWeek) -7;
1317
+ var dayOfWeek =
1318
+ parseInt(value, 10) - 1 + startOfWeek <= 6
1319
+ ? parseInt(value, 10) - 1 + startOfWeek
1320
+ : parseInt(value, 10) - 1 + startOfWeek - 7;
1194
1321
  dateValues.weekDay = dayOfWeek;
1195
1322
  };
1196
1323
 
1197
- var ampmManipulator = function(dateValues, value) {
1198
- var pmMarker = qx.locale.Date.getPmMarker(locale).toString() || DateFormat.PM_MARKER;
1199
- dateValues.ispm = (value == pmMarker);
1324
+ var ampmManipulator = function (dateValues, value) {
1325
+ var pmMarker =
1326
+ qx.locale.Date.getPmMarker(locale).toString() || DateFormat.PM_MARKER;
1327
+ dateValues.ispm = value == pmMarker;
1200
1328
  };
1201
1329
 
1202
- var noZeroHourManipulator = function(dateValues, value) {
1330
+ var noZeroHourManipulator = function (dateValues, value) {
1203
1331
  dateValues.hour = parseInt(value, 10) % 24;
1204
1332
  };
1205
1333
 
1206
- var noZeroAmPmHourManipulator = function(dateValues, value) {
1334
+ var noZeroAmPmHourManipulator = function (dateValues, value) {
1207
1335
  dateValues.hour = parseInt(value, 10) % 12;
1208
1336
  };
1209
1337
 
1210
- var ignoreManipulator = function(dateValues, value) {
1211
- return;
1338
+ var timezoneManipulator = function (dateValues, value) {
1339
+ var regEx = new RegExp("([+-]?)(\\d\\d)(?::?(\\d\\d))?$");
1340
+ var tzResults = regEx.exec(value);
1341
+ var offsetHours = parseInt(tzResults[2], 10);
1342
+ var offsetMins = parseInt(tzResults[3], 10);
1343
+ // basic check, hours range is -12 to +14 https://en.wikipedia.org/wiki/Category:UTC_offsets
1344
+ if (offsetHours > 14) {
1345
+ throw new Error("Invalid hours in time zone offset.");
1346
+ }
1347
+ if (offsetMins > 59) {
1348
+ throw new Error("Invalid minutes in time zone offset.");
1349
+ }
1350
+ dateValues.tzOffsetMins = offsetHours * 60 + offsetMins;
1351
+ if (tzResults[1] === "-") {
1352
+ dateValues.tzOffsetMins = -dateValues.tzOffsetMins;
1353
+ }
1212
1354
  };
1213
1355
 
1214
- var narrowEraNames = ['A', 'B'];
1215
- var narrowEraNameManipulator = function(dateValues, value) {
1216
- dateValues.era = value == 'A' ? 1 : -1;
1356
+ // var ignoreManipulator = function(dateValues, value) {
1357
+ // return;
1358
+ // };
1359
+
1360
+ var narrowEraNames = ["A", "B"];
1361
+ var narrowEraNameManipulator = function (dateValues, value) {
1362
+ dateValues.era = value == "A" ? 1 : -1;
1217
1363
  };
1218
1364
 
1219
- var abbrevEraNames = ['AD', 'BC'];
1220
- var abbrevEraNameManipulator = function(dateValues, value) {
1221
- dateValues.era = value == 'AD' ? 1 : -1;
1365
+ var abbrevEraNames = ["AD", "BC"];
1366
+ var abbrevEraNameManipulator = function (dateValues, value) {
1367
+ dateValues.era = value == "AD" ? 1 : -1;
1222
1368
  };
1223
1369
 
1224
- var fullEraNames = ['Anno Domini', 'Before Christ'];
1225
- var fullEraNameManipulator = function(dateValues, value) {
1226
- dateValues.era = value == 'Anno Domini' ? 1 : -1;
1370
+ var fullEraNames = ["Anno Domini", "Before Christ"];
1371
+ var fullEraNameManipulator = function (dateValues, value) {
1372
+ dateValues.era = value == "Anno Domini" ? 1 : -1;
1227
1373
  };
1228
1374
 
1229
- var abbrevQuarterNames = ['Q1','Q2','Q3','Q4'];
1230
- var abbrevQuarterManipulator = function(dateValues, value) {
1375
+ var abbrevQuarterNames = ["Q1", "Q2", "Q3", "Q4"];
1376
+ var abbrevQuarterManipulator = function (dateValues, value) {
1231
1377
  dateValues.quarter = abbrevQuarterNames.indexOf(value);
1232
1378
  };
1233
1379
 
1234
- var fullQuarterNames = ['1st quarter','2nd quarter','3rd quarter','4th quarter'];
1235
- var fullQuarterManipulator = function(dateValues, value) {
1380
+ var fullQuarterNames = [
1381
+ "1st quarter",
1382
+ "2nd quarter",
1383
+ "3rd quarter",
1384
+ "4th quarter"
1385
+ ];
1386
+
1387
+ var fullQuarterManipulator = function (dateValues, value) {
1236
1388
  dateValues.quarter = fullQuarterNames.indexOf(value);
1237
1389
  };
1238
1390
 
1239
1391
  var cache = {};
1240
1392
 
1241
- var dateNamesManipulator = function(pattern){
1242
- var monthPatternLetters = ['L','M'];
1243
- var dayPatternLetters = ['c', 'e', 'E'];
1393
+ var dateNamesManipulator = function (pattern) {
1394
+ var monthPatternLetters = ["L", "M"];
1395
+ var dayPatternLetters = ["c", "e", "E"];
1244
1396
  var firstLetterInPattern = pattern.charAt(0);
1245
- var isMonth = monthPatternLetters.indexOf(firstLetterInPattern)>=0;
1397
+ var isMonth = monthPatternLetters.indexOf(firstLetterInPattern) >= 0;
1246
1398
 
1247
- var getContext = function() {
1399
+ var getContext = function () {
1248
1400
  var letters = isMonth ? monthPatternLetters : dayPatternLetters;
1249
- var context = firstLetterInPattern === letters[0] ? "stand-alone" : "format" ;
1401
+ var context =
1402
+ firstLetterInPattern === letters[0] ? "stand-alone" : "format";
1250
1403
  var patternLength = pattern.length;
1251
- var lengthName = 'abbreviated';
1252
- switch(patternLength)
1253
- {
1404
+ var lengthName = "abbreviated";
1405
+ switch (patternLength) {
1254
1406
  case 4:
1255
- lengthName = 'wide';
1407
+ lengthName = "wide";
1256
1408
  break;
1257
1409
  case 5:
1258
- lengthName = 'narrow';
1410
+ lengthName = "narrow";
1259
1411
  break;
1260
1412
  default:
1261
- lengthName = 'abbreviated';
1413
+ lengthName = "abbreviated";
1262
1414
  }
1415
+
1263
1416
  return [context, lengthName];
1264
1417
  };
1265
1418
 
1266
- if(!cache[pattern])
1267
- {
1419
+ if (!cache[pattern]) {
1268
1420
  cache[pattern] = {};
1269
1421
  var context = getContext();
1270
- var func = isMonth ? qx.locale.Date.getMonthNames : qx.locale.Date.getDayNames;
1271
- var names = func.call(qx.locale.Date, context[1], locale, context[0], true);
1272
- for(var i=0, l=names.length; i<l; i++)
1273
- {
1422
+ var func = isMonth
1423
+ ? qx.locale.Date.getMonthNames
1424
+ : qx.locale.Date.getDayNames;
1425
+ var names = func.call(
1426
+ qx.locale.Date,
1427
+ context[1],
1428
+ locale,
1429
+ context[0],
1430
+ true
1431
+ );
1432
+
1433
+ for (var i = 0, l = names.length; i < l; i++) {
1274
1434
  names[i] = LString.escapeRegexpChars(names[i].toString());
1275
1435
  }
1276
1436
  cache[pattern].data = names;
1277
- cache[pattern].func = function(dateValues, value)
1278
- {
1437
+ cache[pattern].func = function (dateValues, value) {
1279
1438
  value = LString.escapeRegexpChars(value);
1280
- dateValues[isMonth ? 'month' : 'weekDay'] = names.indexOf(value);
1439
+ dateValues[isMonth ? "month" : "weekDay"] = names.indexOf(value);
1281
1440
  };
1282
1441
  }
1283
1442
 
@@ -1286,483 +1445,414 @@ qx.Class.define("qx.util.format.DateFormat",
1286
1445
 
1287
1446
  // Unsupported: F (Day of week in month)
1288
1447
 
1289
- rules.push(
1290
- {
1291
- pattern : "y+",
1292
- regexFunc : function(yNumber)
1293
- {
1294
- var regex = "(-*";
1295
- for(var i=0;i<yNumber;i++)
1296
- {
1297
- regex += "\\d";
1298
- if(i===yNumber-1 && i!==1) {
1299
- regex += "+?";
1300
- }
1448
+ rules.push({
1449
+ pattern: "y+",
1450
+ regexFunc(yNumber) {
1451
+ var regex = "(-*";
1452
+ for (var i = 0; i < yNumber; i++) {
1453
+ regex += "\\d";
1454
+ if (i === yNumber - 1 && i !== 1) {
1455
+ regex += "+?";
1301
1456
  }
1302
- regex += ")";
1303
- return regex;
1304
- },
1305
- manipulator : yearManipulator
1306
- });
1307
-
1308
- rules.push(
1309
- {
1310
- pattern : "Y+",
1311
- regexFunc : function(yNumber)
1312
- {
1313
- var regex = "(-*";
1314
- for(var i=0;i<yNumber;i++)
1315
- {
1316
- regex += "\\d";
1317
- if(i===yNumber-1) {
1318
- regex += "+?";
1319
- }
1457
+ }
1458
+ regex += ")";
1459
+ return regex;
1460
+ },
1461
+ manipulator: yearManipulator
1462
+ });
1463
+
1464
+ rules.push({
1465
+ pattern: "Y+",
1466
+ regexFunc(yNumber) {
1467
+ var regex = "(-*";
1468
+ for (var i = 0; i < yNumber; i++) {
1469
+ regex += "\\d";
1470
+ if (i === yNumber - 1) {
1471
+ regex += "+?";
1320
1472
  }
1321
- regex += ")";
1322
- return regex;
1323
- },
1324
- manipulator : weekYearManipulator
1473
+ }
1474
+ regex += ")";
1475
+ return regex;
1476
+ },
1477
+ manipulator: weekYearManipulator
1325
1478
  });
1326
1479
 
1327
- rules.push(
1328
- {
1329
- pattern : "G",
1330
- regex : "(" + abbrevEraNames.join("|") + ")",
1331
- manipulator : abbrevEraNameManipulator
1480
+ rules.push({
1481
+ pattern: "G",
1482
+ regex: "(" + abbrevEraNames.join("|") + ")",
1483
+ manipulator: abbrevEraNameManipulator
1332
1484
  });
1333
1485
 
1334
- rules.push(
1335
- {
1336
- pattern : "GG",
1337
- regex : "(" + abbrevEraNames.join("|") + ")",
1338
- manipulator : abbrevEraNameManipulator
1486
+ rules.push({
1487
+ pattern: "GG",
1488
+ regex: "(" + abbrevEraNames.join("|") + ")",
1489
+ manipulator: abbrevEraNameManipulator
1339
1490
  });
1340
1491
 
1341
- rules.push(
1342
- {
1343
- pattern : "GGG",
1344
- regex : "(" + abbrevEraNames.join("|") + ")",
1345
- manipulator : abbrevEraNameManipulator
1492
+ rules.push({
1493
+ pattern: "GGG",
1494
+ regex: "(" + abbrevEraNames.join("|") + ")",
1495
+ manipulator: abbrevEraNameManipulator
1346
1496
  });
1347
1497
 
1348
- rules.push(
1349
- {
1350
- pattern : "GGGG",
1351
- regex : "(" + fullEraNames.join("|") + ")",
1352
- manipulator : fullEraNameManipulator
1498
+ rules.push({
1499
+ pattern: "GGGG",
1500
+ regex: "(" + fullEraNames.join("|") + ")",
1501
+ manipulator: fullEraNameManipulator
1353
1502
  });
1354
1503
 
1355
- rules.push(
1356
- {
1357
- pattern : "GGGGG",
1358
- regex : "(" + narrowEraNames.join("|") + ")",
1359
- manipulator : narrowEraNameManipulator
1504
+ rules.push({
1505
+ pattern: "GGGGG",
1506
+ regex: "(" + narrowEraNames.join("|") + ")",
1507
+ manipulator: narrowEraNameManipulator
1360
1508
  });
1361
1509
 
1362
- rules.push(
1363
- {
1364
- pattern : "Q",
1365
- regex : "(\\d\\d*?)",
1366
- field : "quarter"
1510
+ rules.push({
1511
+ pattern: "Q",
1512
+ regex: "(\\d\\d*?)",
1513
+ field: "quarter"
1367
1514
  });
1368
1515
 
1369
- rules.push(
1370
- {
1371
- pattern : "QQ",
1372
- regex : "(\\d\\d?)",
1373
- field : "quarter"
1516
+ rules.push({
1517
+ pattern: "QQ",
1518
+ regex: "(\\d\\d?)",
1519
+ field: "quarter"
1374
1520
  });
1375
1521
 
1376
- rules.push(
1377
- {
1378
- pattern : "QQQ",
1379
- regex : "(" + abbrevQuarterNames.join("|") + ")",
1380
- manipulator : abbrevQuarterManipulator
1522
+ rules.push({
1523
+ pattern: "QQQ",
1524
+ regex: "(" + abbrevQuarterNames.join("|") + ")",
1525
+ manipulator: abbrevQuarterManipulator
1381
1526
  });
1382
1527
 
1383
- rules.push(
1384
- {
1385
- pattern : "QQQQ",
1386
- regex : "(" + fullQuarterNames.join("|") + ")",
1387
- manipulator : fullQuarterManipulator
1528
+ rules.push({
1529
+ pattern: "QQQQ",
1530
+ regex: "(" + fullQuarterNames.join("|") + ")",
1531
+ manipulator: fullQuarterManipulator
1388
1532
  });
1389
1533
 
1390
- rules.push(
1391
- {
1392
- pattern : "q",
1393
- regex : "(\\d\\d*?)",
1394
- field : "quarter"
1534
+ rules.push({
1535
+ pattern: "q",
1536
+ regex: "(\\d\\d*?)",
1537
+ field: "quarter"
1395
1538
  });
1396
1539
 
1397
- rules.push(
1398
- {
1399
- pattern : "qq",
1400
- regex : "(\\d\\d?)",
1401
- field : "quarter"
1540
+ rules.push({
1541
+ pattern: "qq",
1542
+ regex: "(\\d\\d?)",
1543
+ field: "quarter"
1402
1544
  });
1403
1545
 
1404
- rules.push(
1405
- {
1406
- pattern : "qqq",
1407
- regex : "(" + abbrevQuarterNames.join("|") + ")",
1408
- manipulator : abbrevQuarterManipulator
1546
+ rules.push({
1547
+ pattern: "qqq",
1548
+ regex: "(" + abbrevQuarterNames.join("|") + ")",
1549
+ manipulator: abbrevQuarterManipulator
1409
1550
  });
1410
1551
 
1411
- rules.push(
1412
- {
1413
- pattern : "qqqq",
1414
- regex : "(" + fullQuarterNames.join("|") + ")",
1415
- manipulator : fullQuarterManipulator
1552
+ rules.push({
1553
+ pattern: "qqqq",
1554
+ regex: "(" + fullQuarterNames.join("|") + ")",
1555
+ manipulator: fullQuarterManipulator
1416
1556
  });
1417
1557
 
1418
- rules.push(
1419
- {
1420
- pattern : "M",
1421
- regex : "(\\d\\d*?)",
1422
- manipulator : monthManipulator
1558
+ rules.push({
1559
+ pattern: "M",
1560
+ regex: "(\\d\\d*?)",
1561
+ manipulator: monthManipulator
1423
1562
  });
1424
1563
 
1425
- rules.push(
1426
- {
1427
- pattern : "MM",
1428
- regex : "(\\d\\d?)",
1429
- manipulator : monthManipulator
1564
+ rules.push({
1565
+ pattern: "MM",
1566
+ regex: "(\\d\\d?)",
1567
+ manipulator: monthManipulator
1430
1568
  });
1431
1569
 
1432
- rules.push(
1433
- {
1434
- pattern : "MMM",
1435
- regex : "(" + dateNamesManipulator("MMM").data.join("|") + ")",
1436
- manipulator : dateNamesManipulator("MMM").func
1570
+ rules.push({
1571
+ pattern: "MMM",
1572
+ regex: "(" + dateNamesManipulator("MMM").data.join("|") + ")",
1573
+ manipulator: dateNamesManipulator("MMM").func
1437
1574
  });
1438
1575
 
1439
- rules.push(
1440
- {
1441
- pattern : "MMMM",
1442
- regex : "(" + dateNamesManipulator("MMMM").data.join("|") + ")",
1443
- manipulator : dateNamesManipulator("MMMM").func
1576
+ rules.push({
1577
+ pattern: "MMMM",
1578
+ regex: "(" + dateNamesManipulator("MMMM").data.join("|") + ")",
1579
+ manipulator: dateNamesManipulator("MMMM").func
1444
1580
  });
1445
1581
 
1446
- rules.push(
1447
- {
1448
- pattern : "MMMMM",
1449
- regex : "(" + dateNamesManipulator("MMMMM").data.join("|") + ")",
1450
- manipulator : dateNamesManipulator("MMMMM").func
1582
+ rules.push({
1583
+ pattern: "MMMMM",
1584
+ regex: "(" + dateNamesManipulator("MMMMM").data.join("|") + ")",
1585
+ manipulator: dateNamesManipulator("MMMMM").func
1451
1586
  });
1452
1587
 
1453
- rules.push(
1454
- {
1455
- pattern : "L",
1456
- regex : "(\\d\\d*?)",
1457
- manipulator : monthManipulator
1588
+ rules.push({
1589
+ pattern: "L",
1590
+ regex: "(\\d\\d*?)",
1591
+ manipulator: monthManipulator
1458
1592
  });
1459
1593
 
1460
- rules.push(
1461
- {
1462
- pattern : "LL",
1463
- regex : "(\\d\\d?)",
1464
- manipulator : monthManipulator
1594
+ rules.push({
1595
+ pattern: "LL",
1596
+ regex: "(\\d\\d?)",
1597
+ manipulator: monthManipulator
1465
1598
  });
1466
1599
 
1467
- rules.push(
1468
- {
1469
- pattern : "LLL",
1470
- regex : "(" + dateNamesManipulator("LLL").data.join("|") + ")",
1471
- manipulator : dateNamesManipulator("LLL").func
1600
+ rules.push({
1601
+ pattern: "LLL",
1602
+ regex: "(" + dateNamesManipulator("LLL").data.join("|") + ")",
1603
+ manipulator: dateNamesManipulator("LLL").func
1472
1604
  });
1473
1605
 
1474
- rules.push(
1475
- {
1476
- pattern : "LLLL",
1477
- regex : "(" + dateNamesManipulator("LLLL").data.join("|") + ")",
1478
- manipulator : dateNamesManipulator("LLLL").func
1606
+ rules.push({
1607
+ pattern: "LLLL",
1608
+ regex: "(" + dateNamesManipulator("LLLL").data.join("|") + ")",
1609
+ manipulator: dateNamesManipulator("LLLL").func
1479
1610
  });
1480
1611
 
1481
- rules.push(
1482
- {
1483
- pattern : "LLLLL",
1484
- regex : "(" + dateNamesManipulator("LLLLL").data.join("|") + ")",
1485
- manipulator : dateNamesManipulator("LLLLL").func
1612
+ rules.push({
1613
+ pattern: "LLLLL",
1614
+ regex: "(" + dateNamesManipulator("LLLLL").data.join("|") + ")",
1615
+ manipulator: dateNamesManipulator("LLLLL").func
1486
1616
  });
1487
1617
 
1488
- rules.push(
1489
- {
1490
- pattern : "dd",
1491
- regex : "(\\d\\d?)",
1492
- field : "day"
1618
+ rules.push({
1619
+ pattern: "dd",
1620
+ regex: "(\\d\\d?)",
1621
+ field: "day"
1493
1622
  });
1494
1623
 
1495
- rules.push(
1496
- {
1497
- pattern : "d",
1498
- regex : "(\\d\\d*?)",
1499
- field : "day"
1624
+ rules.push({
1625
+ pattern: "d",
1626
+ regex: "(\\d\\d*?)",
1627
+ field: "day"
1500
1628
  });
1501
1629
 
1502
- rules.push(
1503
- {
1504
- pattern : "D",
1505
- regex : "(\\d?)",
1506
- field : "dayOfYear"
1630
+ rules.push({
1631
+ pattern: "D",
1632
+ regex: "(\\d?)",
1633
+ field: "dayOfYear"
1507
1634
  });
1508
1635
 
1509
- rules.push(
1510
- {
1511
- pattern : "DD",
1512
- regex : "(\\d\\d?)",
1513
- field : "dayOfYear"
1636
+ rules.push({
1637
+ pattern: "DD",
1638
+ regex: "(\\d\\d?)",
1639
+ field: "dayOfYear"
1514
1640
  });
1515
1641
 
1516
- rules.push(
1517
- {
1518
- pattern : "DDD",
1519
- regex : "(\\d\\d\\d?)",
1520
- field : "dayOfYear"
1642
+ rules.push({
1643
+ pattern: "DDD",
1644
+ regex: "(\\d\\d\\d?)",
1645
+ field: "dayOfYear"
1521
1646
  });
1522
1647
 
1523
- rules.push(
1524
- {
1525
- pattern : "E",
1526
- regex : "(" + dateNamesManipulator("E").data.join("|") + ")",
1527
- manipulator : dateNamesManipulator("E").func
1648
+ rules.push({
1649
+ pattern: "E",
1650
+ regex: "(" + dateNamesManipulator("E").data.join("|") + ")",
1651
+ manipulator: dateNamesManipulator("E").func
1528
1652
  });
1529
1653
 
1530
- rules.push(
1531
- {
1532
- pattern : "EE",
1533
- regex : "(" + dateNamesManipulator("EE").data.join("|") + ")",
1534
- manipulator : dateNamesManipulator("EE").func
1654
+ rules.push({
1655
+ pattern: "EE",
1656
+ regex: "(" + dateNamesManipulator("EE").data.join("|") + ")",
1657
+ manipulator: dateNamesManipulator("EE").func
1535
1658
  });
1536
1659
 
1537
- rules.push(
1538
- {
1539
- pattern : "EEE",
1540
- regex : "(" + dateNamesManipulator("EEE").data.join("|") + ")",
1541
- manipulator : dateNamesManipulator("EEE").func
1660
+ rules.push({
1661
+ pattern: "EEE",
1662
+ regex: "(" + dateNamesManipulator("EEE").data.join("|") + ")",
1663
+ manipulator: dateNamesManipulator("EEE").func
1542
1664
  });
1543
1665
 
1544
- rules.push(
1545
- {
1546
- pattern : "EEEE",
1547
- regex : "(" + dateNamesManipulator("EEEE").data.join("|") + ")",
1548
- manipulator : dateNamesManipulator("EEEE").func
1666
+ rules.push({
1667
+ pattern: "EEEE",
1668
+ regex: "(" + dateNamesManipulator("EEEE").data.join("|") + ")",
1669
+ manipulator: dateNamesManipulator("EEEE").func
1549
1670
  });
1550
1671
 
1551
- rules.push(
1552
- {
1553
- pattern : "EEEEE",
1554
- regex : "(" + dateNamesManipulator("EEEEE").data.join("|") + ")",
1555
- manipulator : dateNamesManipulator("EEEEE").func
1672
+ rules.push({
1673
+ pattern: "EEEEE",
1674
+ regex: "(" + dateNamesManipulator("EEEEE").data.join("|") + ")",
1675
+ manipulator: dateNamesManipulator("EEEEE").func
1556
1676
  });
1557
1677
 
1558
- rules.push(
1559
- {
1560
- pattern : "e",
1561
- regex : "(\\d?)",
1562
- manipulator : localWeekDayManipulator
1678
+ rules.push({
1679
+ pattern: "e",
1680
+ regex: "(\\d?)",
1681
+ manipulator: localWeekDayManipulator
1563
1682
  });
1564
1683
 
1565
- rules.push(
1566
- {
1567
- pattern : "ee",
1568
- regex : "(\\d\\d?)",
1569
- manipulator : localWeekDayManipulator
1684
+ rules.push({
1685
+ pattern: "ee",
1686
+ regex: "(\\d\\d?)",
1687
+ manipulator: localWeekDayManipulator
1570
1688
  });
1571
1689
 
1572
- rules.push(
1573
- {
1574
- pattern : "eee",
1575
- regex : "(" + dateNamesManipulator("eee").data.join("|") + ")",
1576
- manipulator : dateNamesManipulator("eee").func
1690
+ rules.push({
1691
+ pattern: "eee",
1692
+ regex: "(" + dateNamesManipulator("eee").data.join("|") + ")",
1693
+ manipulator: dateNamesManipulator("eee").func
1577
1694
  });
1578
1695
 
1579
- rules.push(
1580
- {
1581
- pattern : "eeee",
1582
- regex : "(" + dateNamesManipulator("eeee").data.join("|") + ")",
1583
- manipulator : dateNamesManipulator("eeee").func
1696
+ rules.push({
1697
+ pattern: "eeee",
1698
+ regex: "(" + dateNamesManipulator("eeee").data.join("|") + ")",
1699
+ manipulator: dateNamesManipulator("eeee").func
1584
1700
  });
1585
1701
 
1586
- rules.push(
1587
- {
1588
- pattern : "eeeee",
1589
- regex : "(" + dateNamesManipulator("eeeee").data.join("|") + ")",
1590
- manipulator : dateNamesManipulator("eeeee").func
1702
+ rules.push({
1703
+ pattern: "eeeee",
1704
+ regex: "(" + dateNamesManipulator("eeeee").data.join("|") + ")",
1705
+ manipulator: dateNamesManipulator("eeeee").func
1591
1706
  });
1592
1707
 
1593
- rules.push(
1594
- {
1595
- pattern : "c",
1596
- regex : "\\d?",
1597
- manipulator : localWeekDayManipulator
1708
+ rules.push({
1709
+ pattern: "c",
1710
+ regex: "\\d?",
1711
+ manipulator: localWeekDayManipulator
1598
1712
  });
1599
1713
 
1600
- rules.push(
1601
- {
1602
- pattern : "ccc",
1603
- regex : "(" + dateNamesManipulator("ccc").data.join("|") + ")",
1604
- manipulator : dateNamesManipulator("ccc").func
1714
+ rules.push({
1715
+ pattern: "ccc",
1716
+ regex: "(" + dateNamesManipulator("ccc").data.join("|") + ")",
1717
+ manipulator: dateNamesManipulator("ccc").func
1605
1718
  });
1606
1719
 
1607
- rules.push(
1608
- {
1609
- pattern : "cccc",
1610
- regex : "(" + dateNamesManipulator("cccc").data.join("|") + ")",
1611
- manipulator : dateNamesManipulator("cccc").func
1720
+ rules.push({
1721
+ pattern: "cccc",
1722
+ regex: "(" + dateNamesManipulator("cccc").data.join("|") + ")",
1723
+ manipulator: dateNamesManipulator("cccc").func
1612
1724
  });
1613
1725
 
1614
- rules.push(
1615
- {
1616
- pattern : "ccccc",
1617
- regex : "(" + dateNamesManipulator("ccccc").data.join("|") + ")",
1618
- manipulator : dateNamesManipulator("ccccc").func
1726
+ rules.push({
1727
+ pattern: "ccccc",
1728
+ regex: "(" + dateNamesManipulator("ccccc").data.join("|") + ")",
1729
+ manipulator: dateNamesManipulator("ccccc").func
1619
1730
  });
1620
1731
 
1621
- rules.push(
1622
- {
1623
- pattern : "a",
1624
- regex : "(" + amMarker + "|" + pmMarker + ")",
1625
- manipulator : ampmManipulator
1732
+ rules.push({
1733
+ pattern: "a",
1734
+ regex: "(" + amMarker + "|" + pmMarker + ")",
1735
+ manipulator: ampmManipulator
1626
1736
  });
1627
1737
 
1628
- rules.push(
1629
- {
1630
- pattern : "W",
1631
- regex : "(\\d?)",
1632
- field : "weekOfMonth"
1738
+ rules.push({
1739
+ pattern: "W",
1740
+ regex: "(\\d?)",
1741
+ field: "weekOfMonth"
1633
1742
  });
1634
1743
 
1635
- rules.push(
1636
- {
1637
- pattern : "w",
1638
- regex : "(\\d\\d?)",
1639
- field : "weekOfYear"
1744
+ rules.push({
1745
+ pattern: "w",
1746
+ regex: "(\\d\\d?)",
1747
+ field: "weekOfYear"
1640
1748
  });
1641
1749
 
1642
- rules.push(
1643
- {
1644
- pattern : "ww",
1645
- regex : "(\\d\\d)",
1646
- field : "weekOfYear"
1750
+ rules.push({
1751
+ pattern: "ww",
1752
+ regex: "(\\d\\d)",
1753
+ field: "weekOfYear"
1647
1754
  });
1648
1755
 
1649
- rules.push(
1650
- {
1651
- pattern : "HH",
1652
- regex : "(\\d\\d?)",
1653
- field : "hour"
1756
+ rules.push({
1757
+ pattern: "HH",
1758
+ regex: "(\\d\\d?)",
1759
+ field: "hour"
1654
1760
  });
1655
1761
 
1656
- rules.push(
1657
- {
1658
- pattern : "H",
1659
- regex : "(\\d\\d?)",
1660
- field : "hour"
1762
+ rules.push({
1763
+ pattern: "H",
1764
+ regex: "(\\d\\d?)",
1765
+ field: "hour"
1661
1766
  });
1662
1767
 
1663
- rules.push(
1664
- {
1665
- pattern : "kk",
1666
- regex : "(\\d\\d?)",
1667
- manipulator : noZeroHourManipulator
1768
+ rules.push({
1769
+ pattern: "kk",
1770
+ regex: "(\\d\\d?)",
1771
+ manipulator: noZeroHourManipulator
1668
1772
  });
1669
1773
 
1670
- rules.push(
1671
- {
1672
- pattern : "k",
1673
- regex : "(\\d\\d?)",
1674
- manipulator : noZeroHourManipulator
1774
+ rules.push({
1775
+ pattern: "k",
1776
+ regex: "(\\d\\d?)",
1777
+ manipulator: noZeroHourManipulator
1675
1778
  });
1676
1779
 
1677
- rules.push(
1678
- {
1679
- pattern : "KK",
1680
- regex : "(\\d\\d?)",
1681
- field : "hour"
1780
+ rules.push({
1781
+ pattern: "KK",
1782
+ regex: "(\\d\\d?)",
1783
+ field: "hour"
1682
1784
  });
1683
1785
 
1684
- rules.push(
1685
- {
1686
- pattern : "K",
1687
- regex : "(\\d\\d?)",
1688
- field : "hour"
1786
+ rules.push({
1787
+ pattern: "K",
1788
+ regex: "(\\d\\d?)",
1789
+ field: "hour"
1689
1790
  });
1690
1791
 
1691
- rules.push(
1692
- {
1693
- pattern : "hh",
1694
- regex : "(\\d\\d?)",
1695
- manipulator : noZeroAmPmHourManipulator
1792
+ rules.push({
1793
+ pattern: "hh",
1794
+ regex: "(\\d\\d?)",
1795
+ manipulator: noZeroAmPmHourManipulator
1696
1796
  });
1697
1797
 
1698
- rules.push(
1699
- {
1700
- pattern : "h",
1701
- regex : "(\\d\\d?)",
1702
- manipulator : noZeroAmPmHourManipulator
1798
+ rules.push({
1799
+ pattern: "h",
1800
+ regex: "(\\d\\d?)",
1801
+ manipulator: noZeroAmPmHourManipulator
1703
1802
  });
1704
1803
 
1705
- rules.push(
1706
- {
1707
- pattern : "mm",
1708
- regex : "(\\d\\d?)",
1709
- field : "min"
1804
+ rules.push({
1805
+ pattern: "mm",
1806
+ regex: "(\\d\\d?)",
1807
+ field: "min"
1710
1808
  });
1711
1809
 
1712
- rules.push(
1713
- {
1714
- pattern : "m",
1715
- regex : "(\\d\\d?)",
1716
- field : "min"
1810
+ rules.push({
1811
+ pattern: "m",
1812
+ regex: "(\\d\\d?)",
1813
+ field: "min"
1717
1814
  });
1718
1815
 
1719
- rules.push(
1720
- {
1721
- pattern : "ss",
1722
- regex : "(\\d\\d?)",
1723
- field : "sec"
1816
+ rules.push({
1817
+ pattern: "ss",
1818
+ regex: "(\\d\\d?)",
1819
+ field: "sec"
1724
1820
  });
1725
1821
 
1726
- rules.push(
1727
- {
1728
- pattern : "s",
1729
- regex : "(\\d\\d?)",
1730
- field : "sec"
1822
+ rules.push({
1823
+ pattern: "s",
1824
+ regex: "(\\d\\d?)",
1825
+ field: "sec"
1731
1826
  });
1732
1827
 
1733
- rules.push(
1734
- {
1735
- pattern : "SSS",
1736
- regex : "(\\d\\d?\\d?)",
1737
- field : "ms"
1828
+ rules.push({
1829
+ pattern: "SSS",
1830
+ regex: "(\\d\\d?\\d?)",
1831
+ field: "ms"
1738
1832
  });
1739
1833
 
1740
- rules.push(
1741
- {
1742
- pattern : "SS",
1743
- regex : "(\\d\\d?\\d?)",
1744
- field : "ms"
1834
+ rules.push({
1835
+ pattern: "SS",
1836
+ regex: "(\\d\\d?\\d?)",
1837
+ field: "ms"
1745
1838
  });
1746
1839
 
1747
- rules.push(
1748
- {
1749
- pattern : "S",
1750
- regex : "(\\d\\d?\\d?)",
1751
- field : "ms"
1840
+ rules.push({
1841
+ pattern: "S",
1842
+ regex: "(\\d\\d?\\d?)",
1843
+ field: "ms"
1752
1844
  });
1753
1845
 
1754
- rules.push(
1755
- {
1756
- pattern : "Z",
1757
- regex : "([\\+\\-]\\d\\d\\d\\d)",
1758
- manipulator : ignoreManipulator
1846
+ rules.push({
1847
+ pattern: "Z",
1848
+ regex: "([\\+\\-]\\d\\d\\d\\d)",
1849
+ manipulator: timezoneManipulator
1759
1850
  });
1760
1851
 
1761
- rules.push(
1762
- {
1763
- pattern : "z",
1764
- regex : "(GMT[\\+\\-]\\d\\d:\\d\\d)",
1765
- manipulator : ignoreManipulator
1852
+ rules.push({
1853
+ pattern: "z",
1854
+ regex: "(GMT[\\+\\-]\\d\\d:\\d\\d)",
1855
+ manipulator: timezoneManipulator
1766
1856
  });
1767
1857
  }
1768
1858
  }