@mxtommy/kip 1.2.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/.angulardoc.json +3 -3
  2. package/CHANGELOG.md +145 -124
  3. package/CONTRIBUTORS.md +16 -13
  4. package/README.md +102 -101
  5. package/angular.json +162 -152
  6. package/karma.conf.js +31 -31
  7. package/package.json +87 -80
  8. package/public/3rdpartylicenses.txt +317 -62
  9. package/public/assets/NoSleep.min.js +1 -1
  10. package/public/assets/fontawesome6/css/all.min.css +6 -0
  11. package/public/assets/fontawesome6/webfonts/fa-brands-400.ttf +0 -0
  12. package/public/assets/fontawesome6/webfonts/fa-brands-400.woff2 +0 -0
  13. package/public/assets/fontawesome6/webfonts/fa-regular-400.ttf +0 -0
  14. package/public/assets/fontawesome6/webfonts/fa-regular-400.woff2 +0 -0
  15. package/public/assets/fontawesome6/webfonts/fa-solid-900.ttf +0 -0
  16. package/public/assets/fontawesome6/webfonts/fa-solid-900.woff2 +0 -0
  17. package/public/assets/fontawesome6/webfonts/fa-v4compatibility.ttf +0 -0
  18. package/public/assets/fontawesome6/webfonts/fa-v4compatibility.woff2 +0 -0
  19. package/public/assets/icon-192x192.png +0 -0
  20. package/public/assets/icon-256x256.png +0 -0
  21. package/public/assets/icon-384x384.png +0 -0
  22. package/public/assets/icon-512x512.png +0 -0
  23. package/public/assets/steelseries-min.js +25 -25
  24. package/public/assets/steelseries-min.js.map +8 -8
  25. package/public/assets/steelseries.js +15834 -15834
  26. package/public/assets/svg-autopilot-inkscape-plain.svg +983 -983
  27. package/public/assets/svg-wind-inkscape.svg +1358 -1358
  28. package/public/assets/tween.js +381 -381
  29. package/public/index.html +19 -20
  30. package/public/main-es2018.98175eb4c61ccaf7eb17.js +1 -0
  31. package/public/main-es5.98175eb4c61ccaf7eb17.js +1 -0
  32. package/public/manifest.json +33 -0
  33. package/public/polyfills-es2018.3a61665863c173cd6ba3.js +1 -0
  34. package/public/polyfills-es5.44827ae4ff4e41de51fb.js +1 -0
  35. package/public/runtime-es2018.baedb88c6d2abacae2b8.js +1 -0
  36. package/public/runtime-es5.baedb88c6d2abacae2b8.js +1 -0
  37. package/public/styles.b92ae2c466c89712209d.css +5 -0
  38. package/src/app/alarm-menu/alarm-menu.component.html +55 -55
  39. package/src/app/alarm-menu/alarm-menu.component.scss +52 -53
  40. package/src/app/alarm-menu/alarm-menu.component.spec.ts +25 -25
  41. package/src/app/alarm-menu/alarm-menu.component.ts +186 -186
  42. package/src/app/app-help/app-help.component.css +4 -4
  43. package/src/app/app-help/app-help.component.html +135 -121
  44. package/src/app/app-help/app-help.component.ts +45 -45
  45. package/src/app/app.component.css +39 -39
  46. package/src/app/app.component.html +93 -93
  47. package/src/app/app.component.scss +79 -79
  48. package/src/app/app.component.spec.ts +32 -32
  49. package/src/app/app.component.ts +191 -192
  50. package/src/app/app.module.ts +200 -200
  51. package/src/app/config.blank.const.ts +51 -51
  52. package/src/app/config.blank.notification.const.ts +19 -19
  53. package/src/app/config.blank.units.const.ts +23 -23
  54. package/src/app/config.demo.const.ts +383 -382
  55. package/src/app/data-browser/data-browser.component.css +29 -29
  56. package/src/app/data-browser/data-browser.component.html +44 -44
  57. package/src/app/data-browser/data-browser.component.spec.ts +25 -25
  58. package/src/app/data-browser/data-browser.component.ts +91 -91
  59. package/src/app/data-browser-row/data-browser-row-unit-modal.html +17 -17
  60. package/src/app/data-browser-row/data-browser-row.component.css +9 -9
  61. package/src/app/data-browser-row/data-browser-row.component.html +4 -4
  62. package/src/app/data-browser-row/data-browser-row.component.ts +78 -78
  63. package/src/app/data-set.service.ts +273 -273
  64. package/src/app/dynamic-widget.directive.ts +11 -11
  65. package/src/app/gauge-steel/gauge-steel.component.css +4 -4
  66. package/src/app/gauge-steel/gauge-steel.component.html +4 -4
  67. package/src/app/gauge-steel/gauge-steel.component.spec.ts +25 -25
  68. package/src/app/gauge-steel/gauge-steel.component.ts +282 -282
  69. package/src/app/gauges-module/base-gauge.ts +301 -0
  70. package/src/app/gauges-module/gauges.module.ts +17 -0
  71. package/src/app/gauges-module/linear-gauge.ts +50 -0
  72. package/src/app/gauges-module/radial-gauge.ts +48 -0
  73. package/src/app/layout-split/layout-split.component.html +30 -30
  74. package/src/app/layout-split/layout-split.component.scss +33 -33
  75. package/src/app/layout-split/layout-split.component.spec.ts +25 -25
  76. package/src/app/layout-split/layout-split.component.ts +59 -59
  77. package/src/app/layout-splits.service.ts +284 -284
  78. package/src/app/modal-path-selector/modal-path-selector.component.html +62 -62
  79. package/src/app/modal-path-selector/modal-path-selector.component.scss +39 -39
  80. package/src/app/modal-path-selector/modal-path-selector.component.spec.ts +25 -25
  81. package/src/app/modal-path-selector/modal-path-selector.component.ts +132 -132
  82. package/src/app/modal-widget/modal-widget.component.css +32 -32
  83. package/src/app/modal-widget/modal-widget.component.html +341 -334
  84. package/src/app/modal-widget/modal-widget.component.spec.ts +25 -25
  85. package/src/app/modal-widget/modal-widget.component.ts +84 -84
  86. package/src/app/notifications.service.ts +392 -387
  87. package/src/app/object-keys.pipe.spec.ts +8 -8
  88. package/src/app/object-keys.pipe.ts +13 -13
  89. package/src/app/reset-config/reset-config.component.html +3 -3
  90. package/src/app/reset-config/reset-config.component.spec.ts +25 -25
  91. package/src/app/reset-config/reset-config.component.ts +31 -31
  92. package/src/app/root-display/root-display.component.html +4 -4
  93. package/src/app/root-display/root-display.component.spec.ts +25 -25
  94. package/src/app/root-display/root-display.component.ts +57 -57
  95. package/src/app/safe.pipe.ts +15 -15
  96. package/src/app/settings/settings.component.css +9 -9
  97. package/src/app/settings/settings.component.html +25 -25
  98. package/src/app/settings/settings.component.spec.ts +25 -25
  99. package/src/app/settings/settings.component.ts +22 -22
  100. package/src/app/settings-config/settings-config.component.css +38 -38
  101. package/src/app/settings-config/settings-config.component.spec.ts +25 -25
  102. package/src/app/settings-config/settings-config.component.ts +161 -161
  103. package/src/app/settings-datasets/settings-datasets.component.html +43 -43
  104. package/src/app/settings-datasets/settings-datasets.component.scss +39 -39
  105. package/src/app/settings-datasets/settings-datasets.component.spec.ts +25 -25
  106. package/src/app/settings-datasets/settings-datasets.component.ts +98 -98
  107. package/src/app/settings-datasets/settings-datasets.modal.html +54 -54
  108. package/src/app/settings-notifications/settings-notifications.component.html +65 -65
  109. package/src/app/settings-notifications/settings-notifications.component.spec.ts +25 -25
  110. package/src/app/settings-notifications/settings-notifications.component.ts +29 -29
  111. package/src/app/settings-signalk/settings-signalk.component.html +8 -8
  112. package/src/app/settings-signalk/settings-signalk.component.spec.ts +25 -25
  113. package/src/app/settings-signalk/settings-signalk.component.ts +6 -17
  114. package/src/app/settings-units/settings-units.component.css +4 -4
  115. package/src/app/settings-units/settings-units.component.html +19 -19
  116. package/src/app/settings-units/settings-units.component.spec.ts +25 -25
  117. package/src/app/settings-units/settings-units.component.ts +62 -62
  118. package/src/app/settings-zones/settings-zones.component.css +21 -21
  119. package/src/app/settings-zones/settings-zones.component.html +70 -70
  120. package/src/app/settings-zones/settings-zones.modal.html +38 -38
  121. package/src/app/signalk-connection.service.ts +344 -344
  122. package/src/app/signalk-delta.service.spec.ts +15 -15
  123. package/src/app/signalk-delta.service.ts +97 -97
  124. package/src/app/signalk-full.service.ts +99 -99
  125. package/src/app/signalk-interfaces.ts +129 -129
  126. package/src/app/signalk-requests.service.spec.ts +12 -12
  127. package/src/app/signalk-requests.service.ts +180 -180
  128. package/src/app/svg-autopilot/svg-autopilot.component.html +1036 -1036
  129. package/src/app/svg-autopilot/svg-autopilot.component.spec.ts +25 -25
  130. package/src/app/svg-autopilot/svg-autopilot.component.ts +174 -174
  131. package/src/app/svg-simple-linear-gauge/svg-simple-linear-gauge.component.html +119 -119
  132. package/src/app/svg-simple-linear-gauge/svg-simple-linear-gauge.component.spec.ts +25 -25
  133. package/src/app/svg-simple-linear-gauge/svg-simple-linear-gauge.component.ts +49 -49
  134. package/src/app/svg-wind/svg-wind.component.html +969 -969
  135. package/src/app/svg-wind/svg-wind.component.scss +76 -76
  136. package/src/app/svg-wind/svg-wind.component.spec.ts +25 -25
  137. package/src/app/svg-wind/svg-wind.component.ts +280 -280
  138. package/src/app/unit-window/unit-window.component.css +37 -37
  139. package/src/app/unit-window/unit-window.component.html +8 -8
  140. package/src/app/unit-window/unit-window.component.spec.ts +25 -25
  141. package/src/app/unit-window/unit-window.component.ts +134 -134
  142. package/src/app/unit-window/unit-window.modal.html +24 -24
  143. package/src/app/units.service.ts +300 -300
  144. package/src/app/widget-autopilot/widget-autopilot.component.html +78 -85
  145. package/src/app/widget-autopilot/widget-autopilot.component.scss +191 -191
  146. package/src/app/widget-autopilot/widget-autopilot.component.spec.ts +25 -25
  147. package/src/app/widget-autopilot/widget-autopilot.component.ts +774 -781
  148. package/src/app/widget-blank/widget-blank.component.scss +21 -22
  149. package/src/app/widget-blank/widget-blank.component.spec.ts +25 -25
  150. package/src/app/widget-blank/widget-blank.component.ts +17 -17
  151. package/src/app/widget-gauge/widget-gauge.component.css +25 -25
  152. package/src/app/widget-gauge/widget-gauge.component.html +29 -29
  153. package/src/app/widget-gauge/widget-gauge.component.spec.ts +25 -25
  154. package/src/app/widget-gauge/widget-gauge.component.ts +120 -120
  155. package/src/app/widget-gauge-ng-linear/widget-gauge-ng-linear.component.html +126 -126
  156. package/src/app/widget-gauge-ng-linear/widget-gauge-ng-linear.component.scss +94 -93
  157. package/src/app/widget-gauge-ng-linear/widget-gauge-ng-linear.component.spec.ts +25 -25
  158. package/src/app/widget-gauge-ng-linear/widget-gauge-ng-linear.component.ts +424 -424
  159. package/src/app/widget-gauge-ng-radial/widget-gauge-ng-radial.component.html +122 -122
  160. package/src/app/widget-gauge-ng-radial/widget-gauge-ng-radial.component.scss +69 -69
  161. package/src/app/widget-gauge-ng-radial/widget-gauge-ng-radial.component.spec.ts +25 -25
  162. package/src/app/widget-gauge-ng-radial/widget-gauge-ng-radial.component.ts +553 -553
  163. package/src/app/widget-historical/widget-historical.component.html +14 -14
  164. package/src/app/widget-historical/widget-historical.component.spec.ts +25 -25
  165. package/src/app/widget-historical/widget-historical.component.ts +306 -307
  166. package/src/app/widget-iframe/widget-iframe.component.css +11 -11
  167. package/src/app/widget-iframe/widget-iframe.component.html +21 -21
  168. package/src/app/widget-iframe/widget-iframe.component.spec.ts +25 -25
  169. package/src/app/widget-iframe/widget-iframe.component.ts +63 -63
  170. package/src/app/widget-list.service.ts +135 -135
  171. package/src/app/widget-manager.service.ts +141 -140
  172. package/src/app/widget-numeric/widget-numeric.component.html +1 -1
  173. package/src/app/widget-numeric/widget-numeric.component.scss +3 -3
  174. package/src/app/widget-numeric/widget-numeric.component.spec.ts +25 -25
  175. package/src/app/widget-simple-linear/widget-simple-linear.component.html +28 -28
  176. package/src/app/widget-simple-linear/widget-simple-linear.component.scss +64 -64
  177. package/src/app/widget-simple-linear/widget-simple-linear.component.spec.ts +25 -25
  178. package/src/app/widget-simple-linear/widget-simple-linear.component.ts +199 -199
  179. package/src/app/widget-state/widget-state.component.html +27 -27
  180. package/src/app/widget-state/widget-state.component.scss +68 -68
  181. package/src/app/widget-state/widget-state.component.spec.ts +25 -25
  182. package/src/app/widget-state/widget-state.component.ts +178 -178
  183. package/src/app/widget-switch/widget-switch.component.css +69 -69
  184. package/src/app/widget-switch/widget-switch.component.html +17 -17
  185. package/src/app/widget-switch/widget-switch.component.spec.ts +25 -25
  186. package/src/app/widget-switch/widget-switch.component.ts +134 -134
  187. package/src/app/widget-text-generic/widget-text-generic.component.html +9 -9
  188. package/src/app/widget-text-generic/widget-text-generic.component.spec.ts +25 -25
  189. package/src/app/widget-tutorial/widget-tutorial.component.html +34 -34
  190. package/src/app/widget-tutorial/widget-tutorial.component.spec.ts +25 -25
  191. package/src/app/widget-tutorial/widget-tutorial.component.ts +18 -18
  192. package/src/app/widget-unknown/widget-unknown.component.spec.ts +25 -25
  193. package/src/app/widget-wind/widget-wind.component.css +23 -23
  194. package/src/app/widget-wind/widget-wind.component.html +20 -20
  195. package/src/app/widget-wind/widget-wind.component.spec.ts +25 -25
  196. package/src/app/widget-wind/widget-wind.component.ts +369 -369
  197. package/src/assets/NoSleep.min.js +1 -1
  198. package/src/assets/fontawesome6/css/all.min.css +6 -0
  199. package/src/assets/fontawesome6/webfonts/fa-brands-400.ttf +0 -0
  200. package/src/assets/fontawesome6/webfonts/fa-brands-400.woff2 +0 -0
  201. package/src/assets/fontawesome6/webfonts/fa-regular-400.ttf +0 -0
  202. package/src/assets/fontawesome6/webfonts/fa-regular-400.woff2 +0 -0
  203. package/src/assets/fontawesome6/webfonts/fa-solid-900.ttf +0 -0
  204. package/src/assets/fontawesome6/webfonts/fa-solid-900.woff2 +0 -0
  205. package/src/assets/fontawesome6/webfonts/fa-v4compatibility.ttf +0 -0
  206. package/src/assets/fontawesome6/webfonts/fa-v4compatibility.woff2 +0 -0
  207. package/src/assets/icon-192x192.png +0 -0
  208. package/src/assets/icon-256x256.png +0 -0
  209. package/src/assets/icon-384x384.png +0 -0
  210. package/src/assets/icon-512x512.png +0 -0
  211. package/src/assets/steelseries-min.js +25 -25
  212. package/src/assets/steelseries-min.js.map +8 -8
  213. package/src/assets/steelseries.js +15834 -15834
  214. package/src/assets/svg-autopilot-inkscape-plain.svg +983 -983
  215. package/src/assets/svg-wind-inkscape.svg +1358 -1358
  216. package/src/assets/tween.js +381 -381
  217. package/src/index.html +20 -20
  218. package/src/main.ts +11 -11
  219. package/src/manifest.json +33 -0
  220. package/src/polyfills.ts +80 -76
  221. package/src/styles.scss +11 -11
  222. package/src/themes/darkBlueTheme.scss +117 -116
  223. package/src/themes/defaultTheme.scss +50 -49
  224. package/src/themes/highContrastTheme.scss +47 -46
  225. package/src/themes/modernTheme.scss +143 -142
  226. package/src/themes/nightMode.scss +185 -184
  227. package/src/themes/platypusTheme.scss +80 -79
  228. package/src/themes/signalkTheme.scss +112 -111
  229. package/src/tsconfig.app.json +15 -15
  230. package/src/tsconfig.spec.json +20 -20
  231. package/tsconfig.json +23 -23
  232. package/tslint.json +143 -143
  233. package/public/assets/font-awesome/HELP-US-OUT.txt +0 -7
  234. package/public/assets/font-awesome/css/font-awesome.css +0 -2337
  235. package/public/assets/font-awesome/css/font-awesome.min.css +0 -4
  236. package/public/assets/font-awesome/desktop.ini +0 -4
  237. package/public/assets/font-awesome/fonts/FontAwesome.otf +0 -0
  238. package/public/assets/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  239. package/public/assets/font-awesome/fonts/fontawesome-webfont.svg +0 -2671
  240. package/public/assets/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  241. package/public/assets/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  242. package/public/assets/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  243. package/public/assets/font-awesome/less/animated.less +0 -34
  244. package/public/assets/font-awesome/less/bordered-pulled.less +0 -25
  245. package/public/assets/font-awesome/less/core.less +0 -12
  246. package/public/assets/font-awesome/less/fixed-width.less +0 -6
  247. package/public/assets/font-awesome/less/font-awesome.less +0 -18
  248. package/public/assets/font-awesome/less/icons.less +0 -789
  249. package/public/assets/font-awesome/less/larger.less +0 -13
  250. package/public/assets/font-awesome/less/list.less +0 -19
  251. package/public/assets/font-awesome/less/mixins.less +0 -60
  252. package/public/assets/font-awesome/less/path.less +0 -15
  253. package/public/assets/font-awesome/less/rotated-flipped.less +0 -20
  254. package/public/assets/font-awesome/less/screen-reader.less +0 -5
  255. package/public/assets/font-awesome/less/stacked.less +0 -20
  256. package/public/assets/font-awesome/less/variables.less +0 -800
  257. package/public/assets/font-awesome/scss/_animated.scss +0 -34
  258. package/public/assets/font-awesome/scss/_bordered-pulled.scss +0 -25
  259. package/public/assets/font-awesome/scss/_core.scss +0 -12
  260. package/public/assets/font-awesome/scss/_fixed-width.scss +0 -6
  261. package/public/assets/font-awesome/scss/_icons.scss +0 -789
  262. package/public/assets/font-awesome/scss/_larger.scss +0 -13
  263. package/public/assets/font-awesome/scss/_list.scss +0 -19
  264. package/public/assets/font-awesome/scss/_mixins.scss +0 -60
  265. package/public/assets/font-awesome/scss/_path.scss +0 -15
  266. package/public/assets/font-awesome/scss/_rotated-flipped.scss +0 -20
  267. package/public/assets/font-awesome/scss/_screen-reader.scss +0 -5
  268. package/public/assets/font-awesome/scss/_stacked.scss +0 -20
  269. package/public/assets/font-awesome/scss/_variables.scss +0 -800
  270. package/public/assets/font-awesome/scss/font-awesome.scss +0 -18
  271. package/public/main-es2018.625fb92c9cbb6a4131de.js +0 -1
  272. package/public/main-es5.625fb92c9cbb6a4131de.js +0 -1
  273. package/public/polyfills-es2018.713f95af1f028e444854.js +0 -1
  274. package/public/polyfills-es5.c78877945523541d2597.js +0 -1
  275. package/public/runtime-es2018.a4dadbc03350107420a4.js +0 -1
  276. package/public/runtime-es5.a4dadbc03350107420a4.js +0 -1
  277. package/public/styles.71bb0d04cad96b5efbe1.css +0 -19
  278. package/src/assets/font-awesome/HELP-US-OUT.txt +0 -7
  279. package/src/assets/font-awesome/css/font-awesome.css +0 -2337
  280. package/src/assets/font-awesome/css/font-awesome.min.css +0 -4
  281. package/src/assets/font-awesome/desktop.ini +0 -4
  282. package/src/assets/font-awesome/fonts/FontAwesome.otf +0 -0
  283. package/src/assets/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  284. package/src/assets/font-awesome/fonts/fontawesome-webfont.svg +0 -2671
  285. package/src/assets/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  286. package/src/assets/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  287. package/src/assets/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  288. package/src/assets/font-awesome/less/animated.less +0 -34
  289. package/src/assets/font-awesome/less/bordered-pulled.less +0 -25
  290. package/src/assets/font-awesome/less/core.less +0 -12
  291. package/src/assets/font-awesome/less/fixed-width.less +0 -6
  292. package/src/assets/font-awesome/less/font-awesome.less +0 -18
  293. package/src/assets/font-awesome/less/icons.less +0 -789
  294. package/src/assets/font-awesome/less/larger.less +0 -13
  295. package/src/assets/font-awesome/less/list.less +0 -19
  296. package/src/assets/font-awesome/less/mixins.less +0 -60
  297. package/src/assets/font-awesome/less/path.less +0 -15
  298. package/src/assets/font-awesome/less/rotated-flipped.less +0 -20
  299. package/src/assets/font-awesome/less/screen-reader.less +0 -5
  300. package/src/assets/font-awesome/less/stacked.less +0 -20
  301. package/src/assets/font-awesome/less/variables.less +0 -800
  302. package/src/assets/font-awesome/scss/_animated.scss +0 -34
  303. package/src/assets/font-awesome/scss/_bordered-pulled.scss +0 -25
  304. package/src/assets/font-awesome/scss/_core.scss +0 -12
  305. package/src/assets/font-awesome/scss/_fixed-width.scss +0 -6
  306. package/src/assets/font-awesome/scss/_icons.scss +0 -789
  307. package/src/assets/font-awesome/scss/_larger.scss +0 -13
  308. package/src/assets/font-awesome/scss/_list.scss +0 -19
  309. package/src/assets/font-awesome/scss/_mixins.scss +0 -60
  310. package/src/assets/font-awesome/scss/_path.scss +0 -15
  311. package/src/assets/font-awesome/scss/_rotated-flipped.scss +0 -20
  312. package/src/assets/font-awesome/scss/_screen-reader.scss +0 -5
  313. package/src/assets/font-awesome/scss/_stacked.scss +0 -20
  314. package/src/assets/font-awesome/scss/_variables.scss +0 -800
  315. package/src/assets/font-awesome/scss/font-awesome.scss +0 -18
@@ -1,381 +1,381 @@
1
- /**********************************************************************
2
- TERMS OF USE - EASING EQUATIONS
3
- Open source under the BSD License.
4
- Copyright (c) 2001 Robert Penner
5
- JavaScript version copyright (C) 2006 by Philippe Maegerman
6
- All rights reserved.
7
-
8
- Redistribution and use in source and binary forms, with or without
9
- modification, are permitted provided that the following conditions are
10
- met:
11
-
12
- * Redistributions of source code must retain the above copyright
13
- notice, this list of conditions and the following disclaimer.
14
- * Redistributions in binary form must reproduce the above
15
- copyright notice, this list of conditions and the following disclaimer
16
- in the documentation and/or other materials provided with the
17
- distribution.
18
- * Neither the name of the author nor the names of contributors may
19
- be used to endorse or promote products derived from this software
20
- without specific prior written permission.
21
-
22
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
-
34
- *****************************************/
35
- function Delegate() {}
36
- Delegate.create = function (o, f) {
37
- var a = [], i, l = arguments.length;
38
- for (i = 2; i < l; i++) {
39
- a[i - 2] = arguments[i];
40
- }
41
- return function () {
42
- var aP = [].concat(arguments, a);
43
- f.apply(o, aP);
44
- };
45
- };
46
-
47
- /*
48
- object:
49
- type:Object
50
- The object you want to modify. It can be any object, a visual object that you want to animate ( document.body.style ) or an anymous object ( new Object() ).
51
- property:
52
- type:String
53
- The property that is updated on the target object, it can be empty ('')
54
- easing:
55
- type:Function
56
- The easing that will be applied to motion.
57
- start:
58
- type:Number
59
- Start value
60
- end:
61
- type:Number
62
- End value
63
- duration:
64
- type:Number
65
- Animation duration in seconds
66
- suffixe:
67
- type:String
68
- A string to append to the updated property ('%','pt','em' ...).
69
- */
70
-
71
- var Tween = function (obj, prop, func, begin, finish, duration, suffixe) {
72
- this.init(obj, prop, func, begin, finish, duration, suffixe);
73
- };
74
- var t = Tween.prototype;
75
-
76
- t.obj = {};
77
- t.prop = '';
78
- t.func = function (t, b, c, d) { return c * t / d + b; };
79
- t.begin = 0;
80
- t.change = 0;
81
- t.prevTime = 0;
82
- t.prevPos = 0;
83
- t.looping = false;
84
- t._duration = 0;
85
- t._time = 0;
86
- t._pos = 0;
87
- t._position = 0;
88
- t._startTime = 0;
89
- t._finish = 0;
90
- t.name = '';
91
- t.suffixe = '';
92
- t._listeners = [];
93
- t.setTime = function (t) {
94
- this.prevTime = this._time;
95
- if (t > this.getDuration()) {
96
- if (this.looping) {
97
- this.rewind(t - this._duration);
98
- this.update();
99
- this.broadcastMessage('onMotionLooped', {target: this, type: 'onMotionLooped'});
100
- } else {
101
- this._time = this._duration;
102
- this.update();
103
- this.stop();
104
- this.broadcastMessage('onMotionFinished', {target: this, type: 'onMotionFinished'});
105
- }
106
- } else if (t < 0) {
107
- this.rewind();
108
- this.update();
109
- } else {
110
- this._time = t;
111
- this.update();
112
- }
113
- };
114
- t.getTime = function () {
115
- return this._time;
116
- };
117
- t.setDuration = function (d) {
118
- this._duration = (d === null || d <= 0) ? 100000 : d;
119
- };
120
- t.getDuration = function () {
121
- return this._duration;
122
- };
123
- t.setPosition = function (p) {
124
- this.prevPos = this._pos;
125
- var a = this.suffixe !== '' ? this.suffixe : '';
126
- this.obj[this.prop] = Math.round(p) + a;
127
- this._pos = p;
128
- this.broadcastMessage('onMotionChanged', {target: this, type: 'onMotionChanged'});
129
- };
130
- t.getPosition = function (t) {
131
- if (t === undefined) {
132
- t = this._time;
133
- }
134
- return this.func(t, this.begin, this.change, this._duration);
135
- };
136
- t.setFinish = function (f) {
137
- this.change = f - this.begin;
138
- };
139
- t.getFinish = function () {
140
- return this.begin + this.change;
141
- };
142
- t.init = function (obj, prop, func, begin, finish, duration, suffixe) {
143
- if (!arguments.length) {
144
- return;
145
- }
146
- this._listeners = [];
147
- this.addListener(this);
148
- if (suffixe) {
149
- this.suffixe = suffixe;
150
- }
151
- this.obj = obj;
152
- this.prop = prop;
153
- this.begin = begin;
154
- this._pos = begin;
155
- this.setDuration(duration);
156
- if (func !== null && func !== '') {
157
- this.func = func;
158
- }
159
- this.setFinish(finish);
160
- };
161
- t.start = function () {
162
- this.rewind();
163
- this.startEnterFrame();
164
- this.broadcastMessage('onMotionStarted', {target: this, type: 'onMotionStarted'});
165
- //alert('in');
166
- };
167
- t.rewind = function (t) {
168
- this.stop();
169
- this._time = (t === undefined) ? 0 : t;
170
- this.fixTime();
171
- this.update();
172
- };
173
- t.fforward = function () {
174
- this._time = this._duration;
175
- this.fixTime();
176
- this.update();
177
- };
178
- t.update = function () {
179
- this.setPosition(this.getPosition(this._time));
180
- };
181
- t.startEnterFrame = function () {
182
- this.stopEnterFrame();
183
- this.isPlaying = true;
184
- this.onEnterFrame();
185
- };
186
- t.onEnterFrame = function () {
187
- if (this.isPlaying) {
188
- this.nextFrame();
189
- // To get real smooth movement you have to set the timeout to 0 instead of 25
190
- setTimeout(Delegate.create(this, this.onEnterFrame), 25);
191
- }
192
- };
193
- t.nextFrame = function () {
194
- this.setTime((this.getTimer() - this._startTime) / 1000);
195
- };
196
- t.stop = function () {
197
- this.stopEnterFrame();
198
- this.broadcastMessage('onMotionStopped', {target: this, type: 'onMotionStopped'});
199
- };
200
- t.stopEnterFrame = function () {
201
- this.isPlaying = false;
202
- };
203
- t.playing = function () {
204
- return this.isPlaying;
205
- };
206
- t.continueTo = function (finish, duration) {
207
- this.begin = this._pos;
208
- this.setFinish(finish);
209
- if (this._duration !== undefined) {
210
- this.setDuration(duration);
211
- }
212
- this.start();
213
- };
214
- t.resume = function () {
215
- this.fixTime();
216
- this.startEnterFrame();
217
- this.broadcastMessage('onMotionResumed', {target: this, type: 'onMotionResumed'});
218
- };
219
- t.yoyo = function () {
220
- this.continueTo(this.begin, this._time);
221
- };
222
- t.addListener = function (o) {
223
- this.removeListener(o);
224
- return this._listeners.push(o);
225
- };
226
- t.removeListener = function (o) {
227
- var a = this._listeners,
228
- i = a.length;
229
- while (i--) {
230
- if (a[i] === o) {
231
- a.splice(i, 1);
232
- return true;
233
- }
234
- }
235
- return false;
236
- };
237
- t.broadcastMessage = function () {
238
- var arr = [], i, e, a = this._listeners,
239
- l = a.length;
240
- for (i = 0; i < arguments.length; i++) {
241
- arr.push(arguments[i]);
242
- }
243
- e = arr.shift();
244
-
245
- for (i = 0; i < l; i++) {
246
- if (a[i][e]) {
247
- a[i][e].apply(a[i], arr);
248
- }
249
- }
250
- };
251
- t.fixTime = function () {
252
- this._startTime = this.getTimer() - this._time * 1000;
253
- };
254
- t.getTimer = function () {
255
- return new Date().getTime() - this._time;
256
- };
257
- Tween.backEaseIn = function (t, b, c, d, a, p) {
258
- var s = 1.70158;
259
- return c * (t /= d) * t * ((s + 1) * t - s) + b;
260
- };
261
- Tween.backEaseOut = function (t, b, c, d, a, p) {
262
- var s = 1.70158;
263
- return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
264
- };
265
- Tween.backEaseInOut = function (t, b, c, d, a, p) {
266
- var s = 1.70158;
267
- if ((t /= d / 2) < 1) {
268
- return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;
269
- }
270
- return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;
271
- };
272
- Tween.elasticEaseIn = function (t, b, c, d, a, p) {
273
- var s;
274
- if (t === 0) {
275
- return b;
276
- }
277
- if ((t /= d) === 1) {
278
- return b + c;
279
- }
280
- if (!p) {
281
- p = d * 0.3;
282
- }
283
- if (!a || a < Math.abs(c)) {
284
- a = c;
285
- s = p / 4;
286
- } else {
287
- s = p / (2 * Math.PI) * Math.asin(c / a);
288
- }
289
-
290
- return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
291
-
292
- };
293
- Tween.elasticEaseOut = function (t, b, c, d, a, p) {
294
- var s;
295
- if (t === 0) {
296
- return b;
297
- }
298
- if ((t /= d) === 1) {
299
- return b + c;
300
- }
301
- if (!p) {
302
- p = d * 0.3;
303
- }
304
- if (!a || a < Math.abs(c)) {
305
- a = c;
306
- s = p / 4;
307
- } else {
308
- s = p / (2 * Math.PI) * Math.asin(c / a);
309
- }
310
- return (a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b);
311
- };
312
- Tween.elasticEaseInOut = function (t, b, c, d, a, p) {
313
- var s;
314
- if (t === 0) {
315
- return b;
316
- }
317
- if ((t /= d / 2) === 2) {
318
- return b + c;
319
- }
320
- if (!p) {
321
- p = d * (0.3 * 1.5);
322
- }
323
- if (!a || a < Math.abs(c)) {
324
- a = c;
325
- s = p / 4;
326
- } else {
327
- s = p / (2 * Math.PI) * Math.asin(c / a);
328
- }
329
- if (t < 1) {
330
- return -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
331
- }
332
- return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * 0.5 + c + b;
333
- };
334
- Tween.bounceEaseOut = function (t, b, c, d) {
335
- if ((t /= d) < (1 / 2.75)) {
336
- return c * (7.5625 * t * t) + b;
337
- } else if (t < (2 / 2.75)) {
338
- return c * (7.5625 * (t -= (1.5 / 2.75)) * t + 0.75) + b;
339
- } else if (t < (2.5 / 2.75)) {
340
- return c * (7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375) + b;
341
- } else {
342
- return c * (7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375) + b;
343
- }
344
- };
345
- Tween.bounceEaseIn = function (t, b, c, d) {
346
- return c - Tween.bounceEaseOut(d - t, 0, c, d) + b;
347
- };
348
- Tween.bounceEaseInOut = function (t, b, c, d) {
349
- if (t < d / 2) {
350
- return Tween.bounceEaseIn(t * 2, 0, c, d) * 0.5 + b;
351
- } else {
352
- return Tween.bounceEaseOut(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;
353
- }
354
- };
355
- Tween.strongEaseInOut = function (t, b, c, d) {
356
- return c * (t /= d) * t * t * t * t + b;
357
- };
358
- Tween.regularEaseIn = function (t, b, c, d) {
359
- return c * (t /= d) * t + b;
360
- };
361
- Tween.regularEaseOut = function (t, b, c, d) {
362
- return -c * (t /= d) * (t - 2) + b;
363
- };
364
- Tween.regularEaseInOut = function (t, b, c, d) {
365
- if ((t /= d / 2) < 1) {
366
- return c / 2 * t * t + b;
367
- }
368
- return -c / 2 * ((--t) * (t - 2) - 1) + b;
369
- };
370
- Tween.strongEaseIn = function (t, b, c, d) {
371
- return c * (t /= d) * t * t * t * t + b;
372
- };
373
- Tween.strongEaseOut = function (t, b, c, d) {
374
- return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
375
- };
376
- Tween.strongEaseInOut = function (t, b, c, d) {
377
- if ((t /= d / 2) < 1) {
378
- return c / 2 * t * t * t * t * t + b;
379
- }
380
- return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;
381
- };
1
+ /**********************************************************************
2
+ TERMS OF USE - EASING EQUATIONS
3
+ Open source under the BSD License.
4
+ Copyright (c) 2001 Robert Penner
5
+ JavaScript version copyright (C) 2006 by Philippe Maegerman
6
+ All rights reserved.
7
+
8
+ Redistribution and use in source and binary forms, with or without
9
+ modification, are permitted provided that the following conditions are
10
+ met:
11
+
12
+ * Redistributions of source code must retain the above copyright
13
+ notice, this list of conditions and the following disclaimer.
14
+ * Redistributions in binary form must reproduce the above
15
+ copyright notice, this list of conditions and the following disclaimer
16
+ in the documentation and/or other materials provided with the
17
+ distribution.
18
+ * Neither the name of the author nor the names of contributors may
19
+ be used to endorse or promote products derived from this software
20
+ without specific prior written permission.
21
+
22
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
+
34
+ *****************************************/
35
+ function Delegate() {}
36
+ Delegate.create = function (o, f) {
37
+ var a = [], i, l = arguments.length;
38
+ for (i = 2; i < l; i++) {
39
+ a[i - 2] = arguments[i];
40
+ }
41
+ return function () {
42
+ var aP = [].concat(arguments, a);
43
+ f.apply(o, aP);
44
+ };
45
+ };
46
+
47
+ /*
48
+ object:
49
+ type:Object
50
+ The object you want to modify. It can be any object, a visual object that you want to animate ( document.body.style ) or an anymous object ( new Object() ).
51
+ property:
52
+ type:String
53
+ The property that is updated on the target object, it can be empty ('')
54
+ easing:
55
+ type:Function
56
+ The easing that will be applied to motion.
57
+ start:
58
+ type:Number
59
+ Start value
60
+ end:
61
+ type:Number
62
+ End value
63
+ duration:
64
+ type:Number
65
+ Animation duration in seconds
66
+ suffixe:
67
+ type:String
68
+ A string to append to the updated property ('%','pt','em' ...).
69
+ */
70
+
71
+ var Tween = function (obj, prop, func, begin, finish, duration, suffixe) {
72
+ this.init(obj, prop, func, begin, finish, duration, suffixe);
73
+ };
74
+ var t = Tween.prototype;
75
+
76
+ t.obj = {};
77
+ t.prop = '';
78
+ t.func = function (t, b, c, d) { return c * t / d + b; };
79
+ t.begin = 0;
80
+ t.change = 0;
81
+ t.prevTime = 0;
82
+ t.prevPos = 0;
83
+ t.looping = false;
84
+ t._duration = 0;
85
+ t._time = 0;
86
+ t._pos = 0;
87
+ t._position = 0;
88
+ t._startTime = 0;
89
+ t._finish = 0;
90
+ t.name = '';
91
+ t.suffixe = '';
92
+ t._listeners = [];
93
+ t.setTime = function (t) {
94
+ this.prevTime = this._time;
95
+ if (t > this.getDuration()) {
96
+ if (this.looping) {
97
+ this.rewind(t - this._duration);
98
+ this.update();
99
+ this.broadcastMessage('onMotionLooped', {target: this, type: 'onMotionLooped'});
100
+ } else {
101
+ this._time = this._duration;
102
+ this.update();
103
+ this.stop();
104
+ this.broadcastMessage('onMotionFinished', {target: this, type: 'onMotionFinished'});
105
+ }
106
+ } else if (t < 0) {
107
+ this.rewind();
108
+ this.update();
109
+ } else {
110
+ this._time = t;
111
+ this.update();
112
+ }
113
+ };
114
+ t.getTime = function () {
115
+ return this._time;
116
+ };
117
+ t.setDuration = function (d) {
118
+ this._duration = (d === null || d <= 0) ? 100000 : d;
119
+ };
120
+ t.getDuration = function () {
121
+ return this._duration;
122
+ };
123
+ t.setPosition = function (p) {
124
+ this.prevPos = this._pos;
125
+ var a = this.suffixe !== '' ? this.suffixe : '';
126
+ this.obj[this.prop] = Math.round(p) + a;
127
+ this._pos = p;
128
+ this.broadcastMessage('onMotionChanged', {target: this, type: 'onMotionChanged'});
129
+ };
130
+ t.getPosition = function (t) {
131
+ if (t === undefined) {
132
+ t = this._time;
133
+ }
134
+ return this.func(t, this.begin, this.change, this._duration);
135
+ };
136
+ t.setFinish = function (f) {
137
+ this.change = f - this.begin;
138
+ };
139
+ t.getFinish = function () {
140
+ return this.begin + this.change;
141
+ };
142
+ t.init = function (obj, prop, func, begin, finish, duration, suffixe) {
143
+ if (!arguments.length) {
144
+ return;
145
+ }
146
+ this._listeners = [];
147
+ this.addListener(this);
148
+ if (suffixe) {
149
+ this.suffixe = suffixe;
150
+ }
151
+ this.obj = obj;
152
+ this.prop = prop;
153
+ this.begin = begin;
154
+ this._pos = begin;
155
+ this.setDuration(duration);
156
+ if (func !== null && func !== '') {
157
+ this.func = func;
158
+ }
159
+ this.setFinish(finish);
160
+ };
161
+ t.start = function () {
162
+ this.rewind();
163
+ this.startEnterFrame();
164
+ this.broadcastMessage('onMotionStarted', {target: this, type: 'onMotionStarted'});
165
+ //alert('in');
166
+ };
167
+ t.rewind = function (t) {
168
+ this.stop();
169
+ this._time = (t === undefined) ? 0 : t;
170
+ this.fixTime();
171
+ this.update();
172
+ };
173
+ t.fforward = function () {
174
+ this._time = this._duration;
175
+ this.fixTime();
176
+ this.update();
177
+ };
178
+ t.update = function () {
179
+ this.setPosition(this.getPosition(this._time));
180
+ };
181
+ t.startEnterFrame = function () {
182
+ this.stopEnterFrame();
183
+ this.isPlaying = true;
184
+ this.onEnterFrame();
185
+ };
186
+ t.onEnterFrame = function () {
187
+ if (this.isPlaying) {
188
+ this.nextFrame();
189
+ // To get real smooth movement you have to set the timeout to 0 instead of 25
190
+ setTimeout(Delegate.create(this, this.onEnterFrame), 25);
191
+ }
192
+ };
193
+ t.nextFrame = function () {
194
+ this.setTime((this.getTimer() - this._startTime) / 1000);
195
+ };
196
+ t.stop = function () {
197
+ this.stopEnterFrame();
198
+ this.broadcastMessage('onMotionStopped', {target: this, type: 'onMotionStopped'});
199
+ };
200
+ t.stopEnterFrame = function () {
201
+ this.isPlaying = false;
202
+ };
203
+ t.playing = function () {
204
+ return this.isPlaying;
205
+ };
206
+ t.continueTo = function (finish, duration) {
207
+ this.begin = this._pos;
208
+ this.setFinish(finish);
209
+ if (this._duration !== undefined) {
210
+ this.setDuration(duration);
211
+ }
212
+ this.start();
213
+ };
214
+ t.resume = function () {
215
+ this.fixTime();
216
+ this.startEnterFrame();
217
+ this.broadcastMessage('onMotionResumed', {target: this, type: 'onMotionResumed'});
218
+ };
219
+ t.yoyo = function () {
220
+ this.continueTo(this.begin, this._time);
221
+ };
222
+ t.addListener = function (o) {
223
+ this.removeListener(o);
224
+ return this._listeners.push(o);
225
+ };
226
+ t.removeListener = function (o) {
227
+ var a = this._listeners,
228
+ i = a.length;
229
+ while (i--) {
230
+ if (a[i] === o) {
231
+ a.splice(i, 1);
232
+ return true;
233
+ }
234
+ }
235
+ return false;
236
+ };
237
+ t.broadcastMessage = function () {
238
+ var arr = [], i, e, a = this._listeners,
239
+ l = a.length;
240
+ for (i = 0; i < arguments.length; i++) {
241
+ arr.push(arguments[i]);
242
+ }
243
+ e = arr.shift();
244
+
245
+ for (i = 0; i < l; i++) {
246
+ if (a[i][e]) {
247
+ a[i][e].apply(a[i], arr);
248
+ }
249
+ }
250
+ };
251
+ t.fixTime = function () {
252
+ this._startTime = this.getTimer() - this._time * 1000;
253
+ };
254
+ t.getTimer = function () {
255
+ return new Date().getTime() - this._time;
256
+ };
257
+ Tween.backEaseIn = function (t, b, c, d, a, p) {
258
+ var s = 1.70158;
259
+ return c * (t /= d) * t * ((s + 1) * t - s) + b;
260
+ };
261
+ Tween.backEaseOut = function (t, b, c, d, a, p) {
262
+ var s = 1.70158;
263
+ return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
264
+ };
265
+ Tween.backEaseInOut = function (t, b, c, d, a, p) {
266
+ var s = 1.70158;
267
+ if ((t /= d / 2) < 1) {
268
+ return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;
269
+ }
270
+ return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;
271
+ };
272
+ Tween.elasticEaseIn = function (t, b, c, d, a, p) {
273
+ var s;
274
+ if (t === 0) {
275
+ return b;
276
+ }
277
+ if ((t /= d) === 1) {
278
+ return b + c;
279
+ }
280
+ if (!p) {
281
+ p = d * 0.3;
282
+ }
283
+ if (!a || a < Math.abs(c)) {
284
+ a = c;
285
+ s = p / 4;
286
+ } else {
287
+ s = p / (2 * Math.PI) * Math.asin(c / a);
288
+ }
289
+
290
+ return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
291
+
292
+ };
293
+ Tween.elasticEaseOut = function (t, b, c, d, a, p) {
294
+ var s;
295
+ if (t === 0) {
296
+ return b;
297
+ }
298
+ if ((t /= d) === 1) {
299
+ return b + c;
300
+ }
301
+ if (!p) {
302
+ p = d * 0.3;
303
+ }
304
+ if (!a || a < Math.abs(c)) {
305
+ a = c;
306
+ s = p / 4;
307
+ } else {
308
+ s = p / (2 * Math.PI) * Math.asin(c / a);
309
+ }
310
+ return (a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b);
311
+ };
312
+ Tween.elasticEaseInOut = function (t, b, c, d, a, p) {
313
+ var s;
314
+ if (t === 0) {
315
+ return b;
316
+ }
317
+ if ((t /= d / 2) === 2) {
318
+ return b + c;
319
+ }
320
+ if (!p) {
321
+ p = d * (0.3 * 1.5);
322
+ }
323
+ if (!a || a < Math.abs(c)) {
324
+ a = c;
325
+ s = p / 4;
326
+ } else {
327
+ s = p / (2 * Math.PI) * Math.asin(c / a);
328
+ }
329
+ if (t < 1) {
330
+ return -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
331
+ }
332
+ return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * 0.5 + c + b;
333
+ };
334
+ Tween.bounceEaseOut = function (t, b, c, d) {
335
+ if ((t /= d) < (1 / 2.75)) {
336
+ return c * (7.5625 * t * t) + b;
337
+ } else if (t < (2 / 2.75)) {
338
+ return c * (7.5625 * (t -= (1.5 / 2.75)) * t + 0.75) + b;
339
+ } else if (t < (2.5 / 2.75)) {
340
+ return c * (7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375) + b;
341
+ } else {
342
+ return c * (7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375) + b;
343
+ }
344
+ };
345
+ Tween.bounceEaseIn = function (t, b, c, d) {
346
+ return c - Tween.bounceEaseOut(d - t, 0, c, d) + b;
347
+ };
348
+ Tween.bounceEaseInOut = function (t, b, c, d) {
349
+ if (t < d / 2) {
350
+ return Tween.bounceEaseIn(t * 2, 0, c, d) * 0.5 + b;
351
+ } else {
352
+ return Tween.bounceEaseOut(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;
353
+ }
354
+ };
355
+ Tween.strongEaseInOut = function (t, b, c, d) {
356
+ return c * (t /= d) * t * t * t * t + b;
357
+ };
358
+ Tween.regularEaseIn = function (t, b, c, d) {
359
+ return c * (t /= d) * t + b;
360
+ };
361
+ Tween.regularEaseOut = function (t, b, c, d) {
362
+ return -c * (t /= d) * (t - 2) + b;
363
+ };
364
+ Tween.regularEaseInOut = function (t, b, c, d) {
365
+ if ((t /= d / 2) < 1) {
366
+ return c / 2 * t * t + b;
367
+ }
368
+ return -c / 2 * ((--t) * (t - 2) - 1) + b;
369
+ };
370
+ Tween.strongEaseIn = function (t, b, c, d) {
371
+ return c * (t /= d) * t * t * t * t + b;
372
+ };
373
+ Tween.strongEaseOut = function (t, b, c, d) {
374
+ return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
375
+ };
376
+ Tween.strongEaseInOut = function (t, b, c, d) {
377
+ if ((t /= d / 2) < 1) {
378
+ return c / 2 * t * t * t * t * t + b;
379
+ }
380
+ return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;
381
+ };