@canonical/yui 3.18.2-pre

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 (1485) hide show
  1. package/AGENTS.md +50 -0
  2. package/BUILD.md +54 -0
  3. package/CONTRIBUTING.md +85 -0
  4. package/CONTRIBUTORS.md +30 -0
  5. package/Gruntfile.js +122 -0
  6. package/HISTORY.md +12 -0
  7. package/LICENSE.md +145 -0
  8. package/README.md +133 -0
  9. package/build/align-plugin/align-plugin-debug.js +193 -0
  10. package/build/align-plugin/align-plugin-min.js +1 -0
  11. package/build/align-plugin/align-plugin.js +193 -0
  12. package/build/anim-base/anim-base-debug.js +686 -0
  13. package/build/anim-base/anim-base-min.js +1 -0
  14. package/build/anim-base/anim-base.js +685 -0
  15. package/build/anim-color/anim-color-debug.js +53 -0
  16. package/build/anim-color/anim-color-min.js +1 -0
  17. package/build/anim-color/anim-color.js +53 -0
  18. package/build/anim-curve/anim-curve-debug.js +59 -0
  19. package/build/anim-curve/anim-curve-min.js +1 -0
  20. package/build/anim-curve/anim-curve.js +59 -0
  21. package/build/anim-easing/anim-easing-debug.js +365 -0
  22. package/build/anim-easing/anim-easing-min.js +1 -0
  23. package/build/anim-easing/anim-easing.js +365 -0
  24. package/build/anim-node-plugin/anim-node-plugin-debug.js +26 -0
  25. package/build/anim-node-plugin/anim-node-plugin-min.js +1 -0
  26. package/build/anim-node-plugin/anim-node-plugin.js +26 -0
  27. package/build/anim-scroll/anim-scroll-debug.js +38 -0
  28. package/build/anim-scroll/anim-scroll-min.js +1 -0
  29. package/build/anim-scroll/anim-scroll.js +38 -0
  30. package/build/anim-shape/anim-shape-debug.js +185 -0
  31. package/build/anim-shape/anim-shape-min.js +1 -0
  32. package/build/anim-shape/anim-shape.js +185 -0
  33. package/build/anim-xy/anim-xy-debug.js +26 -0
  34. package/build/anim-xy/anim-xy-min.js +1 -0
  35. package/build/anim-xy/anim-xy.js +26 -0
  36. package/build/app-base/app-base-debug.js +1116 -0
  37. package/build/app-base/app-base-min.js +1 -0
  38. package/build/app-base/app-base.js +1116 -0
  39. package/build/app-content/app-content-debug.js +235 -0
  40. package/build/app-content/app-content-min.js +1 -0
  41. package/build/app-content/app-content.js +235 -0
  42. package/build/app-transitions/app-transitions-debug.js +242 -0
  43. package/build/app-transitions/app-transitions-min.js +1 -0
  44. package/build/app-transitions/app-transitions.js +242 -0
  45. package/build/app-transitions-css/app-transitions-css-min.css +1 -0
  46. package/build/app-transitions-css/app-transitions-css.css +33 -0
  47. package/build/app-transitions-native/app-transitions-native-debug.js +353 -0
  48. package/build/app-transitions-native/app-transitions-native-min.js +1 -0
  49. package/build/app-transitions-native/app-transitions-native.js +353 -0
  50. package/build/array-extras/array-extras-debug.js +400 -0
  51. package/build/array-extras/array-extras-min.js +1 -0
  52. package/build/array-extras/array-extras.js +400 -0
  53. package/build/array-invoke/array-invoke-debug.js +40 -0
  54. package/build/array-invoke/array-invoke-min.js +1 -0
  55. package/build/array-invoke/array-invoke.js +40 -0
  56. package/build/arraylist/arraylist-debug.js +214 -0
  57. package/build/arraylist/arraylist-min.js +1 -0
  58. package/build/arraylist/arraylist.js +214 -0
  59. package/build/arraylist-add/arraylist-add-debug.js +87 -0
  60. package/build/arraylist-add/arraylist-add-min.js +1 -0
  61. package/build/arraylist-add/arraylist-add.js +87 -0
  62. package/build/arraylist-filter/arraylist-filter-debug.js +45 -0
  63. package/build/arraylist-filter/arraylist-filter-min.js +1 -0
  64. package/build/arraylist-filter/arraylist-filter.js +45 -0
  65. package/build/arraysort/arraysort-debug.js +181 -0
  66. package/build/arraysort/arraysort-min.js +1 -0
  67. package/build/arraysort/arraysort.js +181 -0
  68. package/build/async-queue/async-queue-debug.js +554 -0
  69. package/build/async-queue/async-queue-min.js +1 -0
  70. package/build/async-queue/async-queue.js +554 -0
  71. package/build/attribute-base/attribute-base-debug.js +110 -0
  72. package/build/attribute-base/attribute-base-min.js +1 -0
  73. package/build/attribute-base/attribute-base.js +110 -0
  74. package/build/attribute-complex/attribute-complex-debug.js +56 -0
  75. package/build/attribute-complex/attribute-complex-min.js +1 -0
  76. package/build/attribute-complex/attribute-complex.js +56 -0
  77. package/build/attribute-core/attribute-core-debug.js +1208 -0
  78. package/build/attribute-core/attribute-core-min.js +1 -0
  79. package/build/attribute-core/attribute-core.js +1196 -0
  80. package/build/attribute-extras/attribute-extras-debug.js +157 -0
  81. package/build/attribute-extras/attribute-extras-min.js +1 -0
  82. package/build/attribute-extras/attribute-extras.js +156 -0
  83. package/build/attribute-observable/attribute-observable-debug.js +237 -0
  84. package/build/attribute-observable/attribute-observable-min.js +1 -0
  85. package/build/attribute-observable/attribute-observable.js +236 -0
  86. package/build/autocomplete-base/autocomplete-base-debug.js +1557 -0
  87. package/build/autocomplete-base/autocomplete-base-min.js +2 -0
  88. package/build/autocomplete-base/autocomplete-base.js +1549 -0
  89. package/build/autocomplete-filters/autocomplete-filters-debug.js +239 -0
  90. package/build/autocomplete-filters/autocomplete-filters-min.js +1 -0
  91. package/build/autocomplete-filters/autocomplete-filters.js +239 -0
  92. package/build/autocomplete-filters-accentfold/autocomplete-filters-accentfold-debug.js +136 -0
  93. package/build/autocomplete-filters-accentfold/autocomplete-filters-accentfold-min.js +1 -0
  94. package/build/autocomplete-filters-accentfold/autocomplete-filters-accentfold.js +136 -0
  95. package/build/autocomplete-highlighters/autocomplete-highlighters-debug.js +199 -0
  96. package/build/autocomplete-highlighters/autocomplete-highlighters-min.js +1 -0
  97. package/build/autocomplete-highlighters/autocomplete-highlighters.js +199 -0
  98. package/build/autocomplete-highlighters-accentfold/autocomplete-highlighters-accentfold-debug.js +107 -0
  99. package/build/autocomplete-highlighters-accentfold/autocomplete-highlighters-accentfold-min.js +1 -0
  100. package/build/autocomplete-highlighters-accentfold/autocomplete-highlighters-accentfold.js +107 -0
  101. package/build/autocomplete-list/assets/autocomplete-list-core.css +27 -0
  102. package/build/autocomplete-list/assets/skins/night/autocomplete-list-skin.css +51 -0
  103. package/build/autocomplete-list/assets/skins/night/autocomplete-list.css +1 -0
  104. package/build/autocomplete-list/assets/skins/sam/autocomplete-list-skin.css +17 -0
  105. package/build/autocomplete-list/assets/skins/sam/autocomplete-list.css +1 -0
  106. package/build/autocomplete-list/autocomplete-list-debug.js +906 -0
  107. package/build/autocomplete-list/autocomplete-list-min.js +2 -0
  108. package/build/autocomplete-list/autocomplete-list.js +906 -0
  109. package/build/autocomplete-list/lang/autocomplete-list.js +1 -0
  110. package/build/autocomplete-list/lang/autocomplete-list_en.js +1 -0
  111. package/build/autocomplete-list/lang/autocomplete-list_es.js +1 -0
  112. package/build/autocomplete-list/lang/autocomplete-list_hu.js +1 -0
  113. package/build/autocomplete-list/lang/autocomplete-list_it.js +1 -0
  114. package/build/autocomplete-list-keys/autocomplete-list-keys-debug.js +186 -0
  115. package/build/autocomplete-list-keys/autocomplete-list-keys-min.js +1 -0
  116. package/build/autocomplete-list-keys/autocomplete-list-keys.js +186 -0
  117. package/build/autocomplete-plugin/autocomplete-plugin-debug.js +48 -0
  118. package/build/autocomplete-plugin/autocomplete-plugin-min.js +1 -0
  119. package/build/autocomplete-plugin/autocomplete-plugin.js +48 -0
  120. package/build/autocomplete-sources/autocomplete-sources-debug.js +475 -0
  121. package/build/autocomplete-sources/autocomplete-sources-min.js +1 -0
  122. package/build/autocomplete-sources/autocomplete-sources.js +475 -0
  123. package/build/axis/axis-debug.js +3173 -0
  124. package/build/axis/axis-min.js +5 -0
  125. package/build/axis/axis.js +3173 -0
  126. package/build/axis-base/axis-base-debug.js +901 -0
  127. package/build/axis-base/axis-base-min.js +1 -0
  128. package/build/axis-base/axis-base.js +901 -0
  129. package/build/axis-category/axis-category-debug.js +119 -0
  130. package/build/axis-category/axis-category-min.js +1 -0
  131. package/build/axis-category/axis-category.js +119 -0
  132. package/build/axis-category-base/axis-category-base-debug.js +247 -0
  133. package/build/axis-category-base/axis-category-base-min.js +1 -0
  134. package/build/axis-category-base/axis-category-base.js +247 -0
  135. package/build/axis-numeric/axis-numeric-debug.js +140 -0
  136. package/build/axis-numeric/axis-numeric-min.js +1 -0
  137. package/build/axis-numeric/axis-numeric.js +140 -0
  138. package/build/axis-numeric-base/axis-numeric-base-debug.js +721 -0
  139. package/build/axis-numeric-base/axis-numeric-base-min.js +1 -0
  140. package/build/axis-numeric-base/axis-numeric-base.js +721 -0
  141. package/build/axis-stacked/axis-stacked-debug.js +23 -0
  142. package/build/axis-stacked/axis-stacked-min.js +1 -0
  143. package/build/axis-stacked/axis-stacked.js +23 -0
  144. package/build/axis-stacked-base/axis-stacked-base-debug.js +133 -0
  145. package/build/axis-stacked-base/axis-stacked-base-min.js +1 -0
  146. package/build/axis-stacked-base/axis-stacked-base.js +133 -0
  147. package/build/axis-time/axis-time-debug.js +91 -0
  148. package/build/axis-time/axis-time-min.js +1 -0
  149. package/build/axis-time/axis-time.js +91 -0
  150. package/build/axis-time-base/axis-time-base-debug.js +352 -0
  151. package/build/axis-time-base/axis-time-base-min.js +1 -0
  152. package/build/axis-time-base/axis-time-base.js +352 -0
  153. package/build/base-base/base-base-debug.js +184 -0
  154. package/build/base-base/base-base-min.js +1 -0
  155. package/build/base-base/base-base.js +184 -0
  156. package/build/base-build/base-build-debug.js +453 -0
  157. package/build/base-build/base-build-min.js +1 -0
  158. package/build/base-build/base-build.js +453 -0
  159. package/build/base-core/base-core-debug.js +838 -0
  160. package/build/base-core/base-core-min.js +1 -0
  161. package/build/base-core/base-core.js +832 -0
  162. package/build/base-observable/base-observable-debug.js +221 -0
  163. package/build/base-observable/base-observable-min.js +1 -0
  164. package/build/base-observable/base-observable.js +220 -0
  165. package/build/base-pluginhost/base-pluginhost-debug.js +36 -0
  166. package/build/base-pluginhost/base-pluginhost-min.js +1 -0
  167. package/build/base-pluginhost/base-pluginhost.js +36 -0
  168. package/build/button/button-debug.js +332 -0
  169. package/build/button/button-min.js +1 -0
  170. package/build/button/button.js +332 -0
  171. package/build/button-core/button-core-debug.js +399 -0
  172. package/build/button-core/button-core-min.js +1 -0
  173. package/build/button-core/button-core.js +399 -0
  174. package/build/button-group/button-group-debug.js +194 -0
  175. package/build/button-group/button-group-min.js +1 -0
  176. package/build/button-group/button-group.js +194 -0
  177. package/build/button-plugin/button-plugin-debug.js +134 -0
  178. package/build/button-plugin/button-plugin-min.js +1 -0
  179. package/build/button-plugin/button-plugin.js +134 -0
  180. package/build/cache-base/cache-base-debug.js +442 -0
  181. package/build/cache-base/cache-base-min.js +1 -0
  182. package/build/cache-base/cache-base.js +432 -0
  183. package/build/cache-offline/cache-offline-debug.js +341 -0
  184. package/build/cache-offline/cache-offline-min.js +1 -0
  185. package/build/cache-offline/cache-offline.js +333 -0
  186. package/build/cache-plugin/cache-plugin-debug.js +53 -0
  187. package/build/cache-plugin/cache-plugin-min.js +1 -0
  188. package/build/cache-plugin/cache-plugin.js +53 -0
  189. package/build/calendar/assets/calendar-core.css +31 -0
  190. package/build/calendar/assets/skins/night/calendar-skin.css +7 -0
  191. package/build/calendar/assets/skins/night/calendar.css +1 -0
  192. package/build/calendar/assets/skins/sam/calendar-skin.css +7 -0
  193. package/build/calendar/assets/skins/sam/calendar.css +1 -0
  194. package/build/calendar/calendar-debug.js +610 -0
  195. package/build/calendar/calendar-min.js +2 -0
  196. package/build/calendar/calendar.js +610 -0
  197. package/build/calendar-base/assets/calendar-base-core.css +21 -0
  198. package/build/calendar-base/assets/skins/night/calendar-base-skin.css +92 -0
  199. package/build/calendar-base/assets/skins/night/calendar-base.css +1 -0
  200. package/build/calendar-base/assets/skins/sam/calendar-base-skin.css +98 -0
  201. package/build/calendar-base/assets/skins/sam/calendar-base.css +1 -0
  202. package/build/calendar-base/calendar-base-debug.js +1719 -0
  203. package/build/calendar-base/calendar-base-min.js +3 -0
  204. package/build/calendar-base/calendar-base.js +1719 -0
  205. package/build/calendar-base/lang/calendar-base.js +1 -0
  206. package/build/calendar-base/lang/calendar-base_de.js +1 -0
  207. package/build/calendar-base/lang/calendar-base_en.js +1 -0
  208. package/build/calendar-base/lang/calendar-base_es-AR.js +1 -0
  209. package/build/calendar-base/lang/calendar-base_es.js +1 -0
  210. package/build/calendar-base/lang/calendar-base_fr.js +1 -0
  211. package/build/calendar-base/lang/calendar-base_hu.js +1 -0
  212. package/build/calendar-base/lang/calendar-base_it.js +1 -0
  213. package/build/calendar-base/lang/calendar-base_ja.js +1 -0
  214. package/build/calendar-base/lang/calendar-base_nb-NO.js +1 -0
  215. package/build/calendar-base/lang/calendar-base_nl.js +1 -0
  216. package/build/calendar-base/lang/calendar-base_pt-BR.js +1 -0
  217. package/build/calendar-base/lang/calendar-base_ru.js +1 -0
  218. package/build/calendar-base/lang/calendar-base_zh-HANT-TW.js +1 -0
  219. package/build/calendar-base/lang/calendar-base_zh-Hans-CN.js +1 -0
  220. package/build/calendar-base/lang/calendar-base_zh-Hans.js +1 -0
  221. package/build/calendar-base/lang/calendar-base_zh-Hant-HK.js +1 -0
  222. package/build/calendar-base/lang/calendar-base_zh-Hant.js +1 -0
  223. package/build/calendarnavigator/assets/calendarnavigator-core.css +18 -0
  224. package/build/calendarnavigator/assets/skins/night/calendarnavigator-skin.css +78 -0
  225. package/build/calendarnavigator/assets/skins/night/calendarnavigator.css +1 -0
  226. package/build/calendarnavigator/assets/skins/sam/calendarnavigator-skin.css +78 -0
  227. package/build/calendarnavigator/assets/skins/sam/calendarnavigator.css +1 -0
  228. package/build/calendarnavigator/calendarnavigator-debug.js +297 -0
  229. package/build/calendarnavigator/calendarnavigator-min.js +1 -0
  230. package/build/calendarnavigator/calendarnavigator.js +297 -0
  231. package/build/charts-base/charts-base-debug.js +5181 -0
  232. package/build/charts-base/charts-base-min.js +8 -0
  233. package/build/charts-base/charts-base.js +5181 -0
  234. package/build/charts-legend/charts-legend-debug.js +1703 -0
  235. package/build/charts-legend/charts-legend-min.js +3 -0
  236. package/build/charts-legend/charts-legend.js +1703 -0
  237. package/build/classnamemanager/classnamemanager-debug.js +84 -0
  238. package/build/classnamemanager/classnamemanager-min.js +1 -0
  239. package/build/classnamemanager/classnamemanager.js +84 -0
  240. package/build/clickable-rail/clickable-rail-debug.js +212 -0
  241. package/build/clickable-rail/clickable-rail-min.js +1 -0
  242. package/build/clickable-rail/clickable-rail.js +212 -0
  243. package/build/color-base/color-base-debug.js +492 -0
  244. package/build/color-base/color-base-min.js +1 -0
  245. package/build/color-base/color-base.js +492 -0
  246. package/build/color-harmony/color-harmony-debug.js +569 -0
  247. package/build/color-harmony/color-harmony-min.js +1 -0
  248. package/build/color-harmony/color-harmony.js +568 -0
  249. package/build/color-hsl/color-hsl-debug.js +218 -0
  250. package/build/color-hsl/color-hsl-min.js +1 -0
  251. package/build/color-hsl/color-hsl.js +218 -0
  252. package/build/color-hsv/color-hsv-debug.js +182 -0
  253. package/build/color-hsv/color-hsv-min.js +1 -0
  254. package/build/color-hsv/color-hsv.js +182 -0
  255. package/build/console/assets/console-core.css +0 -0
  256. package/build/console/assets/skins/sam/bg.png +0 -0
  257. package/build/console/assets/skins/sam/console-skin.css +185 -0
  258. package/build/console/assets/skins/sam/console.css +1 -0
  259. package/build/console/assets/skins/sam/warn_error.png +0 -0
  260. package/build/console/assets/warn_error.png +0 -0
  261. package/build/console/console-debug.js +1517 -0
  262. package/build/console/console-min.js +2 -0
  263. package/build/console/console.js +1517 -0
  264. package/build/console/lang/console.js +1 -0
  265. package/build/console/lang/console_en.js +1 -0
  266. package/build/console/lang/console_es.js +1 -0
  267. package/build/console/lang/console_hu.js +1 -0
  268. package/build/console/lang/console_it.js +1 -0
  269. package/build/console/lang/console_ja.js +1 -0
  270. package/build/console-filters/assets/console-filters-core.css +0 -0
  271. package/build/console-filters/assets/skins/sam/console-filters-skin.css +27 -0
  272. package/build/console-filters/assets/skins/sam/console-filters.css +1 -0
  273. package/build/console-filters/console-filters-debug.js +723 -0
  274. package/build/console-filters/console-filters-min.js +1 -0
  275. package/build/console-filters/console-filters.js +723 -0
  276. package/build/content-editable/content-editable-debug.js +808 -0
  277. package/build/content-editable/content-editable-min.js +1 -0
  278. package/build/content-editable/content-editable.js +797 -0
  279. package/build/cookie/cookie-debug.js +508 -0
  280. package/build/cookie/cookie-min.js +1 -0
  281. package/build/cookie/cookie.js +508 -0
  282. package/build/createlink-base/createlink-base-debug.js +86 -0
  283. package/build/createlink-base/createlink-base-min.js +1 -0
  284. package/build/createlink-base/createlink-base.js +85 -0
  285. package/build/cssbase/cssbase-min.css +1 -0
  286. package/build/cssbase/cssbase.css +77 -0
  287. package/build/cssbase-context/cssbase-context-min.css +1 -0
  288. package/build/cssbase-context/cssbase-context.css +76 -0
  289. package/build/cssbutton/cssbutton-min.css +1 -0
  290. package/build/cssbutton/cssbutton.css +147 -0
  291. package/build/cssfonts/cssfonts-min.css +1 -0
  292. package/build/cssfonts/cssfonts.css +43 -0
  293. package/build/cssfonts-context/cssfonts-context-min.css +1 -0
  294. package/build/cssfonts-context/cssfonts-context.css +43 -0
  295. package/build/cssgrids/cssgrids-min.css +11 -0
  296. package/build/cssgrids/cssgrids.css +298 -0
  297. package/build/cssgrids-base/cssgrids-base-min.css +6 -0
  298. package/build/cssgrids-base/cssgrids-base.css +80 -0
  299. package/build/cssgrids-responsive/cssgrids-responsive-min.css +6 -0
  300. package/build/cssgrids-responsive/cssgrids-responsive.css +398 -0
  301. package/build/cssgrids-units/cssgrids-units-min.css +6 -0
  302. package/build/cssgrids-units/cssgrids-units.css +221 -0
  303. package/build/cssnormalize/cssnormalize-min.css +9 -0
  304. package/build/cssnormalize/cssnormalize.css +584 -0
  305. package/build/cssnormalize-context/cssnormalize-context-min.css +9 -0
  306. package/build/cssnormalize-context/cssnormalize-context.css +584 -0
  307. package/build/cssreset/cssreset-min.css +1 -0
  308. package/build/cssreset/cssreset.css +116 -0
  309. package/build/cssreset-context/cssreset-context-min.css +1 -0
  310. package/build/cssreset-context/cssreset-context.css +121 -0
  311. package/build/dataschema-array/dataschema-array-debug.js +189 -0
  312. package/build/dataschema-array/dataschema-array-min.js +1 -0
  313. package/build/dataschema-array/dataschema-array.js +186 -0
  314. package/build/dataschema-base/dataschema-base-debug.js +67 -0
  315. package/build/dataschema-base/dataschema-base-min.js +1 -0
  316. package/build/dataschema-base/dataschema-base.js +66 -0
  317. package/build/dataschema-json/dataschema-json-debug.js +443 -0
  318. package/build/dataschema-json/dataschema-json-min.js +1 -0
  319. package/build/dataschema-json/dataschema-json.js +439 -0
  320. package/build/dataschema-text/dataschema-text-debug.js +183 -0
  321. package/build/dataschema-text/dataschema-text-min.js +1 -0
  322. package/build/dataschema-text/dataschema-text.js +182 -0
  323. package/build/dataschema-xml/dataschema-xml-debug.js +385 -0
  324. package/build/dataschema-xml/dataschema-xml-min.js +1 -0
  325. package/build/dataschema-xml/dataschema-xml.js +383 -0
  326. package/build/datasource-arrayschema/datasource-arrayschema-debug.js +106 -0
  327. package/build/datasource-arrayschema/datasource-arrayschema-min.js +1 -0
  328. package/build/datasource-arrayschema/datasource-arrayschema.js +106 -0
  329. package/build/datasource-cache/datasource-cache-debug.js +166 -0
  330. package/build/datasource-cache/datasource-cache-min.js +1 -0
  331. package/build/datasource-cache/datasource-cache.js +166 -0
  332. package/build/datasource-function/datasource-function-debug.js +108 -0
  333. package/build/datasource-function/datasource-function-min.js +1 -0
  334. package/build/datasource-function/datasource-function.js +106 -0
  335. package/build/datasource-get/datasource-get-debug.js +213 -0
  336. package/build/datasource-get/datasource-get-min.js +1 -0
  337. package/build/datasource-get/datasource-get.js +209 -0
  338. package/build/datasource-io/datasource-io-debug.js +204 -0
  339. package/build/datasource-io/datasource-io-min.js +1 -0
  340. package/build/datasource-io/datasource-io.js +201 -0
  341. package/build/datasource-jsonschema/datasource-jsonschema-debug.js +103 -0
  342. package/build/datasource-jsonschema/datasource-jsonschema-min.js +1 -0
  343. package/build/datasource-jsonschema/datasource-jsonschema.js +103 -0
  344. package/build/datasource-local/datasource-local-debug.js +402 -0
  345. package/build/datasource-local/datasource-local-min.js +1 -0
  346. package/build/datasource-local/datasource-local.js +398 -0
  347. package/build/datasource-polling/datasource-polling-debug.js +93 -0
  348. package/build/datasource-polling/datasource-polling-min.js +1 -0
  349. package/build/datasource-polling/datasource-polling.js +93 -0
  350. package/build/datasource-textschema/datasource-textschema-debug.js +102 -0
  351. package/build/datasource-textschema/datasource-textschema-min.js +1 -0
  352. package/build/datasource-textschema/datasource-textschema.js +102 -0
  353. package/build/datasource-xmlschema/datasource-xmlschema-debug.js +102 -0
  354. package/build/datasource-xmlschema/datasource-xmlschema-min.js +1 -0
  355. package/build/datasource-xmlschema/datasource-xmlschema.js +102 -0
  356. package/build/datatable-base/assets/datatable-base-core.css +4 -0
  357. package/build/datatable-base/assets/skins/night/datatable-base-skin.css +74 -0
  358. package/build/datatable-base/assets/skins/night/datatable-base.css +1 -0
  359. package/build/datatable-base/assets/skins/sam/datatable-base-skin.css +69 -0
  360. package/build/datatable-base/assets/skins/sam/datatable-base.css +1 -0
  361. package/build/datatable-base/datatable-base-debug.js +694 -0
  362. package/build/datatable-base/datatable-base-min.js +1 -0
  363. package/build/datatable-base/datatable-base.js +694 -0
  364. package/build/datatable-body/datatable-body-debug.js +1211 -0
  365. package/build/datatable-body/datatable-body-min.js +2 -0
  366. package/build/datatable-body/datatable-body.js +1211 -0
  367. package/build/datatable-column-widths/datatable-column-widths-debug.js +323 -0
  368. package/build/datatable-column-widths/datatable-column-widths-min.js +1 -0
  369. package/build/datatable-column-widths/datatable-column-widths.js +323 -0
  370. package/build/datatable-core/datatable-core-debug.js +1321 -0
  371. package/build/datatable-core/datatable-core-min.js +1 -0
  372. package/build/datatable-core/datatable-core.js +1319 -0
  373. package/build/datatable-datasource/datatable-datasource-debug.js +180 -0
  374. package/build/datatable-datasource/datatable-datasource-min.js +1 -0
  375. package/build/datatable-datasource/datatable-datasource.js +180 -0
  376. package/build/datatable-foot/datatable-foot-debug.js +112 -0
  377. package/build/datatable-foot/datatable-foot-min.js +1 -0
  378. package/build/datatable-foot/datatable-foot.js +112 -0
  379. package/build/datatable-formatters/datatable-formatters-debug.js +563 -0
  380. package/build/datatable-formatters/datatable-formatters-min.js +1 -0
  381. package/build/datatable-formatters/datatable-formatters.js +563 -0
  382. package/build/datatable-head/datatable-head-debug.js +532 -0
  383. package/build/datatable-head/datatable-head-min.js +1 -0
  384. package/build/datatable-head/datatable-head.js +532 -0
  385. package/build/datatable-highlight/assets/datatable-highlight-core.css +26 -0
  386. package/build/datatable-highlight/assets/skins/night/datatable-highlight-skin.css +11 -0
  387. package/build/datatable-highlight/assets/skins/night/datatable-highlight.css +1 -0
  388. package/build/datatable-highlight/assets/skins/sam/datatable-highlight-skin.css +11 -0
  389. package/build/datatable-highlight/assets/skins/sam/datatable-highlight.css +1 -0
  390. package/build/datatable-highlight/datatable-highlight-debug.js +282 -0
  391. package/build/datatable-highlight/datatable-highlight-min.js +1 -0
  392. package/build/datatable-highlight/datatable-highlight.js +282 -0
  393. package/build/datatable-keynav/datatable-keynav-debug.js +706 -0
  394. package/build/datatable-keynav/datatable-keynav-min.js +2 -0
  395. package/build/datatable-keynav/datatable-keynav.js +706 -0
  396. package/build/datatable-message/assets/datatable-message-core.css +8 -0
  397. package/build/datatable-message/assets/skins/night/datatable-message-skin.css +6 -0
  398. package/build/datatable-message/assets/skins/night/datatable-message.css +1 -0
  399. package/build/datatable-message/assets/skins/sam/datatable-message-skin.css +5 -0
  400. package/build/datatable-message/assets/skins/sam/datatable-message.css +1 -0
  401. package/build/datatable-message/datatable-message-debug.js +290 -0
  402. package/build/datatable-message/datatable-message-min.js +1 -0
  403. package/build/datatable-message/datatable-message.js +290 -0
  404. package/build/datatable-message/lang/datatable-message.js +1 -0
  405. package/build/datatable-message/lang/datatable-message_en.js +1 -0
  406. package/build/datatable-message/lang/datatable-message_es.js +1 -0
  407. package/build/datatable-message/lang/datatable-message_fr.js +1 -0
  408. package/build/datatable-message/lang/datatable-message_hu.js +1 -0
  409. package/build/datatable-message/lang/datatable-message_it.js +1 -0
  410. package/build/datatable-mutable/datatable-mutable-debug.js +635 -0
  411. package/build/datatable-mutable/datatable-mutable-min.js +1 -0
  412. package/build/datatable-mutable/datatable-mutable.js +630 -0
  413. package/build/datatable-paginator/assets/datatable-paginator-core.css +58 -0
  414. package/build/datatable-paginator/assets/skins/night/datatable-paginator-skin.css +35 -0
  415. package/build/datatable-paginator/assets/skins/night/datatable-paginator.css +1 -0
  416. package/build/datatable-paginator/assets/skins/sam/datatable-paginator-skin.css +36 -0
  417. package/build/datatable-paginator/assets/skins/sam/datatable-paginator.css +1 -0
  418. package/build/datatable-paginator/datatable-paginator-debug.js +995 -0
  419. package/build/datatable-paginator/datatable-paginator-min.js +2 -0
  420. package/build/datatable-paginator/datatable-paginator.js +995 -0
  421. package/build/datatable-paginator/lang/datatable-paginator.js +1 -0
  422. package/build/datatable-paginator/lang/datatable-paginator_en.js +1 -0
  423. package/build/datatable-paginator/lang/datatable-paginator_fr.js +1 -0
  424. package/build/datatable-paginator-templates/datatable-paginator-templates-debug.js +87 -0
  425. package/build/datatable-paginator-templates/datatable-paginator-templates-min.js +1 -0
  426. package/build/datatable-paginator-templates/datatable-paginator-templates.js +87 -0
  427. package/build/datatable-scroll/assets/datatable-scroll-core.css +71 -0
  428. package/build/datatable-scroll/assets/skins/night/datatable-scroll-skin.css +25 -0
  429. package/build/datatable-scroll/assets/skins/night/datatable-scroll.css +1 -0
  430. package/build/datatable-scroll/assets/skins/sam/datatable-scroll-skin.css +24 -0
  431. package/build/datatable-scroll/assets/skins/sam/datatable-scroll.css +1 -0
  432. package/build/datatable-scroll/datatable-scroll-debug.js +1386 -0
  433. package/build/datatable-scroll/datatable-scroll-min.js +2 -0
  434. package/build/datatable-scroll/datatable-scroll.js +1386 -0
  435. package/build/datatable-sort/assets/datatable-sort-core.css +17 -0
  436. package/build/datatable-sort/assets/skins/night/datatable-sort-skin.css +85 -0
  437. package/build/datatable-sort/assets/skins/night/datatable-sort.css +1 -0
  438. package/build/datatable-sort/assets/skins/night/sort-arrow-sprite-ie.png +0 -0
  439. package/build/datatable-sort/assets/skins/night/sort-arrow-sprite.png +0 -0
  440. package/build/datatable-sort/assets/skins/sam/datatable-sort-skin.css +43 -0
  441. package/build/datatable-sort/assets/skins/sam/datatable-sort.css +1 -0
  442. package/build/datatable-sort/assets/skins/sam/sort-arrow-sprite-ie.png +0 -0
  443. package/build/datatable-sort/assets/skins/sam/sort-arrow-sprite.png +0 -0
  444. package/build/datatable-sort/datatable-sort-debug.js +979 -0
  445. package/build/datatable-sort/datatable-sort-min.js +1 -0
  446. package/build/datatable-sort/datatable-sort.js +979 -0
  447. package/build/datatable-sort/lang/datatable-sort.js +1 -0
  448. package/build/datatable-sort/lang/datatable-sort_en.js +1 -0
  449. package/build/datatable-sort/lang/datatable-sort_es.js +1 -0
  450. package/build/datatable-sort/lang/datatable-sort_fr.js +1 -0
  451. package/build/datatable-sort/lang/datatable-sort_hu.js +1 -0
  452. package/build/datatable-table/datatable-table-debug.js +755 -0
  453. package/build/datatable-table/datatable-table-min.js +1 -0
  454. package/build/datatable-table/datatable-table.js +755 -0
  455. package/build/datatype-date-format/datatype-date-format-debug.js +387 -0
  456. package/build/datatype-date-format/datatype-date-format-min.js +1 -0
  457. package/build/datatype-date-format/datatype-date-format.js +385 -0
  458. package/build/datatype-date-format/lang/datatype-date-format.js +1 -0
  459. package/build/datatype-date-format/lang/datatype-date-format_ar-JO.js +1 -0
  460. package/build/datatype-date-format/lang/datatype-date-format_ar.js +1 -0
  461. package/build/datatype-date-format/lang/datatype-date-format_ca-ES.js +1 -0
  462. package/build/datatype-date-format/lang/datatype-date-format_ca.js +1 -0
  463. package/build/datatype-date-format/lang/datatype-date-format_da-DK.js +1 -0
  464. package/build/datatype-date-format/lang/datatype-date-format_da.js +1 -0
  465. package/build/datatype-date-format/lang/datatype-date-format_de-AT.js +1 -0
  466. package/build/datatype-date-format/lang/datatype-date-format_de-DE.js +1 -0
  467. package/build/datatype-date-format/lang/datatype-date-format_de.js +1 -0
  468. package/build/datatype-date-format/lang/datatype-date-format_el-GR.js +1 -0
  469. package/build/datatype-date-format/lang/datatype-date-format_el.js +1 -0
  470. package/build/datatype-date-format/lang/datatype-date-format_en-AU.js +1 -0
  471. package/build/datatype-date-format/lang/datatype-date-format_en-CA.js +1 -0
  472. package/build/datatype-date-format/lang/datatype-date-format_en-GB.js +1 -0
  473. package/build/datatype-date-format/lang/datatype-date-format_en-IE.js +1 -0
  474. package/build/datatype-date-format/lang/datatype-date-format_en-IN.js +1 -0
  475. package/build/datatype-date-format/lang/datatype-date-format_en-JO.js +1 -0
  476. package/build/datatype-date-format/lang/datatype-date-format_en-MY.js +1 -0
  477. package/build/datatype-date-format/lang/datatype-date-format_en-NZ.js +1 -0
  478. package/build/datatype-date-format/lang/datatype-date-format_en-PH.js +1 -0
  479. package/build/datatype-date-format/lang/datatype-date-format_en-SG.js +1 -0
  480. package/build/datatype-date-format/lang/datatype-date-format_en-US.js +1 -0
  481. package/build/datatype-date-format/lang/datatype-date-format_en.js +1 -0
  482. package/build/datatype-date-format/lang/datatype-date-format_es-AR.js +1 -0
  483. package/build/datatype-date-format/lang/datatype-date-format_es-BO.js +1 -0
  484. package/build/datatype-date-format/lang/datatype-date-format_es-CL.js +1 -0
  485. package/build/datatype-date-format/lang/datatype-date-format_es-CO.js +1 -0
  486. package/build/datatype-date-format/lang/datatype-date-format_es-EC.js +1 -0
  487. package/build/datatype-date-format/lang/datatype-date-format_es-ES.js +1 -0
  488. package/build/datatype-date-format/lang/datatype-date-format_es-MX.js +1 -0
  489. package/build/datatype-date-format/lang/datatype-date-format_es-PE.js +1 -0
  490. package/build/datatype-date-format/lang/datatype-date-format_es-PY.js +1 -0
  491. package/build/datatype-date-format/lang/datatype-date-format_es-US.js +1 -0
  492. package/build/datatype-date-format/lang/datatype-date-format_es-UY.js +1 -0
  493. package/build/datatype-date-format/lang/datatype-date-format_es-VE.js +1 -0
  494. package/build/datatype-date-format/lang/datatype-date-format_es.js +1 -0
  495. package/build/datatype-date-format/lang/datatype-date-format_fi-FI.js +1 -0
  496. package/build/datatype-date-format/lang/datatype-date-format_fi.js +1 -0
  497. package/build/datatype-date-format/lang/datatype-date-format_fr-BE.js +1 -0
  498. package/build/datatype-date-format/lang/datatype-date-format_fr-CA.js +1 -0
  499. package/build/datatype-date-format/lang/datatype-date-format_fr-FR.js +1 -0
  500. package/build/datatype-date-format/lang/datatype-date-format_fr.js +1 -0
  501. package/build/datatype-date-format/lang/datatype-date-format_hi-IN.js +1 -0
  502. package/build/datatype-date-format/lang/datatype-date-format_hi.js +1 -0
  503. package/build/datatype-date-format/lang/datatype-date-format_hu.js +1 -0
  504. package/build/datatype-date-format/lang/datatype-date-format_id-ID.js +1 -0
  505. package/build/datatype-date-format/lang/datatype-date-format_id.js +1 -0
  506. package/build/datatype-date-format/lang/datatype-date-format_it-IT.js +1 -0
  507. package/build/datatype-date-format/lang/datatype-date-format_it.js +1 -0
  508. package/build/datatype-date-format/lang/datatype-date-format_ja-JP.js +1 -0
  509. package/build/datatype-date-format/lang/datatype-date-format_ja.js +1 -0
  510. package/build/datatype-date-format/lang/datatype-date-format_ko-KR.js +1 -0
  511. package/build/datatype-date-format/lang/datatype-date-format_ko.js +1 -0
  512. package/build/datatype-date-format/lang/datatype-date-format_ms-MY.js +1 -0
  513. package/build/datatype-date-format/lang/datatype-date-format_ms.js +1 -0
  514. package/build/datatype-date-format/lang/datatype-date-format_nb-NO.js +1 -0
  515. package/build/datatype-date-format/lang/datatype-date-format_nb.js +1 -0
  516. package/build/datatype-date-format/lang/datatype-date-format_nl-BE.js +1 -0
  517. package/build/datatype-date-format/lang/datatype-date-format_nl-NL.js +1 -0
  518. package/build/datatype-date-format/lang/datatype-date-format_nl.js +1 -0
  519. package/build/datatype-date-format/lang/datatype-date-format_pl-PL.js +1 -0
  520. package/build/datatype-date-format/lang/datatype-date-format_pl.js +1 -0
  521. package/build/datatype-date-format/lang/datatype-date-format_pt-BR.js +1 -0
  522. package/build/datatype-date-format/lang/datatype-date-format_pt.js +1 -0
  523. package/build/datatype-date-format/lang/datatype-date-format_ro-RO.js +1 -0
  524. package/build/datatype-date-format/lang/datatype-date-format_ro.js +1 -0
  525. package/build/datatype-date-format/lang/datatype-date-format_ru-RU.js +1 -0
  526. package/build/datatype-date-format/lang/datatype-date-format_ru.js +1 -0
  527. package/build/datatype-date-format/lang/datatype-date-format_sv-SE.js +1 -0
  528. package/build/datatype-date-format/lang/datatype-date-format_sv.js +1 -0
  529. package/build/datatype-date-format/lang/datatype-date-format_th-TH.js +1 -0
  530. package/build/datatype-date-format/lang/datatype-date-format_th.js +1 -0
  531. package/build/datatype-date-format/lang/datatype-date-format_tr-TR.js +1 -0
  532. package/build/datatype-date-format/lang/datatype-date-format_tr.js +1 -0
  533. package/build/datatype-date-format/lang/datatype-date-format_vi-VN.js +1 -0
  534. package/build/datatype-date-format/lang/datatype-date-format_vi.js +1 -0
  535. package/build/datatype-date-format/lang/datatype-date-format_zh-Hans-CN.js +1 -0
  536. package/build/datatype-date-format/lang/datatype-date-format_zh-Hans.js +1 -0
  537. package/build/datatype-date-format/lang/datatype-date-format_zh-Hant-HK.js +1 -0
  538. package/build/datatype-date-format/lang/datatype-date-format_zh-Hant-TW.js +1 -0
  539. package/build/datatype-date-format/lang/datatype-date-format_zh-Hant.js +1 -0
  540. package/build/datatype-date-math/datatype-date-math-debug.js +208 -0
  541. package/build/datatype-date-math/datatype-date-math-min.js +1 -0
  542. package/build/datatype-date-math/datatype-date-math.js +207 -0
  543. package/build/datatype-date-parse/datatype-date-parse-debug.js +36 -0
  544. package/build/datatype-date-parse/datatype-date-parse-min.js +1 -0
  545. package/build/datatype-date-parse/datatype-date-parse.js +35 -0
  546. package/build/datatype-number-format/datatype-number-format-debug.js +109 -0
  547. package/build/datatype-number-format/datatype-number-format-min.js +1 -0
  548. package/build/datatype-number-format/datatype-number-format.js +108 -0
  549. package/build/datatype-number-parse/datatype-number-parse-debug.js +105 -0
  550. package/build/datatype-number-parse/datatype-number-parse-min.js +1 -0
  551. package/build/datatype-number-parse/datatype-number-parse.js +104 -0
  552. package/build/datatype-xml-format/datatype-xml-format-debug.js +53 -0
  553. package/build/datatype-xml-format/datatype-xml-format-min.js +1 -0
  554. package/build/datatype-xml-format/datatype-xml-format.js +52 -0
  555. package/build/datatype-xml-parse/datatype-xml-parse-debug.js +50 -0
  556. package/build/datatype-xml-parse/datatype-xml-parse-min.js +1 -0
  557. package/build/datatype-xml-parse/datatype-xml-parse.js +49 -0
  558. package/build/dd-constrain/dd-constrain-debug.js +562 -0
  559. package/build/dd-constrain/dd-constrain-min.js +1 -0
  560. package/build/dd-constrain/dd-constrain.js +562 -0
  561. package/build/dd-ddm/dd-ddm-debug.js +126 -0
  562. package/build/dd-ddm/dd-ddm-min.js +1 -0
  563. package/build/dd-ddm/dd-ddm.js +126 -0
  564. package/build/dd-ddm-base/dd-ddm-base-debug.js +374 -0
  565. package/build/dd-ddm-base/dd-ddm-base-min.js +1 -0
  566. package/build/dd-ddm-base/dd-ddm-base.js +374 -0
  567. package/build/dd-ddm-drop/dd-ddm-drop-debug.js +399 -0
  568. package/build/dd-ddm-drop/dd-ddm-drop-min.js +1 -0
  569. package/build/dd-ddm-drop/dd-ddm-drop.js +399 -0
  570. package/build/dd-delegate/dd-delegate-debug.js +337 -0
  571. package/build/dd-delegate/dd-delegate-min.js +1 -0
  572. package/build/dd-delegate/dd-delegate.js +337 -0
  573. package/build/dd-drag/dd-drag-debug.js +1270 -0
  574. package/build/dd-drag/dd-drag-min.js +2 -0
  575. package/build/dd-drag/dd-drag.js +1267 -0
  576. package/build/dd-drop/dd-drop-debug.js +553 -0
  577. package/build/dd-drop/dd-drop-min.js +1 -0
  578. package/build/dd-drop/dd-drop.js +552 -0
  579. package/build/dd-drop-plugin/dd-drop-plugin-debug.js +44 -0
  580. package/build/dd-drop-plugin/dd-drop-plugin-min.js +1 -0
  581. package/build/dd-drop-plugin/dd-drop-plugin.js +44 -0
  582. package/build/dd-gestures/dd-gestures-debug.js +56 -0
  583. package/build/dd-gestures/dd-gestures-min.js +1 -0
  584. package/build/dd-gestures/dd-gestures.js +54 -0
  585. package/build/dd-plugin/dd-plugin-debug.js +205 -0
  586. package/build/dd-plugin/dd-plugin-min.js +1 -0
  587. package/build/dd-plugin/dd-plugin.js +200 -0
  588. package/build/dd-proxy/dd-proxy-debug.js +251 -0
  589. package/build/dd-proxy/dd-proxy-min.js +1 -0
  590. package/build/dd-proxy/dd-proxy.js +251 -0
  591. package/build/dd-scroll/dd-scroll-debug.js +423 -0
  592. package/build/dd-scroll/dd-scroll-min.js +1 -0
  593. package/build/dd-scroll/dd-scroll.js +423 -0
  594. package/build/dial/assets/dial-core.css +42 -0
  595. package/build/dial/assets/skins/night/dial-skin.css +89 -0
  596. package/build/dial/assets/skins/night/dial.css +1 -0
  597. package/build/dial/assets/skins/sam/dial-skin.css +75 -0
  598. package/build/dial/assets/skins/sam/dial.css +1 -0
  599. package/build/dial/dial-debug.js +1327 -0
  600. package/build/dial/dial-min.js +3 -0
  601. package/build/dial/dial.js +1327 -0
  602. package/build/dial/lang/dial.js +1 -0
  603. package/build/dial/lang/dial_en.js +1 -0
  604. package/build/dial/lang/dial_es.js +1 -0
  605. package/build/dial/lang/dial_hu.js +1 -0
  606. package/build/dom-base/dom-base-debug.js +699 -0
  607. package/build/dom-base/dom-base-min.js +2 -0
  608. package/build/dom-base/dom-base.js +695 -0
  609. package/build/dom-core/dom-core-debug.js +390 -0
  610. package/build/dom-core/dom-core-min.js +1 -0
  611. package/build/dom-core/dom-core.js +390 -0
  612. package/build/dom-screen/dom-screen-debug.js +611 -0
  613. package/build/dom-screen/dom-screen-min.js +1 -0
  614. package/build/dom-screen/dom-screen.js +605 -0
  615. package/build/dom-style/dom-style-debug.js +249 -0
  616. package/build/dom-style/dom-style-min.js +1 -0
  617. package/build/dom-style/dom-style.js +249 -0
  618. package/build/dom-style-ie/dom-style-ie-debug.js +300 -0
  619. package/build/dom-style-ie/dom-style-ie-min.js +1 -0
  620. package/build/dom-style-ie/dom-style-ie.js +297 -0
  621. package/build/dump/dump-debug.js +105 -0
  622. package/build/dump/dump-min.js +1 -0
  623. package/build/dump/dump.js +105 -0
  624. package/build/editor-base/editor-base-debug.js +946 -0
  625. package/build/editor-base/editor-base-min.js +2 -0
  626. package/build/editor-base/editor-base.js +943 -0
  627. package/build/editor-bidi/editor-bidi-debug.js +340 -0
  628. package/build/editor-bidi/editor-bidi-min.js +1 -0
  629. package/build/editor-bidi/editor-bidi.js +340 -0
  630. package/build/editor-br/editor-br-debug.js +137 -0
  631. package/build/editor-br/editor-br-min.js +1 -0
  632. package/build/editor-br/editor-br.js +137 -0
  633. package/build/editor-inline/editor-inline-debug.js +32 -0
  634. package/build/editor-inline/editor-inline-min.js +1 -0
  635. package/build/editor-inline/editor-inline.js +32 -0
  636. package/build/editor-lists/editor-lists-debug.js +127 -0
  637. package/build/editor-lists/editor-lists-min.js +1 -0
  638. package/build/editor-lists/editor-lists.js +122 -0
  639. package/build/editor-para/editor-para-debug.js +356 -0
  640. package/build/editor-para/editor-para-min.js +1 -0
  641. package/build/editor-para/editor-para.js +355 -0
  642. package/build/editor-para-base/editor-para-base-debug.js +132 -0
  643. package/build/editor-para-base/editor-para-base-min.js +1 -0
  644. package/build/editor-para-base/editor-para-base.js +131 -0
  645. package/build/editor-para-ie/editor-para-ie-debug.js +134 -0
  646. package/build/editor-para-ie/editor-para-ie-min.js +1 -0
  647. package/build/editor-para-ie/editor-para-ie.js +134 -0
  648. package/build/editor-selection/editor-selection-debug.js +1042 -0
  649. package/build/editor-selection/editor-selection-min.js +2 -0
  650. package/build/editor-selection/editor-selection.js +1026 -0
  651. package/build/editor-tab/editor-tab-debug.js +69 -0
  652. package/build/editor-tab/editor-tab-min.js +1 -0
  653. package/build/editor-tab/editor-tab.js +68 -0
  654. package/build/escape/escape-debug.js +92 -0
  655. package/build/escape/escape-min.js +1 -0
  656. package/build/escape/escape.js +92 -0
  657. package/build/event-base/event-base-debug.js +1368 -0
  658. package/build/event-base/event-base-min.js +2 -0
  659. package/build/event-base/event-base.js +1363 -0
  660. package/build/event-base-ie/event-base-ie-debug.js +303 -0
  661. package/build/event-base-ie/event-base-ie-min.js +3 -0
  662. package/build/event-base-ie/event-base-ie.js +303 -0
  663. package/build/event-contextmenu/event-contextmenu-debug.js +192 -0
  664. package/build/event-contextmenu/event-contextmenu-min.js +1 -0
  665. package/build/event-contextmenu/event-contextmenu.js +192 -0
  666. package/build/event-custom-base/event-custom-base-debug.js +2464 -0
  667. package/build/event-custom-base/event-custom-base-min.js +3 -0
  668. package/build/event-custom-base/event-custom-base.js +2449 -0
  669. package/build/event-custom-complex/event-custom-complex-debug.js +673 -0
  670. package/build/event-custom-complex/event-custom-complex-min.js +1 -0
  671. package/build/event-custom-complex/event-custom-complex.js +670 -0
  672. package/build/event-delegate/event-delegate-debug.js +348 -0
  673. package/build/event-delegate/event-delegate-min.js +1 -0
  674. package/build/event-delegate/event-delegate.js +347 -0
  675. package/build/event-flick/event-flick-debug.js +272 -0
  676. package/build/event-flick/event-flick-min.js +1 -0
  677. package/build/event-flick/event-flick.js +271 -0
  678. package/build/event-focus/event-focus-debug.js +280 -0
  679. package/build/event-focus/event-focus-min.js +1 -0
  680. package/build/event-focus/event-focus.js +280 -0
  681. package/build/event-hover/event-hover-debug.js +70 -0
  682. package/build/event-hover/event-hover-min.js +1 -0
  683. package/build/event-hover/event-hover.js +70 -0
  684. package/build/event-key/event-key-debug.js +172 -0
  685. package/build/event-key/event-key-min.js +1 -0
  686. package/build/event-key/event-key.js +172 -0
  687. package/build/event-mouseenter/event-mouseenter-debug.js +129 -0
  688. package/build/event-mouseenter/event-mouseenter-min.js +1 -0
  689. package/build/event-mouseenter/event-mouseenter.js +129 -0
  690. package/build/event-mousewheel/event-mousewheel-debug.js +50 -0
  691. package/build/event-mousewheel/event-mousewheel-min.js +1 -0
  692. package/build/event-mousewheel/event-mousewheel.js +50 -0
  693. package/build/event-move/event-move-debug.js +639 -0
  694. package/build/event-move/event-move-min.js +1 -0
  695. package/build/event-move/event-move.js +626 -0
  696. package/build/event-outside/event-outside-debug.js +107 -0
  697. package/build/event-outside/event-outside-min.js +1 -0
  698. package/build/event-outside/event-outside.js +107 -0
  699. package/build/event-resize/event-resize-debug.js +53 -0
  700. package/build/event-resize/event-resize-min.js +1 -0
  701. package/build/event-resize/event-resize.js +53 -0
  702. package/build/event-simulate/event-simulate-debug.js +957 -0
  703. package/build/event-simulate/event-simulate-min.js +2 -0
  704. package/build/event-simulate/event-simulate.js +957 -0
  705. package/build/event-synthetic/event-synthetic-debug.js +845 -0
  706. package/build/event-synthetic/event-synthetic-min.js +1 -0
  707. package/build/event-synthetic/event-synthetic.js +845 -0
  708. package/build/event-tap/event-tap-debug.js +299 -0
  709. package/build/event-tap/event-tap-min.js +1 -0
  710. package/build/event-tap/event-tap.js +296 -0
  711. package/build/event-touch/event-touch-debug.js +187 -0
  712. package/build/event-touch/event-touch-min.js +1 -0
  713. package/build/event-touch/event-touch.js +181 -0
  714. package/build/event-valuechange/event-valuechange-debug.js +568 -0
  715. package/build/event-valuechange/event-valuechange-min.js +1 -0
  716. package/build/event-valuechange/event-valuechange.js +554 -0
  717. package/build/exec-command/exec-command-debug.js +721 -0
  718. package/build/exec-command/exec-command-min.js +2 -0
  719. package/build/exec-command/exec-command.js +717 -0
  720. package/build/features/features-debug.js +406 -0
  721. package/build/features/features-min.js +1 -0
  722. package/build/features/features.js +405 -0
  723. package/build/file/file-debug.js +31 -0
  724. package/build/file/file-min.js +1 -0
  725. package/build/file/file.js +31 -0
  726. package/build/file-flash/file-flash-debug.js +341 -0
  727. package/build/file-flash/file-flash-min.js +1 -0
  728. package/build/file-flash/file-flash.js +341 -0
  729. package/build/file-html5/file-html5-debug.js +503 -0
  730. package/build/file-html5/file-html5-min.js +1 -0
  731. package/build/file-html5/file-html5.js +503 -0
  732. package/build/frame/frame-debug.js +1076 -0
  733. package/build/frame/frame-min.js +2 -0
  734. package/build/frame/frame.js +1047 -0
  735. package/build/gesture-simulate/gesture-simulate-debug.js +1321 -0
  736. package/build/gesture-simulate/gesture-simulate-min.js +2 -0
  737. package/build/gesture-simulate/gesture-simulate.js +1321 -0
  738. package/build/get/get-debug.js +1292 -0
  739. package/build/get/get-min.js +2 -0
  740. package/build/get/get.js +1275 -0
  741. package/build/get-nodejs/get-nodejs-debug.js +225 -0
  742. package/build/get-nodejs/get-nodejs-min.js +107 -0
  743. package/build/get-nodejs/get-nodejs.js +204 -0
  744. package/build/graphics/graphics-debug.js +1270 -0
  745. package/build/graphics/graphics-min.js +1 -0
  746. package/build/graphics/graphics.js +1270 -0
  747. package/build/graphics-canvas/graphics-canvas-debug.js +3691 -0
  748. package/build/graphics-canvas/graphics-canvas-min.js +5 -0
  749. package/build/graphics-canvas/graphics-canvas.js +3691 -0
  750. package/build/graphics-canvas-default/graphics-canvas-default-debug.js +12 -0
  751. package/build/graphics-canvas-default/graphics-canvas-default-min.js +1 -0
  752. package/build/graphics-canvas-default/graphics-canvas-default.js +12 -0
  753. package/build/graphics-group/graphics-group-debug.js +310 -0
  754. package/build/graphics-group/graphics-group-min.js +1 -0
  755. package/build/graphics-group/graphics-group.js +310 -0
  756. package/build/graphics-svg/graphics-svg-debug.js +3557 -0
  757. package/build/graphics-svg/graphics-svg-min.js +5 -0
  758. package/build/graphics-svg/graphics-svg.js +3557 -0
  759. package/build/graphics-svg-default/graphics-svg-default-debug.js +12 -0
  760. package/build/graphics-svg-default/graphics-svg-default-min.js +1 -0
  761. package/build/graphics-svg-default/graphics-svg-default.js +12 -0
  762. package/build/graphics-vml/graphics-vml-debug.js +3753 -0
  763. package/build/graphics-vml/graphics-vml-min.js +5 -0
  764. package/build/graphics-vml/graphics-vml.js +3753 -0
  765. package/build/graphics-vml-default/graphics-vml-default-debug.js +12 -0
  766. package/build/graphics-vml-default/graphics-vml-default-min.js +1 -0
  767. package/build/graphics-vml-default/graphics-vml-default.js +12 -0
  768. package/build/handlebars-base/handlebars-base-debug.js +693 -0
  769. package/build/handlebars-base/handlebars-base-min.js +7 -0
  770. package/build/handlebars-base/handlebars-base.js +693 -0
  771. package/build/handlebars-compiler/handlebars-compiler-debug.js +2519 -0
  772. package/build/handlebars-compiler/handlebars-compiler-min.js +12 -0
  773. package/build/handlebars-compiler/handlebars-compiler.js +2519 -0
  774. package/build/highlight-accentfold/highlight-accentfold-debug.js +144 -0
  775. package/build/highlight-accentfold/highlight-accentfold-min.js +1 -0
  776. package/build/highlight-accentfold/highlight-accentfold.js +144 -0
  777. package/build/highlight-base/highlight-base-debug.js +312 -0
  778. package/build/highlight-base/highlight-base-min.js +1 -0
  779. package/build/highlight-base/highlight-base.js +312 -0
  780. package/build/history-base/history-base-debug.js +639 -0
  781. package/build/history-base/history-base-min.js +1 -0
  782. package/build/history-base/history-base.js +639 -0
  783. package/build/history-hash/history-hash-debug.js +475 -0
  784. package/build/history-hash/history-hash-min.js +1 -0
  785. package/build/history-hash/history-hash.js +475 -0
  786. package/build/history-hash-ie/history-hash-ie-debug.js +138 -0
  787. package/build/history-hash-ie/history-hash-ie-min.js +1 -0
  788. package/build/history-hash-ie/history-hash-ie.js +134 -0
  789. package/build/history-html5/history-html5-debug.js +189 -0
  790. package/build/history-html5/history-html5-min.js +1 -0
  791. package/build/history-html5/history-html5.js +189 -0
  792. package/build/imageloader/imageloader-debug.js +665 -0
  793. package/build/imageloader/imageloader-min.js +1 -0
  794. package/build/imageloader/imageloader.js +653 -0
  795. package/build/intl/intl-debug.js +150 -0
  796. package/build/intl/intl-min.js +1 -0
  797. package/build/intl/intl.js +150 -0
  798. package/build/intl-base/intl-base-debug.js +88 -0
  799. package/build/intl-base/intl-base-min.js +1 -0
  800. package/build/intl-base/intl-base.js +88 -0
  801. package/build/io-base/io-base-debug.js +1059 -0
  802. package/build/io-base/io-base-min.js +1 -0
  803. package/build/io-base/io-base.js +1053 -0
  804. package/build/io-form/io-form-debug.js +130 -0
  805. package/build/io-form/io-form-min.js +1 -0
  806. package/build/io-form/io-form.js +129 -0
  807. package/build/io-nodejs/io-nodejs-debug.js +215 -0
  808. package/build/io-nodejs/io-nodejs-min.js +108 -0
  809. package/build/io-nodejs/io-nodejs.js +199 -0
  810. package/build/io-queue/io-queue-debug.js +173 -0
  811. package/build/io-queue/io-queue-min.js +1 -0
  812. package/build/io-queue/io-queue.js +170 -0
  813. package/build/io-upload-iframe/io-upload-iframe-debug.js +313 -0
  814. package/build/io-upload-iframe/io-upload-iframe-min.js +1 -0
  815. package/build/io-upload-iframe/io-upload-iframe.js +305 -0
  816. package/build/io-xdr/io-xdr-debug.js +318 -0
  817. package/build/io-xdr/io-xdr-min.js +1 -0
  818. package/build/io-xdr/io-xdr.js +318 -0
  819. package/build/json-parse/json-parse-debug.js +10 -0
  820. package/build/json-parse/json-parse-min.js +1 -0
  821. package/build/json-parse/json-parse.js +10 -0
  822. package/build/json-parse-shim/json-parse-shim-debug.js +183 -0
  823. package/build/json-parse-shim/json-parse-shim-min.js +1 -0
  824. package/build/json-parse-shim/json-parse-shim.js +183 -0
  825. package/build/json-stringify/json-stringify-debug.js +99 -0
  826. package/build/json-stringify/json-stringify-min.js +1 -0
  827. package/build/json-stringify/json-stringify.js +99 -0
  828. package/build/json-stringify-shim/json-stringify-shim-debug.js +233 -0
  829. package/build/json-stringify-shim/json-stringify-shim-min.js +1 -0
  830. package/build/json-stringify-shim/json-stringify-shim.js +233 -0
  831. package/build/jsonp/jsonp-debug.js +274 -0
  832. package/build/jsonp/jsonp-min.js +1 -0
  833. package/build/jsonp/jsonp.js +268 -0
  834. package/build/jsonp-url/jsonp-url-debug.js +133 -0
  835. package/build/jsonp-url/jsonp-url-min.js +1 -0
  836. package/build/jsonp-url/jsonp-url.js +133 -0
  837. package/build/lazy-model-list/lazy-model-list-debug.js +518 -0
  838. package/build/lazy-model-list/lazy-model-list-min.js +1 -0
  839. package/build/lazy-model-list/lazy-model-list.js +518 -0
  840. package/build/loader/loader-debug.js +6053 -0
  841. package/build/loader/loader-min.js +9 -0
  842. package/build/loader/loader.js +6010 -0
  843. package/build/loader-base/loader-base-debug.js +2955 -0
  844. package/build/loader-base/loader-base-min.js +4 -0
  845. package/build/loader-base/loader-base.js +2915 -0
  846. package/build/loader-pathogen-combohandler/loader-pathogen-combohandler-debug.js +320 -0
  847. package/build/loader-pathogen-combohandler/loader-pathogen-combohandler-min.js +1 -0
  848. package/build/loader-pathogen-combohandler/loader-pathogen-combohandler.js +316 -0
  849. package/build/loader-pathogen-encoder/loader-pathogen-encoder-debug.js +6373 -0
  850. package/build/loader-pathogen-encoder/loader-pathogen-encoder-min.js +10 -0
  851. package/build/loader-pathogen-encoder/loader-pathogen-encoder.js +6326 -0
  852. package/build/loader-rollup/loader-rollup-debug.js +102 -0
  853. package/build/loader-rollup/loader-rollup-min.js +1 -0
  854. package/build/loader-rollup/loader-rollup.js +99 -0
  855. package/build/loader-yui3/loader-yui3-debug.js +2995 -0
  856. package/build/loader-yui3/loader-yui3-min.js +6 -0
  857. package/build/loader-yui3/loader-yui3.js +2995 -0
  858. package/build/matrix/matrix-debug.js +932 -0
  859. package/build/matrix/matrix-min.js +2 -0
  860. package/build/matrix/matrix.js +932 -0
  861. package/build/model/model-debug.js +1008 -0
  862. package/build/model/model-min.js +1 -0
  863. package/build/model/model.js +1007 -0
  864. package/build/model-list/model-list-debug.js +1269 -0
  865. package/build/model-list/model-list-min.js +1 -0
  866. package/build/model-list/model-list.js +1269 -0
  867. package/build/model-sync-local/model-sync-local-debug.js +360 -0
  868. package/build/model-sync-local/model-sync-local-min.js +1 -0
  869. package/build/model-sync-local/model-sync-local.js +359 -0
  870. package/build/model-sync-rest/model-sync-rest-debug.js +733 -0
  871. package/build/model-sync-rest/model-sync-rest-min.js +1 -0
  872. package/build/model-sync-rest/model-sync-rest.js +733 -0
  873. package/build/node-base/node-base-debug.js +1003 -0
  874. package/build/node-base/node-base-min.js +1 -0
  875. package/build/node-base/node-base.js +1001 -0
  876. package/build/node-core/node-core-debug.js +1626 -0
  877. package/build/node-core/node-core-min.js +2 -0
  878. package/build/node-core/node-core.js +1622 -0
  879. package/build/node-event-delegate/node-event-delegate-debug.js +54 -0
  880. package/build/node-event-delegate/node-event-delegate-min.js +1 -0
  881. package/build/node-event-delegate/node-event-delegate.js +54 -0
  882. package/build/node-event-html5/node-event-html5-debug.js +52 -0
  883. package/build/node-event-html5/node-event-html5-min.js +1 -0
  884. package/build/node-event-html5/node-event-html5.js +52 -0
  885. package/build/node-event-simulate/node-event-simulate-debug.js +187 -0
  886. package/build/node-event-simulate/node-event-simulate-min.js +1 -0
  887. package/build/node-event-simulate/node-event-simulate.js +187 -0
  888. package/build/node-flick/assets/node-flick-core.css +8 -0
  889. package/build/node-flick/assets/skins/sam/node-flick-skin.css +1 -0
  890. package/build/node-flick/assets/skins/sam/node-flick.css +1 -0
  891. package/build/node-flick/node-flick-debug.js +524 -0
  892. package/build/node-flick/node-flick-min.js +1 -0
  893. package/build/node-flick/node-flick.js +523 -0
  894. package/build/node-focusmanager/node-focusmanager-debug.js +1073 -0
  895. package/build/node-focusmanager/node-focusmanager-min.js +1 -0
  896. package/build/node-focusmanager/node-focusmanager.js +1069 -0
  897. package/build/node-load/node-load-debug.js +65 -0
  898. package/build/node-load/node-load-min.js +1 -0
  899. package/build/node-load/node-load.js +65 -0
  900. package/build/node-menunav/assets/node-menunav-core.css +169 -0
  901. package/build/node-menunav/assets/skins/night/horizontal-menu-submenu-indicator.png +0 -0
  902. package/build/node-menunav/assets/skins/night/node-menunav-skin.css +312 -0
  903. package/build/node-menunav/assets/skins/night/node-menunav.css +1 -0
  904. package/build/node-menunav/assets/skins/night/vertical-menu-submenu-indicator.png +0 -0
  905. package/build/node-menunav/assets/skins/sam/horizontal-menu-submenu-indicator.png +0 -0
  906. package/build/node-menunav/assets/skins/sam/horizontal-menu-submenu-toggle.png +0 -0
  907. package/build/node-menunav/assets/skins/sam/node-menunav-skin.css +266 -0
  908. package/build/node-menunav/assets/skins/sam/node-menunav.css +1 -0
  909. package/build/node-menunav/assets/skins/sam/vertical-menu-submenu-indicator.png +0 -0
  910. package/build/node-menunav/node-menunav-debug.js +2189 -0
  911. package/build/node-menunav/node-menunav-min.js +2 -0
  912. package/build/node-menunav/node-menunav.js +2188 -0
  913. package/build/node-pluginhost/node-pluginhost-debug.js +91 -0
  914. package/build/node-pluginhost/node-pluginhost-min.js +1 -0
  915. package/build/node-pluginhost/node-pluginhost.js +91 -0
  916. package/build/node-screen/node-screen-debug.js +240 -0
  917. package/build/node-screen/node-screen-min.js +1 -0
  918. package/build/node-screen/node-screen.js +238 -0
  919. package/build/node-scroll-info/node-scroll-info-debug.js +656 -0
  920. package/build/node-scroll-info/node-scroll-info-min.js +1 -0
  921. package/build/node-scroll-info/node-scroll-info.js +656 -0
  922. package/build/node-style/node-style-debug.js +271 -0
  923. package/build/node-style/node-style-min.js +1 -0
  924. package/build/node-style/node-style.js +271 -0
  925. package/build/oop/oop-debug.js +432 -0
  926. package/build/oop/oop-min.js +1 -0
  927. package/build/oop/oop.js +432 -0
  928. package/build/overlay/assets/overlay-core.css +11 -0
  929. package/build/overlay/assets/skins/night/overlay-skin.css +175 -0
  930. package/build/overlay/assets/skins/night/overlay.css +1 -0
  931. package/build/overlay/assets/skins/sam/overlay-skin.css +0 -0
  932. package/build/overlay/assets/skins/sam/overlay.css +1 -0
  933. package/build/overlay/overlay-debug.js +39 -0
  934. package/build/overlay/overlay-min.js +1 -0
  935. package/build/overlay/overlay.js +39 -0
  936. package/build/paginator/paginator-debug.js +75 -0
  937. package/build/paginator/paginator-min.js +1 -0
  938. package/build/paginator/paginator.js +75 -0
  939. package/build/paginator-core/paginator-core-debug.js +146 -0
  940. package/build/paginator-core/paginator-core-min.js +1 -0
  941. package/build/paginator-core/paginator-core.js +146 -0
  942. package/build/paginator-url/paginator-url-debug.js +67 -0
  943. package/build/paginator-url/paginator-url-min.js +1 -0
  944. package/build/paginator-url/paginator-url.js +67 -0
  945. package/build/panel/assets/panel-core.css +22 -0
  946. package/build/panel/assets/skins/night/panel-skin.css +123 -0
  947. package/build/panel/assets/skins/night/panel.css +1 -0
  948. package/build/panel/assets/skins/night/sprite_icons.png +0 -0
  949. package/build/panel/assets/skins/sam/panel-skin.css +95 -0
  950. package/build/panel/assets/skins/sam/panel.css +1 -0
  951. package/build/panel/assets/skins/sam/sprite_icons.png +0 -0
  952. package/build/panel/panel-debug.js +112 -0
  953. package/build/panel/panel-min.js +1 -0
  954. package/build/panel/panel.js +112 -0
  955. package/build/parallel/parallel-debug.js +109 -0
  956. package/build/parallel/parallel-min.js +1 -0
  957. package/build/parallel/parallel.js +107 -0
  958. package/build/pjax/pjax-debug.js +170 -0
  959. package/build/pjax/pjax-min.js +1 -0
  960. package/build/pjax/pjax.js +170 -0
  961. package/build/pjax-base/pjax-base-debug.js +443 -0
  962. package/build/pjax-base/pjax-base-min.js +1 -0
  963. package/build/pjax-base/pjax-base.js +442 -0
  964. package/build/pjax-content/pjax-content-debug.js +281 -0
  965. package/build/pjax-content/pjax-content-min.js +1 -0
  966. package/build/pjax-content/pjax-content.js +281 -0
  967. package/build/pjax-plugin/pjax-plugin-debug.js +29 -0
  968. package/build/pjax-plugin/pjax-plugin-min.js +1 -0
  969. package/build/pjax-plugin/pjax-plugin.js +29 -0
  970. package/build/plugin/plugin-debug.js +265 -0
  971. package/build/plugin/plugin-min.js +1 -0
  972. package/build/plugin/plugin.js +263 -0
  973. package/build/pluginhost-base/pluginhost-base-debug.js +187 -0
  974. package/build/pluginhost-base/pluginhost-base-min.js +1 -0
  975. package/build/pluginhost-base/pluginhost-base.js +185 -0
  976. package/build/pluginhost-config/pluginhost-config-debug.js +130 -0
  977. package/build/pluginhost-config/pluginhost-config-min.js +1 -0
  978. package/build/pluginhost-config/pluginhost-config.js +130 -0
  979. package/build/promise/promise-debug.js +624 -0
  980. package/build/promise/promise-min.js +1 -0
  981. package/build/promise/promise.js +620 -0
  982. package/build/querystring-parse/querystring-parse-debug.js +162 -0
  983. package/build/querystring-parse/querystring-parse-min.js +1 -0
  984. package/build/querystring-parse/querystring-parse.js +162 -0
  985. package/build/querystring-parse-simple/querystring-parse-simple-debug.js +49 -0
  986. package/build/querystring-parse-simple/querystring-parse-simple-min.js +1 -0
  987. package/build/querystring-parse-simple/querystring-parse-simple.js +49 -0
  988. package/build/querystring-stringify/querystring-stringify-debug.js +111 -0
  989. package/build/querystring-stringify/querystring-stringify-min.js +1 -0
  990. package/build/querystring-stringify/querystring-stringify.js +106 -0
  991. package/build/querystring-stringify-simple/querystring-stringify-simple-debug.js +44 -0
  992. package/build/querystring-stringify-simple/querystring-stringify-simple-min.js +1 -0
  993. package/build/querystring-stringify-simple/querystring-stringify-simple.js +44 -0
  994. package/build/queue-promote/queue-promote-debug.js +53 -0
  995. package/build/queue-promote/queue-promote-min.js +1 -0
  996. package/build/queue-promote/queue-promote.js +53 -0
  997. package/build/range-slider/range-slider-debug.js +28 -0
  998. package/build/range-slider/range-slider-min.js +1 -0
  999. package/build/range-slider/range-slider.js +28 -0
  1000. package/build/recordset-base/recordset-base-debug.js +651 -0
  1001. package/build/recordset-base/recordset-base-min.js +1 -0
  1002. package/build/recordset-base/recordset-base.js +650 -0
  1003. package/build/recordset-filter/recordset-filter-debug.js +105 -0
  1004. package/build/recordset-filter/recordset-filter-min.js +1 -0
  1005. package/build/recordset-filter/recordset-filter.js +105 -0
  1006. package/build/recordset-indexer/recordset-indexer-debug.js +227 -0
  1007. package/build/recordset-indexer/recordset-indexer-min.js +1 -0
  1008. package/build/recordset-indexer/recordset-indexer.js +227 -0
  1009. package/build/recordset-sort/recordset-sort-debug.js +206 -0
  1010. package/build/recordset-sort/recordset-sort-min.js +1 -0
  1011. package/build/recordset-sort/recordset-sort.js +205 -0
  1012. package/build/resize-base/assets/resize-base-core.css +241 -0
  1013. package/build/resize-base/assets/skins/night/arrows.png +0 -0
  1014. package/build/resize-base/assets/skins/night/resize-base-skin.css +46 -0
  1015. package/build/resize-base/assets/skins/night/resize-base.css +1 -0
  1016. package/build/resize-base/assets/skins/sam/arrows.png +0 -0
  1017. package/build/resize-base/assets/skins/sam/resize-base-skin.css +46 -0
  1018. package/build/resize-base/assets/skins/sam/resize-base.css +1 -0
  1019. package/build/resize-base/resize-base-debug.js +1644 -0
  1020. package/build/resize-base/resize-base-min.js +2 -0
  1021. package/build/resize-base/resize-base.js +1643 -0
  1022. package/build/resize-constrain/resize-constrain-debug.js +455 -0
  1023. package/build/resize-constrain/resize-constrain-min.js +1 -0
  1024. package/build/resize-constrain/resize-constrain.js +455 -0
  1025. package/build/resize-plugin/resize-plugin-debug.js +208 -0
  1026. package/build/resize-plugin/resize-plugin-min.js +1 -0
  1027. package/build/resize-plugin/resize-plugin.js +208 -0
  1028. package/build/resize-proxy/resize-proxy-debug.js +166 -0
  1029. package/build/resize-proxy/resize-proxy-min.js +1 -0
  1030. package/build/resize-proxy/resize-proxy.js +166 -0
  1031. package/build/router/router-debug.js +1818 -0
  1032. package/build/router/router-min.js +2 -0
  1033. package/build/router/router.js +1810 -0
  1034. package/build/scrollview/scrollview-debug.js +21 -0
  1035. package/build/scrollview/scrollview-min.js +1 -0
  1036. package/build/scrollview/scrollview.js +21 -0
  1037. package/build/scrollview-base/assets/scrollview-base-core.css +14 -0
  1038. package/build/scrollview-base/assets/skins/night/scrollview-base-skin.css +0 -0
  1039. package/build/scrollview-base/assets/skins/night/scrollview-base.css +1 -0
  1040. package/build/scrollview-base/assets/skins/sam/scrollview-base-skin.css +3 -0
  1041. package/build/scrollview-base/assets/skins/sam/scrollview-base.css +1 -0
  1042. package/build/scrollview-base/scrollview-base-debug.js +1457 -0
  1043. package/build/scrollview-base/scrollview-base-min.js +2 -0
  1044. package/build/scrollview-base/scrollview-base.js +1457 -0
  1045. package/build/scrollview-base-ie/scrollview-base-ie-debug.js +55 -0
  1046. package/build/scrollview-base-ie/scrollview-base-ie-min.js +1 -0
  1047. package/build/scrollview-base-ie/scrollview-base-ie.js +55 -0
  1048. package/build/scrollview-list/assets/scrollview-list-core.css +0 -0
  1049. package/build/scrollview-list/assets/skins/night/scrollview-list-skin.css +57 -0
  1050. package/build/scrollview-list/assets/skins/night/scrollview-list.css +1 -0
  1051. package/build/scrollview-list/assets/skins/sam/scrollview-list-skin.css +37 -0
  1052. package/build/scrollview-list/assets/skins/sam/scrollview-list.css +1 -0
  1053. package/build/scrollview-list/scrollview-list-debug.js +130 -0
  1054. package/build/scrollview-list/scrollview-list-min.js +1 -0
  1055. package/build/scrollview-list/scrollview-list.js +130 -0
  1056. package/build/scrollview-paginator/scrollview-paginator-debug.js +746 -0
  1057. package/build/scrollview-paginator/scrollview-paginator-min.js +1 -0
  1058. package/build/scrollview-paginator/scrollview-paginator.js +746 -0
  1059. package/build/scrollview-scrollbars/assets/scrollview-scrollbars-core.css +95 -0
  1060. package/build/scrollview-scrollbars/assets/skins/night/scrollview-scrollbars-skin.css +96 -0
  1061. package/build/scrollview-scrollbars/assets/skins/night/scrollview-scrollbars.css +1 -0
  1062. package/build/scrollview-scrollbars/assets/skins/sam/scrollview-scrollbars-skin.css +90 -0
  1063. package/build/scrollview-scrollbars/assets/skins/sam/scrollview-scrollbars.css +1 -0
  1064. package/build/scrollview-scrollbars/scrollview-scrollbars-debug.js +563 -0
  1065. package/build/scrollview-scrollbars/scrollview-scrollbars-min.js +1 -0
  1066. package/build/scrollview-scrollbars/scrollview-scrollbars.js +563 -0
  1067. package/build/selector/selector-debug.js +5 -0
  1068. package/build/selector/selector-min.js +1 -0
  1069. package/build/selector/selector.js +5 -0
  1070. package/build/selector-css2/selector-css2-debug.js +460 -0
  1071. package/build/selector-css2/selector-css2-min.js +1 -0
  1072. package/build/selector-css2/selector-css2.js +459 -0
  1073. package/build/selector-css3/selector-css3-debug.js +152 -0
  1074. package/build/selector-css3/selector-css3-min.js +1 -0
  1075. package/build/selector-css3/selector-css3.js +152 -0
  1076. package/build/selector-native/selector-native-debug.js +405 -0
  1077. package/build/selector-native/selector-native-min.js +1 -0
  1078. package/build/selector-native/selector-native.js +400 -0
  1079. package/build/series-area/series-area-debug.js +103 -0
  1080. package/build/series-area/series-area-min.js +1 -0
  1081. package/build/series-area/series-area.js +103 -0
  1082. package/build/series-area-stacked/series-area-stacked-debug.js +60 -0
  1083. package/build/series-area-stacked/series-area-stacked-min.js +1 -0
  1084. package/build/series-area-stacked/series-area-stacked.js +60 -0
  1085. package/build/series-areaspline/series-areaspline-debug.js +63 -0
  1086. package/build/series-areaspline/series-areaspline-min.js +1 -0
  1087. package/build/series-areaspline/series-areaspline.js +63 -0
  1088. package/build/series-areaspline-stacked/series-areaspline-stacked-debug.js +50 -0
  1089. package/build/series-areaspline-stacked/series-areaspline-stacked-min.js +1 -0
  1090. package/build/series-areaspline-stacked/series-areaspline-stacked.js +50 -0
  1091. package/build/series-bar/series-bar-debug.js +169 -0
  1092. package/build/series-bar/series-bar-min.js +1 -0
  1093. package/build/series-bar/series-bar.js +169 -0
  1094. package/build/series-bar-stacked/series-bar-stacked-debug.js +364 -0
  1095. package/build/series-bar-stacked/series-bar-stacked-min.js +1 -0
  1096. package/build/series-bar-stacked/series-bar-stacked.js +364 -0
  1097. package/build/series-base/series-base-debug.js +408 -0
  1098. package/build/series-base/series-base-min.js +1 -0
  1099. package/build/series-base/series-base.js +408 -0
  1100. package/build/series-candlestick/series-candlestick-debug.js +314 -0
  1101. package/build/series-candlestick/series-candlestick-min.js +1 -0
  1102. package/build/series-candlestick/series-candlestick.js +314 -0
  1103. package/build/series-cartesian/series-cartesian-debug.js +947 -0
  1104. package/build/series-cartesian/series-cartesian-min.js +2 -0
  1105. package/build/series-cartesian/series-cartesian.js +947 -0
  1106. package/build/series-column/series-column-debug.js +160 -0
  1107. package/build/series-column/series-column-min.js +1 -0
  1108. package/build/series-column/series-column.js +160 -0
  1109. package/build/series-column-stacked/series-column-stacked-debug.js +351 -0
  1110. package/build/series-column-stacked/series-column-stacked-min.js +1 -0
  1111. package/build/series-column-stacked/series-column-stacked.js +351 -0
  1112. package/build/series-combo/series-combo-debug.js +283 -0
  1113. package/build/series-combo/series-combo-min.js +1 -0
  1114. package/build/series-combo/series-combo.js +283 -0
  1115. package/build/series-combo-stacked/series-combo-stacked-debug.js +86 -0
  1116. package/build/series-combo-stacked/series-combo-stacked-min.js +1 -0
  1117. package/build/series-combo-stacked/series-combo-stacked.js +86 -0
  1118. package/build/series-combospline/series-combospline-debug.js +60 -0
  1119. package/build/series-combospline/series-combospline-min.js +1 -0
  1120. package/build/series-combospline/series-combospline.js +60 -0
  1121. package/build/series-combospline-stacked/series-combospline-stacked-debug.js +72 -0
  1122. package/build/series-combospline-stacked/series-combospline-stacked-min.js +1 -0
  1123. package/build/series-combospline-stacked/series-combospline-stacked.js +72 -0
  1124. package/build/series-curve-util/series-curve-util-debug.js +135 -0
  1125. package/build/series-curve-util/series-curve-util-min.js +1 -0
  1126. package/build/series-curve-util/series-curve-util.js +135 -0
  1127. package/build/series-fill-util/series-fill-util-debug.js +517 -0
  1128. package/build/series-fill-util/series-fill-util-min.js +1 -0
  1129. package/build/series-fill-util/series-fill-util.js +517 -0
  1130. package/build/series-histogram-base/series-histogram-base-debug.js +245 -0
  1131. package/build/series-histogram-base/series-histogram-base-min.js +1 -0
  1132. package/build/series-histogram-base/series-histogram-base.js +245 -0
  1133. package/build/series-line/series-line-debug.js +113 -0
  1134. package/build/series-line/series-line-min.js +1 -0
  1135. package/build/series-line/series-line.js +113 -0
  1136. package/build/series-line-stacked/series-line-stacked-debug.js +49 -0
  1137. package/build/series-line-stacked/series-line-stacked-min.js +1 -0
  1138. package/build/series-line-stacked/series-line-stacked.js +49 -0
  1139. package/build/series-line-util/series-line-util-debug.js +287 -0
  1140. package/build/series-line-util/series-line-util-min.js +1 -0
  1141. package/build/series-line-util/series-line-util.js +287 -0
  1142. package/build/series-marker/series-marker-debug.js +89 -0
  1143. package/build/series-marker/series-marker-min.js +1 -0
  1144. package/build/series-marker/series-marker.js +89 -0
  1145. package/build/series-marker-stacked/series-marker-stacked-debug.js +50 -0
  1146. package/build/series-marker-stacked/series-marker-stacked-min.js +1 -0
  1147. package/build/series-marker-stacked/series-marker-stacked.js +50 -0
  1148. package/build/series-ohlc/series-ohlc-debug.js +237 -0
  1149. package/build/series-ohlc/series-ohlc-min.js +1 -0
  1150. package/build/series-ohlc/series-ohlc.js +237 -0
  1151. package/build/series-pie/series-pie-debug.js +724 -0
  1152. package/build/series-pie/series-pie-min.js +2 -0
  1153. package/build/series-pie/series-pie.js +724 -0
  1154. package/build/series-plot-util/series-plot-util-debug.js +552 -0
  1155. package/build/series-plot-util/series-plot-util-min.js +1 -0
  1156. package/build/series-plot-util/series-plot-util.js +552 -0
  1157. package/build/series-range/series-range-debug.js +132 -0
  1158. package/build/series-range/series-range-min.js +1 -0
  1159. package/build/series-range/series-range.js +132 -0
  1160. package/build/series-spline/series-spline-debug.js +82 -0
  1161. package/build/series-spline/series-spline-min.js +1 -0
  1162. package/build/series-spline/series-spline.js +82 -0
  1163. package/build/series-spline-stacked/series-spline-stacked-debug.js +50 -0
  1164. package/build/series-spline-stacked/series-spline-stacked-min.js +1 -0
  1165. package/build/series-spline-stacked/series-spline-stacked.js +50 -0
  1166. package/build/series-stacked/series-stacked-debug.js +356 -0
  1167. package/build/series-stacked/series-stacked-min.js +1 -0
  1168. package/build/series-stacked/series-stacked.js +356 -0
  1169. package/build/shim-plugin/shim-plugin-debug.js +106 -0
  1170. package/build/shim-plugin/shim-plugin-min.js +1 -0
  1171. package/build/shim-plugin/shim-plugin.js +106 -0
  1172. package/build/slider-base/assets/skins/audio/rail-x.png +0 -0
  1173. package/build/slider-base/assets/skins/audio/rail-y.png +0 -0
  1174. package/build/slider-base/assets/skins/audio/slider-base-skin.css +91 -0
  1175. package/build/slider-base/assets/skins/audio/slider-base.css +1 -0
  1176. package/build/slider-base/assets/skins/audio/slider-skin.css +91 -0
  1177. package/build/slider-base/assets/skins/audio/thumb-x.png +0 -0
  1178. package/build/slider-base/assets/skins/audio/thumb-y.png +0 -0
  1179. package/build/slider-base/assets/skins/audio-light/rail-x.png +0 -0
  1180. package/build/slider-base/assets/skins/audio-light/rail-y.png +0 -0
  1181. package/build/slider-base/assets/skins/audio-light/slider-base-skin.css +91 -0
  1182. package/build/slider-base/assets/skins/audio-light/slider-base.css +1 -0
  1183. package/build/slider-base/assets/skins/audio-light/slider-skin.css +91 -0
  1184. package/build/slider-base/assets/skins/audio-light/thumb-x.png +0 -0
  1185. package/build/slider-base/assets/skins/audio-light/thumb-y.png +0 -0
  1186. package/build/slider-base/assets/skins/capsule/rail-x-dots.png +0 -0
  1187. package/build/slider-base/assets/skins/capsule/rail-x-lines.png +0 -0
  1188. package/build/slider-base/assets/skins/capsule/rail-x.png +0 -0
  1189. package/build/slider-base/assets/skins/capsule/rail-y-dots.png +0 -0
  1190. package/build/slider-base/assets/skins/capsule/rail-y-lines.png +0 -0
  1191. package/build/slider-base/assets/skins/capsule/rail-y.png +0 -0
  1192. package/build/slider-base/assets/skins/capsule/slider-base-skin.css +93 -0
  1193. package/build/slider-base/assets/skins/capsule/slider-base.css +1 -0
  1194. package/build/slider-base/assets/skins/capsule/slider-skin.css +93 -0
  1195. package/build/slider-base/assets/skins/capsule/thumb-x-line.png +0 -0
  1196. package/build/slider-base/assets/skins/capsule/thumb-x.png +0 -0
  1197. package/build/slider-base/assets/skins/capsule/thumb-y-line.png +0 -0
  1198. package/build/slider-base/assets/skins/capsule/thumb-y-lines.png +0 -0
  1199. package/build/slider-base/assets/skins/capsule/thumb-y.png +0 -0
  1200. package/build/slider-base/assets/skins/capsule-dark/rail-x-dots.png +0 -0
  1201. package/build/slider-base/assets/skins/capsule-dark/rail-x-lines.png +0 -0
  1202. package/build/slider-base/assets/skins/capsule-dark/rail-x.png +0 -0
  1203. package/build/slider-base/assets/skins/capsule-dark/rail-y-dots.png +0 -0
  1204. package/build/slider-base/assets/skins/capsule-dark/rail-y-lines.png +0 -0
  1205. package/build/slider-base/assets/skins/capsule-dark/rail-y.png +0 -0
  1206. package/build/slider-base/assets/skins/capsule-dark/slider-base-skin.css +91 -0
  1207. package/build/slider-base/assets/skins/capsule-dark/slider-base.css +1 -0
  1208. package/build/slider-base/assets/skins/capsule-dark/slider-skin.css +91 -0
  1209. package/build/slider-base/assets/skins/capsule-dark/thumb-x-line.png +0 -0
  1210. package/build/slider-base/assets/skins/capsule-dark/thumb-x.png +0 -0
  1211. package/build/slider-base/assets/skins/capsule-dark/thumb-y-line.png +0 -0
  1212. package/build/slider-base/assets/skins/capsule-dark/thumb-y.png +0 -0
  1213. package/build/slider-base/assets/skins/night/rail-x-lines.png +0 -0
  1214. package/build/slider-base/assets/skins/night/rail-x.png +0 -0
  1215. package/build/slider-base/assets/skins/night/rail-y-lines.png +0 -0
  1216. package/build/slider-base/assets/skins/night/rail-y.png +0 -0
  1217. package/build/slider-base/assets/skins/night/slider-base-skin.css +87 -0
  1218. package/build/slider-base/assets/skins/night/slider-base.css +1 -0
  1219. package/build/slider-base/assets/skins/night/slider-skin.css +87 -0
  1220. package/build/slider-base/assets/skins/night/thumb-x.png +0 -0
  1221. package/build/slider-base/assets/skins/night/thumb-y.png +0 -0
  1222. package/build/slider-base/assets/skins/round/rail-x.png +0 -0
  1223. package/build/slider-base/assets/skins/round/rail-y.png +0 -0
  1224. package/build/slider-base/assets/skins/round/slider-base-skin.css +89 -0
  1225. package/build/slider-base/assets/skins/round/slider-base.css +1 -0
  1226. package/build/slider-base/assets/skins/round/slider-skin.css +89 -0
  1227. package/build/slider-base/assets/skins/round/thumb-x-grip.png +0 -0
  1228. package/build/slider-base/assets/skins/round/thumb-x.png +0 -0
  1229. package/build/slider-base/assets/skins/round/thumb-y-grip.png +0 -0
  1230. package/build/slider-base/assets/skins/round/thumb-y.png +0 -0
  1231. package/build/slider-base/assets/skins/round-dark/rail-x.png +0 -0
  1232. package/build/slider-base/assets/skins/round-dark/rail-y.png +0 -0
  1233. package/build/slider-base/assets/skins/round-dark/slider-base-skin.css +89 -0
  1234. package/build/slider-base/assets/skins/round-dark/slider-base.css +1 -0
  1235. package/build/slider-base/assets/skins/round-dark/slider-skin.css +89 -0
  1236. package/build/slider-base/assets/skins/round-dark/thumb-x-grip.png +0 -0
  1237. package/build/slider-base/assets/skins/round-dark/thumb-x.png +0 -0
  1238. package/build/slider-base/assets/skins/round-dark/thumb-y-grip.png +0 -0
  1239. package/build/slider-base/assets/skins/round-dark/thumb-y.png +0 -0
  1240. package/build/slider-base/assets/skins/sam/rail-x-lines.png +0 -0
  1241. package/build/slider-base/assets/skins/sam/rail-x.png +0 -0
  1242. package/build/slider-base/assets/skins/sam/rail-y-lines.png +0 -0
  1243. package/build/slider-base/assets/skins/sam/rail-y.png +0 -0
  1244. package/build/slider-base/assets/skins/sam/slider-base-skin.css +87 -0
  1245. package/build/slider-base/assets/skins/sam/slider-base.css +1 -0
  1246. package/build/slider-base/assets/skins/sam/slider-skin.css +87 -0
  1247. package/build/slider-base/assets/skins/sam/thumb-x.png +0 -0
  1248. package/build/slider-base/assets/skins/sam/thumb-y.png +0 -0
  1249. package/build/slider-base/assets/skins/sam-dark/rail-x-lines.png +0 -0
  1250. package/build/slider-base/assets/skins/sam-dark/rail-x.png +0 -0
  1251. package/build/slider-base/assets/skins/sam-dark/rail-y-lines.png +0 -0
  1252. package/build/slider-base/assets/skins/sam-dark/rail-y.png +0 -0
  1253. package/build/slider-base/assets/skins/sam-dark/slider-base-skin.css +87 -0
  1254. package/build/slider-base/assets/skins/sam-dark/slider-base.css +1 -0
  1255. package/build/slider-base/assets/skins/sam-dark/slider-skin.css +87 -0
  1256. package/build/slider-base/assets/skins/sam-dark/thumb-x.png +0 -0
  1257. package/build/slider-base/assets/skins/sam-dark/thumb-y.png +0 -0
  1258. package/build/slider-base/assets/slider-base-core.css +31 -0
  1259. package/build/slider-base/assets/slider-core.css +31 -0
  1260. package/build/slider-base/assets/thumb-x-oblong-dark.png +0 -0
  1261. package/build/slider-base/assets/thumb-x-oblong.png +0 -0
  1262. package/build/slider-base/assets/thumb-x-oblong2-dark.png +0 -0
  1263. package/build/slider-base/assets/thumb-x-oblong2.png +0 -0
  1264. package/build/slider-base/assets/thumb-y-oblong-dark.png +0 -0
  1265. package/build/slider-base/assets/thumb-y-oblong.png +0 -0
  1266. package/build/slider-base/assets/thumb-y-oblong2-dark.png +0 -0
  1267. package/build/slider-base/assets/thumb-y-oblong2.png +0 -0
  1268. package/build/slider-base/slider-base-debug.js +762 -0
  1269. package/build/slider-base/slider-base-min.js +1 -0
  1270. package/build/slider-base/slider-base.js +760 -0
  1271. package/build/slider-value-range/slider-value-range-debug.js +422 -0
  1272. package/build/slider-value-range/slider-value-range-min.js +1 -0
  1273. package/build/slider-value-range/slider-value-range.js +418 -0
  1274. package/build/sortable/sortable-debug.js +528 -0
  1275. package/build/sortable/sortable-min.js +1 -0
  1276. package/build/sortable/sortable.js +527 -0
  1277. package/build/sortable-scroll/sortable-scroll-debug.js +67 -0
  1278. package/build/sortable-scroll/sortable-scroll-min.js +1 -0
  1279. package/build/sortable-scroll/sortable-scroll.js +67 -0
  1280. package/build/stylesheet/stylesheet-debug.js +642 -0
  1281. package/build/stylesheet/stylesheet-min.js +1 -0
  1282. package/build/stylesheet/stylesheet.js +638 -0
  1283. package/build/substitute/substitute-debug.js +170 -0
  1284. package/build/substitute/substitute-min.js +1 -0
  1285. package/build/substitute/substitute.js +170 -0
  1286. package/build/swf/swf-debug.js +206 -0
  1287. package/build/swf/swf-min.js +1 -0
  1288. package/build/swf/swf.js +204 -0
  1289. package/build/swfdetect/swfdetect-debug.js +116 -0
  1290. package/build/swfdetect/swfdetect-min.js +1 -0
  1291. package/build/swfdetect/swfdetect.js +115 -0
  1292. package/build/tabview/assets/skins/night/tabview-skin.css +89 -0
  1293. package/build/tabview/assets/skins/night/tabview.css +1 -0
  1294. package/build/tabview/assets/skins/sam/tabview-skin.css +58 -0
  1295. package/build/tabview/assets/skins/sam/tabview.css +1 -0
  1296. package/build/tabview/assets/tabview-core.css +42 -0
  1297. package/build/tabview/tabview-debug.js +436 -0
  1298. package/build/tabview/tabview-min.js +1 -0
  1299. package/build/tabview/tabview.js +436 -0
  1300. package/build/tabview-base/tabview-base-debug.js +144 -0
  1301. package/build/tabview-base/tabview-base-min.js +1 -0
  1302. package/build/tabview-base/tabview-base.js +144 -0
  1303. package/build/tabview-plugin/tabview-plugin-debug.js +16 -0
  1304. package/build/tabview-plugin/tabview-plugin-min.js +1 -0
  1305. package/build/tabview-plugin/tabview-plugin.js +16 -0
  1306. package/build/template-base/template-base-debug.js +272 -0
  1307. package/build/template-base/template-base-min.js +1 -0
  1308. package/build/template-base/template-base.js +272 -0
  1309. package/build/template-micro/template-micro-debug.js +249 -0
  1310. package/build/template-micro/template-micro-min.js +1 -0
  1311. package/build/template-micro/template-micro.js +249 -0
  1312. package/build/test/test-debug.js +3869 -0
  1313. package/build/test/test-min.js +6 -0
  1314. package/build/test/test.js +3869 -0
  1315. package/build/test-console/assets/skins/sam/test-console-skin.css +58 -0
  1316. package/build/test-console/assets/skins/sam/test-console.css +1 -0
  1317. package/build/test-console/assets/test-console-core.css +8 -0
  1318. package/build/test-console/test-console-debug.js +307 -0
  1319. package/build/test-console/test-console-min.js +1 -0
  1320. package/build/test-console/test-console.js +307 -0
  1321. package/build/text-accentfold/text-accentfold-debug.js +162 -0
  1322. package/build/text-accentfold/text-accentfold-min.js +1 -0
  1323. package/build/text-accentfold/text-accentfold.js +162 -0
  1324. package/build/text-data-accentfold/text-data-accentfold-debug.js +46 -0
  1325. package/build/text-data-accentfold/text-data-accentfold-min.js +1 -0
  1326. package/build/text-data-accentfold/text-data-accentfold.js +46 -0
  1327. package/build/text-data-wordbreak/text-data-wordbreak-debug.js +29 -0
  1328. package/build/text-data-wordbreak/text-data-wordbreak-min.js +2 -0
  1329. package/build/text-data-wordbreak/text-data-wordbreak.js +29 -0
  1330. package/build/text-wordbreak/text-wordbreak-debug.js +363 -0
  1331. package/build/text-wordbreak/text-wordbreak-min.js +1 -0
  1332. package/build/text-wordbreak/text-wordbreak.js +362 -0
  1333. package/build/timers/timers-debug.js +314 -0
  1334. package/build/timers/timers-min.js +1 -0
  1335. package/build/timers/timers.js +314 -0
  1336. package/build/transition/transition-debug.js +760 -0
  1337. package/build/transition/transition-min.js +2 -0
  1338. package/build/transition/transition.js +758 -0
  1339. package/build/transition-timer/transition-timer-debug.js +334 -0
  1340. package/build/transition-timer/transition-timer-min.js +1 -0
  1341. package/build/transition-timer/transition-timer.js +334 -0
  1342. package/build/tree/tree-debug.js +940 -0
  1343. package/build/tree/tree-min.js +1 -0
  1344. package/build/tree/tree.js +940 -0
  1345. package/build/tree-labelable/tree-labelable-debug.js +79 -0
  1346. package/build/tree-labelable/tree-labelable-min.js +1 -0
  1347. package/build/tree-labelable/tree-labelable.js +79 -0
  1348. package/build/tree-lazy/tree-lazy-debug.js +176 -0
  1349. package/build/tree-lazy/tree-lazy-min.js +1 -0
  1350. package/build/tree-lazy/tree-lazy.js +175 -0
  1351. package/build/tree-node/tree-node-debug.js +555 -0
  1352. package/build/tree-node/tree-node-min.js +1 -0
  1353. package/build/tree-node/tree-node.js +555 -0
  1354. package/build/tree-openable/tree-openable-debug.js +241 -0
  1355. package/build/tree-openable/tree-openable-min.js +1 -0
  1356. package/build/tree-openable/tree-openable.js +241 -0
  1357. package/build/tree-selectable/tree-selectable-debug.js +289 -0
  1358. package/build/tree-selectable/tree-selectable-min.js +1 -0
  1359. package/build/tree-selectable/tree-selectable.js +289 -0
  1360. package/build/tree-sortable/tree-sortable-debug.js +377 -0
  1361. package/build/tree-sortable/tree-sortable-min.js +1 -0
  1362. package/build/tree-sortable/tree-sortable.js +377 -0
  1363. package/build/uploader/assets/uploader-flash-core.css +4 -0
  1364. package/build/uploader/uploader-debug.js +53 -0
  1365. package/build/uploader/uploader-min.js +1 -0
  1366. package/build/uploader/uploader.js +53 -0
  1367. package/build/uploader-flash/assets/uploader-flash-core.css +4 -0
  1368. package/build/uploader-flash/uploader-flash-debug.js +1612 -0
  1369. package/build/uploader-flash/uploader-flash-min.js +3 -0
  1370. package/build/uploader-flash/uploader-flash.js +1611 -0
  1371. package/build/uploader-html5/assets/uploader-flash-core.css +4 -0
  1372. package/build/uploader-html5/uploader-html5-debug.js +1006 -0
  1373. package/build/uploader-html5/uploader-html5-min.js +2 -0
  1374. package/build/uploader-html5/uploader-html5.js +1006 -0
  1375. package/build/uploader-queue/assets/uploader-flash-core.css +4 -0
  1376. package/build/uploader-queue/uploader-queue-debug.js +656 -0
  1377. package/build/uploader-queue/uploader-queue-min.js +1 -0
  1378. package/build/uploader-queue/uploader-queue.js +656 -0
  1379. package/build/view/view-debug.js +434 -0
  1380. package/build/view/view-min.js +1 -0
  1381. package/build/view/view.js +433 -0
  1382. package/build/view-node-map/view-node-map-debug.js +84 -0
  1383. package/build/view-node-map/view-node-map-min.js +1 -0
  1384. package/build/view-node-map/view-node-map.js +84 -0
  1385. package/build/widget-anim/widget-anim-debug.js +257 -0
  1386. package/build/widget-anim/widget-anim-min.js +1 -0
  1387. package/build/widget-anim/widget-anim.js +257 -0
  1388. package/build/widget-autohide/widget-autohide-debug.js +238 -0
  1389. package/build/widget-autohide/widget-autohide-min.js +1 -0
  1390. package/build/widget-autohide/widget-autohide.js +237 -0
  1391. package/build/widget-base/assets/skins/night/widget-base-skin.css +0 -0
  1392. package/build/widget-base/assets/skins/night/widget-base.css +1 -0
  1393. package/build/widget-base/assets/skins/sam/widget-base-skin.css +0 -0
  1394. package/build/widget-base/assets/skins/sam/widget-base.css +1 -0
  1395. package/build/widget-base/assets/widget-base-core.css +20 -0
  1396. package/build/widget-base/widget-base-debug.js +1293 -0
  1397. package/build/widget-base/widget-base-min.js +2 -0
  1398. package/build/widget-base/widget-base.js +1289 -0
  1399. package/build/widget-base-ie/widget-base-ie-debug.js +49 -0
  1400. package/build/widget-base-ie/widget-base-ie-min.js +1 -0
  1401. package/build/widget-base-ie/widget-base-ie.js +49 -0
  1402. package/build/widget-buttons/widget-buttons-debug.js +1294 -0
  1403. package/build/widget-buttons/widget-buttons-min.js +2 -0
  1404. package/build/widget-buttons/widget-buttons.js +1294 -0
  1405. package/build/widget-child/widget-child-debug.js +377 -0
  1406. package/build/widget-child/widget-child-min.js +1 -0
  1407. package/build/widget-child/widget-child.js +377 -0
  1408. package/build/widget-htmlparser/widget-htmlparser-debug.js +215 -0
  1409. package/build/widget-htmlparser/widget-htmlparser-min.js +1 -0
  1410. package/build/widget-htmlparser/widget-htmlparser.js +215 -0
  1411. package/build/widget-modality/assets/skins/night/widget-modality-skin.css +7 -0
  1412. package/build/widget-modality/assets/skins/night/widget-modality.css +1 -0
  1413. package/build/widget-modality/assets/skins/sam/widget-modality-skin.css +7 -0
  1414. package/build/widget-modality/assets/skins/sam/widget-modality.css +1 -0
  1415. package/build/widget-modality/assets/widget-modality-core.css +1 -0
  1416. package/build/widget-modality/widget-modality-debug.js +566 -0
  1417. package/build/widget-modality/widget-modality-min.js +3 -0
  1418. package/build/widget-modality/widget-modality.js +565 -0
  1419. package/build/widget-parent/widget-parent-debug.js +866 -0
  1420. package/build/widget-parent/widget-parent-min.js +1 -0
  1421. package/build/widget-parent/widget-parent.js +865 -0
  1422. package/build/widget-position/widget-position-debug.js +276 -0
  1423. package/build/widget-position/widget-position-min.js +1 -0
  1424. package/build/widget-position/widget-position.js +276 -0
  1425. package/build/widget-position-align/widget-position-align-debug.js +656 -0
  1426. package/build/widget-position-align/widget-position-align-min.js +1 -0
  1427. package/build/widget-position-align/widget-position-align.js +652 -0
  1428. package/build/widget-position-constrain/widget-position-constrain-debug.js +348 -0
  1429. package/build/widget-position-constrain/widget-position-constrain-min.js +1 -0
  1430. package/build/widget-position-constrain/widget-position-constrain.js +348 -0
  1431. package/build/widget-skin/widget-skin-debug.js +59 -0
  1432. package/build/widget-skin/widget-skin-min.js +1 -0
  1433. package/build/widget-skin/widget-skin.js +59 -0
  1434. package/build/widget-stack/assets/skins/night/widget-stack-skin.css +0 -0
  1435. package/build/widget-stack/assets/skins/night/widget-stack.css +1 -0
  1436. package/build/widget-stack/assets/skins/sam/widget-stack-skin.css +0 -0
  1437. package/build/widget-stack/assets/skins/sam/widget-stack.css +1 -0
  1438. package/build/widget-stack/assets/widget-stack-core.css +19 -0
  1439. package/build/widget-stack/widget-stack-debug.js +440 -0
  1440. package/build/widget-stack/widget-stack-min.js +1 -0
  1441. package/build/widget-stack/widget-stack.js +440 -0
  1442. package/build/widget-stdmod/widget-stdmod-debug.js +780 -0
  1443. package/build/widget-stdmod/widget-stdmod-min.js +1 -0
  1444. package/build/widget-stdmod/widget-stdmod.js +780 -0
  1445. package/build/widget-uievents/widget-uievents-debug.js +227 -0
  1446. package/build/widget-uievents/widget-uievents-min.js +1 -0
  1447. package/build/widget-uievents/widget-uievents.js +226 -0
  1448. package/build/yql/yql-debug.js +168 -0
  1449. package/build/yql/yql-min.js +1 -0
  1450. package/build/yql/yql.js +167 -0
  1451. package/build/yql-jsonp/yql-jsonp-debug.js +29 -0
  1452. package/build/yql-jsonp/yql-jsonp-min.js +1 -0
  1453. package/build/yql-jsonp/yql-jsonp.js +29 -0
  1454. package/build/yql-nodejs/yql-nodejs-debug.js +33 -0
  1455. package/build/yql-nodejs/yql-nodejs-min.js +22 -0
  1456. package/build/yql-nodejs/yql-nodejs.js +33 -0
  1457. package/build/yql-winjs/yql-winjs-debug.js +34 -0
  1458. package/build/yql-winjs/yql-winjs-min.js +1 -0
  1459. package/build/yql-winjs/yql-winjs.js +34 -0
  1460. package/build/yui/yui-debug.js +12330 -0
  1461. package/build/yui/yui-min.js +16 -0
  1462. package/build/yui/yui.js +12022 -0
  1463. package/build/yui-base/yui-base-debug.js +6254 -0
  1464. package/build/yui-base/yui-base-min.js +7 -0
  1465. package/build/yui-base/yui-base.js +5989 -0
  1466. package/build/yui-core/yui-core-debug.js +4264 -0
  1467. package/build/yui-core/yui-core-min.js +5 -0
  1468. package/build/yui-core/yui-core.js +4017 -0
  1469. package/build/yui-later/yui-later-debug.js +78 -0
  1470. package/build/yui-later/yui-later-min.js +1 -0
  1471. package/build/yui-later/yui-later.js +78 -0
  1472. package/build/yui-log/yui-log-debug.js +125 -0
  1473. package/build/yui-log/yui-log-min.js +1 -0
  1474. package/build/yui-log/yui-log.js +125 -0
  1475. package/build/yui-log-nodejs/yui-log-nodejs-debug.js +81 -0
  1476. package/build/yui-log-nodejs/yui-log-nodejs-min.js +1 -0
  1477. package/build/yui-log-nodejs/yui-log-nodejs.js +81 -0
  1478. package/build/yui-nodejs/yui-nodejs-debug.js +11418 -0
  1479. package/build/yui-nodejs/yui-nodejs-min.js +15 -0
  1480. package/build/yui-nodejs/yui-nodejs.js +10969 -0
  1481. package/build/yui-throttle/yui-throttle-debug.js +54 -0
  1482. package/build/yui-throttle/yui-throttle-min.js +3 -0
  1483. package/build/yui-throttle/yui-throttle.js +54 -0
  1484. package/index.js +3 -0
  1485. package/package.json +36 -0
@@ -0,0 +1,3753 @@
1
+ YUI.add('graphics-vml', function (Y, NAME) {
2
+
3
+ var IMPLEMENTATION = "vml",
4
+ SHAPE = "shape",
5
+ SPLITPATHPATTERN = /[a-z][^a-z]*/ig,
6
+ SPLITARGSPATTERN = /[\-]?[0-9]*[0-9|\.][0-9]*/g,
7
+ Y_LANG = Y.Lang,
8
+ IS_NUM = Y_LANG.isNumber,
9
+ IS_ARRAY = Y_LANG.isArray,
10
+ Y_DOM = Y.DOM,
11
+ Y_SELECTOR = Y.Selector,
12
+ DOCUMENT = Y.config.doc,
13
+ AttributeLite = Y.AttributeLite,
14
+ VMLShape,
15
+ VMLCircle,
16
+ VMLPath,
17
+ VMLRect,
18
+ VMLEllipse,
19
+ VMLGraphic,
20
+ VMLPieSlice,
21
+ _getClassName = Y.ClassNameManager.getClassName;
22
+
23
+ function VMLDrawing() {}
24
+
25
+ /**
26
+ * <a href="http://www.w3.org/TR/NOTE-VML">VML</a> implementation of the <a href="Drawing.html">`Drawing`</a> class.
27
+ * `VMLDrawing` is not intended to be used directly. Instead, use the <a href="Drawing.html">`Drawing`</a> class.
28
+ * If the browser lacks <a href="http://www.w3.org/TR/SVG/">SVG</a> and <a href="http://www.w3.org/TR/html5/the-canvas-element.html">Canvas</a>
29
+ * capabilities, the <a href="Drawing.html">`Drawing`</a> class will point to the `VMLDrawing` class.
30
+ *
31
+ * @module graphics
32
+ * @class VMLDrawing
33
+ * @constructor
34
+ */
35
+ VMLDrawing.prototype = {
36
+ /**
37
+ * Maps path to methods
38
+ *
39
+ * @property _pathSymbolToMethod
40
+ * @type Object
41
+ * @private
42
+ */
43
+ _pathSymbolToMethod: {
44
+ M: "moveTo",
45
+ m: "relativeMoveTo",
46
+ L: "lineTo",
47
+ l: "relativeLineTo",
48
+ C: "curveTo",
49
+ c: "relativeCurveTo",
50
+ Q: "quadraticCurveTo",
51
+ q: "relativeQuadraticCurveTo",
52
+ z: "closePath",
53
+ Z: "closePath"
54
+ },
55
+
56
+ /**
57
+ * Value for rounding up to coordsize
58
+ *
59
+ * @property _coordSpaceMultiplier
60
+ * @type Number
61
+ * @private
62
+ */
63
+ _coordSpaceMultiplier: 100,
64
+
65
+ /**
66
+ * Rounds dimensions and position values based on the coordinate space.
67
+ *
68
+ * @method _round
69
+ * @param {Number} The value for rounding
70
+ * @return Number
71
+ * @private
72
+ */
73
+ _round:function(val)
74
+ {
75
+ return Math.round(val * this._coordSpaceMultiplier);
76
+ },
77
+
78
+ /**
79
+ * Concatanates the path.
80
+ *
81
+ * @method _addToPath
82
+ * @param {String} val The value to add to the path string.
83
+ * @private
84
+ */
85
+ _addToPath: function(val)
86
+ {
87
+ this._path = this._path || "";
88
+ if(this._movePath)
89
+ {
90
+ this._path += this._movePath;
91
+ this._movePath = null;
92
+ }
93
+ this._path += val;
94
+ },
95
+
96
+ /**
97
+ * Current x position of the drawing.
98
+ *
99
+ * @property _currentX
100
+ * @type Number
101
+ * @private
102
+ */
103
+ _currentX: 0,
104
+
105
+ /**
106
+ * Current y position of the drqwing.
107
+ *
108
+ * @property _currentY
109
+ * @type Number
110
+ * @private
111
+ */
112
+ _currentY: 0,
113
+
114
+ /**
115
+ * Draws a bezier curve.
116
+ *
117
+ * @method curveTo
118
+ * @param {Number} cp1x x-coordinate for the first control point.
119
+ * @param {Number} cp1y y-coordinate for the first control point.
120
+ * @param {Number} cp2x x-coordinate for the second control point.
121
+ * @param {Number} cp2y y-coordinate for the second control point.
122
+ * @param {Number} x x-coordinate for the end point.
123
+ * @param {Number} y y-coordinate for the end point.
124
+ * @chainable
125
+ */
126
+ curveTo: function() {
127
+ this._curveTo.apply(this, [Y.Array(arguments), false]);
128
+ return this;
129
+ },
130
+
131
+ /**
132
+ * Draws a bezier curve.
133
+ *
134
+ * @method relativeCurveTo
135
+ * @param {Number} cp1x x-coordinate for the first control point.
136
+ * @param {Number} cp1y y-coordinate for the first control point.
137
+ * @param {Number} cp2x x-coordinate for the second control point.
138
+ * @param {Number} cp2y y-coordinate for the second control point.
139
+ * @param {Number} x x-coordinate for the end point.
140
+ * @param {Number} y y-coordinate for the end point.
141
+ * @chainable
142
+ */
143
+ relativeCurveTo: function() {
144
+ this._curveTo.apply(this, [Y.Array(arguments), true]);
145
+ return this;
146
+ },
147
+
148
+ /**
149
+ * Implements curveTo methods.
150
+ *
151
+ * @method _curveTo
152
+ * @param {Array} args The arguments to be used.
153
+ * @param {Boolean} relative Indicates whether or not to use relative coordinates.
154
+ * @private
155
+ */
156
+ _curveTo: function(args, relative) {
157
+ var w,
158
+ h,
159
+ x,
160
+ y,
161
+ cp1x,
162
+ cp1y,
163
+ cp2x,
164
+ cp2y,
165
+ pts,
166
+ right,
167
+ left,
168
+ bottom,
169
+ top,
170
+ i,
171
+ len,
172
+ path,
173
+ command = relative ? " v " : " c ",
174
+ relativeX = relative ? parseFloat(this._currentX) : 0,
175
+ relativeY = relative ? parseFloat(this._currentY) : 0;
176
+ len = args.length - 5;
177
+ path = command;
178
+ for(i = 0; i < len; i = i + 6)
179
+ {
180
+ cp1x = parseFloat(args[i]);
181
+ cp1y = parseFloat(args[i + 1]);
182
+ cp2x = parseFloat(args[i + 2]);
183
+ cp2y = parseFloat(args[i + 3]);
184
+ x = parseFloat(args[i + 4]);
185
+ y = parseFloat(args[i + 5]);
186
+ if(i > 0)
187
+ {
188
+ path = path + ", ";
189
+ }
190
+ path = path +
191
+ this._round(cp1x) +
192
+ ", " +
193
+ this._round(cp1y) +
194
+ ", " +
195
+ this._round(cp2x) +
196
+ ", " +
197
+ this._round(cp2y) +
198
+ ", " +
199
+ this._round(x) +
200
+ ", " +
201
+ this._round(y);
202
+ cp1x = cp1x + relativeX;
203
+ cp1y = cp1y + relativeY;
204
+ cp2x = cp2x + relativeX;
205
+ cp2y = cp2y + relativeY;
206
+ x = x + relativeX;
207
+ y = y + relativeY;
208
+ right = Math.max(x, Math.max(cp1x, cp2x));
209
+ bottom = Math.max(y, Math.max(cp1y, cp2y));
210
+ left = Math.min(x, Math.min(cp1x, cp2x));
211
+ top = Math.min(y, Math.min(cp1y, cp2y));
212
+ w = Math.abs(right - left);
213
+ h = Math.abs(bottom - top);
214
+ pts = [[this._currentX, this._currentY] , [cp1x, cp1y], [cp2x, cp2y], [x, y]];
215
+ this._setCurveBoundingBox(pts, w, h);
216
+ this._currentX = x;
217
+ this._currentY = y;
218
+ }
219
+ this._addToPath(path);
220
+ },
221
+
222
+ /**
223
+ * Draws a quadratic bezier curve.
224
+ *
225
+ * @method quadraticCurveTo
226
+ * @param {Number} cpx x-coordinate for the control point.
227
+ * @param {Number} cpy y-coordinate for the control point.
228
+ * @param {Number} x x-coordinate for the end point.
229
+ * @param {Number} y y-coordinate for the end point.
230
+ * @chainable
231
+ */
232
+ quadraticCurveTo: function() {
233
+ this._quadraticCurveTo.apply(this, [Y.Array(arguments), false]);
234
+ return this;
235
+ },
236
+
237
+ /**
238
+ * Draws a quadratic bezier curve relative to the current position.
239
+ *
240
+ * @method relativeQuadraticCurveTo
241
+ * @param {Number} cpx x-coordinate for the control point.
242
+ * @param {Number} cpy y-coordinate for the control point.
243
+ * @param {Number} x x-coordinate for the end point.
244
+ * @param {Number} y y-coordinate for the end point.
245
+ * @chainable
246
+ */
247
+ relativeQuadraticCurveTo: function() {
248
+ this._quadraticCurveTo.apply(this, [Y.Array(arguments), true]);
249
+ return this;
250
+ },
251
+
252
+ /**
253
+ * Implements quadraticCurveTo methods.
254
+ *
255
+ * @method _quadraticCurveTo
256
+ * @param {Array} args The arguments to be used.
257
+ * @param {Boolean} relative Indicates whether or not to use relative coordinates.
258
+ * @private
259
+ */
260
+ _quadraticCurveTo: function(args, relative) {
261
+ var cpx,
262
+ cpy,
263
+ cp1x,
264
+ cp1y,
265
+ cp2x,
266
+ cp2y,
267
+ x,
268
+ y,
269
+ currentX = this._currentX,
270
+ currentY = this._currentY,
271
+ i,
272
+ len = args.length - 3,
273
+ bezierArgs = [],
274
+ relativeX = relative ? parseFloat(this._currentX) : 0,
275
+ relativeY = relative ? parseFloat(this._currentY) : 0;
276
+ for(i = 0; i < len; i = i + 4)
277
+ {
278
+ cpx = parseFloat(args[i]) + relativeX;
279
+ cpy = parseFloat(args[i + 1]) + relativeY;
280
+ x = parseFloat(args[i + 2]) + relativeX;
281
+ y = parseFloat(args[i + 3]) + relativeY;
282
+ cp1x = currentX + 0.67*(cpx - currentX);
283
+ cp1y = currentY + 0.67*(cpy - currentY);
284
+ cp2x = cp1x + (x - currentX) * 0.34;
285
+ cp2y = cp1y + (y - currentY) * 0.34;
286
+ bezierArgs.push(cp1x);
287
+ bezierArgs.push(cp1y);
288
+ bezierArgs.push(cp2x);
289
+ bezierArgs.push(cp2y);
290
+ bezierArgs.push(x);
291
+ bezierArgs.push(y);
292
+ }
293
+ this._curveTo.apply(this, [bezierArgs, false]);
294
+ },
295
+
296
+ /**
297
+ * Draws a rectangle.
298
+ *
299
+ * @method drawRect
300
+ * @param {Number} x x-coordinate
301
+ * @param {Number} y y-coordinate
302
+ * @param {Number} w width
303
+ * @param {Number} h height
304
+ * @chainable
305
+ */
306
+ drawRect: function(x, y, w, h) {
307
+ this.moveTo(x, y);
308
+ this.lineTo(x + w, y);
309
+ this.lineTo(x + w, y + h);
310
+ this.lineTo(x, y + h);
311
+ this.lineTo(x, y);
312
+ this._currentX = x;
313
+ this._currentY = y;
314
+ return this;
315
+ },
316
+
317
+ /**
318
+ * Draws a rectangle with rounded corners.
319
+ *
320
+ * @method drawRect
321
+ * @param {Number} x x-coordinate
322
+ * @param {Number} y y-coordinate
323
+ * @param {Number} w width
324
+ * @param {Number} h height
325
+ * @param {Number} ew width of the ellipse used to draw the rounded corners
326
+ * @param {Number} eh height of the ellipse used to draw the rounded corners
327
+ * @chainable
328
+ */
329
+ drawRoundRect: function(x, y, w, h, ew, eh) {
330
+ this.moveTo(x, y + eh);
331
+ this.lineTo(x, y + h - eh);
332
+ this.quadraticCurveTo(x, y + h, x + ew, y + h);
333
+ this.lineTo(x + w - ew, y + h);
334
+ this.quadraticCurveTo(x + w, y + h, x + w, y + h - eh);
335
+ this.lineTo(x + w, y + eh);
336
+ this.quadraticCurveTo(x + w, y, x + w - ew, y);
337
+ this.lineTo(x + ew, y);
338
+ this.quadraticCurveTo(x, y, x, y + eh);
339
+ return this;
340
+ },
341
+
342
+ /**
343
+ * Draws a circle. Used internally by `CanvasCircle` class.
344
+ *
345
+ * @method drawCircle
346
+ * @param {Number} x y-coordinate
347
+ * @param {Number} y x-coordinate
348
+ * @param {Number} r radius
349
+ * @chainable
350
+ * @protected
351
+ */
352
+ drawCircle: function(x, y, radius) {
353
+ var startAngle = 0,
354
+ endAngle = 360,
355
+ circum = radius * 2;
356
+
357
+ endAngle *= 65535;
358
+ this._drawingComplete = false;
359
+ this._trackSize(x + circum, y + circum);
360
+ this.moveTo((x + circum), (y + radius));
361
+ this._addToPath(
362
+ " ae " +
363
+ this._round(x + radius) +
364
+ ", " +
365
+ this._round(y + radius) +
366
+ ", " +
367
+ this._round(radius) +
368
+ ", " +
369
+ this._round(radius) +
370
+ ", " +
371
+ startAngle +
372
+ ", " +
373
+ endAngle
374
+ );
375
+ return this;
376
+ },
377
+
378
+ /**
379
+ * Draws an ellipse.
380
+ *
381
+ * @method drawEllipse
382
+ * @param {Number} x x-coordinate
383
+ * @param {Number} y y-coordinate
384
+ * @param {Number} w width
385
+ * @param {Number} h height
386
+ * @chainable
387
+ * @protected
388
+ */
389
+ drawEllipse: function(x, y, w, h) {
390
+ var startAngle = 0,
391
+ endAngle = 360,
392
+ radius = w * 0.5,
393
+ yRadius = h * 0.5;
394
+ endAngle *= 65535;
395
+ this._drawingComplete = false;
396
+ this._trackSize(x + w, y + h);
397
+ this.moveTo((x + w), (y + yRadius));
398
+ this._addToPath(
399
+ " ae " +
400
+ this._round(x + radius) +
401
+ ", " +
402
+ this._round(x + radius) +
403
+ ", " +
404
+ this._round(y + yRadius) +
405
+ ", " +
406
+ this._round(radius) +
407
+ ", " +
408
+ this._round(yRadius) +
409
+ ", " +
410
+ startAngle +
411
+ ", " +
412
+ endAngle
413
+ );
414
+ return this;
415
+ },
416
+
417
+ /**
418
+ * Draws a diamond.
419
+ *
420
+ * @method drawDiamond
421
+ * @param {Number} x y-coordinate
422
+ * @param {Number} y x-coordinate
423
+ * @param {Number} width width
424
+ * @param {Number} height height
425
+ * @chainable
426
+ * @protected
427
+ */
428
+ drawDiamond: function(x, y, width, height)
429
+ {
430
+ var midWidth = width * 0.5,
431
+ midHeight = height * 0.5;
432
+ this.moveTo(x + midWidth, y);
433
+ this.lineTo(x + width, y + midHeight);
434
+ this.lineTo(x + midWidth, y + height);
435
+ this.lineTo(x, y + midHeight);
436
+ this.lineTo(x + midWidth, y);
437
+ return this;
438
+ },
439
+
440
+ /**
441
+ * Draws a wedge.
442
+ *
443
+ * @method drawWedge
444
+ * @param {Number} x x-coordinate of the wedge's center point
445
+ * @param {Number} y y-coordinate of the wedge's center point
446
+ * @param {Number} startAngle starting angle in degrees
447
+ * @param {Number} arc sweep of the wedge. Negative values draw clockwise.
448
+ * @param {Number} radius radius of wedge. If [optional] yRadius is defined, then radius is the x radius.
449
+ * @param {Number} yRadius [optional] y radius for wedge.
450
+ * @chainable
451
+ * @private
452
+ */
453
+ drawWedge: function(x, y, startAngle, arc, radius)
454
+ {
455
+ var diameter = radius * 2;
456
+ if(Math.abs(arc) > 360)
457
+ {
458
+ arc = 360;
459
+ }
460
+ this._currentX = x;
461
+ this._currentY = y;
462
+ startAngle *= -65535;
463
+ arc *= 65536;
464
+ startAngle = Math.round(startAngle);
465
+ arc = Math.round(arc);
466
+ this.moveTo(x, y);
467
+ this._addToPath(
468
+ " ae " +
469
+ this._round(x) +
470
+ ", " +
471
+ this._round(y) +
472
+ ", " +
473
+ this._round(radius) +
474
+ " " +
475
+ this._round(radius) +
476
+ ", " +
477
+ startAngle +
478
+ ", " +
479
+ arc
480
+ );
481
+ this._trackSize(diameter, diameter);
482
+ return this;
483
+ },
484
+
485
+ /**
486
+ * Draws a line segment from the current drawing position to the specified x and y coordinates.
487
+ *
488
+ * @method lineTo
489
+ * @param {Number} point1 x-coordinate for the end point.
490
+ * @param {Number} point2 y-coordinate for the end point.
491
+ * @chainable
492
+ */
493
+ lineTo: function()
494
+ {
495
+ this._lineTo.apply(this, [Y.Array(arguments), false]);
496
+ return this;
497
+ },
498
+
499
+ /**
500
+ * Draws a line segment using the current line style from the current drawing position to the relative x and y coordinates.
501
+ *
502
+ * @method relativeLineTo
503
+ * @param {Number} point1 x-coordinate for the end point.
504
+ * @param {Number} point2 y-coordinate for the end point.
505
+ * @chainable
506
+ */
507
+ relativeLineTo: function()
508
+ {
509
+ this._lineTo.apply(this, [Y.Array(arguments), true]);
510
+ return this;
511
+ },
512
+
513
+ /**
514
+ * Implements lineTo methods.
515
+ *
516
+ * @method _lineTo
517
+ * @param {Array} args The arguments to be used.
518
+ * @param {Boolean} relative Indicates whether or not to use relative coordinates.
519
+ * @private
520
+ */
521
+ _lineTo: function(args, relative) {
522
+ var point1 = args[0],
523
+ i,
524
+ len,
525
+ x,
526
+ y,
527
+ path = relative ? " r " : " l ",
528
+ relativeX = relative ? parseFloat(this._currentX) : 0,
529
+ relativeY = relative ? parseFloat(this._currentY) : 0;
530
+ if (typeof point1 === "string" || typeof point1 === "number") {
531
+ len = args.length - 1;
532
+ for (i = 0; i < len; i = i + 2) {
533
+ x = parseFloat(args[i]);
534
+ y = parseFloat(args[i + 1]);
535
+ path += ' ' + this._round(x) + ', ' + this._round(y);
536
+ x = x + relativeX;
537
+ y = y + relativeY;
538
+ this._currentX = x;
539
+ this._currentY = y;
540
+ this._trackSize.apply(this, [x, y]);
541
+ }
542
+ }
543
+ else
544
+ {
545
+ len = args.length;
546
+ for (i = 0; i < len; i = i + 1) {
547
+ x = parseFloat(args[i][0]);
548
+ y = parseFloat(args[i][1]);
549
+ path += ' ' + this._round(x) + ', ' + this._round(y);
550
+ x = x + relativeX;
551
+ y = y + relativeY;
552
+ this._currentX = x;
553
+ this._currentY = y;
554
+ this._trackSize.apply(this, [x, y]);
555
+ }
556
+ }
557
+ this._addToPath(path);
558
+ return this;
559
+ },
560
+
561
+ /**
562
+ * Moves the current drawing position to specified x and y coordinates.
563
+ *
564
+ * @method moveTo
565
+ * @param {Number} x x-coordinate for the end point.
566
+ * @param {Number} y y-coordinate for the end point.
567
+ * @chainable
568
+ */
569
+ moveTo: function()
570
+ {
571
+ this._moveTo.apply(this, [Y.Array(arguments), false]);
572
+ return this;
573
+ },
574
+
575
+ /**
576
+ * Moves the current drawing position relative to specified x and y coordinates.
577
+ *
578
+ * @method relativeMoveTo
579
+ * @param {Number} x x-coordinate for the end point.
580
+ * @param {Number} y y-coordinate for the end point.
581
+ * @chainable
582
+ */
583
+ relativeMoveTo: function()
584
+ {
585
+ this._moveTo.apply(this, [Y.Array(arguments), true]);
586
+ return this;
587
+ },
588
+
589
+ /**
590
+ * Implements moveTo methods.
591
+ *
592
+ * @method _moveTo
593
+ * @param {Array} args The arguments to be used.
594
+ * @param {Boolean} relative Indicates whether or not to use relative coordinates.
595
+ * @private
596
+ */
597
+ _moveTo: function(args, relative) {
598
+ var x = parseFloat(args[0]),
599
+ y = parseFloat(args[1]),
600
+ command = relative ? " t " : " m ",
601
+ relativeX = relative ? parseFloat(this._currentX) : 0,
602
+ relativeY = relative ? parseFloat(this._currentY) : 0;
603
+ this._movePath = command + this._round(x) + ", " + this._round(y);
604
+ x = x + relativeX;
605
+ y = y + relativeY;
606
+ this._trackSize(x, y);
607
+ this._currentX = x;
608
+ this._currentY = y;
609
+ },
610
+
611
+ /**
612
+ * Draws the graphic.
613
+ *
614
+ * @method _draw
615
+ * @private
616
+ */
617
+ _closePath: function()
618
+ {
619
+ var fill = this.get("fill"),
620
+ stroke = this.get("stroke"),
621
+ node = this.node,
622
+ w = this.get("width"),
623
+ h = this.get("height"),
624
+ path = this._path,
625
+ pathEnd = "",
626
+ multiplier = this._coordSpaceMultiplier;
627
+ this._fillChangeHandler();
628
+ this._strokeChangeHandler();
629
+ if(path)
630
+ {
631
+ if(fill && fill.color)
632
+ {
633
+ pathEnd += ' x';
634
+ }
635
+ if(stroke)
636
+ {
637
+ pathEnd += ' e';
638
+ }
639
+ }
640
+ if(path)
641
+ {
642
+ node.path = path + pathEnd;
643
+ }
644
+ if(!isNaN(w) && !isNaN(h))
645
+ {
646
+ node.coordOrigin = this._left + ", " + this._top;
647
+ node.coordSize = (w * multiplier) + ", " + (h * multiplier);
648
+ node.style.position = "absolute";
649
+ node.style.width = w + "px";
650
+ node.style.height = h + "px";
651
+ }
652
+ this._path = path;
653
+ this._movePath = null;
654
+ this._updateTransform();
655
+ },
656
+
657
+ /**
658
+ * Completes a drawing operation.
659
+ *
660
+ * @method end
661
+ * @chainable
662
+ */
663
+ end: function()
664
+ {
665
+ this._closePath();
666
+ return this;
667
+ },
668
+
669
+ /**
670
+ * Ends a fill and stroke
671
+ *
672
+ * @method closePath
673
+ * @chainable
674
+ */
675
+ closePath: function()
676
+ {
677
+ this._addToPath(" x e");
678
+ return this;
679
+ },
680
+
681
+ /**
682
+ * Clears the path.
683
+ *
684
+ * @method clear
685
+ * @chainable
686
+ */
687
+ clear: function()
688
+ {
689
+ this._right = 0;
690
+ this._bottom = 0;
691
+ this._width = 0;
692
+ this._height = 0;
693
+ this._left = 0;
694
+ this._top = 0;
695
+ this._path = "";
696
+ this._movePath = null;
697
+ return this;
698
+ },
699
+
700
+ /**
701
+ * Returns the points on a curve
702
+ *
703
+ * @method getBezierData
704
+ * @param Array points Array containing the begin, end and control points of a curve.
705
+ * @param Number t The value for incrementing the next set of points.
706
+ * @return Array
707
+ * @private
708
+ */
709
+ getBezierData: function(points, t) {
710
+ var n = points.length,
711
+ tmp = [],
712
+ i,
713
+ j;
714
+
715
+ for (i = 0; i < n; ++i){
716
+ tmp[i] = [points[i][0], points[i][1]]; // save input
717
+ }
718
+
719
+ for (j = 1; j < n; ++j) {
720
+ for (i = 0; i < n - j; ++i) {
721
+ tmp[i][0] = (1 - t) * tmp[i][0] + t * tmp[parseInt(i + 1, 10)][0];
722
+ tmp[i][1] = (1 - t) * tmp[i][1] + t * tmp[parseInt(i + 1, 10)][1];
723
+ }
724
+ }
725
+ return [ tmp[0][0], tmp[0][1] ];
726
+ },
727
+
728
+ /**
729
+ * Calculates the bounding box for a curve
730
+ *
731
+ * @method _setCurveBoundingBox
732
+ * @param Array pts Array containing points for start, end and control points of a curve.
733
+ * @param Number w Width used to calculate the number of points to describe the curve.
734
+ * @param Number h Height used to calculate the number of points to describe the curve.
735
+ * @private
736
+ */
737
+ _setCurveBoundingBox: function(pts, w, h)
738
+ {
739
+ var i,
740
+ left = this._currentX,
741
+ right = left,
742
+ top = this._currentY,
743
+ bottom = top,
744
+ len = Math.round(Math.sqrt((w * w) + (h * h))),
745
+ t = 1/len,
746
+ xy;
747
+ for(i = 0; i < len; ++i)
748
+ {
749
+ xy = this.getBezierData(pts, t * i);
750
+ left = isNaN(left) ? xy[0] : Math.min(xy[0], left);
751
+ right = isNaN(right) ? xy[0] : Math.max(xy[0], right);
752
+ top = isNaN(top) ? xy[1] : Math.min(xy[1], top);
753
+ bottom = isNaN(bottom) ? xy[1] : Math.max(xy[1], bottom);
754
+ }
755
+ left = Math.round(left * 10)/10;
756
+ right = Math.round(right * 10)/10;
757
+ top = Math.round(top * 10)/10;
758
+ bottom = Math.round(bottom * 10)/10;
759
+ this._trackSize(right, bottom);
760
+ this._trackSize(left, top);
761
+ },
762
+
763
+ /**
764
+ * Updates the size of the graphics object
765
+ *
766
+ * @method _trackSize
767
+ * @param {Number} w width
768
+ * @param {Number} h height
769
+ * @private
770
+ */
771
+ _trackSize: function(w, h) {
772
+ if (w > this._right) {
773
+ this._right = w;
774
+ }
775
+ if(w < this._left)
776
+ {
777
+ this._left = w;
778
+ }
779
+ if (h < this._top)
780
+ {
781
+ this._top = h;
782
+ }
783
+ if (h > this._bottom)
784
+ {
785
+ this._bottom = h;
786
+ }
787
+ this._width = this._right - this._left;
788
+ this._height = this._bottom - this._top;
789
+ },
790
+
791
+ _left: 0,
792
+
793
+ _right: 0,
794
+
795
+ _top: 0,
796
+
797
+ _bottom: 0,
798
+
799
+ _width: 0,
800
+
801
+ _height: 0
802
+ };
803
+ Y.VMLDrawing = VMLDrawing;
804
+ /**
805
+ * <a href="http://www.w3.org/TR/NOTE-VML">VML</a> implementation of the <a href="Shape.html">`Shape`</a> class.
806
+ * `VMLShape` is not intended to be used directly. Instead, use the <a href="Shape.html">`Shape`</a> class.
807
+ * If the browser lacks <a href="http://www.w3.org/TR/SVG/">SVG</a> and <a href="http://www.w3.org/TR/html5/the-canvas-element.html">Canvas</a>
808
+ * capabilities, the <a href="Shape.html">`Shape`</a> class will point to the `VMLShape` class.
809
+ *
810
+ * @module graphics
811
+ * @class VMLShape
812
+ * @constructor
813
+ * @param {Object} cfg (optional) Attribute configs
814
+ */
815
+ VMLShape = function()
816
+ {
817
+ this._transforms = [];
818
+ this.matrix = new Y.Matrix();
819
+ this._normalizedMatrix = new Y.Matrix();
820
+ VMLShape.superclass.constructor.apply(this, arguments);
821
+ };
822
+
823
+ VMLShape.NAME = "shape";
824
+
825
+ Y.extend(VMLShape, Y.GraphicBase, Y.mix({
826
+ /**
827
+ * Indicates the type of shape
828
+ *
829
+ * @property _type
830
+ * @type String
831
+ * @private
832
+ */
833
+ _type: "shape",
834
+
835
+ /**
836
+ * Init method, invoked during construction.
837
+ * Calls `initializer` method.
838
+ *
839
+ * @method init
840
+ * @protected
841
+ */
842
+ init: function()
843
+ {
844
+ this.initializer.apply(this, arguments);
845
+ },
846
+
847
+ /**
848
+ * Initializes the shape
849
+ *
850
+ * @private
851
+ * @method _initialize
852
+ */
853
+ initializer: function(cfg)
854
+ {
855
+ var host = this,
856
+ graphic = cfg.graphic,
857
+ data = this.get("data");
858
+ host.createNode();
859
+ if(graphic)
860
+ {
861
+ this._setGraphic(graphic);
862
+ }
863
+ if(data)
864
+ {
865
+ host._parsePathData(data);
866
+ }
867
+ this._updateHandler();
868
+ },
869
+
870
+ /**
871
+ * Set the Graphic instance for the shape.
872
+ *
873
+ * @method _setGraphic
874
+ * @param {Graphic | Node | HTMLElement | String} render This param is used to determine the graphic instance. If it is a
875
+ * `Graphic` instance, it will be assigned to the `graphic` attribute. Otherwise, a new Graphic instance will be created
876
+ * and rendered into the dom element that the render represents.
877
+ * @private
878
+ */
879
+ _setGraphic: function(render)
880
+ {
881
+ var graphic;
882
+ if(render instanceof Y.VMLGraphic)
883
+ {
884
+ this._graphic = render;
885
+ }
886
+ else
887
+ {
888
+ graphic = new Y.VMLGraphic({
889
+ render: render
890
+ });
891
+ graphic._appendShape(this);
892
+ this._graphic = graphic;
893
+ this._appendStrokeAndFill();
894
+ }
895
+ },
896
+
897
+ /**
898
+ * Appends fill and stroke nodes to the shape.
899
+ *
900
+ * @method _appendStrokeAndFill
901
+ * @private
902
+ */
903
+ _appendStrokeAndFill: function()
904
+ {
905
+ if(this._strokeNode)
906
+ {
907
+ this.node.appendChild(this._strokeNode);
908
+ }
909
+ if(this._fillNode)
910
+ {
911
+ this.node.appendChild(this._fillNode);
912
+ }
913
+ },
914
+
915
+ /**
916
+ * Creates the dom node for the shape.
917
+ *
918
+ * @method createNode
919
+ * @return HTMLElement
920
+ * @private
921
+ */
922
+ createNode: function()
923
+ {
924
+ var node,
925
+ concat = this._camelCaseConcat,
926
+ x = this.get("x"),
927
+ y = this.get("y"),
928
+ w = this.get("width"),
929
+ h = this.get("height"),
930
+ id,
931
+ type,
932
+ name = this.name,
933
+ nodestring,
934
+ visibility = this.get("visible") ? "visible" : "hidden",
935
+ strokestring,
936
+ classString,
937
+ stroke,
938
+ endcap,
939
+ opacity,
940
+ joinstyle,
941
+ miterlimit,
942
+ dashstyle,
943
+ fill,
944
+ fillstring;
945
+ id = this.get("id");
946
+ type = this._type === "path" ? "shape" : this._type;
947
+ classString = _getClassName(SHAPE) +
948
+ " " +
949
+ _getClassName(concat(IMPLEMENTATION, SHAPE)) +
950
+ " " +
951
+ _getClassName(name) +
952
+ " " +
953
+ _getClassName(concat(IMPLEMENTATION, name)) +
954
+ " " +
955
+ IMPLEMENTATION +
956
+ type;
957
+ stroke = this._getStrokeProps();
958
+ fill = this._getFillProps();
959
+
960
+ nodestring = '<' +
961
+ type +
962
+ ' xmlns="urn:schemas-microsft.com:vml" id="' +
963
+ id +
964
+ '" class="' +
965
+ classString +
966
+ '" style="behavior:url(#default#VML);display:inline-block;position:absolute;left:' +
967
+ x +
968
+ 'px;top:' +
969
+ y +
970
+ 'px;width:' +
971
+ w +
972
+ 'px;height:' +
973
+ h +
974
+ 'px;visibility:' +
975
+ visibility +
976
+ '"';
977
+
978
+ if(stroke && stroke.weight && stroke.weight > 0)
979
+ {
980
+ endcap = stroke.endcap;
981
+ opacity = parseFloat(stroke.opacity);
982
+ joinstyle = stroke.joinstyle;
983
+ miterlimit = stroke.miterlimit;
984
+ dashstyle = stroke.dashstyle;
985
+ nodestring += ' stroked="t" strokecolor="' + stroke.color + '" strokeWeight="' + stroke.weight + 'px"';
986
+
987
+ strokestring = '<stroke class="vmlstroke"' +
988
+ ' xmlns="urn:schemas-microsft.com:vml"' +
989
+ ' on="t"' +
990
+ ' style="behavior:url(#default#VML);display:inline-block;"' +
991
+ ' opacity="' + opacity + '"';
992
+ if(endcap)
993
+ {
994
+ strokestring += ' endcap="' + endcap + '"';
995
+ }
996
+ if(joinstyle)
997
+ {
998
+ strokestring += ' joinstyle="' + joinstyle + '"';
999
+ }
1000
+ if(miterlimit)
1001
+ {
1002
+ strokestring += ' miterlimit="' + miterlimit + '"';
1003
+ }
1004
+ if(dashstyle)
1005
+ {
1006
+ strokestring += ' dashstyle="' + dashstyle + '"';
1007
+ }
1008
+ strokestring += '></stroke>';
1009
+ this._strokeNode = DOCUMENT.createElement(strokestring);
1010
+ nodestring += ' stroked="t"';
1011
+ }
1012
+ else
1013
+ {
1014
+ nodestring += ' stroked="f"';
1015
+ }
1016
+ if(fill)
1017
+ {
1018
+ if(fill.node)
1019
+ {
1020
+ fillstring = fill.node;
1021
+ this._fillNode = DOCUMENT.createElement(fillstring);
1022
+ }
1023
+ if(fill.color)
1024
+ {
1025
+ nodestring += ' fillcolor="' + fill.color + '"';
1026
+ }
1027
+ nodestring += ' filled="' + fill.filled + '"';
1028
+ }
1029
+
1030
+
1031
+ nodestring += '>';
1032
+ nodestring += '</' + type + '>';
1033
+
1034
+ node = DOCUMENT.createElement(nodestring);
1035
+
1036
+ this.node = node;
1037
+ this._strokeFlag = false;
1038
+ this._fillFlag = false;
1039
+ },
1040
+
1041
+ /**
1042
+ * Add a class name to each node.
1043
+ *
1044
+ * @method addClass
1045
+ * @param {String} className the class name to add to the node's class attribute
1046
+ */
1047
+ addClass: function(className)
1048
+ {
1049
+ var node = this.node;
1050
+ Y_DOM.addClass(node, className);
1051
+ },
1052
+
1053
+ /**
1054
+ * Removes a class name from each node.
1055
+ *
1056
+ * @method removeClass
1057
+ * @param {String} className the class name to remove from the node's class attribute
1058
+ */
1059
+ removeClass: function(className)
1060
+ {
1061
+ var node = this.node;
1062
+ Y_DOM.removeClass(node, className);
1063
+ },
1064
+
1065
+ /**
1066
+ * Gets the current position of the node in page coordinates.
1067
+ *
1068
+ * @method getXY
1069
+ * @return Array The XY position of the shape.
1070
+ */
1071
+ getXY: function()
1072
+ {
1073
+ var graphic = this._graphic,
1074
+ parentXY = graphic.getXY(),
1075
+ x = this.get("x"),
1076
+ y = this.get("y");
1077
+ return [parentXY[0] + x, parentXY[1] + y];
1078
+ },
1079
+
1080
+ /**
1081
+ * Set the position of the shape in page coordinates, regardless of how the node is positioned.
1082
+ *
1083
+ * @method setXY
1084
+ * @param {Array} Contains x & y values for new position (coordinates are page-based)
1085
+ *
1086
+ */
1087
+ setXY: function(xy)
1088
+ {
1089
+ var graphic = this._graphic,
1090
+ parentXY = graphic.getXY();
1091
+ this.set("x", xy[0] - parentXY[0]);
1092
+ this.set("y", xy[1] - parentXY[1]);
1093
+ },
1094
+
1095
+ /**
1096
+ * Determines whether the node is an ancestor of another HTML element in the DOM hierarchy.
1097
+ *
1098
+ * @method contains
1099
+ * @param {VMLShape | HTMLElement} needle The possible node or descendent
1100
+ * @return Boolean Whether or not this shape is the needle or its ancestor.
1101
+ */
1102
+ contains: function(needle)
1103
+ {
1104
+ var node = needle instanceof Y.Node ? needle._node : needle;
1105
+ return node === this.node;
1106
+ },
1107
+
1108
+ /**
1109
+ * Compares nodes to determine if they match.
1110
+ * Node instances can be compared to each other and/or HTMLElements.
1111
+ * @method compareTo
1112
+ * @param {HTMLElement | Node} refNode The reference node to compare to the node.
1113
+ * @return {Boolean} True if the nodes match, false if they do not.
1114
+ */
1115
+ compareTo: function(refNode) {
1116
+ var node = this.node;
1117
+ return node === refNode;
1118
+ },
1119
+
1120
+ /**
1121
+ * Test if the supplied node matches the supplied selector.
1122
+ *
1123
+ * @method test
1124
+ * @param {String} selector The CSS selector to test against.
1125
+ * @return Boolean Wheter or not the shape matches the selector.
1126
+ */
1127
+ test: function(selector)
1128
+ {
1129
+ return Y_SELECTOR.test(this.node, selector);
1130
+ },
1131
+
1132
+ /**
1133
+ * Calculates and returns properties for setting an initial stroke.
1134
+ *
1135
+ * @method _getStrokeProps
1136
+ * @return Object
1137
+ *
1138
+ * @private
1139
+ */
1140
+ _getStrokeProps: function()
1141
+ {
1142
+ var props,
1143
+ stroke = this.get("stroke"),
1144
+ strokeOpacity,
1145
+ dashstyle,
1146
+ dash = "",
1147
+ val,
1148
+ i = 0,
1149
+ len,
1150
+ linecap,
1151
+ linejoin;
1152
+ if(stroke && stroke.weight && stroke.weight > 0)
1153
+ {
1154
+ props = {};
1155
+ linecap = stroke.linecap || "flat";
1156
+ linejoin = stroke.linejoin || "round";
1157
+ if(linecap !== "round" && linecap !== "square")
1158
+ {
1159
+ linecap = "flat";
1160
+ }
1161
+ strokeOpacity = parseFloat(stroke.opacity);
1162
+ dashstyle = stroke.dashstyle || "none";
1163
+ stroke.color = stroke.color || "#000000";
1164
+ stroke.weight = stroke.weight || 1;
1165
+ stroke.opacity = IS_NUM(strokeOpacity) ? strokeOpacity : 1;
1166
+ props.stroked = true;
1167
+ props.color = stroke.color;
1168
+ props.weight = stroke.weight;
1169
+ props.endcap = linecap;
1170
+ props.opacity = stroke.opacity;
1171
+ if(IS_ARRAY(dashstyle))
1172
+ {
1173
+ dash = [];
1174
+ len = dashstyle.length;
1175
+ for(i = 0; i < len; ++i)
1176
+ {
1177
+ val = dashstyle[i];
1178
+ dash[i] = val / stroke.weight;
1179
+ }
1180
+ }
1181
+ if(linejoin === "round" || linejoin === "bevel")
1182
+ {
1183
+ props.joinstyle = linejoin;
1184
+ }
1185
+ else
1186
+ {
1187
+ linejoin = parseInt(linejoin, 10);
1188
+ if(IS_NUM(linejoin))
1189
+ {
1190
+ props.miterlimit = Math.max(linejoin, 1);
1191
+ props.joinstyle = "miter";
1192
+ }
1193
+ }
1194
+ props.dashstyle = dash;
1195
+ }
1196
+ return props;
1197
+ },
1198
+
1199
+ /**
1200
+ * Adds a stroke to the shape node.
1201
+ *
1202
+ * @method _strokeChangeHandler
1203
+ * @private
1204
+ */
1205
+ _strokeChangeHandler: function()
1206
+ {
1207
+ if(!this._strokeFlag)
1208
+ {
1209
+ return;
1210
+ }
1211
+ var node = this.node,
1212
+ stroke = this.get("stroke"),
1213
+ strokeOpacity,
1214
+ dashstyle,
1215
+ dash = "",
1216
+ val,
1217
+ i = 0,
1218
+ len,
1219
+ linecap,
1220
+ linejoin;
1221
+ if(stroke && stroke.weight && stroke.weight > 0)
1222
+ {
1223
+ linecap = stroke.linecap || "flat";
1224
+ linejoin = stroke.linejoin || "round";
1225
+ if(linecap !== "round" && linecap !== "square")
1226
+ {
1227
+ linecap = "flat";
1228
+ }
1229
+ strokeOpacity = parseFloat(stroke.opacity);
1230
+ dashstyle = stroke.dashstyle || "none";
1231
+ stroke.color = stroke.color || "#000000";
1232
+ stroke.weight = stroke.weight || 1;
1233
+ stroke.opacity = IS_NUM(strokeOpacity) ? strokeOpacity : 1;
1234
+ node.stroked = true;
1235
+ node.strokeColor = stroke.color;
1236
+ node.strokeWeight = stroke.weight + "px";
1237
+ if(!this._strokeNode)
1238
+ {
1239
+ this._strokeNode = this._createGraphicNode("stroke");
1240
+ node.appendChild(this._strokeNode);
1241
+ }
1242
+ this._strokeNode.endcap = linecap;
1243
+ this._strokeNode.opacity = stroke.opacity;
1244
+ if(IS_ARRAY(dashstyle))
1245
+ {
1246
+ dash = [];
1247
+ len = dashstyle.length;
1248
+ for(i = 0; i < len; ++i)
1249
+ {
1250
+ val = dashstyle[i];
1251
+ dash[i] = val / stroke.weight;
1252
+ }
1253
+ }
1254
+ if(linejoin === "round" || linejoin === "bevel")
1255
+ {
1256
+ this._strokeNode.joinstyle = linejoin;
1257
+ }
1258
+ else
1259
+ {
1260
+ linejoin = parseInt(linejoin, 10);
1261
+ if(IS_NUM(linejoin))
1262
+ {
1263
+ this._strokeNode.miterlimit = Math.max(linejoin, 1);
1264
+ this._strokeNode.joinstyle = "miter";
1265
+ }
1266
+ }
1267
+ this._strokeNode.dashstyle = dash;
1268
+ this._strokeNode.on = true;
1269
+ }
1270
+ else
1271
+ {
1272
+ if(this._strokeNode)
1273
+ {
1274
+ this._strokeNode.on = false;
1275
+ }
1276
+ node.stroked = false;
1277
+ }
1278
+ this._strokeFlag = false;
1279
+ },
1280
+
1281
+ /**
1282
+ * Calculates and returns properties for setting an initial fill.
1283
+ *
1284
+ * @method _getFillProps
1285
+ * @return Object
1286
+ *
1287
+ * @private
1288
+ */
1289
+ _getFillProps: function()
1290
+ {
1291
+ var fill = this.get("fill"),
1292
+ fillOpacity,
1293
+ props,
1294
+ gradient,
1295
+ i,
1296
+ fillstring,
1297
+ filled = false;
1298
+ if(fill)
1299
+ {
1300
+ props = {};
1301
+
1302
+ if(fill.type === "radial" || fill.type === "linear")
1303
+ {
1304
+ fillOpacity = parseFloat(fill.opacity);
1305
+ fillOpacity = IS_NUM(fillOpacity) ? fillOpacity : 1;
1306
+ filled = true;
1307
+ gradient = this._getGradientFill(fill);
1308
+ fillstring = '<fill xmlns="urn:schemas-microsft.com:vml"' +
1309
+ ' class="vmlfill" style="behavior:url(#default#VML);display:inline-block;"' +
1310
+ ' opacity="' + fillOpacity + '"';
1311
+ for(i in gradient)
1312
+ {
1313
+ if(gradient.hasOwnProperty(i))
1314
+ {
1315
+ fillstring += ' ' + i + '="' + gradient[i] + '"';
1316
+ }
1317
+ }
1318
+ fillstring += ' />';
1319
+ props.node = fillstring;
1320
+ }
1321
+ else if(fill.color)
1322
+ {
1323
+ fillOpacity = parseFloat(fill.opacity);
1324
+ filled = true;
1325
+ props.color = fill.color;
1326
+ if(IS_NUM(fillOpacity))
1327
+ {
1328
+ fillOpacity = Math.max(Math.min(fillOpacity, 1), 0);
1329
+ props.opacity = fillOpacity;
1330
+ if(fillOpacity < 1)
1331
+ {
1332
+ props.node = '<fill xmlns="urn:schemas-microsft.com:vml"' +
1333
+ ' class="vmlfill" style="behavior:url(#default#VML);display:inline-block;"' +
1334
+ ' type="solid" opacity="' + fillOpacity + '"/>';
1335
+ }
1336
+ }
1337
+ }
1338
+ props.filled = filled;
1339
+ }
1340
+ return props;
1341
+ },
1342
+
1343
+ /**
1344
+ * Adds a fill to the shape node.
1345
+ *
1346
+ * @method _fillChangeHandler
1347
+ * @private
1348
+ */
1349
+ _fillChangeHandler: function()
1350
+ {
1351
+ if(!this._fillFlag)
1352
+ {
1353
+ return;
1354
+ }
1355
+ var node = this.node,
1356
+ fill = this.get("fill"),
1357
+ fillOpacity,
1358
+ fillstring,
1359
+ filled = false,
1360
+ i,
1361
+ gradient;
1362
+ if(fill)
1363
+ {
1364
+ if(fill.type === "radial" || fill.type === "linear")
1365
+ {
1366
+ filled = true;
1367
+ gradient = this._getGradientFill(fill);
1368
+ if(this._fillNode)
1369
+ {
1370
+ for(i in gradient)
1371
+ {
1372
+ if(gradient.hasOwnProperty(i))
1373
+ {
1374
+ if(i === "colors")
1375
+ {
1376
+ this._fillNode.colors.value = gradient[i];
1377
+ }
1378
+ else
1379
+ {
1380
+ this._fillNode[i] = gradient[i];
1381
+ }
1382
+ }
1383
+ }
1384
+ }
1385
+ else
1386
+ {
1387
+ fillstring = '<fill xmlns="urn:schemas-microsft.com:vml"' +
1388
+ ' class="vmlfill"' +
1389
+ ' style="behavior:url(#default#VML);display:inline-block;"';
1390
+ for(i in gradient)
1391
+ {
1392
+ if(gradient.hasOwnProperty(i))
1393
+ {
1394
+ fillstring += ' ' + i + '="' + gradient[i] + '"';
1395
+ }
1396
+ }
1397
+ fillstring += ' />';
1398
+ this._fillNode = DOCUMENT.createElement(fillstring);
1399
+ node.appendChild(this._fillNode);
1400
+ }
1401
+ }
1402
+ else if(fill.color)
1403
+ {
1404
+ node.fillcolor = fill.color;
1405
+ fillOpacity = parseFloat(fill.opacity);
1406
+ filled = true;
1407
+ if(IS_NUM(fillOpacity) && fillOpacity < 1)
1408
+ {
1409
+ fill.opacity = fillOpacity;
1410
+ if(this._fillNode)
1411
+ {
1412
+ if(this._fillNode.getAttribute("type") !== "solid")
1413
+ {
1414
+ this._fillNode.type = "solid";
1415
+ }
1416
+ this._fillNode.opacity = fillOpacity;
1417
+ }
1418
+ else
1419
+ {
1420
+ fillstring = '<fill xmlns="urn:schemas-microsft.com:vml"' +
1421
+ ' class="vmlfill"' +
1422
+ ' style="behavior:url(#default#VML);display:inline-block;"' +
1423
+ ' type="solid"' +
1424
+ ' opacity="' + fillOpacity + '"' +
1425
+ '/>';
1426
+ this._fillNode = DOCUMENT.createElement(fillstring);
1427
+ node.appendChild(this._fillNode);
1428
+ }
1429
+ }
1430
+ else if(this._fillNode)
1431
+ {
1432
+ this._fillNode.opacity = 1;
1433
+ this._fillNode.type = "solid";
1434
+ }
1435
+ }
1436
+ }
1437
+ node.filled = filled;
1438
+ this._fillFlag = false;
1439
+ },
1440
+
1441
+ //not used. remove next release.
1442
+ _updateFillNode: function(node)
1443
+ {
1444
+ if(!this._fillNode)
1445
+ {
1446
+ this._fillNode = this._createGraphicNode("fill");
1447
+ node.appendChild(this._fillNode);
1448
+ }
1449
+ },
1450
+
1451
+ /**
1452
+ * Calculates and returns an object containing gradient properties for a fill node.
1453
+ *
1454
+ * @method _getGradientFill
1455
+ * @param {Object} fill Object containing fill properties.
1456
+ * @return Object
1457
+ * @private
1458
+ */
1459
+ _getGradientFill: function(fill)
1460
+ {
1461
+ var gradientProps = {},
1462
+ gradientBoxWidth,
1463
+ gradientBoxHeight,
1464
+ type = fill.type,
1465
+ w = this.get("width"),
1466
+ h = this.get("height"),
1467
+ isNumber = IS_NUM,
1468
+ stop,
1469
+ stops = fill.stops,
1470
+ len = stops.length,
1471
+ opacity,
1472
+ color,
1473
+ i,
1474
+ oi,
1475
+ colorstring = "",
1476
+ cx = fill.cx,
1477
+ cy = fill.cy,
1478
+ fx = fill.fx,
1479
+ fy = fill.fy,
1480
+ r = fill.r,
1481
+ pct,
1482
+ rotation = fill.rotation || 0;
1483
+ if(type === "linear")
1484
+ {
1485
+ if(rotation <= 270)
1486
+ {
1487
+ rotation = Math.abs(rotation - 270);
1488
+ }
1489
+ else if(rotation < 360)
1490
+ {
1491
+ rotation = 270 + (360 - rotation);
1492
+ }
1493
+ else
1494
+ {
1495
+ rotation = 270;
1496
+ }
1497
+ gradientProps.type = "gradient";//"gradientunscaled";
1498
+ gradientProps.angle = rotation;
1499
+ }
1500
+ else if(type === "radial")
1501
+ {
1502
+ gradientBoxWidth = w * (r * 2);
1503
+ gradientBoxHeight = h * (r * 2);
1504
+ fx = r * 2 * (fx - 0.5);
1505
+ fy = r * 2 * (fy - 0.5);
1506
+ fx += cx;
1507
+ fy += cy;
1508
+ gradientProps.focussize = (gradientBoxWidth/w)/10 + "% " + (gradientBoxHeight/h)/10 + "%";
1509
+ gradientProps.alignshape = false;
1510
+ gradientProps.type = "gradientradial";
1511
+ gradientProps.focus = "100%";
1512
+ gradientProps.focusposition = Math.round(fx * 100) + "% " + Math.round(fy * 100) + "%";
1513
+ }
1514
+ for(i = 0;i < len; ++i) {
1515
+ stop = stops[i];
1516
+ color = stop.color;
1517
+ opacity = stop.opacity;
1518
+ opacity = isNumber(opacity) ? opacity : 1;
1519
+ pct = stop.offset || i/(len-1);
1520
+ pct *= (r * 2);
1521
+ pct = Math.round(100 * pct) + "%";
1522
+ oi = i > 0 ? i + 1 : "";
1523
+ gradientProps["opacity" + oi] = opacity + "";
1524
+ colorstring += ", " + pct + " " + color;
1525
+ }
1526
+ if(parseFloat(pct) < 100)
1527
+ {
1528
+ colorstring += ", 100% " + color;
1529
+ }
1530
+ gradientProps.colors = colorstring.substr(2);
1531
+ return gradientProps;
1532
+ },
1533
+
1534
+ /**
1535
+ * Adds a transform to the shape.
1536
+ *
1537
+ * @method _addTransform
1538
+ * @param {String} type The transform being applied.
1539
+ * @param {Array} args The arguments for the transform.
1540
+ * @private
1541
+ */
1542
+ _addTransform: function(type, args)
1543
+ {
1544
+ args = Y.Array(args);
1545
+ this._transform = Y_LANG.trim(this._transform + " " + type + "(" + args.join(", ") + ")");
1546
+ args.unshift(type);
1547
+ this._transforms.push(args);
1548
+ if(this.initialized)
1549
+ {
1550
+ this._updateTransform();
1551
+ }
1552
+ },
1553
+
1554
+ /**
1555
+ * Applies all transforms.
1556
+ *
1557
+ * @method _updateTransform
1558
+ * @private
1559
+ */
1560
+ _updateTransform: function()
1561
+ {
1562
+ var node = this.node,
1563
+ key,
1564
+ transform,
1565
+ transformOrigin,
1566
+ x = this.get("x"),
1567
+ y = this.get("y"),
1568
+ tx,
1569
+ ty,
1570
+ matrix = this.matrix,
1571
+ normalizedMatrix = this._normalizedMatrix,
1572
+ isPathShape = this instanceof Y.VMLPath,
1573
+ i,
1574
+ len = this._transforms.length;
1575
+ if(this._transforms && this._transforms.length > 0)
1576
+ {
1577
+ transformOrigin = this.get("transformOrigin");
1578
+
1579
+ if(isPathShape)
1580
+ {
1581
+ normalizedMatrix.translate(this._left, this._top);
1582
+ }
1583
+ //vml skew matrix transformOrigin ranges from -0.5 to 0.5.
1584
+ //subtract 0.5 from values
1585
+ tx = transformOrigin[0] - 0.5;
1586
+ ty = transformOrigin[1] - 0.5;
1587
+
1588
+ //ensure the values are within the appropriate range to avoid errors
1589
+ tx = Math.max(-0.5, Math.min(0.5, tx));
1590
+ ty = Math.max(-0.5, Math.min(0.5, ty));
1591
+ for(i = 0; i < len; ++i)
1592
+ {
1593
+ key = this._transforms[i].shift();
1594
+ if(key)
1595
+ {
1596
+ normalizedMatrix[key].apply(normalizedMatrix, this._transforms[i]);
1597
+ matrix[key].apply(matrix, this._transforms[i]);
1598
+ }
1599
+ }
1600
+ if(isPathShape)
1601
+ {
1602
+ normalizedMatrix.translate(-this._left, -this._top);
1603
+ }
1604
+ transform = normalizedMatrix.a + "," +
1605
+ normalizedMatrix.c + "," +
1606
+ normalizedMatrix.b + "," +
1607
+ normalizedMatrix.d + "," +
1608
+ 0 + "," +
1609
+ 0;
1610
+ }
1611
+ this._graphic.addToRedrawQueue(this);
1612
+ if(transform)
1613
+ {
1614
+ if(!this._skew)
1615
+ {
1616
+ this._skew = DOCUMENT.createElement(
1617
+ '<skew class="vmlskew"' +
1618
+ ' xmlns="urn:schemas-microsft.com:vml"' +
1619
+ ' on="false"' +
1620
+ ' style="behavior:url(#default#VML);display:inline-block;"' +
1621
+ '/>'
1622
+ );
1623
+ this.node.appendChild(this._skew);
1624
+ }
1625
+ this._skew.matrix = transform;
1626
+ this._skew.on = true;
1627
+ //this._skew.offset = this._getSkewOffsetValue(normalizedMatrix.dx) + "px, " + this._getSkewOffsetValue(normalizedMatrix.dy) + "px";
1628
+ this._skew.origin = tx + ", " + ty;
1629
+ }
1630
+ if(this._type !== "path")
1631
+ {
1632
+ this._transforms = [];
1633
+ }
1634
+ //add the translate to the x and y coordinates
1635
+ node.style.left = (x + this._getSkewOffsetValue(normalizedMatrix.dx)) + "px";
1636
+ node.style.top = (y + this._getSkewOffsetValue(normalizedMatrix.dy)) + "px";
1637
+ },
1638
+
1639
+ /**
1640
+ * Normalizes the skew offset values between -32767 and 32767.
1641
+ *
1642
+ * @method _getSkewOffsetValue
1643
+ * @param {Number} val The value to normalize
1644
+ * @return Number
1645
+ * @private
1646
+ */
1647
+ _getSkewOffsetValue: function(val)
1648
+ {
1649
+ var sign = Y.MatrixUtil.sign(val),
1650
+ absVal = Math.abs(val);
1651
+ val = Math.min(absVal, 32767) * sign;
1652
+ return val;
1653
+ },
1654
+
1655
+ /**
1656
+ * Storage for translateX
1657
+ *
1658
+ * @property _translateX
1659
+ * @type Number
1660
+ * @private
1661
+ */
1662
+ _translateX: 0,
1663
+
1664
+ /**
1665
+ * Storage for translateY
1666
+ *
1667
+ * @property _translateY
1668
+ * @type Number
1669
+ * @private
1670
+ */
1671
+ _translateY: 0,
1672
+
1673
+ /**
1674
+ * Storage for the transform attribute.
1675
+ *
1676
+ * @property _transform
1677
+ * @type String
1678
+ * @private
1679
+ */
1680
+ _transform: "",
1681
+
1682
+ /**
1683
+ * Specifies a 2d translation.
1684
+ *
1685
+ * @method translate
1686
+ * @param {Number} x The value to translate on the x-axis.
1687
+ * @param {Number} y The value to translate on the y-axis.
1688
+ */
1689
+ translate: function(x, y)
1690
+ {
1691
+ this._translateX += x;
1692
+ this._translateY += y;
1693
+ this._addTransform("translate", arguments);
1694
+ },
1695
+
1696
+ /**
1697
+ * Translates the shape along the x-axis. When translating x and y coordinates,
1698
+ * use the `translate` method.
1699
+ *
1700
+ * @method translateX
1701
+ * @param {Number} x The value to translate.
1702
+ */
1703
+ translateX: function(x)
1704
+ {
1705
+ this._translateX += x;
1706
+ this._addTransform("translateX", arguments);
1707
+ },
1708
+
1709
+ /**
1710
+ * Performs a translate on the y-coordinate. When translating x and y coordinates,
1711
+ * use the `translate` method.
1712
+ *
1713
+ * @method translateY
1714
+ * @param {Number} y The value to translate.
1715
+ */
1716
+ translateY: function(y)
1717
+ {
1718
+ this._translateY += y;
1719
+ this._addTransform("translateY", arguments);
1720
+ },
1721
+
1722
+ /**
1723
+ * Skews the shape around the x-axis and y-axis.
1724
+ *
1725
+ * @method skew
1726
+ * @param {Number} x The value to skew on the x-axis.
1727
+ * @param {Number} y The value to skew on the y-axis.
1728
+ */
1729
+ skew: function()
1730
+ {
1731
+ this._addTransform("skew", arguments);
1732
+ },
1733
+
1734
+ /**
1735
+ * Skews the shape around the x-axis.
1736
+ *
1737
+ * @method skewX
1738
+ * @param {Number} x x-coordinate
1739
+ */
1740
+ skewX: function()
1741
+ {
1742
+ this._addTransform("skewX", arguments);
1743
+ },
1744
+
1745
+ /**
1746
+ * Skews the shape around the y-axis.
1747
+ *
1748
+ * @method skewY
1749
+ * @param {Number} y y-coordinate
1750
+ */
1751
+ skewY: function()
1752
+ {
1753
+ this._addTransform("skewY", arguments);
1754
+ },
1755
+
1756
+ /**
1757
+ * Rotates the shape clockwise around it transformOrigin.
1758
+ *
1759
+ * @method rotate
1760
+ * @param {Number} deg The degree of the rotation.
1761
+ */
1762
+ rotate: function()
1763
+ {
1764
+ this._addTransform("rotate", arguments);
1765
+ },
1766
+
1767
+ /**
1768
+ * Specifies a 2d scaling operation.
1769
+ *
1770
+ * @method scale
1771
+ * @param {Number} val
1772
+ */
1773
+ scale: function()
1774
+ {
1775
+ this._addTransform("scale", arguments);
1776
+ },
1777
+
1778
+ /**
1779
+ * Overrides default `on` method. Checks to see if its a dom interaction event. If so,
1780
+ * return an event attached to the `node` element. If not, return the normal functionality.
1781
+ *
1782
+ * @method on
1783
+ * @param {String} type event type
1784
+ * @param {Object} callback function
1785
+ * @private
1786
+ */
1787
+ on: function(type, fn)
1788
+ {
1789
+ if(Y.Node.DOM_EVENTS[type])
1790
+ {
1791
+ return Y.on(type, fn, "#" + this.get("id"));
1792
+ }
1793
+ return Y.on.apply(this, arguments);
1794
+ },
1795
+
1796
+ /**
1797
+ * Draws the shape.
1798
+ *
1799
+ * @method _draw
1800
+ * @private
1801
+ */
1802
+ _draw: function()
1803
+ {
1804
+ },
1805
+
1806
+ /**
1807
+ * Updates `Shape` based on attribute changes.
1808
+ *
1809
+ * @method _updateHandler
1810
+ * @private
1811
+ */
1812
+ _updateHandler: function()
1813
+ {
1814
+ var host = this,
1815
+ node = host.node;
1816
+ host._fillChangeHandler();
1817
+ host._strokeChangeHandler();
1818
+ node.style.width = this.get("width") + "px";
1819
+ node.style.height = this.get("height") + "px";
1820
+ this._draw();
1821
+ host._updateTransform();
1822
+ },
1823
+
1824
+ /**
1825
+ * Creates a graphic node
1826
+ *
1827
+ * @method _createGraphicNode
1828
+ * @param {String} type node type to create
1829
+ * @return HTMLElement
1830
+ * @private
1831
+ */
1832
+ _createGraphicNode: function(type)
1833
+ {
1834
+ type = type || this._type;
1835
+ return DOCUMENT.createElement(
1836
+ '<' + type +
1837
+ ' xmlns="urn:schemas-microsft.com:vml"' +
1838
+ ' style="behavior:url(#default#VML);display:inline-block;"' +
1839
+ ' class="vml' + type + '"' +
1840
+ '/>'
1841
+ );
1842
+ },
1843
+
1844
+ /**
1845
+ * Value function for fill attribute
1846
+ *
1847
+ * @private
1848
+ * @method _getDefaultFill
1849
+ * @return Object
1850
+ */
1851
+ _getDefaultFill: function() {
1852
+ return {
1853
+ type: "solid",
1854
+ opacity: 1,
1855
+ cx: 0.5,
1856
+ cy: 0.5,
1857
+ fx: 0.5,
1858
+ fy: 0.5,
1859
+ r: 0.5
1860
+ };
1861
+ },
1862
+
1863
+ /**
1864
+ * Value function for stroke attribute
1865
+ *
1866
+ * @private
1867
+ * @method _getDefaultStroke
1868
+ * @return Object
1869
+ */
1870
+ _getDefaultStroke: function()
1871
+ {
1872
+ return {
1873
+ weight: 1,
1874
+ dashstyle: "none",
1875
+ color: "#000",
1876
+ opacity: 1.0
1877
+ };
1878
+ },
1879
+
1880
+ /**
1881
+ * Sets the value of an attribute.
1882
+ *
1883
+ * @method set
1884
+ * @param {String|Object} name The name of the attribute. Alternatively, an object of key value pairs can
1885
+ * be passed in to set multiple attributes at once.
1886
+ * @param {Any} value The value to set the attribute to. This value is ignored if an object is received as
1887
+ * the name param.
1888
+ */
1889
+ set: function()
1890
+ {
1891
+ var host = this;
1892
+ AttributeLite.prototype.set.apply(host, arguments);
1893
+ if(host.initialized)
1894
+ {
1895
+ host._updateHandler();
1896
+ }
1897
+ },
1898
+
1899
+ /**
1900
+ * Returns the bounds for a shape.
1901
+ *
1902
+ * Calculates the a new bounding box from the original corner coordinates (base on size and position) and the transform matrix.
1903
+ * The calculated bounding box is used by the graphic instance to calculate its viewBox.
1904
+ *
1905
+ * @method getBounds
1906
+ * @return Object
1907
+ */
1908
+ getBounds: function()
1909
+ {
1910
+ var isPathShape = this instanceof Y.VMLPath,
1911
+ w = this.get("width"),
1912
+ h = this.get("height"),
1913
+ x = this.get("x"),
1914
+ y = this.get("y");
1915
+ if(isPathShape)
1916
+ {
1917
+ x = x + this._left;
1918
+ y = y + this._top;
1919
+ w = this._right - this._left;
1920
+ h = this._bottom - this._top;
1921
+ }
1922
+ return this._getContentRect(w, h, x, y);
1923
+ },
1924
+
1925
+ /**
1926
+ * Calculates the bounding box for the shape.
1927
+ *
1928
+ * @method _getContentRect
1929
+ * @param {Number} w width of the shape
1930
+ * @param {Number} h height of the shape
1931
+ * @param {Number} x x-coordinate of the shape
1932
+ * @param {Number} y y-coordinate of the shape
1933
+ * @private
1934
+ */
1935
+ _getContentRect: function(w, h, x, y)
1936
+ {
1937
+ var transformOrigin = this.get("transformOrigin"),
1938
+ transformX = transformOrigin[0] * w,
1939
+ transformY = transformOrigin[1] * h,
1940
+ transforms = this.matrix.getTransformArray(this.get("transform")),
1941
+ matrix = new Y.Matrix(),
1942
+ i,
1943
+ len = transforms.length,
1944
+ transform,
1945
+ key,
1946
+ contentRect,
1947
+ isPathShape = this instanceof Y.VMLPath;
1948
+ if(isPathShape)
1949
+ {
1950
+ matrix.translate(this._left, this._top);
1951
+ }
1952
+ transformX = !isNaN(transformX) ? transformX : 0;
1953
+ transformY = !isNaN(transformY) ? transformY : 0;
1954
+ matrix.translate(transformX, transformY);
1955
+ for(i = 0; i < len; i = i + 1)
1956
+ {
1957
+ transform = transforms[i];
1958
+ key = transform.shift();
1959
+ if(key)
1960
+ {
1961
+ matrix[key].apply(matrix, transform);
1962
+ }
1963
+ }
1964
+ matrix.translate(-transformX, -transformY);
1965
+ if(isPathShape)
1966
+ {
1967
+ matrix.translate(-this._left, -this._top);
1968
+ }
1969
+ contentRect = matrix.getContentRect(w, h, x, y);
1970
+ return contentRect;
1971
+ },
1972
+
1973
+ /**
1974
+ * Places the shape above all other shapes.
1975
+ *
1976
+ * @method toFront
1977
+ */
1978
+ toFront: function()
1979
+ {
1980
+ var graphic = this.get("graphic");
1981
+ if(graphic)
1982
+ {
1983
+ graphic._toFront(this);
1984
+ }
1985
+ },
1986
+
1987
+ /**
1988
+ * Places the shape underneath all other shapes.
1989
+ *
1990
+ * @method toFront
1991
+ */
1992
+ toBack: function()
1993
+ {
1994
+ var graphic = this.get("graphic");
1995
+ if(graphic)
1996
+ {
1997
+ graphic._toBack(this);
1998
+ }
1999
+ },
2000
+
2001
+ /**
2002
+ * Parses path data string and call mapped methods.
2003
+ *
2004
+ * @method _parsePathData
2005
+ * @param {String} val The path data
2006
+ * @private
2007
+ */
2008
+ _parsePathData: function(val)
2009
+ {
2010
+ var method,
2011
+ methodSymbol,
2012
+ args,
2013
+ commandArray = Y.Lang.trim(val.match(SPLITPATHPATTERN)),
2014
+ i,
2015
+ len,
2016
+ str,
2017
+ symbolToMethod = this._pathSymbolToMethod;
2018
+ if(commandArray)
2019
+ {
2020
+ this.clear();
2021
+ len = commandArray.length || 0;
2022
+ for(i = 0; i < len; i = i + 1)
2023
+ {
2024
+ str = commandArray[i];
2025
+ methodSymbol = str.substr(0, 1);
2026
+ args = str.substr(1).match(SPLITARGSPATTERN);
2027
+ method = symbolToMethod[methodSymbol];
2028
+ if(method)
2029
+ {
2030
+ if(args)
2031
+ {
2032
+ this[method].apply(this, args);
2033
+ }
2034
+ else
2035
+ {
2036
+ this[method].apply(this);
2037
+ }
2038
+ }
2039
+ }
2040
+ this.end();
2041
+ }
2042
+ },
2043
+
2044
+ /**
2045
+ * Destroys shape
2046
+ *
2047
+ * @method destroy
2048
+ */
2049
+ destroy: function()
2050
+ {
2051
+ var graphic = this.get("graphic");
2052
+ if(graphic)
2053
+ {
2054
+ graphic.removeShape(this);
2055
+ }
2056
+ else
2057
+ {
2058
+ this._destroy();
2059
+ }
2060
+ },
2061
+
2062
+ /**
2063
+ * Implementation for shape destruction
2064
+ *
2065
+ * @method destroy
2066
+ * @protected
2067
+ */
2068
+ _destroy: function()
2069
+ {
2070
+ if(this.node)
2071
+ {
2072
+ if(this._fillNode)
2073
+ {
2074
+ this.node.removeChild(this._fillNode);
2075
+ this._fillNode = null;
2076
+ }
2077
+ if(this._strokeNode)
2078
+ {
2079
+ this.node.removeChild(this._strokeNode);
2080
+ this._strokeNode = null;
2081
+ }
2082
+ Y.Event.purgeElement(this.node, true);
2083
+ if(this.node.parentNode)
2084
+ {
2085
+ this.node.parentNode.removeChild(this.node);
2086
+ }
2087
+ this.node = null;
2088
+ }
2089
+ }
2090
+ }, Y.VMLDrawing.prototype));
2091
+
2092
+ VMLShape.ATTRS = {
2093
+ /**
2094
+ * An array of x, y values which indicates the transformOrigin in which to rotate the shape. Valid values range between 0 and 1 representing a
2095
+ * fraction of the shape's corresponding bounding box dimension. The default value is [0.5, 0.5].
2096
+ *
2097
+ * @config transformOrigin
2098
+ * @type Array
2099
+ */
2100
+ transformOrigin: {
2101
+ valueFn: function()
2102
+ {
2103
+ return [0.5, 0.5];
2104
+ }
2105
+ },
2106
+
2107
+ /**
2108
+ * <p>A string containing, in order, transform operations applied to the shape instance. The `transform` string can contain the following values:
2109
+ *
2110
+ * <dl>
2111
+ * <dt>rotate</dt><dd>Rotates the shape clockwise around it transformOrigin.</dd>
2112
+ * <dt>translate</dt><dd>Specifies a 2d translation.</dd>
2113
+ * <dt>skew</dt><dd>Skews the shape around the x-axis and y-axis.</dd>
2114
+ * <dt>scale</dt><dd>Specifies a 2d scaling operation.</dd>
2115
+ * <dt>translateX</dt><dd>Translates the shape along the x-axis.</dd>
2116
+ * <dt>translateY</dt><dd>Translates the shape along the y-axis.</dd>
2117
+ * <dt>skewX</dt><dd>Skews the shape around the x-axis.</dd>
2118
+ * <dt>skewY</dt><dd>Skews the shape around the y-axis.</dd>
2119
+ * <dt>matrix</dt><dd>Specifies a 2D transformation matrix comprised of the specified six values.</dd>
2120
+ * </dl>
2121
+ * </p>
2122
+ * <p>Applying transforms through the transform attribute will reset the transform matrix and apply a new transform. The shape class also contains
2123
+ * corresponding methods for each transform that will apply the transform to the current matrix. The below code illustrates how you might use the
2124
+ * `transform` attribute to instantiate a recangle with a rotation of 45 degrees.</p>
2125
+ var myRect = new Y.Rect({
2126
+ type:"rect",
2127
+ width: 50,
2128
+ height: 40,
2129
+ transform: "rotate(45)"
2130
+ };
2131
+ * <p>The code below would apply `translate` and `rotate` to an existing shape.</p>
2132
+
2133
+ myRect.set("transform", "translate(40, 50) rotate(45)");
2134
+ * @config transform
2135
+ * @type String
2136
+ */
2137
+ transform: {
2138
+ setter: function(val)
2139
+ {
2140
+ var i,
2141
+ len,
2142
+ transform;
2143
+ this.matrix.init();
2144
+ this._normalizedMatrix.init();
2145
+ this._transforms = this.matrix.getTransformArray(val);
2146
+ len = this._transforms.length;
2147
+ for(i = 0;i < len; ++i)
2148
+ {
2149
+ transform = this._transforms[i];
2150
+ }
2151
+ this._transform = val;
2152
+ return val;
2153
+ },
2154
+
2155
+ getter: function()
2156
+ {
2157
+ return this._transform;
2158
+ }
2159
+ },
2160
+
2161
+ /**
2162
+ * Indicates the x position of shape.
2163
+ *
2164
+ * @config x
2165
+ * @type Number
2166
+ */
2167
+ x: {
2168
+ value: 0
2169
+ },
2170
+
2171
+ /**
2172
+ * Indicates the y position of shape.
2173
+ *
2174
+ * @config y
2175
+ * @type Number
2176
+ */
2177
+ y: {
2178
+ value: 0
2179
+ },
2180
+
2181
+ /**
2182
+ * Unique id for class instance.
2183
+ *
2184
+ * @config id
2185
+ * @type String
2186
+ */
2187
+ id: {
2188
+ valueFn: function()
2189
+ {
2190
+ return Y.guid();
2191
+ },
2192
+
2193
+ setter: function(val)
2194
+ {
2195
+ var node = this.node;
2196
+ if(node)
2197
+ {
2198
+ node.setAttribute("id", val);
2199
+ }
2200
+ return val;
2201
+ }
2202
+ },
2203
+
2204
+ /**
2205
+ *
2206
+ * @config width
2207
+ */
2208
+ width: {
2209
+ value: 0
2210
+ },
2211
+
2212
+ /**
2213
+ *
2214
+ * @config height
2215
+ */
2216
+ height: {
2217
+ value: 0
2218
+ },
2219
+
2220
+ /**
2221
+ * Indicates whether the shape is visible.
2222
+ *
2223
+ * @config visible
2224
+ * @type Boolean
2225
+ */
2226
+ visible: {
2227
+ value: true,
2228
+
2229
+ setter: function(val){
2230
+ var node = this.node,
2231
+ visibility = val ? "visible" : "hidden";
2232
+ if(node)
2233
+ {
2234
+ node.style.visibility = visibility;
2235
+ }
2236
+ return val;
2237
+ }
2238
+ },
2239
+
2240
+ /**
2241
+ * Contains information about the fill of the shape.
2242
+ * <dl>
2243
+ * <dt>color</dt><dd>The color of the fill.</dd>
2244
+ * <dt>opacity</dt><dd>Number between 0 and 1 that indicates the opacity of the fill. The default value is 1.</dd>
2245
+ * <dt>type</dt><dd>Type of fill.
2246
+ * <dl>
2247
+ * <dt>solid</dt><dd>Solid single color fill. (default)</dd>
2248
+ * <dt>linear</dt><dd>Linear gradient fill.</dd>
2249
+ * <dt>radial</dt><dd>Radial gradient fill.</dd>
2250
+ * </dl>
2251
+ * </dd>
2252
+ * </dl>
2253
+ * <p>If a `linear` or `radial` is specified as the fill type. The following additional property is used:
2254
+ * <dl>
2255
+ * <dt>stops</dt><dd>An array of objects containing the following properties:
2256
+ * <dl>
2257
+ * <dt>color</dt><dd>The color of the stop.</dd>
2258
+ * <dt>opacity</dt><dd>Number between 0 and 1 that indicates the opacity of the stop. The default value is 1.
2259
+ * Note: No effect for IE 6 - 8</dd>
2260
+ * <dt>offset</dt><dd>Number between 0 and 1 indicating where the color stop is positioned.</dd>
2261
+ * </dl>
2262
+ * </dd>
2263
+ * <p>Linear gradients also have the following property:</p>
2264
+ * <dt>rotation</dt><dd>Linear gradients flow left to right by default. The rotation property allows you to change the
2265
+ * flow by rotation. (e.g. A rotation of 180 would make the gradient pain from right to left.)</dd>
2266
+ * <p>Radial gradients have the following additional properties:</p>
2267
+ * <dt>r</dt><dd>Radius of the gradient circle.</dd>
2268
+ * <dt>fx</dt><dd>Focal point x-coordinate of the gradient.</dd>
2269
+ * <dt>fy</dt><dd>Focal point y-coordinate of the gradient.</dd>
2270
+ * </dl>
2271
+ * <p>The corresponding `SVGShape` class implements the following additional properties.</p>
2272
+ * <dl>
2273
+ * <dt>cx</dt><dd>
2274
+ * <p>The x-coordinate of the center of the gradient circle. Determines where the color stop begins. The default value 0.5.</p>
2275
+ * <p><strong>Note: </strong>Currently, this property is not implemented for corresponding `CanvasShape` and
2276
+ * `VMLShape` classes which are used on Android or IE 6 - 8.</p>
2277
+ * </dd>
2278
+ * <dt>cy</dt><dd>
2279
+ * <p>The y-coordinate of the center of the gradient circle. Determines where the color stop begins. The default value 0.5.</p>
2280
+ * <p><strong>Note: </strong>Currently, this property is not implemented for corresponding `CanvasShape` and `VMLShape`
2281
+ * classes which are used on Android or IE 6 - 8.</p>
2282
+ * </dd>
2283
+ * </dl>
2284
+ * <p>These properties are not currently implemented in `CanvasShape` or `VMLShape`.</p>
2285
+ *
2286
+ * @config fill
2287
+ * @type Object
2288
+ */
2289
+ fill: {
2290
+ valueFn: "_getDefaultFill",
2291
+
2292
+ setter: function(val)
2293
+ {
2294
+ var i,
2295
+ fill,
2296
+ tmpl = this.get("fill") || this._getDefaultFill();
2297
+
2298
+ if(val)
2299
+ {
2300
+ //ensure, fill type is solid if color is explicitly passed.
2301
+ if(val.hasOwnProperty("color"))
2302
+ {
2303
+ val.type = "solid";
2304
+ }
2305
+ for(i in val)
2306
+ {
2307
+ if(val.hasOwnProperty(i))
2308
+ {
2309
+ tmpl[i] = val[i];
2310
+ }
2311
+ }
2312
+ }
2313
+ fill = tmpl;
2314
+ if(fill && fill.color)
2315
+ {
2316
+ if(fill.color === undefined || fill.color === "none")
2317
+ {
2318
+ fill.color = null;
2319
+ }
2320
+ else
2321
+ {
2322
+ if(fill.color.toLowerCase().indexOf("rgba") > -1)
2323
+ {
2324
+ fill.opacity = Y.Color._getAlpha(fill.color);
2325
+ fill.color = Y.Color.toHex(fill.color);
2326
+ }
2327
+ }
2328
+ }
2329
+ this._fillFlag = true;
2330
+ return fill;
2331
+ }
2332
+ },
2333
+
2334
+ /**
2335
+ * Contains information about the stroke of the shape.
2336
+ * <dl>
2337
+ * <dt>color</dt><dd>The color of the stroke.</dd>
2338
+ * <dt>weight</dt><dd>Number that indicates the width of the stroke.</dd>
2339
+ * <dt>opacity</dt><dd>Number between 0 and 1 that indicates the opacity of the stroke. The default value is 1.</dd>
2340
+ * <dt>dashstyle</dt>Indicates whether to draw a dashed stroke. When set to "none", a solid stroke is drawn. When set
2341
+ * to an array, the first index indicates the length of the dash. The second index indicates the length of gap.
2342
+ * <dt>linecap</dt><dd>Specifies the linecap for the stroke. The following values can be specified:
2343
+ * <dl>
2344
+ * <dt>butt (default)</dt><dd>Specifies a butt linecap.</dd>
2345
+ * <dt>square</dt><dd>Specifies a sqare linecap.</dd>
2346
+ * <dt>round</dt><dd>Specifies a round linecap.</dd>
2347
+ * </dl>
2348
+ * </dd>
2349
+ * <dt>linejoin</dt><dd>Specifies a linejoin for the stroke. The following values can be specified:
2350
+ * <dl>
2351
+ * <dt>round (default)</dt><dd>Specifies that the linejoin will be round.</dd>
2352
+ * <dt>bevel</dt><dd>Specifies a bevel for the linejoin.</dd>
2353
+ * <dt>miter limit</dt><dd>An integer specifying the miter limit of a miter linejoin. If you want to specify a linejoin
2354
+ * of miter, you simply specify the limit as opposed to having separate miter and miter limit values.</dd>
2355
+ * </dl>
2356
+ * </dd>
2357
+ * </dl>
2358
+ *
2359
+ * @config stroke
2360
+ * @type Object
2361
+ */
2362
+ stroke: {
2363
+ valueFn: "_getDefaultStroke",
2364
+
2365
+ setter: function(val)
2366
+ {
2367
+ var i,
2368
+ stroke,
2369
+ wt,
2370
+ tmpl = this.get("stroke") || this._getDefaultStroke();
2371
+ if(val)
2372
+ {
2373
+ if(val.hasOwnProperty("weight"))
2374
+ {
2375
+ wt = parseInt(val.weight, 10);
2376
+ if(!isNaN(wt))
2377
+ {
2378
+ val.weight = wt;
2379
+ }
2380
+ }
2381
+ for(i in val)
2382
+ {
2383
+ if(val.hasOwnProperty(i))
2384
+ {
2385
+ tmpl[i] = val[i];
2386
+ }
2387
+ }
2388
+ }
2389
+ if(tmpl.color && tmpl.color.toLowerCase().indexOf("rgba") > -1)
2390
+ {
2391
+ tmpl.opacity = Y.Color._getAlpha(tmpl.color);
2392
+ tmpl.color = Y.Color.toHex(tmpl.color);
2393
+ }
2394
+ stroke = tmpl;
2395
+ this._strokeFlag = true;
2396
+ return stroke;
2397
+ }
2398
+ },
2399
+
2400
+ //Not used. Remove in future.
2401
+ autoSize: {
2402
+ value: false
2403
+ },
2404
+
2405
+ // Only implemented in SVG
2406
+ // Determines whether the instance will receive mouse events.
2407
+ //
2408
+ // @config pointerEvents
2409
+ // @type string
2410
+ //
2411
+ pointerEvents: {
2412
+ value: "visiblePainted"
2413
+ },
2414
+
2415
+ /**
2416
+ * Dom node for the shape.
2417
+ *
2418
+ * @config node
2419
+ * @type HTMLElement
2420
+ * @readOnly
2421
+ */
2422
+ node: {
2423
+ readOnly: true,
2424
+
2425
+ getter: function()
2426
+ {
2427
+ return this.node;
2428
+ }
2429
+ },
2430
+
2431
+ /**
2432
+ * Represents an SVG Path string. This will be parsed and added to shape's API to represent the SVG data across all
2433
+ * implementations. Note that when using VML or SVG implementations, part of this content will be added to the DOM using
2434
+ * respective VML/SVG attributes. If your content comes from an untrusted source, you will need to ensure that no
2435
+ * malicious code is included in that content.
2436
+ *
2437
+ * @config data
2438
+ * @type String
2439
+ */
2440
+ data: {
2441
+ setter: function(val)
2442
+ {
2443
+ if(this.get("node"))
2444
+ {
2445
+ this._parsePathData(val);
2446
+ }
2447
+ return val;
2448
+ }
2449
+ },
2450
+
2451
+ /**
2452
+ * Reference to the container Graphic.
2453
+ *
2454
+ * @config graphic
2455
+ * @type Graphic
2456
+ */
2457
+ graphic: {
2458
+ readOnly: true,
2459
+
2460
+ getter: function()
2461
+ {
2462
+ return this._graphic;
2463
+ }
2464
+ }
2465
+ };
2466
+ Y.VMLShape = VMLShape;
2467
+ /**
2468
+ * <a href="http://www.w3.org/TR/NOTE-VML">VML</a> implementation of the <a href="Path.html">`Path`</a> class.
2469
+ * `VMLPath` is not intended to be used directly. Instead, use the <a href="Path.html">`Path`</a> class.
2470
+ * If the browser lacks <a href="http://www.w3.org/TR/SVG/">SVG</a> and <a href="http://www.w3.org/TR/html5/the-canvas-element.html">Canvas</a>
2471
+ * capabilities, the <a href="Path.html">`Path`</a> class will point to the `VMLPath` class.
2472
+ *
2473
+ * @module graphics
2474
+ * @class VMLPath
2475
+ * @extends VMLShape
2476
+ */
2477
+ VMLPath = function()
2478
+ {
2479
+ VMLPath.superclass.constructor.apply(this, arguments);
2480
+ };
2481
+
2482
+ VMLPath.NAME = "path";
2483
+ Y.extend(VMLPath, Y.VMLShape);
2484
+ VMLPath.ATTRS = Y.merge(Y.VMLShape.ATTRS, {
2485
+ /**
2486
+ * Indicates the width of the shape
2487
+ *
2488
+ * @config width
2489
+ * @type Number
2490
+ */
2491
+ width: {
2492
+ getter: function()
2493
+ {
2494
+ var val = Math.max(this._right - this._left, 0);
2495
+ return val;
2496
+ }
2497
+ },
2498
+
2499
+ /**
2500
+ * Indicates the height of the shape
2501
+ *
2502
+ * @config height
2503
+ * @type Number
2504
+ */
2505
+ height: {
2506
+ getter: function()
2507
+ {
2508
+ return Math.max(this._bottom - this._top, 0);
2509
+ }
2510
+ },
2511
+
2512
+ /**
2513
+ * Indicates the path used for the node.
2514
+ *
2515
+ * @config path
2516
+ * @type String
2517
+ * @readOnly
2518
+ */
2519
+ path: {
2520
+ readOnly: true,
2521
+
2522
+ getter: function()
2523
+ {
2524
+ return this._path;
2525
+ }
2526
+ }
2527
+ });
2528
+ Y.VMLPath = VMLPath;
2529
+ /**
2530
+ * <a href="http://www.w3.org/TR/NOTE-VML">VML</a> implementation of the <a href="Rect.html">`Rect`</a> class.
2531
+ * `VMLRect` is not intended to be used directly. Instead, use the <a href="Rect.html">`Rect`</a> class.
2532
+ * If the browser lacks <a href="http://www.w3.org/TR/SVG/">SVG</a> and <a href="http://www.w3.org/TR/html5/the-canvas-element.html">Canvas</a>
2533
+ * capabilities, the <a href="Rect.html">`Rect`</a> class will point to the `VMLRect` class.
2534
+ *
2535
+ * @module graphics
2536
+ * @class VMLRect
2537
+ * @constructor
2538
+ */
2539
+ VMLRect = function()
2540
+ {
2541
+ VMLRect.superclass.constructor.apply(this, arguments);
2542
+ };
2543
+ VMLRect.NAME = "rect";
2544
+ Y.extend(VMLRect, Y.VMLShape, {
2545
+ /**
2546
+ * Indicates the type of shape
2547
+ *
2548
+ * @property _type
2549
+ * @type String
2550
+ * @private
2551
+ */
2552
+ _type: "rect"
2553
+ });
2554
+ VMLRect.ATTRS = Y.VMLShape.ATTRS;
2555
+ Y.VMLRect = VMLRect;
2556
+ /**
2557
+ * <a href="http://www.w3.org/TR/NOTE-VML">VML</a> implementation of the <a href="Ellipse.html">`Ellipse`</a> class.
2558
+ * `VMLEllipse` is not intended to be used directly. Instead, use the <a href="Ellipse.html">`Ellipse`</a> class.
2559
+ * If the browser lacks <a href="http://www.w3.org/TR/SVG/">SVG</a> and <a href="http://www.w3.org/TR/html5/the-canvas-element.html">Canvas</a>
2560
+ * capabilities, the <a href="Ellipse.html">`Ellipse`</a> class will point to the `VMLEllipse` class.
2561
+ *
2562
+ * @module graphics
2563
+ * @class VMLEllipse
2564
+ * @constructor
2565
+ */
2566
+ VMLEllipse = function()
2567
+ {
2568
+ VMLEllipse.superclass.constructor.apply(this, arguments);
2569
+ };
2570
+
2571
+ VMLEllipse.NAME = "ellipse";
2572
+
2573
+ Y.extend(VMLEllipse, Y.VMLShape, {
2574
+ /**
2575
+ * Indicates the type of shape
2576
+ *
2577
+ * @property _type
2578
+ * @type String
2579
+ * @private
2580
+ */
2581
+ _type: "oval"
2582
+ });
2583
+ VMLEllipse.ATTRS = Y.merge(Y.VMLShape.ATTRS, {
2584
+ /**
2585
+ * Horizontal radius for the ellipse.
2586
+ *
2587
+ * @config xRadius
2588
+ * @type Number
2589
+ */
2590
+ xRadius: {
2591
+ lazyAdd: false,
2592
+
2593
+ getter: function()
2594
+ {
2595
+ var val = this.get("width");
2596
+ val = Math.round((val/2) * 100)/100;
2597
+ return val;
2598
+ },
2599
+
2600
+ setter: function(val)
2601
+ {
2602
+ var w = val * 2;
2603
+ this.set("width", w);
2604
+ return val;
2605
+ }
2606
+ },
2607
+
2608
+ /**
2609
+ * Vertical radius for the ellipse.
2610
+ *
2611
+ * @config yRadius
2612
+ * @type Number
2613
+ * @readOnly
2614
+ */
2615
+ yRadius: {
2616
+ lazyAdd: false,
2617
+
2618
+ getter: function()
2619
+ {
2620
+ var val = this.get("height");
2621
+ val = Math.round((val/2) * 100)/100;
2622
+ return val;
2623
+ },
2624
+
2625
+ setter: function(val)
2626
+ {
2627
+ var h = val * 2;
2628
+ this.set("height", h);
2629
+ return val;
2630
+ }
2631
+ }
2632
+ });
2633
+ Y.VMLEllipse = VMLEllipse;
2634
+ /**
2635
+ * <a href="http://www.w3.org/TR/NOTE-VML">VML</a> implementation of the <a href="Circle.html">`Circle`</a> class.
2636
+ * `VMLCircle` is not intended to be used directly. Instead, use the <a href="Circle.html">`Circle`</a> class.
2637
+ * If the browser lacks <a href="http://www.w3.org/TR/SVG/">SVG</a> and <a href="http://www.w3.org/TR/html5/the-canvas-element.html">Canvas</a>
2638
+ * capabilities, the <a href="Circle.html">`Circle`</a> class will point to the `VMLCircle` class.
2639
+ *
2640
+ * @module graphics
2641
+ * @class VMLCircle
2642
+ * @constructor
2643
+ */
2644
+ VMLCircle = function()
2645
+ {
2646
+ VMLCircle.superclass.constructor.apply(this, arguments);
2647
+ };
2648
+
2649
+ VMLCircle.NAME = "circle";
2650
+
2651
+ Y.extend(VMLCircle, VMLShape, {
2652
+ /**
2653
+ * Indicates the type of shape
2654
+ *
2655
+ * @property _type
2656
+ * @type String
2657
+ * @private
2658
+ */
2659
+ _type: "oval"
2660
+ });
2661
+
2662
+ VMLCircle.ATTRS = Y.merge(VMLShape.ATTRS, {
2663
+ /**
2664
+ * Radius for the circle.
2665
+ *
2666
+ * @config radius
2667
+ * @type Number
2668
+ */
2669
+ radius: {
2670
+ lazyAdd: false,
2671
+
2672
+ value: 0
2673
+ },
2674
+
2675
+ /**
2676
+ * Indicates the width of the shape
2677
+ *
2678
+ * @config width
2679
+ * @type Number
2680
+ */
2681
+ width: {
2682
+ setter: function(val)
2683
+ {
2684
+ this.set("radius", val/2);
2685
+ return val;
2686
+ },
2687
+
2688
+ getter: function()
2689
+ {
2690
+ var radius = this.get("radius"),
2691
+ val = radius && radius > 0 ? radius * 2 : 0;
2692
+ return val;
2693
+ }
2694
+ },
2695
+
2696
+ /**
2697
+ * Indicates the height of the shape
2698
+ *
2699
+ * @config height
2700
+ * @type Number
2701
+ */
2702
+ height: {
2703
+ setter: function(val)
2704
+ {
2705
+ this.set("radius", val/2);
2706
+ return val;
2707
+ },
2708
+
2709
+ getter: function()
2710
+ {
2711
+ var radius = this.get("radius"),
2712
+ val = radius && radius > 0 ? radius * 2 : 0;
2713
+ return val;
2714
+ }
2715
+ }
2716
+ });
2717
+ Y.VMLCircle = VMLCircle;
2718
+ /**
2719
+ * Draws pie slices
2720
+ *
2721
+ * @module graphics
2722
+ * @class VMLPieSlice
2723
+ * @constructor
2724
+ */
2725
+ VMLPieSlice = function()
2726
+ {
2727
+ VMLPieSlice.superclass.constructor.apply(this, arguments);
2728
+ };
2729
+ VMLPieSlice.NAME = "vmlPieSlice";
2730
+ Y.extend(VMLPieSlice, Y.VMLShape, Y.mix({
2731
+ /**
2732
+ * Indicates the type of shape
2733
+ *
2734
+ * @property _type
2735
+ * @type String
2736
+ * @private
2737
+ */
2738
+ _type: "shape",
2739
+
2740
+ /**
2741
+ * Change event listener
2742
+ *
2743
+ * @private
2744
+ * @method _updateHandler
2745
+ */
2746
+ _draw: function()
2747
+ {
2748
+ var x = this.get("cx"),
2749
+ y = this.get("cy"),
2750
+ startAngle = this.get("startAngle"),
2751
+ arc = this.get("arc"),
2752
+ radius = this.get("radius");
2753
+ this.clear();
2754
+ this.drawWedge(x, y, startAngle, arc, radius);
2755
+ this.end();
2756
+ }
2757
+ }, Y.VMLDrawing.prototype));
2758
+ VMLPieSlice.ATTRS = Y.mix({
2759
+ cx: {
2760
+ value: 0
2761
+ },
2762
+
2763
+ cy: {
2764
+ value: 0
2765
+ },
2766
+ /**
2767
+ * Starting angle in relation to a circle in which to begin the pie slice drawing.
2768
+ *
2769
+ * @config startAngle
2770
+ * @type Number
2771
+ */
2772
+ startAngle: {
2773
+ value: 0
2774
+ },
2775
+
2776
+ /**
2777
+ * Arc of the slice.
2778
+ *
2779
+ * @config arc
2780
+ * @type Number
2781
+ */
2782
+ arc: {
2783
+ value: 0
2784
+ },
2785
+
2786
+ /**
2787
+ * Radius of the circle in which the pie slice is drawn
2788
+ *
2789
+ * @config radius
2790
+ * @type Number
2791
+ */
2792
+ radius: {
2793
+ value: 0
2794
+ }
2795
+ }, Y.VMLShape.ATTRS);
2796
+ Y.VMLPieSlice = VMLPieSlice;
2797
+ /**
2798
+ * <a href="http://www.w3.org/TR/NOTE-VML">VML</a> implementation of the <a href="Graphic.html">`Graphic`</a> class.
2799
+ * `VMLGraphic` is not intended to be used directly. Instead, use the <a href="Graphic.html">`Graphic`</a> class.
2800
+ * If the browser lacks <a href="http://www.w3.org/TR/SVG/">SVG</a> and <a href="http://www.w3.org/TR/html5/the-canvas-element.html">Canvas</a>
2801
+ * capabilities, the <a href="Graphic.html">`Graphic`</a> class will point to the `VMLGraphic` class.
2802
+ *
2803
+ * @module graphics
2804
+ * @class VMLGraphic
2805
+ * @constructor
2806
+ */
2807
+ VMLGraphic = function() {
2808
+ VMLGraphic.superclass.constructor.apply(this, arguments);
2809
+ };
2810
+
2811
+ VMLGraphic.NAME = "vmlGraphic";
2812
+
2813
+ VMLGraphic.ATTRS = {
2814
+ /**
2815
+ * Whether or not to render the `Graphic` automatically after to a specified parent node after init. This can be a Node
2816
+ * instance or a CSS selector string.
2817
+ *
2818
+ * @config render
2819
+ * @type Node | String
2820
+ */
2821
+ render: {},
2822
+
2823
+ /**
2824
+ * Unique id for class instance.
2825
+ *
2826
+ * @config id
2827
+ * @type String
2828
+ */
2829
+ id: {
2830
+ valueFn: function()
2831
+ {
2832
+ return Y.guid();
2833
+ },
2834
+
2835
+ setter: function(val)
2836
+ {
2837
+ var node = this._node;
2838
+ if(node)
2839
+ {
2840
+ node.setAttribute("id", val);
2841
+ }
2842
+ return val;
2843
+ }
2844
+ },
2845
+
2846
+ /**
2847
+ * Key value pairs in which a shape instance is associated with its id.
2848
+ *
2849
+ * @config shapes
2850
+ * @type Object
2851
+ * @readOnly
2852
+ */
2853
+ shapes: {
2854
+ readOnly: true,
2855
+
2856
+ getter: function()
2857
+ {
2858
+ return this._shapes;
2859
+ }
2860
+ },
2861
+
2862
+ /**
2863
+ * Object containing size and coordinate data for the content of a Graphic in relation to the coordSpace node.
2864
+ *
2865
+ * @config contentBounds
2866
+ * @type Object
2867
+ */
2868
+ contentBounds: {
2869
+ readOnly: true,
2870
+
2871
+ getter: function()
2872
+ {
2873
+ return this._contentBounds;
2874
+ }
2875
+ },
2876
+
2877
+ /**
2878
+ * The html element that represents to coordinate system of the Graphic instance.
2879
+ *
2880
+ * @config node
2881
+ * @type HTMLElement
2882
+ */
2883
+ node: {
2884
+ readOnly: true,
2885
+
2886
+ getter: function()
2887
+ {
2888
+ return this._node;
2889
+ }
2890
+ },
2891
+
2892
+ /**
2893
+ * Indicates the width of the `Graphic`.
2894
+ *
2895
+ * @config width
2896
+ * @type Number
2897
+ */
2898
+ width: {
2899
+ setter: function(val)
2900
+ {
2901
+ if(this._node)
2902
+ {
2903
+ this._node.style.width = val + "px";
2904
+ }
2905
+ return val;
2906
+ }
2907
+ },
2908
+
2909
+ /**
2910
+ * Indicates the height of the `Graphic`.
2911
+ *
2912
+ * @config height
2913
+ * @type Number
2914
+ */
2915
+ height: {
2916
+ setter: function(val)
2917
+ {
2918
+ if(this._node)
2919
+ {
2920
+ this._node.style.height = val + "px";
2921
+ }
2922
+ return val;
2923
+ }
2924
+ },
2925
+
2926
+ /**
2927
+ * Determines the sizing of the Graphic.
2928
+ *
2929
+ * <dl>
2930
+ * <dt>sizeContentToGraphic</dt><dd>The Graphic's width and height attributes are, either explicitly set through the
2931
+ * <code>width</code> and <code>height</code> attributes or are determined by the dimensions of the parent element. The
2932
+ * content contained in the Graphic will be sized to fit with in the Graphic instance's dimensions. When using this
2933
+ * setting, the <code>preserveAspectRatio</code> attribute will determine how the contents are sized.</dd>
2934
+ * <dt>sizeGraphicToContent</dt><dd>(Also accepts a value of true) The Graphic's width and height are determined by the
2935
+ * size and positioning of the content.</dd>
2936
+ * <dt>false</dt><dd>The Graphic's width and height attributes are, either explicitly set through the <code>width</code>
2937
+ * and <code>height</code> attributes or are determined by the dimensions of the parent element. The contents of the
2938
+ * Graphic instance are not affected by this setting.</dd>
2939
+ * </dl>
2940
+ *
2941
+ *
2942
+ * @config autoSize
2943
+ * @type Boolean | String
2944
+ * @default false
2945
+ */
2946
+ autoSize: {
2947
+ value: false
2948
+ },
2949
+
2950
+ /**
2951
+ * Determines how content is sized when <code>autoSize</code> is set to <code>sizeContentToGraphic</code>.
2952
+ *
2953
+ * <dl>
2954
+ * <dt>none<dt><dd>Do not force uniform scaling. Scale the graphic content of the given element non-uniformly if necessary
2955
+ * such that the element's bounding box exactly matches the viewport rectangle.</dd>
2956
+ * <dt>xMinYMin</dt><dd>Force uniform scaling position along the top left of the Graphic's node.</dd>
2957
+ * <dt>xMidYMin</dt><dd>Force uniform scaling horizontally centered and positioned at the top of the Graphic's node.<dd>
2958
+ * <dt>xMaxYMin</dt><dd>Force uniform scaling positioned horizontally from the right and vertically from the top.</dd>
2959
+ * <dt>xMinYMid</dt>Force uniform scaling positioned horizontally from the left and vertically centered.</dd>
2960
+ * <dt>xMidYMid (the default)</dt><dd>Force uniform scaling with the content centered.</dd>
2961
+ * <dt>xMaxYMid</dt><dd>Force uniform scaling positioned horizontally from the right and vertically centered.</dd>
2962
+ * <dt>xMinYMax</dt><dd>Force uniform scaling positioned horizontally from the left and vertically from the bottom.</dd>
2963
+ * <dt>xMidYMax</dt><dd>Force uniform scaling horizontally centered and position vertically from the bottom.</dd>
2964
+ * <dt>xMaxYMax</dt><dd>Force uniform scaling positioned horizontally from the right and vertically from the bottom.</dd>
2965
+ * </dl>
2966
+ *
2967
+ * @config preserveAspectRatio
2968
+ * @type String
2969
+ * @default xMidYMid
2970
+ */
2971
+ preserveAspectRatio: {
2972
+ value: "xMidYMid"
2973
+ },
2974
+
2975
+ /**
2976
+ * The contentBounds will resize to greater values but not values. (for performance)
2977
+ * When resizing the contentBounds down is desirable, set the resizeDown value to true.
2978
+ *
2979
+ * @config resizeDown
2980
+ * @type Boolean
2981
+ */
2982
+ resizeDown: {
2983
+ resizeDown: false
2984
+ },
2985
+
2986
+ /**
2987
+ * Indicates the x-coordinate for the instance.
2988
+ *
2989
+ * @config x
2990
+ * @type Number
2991
+ */
2992
+ x: {
2993
+ getter: function()
2994
+ {
2995
+ return this._x;
2996
+ },
2997
+
2998
+ setter: function(val)
2999
+ {
3000
+ this._x = val;
3001
+ if(this._node)
3002
+ {
3003
+ this._node.style.left = val + "px";
3004
+ }
3005
+ return val;
3006
+ }
3007
+ },
3008
+
3009
+ /**
3010
+ * Indicates the y-coordinate for the instance.
3011
+ *
3012
+ * @config y
3013
+ * @type Number
3014
+ */
3015
+ y: {
3016
+ getter: function()
3017
+ {
3018
+ return this._y;
3019
+ },
3020
+
3021
+ setter: function(val)
3022
+ {
3023
+ this._y = val;
3024
+ if(this._node)
3025
+ {
3026
+ this._node.style.top = val + "px";
3027
+ }
3028
+ return val;
3029
+ }
3030
+ },
3031
+
3032
+ /**
3033
+ * Indicates whether or not the instance will automatically redraw after a change is made to a shape.
3034
+ * This property will get set to false when batching operations.
3035
+ *
3036
+ * @config autoDraw
3037
+ * @type Boolean
3038
+ * @default true
3039
+ * @private
3040
+ */
3041
+ autoDraw: {
3042
+ value: true
3043
+ },
3044
+
3045
+ visible: {
3046
+ value: true,
3047
+
3048
+ setter: function(val)
3049
+ {
3050
+ this._toggleVisible(val);
3051
+ return val;
3052
+ }
3053
+ }
3054
+ };
3055
+
3056
+ Y.extend(VMLGraphic, Y.GraphicBase, {
3057
+ /**
3058
+ * Sets the value of an attribute.
3059
+ *
3060
+ * @method set
3061
+ * @param {String|Object} name The name of the attribute. Alternatively, an object of key value pairs can
3062
+ * be passed in to set multiple attributes at once.
3063
+ * @param {Any} value The value to set the attribute to. This value is ignored if an object is received as
3064
+ * the name param.
3065
+ */
3066
+ set: function()
3067
+ {
3068
+ var host = this,
3069
+ attr = arguments[0],
3070
+ redrawAttrs = {
3071
+ autoDraw: true,
3072
+ autoSize: true,
3073
+ preserveAspectRatio: true,
3074
+ resizeDown: true
3075
+ },
3076
+ key,
3077
+ forceRedraw = false;
3078
+ AttributeLite.prototype.set.apply(host, arguments);
3079
+ if(host._state.autoDraw === true && Y.Object.size(this._shapes) > 0)
3080
+ {
3081
+ if(Y_LANG.isString && redrawAttrs[attr])
3082
+ {
3083
+ forceRedraw = true;
3084
+ }
3085
+ else if(Y_LANG.isObject(attr))
3086
+ {
3087
+ for(key in redrawAttrs)
3088
+ {
3089
+ if(redrawAttrs.hasOwnProperty(key) && attr[key])
3090
+ {
3091
+ forceRedraw = true;
3092
+ break;
3093
+ }
3094
+ }
3095
+ }
3096
+ }
3097
+ if(forceRedraw)
3098
+ {
3099
+ host._redraw();
3100
+ }
3101
+ },
3102
+
3103
+ /**
3104
+ * Storage for `x` attribute.
3105
+ *
3106
+ * @property _x
3107
+ * @type Number
3108
+ * @private
3109
+ */
3110
+ _x: 0,
3111
+
3112
+ /**
3113
+ * Storage for `y` attribute.
3114
+ *
3115
+ * @property _y
3116
+ * @type Number
3117
+ * @private
3118
+ */
3119
+ _y: 0,
3120
+
3121
+ /**
3122
+ * Gets the current position of the graphic instance in page coordinates.
3123
+ *
3124
+ * @method getXY
3125
+ * @return Array The XY position of the shape.
3126
+ */
3127
+ getXY: function()
3128
+ {
3129
+ var node = this.parentNode,
3130
+ x = this.get("x"),
3131
+ y = this.get("y"),
3132
+ xy;
3133
+ if(node)
3134
+ {
3135
+ xy = Y.DOM.getXY(node);
3136
+ xy[0] += x;
3137
+ xy[1] += y;
3138
+ }
3139
+ else
3140
+ {
3141
+ xy = Y.DOM._getOffset(this._node);
3142
+ }
3143
+ return xy;
3144
+ },
3145
+
3146
+ /**
3147
+ * Initializes the class.
3148
+ *
3149
+ * @method initializer
3150
+ * @private
3151
+ */
3152
+ initializer: function() {
3153
+ var render = this.get("render"),
3154
+ visibility = this.get("visible") ? "visible" : "hidden";
3155
+ this._shapes = {};
3156
+ this._contentBounds = {
3157
+ left: 0,
3158
+ top: 0,
3159
+ right: 0,
3160
+ bottom: 0
3161
+ };
3162
+ this._node = this._createGraphic();
3163
+ this._node.style.left = this.get("x") + "px";
3164
+ this._node.style.top = this.get("y") + "px";
3165
+ this._node.style.visibility = visibility;
3166
+ this._node.setAttribute("id", this.get("id"));
3167
+ if(render)
3168
+ {
3169
+ this.render(render);
3170
+ }
3171
+ },
3172
+
3173
+ /**
3174
+ * Adds the graphics node to the dom.
3175
+ *
3176
+ * @method render
3177
+ * @param {HTMLElement} parentNode node in which to render the graphics node into.
3178
+ */
3179
+ render: function(render) {
3180
+ var parentNode = render || DOCUMENT.body,
3181
+ node = this._node,
3182
+ w,
3183
+ h;
3184
+ if(render instanceof Y.Node)
3185
+ {
3186
+ parentNode = render._node;
3187
+ }
3188
+ else if(Y.Lang.isString(render))
3189
+ {
3190
+ parentNode = Y.Selector.query(render, DOCUMENT.body, true);
3191
+ }
3192
+ w = this.get("width") || parseInt(Y.DOM.getComputedStyle(parentNode, "width"), 10);
3193
+ h = this.get("height") || parseInt(Y.DOM.getComputedStyle(parentNode, "height"), 10);
3194
+ parentNode.appendChild(node);
3195
+ this.parentNode = parentNode;
3196
+ this.set("width", w);
3197
+ this.set("height", h);
3198
+ return this;
3199
+ },
3200
+
3201
+ /**
3202
+ * Removes all nodes.
3203
+ *
3204
+ * @method destroy
3205
+ */
3206
+ destroy: function()
3207
+ {
3208
+ this.removeAllShapes();
3209
+ if(this._node)
3210
+ {
3211
+ this._removeChildren(this._node);
3212
+ if(this._node.parentNode)
3213
+ {
3214
+ this._node.parentNode.removeChild(this._node);
3215
+ }
3216
+ this._node = null;
3217
+ }
3218
+ },
3219
+
3220
+ /**
3221
+ * Generates a shape instance by type.
3222
+ *
3223
+ * @method addShape
3224
+ * @param {Object} cfg attributes for the shape
3225
+ * @return Shape
3226
+ */
3227
+ addShape: function(cfg)
3228
+ {
3229
+ cfg.graphic = this;
3230
+ if(!this.get("visible"))
3231
+ {
3232
+ cfg.visible = false;
3233
+ }
3234
+ var ShapeClass = this._getShapeClass(cfg.type),
3235
+ shape = new ShapeClass(cfg);
3236
+ this._appendShape(shape);
3237
+ shape._appendStrokeAndFill();
3238
+ return shape;
3239
+ },
3240
+
3241
+ /**
3242
+ * Adds a shape instance to the graphic instance.
3243
+ *
3244
+ * @method _appendShape
3245
+ * @param {Shape} shape The shape instance to be added to the graphic.
3246
+ * @private
3247
+ */
3248
+ _appendShape: function(shape)
3249
+ {
3250
+ var node = shape.node,
3251
+ parentNode = this._frag || this._node;
3252
+ if(this.get("autoDraw") || this.get("autoSize") === "sizeContentToGraphic")
3253
+ {
3254
+ parentNode.appendChild(node);
3255
+ }
3256
+ else
3257
+ {
3258
+ this._getDocFrag().appendChild(node);
3259
+ }
3260
+ },
3261
+
3262
+ /**
3263
+ * Removes a shape instance from from the graphic instance.
3264
+ *
3265
+ * @method removeShape
3266
+ * @param {Shape|String} shape The instance or id of the shape to be removed.
3267
+ */
3268
+ removeShape: function(shape)
3269
+ {
3270
+ if(!(shape instanceof VMLShape))
3271
+ {
3272
+ if(Y_LANG.isString(shape))
3273
+ {
3274
+ shape = this._shapes[shape];
3275
+ }
3276
+ }
3277
+ if(shape && (shape instanceof VMLShape))
3278
+ {
3279
+ shape._destroy();
3280
+ this._shapes[shape.get("id")] = null;
3281
+ delete this._shapes[shape.get("id")];
3282
+ }
3283
+ if(this.get("autoDraw"))
3284
+ {
3285
+ this._redraw();
3286
+ }
3287
+ },
3288
+
3289
+ /**
3290
+ * Removes all shape instances from the dom.
3291
+ *
3292
+ * @method removeAllShapes
3293
+ */
3294
+ removeAllShapes: function()
3295
+ {
3296
+ var shapes = this._shapes,
3297
+ i;
3298
+ for(i in shapes)
3299
+ {
3300
+ if(shapes.hasOwnProperty(i))
3301
+ {
3302
+ shapes[i].destroy();
3303
+ }
3304
+ }
3305
+ this._shapes = {};
3306
+ },
3307
+
3308
+ /**
3309
+ * Removes all child nodes.
3310
+ *
3311
+ * @method _removeChildren
3312
+ * @param node
3313
+ * @private
3314
+ */
3315
+ _removeChildren: function(node)
3316
+ {
3317
+ if(node.hasChildNodes())
3318
+ {
3319
+ var child;
3320
+ while(node.firstChild)
3321
+ {
3322
+ child = node.firstChild;
3323
+ this._removeChildren(child);
3324
+ node.removeChild(child);
3325
+ }
3326
+ }
3327
+ },
3328
+
3329
+ /**
3330
+ * Clears the graphics object.
3331
+ *
3332
+ * @method clear
3333
+ */
3334
+ clear: function() {
3335
+ this.removeAllShapes();
3336
+ this._removeChildren(this._node);
3337
+ },
3338
+
3339
+ /**
3340
+ * Toggles visibility
3341
+ *
3342
+ * @method _toggleVisible
3343
+ * @param {Boolean} val indicates visibilitye
3344
+ * @private
3345
+ */
3346
+ _toggleVisible: function(val)
3347
+ {
3348
+ var i,
3349
+ shapes = this._shapes,
3350
+ visibility = val ? "visible" : "hidden";
3351
+ if(shapes)
3352
+ {
3353
+ for(i in shapes)
3354
+ {
3355
+ if(shapes.hasOwnProperty(i))
3356
+ {
3357
+ shapes[i].set("visible", val);
3358
+ }
3359
+ }
3360
+ }
3361
+ if(this._node)
3362
+ {
3363
+ this._node.style.visibility = visibility;
3364
+ }
3365
+ if(this._node)
3366
+ {
3367
+ this._node.style.visibility = visibility;
3368
+ }
3369
+ },
3370
+
3371
+ /**
3372
+ * Sets the size of the graphics object.
3373
+ *
3374
+ * @method setSize
3375
+ * @param w {Number} width to set for the instance.
3376
+ * @param h {Number} height to set for the instance.
3377
+ */
3378
+ setSize: function(w, h) {
3379
+ w = Math.round(w);
3380
+ h = Math.round(h);
3381
+ this._node.style.width = w + 'px';
3382
+ this._node.style.height = h + 'px';
3383
+ },
3384
+
3385
+ /**
3386
+ * Sets the positon of the graphics object.
3387
+ *
3388
+ * @method setPosition
3389
+ * @param {Number} x x-coordinate for the object.
3390
+ * @param {Number} y y-coordinate for the object.
3391
+ */
3392
+ setPosition: function(x, y)
3393
+ {
3394
+ x = Math.round(x);
3395
+ y = Math.round(y);
3396
+ this._node.style.left = x + "px";
3397
+ this._node.style.top = y + "px";
3398
+ },
3399
+
3400
+ /**
3401
+ * Creates a group element
3402
+ *
3403
+ * @method _createGraphic
3404
+ * @private
3405
+ */
3406
+ _createGraphic: function() {
3407
+ var group = DOCUMENT.createElement(
3408
+ '<group xmlns="urn:schemas-microsft.com:vml"' +
3409
+ ' style="behavior:url(#default#VML);padding:0px 0px 0px 0px;display:block;position:absolute;top:0px;left:0px;zoom:1;"' +
3410
+ '/>'
3411
+ );
3412
+ return group;
3413
+ },
3414
+
3415
+ /**
3416
+ * Creates a graphic node
3417
+ *
3418
+ * @method _createGraphicNode
3419
+ * @param {String} type node type to create
3420
+ * @param {String} pe specified pointer-events value
3421
+ * @return HTMLElement
3422
+ * @private
3423
+ */
3424
+ _createGraphicNode: function(type)
3425
+ {
3426
+ return DOCUMENT.createElement(
3427
+ '<' +
3428
+ type +
3429
+ ' xmlns="urn:schemas-microsft.com:vml"' +
3430
+ ' style="behavior:url(#default#VML);display:inline-block;zoom:1;"' +
3431
+ '/>'
3432
+ );
3433
+
3434
+ },
3435
+
3436
+ /**
3437
+ * Returns a shape based on the id of its dom node.
3438
+ *
3439
+ * @method getShapeById
3440
+ * @param {String} id Dom id of the shape's node attribute.
3441
+ * @return Shape
3442
+ */
3443
+ getShapeById: function(id)
3444
+ {
3445
+ return this._shapes[id];
3446
+ },
3447
+
3448
+ /**
3449
+ * Returns a shape class. Used by `addShape`.
3450
+ *
3451
+ * @method _getShapeClass
3452
+ * @param {Shape | String} val Indicates which shape class.
3453
+ * @return Function
3454
+ * @private
3455
+ */
3456
+ _getShapeClass: function(val)
3457
+ {
3458
+ var shape = this._shapeClass[val];
3459
+ if(shape)
3460
+ {
3461
+ return shape;
3462
+ }
3463
+ return val;
3464
+ },
3465
+
3466
+ /**
3467
+ * Look up for shape classes. Used by `addShape` to retrieve a class for instantiation.
3468
+ *
3469
+ * @property _shapeClass
3470
+ * @type Object
3471
+ * @private
3472
+ */
3473
+ _shapeClass: {
3474
+ circle: Y.VMLCircle,
3475
+ rect: Y.VMLRect,
3476
+ path: Y.VMLPath,
3477
+ ellipse: Y.VMLEllipse,
3478
+ pieslice: Y.VMLPieSlice
3479
+ },
3480
+
3481
+ /**
3482
+ * Allows for creating multiple shapes in order to batch appending and redraw operations.
3483
+ *
3484
+ * @method batch
3485
+ * @param {Function} method Method to execute.
3486
+ */
3487
+ batch: function(method)
3488
+ {
3489
+ var autoDraw = this.get("autoDraw");
3490
+ this.set("autoDraw", false);
3491
+ method.apply();
3492
+ this.set("autoDraw", autoDraw);
3493
+ },
3494
+
3495
+ /**
3496
+ * Returns a document fragment to for attaching shapes.
3497
+ *
3498
+ * @method _getDocFrag
3499
+ * @return DocumentFragment
3500
+ * @private
3501
+ */
3502
+ _getDocFrag: function()
3503
+ {
3504
+ if(!this._frag)
3505
+ {
3506
+ this._frag = DOCUMENT.createDocumentFragment();
3507
+ }
3508
+ return this._frag;
3509
+ },
3510
+
3511
+ /**
3512
+ * Adds a shape to the redraw queue and calculates the contentBounds.
3513
+ *
3514
+ * @method addToRedrawQueue
3515
+ * @param shape {VMLShape}
3516
+ * @protected
3517
+ */
3518
+ addToRedrawQueue: function(shape)
3519
+ {
3520
+ var shapeBox,
3521
+ box;
3522
+ this._shapes[shape.get("id")] = shape;
3523
+ if(!this.get("resizeDown"))
3524
+ {
3525
+ shapeBox = shape.getBounds();
3526
+ box = this._contentBounds;
3527
+ box.left = box.left < shapeBox.left ? box.left : shapeBox.left;
3528
+ box.top = box.top < shapeBox.top ? box.top : shapeBox.top;
3529
+ box.right = box.right > shapeBox.right ? box.right : shapeBox.right;
3530
+ box.bottom = box.bottom > shapeBox.bottom ? box.bottom : shapeBox.bottom;
3531
+ box.width = box.right - box.left;
3532
+ box.height = box.bottom - box.top;
3533
+ this._contentBounds = box;
3534
+ }
3535
+ if(this.get("autoDraw"))
3536
+ {
3537
+ this._redraw();
3538
+ }
3539
+ },
3540
+
3541
+ /**
3542
+ * Redraws all shapes.
3543
+ *
3544
+ * @method _redraw
3545
+ * @private
3546
+ */
3547
+ _redraw: function()
3548
+ {
3549
+ var autoSize = this.get("autoSize"),
3550
+ preserveAspectRatio,
3551
+ node = this.parentNode,
3552
+ nodeWidth = parseFloat(Y.DOM.getComputedStyle(node, "width")),
3553
+ nodeHeight = parseFloat(Y.DOM.getComputedStyle(node, "height")),
3554
+ xCoordOrigin = 0,
3555
+ yCoordOrigin = 0,
3556
+ box = this.get("resizeDown") ? this._getUpdatedContentBounds() : this._contentBounds,
3557
+ left = box.left,
3558
+ right = box.right,
3559
+ top = box.top,
3560
+ bottom = box.bottom,
3561
+ contentWidth = right - left,
3562
+ contentHeight = bottom - top,
3563
+ aspectRatio,
3564
+ xCoordSize,
3565
+ yCoordSize,
3566
+ scaledWidth,
3567
+ scaledHeight,
3568
+ visible = this.get("visible");
3569
+ this._node.style.visibility = "hidden";
3570
+ if(autoSize)
3571
+ {
3572
+ if(autoSize === "sizeContentToGraphic")
3573
+ {
3574
+ preserveAspectRatio = this.get("preserveAspectRatio");
3575
+ if(preserveAspectRatio === "none" || contentWidth/contentHeight === nodeWidth/nodeHeight)
3576
+ {
3577
+ xCoordOrigin = left;
3578
+ yCoordOrigin = top;
3579
+ xCoordSize = contentWidth;
3580
+ yCoordSize = contentHeight;
3581
+ }
3582
+ else
3583
+ {
3584
+ if(contentWidth * nodeHeight/contentHeight > nodeWidth)
3585
+ {
3586
+ aspectRatio = nodeHeight/nodeWidth;
3587
+ xCoordSize = contentWidth;
3588
+ yCoordSize = contentWidth * aspectRatio;
3589
+ scaledHeight = (nodeWidth * (contentHeight/contentWidth)) * (yCoordSize/nodeHeight);
3590
+ yCoordOrigin = this._calculateCoordOrigin(preserveAspectRatio.slice(5).toLowerCase(), scaledHeight, yCoordSize);
3591
+ yCoordOrigin = top + yCoordOrigin;
3592
+ xCoordOrigin = left;
3593
+ }
3594
+ else
3595
+ {
3596
+ aspectRatio = nodeWidth/nodeHeight;
3597
+ xCoordSize = contentHeight * aspectRatio;
3598
+ yCoordSize = contentHeight;
3599
+ scaledWidth = (nodeHeight * (contentWidth/contentHeight)) * (xCoordSize/nodeWidth);
3600
+ xCoordOrigin = this._calculateCoordOrigin(preserveAspectRatio.slice(1, 4).toLowerCase(), scaledWidth, xCoordSize);
3601
+ xCoordOrigin = xCoordOrigin + left;
3602
+ yCoordOrigin = top;
3603
+ }
3604
+ }
3605
+ this._node.style.width = nodeWidth + "px";
3606
+ this._node.style.height = nodeHeight + "px";
3607
+ this._node.coordOrigin = xCoordOrigin + ", " + yCoordOrigin;
3608
+ }
3609
+ else
3610
+ {
3611
+ xCoordSize = contentWidth;
3612
+ yCoordSize = contentHeight;
3613
+ this._node.style.width = contentWidth + "px";
3614
+ this._node.style.height = contentHeight + "px";
3615
+ this._state.width = contentWidth;
3616
+ this._state.height = contentHeight;
3617
+
3618
+ }
3619
+ this._node.coordSize = xCoordSize + ", " + yCoordSize;
3620
+ }
3621
+ else
3622
+ {
3623
+ this._node.style.width = nodeWidth + "px";
3624
+ this._node.style.height = nodeHeight + "px";
3625
+ this._node.coordSize = nodeWidth + ", " + nodeHeight;
3626
+ }
3627
+ if(this._frag)
3628
+ {
3629
+ this._node.appendChild(this._frag);
3630
+ this._frag = null;
3631
+ }
3632
+ if(visible)
3633
+ {
3634
+ this._node.style.visibility = "visible";
3635
+ }
3636
+ },
3637
+
3638
+ /**
3639
+ * Determines the value for either an x or y coordinate to be used for the <code>coordOrigin</code> of the Graphic.
3640
+ *
3641
+ * @method _calculateCoordOrigin
3642
+ * @param {String} position The position for placement. Possible values are min, mid and max.
3643
+ * @param {Number} size The total scaled size of the content.
3644
+ * @param {Number} coordsSize The coordsSize for the Graphic.
3645
+ * @return Number
3646
+ * @private
3647
+ */
3648
+ _calculateCoordOrigin: function(position, size, coordsSize)
3649
+ {
3650
+ var coord;
3651
+ switch(position)
3652
+ {
3653
+ case "min" :
3654
+ coord = 0;
3655
+ break;
3656
+ case "mid" :
3657
+ coord = (size - coordsSize)/2;
3658
+ break;
3659
+ case "max" :
3660
+ coord = (size - coordsSize);
3661
+ break;
3662
+ }
3663
+ return coord;
3664
+ },
3665
+
3666
+ /**
3667
+ * Recalculates and returns the `contentBounds` for the `Graphic` instance.
3668
+ *
3669
+ * @method _getUpdatedContentBounds
3670
+ * @return {Object}
3671
+ * @private
3672
+ */
3673
+ _getUpdatedContentBounds: function()
3674
+ {
3675
+ var bounds,
3676
+ i,
3677
+ shape,
3678
+ queue = this._shapes,
3679
+ box = {};
3680
+ for(i in queue)
3681
+ {
3682
+ if(queue.hasOwnProperty(i))
3683
+ {
3684
+ shape = queue[i];
3685
+ bounds = shape.getBounds();
3686
+ box.left = Y_LANG.isNumber(box.left) ? Math.min(box.left, bounds.left) : bounds.left;
3687
+ box.top = Y_LANG.isNumber(box.top) ? Math.min(box.top, bounds.top) : bounds.top;
3688
+ box.right = Y_LANG.isNumber(box.right) ? Math.max(box.right, bounds.right) : bounds.right;
3689
+ box.bottom = Y_LANG.isNumber(box.bottom) ? Math.max(box.bottom, bounds.bottom) : bounds.bottom;
3690
+ }
3691
+ }
3692
+ box.left = Y_LANG.isNumber(box.left) ? box.left : 0;
3693
+ box.top = Y_LANG.isNumber(box.top) ? box.top : 0;
3694
+ box.right = Y_LANG.isNumber(box.right) ? box.right : 0;
3695
+ box.bottom = Y_LANG.isNumber(box.bottom) ? box.bottom : 0;
3696
+ this._contentBounds = box;
3697
+ return box;
3698
+ },
3699
+
3700
+ /**
3701
+ * Inserts shape on the top of the tree.
3702
+ *
3703
+ * @method _toFront
3704
+ * @param {VMLShape} Shape to add.
3705
+ * @private
3706
+ */
3707
+ _toFront: function(shape)
3708
+ {
3709
+ var contentNode = this._node;
3710
+ if(shape instanceof Y.VMLShape)
3711
+ {
3712
+ shape = shape.get("node");
3713
+ }
3714
+ if(contentNode && shape)
3715
+ {
3716
+ contentNode.appendChild(shape);
3717
+ }
3718
+ },
3719
+
3720
+ /**
3721
+ * Inserts shape as the first child of the content node.
3722
+ *
3723
+ * @method _toBack
3724
+ * @param {VMLShape} Shape to add.
3725
+ * @private
3726
+ */
3727
+ _toBack: function(shape)
3728
+ {
3729
+ var contentNode = this._node,
3730
+ targetNode;
3731
+ if(shape instanceof Y.VMLShape)
3732
+ {
3733
+ shape = shape.get("node");
3734
+ }
3735
+ if(contentNode && shape)
3736
+ {
3737
+ targetNode = contentNode.firstChild;
3738
+ if(targetNode)
3739
+ {
3740
+ contentNode.insertBefore(shape, targetNode);
3741
+ }
3742
+ else
3743
+ {
3744
+ contentNode.appendChild(shape);
3745
+ }
3746
+ }
3747
+ }
3748
+ });
3749
+ Y.VMLGraphic = VMLGraphic;
3750
+
3751
+
3752
+
3753
+ }, '@VERSION@', {"requires": ["graphics", "color-base"]});