dijit-rails 0.11.0 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1043) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +3 -0
  3. data/README.md +54 -14
  4. data/dijit-rails.gemspec +1 -3
  5. data/lib/dijit/rails/version.rb +1 -1
  6. data/lib/dijit/version.rb +1 -1
  7. data/vendor/assets/{javascripts/dijit → images}/icons/images/commonIconsObjActDisabled.png +0 -0
  8. data/vendor/assets/{javascripts/dijit → images}/icons/images/commonIconsObjActDisabled_rtl.png +0 -0
  9. data/vendor/assets/{javascripts/dijit → images}/icons/images/commonIconsObjActEnabled.png +0 -0
  10. data/vendor/assets/{javascripts/dijit → images}/icons/images/commonIconsObjActEnabled8bit.png +0 -0
  11. data/vendor/assets/{javascripts/dijit → images}/icons/images/commonIconsObjActEnabled8bit_rtl.png +0 -0
  12. data/vendor/assets/{javascripts/dijit → images}/icons/images/commonIconsObjActEnabled_rtl.png +0 -0
  13. data/vendor/assets/{javascripts/dijit → images}/icons/images/editorIconsDisabled.png +0 -0
  14. data/vendor/assets/{javascripts/dijit → images}/icons/images/editorIconsDisabled_rtl.png +0 -0
  15. data/vendor/assets/{javascripts/dijit → images}/icons/images/editorIconsEnabled.png +0 -0
  16. data/vendor/assets/{javascripts/dijit → images}/icons/images/editorIconsEnabled_rtl.png +0 -0
  17. data/vendor/assets/{javascripts/dijit → images}/icons/images/loadingAnimation_rtl.gif +0 -0
  18. data/vendor/assets/images/{a11y → themes/a11y}/colors3x4.png +0 -0
  19. data/vendor/assets/images/{a11y → themes/a11y}/colors7x10.png +0 -0
  20. data/vendor/assets/images/{a11y → themes/a11y}/indeterminate_progress.gif +0 -0
  21. data/vendor/assets/images/{claro → themes/claro}/form/images/buttonArrows.png +0 -0
  22. data/vendor/assets/images/{claro → themes/claro}/form/images/buttonDisabled.png +0 -0
  23. data/vendor/assets/images/{claro → themes/claro}/form/images/buttonEnabled.png +0 -0
  24. data/vendor/assets/images/{claro → themes/claro}/form/images/checkboxAndRadioButtons_IE6.png +0 -0
  25. data/vendor/assets/images/{claro → themes/claro}/form/images/checkboxRadioButtonStates.png +0 -0
  26. data/vendor/assets/images/{claro → themes/claro}/form/images/commonFormArrows.png +0 -0
  27. data/vendor/assets/images/{claro → themes/claro}/form/images/error.png +0 -0
  28. data/vendor/assets/images/{claro → themes/claro}/form/images/sliderThumbs.png +0 -0
  29. data/vendor/assets/images/{claro → themes/claro/images}/activeGradient.png +0 -0
  30. data/vendor/assets/images/{claro → themes/claro/images}/calendar.png +0 -0
  31. data/vendor/assets/images/{claro → themes/claro/images}/calendarArrows.png +0 -0
  32. data/vendor/assets/images/{claro → themes/claro/images}/calendarArrows8bit.png +0 -0
  33. data/vendor/assets/images/{claro → themes/claro/images}/checkmarkNoBorder.gif +0 -0
  34. data/vendor/assets/images/{claro → themes/claro/images}/checkmarkNoBorder.png +0 -0
  35. data/vendor/assets/images/{claro → themes/claro/images}/dialogCloseIcon.png +0 -0
  36. data/vendor/assets/images/{claro → themes/claro/images}/dialogCloseIcon8bit.png +0 -0
  37. data/vendor/assets/images/{claro → themes/claro/images}/dnd.png +0 -0
  38. data/vendor/assets/images/{claro → themes/claro/images}/loadingAnimation.gif +0 -0
  39. data/vendor/assets/images/{claro → themes/claro/images}/progressBarAnim.gif +0 -0
  40. data/vendor/assets/images/{claro → themes/claro/images}/progressBarFull.png +0 -0
  41. data/vendor/assets/images/{claro → themes/claro/images}/spriteArrows.png +0 -0
  42. data/vendor/assets/images/{claro → themes/claro/images}/standardGradient.png +0 -0
  43. data/vendor/assets/images/{claro → themes/claro/images}/tooltip.png +0 -0
  44. data/vendor/assets/images/{claro → themes/claro/images}/tooltip8bit.png +0 -0
  45. data/vendor/assets/images/{claro → themes/claro/images}/treeExpandImages.png +0 -0
  46. data/vendor/assets/images/{claro → themes/claro/images}/treeExpandImages8bit.png +0 -0
  47. data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabBottomSelected.png +0 -0
  48. data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabBottomUnselected.png +0 -0
  49. data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabClose.png +0 -0
  50. data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabLeftSelected.png +0 -0
  51. data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabLeftUnselected.png +0 -0
  52. data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabNested.png +0 -0
  53. data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabRightSelected.png +0 -0
  54. data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabRightUnselected.png +0 -0
  55. data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabTopSelected.png +0 -0
  56. data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabTopUnselected.png +0 -0
  57. data/vendor/assets/images/{nihilo → themes/nihilo/images}/accordionItemActive.png +0 -0
  58. data/vendor/assets/images/{nihilo → themes/nihilo/images}/buttonActive.png +0 -0
  59. data/vendor/assets/images/{nihilo → themes/nihilo/images}/buttonDisabled.png +0 -0
  60. data/vendor/assets/images/{nihilo → themes/nihilo/images}/buttonEnabled.png +0 -0
  61. data/vendor/assets/images/{nihilo → themes/nihilo/images}/buttonHover.png +0 -0
  62. data/vendor/assets/images/{nihilo → themes/nihilo/images}/dndCopy.png +0 -0
  63. data/vendor/assets/images/{nihilo → themes/nihilo/images}/dndMove.png +0 -0
  64. data/vendor/assets/images/{nihilo → themes/nihilo/images}/dndNoCopy.png +0 -0
  65. data/vendor/assets/images/{nihilo → themes/nihilo/images}/dndNoMove.png +0 -0
  66. data/vendor/assets/images/{nihilo → themes/nihilo/images}/no.gif +0 -0
  67. data/vendor/assets/images/{nihilo → themes/nihilo/images}/preciseSliderThumb.gif +0 -0
  68. data/vendor/assets/images/{nihilo → themes/nihilo/images}/preciseSliderThumb.png +0 -0
  69. data/vendor/assets/images/{nihilo → themes/nihilo/images}/preciseSliderThumbFocus.gif +0 -0
  70. data/vendor/assets/images/{nihilo → themes/nihilo/images}/preciseSliderThumbFocus.png +0 -0
  71. data/vendor/assets/images/{nihilo → themes/nihilo/images}/progressBarAnim.gif +0 -0
  72. data/vendor/assets/images/{nihilo → themes/nihilo/images}/progressBarEmpty.png +0 -0
  73. data/vendor/assets/images/{nihilo → themes/nihilo/images}/progressBarFull.png +0 -0
  74. data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderEmpty.png +0 -0
  75. data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderEmptyVertical.png +0 -0
  76. data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderFull.png +0 -0
  77. data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderFullFocus.png +0 -0
  78. data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderFullVertical.png +0 -0
  79. data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderFullVerticalFocus.png +0 -0
  80. data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderThumb.gif +0 -0
  81. data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderThumb.png +0 -0
  82. data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderThumbFocus.gif +0 -0
  83. data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderThumbFocus.png +0 -0
  84. data/vendor/assets/images/{nihilo → themes/nihilo/images}/splitContainerSizerH-thumb.png +0 -0
  85. data/vendor/assets/images/{nihilo → themes/nihilo/images}/splitContainerSizerH.png +0 -0
  86. data/vendor/assets/images/{nihilo → themes/nihilo/images}/splitContainerSizerV-thumb.png +0 -0
  87. data/vendor/assets/images/{nihilo → themes/nihilo/images}/splitContainerSizerV.png +0 -0
  88. data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteArrows.gif +0 -0
  89. data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteArrows.png +0 -0
  90. data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteCheckbox.gif +0 -0
  91. data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteCheckbox.png +0 -0
  92. data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteDivIcons.gif +0 -0
  93. data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteDivIcons.png +0 -0
  94. data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteRadio.gif +0 -0
  95. data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteRadio.png +0 -0
  96. data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteRoundedIconsSmall.gif +0 -0
  97. data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteRoundedIconsSmall.png +0 -0
  98. data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteTree.gif +0 -0
  99. data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteTree.png +0 -0
  100. data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteTree_rtl.gif +0 -0
  101. data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteTree_rtl.png +0 -0
  102. data/vendor/assets/images/{nihilo → themes/nihilo/images}/tabBottomActiveC.gif +0 -0
  103. data/vendor/assets/images/{nihilo → themes/nihilo/images}/tabBottomEnabledC.gif +0 -0
  104. data/vendor/assets/images/{nihilo → themes/nihilo/images}/tabBottomHoverC.gif +0 -0
  105. data/vendor/assets/images/{nihilo → themes/nihilo/images}/tabContainerSprite.gif +0 -0
  106. data/vendor/assets/images/{nihilo → themes/nihilo/images}/titleBar.png +0 -0
  107. data/vendor/assets/images/{nihilo → themes/nihilo/images}/titleBarActive.png +0 -0
  108. data/vendor/assets/images/{nihilo → themes/nihilo/images}/tooltipConnectorDown.gif +0 -0
  109. data/vendor/assets/images/{nihilo → themes/nihilo/images}/tooltipConnectorDown.png +0 -0
  110. data/vendor/assets/images/{nihilo → themes/nihilo/images}/tooltipConnectorLeft.gif +0 -0
  111. data/vendor/assets/images/{nihilo → themes/nihilo/images}/tooltipConnectorLeft.png +0 -0
  112. data/vendor/assets/images/{nihilo → themes/nihilo/images}/tooltipConnectorRight.gif +0 -0
  113. data/vendor/assets/images/{nihilo → themes/nihilo/images}/tooltipConnectorRight.png +0 -0
  114. data/vendor/assets/images/{nihilo → themes/nihilo/images}/tooltipConnectorUp.gif +0 -0
  115. data/vendor/assets/images/{nihilo → themes/nihilo/images}/tooltipConnectorUp.png +0 -0
  116. data/vendor/assets/images/{nihilo → themes/nihilo/images}/treeExpand_loading.gif +0 -0
  117. data/vendor/assets/images/{nihilo → themes/nihilo/images}/treeHover.png +0 -0
  118. data/vendor/assets/images/{nihilo → themes/nihilo/images}/treeI.gif +0 -0
  119. data/vendor/assets/images/{nihilo → themes/nihilo/images}/treeI_half.gif +0 -0
  120. data/vendor/assets/images/{nihilo → themes/nihilo/images}/treeI_half_rtl.gif +0 -0
  121. data/vendor/assets/images/{nihilo → themes/nihilo/images}/treeI_rtl.gif +0 -0
  122. data/vendor/assets/images/{nihilo → themes/nihilo/images}/validationInputBg.gif +0 -0
  123. data/vendor/assets/images/{nihilo → themes/nihilo/images}/validationInputBg.png +0 -0
  124. data/vendor/assets/images/{nihilo → themes/nihilo/images}/warning.png +0 -0
  125. data/vendor/assets/images/{soria → themes/soria/images}/accordionItemActive.gif +0 -0
  126. data/vendor/assets/images/{soria → themes/soria/images}/accordionItemActive.png +0 -0
  127. data/vendor/assets/images/{soria → themes/soria/images}/buttonActive.png +0 -0
  128. data/vendor/assets/images/{soria → themes/soria/images}/buttonDisabled.png +0 -0
  129. data/vendor/assets/images/{soria → themes/soria/images}/buttonEnabled.png +0 -0
  130. data/vendor/assets/images/{soria → themes/soria/images}/buttonHover.png +0 -0
  131. data/vendor/assets/images/{soria → themes/soria/images}/dndCopy.png +0 -0
  132. data/vendor/assets/images/{soria → themes/soria/images}/dndMove.png +0 -0
  133. data/vendor/assets/images/{soria → themes/soria/images}/dndNoCopy.png +0 -0
  134. data/vendor/assets/images/{soria → themes/soria/images}/dndNoMove.png +0 -0
  135. data/vendor/assets/images/{soria → themes/soria/images}/preciseSliderThumb.gif +0 -0
  136. data/vendor/assets/images/{soria → themes/soria/images}/preciseSliderThumb.png +0 -0
  137. data/vendor/assets/images/{soria → themes/soria/images}/preciseSliderThumbFocus.gif +0 -0
  138. data/vendor/assets/images/{soria → themes/soria/images}/preciseSliderThumbFocus.png +0 -0
  139. data/vendor/assets/images/{soria → themes/soria/images}/progressBarAnim.gif +0 -0
  140. data/vendor/assets/images/{soria → themes/soria/images}/progressBarEmpty.png +0 -0
  141. data/vendor/assets/images/{soria → themes/soria/images}/progressBarFull.png +0 -0
  142. data/vendor/assets/images/{soria → themes/soria/images}/sliderEmpty.png +0 -0
  143. data/vendor/assets/images/{soria → themes/soria/images}/sliderEmptyVertical.png +0 -0
  144. data/vendor/assets/images/{soria → themes/soria/images}/sliderFull.png +0 -0
  145. data/vendor/assets/images/{soria → themes/soria/images}/sliderFullFocus.png +0 -0
  146. data/vendor/assets/images/{soria → themes/soria/images}/sliderFullVertical.png +0 -0
  147. data/vendor/assets/images/{soria → themes/soria/images}/sliderFullVerticalFocus.png +0 -0
  148. data/vendor/assets/images/{soria → themes/soria/images}/sliderThumb.gif +0 -0
  149. data/vendor/assets/images/{soria → themes/soria/images}/sliderThumb.png +0 -0
  150. data/vendor/assets/images/{soria → themes/soria/images}/sliderThumbFocus.gif +0 -0
  151. data/vendor/assets/images/{soria → themes/soria/images}/sliderThumbFocus.png +0 -0
  152. data/vendor/assets/images/{soria → themes/soria/images}/splitContainerSizerH-thumb.png +0 -0
  153. data/vendor/assets/images/{soria → themes/soria/images}/splitContainerSizerH.png +0 -0
  154. data/vendor/assets/images/{soria → themes/soria/images}/splitContainerSizerV-thumb.png +0 -0
  155. data/vendor/assets/images/{soria → themes/soria/images}/splitContainerSizerV.png +0 -0
  156. data/vendor/assets/images/{soria → themes/soria/images}/spriteArrows.gif +0 -0
  157. data/vendor/assets/images/{soria → themes/soria/images}/spriteArrows.png +0 -0
  158. data/vendor/assets/images/{soria → themes/soria/images}/spriteCheckbox.gif +0 -0
  159. data/vendor/assets/images/{soria → themes/soria/images}/spriteCheckbox.png +0 -0
  160. data/vendor/assets/images/{soria → themes/soria/images}/spriteDivIcons.gif +0 -0
  161. data/vendor/assets/images/{soria → themes/soria/images}/spriteDivIcons.png +0 -0
  162. data/vendor/assets/images/{soria → themes/soria/images}/spriteRadio.gif +0 -0
  163. data/vendor/assets/images/{soria → themes/soria/images}/spriteRadio.png +0 -0
  164. data/vendor/assets/images/{soria → themes/soria/images}/spriteRoundedIconsSmall.gif +0 -0
  165. data/vendor/assets/images/{soria → themes/soria/images}/spriteRoundedIconsSmall.png +0 -0
  166. data/vendor/assets/images/{soria → themes/soria/images}/spriteRoundedIconsSmallBl.gif +0 -0
  167. data/vendor/assets/images/{soria → themes/soria/images}/spriteRoundedIconsSmallBl.png +0 -0
  168. data/vendor/assets/images/{soria → themes/soria/images}/spriteTree.gif +0 -0
  169. data/vendor/assets/images/{soria → themes/soria/images}/spriteTree.png +0 -0
  170. data/vendor/assets/images/{soria → themes/soria/images}/spriteTree_rtl.gif +0 -0
  171. data/vendor/assets/images/{soria → themes/soria/images}/spriteTree_rtl.png +0 -0
  172. data/vendor/assets/images/{soria → themes/soria/images}/tabBottomActiveC.gif +0 -0
  173. data/vendor/assets/images/{soria → themes/soria/images}/tabBottomEnabledC.gif +0 -0
  174. data/vendor/assets/images/{soria → themes/soria/images}/tabBottomEnabledSpriteLR.gif +0 -0
  175. data/vendor/assets/images/{soria → themes/soria/images}/tabBottomHoverC.gif +0 -0
  176. data/vendor/assets/images/{soria → themes/soria/images}/tabContainerSprite.gif +0 -0
  177. data/vendor/assets/images/{soria → themes/soria/images}/tabLeftChecked.gif +0 -0
  178. data/vendor/assets/images/{soria → themes/soria/images}/tabRightChecked.gif +0 -0
  179. data/vendor/assets/images/{soria → themes/soria/images}/titleBar.png +0 -0
  180. data/vendor/assets/images/{soria → themes/soria/images}/titleBarActive.png +0 -0
  181. data/vendor/assets/images/{soria → themes/soria/images}/tooltipConnectorDown.gif +0 -0
  182. data/vendor/assets/images/{soria → themes/soria/images}/tooltipConnectorDown.png +0 -0
  183. data/vendor/assets/images/{soria → themes/soria/images}/tooltipConnectorLeft.gif +0 -0
  184. data/vendor/assets/images/{soria → themes/soria/images}/tooltipConnectorLeft.png +0 -0
  185. data/vendor/assets/images/{soria → themes/soria/images}/tooltipConnectorRight.gif +0 -0
  186. data/vendor/assets/images/{soria → themes/soria/images}/tooltipConnectorRight.png +0 -0
  187. data/vendor/assets/images/{soria → themes/soria/images}/tooltipConnectorUp.gif +0 -0
  188. data/vendor/assets/images/{soria → themes/soria/images}/tooltipConnectorUp.png +0 -0
  189. data/vendor/assets/images/{soria → themes/soria/images}/treeExpand_loading.gif +0 -0
  190. data/vendor/assets/images/{soria → themes/soria/images}/treeHover.png +0 -0
  191. data/vendor/assets/images/{soria → themes/soria/images}/treeI.gif +0 -0
  192. data/vendor/assets/images/{soria → themes/soria/images}/treeI_half.gif +0 -0
  193. data/vendor/assets/images/{soria → themes/soria/images}/treeI_half_rtl.gif +0 -0
  194. data/vendor/assets/images/{soria → themes/soria/images}/treeI_rtl.gif +0 -0
  195. data/vendor/assets/images/{soria → themes/soria/images}/validationInputBg.gif +0 -0
  196. data/vendor/assets/images/{soria → themes/soria/images}/validationInputBg.png +0 -0
  197. data/vendor/assets/images/{soria → themes/soria/images}/warning.png +0 -0
  198. data/vendor/assets/images/{tundra → themes/tundra/images}/accordionItemActive.gif +0 -0
  199. data/vendor/assets/images/{tundra → themes/tundra/images}/accordionItemHover.gif +0 -0
  200. data/vendor/assets/images/{tundra → themes/tundra/images}/buttonActive.png +0 -0
  201. data/vendor/assets/images/{tundra → themes/tundra/images}/buttonDisabled.png +0 -0
  202. data/vendor/assets/images/{tundra → themes/tundra/images}/buttonEnabled.png +0 -0
  203. data/vendor/assets/images/{tundra → themes/tundra/images}/buttonHover.png +0 -0
  204. data/vendor/assets/images/{tundra → themes/tundra/images}/calendarDayLabel.png +0 -0
  205. data/vendor/assets/images/{tundra → themes/tundra/images}/calendarMonthLabel.png +0 -0
  206. data/vendor/assets/images/{tundra → themes/tundra/images}/calendarYearLabel.png +0 -0
  207. data/vendor/assets/images/{tundra → themes/tundra/images}/checkmark.gif +0 -0
  208. data/vendor/assets/images/{tundra → themes/tundra/images}/checkmark.png +0 -0
  209. data/vendor/assets/images/{tundra → themes/tundra/images}/checkmarkNoBorder.gif +0 -0
  210. data/vendor/assets/images/{tundra → themes/tundra/images}/checkmarkNoBorder.png +0 -0
  211. data/vendor/assets/images/{tundra → themes/tundra/images}/circleIcon.gif +0 -0
  212. data/vendor/assets/images/{tundra → themes/tundra/images}/circleIcon.png +0 -0
  213. data/vendor/assets/images/{tundra → themes/tundra/images}/comboArrowDown.gif +0 -0
  214. data/vendor/assets/images/{tundra → themes/tundra/images}/dijitProgressBarAnim.gif +0 -0
  215. data/vendor/assets/images/{tundra → themes/tundra/images}/dndCopy.png +0 -0
  216. data/vendor/assets/images/{tundra → themes/tundra/images}/dndMove.png +0 -0
  217. data/vendor/assets/images/{tundra → themes/tundra/images}/dndNoCopy.png +0 -0
  218. data/vendor/assets/images/{tundra → themes/tundra/images}/dndNoMove.png +0 -0
  219. data/vendor/assets/images/{tundra → themes/tundra/images}/dojoTundraGradientBg.gif +0 -0
  220. data/vendor/assets/images/{tundra → themes/tundra/images}/dojoTundraGradientBg.png +0 -0
  221. data/vendor/assets/images/{tundra → themes/tundra/images}/doubleArrowDown.png +0 -0
  222. data/vendor/assets/images/{tundra → themes/tundra/images}/doubleArrowUp.png +0 -0
  223. data/vendor/assets/images/{tundra → themes/tundra/images}/folderClosed.gif +0 -0
  224. data/vendor/assets/images/{tundra → themes/tundra/images}/folderOpened.gif +0 -0
  225. data/vendor/assets/images/{tundra → themes/tundra/images}/i.gif +0 -0
  226. data/vendor/assets/images/{tundra → themes/tundra/images}/i_half.gif +0 -0
  227. data/vendor/assets/images/{tundra → themes/tundra/images}/i_half_rtl.gif +0 -0
  228. data/vendor/assets/images/{tundra → themes/tundra/images}/i_rtl.gif +0 -0
  229. data/vendor/assets/images/{tundra → themes/tundra/images}/leaf.gif +0 -0
  230. data/vendor/assets/images/{tundra → themes/tundra/images}/loading.gif +0 -0
  231. data/vendor/assets/images/{tundra → themes/tundra/images}/menu.png +0 -0
  232. data/vendor/assets/images/{tundra → themes/tundra/images}/minusButton.gif +0 -0
  233. data/vendor/assets/images/{tundra → themes/tundra/images}/no.gif +0 -0
  234. data/vendor/assets/images/{tundra → themes/tundra/images}/noX.gif +0 -0
  235. data/vendor/assets/images/{tundra → themes/tundra/images}/plusButton.gif +0 -0
  236. data/vendor/assets/images/{tundra → themes/tundra/images}/popupMenuBg.gif +0 -0
  237. data/vendor/assets/images/{tundra → themes/tundra/images}/preciseSliderThumb.gif +0 -0
  238. data/vendor/assets/images/{tundra → themes/tundra/images}/preciseSliderThumb.png +0 -0
  239. data/vendor/assets/images/{tundra → themes/tundra/images}/preciseSliderThumbFocus.gif +0 -0
  240. data/vendor/assets/images/{tundra → themes/tundra/images}/preciseSliderThumbFocus.png +0 -0
  241. data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-1.png +0 -0
  242. data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-2.png +0 -0
  243. data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-3.png +0 -0
  244. data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-4.png +0 -0
  245. data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-5.png +0 -0
  246. data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-6.png +0 -0
  247. data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-7.png +0 -0
  248. data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-8.png +0 -0
  249. data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-9.png +0 -0
  250. data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim.gif +0 -0
  251. data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarEmpty.png +0 -0
  252. data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarFull.png +0 -0
  253. data/vendor/assets/images/{tundra → themes/tundra/images}/radioButtonActive.png +0 -0
  254. data/vendor/assets/images/{tundra → themes/tundra/images}/radioButtonActiveDisabled.png +0 -0
  255. data/vendor/assets/images/{tundra → themes/tundra/images}/radioButtonActiveHover.png +0 -0
  256. data/vendor/assets/images/{tundra → themes/tundra/images}/radioButtonDisabled.png +0 -0
  257. data/vendor/assets/images/{tundra → themes/tundra/images}/radioButtonEnabled.png +0 -0
  258. data/vendor/assets/images/{tundra → themes/tundra/images}/radioButtonHover.png +0 -0
  259. data/vendor/assets/images/{tundra → themes/tundra/images}/sliderEmpty.png +0 -0
  260. data/vendor/assets/images/{tundra → themes/tundra/images}/sliderEmptyVertical.png +0 -0
  261. data/vendor/assets/images/{tundra → themes/tundra/images}/sliderFull.png +0 -0
  262. data/vendor/assets/images/{tundra → themes/tundra/images}/sliderFullFocus.png +0 -0
  263. data/vendor/assets/images/{tundra → themes/tundra/images}/sliderFullVertical.png +0 -0
  264. data/vendor/assets/images/{tundra → themes/tundra/images}/sliderFullVerticalFocus.png +0 -0
  265. data/vendor/assets/images/{tundra → themes/tundra/images}/sliderThumb.png +0 -0
  266. data/vendor/assets/images/{tundra → themes/tundra/images}/sliderThumbFocus.gif +0 -0
  267. data/vendor/assets/images/{tundra → themes/tundra/images}/sliderThumbFocus.png +0 -0
  268. data/vendor/assets/images/{tundra → themes/tundra/images}/smallArrowDown.png +0 -0
  269. data/vendor/assets/images/{tundra → themes/tundra/images}/smallArrowUp.png +0 -0
  270. data/vendor/assets/images/{tundra → themes/tundra/images}/splitContainerSizerH-thumb.png +0 -0
  271. data/vendor/assets/images/{tundra → themes/tundra/images}/splitContainerSizerH.png +0 -0
  272. data/vendor/assets/images/{tundra → themes/tundra/images}/splitContainerSizerV-thumb.png +0 -0
  273. data/vendor/assets/images/{tundra → themes/tundra/images}/splitContainerSizerV.png +0 -0
  274. data/vendor/assets/images/{tundra → themes/tundra/images}/spriteArrows.gif +0 -0
  275. data/vendor/assets/images/{tundra → themes/tundra/images}/spriteArrows.png +0 -0
  276. data/vendor/assets/images/{tundra → themes/tundra/images}/spriteRoundedIconsSmall.gif +0 -0
  277. data/vendor/assets/images/{tundra → themes/tundra/images}/spriteRoundedIconsSmall.png +0 -0
  278. data/vendor/assets/images/{tundra → themes/tundra/images}/tabActive.png +0 -0
  279. data/vendor/assets/images/{tundra → themes/tundra/images}/tabClose.gif +0 -0
  280. data/vendor/assets/images/{tundra → themes/tundra/images}/tabClose.png +0 -0
  281. data/vendor/assets/images/{tundra → themes/tundra/images}/tabCloseHover.gif +0 -0
  282. data/vendor/assets/images/{tundra → themes/tundra/images}/tabCloseHover.png +0 -0
  283. data/vendor/assets/images/{tundra → themes/tundra/images}/tabDisabled.png +0 -0
  284. data/vendor/assets/images/{tundra → themes/tundra/images}/tabEnabled.png +0 -0
  285. data/vendor/assets/images/{tundra → themes/tundra/images}/tabHover.gif +0 -0
  286. data/vendor/assets/images/{tundra → themes/tundra/images}/tabHover.png +0 -0
  287. data/vendor/assets/images/{tundra → themes/tundra/images}/titleBar.png +0 -0
  288. data/vendor/assets/images/{tundra → themes/tundra/images}/titleBarBg.gif +0 -0
  289. data/vendor/assets/images/{tundra → themes/tundra/images}/tooltipConnectorDown.gif +0 -0
  290. data/vendor/assets/images/{tundra → themes/tundra/images}/tooltipConnectorDown.png +0 -0
  291. data/vendor/assets/images/{tundra → themes/tundra/images}/tooltipConnectorLeft.gif +0 -0
  292. data/vendor/assets/images/{tundra → themes/tundra/images}/tooltipConnectorLeft.png +0 -0
  293. data/vendor/assets/images/{tundra → themes/tundra/images}/tooltipConnectorRight.gif +0 -0
  294. data/vendor/assets/images/{tundra → themes/tundra/images}/tooltipConnectorRight.png +0 -0
  295. data/vendor/assets/images/{tundra → themes/tundra/images}/tooltipConnectorUp.gif +0 -0
  296. data/vendor/assets/images/{tundra → themes/tundra/images}/tooltipConnectorUp.png +0 -0
  297. data/vendor/assets/images/{tundra → themes/tundra/images}/treeExpand_leaf.gif +0 -0
  298. data/vendor/assets/images/{tundra → themes/tundra/images}/treeExpand_leaf_rtl.gif +0 -0
  299. data/vendor/assets/images/{tundra → themes/tundra/images}/treeExpand_loading.gif +0 -0
  300. data/vendor/assets/images/{tundra → themes/tundra/images}/treeExpand_minus.gif +0 -0
  301. data/vendor/assets/images/{tundra → themes/tundra/images}/treeExpand_minus_rtl.gif +0 -0
  302. data/vendor/assets/images/{tundra → themes/tundra/images}/treeExpand_mius.gif +0 -0
  303. data/vendor/assets/images/{tundra → themes/tundra/images}/treeExpand_plus.gif +0 -0
  304. data/vendor/assets/images/{tundra → themes/tundra/images}/treeExpand_plus_rtl.gif +0 -0
  305. data/vendor/assets/images/{tundra → themes/tundra/images}/treeHover.png +0 -0
  306. data/vendor/assets/images/{tundra → themes/tundra/images}/validationInputBg.gif +0 -0
  307. data/vendor/assets/images/{tundra → themes/tundra/images}/validationInputBg.png +0 -0
  308. data/vendor/assets/images/{tundra → themes/tundra/images}/warning.png +0 -0
  309. data/vendor/assets/javascripts/dijit/BackgroundIframe.js +2 -1
  310. data/vendor/assets/javascripts/dijit/CalendarLite.js +85 -81
  311. data/vendor/assets/javascripts/dijit/CheckedMenuItem.js +1 -1
  312. data/vendor/assets/javascripts/dijit/ColorPalette.js +1 -1
  313. data/vendor/assets/javascripts/dijit/Destroyable.js +6 -6
  314. data/vendor/assets/javascripts/dijit/Dialog.js +3 -1
  315. data/vendor/assets/javascripts/dijit/Editor.js +58 -58
  316. data/vendor/assets/javascripts/dijit/InlineEditBox.js +81 -81
  317. data/vendor/assets/javascripts/dijit/MenuSeparator.js +1 -1
  318. data/vendor/assets/javascripts/dijit/ProgressBar.js +2 -4
  319. data/vendor/assets/javascripts/dijit/TitlePane.js +5 -2
  320. data/vendor/assets/javascripts/dijit/TooltipDialog.js +1 -1
  321. data/vendor/assets/javascripts/dijit/Tree.js +10 -1
  322. data/vendor/assets/javascripts/dijit/_CssStateMixin.js +70 -70
  323. data/vendor/assets/javascripts/dijit/_HasDropDown.js +56 -49
  324. data/vendor/assets/javascripts/dijit/_MenuBase.js +68 -64
  325. data/vendor/assets/javascripts/dijit/_PaletteMixin.js +2 -2
  326. data/vendor/assets/javascripts/dijit/_TimePicker.js +5 -1
  327. data/vendor/assets/javascripts/dijit/_WidgetBase.js +10 -6
  328. data/vendor/assets/javascripts/dijit/_editor/RichText.js +645 -625
  329. data/vendor/assets/javascripts/dijit/_editor/plugins/EnterKeyHandling.js +2 -2
  330. data/vendor/assets/javascripts/dijit/_editor/plugins/FontChoice.js +2 -0
  331. data/vendor/assets/javascripts/dijit/_editor/plugins/LinkDialog.js +4 -0
  332. data/vendor/assets/javascripts/dijit/_editor/plugins/TextColor.js +1 -1
  333. data/vendor/assets/javascripts/dijit/_editor/plugins/ViewSource.js +3 -0
  334. data/vendor/assets/javascripts/dijit/a11y.js +1 -1
  335. data/vendor/assets/javascripts/dijit/dijit-all.js +2 -2
  336. data/vendor/assets/javascripts/dijit/dijit.js +2 -2
  337. data/vendor/assets/javascripts/dijit/form/CheckBox.js +2 -2
  338. data/vendor/assets/javascripts/dijit/form/ComboBoxMixin.js +1 -1
  339. data/vendor/assets/javascripts/dijit/form/DropDownButton.js +1 -1
  340. data/vendor/assets/javascripts/dijit/form/NumberSpinner.js +4 -1
  341. data/vendor/assets/javascripts/dijit/form/RangeBoundTextBox.js +0 -17
  342. data/vendor/assets/javascripts/dijit/form/Select.js +3 -3
  343. data/vendor/assets/javascripts/dijit/form/TextBox.js +3 -1
  344. data/vendor/assets/javascripts/dijit/form/ValidationTextBox.js +21 -19
  345. data/vendor/assets/javascripts/dijit/form/_AutoCompleterMixin.js +3 -4
  346. data/vendor/assets/javascripts/dijit/form/_CheckBoxMixin.js +2 -3
  347. data/vendor/assets/javascripts/dijit/form/_ComboBoxMenu.js +2 -1
  348. data/vendor/assets/javascripts/dijit/form/_DateTimeTextBox.js +1 -1
  349. data/vendor/assets/javascripts/dijit/form/_ExpandingTextAreaMixin.js +27 -31
  350. data/vendor/assets/javascripts/dijit/form/_FormSelectWidget.js +155 -170
  351. data/vendor/assets/javascripts/dijit/form/_FormValueMixin.js +0 -1
  352. data/vendor/assets/javascripts/dijit/form/_FormWidgetMixin.js +1 -1
  353. data/vendor/assets/javascripts/dijit/form/_RadioButtonMixin.js +1 -1
  354. data/vendor/assets/javascripts/dijit/form/_SearchMixin.js +1 -1
  355. data/vendor/assets/javascripts/dijit/form/_Spinner.js +17 -0
  356. data/vendor/assets/javascripts/dijit/form/_ToggleButtonMixin.js +13 -2
  357. data/vendor/assets/javascripts/dijit/layout/AccordionContainer.js +2 -1
  358. data/vendor/assets/javascripts/dijit/layout/ContentPane.js +80 -83
  359. data/vendor/assets/javascripts/dijit/layout/ScrollingTabController.js +4 -3
  360. data/vendor/assets/javascripts/dijit/layout/StackContainer.js +0 -1
  361. data/vendor/assets/javascripts/dijit/layout/StackController.js +0 -1
  362. data/vendor/assets/javascripts/dijit/nls/dijit-all_ROOT.js +1 -1
  363. data/vendor/assets/javascripts/dijit/nls/dijit-all_ar.js +1 -1
  364. data/vendor/assets/javascripts/dijit/nls/dijit-all_ca.js +1 -1
  365. data/vendor/assets/javascripts/dijit/nls/dijit-all_cs.js +1 -1
  366. data/vendor/assets/javascripts/dijit/nls/dijit-all_da.js +1 -1
  367. data/vendor/assets/javascripts/dijit/nls/dijit-all_de.js +1 -1
  368. data/vendor/assets/javascripts/dijit/nls/dijit-all_el.js +1 -1
  369. data/vendor/assets/javascripts/dijit/nls/dijit-all_en-gb.js +1 -1
  370. data/vendor/assets/javascripts/dijit/nls/dijit-all_en-us.js +1 -1
  371. data/vendor/assets/javascripts/dijit/nls/dijit-all_es-es.js +1 -1
  372. data/vendor/assets/javascripts/dijit/nls/dijit-all_fi-fi.js +1 -1
  373. data/vendor/assets/javascripts/dijit/nls/dijit-all_fr-fr.js +1 -1
  374. data/vendor/assets/javascripts/dijit/nls/dijit-all_he-il.js +1 -1
  375. data/vendor/assets/javascripts/dijit/nls/dijit-all_hu.js +1 -1
  376. data/vendor/assets/javascripts/dijit/nls/dijit-all_it-it.js +1 -1
  377. data/vendor/assets/javascripts/dijit/nls/dijit-all_ja-jp.js +1 -1
  378. data/vendor/assets/javascripts/dijit/nls/dijit-all_ko-kr.js +1 -1
  379. data/vendor/assets/javascripts/dijit/nls/dijit-all_nb.js +1 -1
  380. data/vendor/assets/javascripts/dijit/nls/dijit-all_nl-nl.js +1 -1
  381. data/vendor/assets/javascripts/dijit/nls/dijit-all_pl.js +1 -1
  382. data/vendor/assets/javascripts/dijit/nls/dijit-all_pt-br.js +1 -1
  383. data/vendor/assets/javascripts/dijit/nls/dijit-all_pt-pt.js +1 -1
  384. data/vendor/assets/javascripts/dijit/nls/dijit-all_ru.js +1 -1
  385. data/vendor/assets/javascripts/dijit/nls/dijit-all_sk.js +1 -1
  386. data/vendor/assets/javascripts/dijit/nls/dijit-all_sl.js +1 -1
  387. data/vendor/assets/javascripts/dijit/nls/dijit-all_sv.js +1 -1
  388. data/vendor/assets/javascripts/dijit/nls/dijit-all_th.js +1 -1
  389. data/vendor/assets/javascripts/dijit/nls/dijit-all_tr.js +1 -1
  390. data/vendor/assets/javascripts/dijit/nls/dijit-all_zh-cn.js +1 -1
  391. data/vendor/assets/javascripts/dijit/nls/dijit-all_zh-tw.js +1 -1
  392. data/vendor/assets/javascripts/dijit/package.json +2 -2
  393. data/vendor/assets/javascripts/dijit/popup.js +8 -10
  394. data/vendor/assets/javascripts/dijit/registry.js +1 -1
  395. data/vendor/assets/javascripts/dijit/themes/claro/compile.js +52 -0
  396. data/vendor/assets/{images → javascripts/dijit/themes}/claro/form/images/buttonDisabled.svg +0 -0
  397. data/vendor/assets/{images → javascripts/dijit/themes}/claro/form/images/buttonEnabled.svg +0 -0
  398. data/vendor/assets/{images/claro → javascripts/dijit/themes/claro/images}/activeGradient.svg +0 -0
  399. data/vendor/assets/{images/claro → javascripts/dijit/themes/claro/images}/standardGradient.svg +0 -0
  400. data/vendor/assets/{stylesheets → javascripts/dijit/themes}/claro/layout/images/tabBottomSelected.svg +0 -0
  401. data/vendor/assets/{stylesheets → javascripts/dijit/themes}/claro/layout/images/tabBottomUnselected.svg +0 -0
  402. data/vendor/assets/{stylesheets → javascripts/dijit/themes}/claro/layout/images/tabLeftSelected.svg +0 -0
  403. data/vendor/assets/{stylesheets → javascripts/dijit/themes}/claro/layout/images/tabLeftUnselected.svg +0 -0
  404. data/vendor/assets/{stylesheets → javascripts/dijit/themes}/claro/layout/images/tabRightSelected.svg +0 -0
  405. data/vendor/assets/{stylesheets → javascripts/dijit/themes}/claro/layout/images/tabRightUnselected.svg +0 -0
  406. data/vendor/assets/{stylesheets → javascripts/dijit/themes}/claro/layout/images/tabTopSelected.svg +0 -0
  407. data/vendor/assets/{stylesheets → javascripts/dijit/themes}/claro/layout/images/tabTopUnselected.svg +0 -0
  408. data/vendor/assets/{images/tundra → javascripts/dijit/themes/tundra/images}/dijitProgressBarAnim.psd +0 -0
  409. data/vendor/assets/{images/tundra → javascripts/dijit/themes/tundra/images}/progressBarAnim.psd +0 -0
  410. data/vendor/assets/javascripts/dijit/tree/ObjectStoreModel.js +3 -4
  411. data/vendor/assets/javascripts/dijit/tree/_dndSelector.js +5 -2
  412. data/vendor/assets/{javascripts/dijit → stylesheets}/icons/commonIcons.css +1 -1
  413. data/vendor/assets/{javascripts/dijit → stylesheets}/icons/commonIcons_rtl.css +0 -0
  414. data/vendor/assets/{javascripts/dijit → stylesheets}/icons/editorIcons.css +0 -0
  415. data/vendor/assets/{javascripts/dijit → stylesheets}/icons/editorIcons_rtl.css +0 -0
  416. data/vendor/assets/stylesheets/{claro → themes/claro}/Calendar.css +2 -2
  417. data/vendor/assets/stylesheets/themes/claro/Calendar.less +277 -0
  418. data/vendor/assets/stylesheets/{claro → themes/claro}/Calendar_rtl.css +0 -0
  419. data/vendor/assets/stylesheets/themes/claro/Calendar_rtl.less +19 -0
  420. data/vendor/assets/stylesheets/{claro → themes/claro}/ColorPalette.css +0 -0
  421. data/vendor/assets/stylesheets/themes/claro/ColorPalette.less +44 -0
  422. data/vendor/assets/stylesheets/{claro → themes/claro}/Common.css +2 -2
  423. data/vendor/assets/stylesheets/themes/claro/Common.less +86 -0
  424. data/vendor/assets/stylesheets/{claro → themes/claro}/Dialog.css +2 -2
  425. data/vendor/assets/stylesheets/themes/claro/Dialog.less +209 -0
  426. data/vendor/assets/stylesheets/{claro → themes/claro}/Dialog_rtl.css +0 -0
  427. data/vendor/assets/stylesheets/themes/claro/Dialog_rtl.less +13 -0
  428. data/vendor/assets/stylesheets/{claro → themes/claro}/Editor.css +1 -1
  429. data/vendor/assets/stylesheets/themes/claro/Editor.less +57 -0
  430. data/vendor/assets/stylesheets/{claro → themes/claro}/Editor_rtl.css +0 -0
  431. data/vendor/assets/stylesheets/{claro → themes/claro}/Editor_rtl.less +0 -0
  432. data/vendor/assets/stylesheets/{claro → themes/claro}/InlineEditBox.css +0 -0
  433. data/vendor/assets/stylesheets/themes/claro/InlineEditBox.less +25 -0
  434. data/vendor/assets/stylesheets/{claro → themes/claro}/Menu.css +3 -3
  435. data/vendor/assets/stylesheets/themes/claro/Menu.less +179 -0
  436. data/vendor/assets/stylesheets/{claro → themes/claro}/Menu_rtl.css +0 -0
  437. data/vendor/assets/stylesheets/themes/claro/Menu_rtl.less +11 -0
  438. data/vendor/assets/stylesheets/{claro → themes/claro}/ProgressBar.css +1 -1
  439. data/vendor/assets/stylesheets/themes/claro/ProgressBar.less +64 -0
  440. data/vendor/assets/stylesheets/{claro → themes/claro}/TimePicker.css +2 -2
  441. data/vendor/assets/stylesheets/themes/claro/TimePicker.less +115 -0
  442. data/vendor/assets/stylesheets/{claro → themes/claro}/TimePicker_rtl.css +0 -0
  443. data/vendor/assets/stylesheets/themes/claro/TimePicker_rtl.less +12 -0
  444. data/vendor/assets/stylesheets/{claro → themes/claro}/TitlePane.css +2 -2
  445. data/vendor/assets/stylesheets/themes/claro/TitlePane.less +70 -0
  446. data/vendor/assets/stylesheets/{claro → themes/claro}/TitlePane_rtl.css +0 -0
  447. data/vendor/assets/stylesheets/themes/claro/TitlePane_rtl.less +7 -0
  448. data/vendor/assets/stylesheets/{claro → themes/claro}/Toolbar.css +13 -11
  449. data/vendor/assets/stylesheets/themes/claro/Toolbar.less +173 -0
  450. data/vendor/assets/stylesheets/{claro → themes/claro}/Toolbar_rtl.css +0 -0
  451. data/vendor/assets/stylesheets/themes/claro/Toolbar_rtl.less +32 -0
  452. data/vendor/assets/stylesheets/{claro → themes/claro}/Tree.css +3 -3
  453. data/vendor/assets/stylesheets/themes/claro/Tree.less +127 -0
  454. data/vendor/assets/stylesheets/{claro → themes/claro}/claro.css +86 -69
  455. data/vendor/assets/stylesheets/{claro → themes/claro}/claro_rtl.css +3 -0
  456. data/vendor/assets/stylesheets/{claro → themes/claro}/document.css +0 -0
  457. data/vendor/assets/stylesheets/themes/claro/document.less +45 -0
  458. data/vendor/assets/stylesheets/{claro → themes/claro}/form/Button.css +2 -2
  459. data/vendor/assets/stylesheets/themes/claro/form/Button.less +164 -0
  460. data/vendor/assets/stylesheets/{claro → themes/claro}/form/Button_rtl.css +0 -0
  461. data/vendor/assets/stylesheets/themes/claro/form/Button_rtl.less +16 -0
  462. data/vendor/assets/stylesheets/{claro → themes/claro}/form/Checkbox.css +0 -0
  463. data/vendor/assets/stylesheets/themes/claro/form/Checkbox.less +79 -0
  464. data/vendor/assets/stylesheets/{claro → themes/claro}/form/Common.css +4 -4
  465. data/vendor/assets/stylesheets/themes/claro/form/Common.less +241 -0
  466. data/vendor/assets/stylesheets/{claro → themes/claro}/form/Common_rtl.css +0 -0
  467. data/vendor/assets/stylesheets/themes/claro/form/Common_rtl.less +8 -0
  468. data/vendor/assets/stylesheets/{claro → themes/claro}/form/NumberSpinner.css +2 -2
  469. data/vendor/assets/stylesheets/themes/claro/form/NumberSpinner.less +150 -0
  470. data/vendor/assets/stylesheets/{claro → themes/claro}/form/RadioButton.css +0 -0
  471. data/vendor/assets/stylesheets/themes/claro/form/RadioButton.less +84 -0
  472. data/vendor/assets/stylesheets/{claro → themes/claro}/form/Select.css +3 -3
  473. data/vendor/assets/stylesheets/themes/claro/form/Select.less +98 -0
  474. data/vendor/assets/stylesheets/{claro → themes/claro}/form/Slider.css +2 -2
  475. data/vendor/assets/stylesheets/themes/claro/form/Slider.less +344 -0
  476. data/vendor/assets/stylesheets/{claro → themes/claro}/form/Slider_rtl.css +0 -0
  477. data/vendor/assets/stylesheets/themes/claro/form/Slider_rtl.less +33 -0
  478. data/vendor/assets/stylesheets/{claro → themes/claro}/layout/AccordionContainer.css +4 -4
  479. data/vendor/assets/stylesheets/{claro → themes/claro}/layout/AccordionContainer.less +3 -1
  480. data/vendor/assets/stylesheets/{claro → themes/claro}/layout/BorderContainer.css +2 -2
  481. data/vendor/assets/stylesheets/{claro → themes/claro}/layout/BorderContainer.less +0 -0
  482. data/vendor/assets/stylesheets/{claro → themes/claro}/layout/ContentPane.css +0 -0
  483. data/vendor/assets/stylesheets/{claro → themes/claro}/layout/ContentPane.less +0 -0
  484. data/vendor/assets/stylesheets/{claro → themes/claro}/layout/TabContainer.css +11 -11
  485. data/vendor/assets/stylesheets/{claro → themes/claro}/layout/TabContainer.less +0 -0
  486. data/vendor/assets/stylesheets/{claro → themes/claro}/layout/TabContainer_rtl.css +0 -0
  487. data/vendor/assets/stylesheets/{claro → themes/claro}/layout/TabContainer_rtl.less +0 -0
  488. data/vendor/assets/stylesheets/themes/claro/variables.less +378 -0
  489. data/vendor/assets/stylesheets/{dijit.css → themes/dijit.css} +21 -9
  490. data/vendor/assets/stylesheets/{dijit_rtl.css → themes/dijit_rtl.css} +3 -0
  491. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Calendar.css +0 -0
  492. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Calendar_rtl.css +0 -0
  493. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/ColorPalette.css +0 -0
  494. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Common.css +0 -0
  495. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Dialog.css +0 -0
  496. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Dialog_rtl.css +0 -0
  497. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Editor.css +0 -0
  498. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Editor_rtl.css +0 -0
  499. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Menu.css +0 -0
  500. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Menu_rtl.css +0 -0
  501. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/ProgressBar.css +0 -0
  502. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/TimePicker.css +0 -0
  503. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/TimePicker_rtl.css +0 -0
  504. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/TitlePane.css +0 -0
  505. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/TitlePane_rtl.css +0 -0
  506. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Toolbar.css +0 -0
  507. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Tree.css +0 -0
  508. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Tree_rtl.css +0 -0
  509. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/Button.css +0 -0
  510. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/Button_rtl.css +0 -0
  511. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/Checkbox.css +0 -0
  512. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/Common.css +0 -0
  513. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/RadioButton.css +0 -0
  514. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/Select.css +0 -0
  515. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/Slider.css +0 -0
  516. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/Slider_rtl.css +0 -0
  517. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/TimeTextBox.css +0 -0
  518. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/layout/AccordionContainer.css +0 -0
  519. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/layout/AccordionContainer_rtl.css +0 -0
  520. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/layout/BorderContainer.css +0 -0
  521. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/layout/ContentPane.css +0 -0
  522. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/layout/SplitContainer.css +0 -0
  523. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/layout/TabContainer.css +0 -0
  524. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/layout/TabContainer_rtl.css +0 -0
  525. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/nihilo.css +22 -10
  526. data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/nihilo_rtl.css +3 -0
  527. data/vendor/assets/stylesheets/{soria → themes/soria}/Calendar.css +0 -0
  528. data/vendor/assets/stylesheets/{soria → themes/soria}/Calendar_rtl.css +0 -0
  529. data/vendor/assets/stylesheets/{soria → themes/soria}/ColorPalette.css +0 -0
  530. data/vendor/assets/stylesheets/{soria → themes/soria}/Common.css +0 -0
  531. data/vendor/assets/stylesheets/{soria → themes/soria}/Dialog.css +0 -0
  532. data/vendor/assets/stylesheets/{soria → themes/soria}/Dialog_rtl.css +0 -0
  533. data/vendor/assets/stylesheets/{soria → themes/soria}/Editor.css +0 -0
  534. data/vendor/assets/stylesheets/{soria → themes/soria}/Editor_rtl.css +0 -0
  535. data/vendor/assets/stylesheets/{soria → themes/soria}/Menu.css +0 -0
  536. data/vendor/assets/stylesheets/{soria → themes/soria}/Menu_rtl.css +0 -0
  537. data/vendor/assets/stylesheets/{soria → themes/soria}/ProgressBar.css +0 -0
  538. data/vendor/assets/stylesheets/{soria → themes/soria}/TimePicker.css +0 -0
  539. data/vendor/assets/stylesheets/{soria → themes/soria}/TimePicker_rtl.css +0 -0
  540. data/vendor/assets/stylesheets/{soria → themes/soria}/TitlePane.css +0 -0
  541. data/vendor/assets/stylesheets/{soria → themes/soria}/TitlePane_rtl.css +0 -0
  542. data/vendor/assets/stylesheets/{soria → themes/soria}/Toolbar.css +0 -0
  543. data/vendor/assets/stylesheets/{soria → themes/soria}/Tree.css +0 -0
  544. data/vendor/assets/stylesheets/{soria → themes/soria}/Tree_rtl.css +0 -0
  545. data/vendor/assets/stylesheets/{soria → themes/soria}/form/Button.css +0 -0
  546. data/vendor/assets/stylesheets/{soria → themes/soria}/form/Button_rtl.css +0 -0
  547. data/vendor/assets/stylesheets/{soria → themes/soria}/form/Checkbox.css +0 -0
  548. data/vendor/assets/stylesheets/{soria → themes/soria}/form/Common.css +0 -0
  549. data/vendor/assets/stylesheets/{soria → themes/soria}/form/RadioButton.css +0 -0
  550. data/vendor/assets/stylesheets/{soria → themes/soria}/form/Select.css +0 -0
  551. data/vendor/assets/stylesheets/{soria → themes/soria}/form/Slider.css +0 -0
  552. data/vendor/assets/stylesheets/{soria → themes/soria}/form/Slider_rtl.css +0 -0
  553. data/vendor/assets/stylesheets/{soria → themes/soria}/form/TimeTextBox.css +0 -0
  554. data/vendor/assets/stylesheets/{soria → themes/soria}/layout/AccordionContainer.css +0 -0
  555. data/vendor/assets/stylesheets/{soria → themes/soria}/layout/AccordionContainer_rtl.css +0 -0
  556. data/vendor/assets/stylesheets/{soria → themes/soria}/layout/BorderContainer.css +0 -0
  557. data/vendor/assets/stylesheets/{soria → themes/soria}/layout/ContentPane.css +0 -0
  558. data/vendor/assets/stylesheets/{soria → themes/soria}/layout/SplitContainer.css +0 -0
  559. data/vendor/assets/stylesheets/{soria → themes/soria}/layout/TabContainer.css +0 -0
  560. data/vendor/assets/stylesheets/{soria → themes/soria}/layout/TabContainer_rtl.css +0 -0
  561. data/vendor/assets/stylesheets/{soria → themes/soria}/soria.css +22 -10
  562. data/vendor/assets/stylesheets/{soria → themes/soria}/soria_rtl.css +3 -0
  563. data/vendor/assets/stylesheets/{tundra → themes/tundra}/Calendar.css +0 -0
  564. data/vendor/assets/stylesheets/{tundra → themes/tundra}/Calendar_rtl.css +0 -0
  565. data/vendor/assets/stylesheets/{tundra → themes/tundra}/ColorPalette.css +0 -0
  566. data/vendor/assets/stylesheets/{tundra → themes/tundra}/Common.css +0 -0
  567. data/vendor/assets/stylesheets/{tundra → themes/tundra}/Dialog.css +0 -0
  568. data/vendor/assets/stylesheets/{tundra → themes/tundra}/Dialog_rtl.css +0 -0
  569. data/vendor/assets/stylesheets/{tundra → themes/tundra}/Editor.css +0 -0
  570. data/vendor/assets/stylesheets/{tundra → themes/tundra}/Editor_rtl.css +0 -0
  571. data/vendor/assets/stylesheets/{tundra → themes/tundra}/Menu.css +0 -0
  572. data/vendor/assets/stylesheets/{tundra → themes/tundra}/Menu_rtl.css +0 -0
  573. data/vendor/assets/stylesheets/{tundra → themes/tundra}/ProgressBar.css +0 -0
  574. data/vendor/assets/stylesheets/{tundra → themes/tundra}/TimePicker.css +0 -0
  575. data/vendor/assets/stylesheets/{tundra → themes/tundra}/TimePicker_rtl.css +0 -0
  576. data/vendor/assets/stylesheets/{tundra → themes/tundra}/TitlePane.css +0 -0
  577. data/vendor/assets/stylesheets/{tundra → themes/tundra}/TitlePane_rtl.css +0 -0
  578. data/vendor/assets/stylesheets/{tundra → themes/tundra}/Toolbar.css +0 -0
  579. data/vendor/assets/stylesheets/{tundra → themes/tundra}/Tree.css +0 -0
  580. data/vendor/assets/stylesheets/{tundra → themes/tundra}/Tree_rtl.css +0 -0
  581. data/vendor/assets/stylesheets/{tundra → themes/tundra}/form/Button.css +0 -0
  582. data/vendor/assets/stylesheets/{tundra → themes/tundra}/form/Checkbox.css +0 -0
  583. data/vendor/assets/stylesheets/{tundra → themes/tundra}/form/Common.css +0 -0
  584. data/vendor/assets/stylesheets/{tundra → themes/tundra}/form/RadioButton.css +0 -0
  585. data/vendor/assets/stylesheets/{tundra → themes/tundra}/form/Select.css +0 -0
  586. data/vendor/assets/stylesheets/{tundra → themes/tundra}/form/Slider.css +0 -0
  587. data/vendor/assets/stylesheets/{tundra → themes/tundra}/form/Slider_rtl.css +0 -0
  588. data/vendor/assets/stylesheets/{tundra → themes/tundra}/layout/AccordionContainer.css +0 -0
  589. data/vendor/assets/stylesheets/{tundra → themes/tundra}/layout/BorderContainer.css +0 -0
  590. data/vendor/assets/stylesheets/{tundra → themes/tundra}/layout/ContentPane.css +0 -0
  591. data/vendor/assets/stylesheets/{tundra → themes/tundra}/layout/SplitContainer.css +0 -0
  592. data/vendor/assets/stylesheets/{tundra → themes/tundra}/layout/TabContainer.css +0 -0
  593. data/vendor/assets/stylesheets/{tundra → themes/tundra}/layout/TabContainer_rtl.css +0 -0
  594. data/vendor/assets/stylesheets/{tundra → themes/tundra}/tundra.css +25 -10
  595. data/vendor/assets/stylesheets/{tundra → themes/tundra}/tundra_rtl.css +3 -0
  596. metadata +510 -928
  597. data/LICENSE +0 -19
  598. data/vendor/assets/javascripts/dijit/BackgroundIframe.js.uncompressed.js +0 -110
  599. data/vendor/assets/javascripts/dijit/Calendar.js.uncompressed.js +0 -312
  600. data/vendor/assets/javascripts/dijit/CalendarLite.js.uncompressed.js +0 -500
  601. data/vendor/assets/javascripts/dijit/CheckedMenuItem.js.uncompressed.js +0 -53
  602. data/vendor/assets/javascripts/dijit/ColorPalette.js.uncompressed.js +0 -161
  603. data/vendor/assets/javascripts/dijit/Declaration.js.uncompressed.js +0 -105
  604. data/vendor/assets/javascripts/dijit/Destroyable.js.uncompressed.js +0 -59
  605. data/vendor/assets/javascripts/dijit/Dialog.js.uncompressed.js +0 -640
  606. data/vendor/assets/javascripts/dijit/DialogUnderlay.js.uncompressed.js +0 -102
  607. data/vendor/assets/javascripts/dijit/DropDownMenu.js.uncompressed.js +0 -58
  608. data/vendor/assets/javascripts/dijit/Editor.js.uncompressed.js +0 -864
  609. data/vendor/assets/javascripts/dijit/InlineEditBox.js.uncompressed.js +0 -656
  610. data/vendor/assets/javascripts/dijit/LICENSE +0 -195
  611. data/vendor/assets/javascripts/dijit/Menu.js.uncompressed.js +0 -348
  612. data/vendor/assets/javascripts/dijit/MenuBar.js.uncompressed.js +0 -92
  613. data/vendor/assets/javascripts/dijit/MenuBarItem.js.uncompressed.js +0 -28
  614. data/vendor/assets/javascripts/dijit/MenuItem.js.uncompressed.js +0 -187
  615. data/vendor/assets/javascripts/dijit/MenuSeparator.js.uncompressed.js +0 -35
  616. data/vendor/assets/javascripts/dijit/PopupMenuBarItem.js.uncompressed.js +0 -16
  617. data/vendor/assets/javascripts/dijit/PopupMenuItem.js.uncompressed.js +0 -73
  618. data/vendor/assets/javascripts/dijit/ProgressBar.js.uncompressed.js +0 -171
  619. data/vendor/assets/javascripts/dijit/TitlePane.js.uncompressed.js +0 -266
  620. data/vendor/assets/javascripts/dijit/Toolbar.js.uncompressed.js +0 -43
  621. data/vendor/assets/javascripts/dijit/ToolbarSeparator.js.uncompressed.js +0 -31
  622. data/vendor/assets/javascripts/dijit/Tooltip.js.uncompressed.js +0 -542
  623. data/vendor/assets/javascripts/dijit/TooltipDialog.js.uncompressed.js +0 -174
  624. data/vendor/assets/javascripts/dijit/Tree.js.uncompressed.js +0 -1909
  625. data/vendor/assets/javascripts/dijit/Viewport.js.uncompressed.js +0 -50
  626. data/vendor/assets/javascripts/dijit/WidgetSet.js.uncompressed.js +0 -247
  627. data/vendor/assets/javascripts/dijit/_BidiSupport.js.uncompressed.js +0 -113
  628. data/vendor/assets/javascripts/dijit/_Calendar.js.uncompressed.js +0 -22
  629. data/vendor/assets/javascripts/dijit/_Contained.js.uncompressed.js +0 -60
  630. data/vendor/assets/javascripts/dijit/_Container.js.uncompressed.js +0 -94
  631. data/vendor/assets/javascripts/dijit/_CssStateMixin.js.uncompressed.js +0 -320
  632. data/vendor/assets/javascripts/dijit/_DialogMixin.js.uncompressed.js +0 -70
  633. data/vendor/assets/javascripts/dijit/_FocusMixin.js.uncompressed.js +0 -66
  634. data/vendor/assets/javascripts/dijit/_HasDropDown.js.uncompressed.js +0 -508
  635. data/vendor/assets/javascripts/dijit/_KeyNavContainer.js.uncompressed.js +0 -257
  636. data/vendor/assets/javascripts/dijit/_MenuBase.js.uncompressed.js +0 -418
  637. data/vendor/assets/javascripts/dijit/_OnDijitClickMixin.js.uncompressed.js +0 -50
  638. data/vendor/assets/javascripts/dijit/_PaletteMixin.js.uncompressed.js +0 -340
  639. data/vendor/assets/javascripts/dijit/_Templated.js.uncompressed.js +0 -64
  640. data/vendor/assets/javascripts/dijit/_TemplatedMixin.js.uncompressed.js +0 -308
  641. data/vendor/assets/javascripts/dijit/_TimePicker.js.uncompressed.js +0 -519
  642. data/vendor/assets/javascripts/dijit/_Widget.js.uncompressed.js +0 -362
  643. data/vendor/assets/javascripts/dijit/_WidgetBase.js.uncompressed.js +0 -1123
  644. data/vendor/assets/javascripts/dijit/_WidgetsInTemplateMixin.js.uncompressed.js +0 -65
  645. data/vendor/assets/javascripts/dijit/_base.js.uncompressed.js +0 -27
  646. data/vendor/assets/javascripts/dijit/_base/focus.js.uncompressed.js +0 -323
  647. data/vendor/assets/javascripts/dijit/_base/manager.js.uncompressed.js +0 -35
  648. data/vendor/assets/javascripts/dijit/_base/place.js.uncompressed.js +0 -131
  649. data/vendor/assets/javascripts/dijit/_base/popup.js.uncompressed.js +0 -58
  650. data/vendor/assets/javascripts/dijit/_base/scroll.js.uncompressed.js +0 -22
  651. data/vendor/assets/javascripts/dijit/_base/sniff.js.uncompressed.js +0 -12
  652. data/vendor/assets/javascripts/dijit/_base/typematic.js.uncompressed.js +0 -10
  653. data/vendor/assets/javascripts/dijit/_base/wai.js.uncompressed.js +0 -109
  654. data/vendor/assets/javascripts/dijit/_base/window.js.uncompressed.js +0 -18
  655. data/vendor/assets/javascripts/dijit/_editor/RichText.js.uncompressed.js +0 -2874
  656. data/vendor/assets/javascripts/dijit/_editor/_Plugin.js.uncompressed.js +0 -302
  657. data/vendor/assets/javascripts/dijit/_editor/html.js.uncompressed.js +0 -223
  658. data/vendor/assets/javascripts/dijit/_editor/nls/FontChoice.js.uncompressed.js +0 -62
  659. data/vendor/assets/javascripts/dijit/_editor/nls/LinkDialog.js.uncompressed.js +0 -48
  660. data/vendor/assets/javascripts/dijit/_editor/nls/ar/FontChoice.js.uncompressed.js +0 -25
  661. data/vendor/assets/javascripts/dijit/_editor/nls/ar/LinkDialog.js.uncompressed.js +0 -14
  662. data/vendor/assets/javascripts/dijit/_editor/nls/ar/commands.js.uncompressed.js +0 -51
  663. data/vendor/assets/javascripts/dijit/_editor/nls/az/FontChoice.js.uncompressed.js +0 -25
  664. data/vendor/assets/javascripts/dijit/_editor/nls/az/LinkDialog.js.uncompressed.js +0 -14
  665. data/vendor/assets/javascripts/dijit/_editor/nls/az/commands.js.uncompressed.js +0 -50
  666. data/vendor/assets/javascripts/dijit/_editor/nls/ca/FontChoice.js.uncompressed.js +0 -25
  667. data/vendor/assets/javascripts/dijit/_editor/nls/ca/LinkDialog.js.uncompressed.js +0 -14
  668. data/vendor/assets/javascripts/dijit/_editor/nls/ca/commands.js.uncompressed.js +0 -51
  669. data/vendor/assets/javascripts/dijit/_editor/nls/commands.js.uncompressed.js +0 -85
  670. data/vendor/assets/javascripts/dijit/_editor/nls/cs/FontChoice.js.uncompressed.js +0 -25
  671. data/vendor/assets/javascripts/dijit/_editor/nls/cs/LinkDialog.js.uncompressed.js +0 -14
  672. data/vendor/assets/javascripts/dijit/_editor/nls/cs/commands.js.uncompressed.js +0 -51
  673. data/vendor/assets/javascripts/dijit/_editor/nls/da/FontChoice.js.uncompressed.js +0 -25
  674. data/vendor/assets/javascripts/dijit/_editor/nls/da/LinkDialog.js.uncompressed.js +0 -14
  675. data/vendor/assets/javascripts/dijit/_editor/nls/da/commands.js.uncompressed.js +0 -51
  676. data/vendor/assets/javascripts/dijit/_editor/nls/de/FontChoice.js.uncompressed.js +0 -25
  677. data/vendor/assets/javascripts/dijit/_editor/nls/de/LinkDialog.js.uncompressed.js +0 -14
  678. data/vendor/assets/javascripts/dijit/_editor/nls/de/commands.js.uncompressed.js +0 -51
  679. data/vendor/assets/javascripts/dijit/_editor/nls/el/FontChoice.js.uncompressed.js +0 -25
  680. data/vendor/assets/javascripts/dijit/_editor/nls/el/LinkDialog.js.uncompressed.js +0 -14
  681. data/vendor/assets/javascripts/dijit/_editor/nls/el/commands.js.uncompressed.js +0 -51
  682. data/vendor/assets/javascripts/dijit/_editor/nls/es/FontChoice.js.uncompressed.js +0 -25
  683. data/vendor/assets/javascripts/dijit/_editor/nls/es/LinkDialog.js.uncompressed.js +0 -14
  684. data/vendor/assets/javascripts/dijit/_editor/nls/es/commands.js.uncompressed.js +0 -51
  685. data/vendor/assets/javascripts/dijit/_editor/nls/fi/FontChoice.js.uncompressed.js +0 -25
  686. data/vendor/assets/javascripts/dijit/_editor/nls/fi/LinkDialog.js.uncompressed.js +0 -14
  687. data/vendor/assets/javascripts/dijit/_editor/nls/fi/commands.js.uncompressed.js +0 -51
  688. data/vendor/assets/javascripts/dijit/_editor/nls/fr/FontChoice.js.uncompressed.js +0 -25
  689. data/vendor/assets/javascripts/dijit/_editor/nls/fr/LinkDialog.js.uncompressed.js +0 -14
  690. data/vendor/assets/javascripts/dijit/_editor/nls/fr/commands.js.uncompressed.js +0 -51
  691. data/vendor/assets/javascripts/dijit/_editor/nls/he/FontChoice.js.uncompressed.js +0 -25
  692. data/vendor/assets/javascripts/dijit/_editor/nls/he/LinkDialog.js.uncompressed.js +0 -14
  693. data/vendor/assets/javascripts/dijit/_editor/nls/he/commands.js.uncompressed.js +0 -51
  694. data/vendor/assets/javascripts/dijit/_editor/nls/hr/FontChoice.js.uncompressed.js +0 -25
  695. data/vendor/assets/javascripts/dijit/_editor/nls/hr/LinkDialog.js.uncompressed.js +0 -14
  696. data/vendor/assets/javascripts/dijit/_editor/nls/hr/commands.js.uncompressed.js +0 -51
  697. data/vendor/assets/javascripts/dijit/_editor/nls/hu/FontChoice.js.uncompressed.js +0 -25
  698. data/vendor/assets/javascripts/dijit/_editor/nls/hu/LinkDialog.js.uncompressed.js +0 -14
  699. data/vendor/assets/javascripts/dijit/_editor/nls/hu/commands.js.uncompressed.js +0 -51
  700. data/vendor/assets/javascripts/dijit/_editor/nls/it/FontChoice.js.uncompressed.js +0 -25
  701. data/vendor/assets/javascripts/dijit/_editor/nls/it/LinkDialog.js.uncompressed.js +0 -14
  702. data/vendor/assets/javascripts/dijit/_editor/nls/it/commands.js.uncompressed.js +0 -51
  703. data/vendor/assets/javascripts/dijit/_editor/nls/ja/FontChoice.js.uncompressed.js +0 -25
  704. data/vendor/assets/javascripts/dijit/_editor/nls/ja/LinkDialog.js.uncompressed.js +0 -14
  705. data/vendor/assets/javascripts/dijit/_editor/nls/ja/commands.js.uncompressed.js +0 -51
  706. data/vendor/assets/javascripts/dijit/_editor/nls/kk/FontChoice.js.uncompressed.js +0 -25
  707. data/vendor/assets/javascripts/dijit/_editor/nls/kk/LinkDialog.js.uncompressed.js +0 -14
  708. data/vendor/assets/javascripts/dijit/_editor/nls/kk/commands.js.uncompressed.js +0 -51
  709. data/vendor/assets/javascripts/dijit/_editor/nls/ko/FontChoice.js.uncompressed.js +0 -25
  710. data/vendor/assets/javascripts/dijit/_editor/nls/ko/LinkDialog.js.uncompressed.js +0 -14
  711. data/vendor/assets/javascripts/dijit/_editor/nls/ko/commands.js.uncompressed.js +0 -51
  712. data/vendor/assets/javascripts/dijit/_editor/nls/nb/FontChoice.js.uncompressed.js +0 -25
  713. data/vendor/assets/javascripts/dijit/_editor/nls/nb/LinkDialog.js.uncompressed.js +0 -14
  714. data/vendor/assets/javascripts/dijit/_editor/nls/nb/commands.js.uncompressed.js +0 -51
  715. data/vendor/assets/javascripts/dijit/_editor/nls/nl/FontChoice.js.uncompressed.js +0 -25
  716. data/vendor/assets/javascripts/dijit/_editor/nls/nl/LinkDialog.js.uncompressed.js +0 -14
  717. data/vendor/assets/javascripts/dijit/_editor/nls/nl/commands.js.uncompressed.js +0 -51
  718. data/vendor/assets/javascripts/dijit/_editor/nls/pl/FontChoice.js.uncompressed.js +0 -25
  719. data/vendor/assets/javascripts/dijit/_editor/nls/pl/LinkDialog.js.uncompressed.js +0 -14
  720. data/vendor/assets/javascripts/dijit/_editor/nls/pl/commands.js.uncompressed.js +0 -51
  721. data/vendor/assets/javascripts/dijit/_editor/nls/pt-pt/FontChoice.js.uncompressed.js +0 -25
  722. data/vendor/assets/javascripts/dijit/_editor/nls/pt-pt/LinkDialog.js.uncompressed.js +0 -14
  723. data/vendor/assets/javascripts/dijit/_editor/nls/pt-pt/commands.js.uncompressed.js +0 -49
  724. data/vendor/assets/javascripts/dijit/_editor/nls/pt/FontChoice.js.uncompressed.js +0 -25
  725. data/vendor/assets/javascripts/dijit/_editor/nls/pt/LinkDialog.js.uncompressed.js +0 -14
  726. data/vendor/assets/javascripts/dijit/_editor/nls/pt/commands.js.uncompressed.js +0 -51
  727. data/vendor/assets/javascripts/dijit/_editor/nls/ro/FontChoice.js.uncompressed.js +0 -25
  728. data/vendor/assets/javascripts/dijit/_editor/nls/ro/LinkDialog.js.uncompressed.js +0 -14
  729. data/vendor/assets/javascripts/dijit/_editor/nls/ro/commands.js.uncompressed.js +0 -51
  730. data/vendor/assets/javascripts/dijit/_editor/nls/ru/FontChoice.js.uncompressed.js +0 -25
  731. data/vendor/assets/javascripts/dijit/_editor/nls/ru/LinkDialog.js.uncompressed.js +0 -14
  732. data/vendor/assets/javascripts/dijit/_editor/nls/ru/commands.js.uncompressed.js +0 -51
  733. data/vendor/assets/javascripts/dijit/_editor/nls/sk/FontChoice.js.uncompressed.js +0 -25
  734. data/vendor/assets/javascripts/dijit/_editor/nls/sk/LinkDialog.js.uncompressed.js +0 -14
  735. data/vendor/assets/javascripts/dijit/_editor/nls/sk/commands.js.uncompressed.js +0 -51
  736. data/vendor/assets/javascripts/dijit/_editor/nls/sl/FontChoice.js.uncompressed.js +0 -25
  737. data/vendor/assets/javascripts/dijit/_editor/nls/sl/LinkDialog.js.uncompressed.js +0 -14
  738. data/vendor/assets/javascripts/dijit/_editor/nls/sl/commands.js.uncompressed.js +0 -49
  739. data/vendor/assets/javascripts/dijit/_editor/nls/sv/FontChoice.js.uncompressed.js +0 -25
  740. data/vendor/assets/javascripts/dijit/_editor/nls/sv/LinkDialog.js.uncompressed.js +0 -14
  741. data/vendor/assets/javascripts/dijit/_editor/nls/sv/commands.js.uncompressed.js +0 -51
  742. data/vendor/assets/javascripts/dijit/_editor/nls/th/FontChoice.js.uncompressed.js +0 -25
  743. data/vendor/assets/javascripts/dijit/_editor/nls/th/LinkDialog.js.uncompressed.js +0 -14
  744. data/vendor/assets/javascripts/dijit/_editor/nls/th/commands.js.uncompressed.js +0 -51
  745. data/vendor/assets/javascripts/dijit/_editor/nls/tr/FontChoice.js.uncompressed.js +0 -25
  746. data/vendor/assets/javascripts/dijit/_editor/nls/tr/LinkDialog.js.uncompressed.js +0 -14
  747. data/vendor/assets/javascripts/dijit/_editor/nls/tr/commands.js.uncompressed.js +0 -51
  748. data/vendor/assets/javascripts/dijit/_editor/nls/zh-tw/FontChoice.js.uncompressed.js +0 -25
  749. data/vendor/assets/javascripts/dijit/_editor/nls/zh-tw/LinkDialog.js.uncompressed.js +0 -14
  750. data/vendor/assets/javascripts/dijit/_editor/nls/zh-tw/commands.js.uncompressed.js +0 -51
  751. data/vendor/assets/javascripts/dijit/_editor/nls/zh/FontChoice.js.uncompressed.js +0 -25
  752. data/vendor/assets/javascripts/dijit/_editor/nls/zh/LinkDialog.js.uncompressed.js +0 -14
  753. data/vendor/assets/javascripts/dijit/_editor/nls/zh/commands.js.uncompressed.js +0 -51
  754. data/vendor/assets/javascripts/dijit/_editor/plugins/AlwaysShowToolbar.js.uncompressed.js +0 -191
  755. data/vendor/assets/javascripts/dijit/_editor/plugins/EnterKeyHandling.js.uncompressed.js +0 -622
  756. data/vendor/assets/javascripts/dijit/_editor/plugins/FontChoice.js.uncompressed.js +0 -583
  757. data/vendor/assets/javascripts/dijit/_editor/plugins/FullScreen.js.uncompressed.js +0 -450
  758. data/vendor/assets/javascripts/dijit/_editor/plugins/LinkDialog.js.uncompressed.js +0 -607
  759. data/vendor/assets/javascripts/dijit/_editor/plugins/NewPage.js.uncompressed.js +0 -77
  760. data/vendor/assets/javascripts/dijit/_editor/plugins/Print.js.uncompressed.js +0 -123
  761. data/vendor/assets/javascripts/dijit/_editor/plugins/TabIndent.js.uncompressed.js +0 -60
  762. data/vendor/assets/javascripts/dijit/_editor/plugins/TextColor.js.uncompressed.js +0 -114
  763. data/vendor/assets/javascripts/dijit/_editor/plugins/ToggleDir.js.uncompressed.js +0 -69
  764. data/vendor/assets/javascripts/dijit/_editor/plugins/ViewSource.js.uncompressed.js +0 -577
  765. data/vendor/assets/javascripts/dijit/_editor/range.js.uncompressed.js +0 -559
  766. data/vendor/assets/javascripts/dijit/_editor/selection.js.uncompressed.js +0 -383
  767. data/vendor/assets/javascripts/dijit/_tree/dndSource.js.uncompressed.js +0 -15
  768. data/vendor/assets/javascripts/dijit/a11y.js.uncompressed.js +0 -177
  769. data/vendor/assets/javascripts/dijit/a11yclick.js.uncompressed.js +0 -131
  770. data/vendor/assets/javascripts/dijit/dijit-all.js.uncompressed.js +0 -33581
  771. data/vendor/assets/javascripts/dijit/dijit.js.uncompressed.js +0 -8131
  772. data/vendor/assets/javascripts/dijit/focus.js.uncompressed.js +0 -364
  773. data/vendor/assets/javascripts/dijit/form/Button.js.uncompressed.js +0 -121
  774. data/vendor/assets/javascripts/dijit/form/CheckBox.js.uncompressed.js +0 -116
  775. data/vendor/assets/javascripts/dijit/form/ComboBox.js.uncompressed.js +0 -27
  776. data/vendor/assets/javascripts/dijit/form/ComboBoxMixin.js.uncompressed.js +0 -143
  777. data/vendor/assets/javascripts/dijit/form/ComboButton.js.uncompressed.js +0 -85
  778. data/vendor/assets/javascripts/dijit/form/CurrencyTextBox.js.uncompressed.js +0 -85
  779. data/vendor/assets/javascripts/dijit/form/DataList.js.uncompressed.js +0 -69
  780. data/vendor/assets/javascripts/dijit/form/DateTextBox.js.uncompressed.js +0 -28
  781. data/vendor/assets/javascripts/dijit/form/DropDownButton.js.uncompressed.js +0 -99
  782. data/vendor/assets/javascripts/dijit/form/FilteringSelect.js.uncompressed.js +0 -234
  783. data/vendor/assets/javascripts/dijit/form/Form.js.uncompressed.js +0 -163
  784. data/vendor/assets/javascripts/dijit/form/HorizontalRule.js.uncompressed.js +0 -69
  785. data/vendor/assets/javascripts/dijit/form/HorizontalRuleLabels.js.uncompressed.js +0 -92
  786. data/vendor/assets/javascripts/dijit/form/HorizontalSlider.js.uncompressed.js +0 -349
  787. data/vendor/assets/javascripts/dijit/form/MappedTextBox.js.uncompressed.js +0 -81
  788. data/vendor/assets/javascripts/dijit/form/MultiSelect.js.uncompressed.js +0 -134
  789. data/vendor/assets/javascripts/dijit/form/NumberSpinner.js.uncompressed.js +0 -67
  790. data/vendor/assets/javascripts/dijit/form/NumberTextBox.js.uncompressed.js +0 -275
  791. data/vendor/assets/javascripts/dijit/form/RadioButton.js.uncompressed.js +0 -16
  792. data/vendor/assets/javascripts/dijit/form/RangeBoundTextBox.js.uncompressed.js +0 -134
  793. data/vendor/assets/javascripts/dijit/form/Select.js.uncompressed.js +0 -406
  794. data/vendor/assets/javascripts/dijit/form/SimpleTextarea.js.uncompressed.js +0 -92
  795. data/vendor/assets/javascripts/dijit/form/Slider.js.uncompressed.js +0 -23
  796. data/vendor/assets/javascripts/dijit/form/TextBox.js.uncompressed.js +0 -157
  797. data/vendor/assets/javascripts/dijit/form/Textarea.js.uncompressed.js +0 -42
  798. data/vendor/assets/javascripts/dijit/form/TimeTextBox.js.uncompressed.js +0 -79
  799. data/vendor/assets/javascripts/dijit/form/ToggleButton.js.uncompressed.js +0 -26
  800. data/vendor/assets/javascripts/dijit/form/ValidationTextBox.js.uncompressed.js +0 -327
  801. data/vendor/assets/javascripts/dijit/form/VerticalRule.js.uncompressed.js +0 -28
  802. data/vendor/assets/javascripts/dijit/form/VerticalRuleLabels.js.uncompressed.js +0 -26
  803. data/vendor/assets/javascripts/dijit/form/VerticalSlider.js.uncompressed.js +0 -35
  804. data/vendor/assets/javascripts/dijit/form/_AutoCompleterMixin.js.uncompressed.js +0 -581
  805. data/vendor/assets/javascripts/dijit/form/_ButtonMixin.js.uncompressed.js +0 -84
  806. data/vendor/assets/javascripts/dijit/form/_CheckBoxMixin.js.uncompressed.js +0 -78
  807. data/vendor/assets/javascripts/dijit/form/_ComboBoxMenu.js.uncompressed.js +0 -131
  808. data/vendor/assets/javascripts/dijit/form/_ComboBoxMenuMixin.js.uncompressed.js +0 -189
  809. data/vendor/assets/javascripts/dijit/form/_DateTimeTextBox.js.uncompressed.js +0 -259
  810. data/vendor/assets/javascripts/dijit/form/_ExpandingTextAreaMixin.js.uncompressed.js +0 -136
  811. data/vendor/assets/javascripts/dijit/form/_FormMixin.js.uncompressed.js +0 -456
  812. data/vendor/assets/javascripts/dijit/form/_FormSelectWidget.js.uncompressed.js +0 -706
  813. data/vendor/assets/javascripts/dijit/form/_FormValueMixin.js.uncompressed.js +0 -90
  814. data/vendor/assets/javascripts/dijit/form/_FormValueWidget.js.uncompressed.js +0 -51
  815. data/vendor/assets/javascripts/dijit/form/_FormWidget.js.uncompressed.js +0 -71
  816. data/vendor/assets/javascripts/dijit/form/_FormWidgetMixin.js.uncompressed.js +0 -223
  817. data/vendor/assets/javascripts/dijit/form/_ListBase.js.uncompressed.js +0 -135
  818. data/vendor/assets/javascripts/dijit/form/_ListMouseMixin.js.uncompressed.js +0 -79
  819. data/vendor/assets/javascripts/dijit/form/_RadioButtonMixin.js.uncompressed.js +0 -71
  820. data/vendor/assets/javascripts/dijit/form/_SearchMixin.js.uncompressed.js +0 -264
  821. data/vendor/assets/javascripts/dijit/form/_Spinner.js.uncompressed.js +0 -137
  822. data/vendor/assets/javascripts/dijit/form/_TextBoxMixin.js.uncompressed.js +0 -474
  823. data/vendor/assets/javascripts/dijit/form/_ToggleButtonMixin.js.uncompressed.js +0 -49
  824. data/vendor/assets/javascripts/dijit/form/nls/ComboBox.js.uncompressed.js +0 -40
  825. data/vendor/assets/javascripts/dijit/form/nls/Textarea.js.uncompressed.js +0 -43
  826. data/vendor/assets/javascripts/dijit/form/nls/ar/ComboBox.js.uncompressed.js +0 -6
  827. data/vendor/assets/javascripts/dijit/form/nls/ar/Textarea.js.uncompressed.js +0 -9
  828. data/vendor/assets/javascripts/dijit/form/nls/ar/validate.js.uncompressed.js +0 -7
  829. data/vendor/assets/javascripts/dijit/form/nls/az/ComboBox.js.uncompressed.js +0 -6
  830. data/vendor/assets/javascripts/dijit/form/nls/az/Textarea.js.uncompressed.js +0 -7
  831. data/vendor/assets/javascripts/dijit/form/nls/az/validate.js.uncompressed.js +0 -7
  832. data/vendor/assets/javascripts/dijit/form/nls/ca/ComboBox.js.uncompressed.js +0 -6
  833. data/vendor/assets/javascripts/dijit/form/nls/ca/Textarea.js.uncompressed.js +0 -9
  834. data/vendor/assets/javascripts/dijit/form/nls/ca/validate.js.uncompressed.js +0 -7
  835. data/vendor/assets/javascripts/dijit/form/nls/cs/ComboBox.js.uncompressed.js +0 -6
  836. data/vendor/assets/javascripts/dijit/form/nls/cs/Textarea.js.uncompressed.js +0 -9
  837. data/vendor/assets/javascripts/dijit/form/nls/cs/validate.js.uncompressed.js +0 -7
  838. data/vendor/assets/javascripts/dijit/form/nls/da/ComboBox.js.uncompressed.js +0 -6
  839. data/vendor/assets/javascripts/dijit/form/nls/da/Textarea.js.uncompressed.js +0 -9
  840. data/vendor/assets/javascripts/dijit/form/nls/da/validate.js.uncompressed.js +0 -7
  841. data/vendor/assets/javascripts/dijit/form/nls/de/ComboBox.js.uncompressed.js +0 -6
  842. data/vendor/assets/javascripts/dijit/form/nls/de/Textarea.js.uncompressed.js +0 -9
  843. data/vendor/assets/javascripts/dijit/form/nls/de/validate.js.uncompressed.js +0 -7
  844. data/vendor/assets/javascripts/dijit/form/nls/el/ComboBox.js.uncompressed.js +0 -6
  845. data/vendor/assets/javascripts/dijit/form/nls/el/Textarea.js.uncompressed.js +0 -9
  846. data/vendor/assets/javascripts/dijit/form/nls/el/validate.js.uncompressed.js +0 -7
  847. data/vendor/assets/javascripts/dijit/form/nls/es/ComboBox.js.uncompressed.js +0 -6
  848. data/vendor/assets/javascripts/dijit/form/nls/es/Textarea.js.uncompressed.js +0 -9
  849. data/vendor/assets/javascripts/dijit/form/nls/es/validate.js.uncompressed.js +0 -7
  850. data/vendor/assets/javascripts/dijit/form/nls/fi/ComboBox.js.uncompressed.js +0 -6
  851. data/vendor/assets/javascripts/dijit/form/nls/fi/Textarea.js.uncompressed.js +0 -9
  852. data/vendor/assets/javascripts/dijit/form/nls/fi/validate.js.uncompressed.js +0 -7
  853. data/vendor/assets/javascripts/dijit/form/nls/fr/ComboBox.js.uncompressed.js +0 -6
  854. data/vendor/assets/javascripts/dijit/form/nls/fr/Textarea.js.uncompressed.js +0 -9
  855. data/vendor/assets/javascripts/dijit/form/nls/fr/validate.js.uncompressed.js +0 -7
  856. data/vendor/assets/javascripts/dijit/form/nls/he/ComboBox.js.uncompressed.js +0 -6
  857. data/vendor/assets/javascripts/dijit/form/nls/he/Textarea.js.uncompressed.js +0 -9
  858. data/vendor/assets/javascripts/dijit/form/nls/he/validate.js.uncompressed.js +0 -7
  859. data/vendor/assets/javascripts/dijit/form/nls/hr/ComboBox.js.uncompressed.js +0 -6
  860. data/vendor/assets/javascripts/dijit/form/nls/hr/Textarea.js.uncompressed.js +0 -9
  861. data/vendor/assets/javascripts/dijit/form/nls/hr/validate.js.uncompressed.js +0 -7
  862. data/vendor/assets/javascripts/dijit/form/nls/hu/ComboBox.js.uncompressed.js +0 -6
  863. data/vendor/assets/javascripts/dijit/form/nls/hu/Textarea.js.uncompressed.js +0 -9
  864. data/vendor/assets/javascripts/dijit/form/nls/hu/validate.js.uncompressed.js +0 -7
  865. data/vendor/assets/javascripts/dijit/form/nls/it/ComboBox.js.uncompressed.js +0 -6
  866. data/vendor/assets/javascripts/dijit/form/nls/it/Textarea.js.uncompressed.js +0 -9
  867. data/vendor/assets/javascripts/dijit/form/nls/it/validate.js.uncompressed.js +0 -7
  868. data/vendor/assets/javascripts/dijit/form/nls/ja/ComboBox.js.uncompressed.js +0 -6
  869. data/vendor/assets/javascripts/dijit/form/nls/ja/Textarea.js.uncompressed.js +0 -9
  870. data/vendor/assets/javascripts/dijit/form/nls/ja/validate.js.uncompressed.js +0 -7
  871. data/vendor/assets/javascripts/dijit/form/nls/kk/ComboBox.js.uncompressed.js +0 -6
  872. data/vendor/assets/javascripts/dijit/form/nls/kk/Textarea.js.uncompressed.js +0 -9
  873. data/vendor/assets/javascripts/dijit/form/nls/kk/validate.js.uncompressed.js +0 -7
  874. data/vendor/assets/javascripts/dijit/form/nls/ko/ComboBox.js.uncompressed.js +0 -6
  875. data/vendor/assets/javascripts/dijit/form/nls/ko/Textarea.js.uncompressed.js +0 -9
  876. data/vendor/assets/javascripts/dijit/form/nls/ko/validate.js.uncompressed.js +0 -7
  877. data/vendor/assets/javascripts/dijit/form/nls/nb/ComboBox.js.uncompressed.js +0 -6
  878. data/vendor/assets/javascripts/dijit/form/nls/nb/Textarea.js.uncompressed.js +0 -9
  879. data/vendor/assets/javascripts/dijit/form/nls/nb/validate.js.uncompressed.js +0 -7
  880. data/vendor/assets/javascripts/dijit/form/nls/nl/ComboBox.js.uncompressed.js +0 -6
  881. data/vendor/assets/javascripts/dijit/form/nls/nl/Textarea.js.uncompressed.js +0 -9
  882. data/vendor/assets/javascripts/dijit/form/nls/nl/validate.js.uncompressed.js +0 -7
  883. data/vendor/assets/javascripts/dijit/form/nls/pl/ComboBox.js.uncompressed.js +0 -6
  884. data/vendor/assets/javascripts/dijit/form/nls/pl/Textarea.js.uncompressed.js +0 -9
  885. data/vendor/assets/javascripts/dijit/form/nls/pl/validate.js.uncompressed.js +0 -7
  886. data/vendor/assets/javascripts/dijit/form/nls/pt-pt/ComboBox.js.uncompressed.js +0 -6
  887. data/vendor/assets/javascripts/dijit/form/nls/pt-pt/Textarea.js.uncompressed.js +0 -9
  888. data/vendor/assets/javascripts/dijit/form/nls/pt-pt/validate.js.uncompressed.js +0 -7
  889. data/vendor/assets/javascripts/dijit/form/nls/pt/ComboBox.js.uncompressed.js +0 -6
  890. data/vendor/assets/javascripts/dijit/form/nls/pt/Textarea.js.uncompressed.js +0 -9
  891. data/vendor/assets/javascripts/dijit/form/nls/pt/validate.js.uncompressed.js +0 -7
  892. data/vendor/assets/javascripts/dijit/form/nls/ro/ComboBox.js.uncompressed.js +0 -6
  893. data/vendor/assets/javascripts/dijit/form/nls/ro/Textarea.js.uncompressed.js +0 -9
  894. data/vendor/assets/javascripts/dijit/form/nls/ro/validate.js.uncompressed.js +0 -7
  895. data/vendor/assets/javascripts/dijit/form/nls/ru/ComboBox.js.uncompressed.js +0 -6
  896. data/vendor/assets/javascripts/dijit/form/nls/ru/Textarea.js.uncompressed.js +0 -9
  897. data/vendor/assets/javascripts/dijit/form/nls/ru/validate.js.uncompressed.js +0 -7
  898. data/vendor/assets/javascripts/dijit/form/nls/sk/ComboBox.js.uncompressed.js +0 -6
  899. data/vendor/assets/javascripts/dijit/form/nls/sk/Textarea.js.uncompressed.js +0 -9
  900. data/vendor/assets/javascripts/dijit/form/nls/sk/validate.js.uncompressed.js +0 -7
  901. data/vendor/assets/javascripts/dijit/form/nls/sl/ComboBox.js.uncompressed.js +0 -6
  902. data/vendor/assets/javascripts/dijit/form/nls/sl/Textarea.js.uncompressed.js +0 -9
  903. data/vendor/assets/javascripts/dijit/form/nls/sl/validate.js.uncompressed.js +0 -7
  904. data/vendor/assets/javascripts/dijit/form/nls/sv/ComboBox.js.uncompressed.js +0 -6
  905. data/vendor/assets/javascripts/dijit/form/nls/sv/Textarea.js.uncompressed.js +0 -9
  906. data/vendor/assets/javascripts/dijit/form/nls/sv/validate.js.uncompressed.js +0 -7
  907. data/vendor/assets/javascripts/dijit/form/nls/th/ComboBox.js.uncompressed.js +0 -6
  908. data/vendor/assets/javascripts/dijit/form/nls/th/Textarea.js.uncompressed.js +0 -9
  909. data/vendor/assets/javascripts/dijit/form/nls/th/validate.js.uncompressed.js +0 -7
  910. data/vendor/assets/javascripts/dijit/form/nls/tr/ComboBox.js.uncompressed.js +0 -6
  911. data/vendor/assets/javascripts/dijit/form/nls/tr/Textarea.js.uncompressed.js +0 -9
  912. data/vendor/assets/javascripts/dijit/form/nls/tr/validate.js.uncompressed.js +0 -7
  913. data/vendor/assets/javascripts/dijit/form/nls/validate.js.uncompressed.js +0 -41
  914. data/vendor/assets/javascripts/dijit/form/nls/zh-tw/ComboBox.js.uncompressed.js +0 -6
  915. data/vendor/assets/javascripts/dijit/form/nls/zh-tw/Textarea.js.uncompressed.js +0 -9
  916. data/vendor/assets/javascripts/dijit/form/nls/zh-tw/validate.js.uncompressed.js +0 -7
  917. data/vendor/assets/javascripts/dijit/form/nls/zh/ComboBox.js.uncompressed.js +0 -6
  918. data/vendor/assets/javascripts/dijit/form/nls/zh/Textarea.js.uncompressed.js +0 -9
  919. data/vendor/assets/javascripts/dijit/form/nls/zh/validate.js.uncompressed.js +0 -7
  920. data/vendor/assets/javascripts/dijit/hccss.js.uncompressed.js +0 -23
  921. data/vendor/assets/javascripts/dijit/layout/AccordionContainer.js.uncompressed.js +0 -540
  922. data/vendor/assets/javascripts/dijit/layout/AccordionPane.js.uncompressed.js +0 -25
  923. data/vendor/assets/javascripts/dijit/layout/BorderContainer.js.uncompressed.js +0 -547
  924. data/vendor/assets/javascripts/dijit/layout/ContentPane.js.uncompressed.js +0 -645
  925. data/vendor/assets/javascripts/dijit/layout/LayoutContainer.js.uncompressed.js +0 -91
  926. data/vendor/assets/javascripts/dijit/layout/LinkPane.js.uncompressed.js +0 -44
  927. data/vendor/assets/javascripts/dijit/layout/ScrollingTabController.js.uncompressed.js +0 -500
  928. data/vendor/assets/javascripts/dijit/layout/SplitContainer.js.uncompressed.js +0 -584
  929. data/vendor/assets/javascripts/dijit/layout/StackContainer.js.uncompressed.js +0 -374
  930. data/vendor/assets/javascripts/dijit/layout/StackController.js.uncompressed.js +0 -389
  931. data/vendor/assets/javascripts/dijit/layout/TabContainer.js.uncompressed.js +0 -77
  932. data/vendor/assets/javascripts/dijit/layout/TabController.js.uncompressed.js +0 -171
  933. data/vendor/assets/javascripts/dijit/layout/_ContentPaneResizeMixin.js.uncompressed.js +0 -234
  934. data/vendor/assets/javascripts/dijit/layout/_LayoutWidget.js.uncompressed.js +0 -185
  935. data/vendor/assets/javascripts/dijit/layout/_TabContainerBase.js.uncompressed.js +0 -146
  936. data/vendor/assets/javascripts/dijit/layout/utils.js.uncompressed.js +0 -145
  937. data/vendor/assets/javascripts/dijit/main.js.uncompressed.js +0 -16
  938. data/vendor/assets/javascripts/dijit/nls/ar/common.js.uncompressed.js +0 -8
  939. data/vendor/assets/javascripts/dijit/nls/ar/loading.js.uncompressed.js +0 -6
  940. data/vendor/assets/javascripts/dijit/nls/az/common.js.uncompressed.js +0 -8
  941. data/vendor/assets/javascripts/dijit/nls/az/loading.js.uncompressed.js +0 -6
  942. data/vendor/assets/javascripts/dijit/nls/ca/common.js.uncompressed.js +0 -8
  943. data/vendor/assets/javascripts/dijit/nls/ca/loading.js.uncompressed.js +0 -6
  944. data/vendor/assets/javascripts/dijit/nls/common.js.uncompressed.js +0 -42
  945. data/vendor/assets/javascripts/dijit/nls/cs/common.js.uncompressed.js +0 -8
  946. data/vendor/assets/javascripts/dijit/nls/cs/loading.js.uncompressed.js +0 -6
  947. data/vendor/assets/javascripts/dijit/nls/da/common.js.uncompressed.js +0 -8
  948. data/vendor/assets/javascripts/dijit/nls/da/loading.js.uncompressed.js +0 -6
  949. data/vendor/assets/javascripts/dijit/nls/de/common.js.uncompressed.js +0 -8
  950. data/vendor/assets/javascripts/dijit/nls/de/loading.js.uncompressed.js +0 -6
  951. data/vendor/assets/javascripts/dijit/nls/dijit-all_ROOT.js.uncompressed.js +0 -21
  952. data/vendor/assets/javascripts/dijit/nls/dijit-all_ar.js.uncompressed.js +0 -21
  953. data/vendor/assets/javascripts/dijit/nls/dijit-all_ca.js.uncompressed.js +0 -21
  954. data/vendor/assets/javascripts/dijit/nls/dijit-all_cs.js.uncompressed.js +0 -21
  955. data/vendor/assets/javascripts/dijit/nls/dijit-all_da.js.uncompressed.js +0 -21
  956. data/vendor/assets/javascripts/dijit/nls/dijit-all_de.js.uncompressed.js +0 -21
  957. data/vendor/assets/javascripts/dijit/nls/dijit-all_el.js.uncompressed.js +0 -21
  958. data/vendor/assets/javascripts/dijit/nls/dijit-all_en-gb.js.uncompressed.js +0 -21
  959. data/vendor/assets/javascripts/dijit/nls/dijit-all_en-us.js.uncompressed.js +0 -21
  960. data/vendor/assets/javascripts/dijit/nls/dijit-all_es-es.js.uncompressed.js +0 -21
  961. data/vendor/assets/javascripts/dijit/nls/dijit-all_fi-fi.js.uncompressed.js +0 -21
  962. data/vendor/assets/javascripts/dijit/nls/dijit-all_fr-fr.js.uncompressed.js +0 -21
  963. data/vendor/assets/javascripts/dijit/nls/dijit-all_he-il.js.uncompressed.js +0 -21
  964. data/vendor/assets/javascripts/dijit/nls/dijit-all_hu.js.uncompressed.js +0 -21
  965. data/vendor/assets/javascripts/dijit/nls/dijit-all_it-it.js.uncompressed.js +0 -21
  966. data/vendor/assets/javascripts/dijit/nls/dijit-all_ja-jp.js.uncompressed.js +0 -21
  967. data/vendor/assets/javascripts/dijit/nls/dijit-all_ko-kr.js.uncompressed.js +0 -21
  968. data/vendor/assets/javascripts/dijit/nls/dijit-all_nb.js.uncompressed.js +0 -21
  969. data/vendor/assets/javascripts/dijit/nls/dijit-all_nl-nl.js.uncompressed.js +0 -21
  970. data/vendor/assets/javascripts/dijit/nls/dijit-all_pl.js.uncompressed.js +0 -21
  971. data/vendor/assets/javascripts/dijit/nls/dijit-all_pt-br.js.uncompressed.js +0 -21
  972. data/vendor/assets/javascripts/dijit/nls/dijit-all_pt-pt.js.uncompressed.js +0 -21
  973. data/vendor/assets/javascripts/dijit/nls/dijit-all_ru.js.uncompressed.js +0 -21
  974. data/vendor/assets/javascripts/dijit/nls/dijit-all_sk.js.uncompressed.js +0 -21
  975. data/vendor/assets/javascripts/dijit/nls/dijit-all_sl.js.uncompressed.js +0 -21
  976. data/vendor/assets/javascripts/dijit/nls/dijit-all_sv.js.uncompressed.js +0 -21
  977. data/vendor/assets/javascripts/dijit/nls/dijit-all_th.js.uncompressed.js +0 -21
  978. data/vendor/assets/javascripts/dijit/nls/dijit-all_tr.js.uncompressed.js +0 -21
  979. data/vendor/assets/javascripts/dijit/nls/dijit-all_zh-cn.js.uncompressed.js +0 -21
  980. data/vendor/assets/javascripts/dijit/nls/dijit-all_zh-tw.js.uncompressed.js +0 -21
  981. data/vendor/assets/javascripts/dijit/nls/el/common.js.uncompressed.js +0 -8
  982. data/vendor/assets/javascripts/dijit/nls/el/loading.js.uncompressed.js +0 -6
  983. data/vendor/assets/javascripts/dijit/nls/es/common.js.uncompressed.js +0 -8
  984. data/vendor/assets/javascripts/dijit/nls/es/loading.js.uncompressed.js +0 -6
  985. data/vendor/assets/javascripts/dijit/nls/fi/common.js.uncompressed.js +0 -8
  986. data/vendor/assets/javascripts/dijit/nls/fi/loading.js.uncompressed.js +0 -6
  987. data/vendor/assets/javascripts/dijit/nls/fr/common.js.uncompressed.js +0 -8
  988. data/vendor/assets/javascripts/dijit/nls/fr/loading.js.uncompressed.js +0 -6
  989. data/vendor/assets/javascripts/dijit/nls/he/common.js.uncompressed.js +0 -8
  990. data/vendor/assets/javascripts/dijit/nls/he/loading.js.uncompressed.js +0 -6
  991. data/vendor/assets/javascripts/dijit/nls/hr/common.js.uncompressed.js +0 -8
  992. data/vendor/assets/javascripts/dijit/nls/hr/loading.js.uncompressed.js +0 -6
  993. data/vendor/assets/javascripts/dijit/nls/hu/common.js.uncompressed.js +0 -8
  994. data/vendor/assets/javascripts/dijit/nls/hu/loading.js.uncompressed.js +0 -6
  995. data/vendor/assets/javascripts/dijit/nls/it/common.js.uncompressed.js +0 -8
  996. data/vendor/assets/javascripts/dijit/nls/it/loading.js.uncompressed.js +0 -6
  997. data/vendor/assets/javascripts/dijit/nls/ja/common.js.uncompressed.js +0 -8
  998. data/vendor/assets/javascripts/dijit/nls/ja/loading.js.uncompressed.js +0 -6
  999. data/vendor/assets/javascripts/dijit/nls/kk/common.js.uncompressed.js +0 -8
  1000. data/vendor/assets/javascripts/dijit/nls/kk/loading.js.uncompressed.js +0 -6
  1001. data/vendor/assets/javascripts/dijit/nls/ko/common.js.uncompressed.js +0 -8
  1002. data/vendor/assets/javascripts/dijit/nls/ko/loading.js.uncompressed.js +0 -6
  1003. data/vendor/assets/javascripts/dijit/nls/loading.js.uncompressed.js +0 -40
  1004. data/vendor/assets/javascripts/dijit/nls/nb/common.js.uncompressed.js +0 -8
  1005. data/vendor/assets/javascripts/dijit/nls/nb/loading.js.uncompressed.js +0 -6
  1006. data/vendor/assets/javascripts/dijit/nls/nl/common.js.uncompressed.js +0 -8
  1007. data/vendor/assets/javascripts/dijit/nls/nl/loading.js.uncompressed.js +0 -6
  1008. data/vendor/assets/javascripts/dijit/nls/pl/common.js.uncompressed.js +0 -8
  1009. data/vendor/assets/javascripts/dijit/nls/pl/loading.js.uncompressed.js +0 -6
  1010. data/vendor/assets/javascripts/dijit/nls/pt-pt/common.js.uncompressed.js +0 -8
  1011. data/vendor/assets/javascripts/dijit/nls/pt-pt/loading.js.uncompressed.js +0 -6
  1012. data/vendor/assets/javascripts/dijit/nls/pt/common.js.uncompressed.js +0 -8
  1013. data/vendor/assets/javascripts/dijit/nls/pt/loading.js.uncompressed.js +0 -6
  1014. data/vendor/assets/javascripts/dijit/nls/ro/common.js.uncompressed.js +0 -8
  1015. data/vendor/assets/javascripts/dijit/nls/ro/loading.js.uncompressed.js +0 -6
  1016. data/vendor/assets/javascripts/dijit/nls/ru/common.js.uncompressed.js +0 -8
  1017. data/vendor/assets/javascripts/dijit/nls/ru/loading.js.uncompressed.js +0 -6
  1018. data/vendor/assets/javascripts/dijit/nls/sk/common.js.uncompressed.js +0 -8
  1019. data/vendor/assets/javascripts/dijit/nls/sk/loading.js.uncompressed.js +0 -6
  1020. data/vendor/assets/javascripts/dijit/nls/sl/common.js.uncompressed.js +0 -8
  1021. data/vendor/assets/javascripts/dijit/nls/sl/loading.js.uncompressed.js +0 -6
  1022. data/vendor/assets/javascripts/dijit/nls/sv/common.js.uncompressed.js +0 -8
  1023. data/vendor/assets/javascripts/dijit/nls/sv/loading.js.uncompressed.js +0 -6
  1024. data/vendor/assets/javascripts/dijit/nls/th/common.js.uncompressed.js +0 -8
  1025. data/vendor/assets/javascripts/dijit/nls/th/loading.js.uncompressed.js +0 -6
  1026. data/vendor/assets/javascripts/dijit/nls/tr/common.js.uncompressed.js +0 -8
  1027. data/vendor/assets/javascripts/dijit/nls/tr/loading.js.uncompressed.js +0 -6
  1028. data/vendor/assets/javascripts/dijit/nls/zh-tw/common.js.uncompressed.js +0 -8
  1029. data/vendor/assets/javascripts/dijit/nls/zh-tw/loading.js.uncompressed.js +0 -6
  1030. data/vendor/assets/javascripts/dijit/nls/zh/common.js.uncompressed.js +0 -8
  1031. data/vendor/assets/javascripts/dijit/nls/zh/loading.js.uncompressed.js +0 -6
  1032. data/vendor/assets/javascripts/dijit/place.js.uncompressed.js +0 -367
  1033. data/vendor/assets/javascripts/dijit/popup.js.uncompressed.js +0 -318
  1034. data/vendor/assets/javascripts/dijit/registry.js.uncompressed.js +0 -161
  1035. data/vendor/assets/javascripts/dijit/tree/ForestStoreModel.js.uncompressed.js +0 -279
  1036. data/vendor/assets/javascripts/dijit/tree/ObjectStoreModel.js.uncompressed.js +0 -252
  1037. data/vendor/assets/javascripts/dijit/tree/TreeStoreModel.js.uncompressed.js +0 -379
  1038. data/vendor/assets/javascripts/dijit/tree/_dndContainer.js.uncompressed.js +0 -165
  1039. data/vendor/assets/javascripts/dijit/tree/_dndSelector.js.uncompressed.js +0 -352
  1040. data/vendor/assets/javascripts/dijit/tree/dndSource.js.uncompressed.js +0 -564
  1041. data/vendor/assets/javascripts/dijit/tree/model.js.uncompressed.js +0 -150
  1042. data/vendor/assets/javascripts/dijit/typematic.js.uncompressed.js +0 -201
  1043. data/vendor/assets/stylesheets/claro/README +0 -11
@@ -1,174 +0,0 @@
1
- require({cache:{
2
- 'url:dijit/templates/TooltipDialog.html':"<div role=\"presentation\" tabIndex=\"-1\">\n\t<div class=\"dijitTooltipContainer\" role=\"presentation\">\n\t\t<div class =\"dijitTooltipContents dijitTooltipFocusNode\" data-dojo-attach-point=\"containerNode\" role=\"dialog\"></div>\n\t</div>\n\t<div class=\"dijitTooltipConnector\" role=\"presentation\" data-dojo-attach-point=\"connectorNode\"></div>\n</div>\n"}});
3
- define("dijit/TooltipDialog", [
4
- "dojo/_base/declare", // declare
5
- "dojo/dom-class", // domClass.replace
6
- "dojo/_base/event", // event.stop
7
- "dojo/keys", // keys
8
- "dojo/_base/lang", // lang.hitch
9
- "./focus",
10
- "./layout/ContentPane",
11
- "./_DialogMixin",
12
- "./form/_FormMixin",
13
- "./_TemplatedMixin",
14
- "dojo/text!./templates/TooltipDialog.html",
15
- "./main" // exports methods to dijit global
16
- ], function(declare, domClass, event, keys, lang,
17
- focus, ContentPane, _DialogMixin, _FormMixin, _TemplatedMixin, template, dijit){
18
-
19
- // module:
20
- // dijit/TooltipDialog
21
-
22
-
23
- return declare("dijit.TooltipDialog",
24
- [ContentPane, _TemplatedMixin, _FormMixin, _DialogMixin], {
25
- // summary:
26
- // Pops up a dialog that appears like a Tooltip
27
-
28
- // title: String
29
- // Description of tooltip dialog (required for a11y)
30
- title: "",
31
-
32
- // doLayout: [protected] Boolean
33
- // Don't change this parameter from the default value.
34
- // This ContentPane parameter doesn't make sense for TooltipDialog, since TooltipDialog
35
- // is never a child of a layout container, nor can you specify the size of
36
- // TooltipDialog in order to control the size of an inner widget.
37
- doLayout: false,
38
-
39
- // autofocus: Boolean
40
- // A Toggle to modify the default focus behavior of a Dialog, which
41
- // is to focus on the first dialog element after opening the dialog.
42
- // False will disable autofocusing. Default: true.
43
- autofocus: true,
44
-
45
- // baseClass: [protected] String
46
- // The root className to use for the various states of this widget
47
- baseClass: "dijitTooltipDialog",
48
-
49
- // _firstFocusItem: [private readonly] DomNode
50
- // The pointer to the first focusable node in the dialog.
51
- // Set by `dijit/_DialogMixin._getFocusItems()`.
52
- _firstFocusItem: null,
53
-
54
- // _lastFocusItem: [private readonly] DomNode
55
- // The pointer to which node has focus prior to our dialog.
56
- // Set by `dijit/_DialogMixin._getFocusItems()`.
57
- _lastFocusItem: null,
58
-
59
- templateString: template,
60
-
61
- _setTitleAttr: function(/*String*/ title){
62
- this.containerNode.title = title;
63
- this._set("title", title);
64
- },
65
-
66
- postCreate: function(){
67
- this.inherited(arguments);
68
- this.connect(this.containerNode, "onkeypress", "_onKey");
69
- },
70
-
71
- orient: function(/*DomNode*/ node, /*String*/ aroundCorner, /*String*/ tooltipCorner){
72
- // summary:
73
- // Configure widget to be displayed in given position relative to the button.
74
- // This is called from the dijit.popup code, and should not be called
75
- // directly.
76
- // tags:
77
- // protected
78
-
79
- // Note: intentionally not using dijitTooltip class since that sets position:absolute, which
80
- // confuses dijit/popup trying to get the size of the tooltip.
81
- var newC = {
82
- "MR-ML": "dijitTooltipRight",
83
- "ML-MR": "dijitTooltipLeft",
84
- "TM-BM": "dijitTooltipAbove",
85
- "BM-TM": "dijitTooltipBelow",
86
- "BL-TL": "dijitTooltipBelow dijitTooltipABLeft",
87
- "TL-BL": "dijitTooltipAbove dijitTooltipABLeft",
88
- "BR-TR": "dijitTooltipBelow dijitTooltipABRight",
89
- "TR-BR": "dijitTooltipAbove dijitTooltipABRight",
90
- "BR-BL": "dijitTooltipRight",
91
- "BL-BR": "dijitTooltipLeft"
92
- }[aroundCorner + "-" + tooltipCorner];
93
-
94
- domClass.replace(this.domNode, newC, this._currentOrientClass || "");
95
- this._currentOrientClass = newC;
96
-
97
- // Tooltip.orient() has code to reposition connector for when Tooltip is before/after anchor.
98
- // Not putting here to avoid code bloat, and since TooltipDialogs are generally above/below.
99
- // Should combine code from Tooltip and TooltipDialog.
100
- },
101
-
102
- focus: function(){
103
- // summary:
104
- // Focus on first field
105
- this._getFocusItems(this.containerNode);
106
- focus.focus(this._firstFocusItem);
107
- },
108
-
109
- onOpen: function(/*Object*/ pos){
110
- // summary:
111
- // Called when dialog is displayed.
112
- // This is called from the dijit.popup code, and should not be called directly.
113
- // tags:
114
- // protected
115
-
116
- this.orient(this.domNode,pos.aroundCorner, pos.corner);
117
-
118
- // Position the tooltip connector for middle alignment.
119
- // This could not have been done in orient() since the tooltip wasn't positioned at that time.
120
- var aroundNodeCoords = pos.aroundNodePos;
121
- if(pos.corner.charAt(0) == 'M' && pos.aroundCorner.charAt(0) == 'M'){
122
- this.connectorNode.style.top = aroundNodeCoords.y + ((aroundNodeCoords.h - this.connectorNode.offsetHeight) >> 1) - pos.y + "px";
123
- this.connectorNode.style.left = "";
124
- }else if(pos.corner.charAt(1) == 'M' && pos.aroundCorner.charAt(1) == 'M'){
125
- this.connectorNode.style.left = aroundNodeCoords.x + ((aroundNodeCoords.w - this.connectorNode.offsetWidth) >> 1) - pos.x + "px";
126
- }
127
-
128
- this._onShow(); // lazy load trigger (TODO: shouldn't we load before positioning?)
129
- },
130
-
131
- onClose: function(){
132
- // summary:
133
- // Called when dialog is hidden.
134
- // This is called from the dijit.popup code, and should not be called directly.
135
- // tags:
136
- // protected
137
- this.onHide();
138
- },
139
-
140
- _onKey: function(/*Event*/ evt){
141
- // summary:
142
- // Handler for keyboard events
143
- // description:
144
- // Keep keyboard focus in dialog; close dialog on escape key
145
- // tags:
146
- // private
147
-
148
- var node = evt.target;
149
- if(evt.charOrCode === keys.TAB){
150
- this._getFocusItems(this.containerNode);
151
- }
152
- var singleFocusItem = (this._firstFocusItem == this._lastFocusItem);
153
- if(evt.charOrCode == keys.ESCAPE){
154
- // Use defer to avoid crash on IE, see #10396.
155
- this.defer("onCancel");
156
- event.stop(evt);
157
- }else if(node == this._firstFocusItem && evt.shiftKey && evt.charOrCode === keys.TAB){
158
- if(!singleFocusItem){
159
- focus.focus(this._lastFocusItem); // send focus to last item in dialog
160
- }
161
- event.stop(evt);
162
- }else if(node == this._lastFocusItem && evt.charOrCode === keys.TAB && !evt.shiftKey){
163
- if(!singleFocusItem){
164
- focus.focus(this._firstFocusItem); // send focus to first item in dialog
165
- }
166
- event.stop(evt);
167
- }else if(evt.charOrCode === keys.TAB){
168
- // we want the browser's default tab handling to move focus
169
- // but we don't want the tab to propagate upwards
170
- evt.stopPropagation();
171
- }
172
- }
173
- });
174
- });
@@ -1,1909 +0,0 @@
1
- require({cache:{
2
- 'url:dijit/templates/TreeNode.html':"<div class=\"dijitTreeNode\" role=\"presentation\"\n\t><div data-dojo-attach-point=\"rowNode\" class=\"dijitTreeRow dijitInline\" role=\"presentation\"\n\t\t><div data-dojo-attach-point=\"indentNode\" class=\"dijitInline\"></div\n\t\t><img src=\"${_blankGif}\" alt=\"\" data-dojo-attach-point=\"expandoNode\" class=\"dijitTreeExpando\" role=\"presentation\"\n\t\t/><span data-dojo-attach-point=\"expandoNodeText\" class=\"dijitExpandoText\" role=\"presentation\"\n\t\t></span\n\t\t><span data-dojo-attach-point=\"contentNode\"\n\t\t\tclass=\"dijitTreeContent\" role=\"presentation\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" data-dojo-attach-point=\"iconNode\" class=\"dijitIcon dijitTreeIcon\" role=\"presentation\"\n\t\t\t/><span data-dojo-attach-point=\"labelNode\" class=\"dijitTreeLabel\" role=\"treeitem\" tabindex=\"-1\" aria-selected=\"false\"></span>\n\t\t</span\n\t></div>\n\t<div data-dojo-attach-point=\"containerNode\" class=\"dijitTreeContainer\" role=\"presentation\" style=\"display: none;\"></div>\n</div>\n",
3
- 'url:dijit/templates/Tree.html':"<div class=\"dijitTree dijitTreeContainer\" role=\"tree\">\n\t<div class=\"dijitInline dijitTreeIndent\" style=\"position: absolute; top: -9999px\" data-dojo-attach-point=\"indentDetector\"></div>\n</div>\n"}});
4
- define("dijit/Tree", [
5
- "dojo/_base/array", // array.filter array.forEach array.map
6
- "dojo/_base/connect", // connect.isCopyKey()
7
- "dojo/cookie", // cookie
8
- "dojo/_base/declare", // declare
9
- "dojo/Deferred", // Deferred
10
- "dojo/DeferredList", // DeferredList
11
- "dojo/dom", // dom.isDescendant
12
- "dojo/dom-class", // domClass.add domClass.remove domClass.replace domClass.toggle
13
- "dojo/dom-geometry", // domGeometry.setMarginBox domGeometry.position
14
- "dojo/dom-style",// domStyle.set
15
- "dojo/_base/event", // event.stop
16
- "dojo/errors/create", // createError
17
- "dojo/fx", // fxUtils.wipeIn fxUtils.wipeOut
18
- "dojo/_base/kernel", // kernel.deprecated
19
- "dojo/keys", // arrows etc.
20
- "dojo/_base/lang", // lang.getObject lang.mixin lang.hitch
21
- "dojo/on", // on(), on.selector()
22
- "dojo/topic",
23
- "dojo/touch",
24
- "dojo/when",
25
- "./focus",
26
- "./registry", // registry.byNode(), registry.getEnclosingWidget()
27
- "./_base/manager", // manager.defaultDuration
28
- "./_Widget",
29
- "./_TemplatedMixin",
30
- "./_Container",
31
- "./_Contained",
32
- "./_CssStateMixin",
33
- "dojo/text!./templates/TreeNode.html",
34
- "dojo/text!./templates/Tree.html",
35
- "./tree/TreeStoreModel",
36
- "./tree/ForestStoreModel",
37
- "./tree/_dndSelector"
38
- ], function(array, connect, cookie, declare, Deferred, DeferredList,
39
- dom, domClass, domGeometry, domStyle, event, createError, fxUtils, kernel, keys, lang, on, topic, touch, when,
40
- focus, registry, manager, _Widget, _TemplatedMixin, _Container, _Contained, _CssStateMixin,
41
- treeNodeTemplate, treeTemplate, TreeStoreModel, ForestStoreModel, _dndSelector){
42
-
43
- // module:
44
- // dijit/Tree
45
-
46
- // Back-compat shim
47
- Deferred = declare(Deferred, {
48
- addCallback: function(callback){ this.then(callback); },
49
- addErrback: function(errback){ this.then(null, errback); }
50
- });
51
-
52
- var TreeNode = declare(
53
- "dijit._TreeNode",
54
- [_Widget, _TemplatedMixin, _Container, _Contained, _CssStateMixin],
55
- {
56
- // summary:
57
- // Single node within a tree. This class is used internally
58
- // by Tree and should not be accessed directly.
59
- // tags:
60
- // private
61
-
62
- // item: [const] Item
63
- // the dojo.data entry this tree represents
64
- item: null,
65
-
66
- // isTreeNode: [protected] Boolean
67
- // Indicates that this is a TreeNode. Used by `dijit.Tree` only,
68
- // should not be accessed directly.
69
- isTreeNode: true,
70
-
71
- // label: String
72
- // Text of this tree node
73
- label: "",
74
- _setLabelAttr: {node: "labelNode", type: "innerText"},
75
-
76
- // isExpandable: [private] Boolean
77
- // This node has children, so show the expando node (+ sign)
78
- isExpandable: null,
79
-
80
- // isExpanded: [readonly] Boolean
81
- // This node is currently expanded (ie, opened)
82
- isExpanded: false,
83
-
84
- // state: [private] String
85
- // Dynamic loading-related stuff.
86
- // When an empty folder node appears, it is "UNCHECKED" first,
87
- // then after dojo.data query it becomes "LOADING" and, finally "LOADED"
88
- state: "UNCHECKED",
89
-
90
- templateString: treeNodeTemplate,
91
-
92
- baseClass: "dijitTreeNode",
93
-
94
- // For hover effect for tree node, and focus effect for label
95
- cssStateNodes: {
96
- rowNode: "dijitTreeRow"
97
- },
98
-
99
- // Tooltip is defined in _WidgetBase but we need to handle the mapping to DOM here
100
- _setTooltipAttr: {node: "rowNode", type: "attribute", attribute: "title"},
101
-
102
- buildRendering: function(){
103
- this.inherited(arguments);
104
-
105
- // set expand icon for leaf
106
- this._setExpando();
107
-
108
- // set icon and label class based on item
109
- this._updateItemClasses(this.item);
110
-
111
- if(this.isExpandable){
112
- this.labelNode.setAttribute("aria-expanded", this.isExpanded);
113
- }
114
-
115
- //aria-selected should be false on all selectable elements.
116
- this.setSelected(false);
117
- },
118
-
119
- _setIndentAttr: function(indent){
120
- // summary:
121
- // Tell this node how many levels it should be indented
122
- // description:
123
- // 0 for top level nodes, 1 for their children, 2 for their
124
- // grandchildren, etc.
125
-
126
- // Math.max() is to prevent negative padding on hidden root node (when indent == -1)
127
- var pixels = (Math.max(indent, 0) * this.tree._nodePixelIndent) + "px";
128
-
129
- domStyle.set(this.domNode, "backgroundPosition", pixels + " 0px"); // TODOC: what is this for???
130
- domStyle.set(this.indentNode, this.isLeftToRight() ? "paddingLeft" : "paddingRight", pixels);
131
-
132
- array.forEach(this.getChildren(), function(child){
133
- child.set("indent", indent+1);
134
- });
135
-
136
- this._set("indent", indent);
137
- },
138
-
139
- markProcessing: function(){
140
- // summary:
141
- // Visually denote that tree is loading data, etc.
142
- // tags:
143
- // private
144
- this.state = "LOADING";
145
- this._setExpando(true);
146
- },
147
-
148
- unmarkProcessing: function(){
149
- // summary:
150
- // Clear markup from markProcessing() call
151
- // tags:
152
- // private
153
- this._setExpando(false);
154
- },
155
-
156
- _updateItemClasses: function(item){
157
- // summary:
158
- // Set appropriate CSS classes for icon and label dom node
159
- // (used to allow for item updates to change respective CSS)
160
- // tags:
161
- // private
162
- var tree = this.tree, model = tree.model;
163
- if(tree._v10Compat && item === model.root){
164
- // For back-compat with 1.0, need to use null to specify root item (TODO: remove in 2.0)
165
- item = null;
166
- }
167
- this._applyClassAndStyle(item, "icon", "Icon");
168
- this._applyClassAndStyle(item, "label", "Label");
169
- this._applyClassAndStyle(item, "row", "Row");
170
-
171
- this.tree._startPaint(true); // signifies paint started and finished (synchronously)
172
- },
173
-
174
- _applyClassAndStyle: function(item, lower, upper){
175
- // summary:
176
- // Set the appropriate CSS classes and styles for labels, icons and rows.
177
- //
178
- // item:
179
- // The data item.
180
- //
181
- // lower:
182
- // The lower case attribute to use, e.g. 'icon', 'label' or 'row'.
183
- //
184
- // upper:
185
- // The upper case attribute to use, e.g. 'Icon', 'Label' or 'Row'.
186
- //
187
- // tags:
188
- // private
189
-
190
- var clsName = "_" + lower + "Class";
191
- var nodeName = lower + "Node";
192
- var oldCls = this[clsName];
193
-
194
- this[clsName] = this.tree["get" + upper + "Class"](item, this.isExpanded);
195
- domClass.replace(this[nodeName], this[clsName] || "", oldCls || "");
196
-
197
- domStyle.set(this[nodeName], this.tree["get" + upper + "Style"](item, this.isExpanded) || {});
198
- },
199
-
200
- _updateLayout: function(){
201
- // summary:
202
- // Set appropriate CSS classes for this.domNode
203
- // tags:
204
- // private
205
- var parent = this.getParent();
206
- if(!parent || !parent.rowNode || parent.rowNode.style.display == "none"){
207
- /* if we are hiding the root node then make every first level child look like a root node */
208
- domClass.add(this.domNode, "dijitTreeIsRoot");
209
- }else{
210
- domClass.toggle(this.domNode, "dijitTreeIsLast", !this.getNextSibling());
211
- }
212
- },
213
-
214
- _setExpando: function(/*Boolean*/ processing){
215
- // summary:
216
- // Set the right image for the expando node
217
- // tags:
218
- // private
219
-
220
- var styles = ["dijitTreeExpandoLoading", "dijitTreeExpandoOpened",
221
- "dijitTreeExpandoClosed", "dijitTreeExpandoLeaf"],
222
- _a11yStates = ["*","-","+","*"],
223
- idx = processing ? 0 : (this.isExpandable ? (this.isExpanded ? 1 : 2) : 3);
224
-
225
- // apply the appropriate class to the expando node
226
- domClass.replace(this.expandoNode, styles[idx], styles);
227
-
228
- // provide a non-image based indicator for images-off mode
229
- this.expandoNodeText.innerHTML = _a11yStates[idx];
230
-
231
- },
232
-
233
- expand: function(){
234
- // summary:
235
- // Show my children
236
- // returns:
237
- // Deferred that fires when expansion is complete
238
-
239
- // If there's already an expand in progress or we are already expanded, just return
240
- if(this._expandDeferred){
241
- return this._expandDeferred; // dojo/_base/Deferred
242
- }
243
-
244
- // cancel in progress collapse operation
245
- if(this._collapseDeferred){
246
- this._collapseDeferred.cancel();
247
- delete this._collapseDeferred;
248
- }
249
-
250
- // All the state information for when a node is expanded, maybe this should be
251
- // set when the animation completes instead
252
- this.isExpanded = true;
253
- this.labelNode.setAttribute("aria-expanded", "true");
254
- if(this.tree.showRoot || this !== this.tree.rootNode){
255
- this.containerNode.setAttribute("role", "group");
256
- }
257
- domClass.add(this.contentNode,'dijitTreeContentExpanded');
258
- this._setExpando();
259
- this._updateItemClasses(this.item);
260
-
261
- if(this == this.tree.rootNode && this.tree.showRoot){
262
- this.tree.domNode.setAttribute("aria-expanded", "true");
263
- }
264
-
265
- var def,
266
- wipeIn = fxUtils.wipeIn({
267
- node: this.containerNode,
268
- duration: manager.defaultDuration,
269
- onEnd: function(){
270
- def.resolve(true);
271
- }
272
- });
273
-
274
- // Deferred that fires when expand is complete
275
- def = (this._expandDeferred = new Deferred(function(){
276
- // Canceller
277
- wipeIn.stop();
278
- }));
279
-
280
- wipeIn.play();
281
-
282
- return def; // dojo/_base/Deferred
283
- },
284
-
285
- collapse: function(){
286
- // summary:
287
- // Collapse this node (if it's expanded)
288
-
289
- if(this._collapseDeferred){
290
- // Node is already collapsed, or there's a collapse in progress, just return that Deferred
291
- return this._collapseDeferred;
292
- }
293
-
294
- // cancel in progress expand operation
295
- if(this._expandDeferred){
296
- this._expandDeferred.cancel();
297
- delete this._expandDeferred;
298
- }
299
-
300
- this.isExpanded = false;
301
- this.labelNode.setAttribute("aria-expanded", "false");
302
- if(this == this.tree.rootNode && this.tree.showRoot){
303
- this.tree.domNode.setAttribute("aria-expanded", "false");
304
- }
305
- domClass.remove(this.contentNode,'dijitTreeContentExpanded');
306
- this._setExpando();
307
- this._updateItemClasses(this.item);
308
-
309
- var def,
310
- wipeOut = fxUtils.wipeOut({
311
- node: this.containerNode,
312
- duration: manager.defaultDuration,
313
- onEnd: function(){
314
- def.resolve(true);
315
- }
316
- });
317
-
318
- // Deferred that fires when expand is complete
319
- def = (this._collapseDeferred = new Deferred(function(){
320
- // Canceller
321
- wipeOut.stop();
322
- }));
323
-
324
- wipeOut.play();
325
-
326
- return def; // dojo/_base/Deferred
327
- },
328
-
329
- // indent: Integer
330
- // Levels from this node to the root node
331
- indent: 0,
332
-
333
- setChildItems: function(/* Object[] */ items){
334
- // summary:
335
- // Sets the child items of this node, removing/adding nodes
336
- // from current children to match specified items[] array.
337
- // Also, if this.persist == true, expands any children that were previously
338
- // opened.
339
- // returns:
340
- // Deferred object that fires after all previously opened children
341
- // have been expanded again (or fires instantly if there are no such children).
342
-
343
- var tree = this.tree,
344
- model = tree.model,
345
- defs = []; // list of deferreds that need to fire before I am complete
346
-
347
-
348
- // Orphan all my existing children.
349
- // If items contains some of the same items as before then we will reattach them.
350
- // Don't call this.removeChild() because that will collapse the tree etc.
351
- var oldChildren = this.getChildren();
352
- array.forEach(oldChildren, function(child){
353
- _Container.prototype.removeChild.call(this, child);
354
- }, this);
355
-
356
- // All the old children of this TreeNode are subject for destruction if
357
- // 1) they aren't listed in the new children array (items)
358
- // 2) they aren't immediately adopted by another node (DnD)
359
- this.defer(function(){
360
- array.forEach(oldChildren, function(node){
361
- if(!node._destroyed && !node.getParent()){
362
- // If node is in selection then remove it.
363
- tree.dndController.removeTreeNode(node);
364
-
365
- // Deregister mapping from item id --> this node
366
- var id = model.getIdentity(node.item),
367
- ary = tree._itemNodesMap[id];
368
- if(ary.length == 1){
369
- delete tree._itemNodesMap[id];
370
- }else{
371
- var index = array.indexOf(ary, node);
372
- if(index != -1){
373
- ary.splice(index, 1);
374
- }
375
- }
376
-
377
- // And finally we can destroy the node
378
- node.destroyRecursive();
379
- }
380
- });
381
- });
382
-
383
- this.state = "LOADED";
384
-
385
- if(items && items.length > 0){
386
- this.isExpandable = true;
387
-
388
- // Create _TreeNode widget for each specified tree node, unless one already
389
- // exists and isn't being used (presumably it's from a DnD move and was recently
390
- // released
391
- array.forEach(items, function(item){ // MARKER: REUSE NODE
392
- var id = model.getIdentity(item),
393
- existingNodes = tree._itemNodesMap[id],
394
- node;
395
- if(existingNodes){
396
- for(var i=0;i<existingNodes.length;i++){
397
- if(existingNodes[i] && !existingNodes[i].getParent()){
398
- node = existingNodes[i];
399
- node.set('indent', this.indent+1);
400
- break;
401
- }
402
- }
403
- }
404
- if(!node){
405
- node = this.tree._createTreeNode({
406
- item: item,
407
- tree: tree,
408
- isExpandable: model.mayHaveChildren(item),
409
- label: tree.getLabel(item),
410
- tooltip: tree.getTooltip(item),
411
- ownerDocument: tree.ownerDocument,
412
- dir: tree.dir,
413
- lang: tree.lang,
414
- textDir: tree.textDir,
415
- indent: this.indent + 1
416
- });
417
- if(existingNodes){
418
- existingNodes.push(node);
419
- }else{
420
- tree._itemNodesMap[id] = [node];
421
- }
422
- }
423
- this.addChild(node);
424
-
425
- // If node was previously opened then open it again now (this may trigger
426
- // more data store accesses, recursively)
427
- if(this.tree.autoExpand || this.tree._state(node)){
428
- defs.push(tree._expandNode(node));
429
- }
430
- }, this);
431
-
432
- // note that updateLayout() needs to be called on each child after
433
- // _all_ the children exist
434
- array.forEach(this.getChildren(), function(child){
435
- child._updateLayout();
436
- });
437
- }else{
438
- this.isExpandable=false;
439
- }
440
-
441
- if(this._setExpando){
442
- // change expando to/from dot or + icon, as appropriate
443
- this._setExpando(false);
444
- }
445
-
446
- // Set leaf icon or folder icon, as appropriate
447
- this._updateItemClasses(this.item);
448
-
449
- // On initial tree show, make the selected TreeNode as either the root node of the tree,
450
- // or the first child, if the root node is hidden
451
- if(this == tree.rootNode){
452
- var fc = this.tree.showRoot ? this : this.getChildren()[0];
453
- if(fc){
454
- fc.setFocusable(true);
455
- tree.lastFocused = fc;
456
- }else{
457
- // fallback: no nodes in tree so focus on Tree <div> itself
458
- tree.domNode.setAttribute("tabIndex", "0");
459
- }
460
- }
461
-
462
- var def = new DeferredList(defs);
463
- this.tree._startPaint(def); // to reset TreeNode widths after an item is added/removed from the Tree
464
- return def; // dojo/_base/Deferred
465
- },
466
-
467
- getTreePath: function(){
468
- var node = this;
469
- var path = [];
470
- while(node && node !== this.tree.rootNode){
471
- path.unshift(node.item);
472
- node = node.getParent();
473
- }
474
- path.unshift(this.tree.rootNode.item);
475
-
476
- return path;
477
- },
478
-
479
- getIdentity: function(){
480
- return this.tree.model.getIdentity(this.item);
481
- },
482
-
483
- removeChild: function(/* treeNode */ node){
484
- this.inherited(arguments);
485
-
486
- var children = this.getChildren();
487
- if(children.length == 0){
488
- this.isExpandable = false;
489
- this.collapse();
490
- }
491
-
492
- array.forEach(children, function(child){
493
- child._updateLayout();
494
- });
495
- },
496
-
497
- makeExpandable: function(){
498
- // summary:
499
- // if this node wasn't already showing the expando node,
500
- // turn it into one and call _setExpando()
501
-
502
- // TODO: hmm this isn't called from anywhere, maybe should remove it for 2.0
503
-
504
- this.isExpandable = true;
505
- this._setExpando(false);
506
- },
507
-
508
- setSelected: function(/*Boolean*/ selected){
509
- // summary:
510
- // A Tree has a (single) currently selected node.
511
- // Mark that this node is/isn't that currently selected node.
512
- // description:
513
- // In particular, setting a node as selected involves setting tabIndex
514
- // so that when user tabs to the tree, focus will go to that node (only).
515
- this.labelNode.setAttribute("aria-selected", selected ? "true" : "false");
516
- domClass.toggle(this.rowNode, "dijitTreeRowSelected", selected);
517
- },
518
-
519
- setFocusable: function(/*Boolean*/ selected){
520
- // summary:
521
- // A Tree has a (single) node that's focusable.
522
- // Mark that this node is/isn't that currently focsuable node.
523
- // description:
524
- // In particular, setting a node as selected involves setting tabIndex
525
- // so that when user tabs to the tree, focus will go to that node (only).
526
-
527
- this.labelNode.setAttribute("tabIndex", selected ? "0" : "-1");
528
- },
529
-
530
-
531
- _setTextDirAttr: function(textDir){
532
- if(textDir &&((this.textDir != textDir) || !this._created)){
533
- this._set("textDir", textDir);
534
- this.applyTextDir(this.labelNode, this.labelNode.innerText || this.labelNode.textContent || "");
535
- array.forEach(this.getChildren(), function(childNode){
536
- childNode.set("textDir", textDir);
537
- }, this);
538
- }
539
- }
540
- });
541
-
542
- var Tree = declare("dijit.Tree", [_Widget, _TemplatedMixin], {
543
- // summary:
544
- // This widget displays hierarchical data from a store.
545
-
546
- // store: [deprecated] String|dojo/data/Store
547
- // Deprecated. Use "model" parameter instead.
548
- // The store to get data to display in the tree.
549
- store: null,
550
-
551
- // model: dijit/tree/model
552
- // Interface to read tree data, get notifications of changes to tree data,
553
- // and for handling drop operations (i.e drag and drop onto the tree)
554
- model: null,
555
-
556
- // query: [deprecated] anything
557
- // Deprecated. User should specify query to the model directly instead.
558
- // Specifies datastore query to return the root item or top items for the tree.
559
- query: null,
560
-
561
- // label: [deprecated] String
562
- // Deprecated. Use dijit/tree/ForestStoreModel directly instead.
563
- // Used in conjunction with query parameter.
564
- // If a query is specified (rather than a root node id), and a label is also specified,
565
- // then a fake root node is created and displayed, with this label.
566
- label: "",
567
-
568
- // showRoot: [const] Boolean
569
- // Should the root node be displayed, or hidden?
570
- showRoot: true,
571
-
572
- // childrenAttr: [deprecated] String[]
573
- // Deprecated. This information should be specified in the model.
574
- // One ore more attributes that holds children of a tree node
575
- childrenAttr: ["children"],
576
-
577
- // paths: String[][] or Item[][]
578
- // Full paths from rootNode to selected nodes expressed as array of items or array of ids.
579
- // Since setting the paths may be asynchronous (because of waiting on dojo.data), set("paths", ...)
580
- // returns a Deferred to indicate when the set is complete.
581
- paths: [],
582
-
583
- // path: String[] or Item[]
584
- // Backward compatible singular variant of paths.
585
- path: [],
586
-
587
- // selectedItems: [readonly] Item[]
588
- // The currently selected items in this tree.
589
- // This property can only be set (via set('selectedItems', ...)) when that item is already
590
- // visible in the tree. (I.e. the tree has already been expanded to show that node.)
591
- // Should generally use `paths` attribute to set the selected items instead.
592
- selectedItems: null,
593
-
594
- // selectedItem: [readonly] Item
595
- // Backward compatible singular variant of selectedItems.
596
- selectedItem: null,
597
-
598
- // openOnClick: Boolean
599
- // If true, clicking a folder node's label will open it, rather than calling onClick()
600
- openOnClick: false,
601
-
602
- // openOnDblClick: Boolean
603
- // If true, double-clicking a folder node's label will open it, rather than calling onDblClick()
604
- openOnDblClick: false,
605
-
606
- templateString: treeTemplate,
607
-
608
- // persist: Boolean
609
- // Enables/disables use of cookies for state saving.
610
- persist: true,
611
-
612
- // autoExpand: Boolean
613
- // Fully expand the tree on load. Overrides `persist`.
614
- autoExpand: false,
615
-
616
- // dndController: [protected] Function|String
617
- // Class to use as as the dnd controller. Specifying this class enables DnD.
618
- // Generally you should specify this as dijit/tree/dndSource.
619
- // Setting of dijit/tree/_dndSelector handles selection only (no actual DnD).
620
- dndController: _dndSelector,
621
-
622
- // parameters to pull off of the tree and pass on to the dndController as its params
623
- dndParams: ["onDndDrop","itemCreator","onDndCancel","checkAcceptance", "checkItemAcceptance", "dragThreshold", "betweenThreshold"],
624
-
625
- //declare the above items so they can be pulled from the tree's markup
626
-
627
- // onDndDrop: [protected] Function
628
- // Parameter to dndController, see `dijit/tree/dndSource.onDndDrop()`.
629
- // Generally this doesn't need to be set.
630
- onDndDrop: null,
631
-
632
- itemCreator: null,
633
- /*=====
634
- itemCreator: function(nodes, target, source){
635
- // summary:
636
- // Returns objects passed to `Tree.model.newItem()` based on DnD nodes
637
- // dropped onto the tree. Developer must override this method to enable
638
- // dropping from external sources onto this Tree, unless the Tree.model's items
639
- // happen to look like {id: 123, name: "Apple" } with no other attributes.
640
- //
641
- // For each node in nodes[], which came from source, create a hash of name/value
642
- // pairs to be passed to Tree.model.newItem(). Returns array of those hashes.
643
- // nodes: DomNode[]
644
- // The DOMNodes dragged from the source container
645
- // target: DomNode
646
- // The target TreeNode.rowNode
647
- // source: dojo/dnd/Source
648
- // The source container the nodes were dragged from, perhaps another Tree or a plain dojo/dnd/Source
649
- // returns: Object[]
650
- // Array of name/value hashes for each new item to be added to the Tree, like:
651
- // | [
652
- // | { id: 123, label: "apple", foo: "bar" },
653
- // | { id: 456, label: "pear", zaz: "bam" }
654
- // | ]
655
- // tags:
656
- // extension
657
- return [{}];
658
- },
659
- =====*/
660
-
661
- // onDndCancel: [protected] Function
662
- // Parameter to dndController, see `dijit/tree/dndSource.onDndCancel()`.
663
- // Generally this doesn't need to be set.
664
- onDndCancel: null,
665
-
666
- /*=====
667
- checkAcceptance: function(source, nodes){
668
- // summary:
669
- // Checks if the Tree itself can accept nodes from this source
670
- // source: dijit/tree/dndSource
671
- // The source which provides items
672
- // nodes: DOMNode[]
673
- // Array of DOM nodes corresponding to nodes being dropped, dijitTreeRow nodes if
674
- // source is a dijit/Tree.
675
- // tags:
676
- // extension
677
- return true; // Boolean
678
- },
679
- =====*/
680
- checkAcceptance: null,
681
-
682
- /*=====
683
- checkItemAcceptance: function(target, source, position){
684
- // summary:
685
- // Stub function to be overridden if one wants to check for the ability to drop at the node/item level
686
- // description:
687
- // In the base case, this is called to check if target can become a child of source.
688
- // When betweenThreshold is set, position="before" or "after" means that we
689
- // are asking if the source node can be dropped before/after the target node.
690
- // target: DOMNode
691
- // The dijitTreeRoot DOM node inside of the TreeNode that we are dropping on to
692
- // Use registry.getEnclosingWidget(target) to get the TreeNode.
693
- // source: dijit/tree/dndSource
694
- // The (set of) nodes we are dropping
695
- // position: String
696
- // "over", "before", or "after"
697
- // tags:
698
- // extension
699
- return true; // Boolean
700
- },
701
- =====*/
702
- checkItemAcceptance: null,
703
-
704
- // dragThreshold: Integer
705
- // Number of pixels mouse moves before it's considered the start of a drag operation
706
- dragThreshold: 5,
707
-
708
- // betweenThreshold: Integer
709
- // Set to a positive value to allow drag and drop "between" nodes.
710
- //
711
- // If during DnD mouse is over a (target) node but less than betweenThreshold
712
- // pixels from the bottom edge, dropping the the dragged node will make it
713
- // the next sibling of the target node, rather than the child.
714
- //
715
- // Similarly, if mouse is over a target node but less that betweenThreshold
716
- // pixels from the top edge, dropping the dragged node will make it
717
- // the target node's previous sibling rather than the target node's child.
718
- betweenThreshold: 0,
719
-
720
- // _nodePixelIndent: Integer
721
- // Number of pixels to indent tree nodes (relative to parent node).
722
- // Default is 19 but can be overridden by setting CSS class dijitTreeIndent
723
- // and calling resize() or startup() on tree after it's in the DOM.
724
- _nodePixelIndent: 19,
725
-
726
- _publish: function(/*String*/ topicName, /*Object*/ message){
727
- // summary:
728
- // Publish a message for this widget/topic
729
- topic.publish(this.id, lang.mixin({tree: this, event: topicName}, message || {})); // publish
730
- },
731
-
732
- postMixInProperties: function(){
733
- this.tree = this;
734
-
735
- if(this.autoExpand){
736
- // There's little point in saving opened/closed state of nodes for a Tree
737
- // that initially opens all it's nodes.
738
- this.persist = false;
739
- }
740
-
741
- this._itemNodesMap = {};
742
-
743
- if(!this.cookieName && this.id){
744
- this.cookieName = this.id + "SaveStateCookie";
745
- }
746
-
747
- // Deferred that fires when all the children have loaded.
748
- this.expandChildrenDeferred = new Deferred();
749
-
750
- // Deferred that fires when all pending operations complete.
751
- this.pendingCommandsDeferred = this.expandChildrenDeferred;
752
-
753
- this.inherited(arguments);
754
- },
755
-
756
- postCreate: function(){
757
- this._initState();
758
-
759
- // Catch events on TreeNodes
760
- var self = this;
761
- this.own(
762
- on(this.domNode, on.selector(".dijitTreeNode", touch.enter), function(evt){
763
- self._onNodeMouseEnter(registry.byNode(this), evt);
764
- }),
765
- on(this.domNode, on.selector(".dijitTreeNode", touch.leave), function(evt){
766
- self._onNodeMouseLeave(registry.byNode(this), evt);
767
- }),
768
- on(this.domNode, on.selector(".dijitTreeNode", "click"), function(evt){
769
- self._onClick(registry.byNode(this), evt);
770
- }),
771
- on(this.domNode, on.selector(".dijitTreeNode", "dblclick"), function(evt){
772
- self._onDblClick(registry.byNode(this), evt);
773
- }),
774
- on(this.domNode, on.selector(".dijitTreeNode", "keypress"), function(evt){
775
- self._onKeyPress(registry.byNode(this), evt);
776
- }),
777
- on(this.domNode, on.selector(".dijitTreeNode", "keydown"), function(evt){
778
- self._onKeyDown(registry.byNode(this), evt);
779
- }),
780
- on(this.domNode, on.selector(".dijitTreeRow", "focusin"), function(evt){
781
- self._onNodeFocus(registry.getEnclosingWidget(this), evt);
782
- })
783
- );
784
-
785
- // Create glue between store and Tree, if not specified directly by user
786
- if(!this.model){
787
- this._store2model();
788
- }
789
-
790
- // monitor changes to items
791
- this.connect(this.model, "onChange", "_onItemChange");
792
- this.connect(this.model, "onChildrenChange", "_onItemChildrenChange");
793
- this.connect(this.model, "onDelete", "_onItemDelete");
794
-
795
- this.inherited(arguments);
796
-
797
- if(this.dndController){
798
- if(lang.isString(this.dndController)){
799
- this.dndController = lang.getObject(this.dndController);
800
- }
801
- var params={};
802
- for(var i=0; i<this.dndParams.length;i++){
803
- if(this[this.dndParams[i]]){
804
- params[this.dndParams[i]] = this[this.dndParams[i]];
805
- }
806
- }
807
- this.dndController = new this.dndController(this, params);
808
- }
809
-
810
- this._load();
811
-
812
- // If no path was specified to the constructor, use path saved in cookie
813
- if(!this.params.path && !this.params.paths && this.persist){
814
- this.set("paths", this.dndController._getSavedPaths());
815
- }
816
-
817
- // onLoadDeferred should fire when all commands that are part of initialization have completed.
818
- // It will include all the set("paths", ...) commands that happen during initialization.
819
- this.onLoadDeferred = this.pendingCommandsDeferred;
820
-
821
- this.onLoadDeferred.then(lang.hitch(this, "onLoad"));
822
- },
823
-
824
- _store2model: function(){
825
- // summary:
826
- // User specified a store&query rather than model, so create model from store/query
827
- this._v10Compat = true;
828
- kernel.deprecated("Tree: from version 2.0, should specify a model object rather than a store/query");
829
-
830
- var modelParams = {
831
- id: this.id + "_ForestStoreModel",
832
- store: this.store,
833
- query: this.query,
834
- childrenAttrs: this.childrenAttr
835
- };
836
-
837
- // Only override the model's mayHaveChildren() method if the user has specified an override
838
- if(this.params.mayHaveChildren){
839
- modelParams.mayHaveChildren = lang.hitch(this, "mayHaveChildren");
840
- }
841
-
842
- if(this.params.getItemChildren){
843
- modelParams.getChildren = lang.hitch(this, function(item, onComplete, onError){
844
- this.getItemChildren((this._v10Compat && item === this.model.root) ? null : item, onComplete, onError);
845
- });
846
- }
847
- this.model = new ForestStoreModel(modelParams);
848
-
849
- // For backwards compatibility, the visibility of the root node is controlled by
850
- // whether or not the user has specified a label
851
- this.showRoot = Boolean(this.label);
852
- },
853
-
854
- onLoad: function(){
855
- // summary:
856
- // Called when tree finishes loading and expanding.
857
- // description:
858
- // If persist == true the loading may encompass many levels of fetches
859
- // from the data store, each asynchronous. Waits for all to finish.
860
- // tags:
861
- // callback
862
- },
863
-
864
- _load: function(){
865
- // summary:
866
- // Initial load of the tree.
867
- // Load root node (possibly hidden) and it's children.
868
- this.model.getRoot(
869
- lang.hitch(this, function(item){
870
- var rn = (this.rootNode = this.tree._createTreeNode({
871
- item: item,
872
- tree: this,
873
- isExpandable: true,
874
- label: this.label || this.getLabel(item),
875
- textDir: this.textDir,
876
- indent: this.showRoot ? 0 : -1
877
- }));
878
-
879
- if(!this.showRoot){
880
- rn.rowNode.style.display="none";
881
- // if root is not visible, move tree role to the invisible
882
- // root node's containerNode, see #12135
883
- this.domNode.setAttribute("role", "presentation");
884
- this.domNode.removeAttribute("aria-expanded");
885
- this.domNode.removeAttribute("aria-multiselectable");
886
-
887
- rn.labelNode.setAttribute("role", "presentation");
888
- rn.containerNode.setAttribute("role", "tree");
889
- rn.containerNode.setAttribute("aria-expanded","true");
890
- rn.containerNode.setAttribute("aria-multiselectable", !this.dndController.singular);
891
- }else{
892
- this.domNode.setAttribute("aria-multiselectable", !this.dndController.singular);
893
- }
894
-
895
- this.domNode.appendChild(rn.domNode);
896
- var identity = this.model.getIdentity(item);
897
- if(this._itemNodesMap[identity]){
898
- this._itemNodesMap[identity].push(rn);
899
- }else{
900
- this._itemNodesMap[identity] = [rn];
901
- }
902
-
903
- rn._updateLayout(); // sets "dijitTreeIsRoot" CSS classname
904
-
905
- // Load top level children, and if persist==true, all nodes that were previously opened
906
- this._expandNode(rn).then(lang.hitch(this, function(){
907
- // Then, select the nodes that were selected last time, or
908
- // the ones specified by params.paths[].
909
-
910
- this.expandChildrenDeferred.resolve(true);
911
- }));
912
- }),
913
- lang.hitch(this, function(err){
914
- console.error(this, ": error loading root: ", err);
915
- })
916
- );
917
- },
918
-
919
- getNodesByItem: function(/*Item or id*/ item){
920
- // summary:
921
- // Returns all tree nodes that refer to an item
922
- // returns:
923
- // Array of tree nodes that refer to passed item
924
-
925
- if(!item){ return []; }
926
- var identity = lang.isString(item) ? item : this.model.getIdentity(item);
927
- // return a copy so widget don't get messed up by changes to returned array
928
- return [].concat(this._itemNodesMap[identity]);
929
- },
930
-
931
- _setSelectedItemAttr: function(/*Item or id*/ item){
932
- this.set('selectedItems', [item]);
933
- },
934
-
935
- _setSelectedItemsAttr: function(/*Items or ids*/ items){
936
- // summary:
937
- // Select tree nodes related to passed items.
938
- // WARNING: if model use multi-parented items or desired tree node isn't already loaded
939
- // behavior is undefined. Use set('paths', ...) instead.
940
- var tree = this;
941
- return this.pendingCommandsDeferred = this.pendingCommandsDeferred.then( lang.hitch(this, function(){
942
- var identities = array.map(items, function(item){
943
- return (!item || lang.isString(item)) ? item : tree.model.getIdentity(item);
944
- });
945
- var nodes = [];
946
- array.forEach(identities, function(id){
947
- nodes = nodes.concat(tree._itemNodesMap[id] || []);
948
- });
949
- this.set('selectedNodes', nodes);
950
- }));
951
- },
952
-
953
- _setPathAttr: function(/*Item[]|String[]*/ path){
954
- // summary:
955
- // Singular variant of _setPathsAttr
956
- if(path.length){
957
- return this.set("paths", [path]);
958
- }else{
959
- // Empty list is interpreted as "select nothing"
960
- return this.set("paths", []);
961
- }
962
- },
963
-
964
- _setPathsAttr: function(/*Item[][]|String[][]*/ paths){
965
- // summary:
966
- // Select the tree nodes identified by passed paths.
967
- // paths:
968
- // Array of arrays of items or item id's
969
- // returns:
970
- // Deferred to indicate when the set is complete
971
-
972
- var tree = this;
973
-
974
- // Let any previous set("path", ...) commands complete before this one starts.
975
- return this.pendingCommandsDeferred = this.pendingCommandsDeferred.then(function(){
976
- // We may need to wait for some nodes to expand, so setting
977
- // each path will involve a Deferred. We bring those deferreds
978
- // together with a DeferredList.
979
- return new DeferredList(array.map(paths, function(path){
980
- var d = new Deferred();
981
-
982
- // normalize path to use identity
983
- path = array.map(path, function(item){
984
- return lang.isString(item) ? item : tree.model.getIdentity(item);
985
- });
986
-
987
- if(path.length){
988
- // Wait for the tree to load, if it hasn't already.
989
- selectPath(path, [tree.rootNode], d);
990
- }else{
991
- d.reject(new Tree.PathError("Empty path"));
992
- }
993
- return d;
994
- }));
995
- }).then(setNodes);
996
-
997
- function selectPath(path, nodes, def){
998
- // Traverse path; the next path component should be among "nodes".
999
- var nextPath = path.shift();
1000
- var nextNode = array.filter(nodes, function(node){
1001
- return node.getIdentity() == nextPath;
1002
- })[0];
1003
- if(!!nextNode){
1004
- if(path.length){
1005
- tree._expandNode(nextNode).then(function(){ selectPath(path, nextNode.getChildren(), def); });
1006
- }else{
1007
- // Successfully reached the end of this path
1008
- def.resolve(nextNode);
1009
- }
1010
- }else{
1011
- def.reject(new Tree.PathError("Could not expand path at " + nextPath));
1012
- }
1013
- }
1014
-
1015
- function setNodes(newNodes){
1016
- // After all expansion is finished, set the selection to
1017
- // the set of nodes successfully found.
1018
- tree.set("selectedNodes", array.map(
1019
- array.filter(newNodes,function(x){return x[0];}),
1020
- function(x){return x[1];}));
1021
- }
1022
- },
1023
-
1024
- _setSelectedNodeAttr: function(node){
1025
- this.set('selectedNodes', [node]);
1026
- },
1027
- _setSelectedNodesAttr: function(nodes){
1028
- // summary:
1029
- // Marks the specified TreeNodes as selected.
1030
- // nodes: TreeNode[]
1031
- // TreeNodes to mark.
1032
- this.dndController.setSelection(nodes);
1033
- },
1034
-
1035
-
1036
- expandAll: function(){
1037
- // summary:
1038
- // Expand all nodes in the tree
1039
- // returns:
1040
- // Deferred that fires when all nodes have expanded
1041
-
1042
- var _this = this;
1043
-
1044
- function expand(node){
1045
- var def = new dojo.Deferred();
1046
-
1047
- // Expand the node
1048
- _this._expandNode(node).then(function(){
1049
- // When node has expanded, call expand() recursively on each non-leaf child
1050
- var childBranches = array.filter(node.getChildren() || [], function(node){
1051
- return node.isExpandable;
1052
- }),
1053
- defs = array.map(childBranches, expand);
1054
-
1055
- // And when all those recursive calls finish, signal that I'm finished
1056
- new dojo.DeferredList(defs).then(function(){
1057
- def.resolve(true);
1058
- });
1059
- });
1060
-
1061
- return def;
1062
- }
1063
-
1064
- return expand(this.rootNode);
1065
- },
1066
-
1067
- collapseAll: function(){
1068
- // summary:
1069
- // Collapse all nodes in the tree
1070
- // returns:
1071
- // Deferred that fires when all nodes have collapsed
1072
-
1073
- var _this = this;
1074
-
1075
- function collapse(node){
1076
- var def = new dojo.Deferred();
1077
- def.label = "collapseAllDeferred";
1078
-
1079
- // Collapse children first
1080
- var childBranches = array.filter(node.getChildren() || [], function(node){
1081
- return node.isExpandable;
1082
- }),
1083
- defs = array.map(childBranches, collapse);
1084
-
1085
- // And when all those recursive calls finish, collapse myself, unless I'm the invisible root node,
1086
- // in which case collapseAll() is finished
1087
- new dojo.DeferredList(defs).then(function(){
1088
- if(!node.isExpanded || (node == _this.rootNode && !_this.showRoot)){
1089
- def.resolve(true);
1090
- }else{
1091
- _this._collapseNode(node).then(function(){
1092
- // When node has collapsed, signal that call is finished
1093
- def.resolve(true);
1094
- });
1095
- }
1096
- });
1097
-
1098
-
1099
- return def;
1100
- }
1101
-
1102
- return collapse(this.rootNode);
1103
- },
1104
-
1105
- ////////////// Data store related functions //////////////////////
1106
- // These just get passed to the model; they are here for back-compat
1107
-
1108
- mayHaveChildren: function(/*dojo/data/Item*/ /*===== item =====*/){
1109
- // summary:
1110
- // Deprecated. This should be specified on the model itself.
1111
- //
1112
- // Overridable function to tell if an item has or may have children.
1113
- // Controls whether or not +/- expando icon is shown.
1114
- // (For efficiency reasons we may not want to check if an element actually
1115
- // has children until user clicks the expando node)
1116
- // tags:
1117
- // deprecated
1118
- },
1119
-
1120
- getItemChildren: function(/*===== parentItem, onComplete =====*/){
1121
- // summary:
1122
- // Deprecated. This should be specified on the model itself.
1123
- //
1124
- // Overridable function that return array of child items of given parent item,
1125
- // or if parentItem==null then return top items in tree
1126
- // tags:
1127
- // deprecated
1128
- },
1129
-
1130
- ///////////////////////////////////////////////////////
1131
- // Functions for converting an item to a TreeNode
1132
- getLabel: function(/*dojo/data/Item*/ item){
1133
- // summary:
1134
- // Overridable function to get the label for a tree node (given the item)
1135
- // tags:
1136
- // extension
1137
- return this.model.getLabel(item); // String
1138
- },
1139
-
1140
- getIconClass: function(/*dojo/data/Item*/ item, /*Boolean*/ opened){
1141
- // summary:
1142
- // Overridable function to return CSS class name to display icon
1143
- // tags:
1144
- // extension
1145
- return (!item || this.model.mayHaveChildren(item)) ? (opened ? "dijitFolderOpened" : "dijitFolderClosed") : "dijitLeaf"
1146
- },
1147
-
1148
- getLabelClass: function(/*===== item, opened =====*/){
1149
- // summary:
1150
- // Overridable function to return CSS class name to display label
1151
- // item: dojo/data/Item
1152
- // opened: Boolean
1153
- // returns: String
1154
- // CSS class name
1155
- // tags:
1156
- // extension
1157
- },
1158
-
1159
- getRowClass: function(/*===== item, opened =====*/){
1160
- // summary:
1161
- // Overridable function to return CSS class name to display row
1162
- // item: dojo/data/Item
1163
- // opened: Boolean
1164
- // returns: String
1165
- // CSS class name
1166
- // tags:
1167
- // extension
1168
- },
1169
-
1170
- getIconStyle: function(/*===== item, opened =====*/){
1171
- // summary:
1172
- // Overridable function to return CSS styles to display icon
1173
- // item: dojo/data/Item
1174
- // opened: Boolean
1175
- // returns: Object
1176
- // Object suitable for input to dojo.style() like {backgroundImage: "url(...)"}
1177
- // tags:
1178
- // extension
1179
- },
1180
-
1181
- getLabelStyle: function(/*===== item, opened =====*/){
1182
- // summary:
1183
- // Overridable function to return CSS styles to display label
1184
- // item: dojo/data/Item
1185
- // opened: Boolean
1186
- // returns:
1187
- // Object suitable for input to dojo.style() like {color: "red", background: "green"}
1188
- // tags:
1189
- // extension
1190
- },
1191
-
1192
- getRowStyle: function(/*===== item, opened =====*/){
1193
- // summary:
1194
- // Overridable function to return CSS styles to display row
1195
- // item: dojo/data/Item
1196
- // opened: Boolean
1197
- // returns:
1198
- // Object suitable for input to dojo.style() like {background-color: "#bbb"}
1199
- // tags:
1200
- // extension
1201
- },
1202
-
1203
- getTooltip: function(/*dojo/data/Item*/ /*===== item =====*/){
1204
- // summary:
1205
- // Overridable function to get the tooltip for a tree node (given the item)
1206
- // tags:
1207
- // extension
1208
- return ""; // String
1209
- },
1210
-
1211
- /////////// Keyboard and Mouse handlers ////////////////////
1212
-
1213
- _onKeyPress: function(/*TreeNode*/ treeNode, /*Event*/ e){
1214
- // summary:
1215
- // Handles keystrokes for printable keys, doing search navigation
1216
-
1217
- if(e.charCode <= 32){
1218
- // Avoid duplicate events on firefox (this is an arrow key that will be handled by keydown handler)
1219
- return;
1220
- }
1221
-
1222
- if(!e.altKey && !e.ctrlKey && !e.shiftKey && !e.metaKey){
1223
- var c = String.fromCharCode(e.charCode);
1224
- this._onLetterKeyNav( { node: treeNode, key: c.toLowerCase() } );
1225
- event.stop(e);
1226
- }
1227
- },
1228
-
1229
- _onKeyDown: function(/*TreeNode*/ treeNode, /*Event*/ e){
1230
- // summary:
1231
- // Handles arrow, space, and enter keys
1232
-
1233
- var key = e.keyCode;
1234
-
1235
- var map = this._keyHandlerMap;
1236
- if(!map){
1237
- // Setup table mapping keys to events.
1238
- // On WebKit based browsers, the combination ctrl-enter does not get passed through. To allow accessible
1239
- // multi-select on those browsers, the space key is also used for selection.
1240
- // Therefore, also allow space key for keyboard "click" operation.
1241
- map = {};
1242
- map[keys.ENTER] = map[keys.SPACE] = map[" "] = "_onEnterKey";
1243
- map[this.isLeftToRight() ? keys.LEFT_ARROW : keys.RIGHT_ARROW] = "_onLeftArrow";
1244
- map[this.isLeftToRight() ? keys.RIGHT_ARROW : keys.LEFT_ARROW] = "_onRightArrow";
1245
- map[keys.UP_ARROW] = "_onUpArrow";
1246
- map[keys.DOWN_ARROW] = "_onDownArrow";
1247
- map[keys.HOME] = "_onHomeKey";
1248
- map[keys.END] = "_onEndKey";
1249
- this._keyHandlerMap = map;
1250
- }
1251
-
1252
- if(this._keyHandlerMap[key]){
1253
- // clear record of recent printables (being saved for multi-char letter navigation),
1254
- // because "a", down-arrow, "b" shouldn't search for "ab"
1255
- if(this._curSearch){
1256
- this._curSearch.timer.remove();
1257
- delete this._curSearch;
1258
- }
1259
-
1260
- this[this._keyHandlerMap[key]]( { node: treeNode, item: treeNode.item, evt: e } );
1261
- event.stop(e);
1262
- }
1263
- },
1264
-
1265
- _onEnterKey: function(/*Object*/ message){
1266
- this._publish("execute", { item: message.item, node: message.node } );
1267
- this.dndController.userSelect(message.node, connect.isCopyKey( message.evt ), message.evt.shiftKey);
1268
- this.onClick(message.item, message.node, message.evt);
1269
- },
1270
-
1271
- _onDownArrow: function(/*Object*/ message){
1272
- // summary:
1273
- // down arrow pressed; get next visible node, set focus there
1274
- var node = this._getNextNode(message.node);
1275
- if(node && node.isTreeNode){
1276
- this.focusNode(node);
1277
- }
1278
- },
1279
-
1280
- _onUpArrow: function(/*Object*/ message){
1281
- // summary:
1282
- // Up arrow pressed; move to previous visible node
1283
-
1284
- var node = message.node;
1285
-
1286
- // if younger siblings
1287
- var previousSibling = node.getPreviousSibling();
1288
- if(previousSibling){
1289
- node = previousSibling;
1290
- // if the previous node is expanded, dive in deep
1291
- while(node.isExpandable && node.isExpanded && node.hasChildren()){
1292
- // move to the last child
1293
- var children = node.getChildren();
1294
- node = children[children.length-1];
1295
- }
1296
- }else{
1297
- // if this is the first child, return the parent
1298
- // unless the parent is the root of a tree with a hidden root
1299
- var parent = node.getParent();
1300
- if(!(!this.showRoot && parent === this.rootNode)){
1301
- node = parent;
1302
- }
1303
- }
1304
-
1305
- if(node && node.isTreeNode){
1306
- this.focusNode(node);
1307
- }
1308
- },
1309
-
1310
- _onRightArrow: function(/*Object*/ message){
1311
- // summary:
1312
- // Right arrow pressed; go to child node
1313
- var node = message.node;
1314
-
1315
- // if not expanded, expand, else move to 1st child
1316
- if(node.isExpandable && !node.isExpanded){
1317
- this._expandNode(node);
1318
- }else if(node.hasChildren()){
1319
- node = node.getChildren()[0];
1320
- if(node && node.isTreeNode){
1321
- this.focusNode(node);
1322
- }
1323
- }
1324
- },
1325
-
1326
- _onLeftArrow: function(/*Object*/ message){
1327
- // summary:
1328
- // Left arrow pressed.
1329
- // If not collapsed, collapse, else move to parent.
1330
-
1331
- var node = message.node;
1332
-
1333
- if(node.isExpandable && node.isExpanded){
1334
- this._collapseNode(node);
1335
- }else{
1336
- var parent = node.getParent();
1337
- if(parent && parent.isTreeNode && !(!this.showRoot && parent === this.rootNode)){
1338
- this.focusNode(parent);
1339
- }
1340
- }
1341
- },
1342
-
1343
- _onHomeKey: function(){
1344
- // summary:
1345
- // Home key pressed; get first visible node, and set focus there
1346
- var node = this._getRootOrFirstNode();
1347
- if(node){
1348
- this.focusNode(node);
1349
- }
1350
- },
1351
-
1352
- _onEndKey: function(){
1353
- // summary:
1354
- // End key pressed; go to last visible node.
1355
-
1356
- var node = this.rootNode;
1357
- while(node.isExpanded){
1358
- var c = node.getChildren();
1359
- node = c[c.length - 1];
1360
- }
1361
-
1362
- if(node && node.isTreeNode){
1363
- this.focusNode(node);
1364
- }
1365
- },
1366
-
1367
- // multiCharSearchDuration: Number
1368
- // If multiple characters are typed where each keystroke happens within
1369
- // multiCharSearchDuration of the previous keystroke,
1370
- // search for nodes matching all the keystrokes.
1371
- //
1372
- // For example, typing "ab" will search for entries starting with
1373
- // "ab" unless the delay between "a" and "b" is greater than multiCharSearchDuration.
1374
- multiCharSearchDuration: 250,
1375
-
1376
- _onLetterKeyNav: function(message){
1377
- // summary:
1378
- // Called when user presses a prinatable key; search for node starting with recently typed letters.
1379
- // message: Object
1380
- // Like { node: TreeNode, key: 'a' } where key is the key the user pressed.
1381
-
1382
- // Branch depending on whether this key starts a new search, or modifies an existing search
1383
- var cs = this._curSearch;
1384
- if(cs){
1385
- // We are continuing a search. Ex: user has pressed 'a', and now has pressed
1386
- // 'b', so we want to search for nodes starting w/"ab".
1387
- cs.pattern = cs.pattern + message.key;
1388
- cs.timer.remove();
1389
- }else{
1390
- // We are starting a new search
1391
- cs = this._curSearch = {
1392
- pattern: message.key,
1393
- startNode: message.node
1394
- };
1395
- }
1396
-
1397
- // set/reset timer to forget recent keystrokes
1398
- cs.timer = this.defer(function(){
1399
- delete this._curSearch;
1400
- }, this.multiCharSearchDuration);
1401
-
1402
- // Navigate to TreeNode matching keystrokes [entered so far].
1403
- var node = cs.startNode;
1404
- do{
1405
- node = this._getNextNode(node);
1406
- //check for last node, jump to first node if necessary
1407
- if(!node){
1408
- node = this._getRootOrFirstNode();
1409
- }
1410
- }while(node !== cs.startNode && (node.label.toLowerCase().substr(0, cs.pattern.length) != cs.pattern));
1411
- if(node && node.isTreeNode){
1412
- // no need to set focus if back where we started
1413
- if(node !== cs.startNode){
1414
- this.focusNode(node);
1415
- }
1416
- }
1417
- },
1418
-
1419
- isExpandoNode: function(node, widget){
1420
- // summary:
1421
- // check whether a dom node is the expandoNode for a particular TreeNode widget
1422
- return dom.isDescendant(node, widget.expandoNode);
1423
- },
1424
- _onClick: function(/*TreeNode*/ nodeWidget, /*Event*/ e){
1425
- // summary:
1426
- // Translates click events into commands for the controller to process
1427
-
1428
- var domElement = e.target,
1429
- isExpandoClick = this.isExpandoNode(domElement, nodeWidget);
1430
-
1431
- if( (this.openOnClick && nodeWidget.isExpandable) || isExpandoClick ){
1432
- // expando node was clicked, or label of a folder node was clicked; open it
1433
- if(nodeWidget.isExpandable){
1434
- this._onExpandoClick({node:nodeWidget});
1435
- }
1436
- }else{
1437
- this._publish("execute", { item: nodeWidget.item, node: nodeWidget, evt: e } );
1438
- this.onClick(nodeWidget.item, nodeWidget, e);
1439
- this.focusNode(nodeWidget);
1440
- }
1441
- event.stop(e);
1442
- },
1443
- _onDblClick: function(/*TreeNode*/ nodeWidget, /*Event*/ e){
1444
- // summary:
1445
- // Translates double-click events into commands for the controller to process
1446
-
1447
- var domElement = e.target,
1448
- isExpandoClick = (domElement == nodeWidget.expandoNode || domElement == nodeWidget.expandoNodeText);
1449
-
1450
- if( (this.openOnDblClick && nodeWidget.isExpandable) ||isExpandoClick ){
1451
- // expando node was clicked, or label of a folder node was clicked; open it
1452
- if(nodeWidget.isExpandable){
1453
- this._onExpandoClick({node:nodeWidget});
1454
- }
1455
- }else{
1456
- this._publish("execute", { item: nodeWidget.item, node: nodeWidget, evt: e } );
1457
- this.onDblClick(nodeWidget.item, nodeWidget, e);
1458
- this.focusNode(nodeWidget);
1459
- }
1460
- event.stop(e);
1461
- },
1462
-
1463
- _onExpandoClick: function(/*Object*/ message){
1464
- // summary:
1465
- // User clicked the +/- icon; expand or collapse my children.
1466
- var node = message.node;
1467
-
1468
- // If we are collapsing, we might be hiding the currently focused node.
1469
- // Also, clicking the expando node might have erased focus from the current node.
1470
- // For simplicity's sake just focus on the node with the expando.
1471
- this.focusNode(node);
1472
-
1473
- if(node.isExpanded){
1474
- this._collapseNode(node);
1475
- }else{
1476
- this._expandNode(node);
1477
- }
1478
- },
1479
-
1480
- onClick: function(/*===== item, node, evt =====*/){
1481
- // summary:
1482
- // Callback when a tree node is clicked
1483
- // item: Object
1484
- // Object from the dojo/store corresponding to this TreeNode
1485
- // node: TreeNode
1486
- // The TreeNode itself
1487
- // evt: Event
1488
- // The event
1489
- // tags:
1490
- // callback
1491
- },
1492
- onDblClick: function(/*===== item, node, evt =====*/){
1493
- // summary:
1494
- // Callback when a tree node is double-clicked
1495
- // item: Object
1496
- // Object from the dojo/store corresponding to this TreeNode
1497
- // node: TreeNode
1498
- // The TreeNode itself
1499
- // evt: Event
1500
- // The event
1501
- // tags:
1502
- // callback
1503
- },
1504
- onOpen: function(/*===== item, node =====*/){
1505
- // summary:
1506
- // Callback when a node is opened
1507
- // item: dojo/data/Item
1508
- // node: TreeNode
1509
- // tags:
1510
- // callback
1511
- },
1512
- onClose: function(/*===== item, node =====*/){
1513
- // summary:
1514
- // Callback when a node is closed
1515
- // item: Object
1516
- // Object from the dojo/store corresponding to this TreeNode
1517
- // node: TreeNode
1518
- // The TreeNode itself
1519
- // tags:
1520
- // callback
1521
- },
1522
-
1523
- _getNextNode: function(node){
1524
- // summary:
1525
- // Get next visible node
1526
-
1527
- if(node.isExpandable && node.isExpanded && node.hasChildren()){
1528
- // if this is an expanded node, get the first child
1529
- return node.getChildren()[0]; // TreeNode
1530
- }else{
1531
- // find a parent node with a sibling
1532
- while(node && node.isTreeNode){
1533
- var returnNode = node.getNextSibling();
1534
- if(returnNode){
1535
- return returnNode; // TreeNode
1536
- }
1537
- node = node.getParent();
1538
- }
1539
- return null;
1540
- }
1541
- },
1542
-
1543
- _getRootOrFirstNode: function(){
1544
- // summary:
1545
- // Get first visible node
1546
- return this.showRoot ? this.rootNode : this.rootNode.getChildren()[0];
1547
- },
1548
-
1549
- _collapseNode: function(/*TreeNode*/ node){
1550
- // summary:
1551
- // Called when the user has requested to collapse the node
1552
- // returns:
1553
- // Deferred that fires when the node is closed
1554
-
1555
- if(node._expandNodeDeferred){
1556
- delete node._expandNodeDeferred;
1557
- }
1558
-
1559
- if(node.state == "LOADING"){
1560
- // ignore clicks while we are in the process of loading data
1561
- return;
1562
- }
1563
-
1564
- if(node.isExpanded){
1565
- var ret = node.collapse();
1566
-
1567
- this.onClose(node.item, node);
1568
- this._state(node, false);
1569
-
1570
- this._startPaint(ret); // after this finishes, need to reset widths of TreeNodes
1571
-
1572
- return ret;
1573
- }
1574
- },
1575
-
1576
- _expandNode: function(/*TreeNode*/ node){
1577
- // summary:
1578
- // Called when the user has requested to expand the node
1579
- // returns:
1580
- // Deferred that fires when the node is loaded and opened and (if persist=true) all it's descendants
1581
- // that were previously opened too
1582
-
1583
- // Signal that this call is complete
1584
- var def = new Deferred();
1585
-
1586
- if(node._expandNodeDeferred){
1587
- // there's already an expand in progress, or completed, so just return
1588
- return node._expandNodeDeferred; // dojo/_base/Deferred
1589
- }
1590
-
1591
- var model = this.model,
1592
- item = node.item,
1593
- _this = this;
1594
-
1595
- // Load data if it's not already loaded
1596
- if(!node._loadDeferred){
1597
- // need to load all the children before expanding
1598
- node.markProcessing();
1599
-
1600
- // Setup deferred to signal when the load and expand are finished.
1601
- // Save that deferred in this._expandDeferred as a flag that operation is in progress.
1602
- node._loadDeferred = new Deferred();
1603
-
1604
- // Get the children
1605
- model.getChildren(
1606
- item,
1607
- function(items){
1608
- node.unmarkProcessing();
1609
-
1610
- // Display the children and also start expanding any children that were previously expanded
1611
- // (if this.persist == true). The returned Deferred will fire when those expansions finish.
1612
- node.setChildItems(items).then(function(){
1613
- node._loadDeferred.resolve(items);
1614
- });
1615
- },
1616
- function(err){
1617
- console.error(_this, ": error loading " + node.label + " children: ", err);
1618
- node._loadDeferred.reject(err);
1619
- }
1620
- );
1621
- }
1622
-
1623
- // Expand the node after data has loaded
1624
- node._loadDeferred.then(lang.hitch(this, function(){
1625
- node.expand().then(function(){
1626
- def.resolve(true); // signal that this _expandNode() call is complete
1627
- });
1628
-
1629
- // seems like these should be inside of then(), but left here for back-compat about
1630
- // when this.isOpen flag gets set (ie, at the beginning of the animation)
1631
- this.onOpen(node.item, node);
1632
- this._state(node, true);
1633
- }));
1634
-
1635
- this._startPaint(def); // after this finishes, need to reset widths of TreeNodes
1636
-
1637
- return def; // dojo/_base/Deferred
1638
- },
1639
-
1640
- ////////////////// Miscellaneous functions ////////////////
1641
-
1642
- focusNode: function(/* _tree.Node */ node){
1643
- // summary:
1644
- // Focus on the specified node (which must be visible)
1645
- // tags:
1646
- // protected
1647
-
1648
- // set focus so that the label will be voiced using screen readers
1649
- focus.focus(node.labelNode);
1650
- },
1651
-
1652
- _onNodeFocus: function(/*dijit/_WidgetBase*/ node){
1653
- // summary:
1654
- // Called when a TreeNode gets focus, either by user clicking
1655
- // it, or programatically by arrow key handling code.
1656
- // description:
1657
- // It marks that the current node is the selected one, and the previously
1658
- // selected node no longer is.
1659
-
1660
- if(node && node != this.lastFocused){
1661
- if(this.lastFocused && !this.lastFocused._destroyed){
1662
- // mark that the previously focsable node is no longer focusable
1663
- this.lastFocused.setFocusable(false);
1664
- }
1665
-
1666
- // mark that the new node is the currently selected one
1667
- node.setFocusable(true);
1668
- this.lastFocused = node;
1669
- }
1670
- },
1671
-
1672
- _onNodeMouseEnter: function(/*dijit/_WidgetBase*/ /*===== node =====*/){
1673
- // summary:
1674
- // Called when mouse is over a node (onmouseenter event),
1675
- // this is monitored by the DND code
1676
- },
1677
-
1678
- _onNodeMouseLeave: function(/*dijit/_WidgetBase*/ /*===== node =====*/){
1679
- // summary:
1680
- // Called when mouse leaves a node (onmouseleave event),
1681
- // this is monitored by the DND code
1682
- },
1683
-
1684
- //////////////// Events from the model //////////////////////////
1685
-
1686
- _onItemChange: function(/*Item*/ item){
1687
- // summary:
1688
- // Processes notification of a change to an item's scalar values like label
1689
- var model = this.model,
1690
- identity = model.getIdentity(item),
1691
- nodes = this._itemNodesMap[identity];
1692
-
1693
- if(nodes){
1694
- var label = this.getLabel(item),
1695
- tooltip = this.getTooltip(item);
1696
- array.forEach(nodes, function(node){
1697
- node.set({
1698
- item: item, // theoretically could be new JS Object representing same item
1699
- label: label,
1700
- tooltip: tooltip
1701
- });
1702
- node._updateItemClasses(item);
1703
- });
1704
- }
1705
- },
1706
-
1707
- _onItemChildrenChange: function(/*dojo/data/Item*/ parent, /*dojo/data/Item[]*/ newChildrenList){
1708
- // summary:
1709
- // Processes notification of a change to an item's children
1710
- var model = this.model,
1711
- identity = model.getIdentity(parent),
1712
- parentNodes = this._itemNodesMap[identity];
1713
-
1714
- if(parentNodes){
1715
- array.forEach(parentNodes,function(parentNode){
1716
- parentNode.setChildItems(newChildrenList);
1717
- });
1718
- }
1719
- },
1720
-
1721
- _onItemDelete: function(/*Item*/ item){
1722
- // summary:
1723
- // Processes notification of a deletion of an item.
1724
- // Not called from new dojo.store interface but there's cleanup code in setChildItems() instead.
1725
-
1726
- var model = this.model,
1727
- identity = model.getIdentity(item),
1728
- nodes = this._itemNodesMap[identity];
1729
-
1730
- if(nodes){
1731
- array.forEach(nodes,function(node){
1732
- // Remove node from set of selected nodes (if it's selected)
1733
- this.dndController.removeTreeNode(node);
1734
-
1735
- var parent = node.getParent();
1736
- if(parent){
1737
- // if node has not already been orphaned from a _onSetItem(parent, "children", ..) call...
1738
- parent.removeChild(node);
1739
- }
1740
- node.destroyRecursive();
1741
- }, this);
1742
- delete this._itemNodesMap[identity];
1743
- }
1744
- },
1745
-
1746
- /////////////// Miscellaneous funcs
1747
-
1748
- _initState: function(){
1749
- // summary:
1750
- // Load in which nodes should be opened automatically
1751
- this._openedNodes = {};
1752
- if(this.persist && this.cookieName){
1753
- var oreo = cookie(this.cookieName);
1754
- if(oreo){
1755
- array.forEach(oreo.split(','), function(item){
1756
- this._openedNodes[item] = true;
1757
- }, this);
1758
- }
1759
- }
1760
- },
1761
- _state: function(node, expanded){
1762
- // summary:
1763
- // Query or set expanded state for an node
1764
- if(!this.persist){
1765
- return false;
1766
- }
1767
- var path = array.map(node.getTreePath(), function(item){
1768
- return this.model.getIdentity(item);
1769
- }, this).join("/");
1770
- if(arguments.length === 1){
1771
- return this._openedNodes[path];
1772
- }else{
1773
- if(expanded){
1774
- this._openedNodes[path] = true;
1775
- }else{
1776
- delete this._openedNodes[path];
1777
- }
1778
- if(this.persist && this.cookieName){
1779
- var ary = [];
1780
- for(var id in this._openedNodes){
1781
- ary.push(id);
1782
- }
1783
- cookie(this.cookieName, ary.join(","), {expires:365});
1784
- }
1785
- }
1786
- },
1787
-
1788
- destroy: function(){
1789
- if(this._curSearch){
1790
- this._curSearch.timer.remove();
1791
- delete this._curSearch;
1792
- }
1793
- if(this.rootNode){
1794
- this.rootNode.destroyRecursive();
1795
- }
1796
- if(this.dndController && !lang.isString(this.dndController)){
1797
- this.dndController.destroy();
1798
- }
1799
- this.rootNode = null;
1800
- this.inherited(arguments);
1801
- },
1802
-
1803
- destroyRecursive: function(){
1804
- // A tree is treated as a leaf, not as a node with children (like a grid),
1805
- // but defining destroyRecursive for back-compat.
1806
- this.destroy();
1807
- },
1808
-
1809
- resize: function(changeSize){
1810
- if(changeSize){
1811
- domGeometry.setMarginBox(this.domNode, changeSize);
1812
- }
1813
-
1814
- // The main JS sizing involved w/tree is the indentation, which is specified
1815
- // in CSS and read in through this dummy indentDetector node (tree must be
1816
- // visible and attached to the DOM to read this).
1817
- // If the Tree is hidden domGeometry.position(this.tree.indentDetector).w will return 0, in which case just
1818
- // keep the default value.
1819
- this._nodePixelIndent = domGeometry.position(this.tree.indentDetector).w || this._nodePixelIndent;
1820
-
1821
- // resize() may be called before this.rootNode is created, so wait until it's available
1822
- this.expandChildrenDeferred.then(lang.hitch(this, function(){
1823
- // If tree has already loaded, then reset indent for all the nodes
1824
- this.rootNode.set('indent', this.showRoot ? 0 : -1);
1825
-
1826
- // Also, adjust widths of all rows to match width of Tree
1827
- this._adjustWidths();
1828
- }));
1829
- },
1830
-
1831
- _outstandingPaintOperations: 0,
1832
- _startPaint: function(/*Promise|Boolean*/ p){
1833
- // summary:
1834
- // Called at the start of an operation that will change what's displayed.
1835
- // p:
1836
- // Promise that tells when the operation will complete. Alternately, if it's just a Boolean, it signifies
1837
- // that the operation was synchronous, and already completed.
1838
-
1839
- this._outstandingPaintOperations++;
1840
- if(this._adjustWidthsTimer){
1841
- this._adjustWidthsTimer.remove();
1842
- delete this._adjustWidthsTimer;
1843
- }
1844
-
1845
- var oc = lang.hitch(this, function(){
1846
- this._outstandingPaintOperations--;
1847
-
1848
- if(this._outstandingPaintOperations <= 0 && !this._adjustWidthsTimer && this._started){
1849
- // Use defer() to avoid a width adjustment when another operation will immediately follow,
1850
- // such as a sequence of opening a node, then it's children, then it's grandchildren, etc.
1851
- this._adjustWidthsTimer = this.defer("_adjustWidths");
1852
- }
1853
- });
1854
- when(p, oc, oc);
1855
- },
1856
-
1857
- _adjustWidths: function(){
1858
- // summary:
1859
- // Get width of widest TreeNode, or the width of the Tree itself, whichever is greater,
1860
- // and then set all TreeNodes to that width, so that selection/hover highlighting
1861
- // extends to the edge of the Tree (#13141)
1862
-
1863
- if(this._adjustWidthsTimer){
1864
- this._adjustWidthsTimer.remove();
1865
- delete this._adjustWidthsTimer;
1866
- }
1867
-
1868
- var maxWidth = 0,
1869
- nodes = [];
1870
- function collect(/*TreeNode*/ parent){
1871
- var node = parent.rowNode;
1872
- node.style.width = "auto"; // erase setting from previous run
1873
- maxWidth = Math.max(maxWidth, node.clientWidth);
1874
- nodes.push(node);
1875
- if(parent.isExpanded){
1876
- array.forEach(parent.getChildren(), collect);
1877
- }
1878
- }
1879
- collect(this.rootNode);
1880
- maxWidth = Math.max(maxWidth, domGeometry.getContentBox(this.domNode).w); // do after node.style.width="auto"
1881
- array.forEach(nodes, function(node){
1882
- node.style.width = maxWidth + "px"; // assumes no horizontal padding, border, or margin on rowNode
1883
- });
1884
- },
1885
-
1886
- _createTreeNode: function(/*Object*/ args){
1887
- // summary:
1888
- // creates a TreeNode
1889
- // description:
1890
- // Developers can override this method to define their own TreeNode class;
1891
- // However it will probably be removed in a future release in favor of a way
1892
- // of just specifying a widget for the label, rather than one that contains
1893
- // the children too.
1894
- return new TreeNode(args);
1895
- },
1896
-
1897
- _setTextDirAttr: function(textDir){
1898
- if(textDir && this.textDir!= textDir){
1899
- this._set("textDir",textDir);
1900
- this.rootNode.set("textDir", textDir);
1901
- }
1902
- }
1903
- });
1904
-
1905
- Tree.PathError = createError("TreePathError");
1906
- Tree._TreeNode = TreeNode; // for monkey patching or creating subclasses of TreeNode
1907
-
1908
- return Tree;
1909
- });