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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +3 -0
- data/README.md +54 -14
- data/dijit-rails.gemspec +1 -3
- data/lib/dijit/rails/version.rb +1 -1
- data/lib/dijit/version.rb +1 -1
- data/vendor/assets/{javascripts/dijit → images}/icons/images/commonIconsObjActDisabled.png +0 -0
- data/vendor/assets/{javascripts/dijit → images}/icons/images/commonIconsObjActDisabled_rtl.png +0 -0
- data/vendor/assets/{javascripts/dijit → images}/icons/images/commonIconsObjActEnabled.png +0 -0
- data/vendor/assets/{javascripts/dijit → images}/icons/images/commonIconsObjActEnabled8bit.png +0 -0
- data/vendor/assets/{javascripts/dijit → images}/icons/images/commonIconsObjActEnabled8bit_rtl.png +0 -0
- data/vendor/assets/{javascripts/dijit → images}/icons/images/commonIconsObjActEnabled_rtl.png +0 -0
- data/vendor/assets/{javascripts/dijit → images}/icons/images/editorIconsDisabled.png +0 -0
- data/vendor/assets/{javascripts/dijit → images}/icons/images/editorIconsDisabled_rtl.png +0 -0
- data/vendor/assets/{javascripts/dijit → images}/icons/images/editorIconsEnabled.png +0 -0
- data/vendor/assets/{javascripts/dijit → images}/icons/images/editorIconsEnabled_rtl.png +0 -0
- data/vendor/assets/{javascripts/dijit → images}/icons/images/loadingAnimation_rtl.gif +0 -0
- data/vendor/assets/images/{a11y → themes/a11y}/colors3x4.png +0 -0
- data/vendor/assets/images/{a11y → themes/a11y}/colors7x10.png +0 -0
- data/vendor/assets/images/{a11y → themes/a11y}/indeterminate_progress.gif +0 -0
- data/vendor/assets/images/{claro → themes/claro}/form/images/buttonArrows.png +0 -0
- data/vendor/assets/images/{claro → themes/claro}/form/images/buttonDisabled.png +0 -0
- data/vendor/assets/images/{claro → themes/claro}/form/images/buttonEnabled.png +0 -0
- data/vendor/assets/images/{claro → themes/claro}/form/images/checkboxAndRadioButtons_IE6.png +0 -0
- data/vendor/assets/images/{claro → themes/claro}/form/images/checkboxRadioButtonStates.png +0 -0
- data/vendor/assets/images/{claro → themes/claro}/form/images/commonFormArrows.png +0 -0
- data/vendor/assets/images/{claro → themes/claro}/form/images/error.png +0 -0
- data/vendor/assets/images/{claro → themes/claro}/form/images/sliderThumbs.png +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/activeGradient.png +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/calendar.png +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/calendarArrows.png +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/calendarArrows8bit.png +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/checkmarkNoBorder.gif +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/checkmarkNoBorder.png +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/dialogCloseIcon.png +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/dialogCloseIcon8bit.png +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/dnd.png +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/loadingAnimation.gif +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/progressBarAnim.gif +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/progressBarFull.png +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/spriteArrows.png +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/standardGradient.png +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/tooltip.png +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/tooltip8bit.png +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/treeExpandImages.png +0 -0
- data/vendor/assets/images/{claro → themes/claro/images}/treeExpandImages8bit.png +0 -0
- data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabBottomSelected.png +0 -0
- data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabBottomUnselected.png +0 -0
- data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabClose.png +0 -0
- data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabLeftSelected.png +0 -0
- data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabLeftUnselected.png +0 -0
- data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabNested.png +0 -0
- data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabRightSelected.png +0 -0
- data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabRightUnselected.png +0 -0
- data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabTopSelected.png +0 -0
- data/vendor/assets/{stylesheets → images/themes}/claro/layout/images/tabTopUnselected.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/accordionItemActive.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/buttonActive.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/buttonDisabled.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/buttonEnabled.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/buttonHover.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/dndCopy.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/dndMove.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/dndNoCopy.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/dndNoMove.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/no.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/preciseSliderThumb.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/preciseSliderThumb.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/preciseSliderThumbFocus.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/preciseSliderThumbFocus.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/progressBarAnim.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/progressBarEmpty.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/progressBarFull.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderEmpty.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderEmptyVertical.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderFull.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderFullFocus.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderFullVertical.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderFullVerticalFocus.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderThumb.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderThumb.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderThumbFocus.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/sliderThumbFocus.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/splitContainerSizerH-thumb.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/splitContainerSizerH.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/splitContainerSizerV-thumb.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/splitContainerSizerV.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteArrows.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteArrows.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteCheckbox.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteCheckbox.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteDivIcons.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteDivIcons.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteRadio.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteRadio.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteRoundedIconsSmall.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteRoundedIconsSmall.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteTree.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteTree.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteTree_rtl.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/spriteTree_rtl.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/tabBottomActiveC.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/tabBottomEnabledC.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/tabBottomHoverC.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/tabContainerSprite.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/titleBar.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/titleBarActive.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/tooltipConnectorDown.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/tooltipConnectorDown.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/tooltipConnectorLeft.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/tooltipConnectorLeft.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/tooltipConnectorRight.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/tooltipConnectorRight.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/tooltipConnectorUp.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/tooltipConnectorUp.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/treeExpand_loading.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/treeHover.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/treeI.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/treeI_half.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/treeI_half_rtl.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/treeI_rtl.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/validationInputBg.gif +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/validationInputBg.png +0 -0
- data/vendor/assets/images/{nihilo → themes/nihilo/images}/warning.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/accordionItemActive.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/accordionItemActive.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/buttonActive.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/buttonDisabled.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/buttonEnabled.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/buttonHover.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/dndCopy.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/dndMove.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/dndNoCopy.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/dndNoMove.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/preciseSliderThumb.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/preciseSliderThumb.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/preciseSliderThumbFocus.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/preciseSliderThumbFocus.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/progressBarAnim.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/progressBarEmpty.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/progressBarFull.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/sliderEmpty.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/sliderEmptyVertical.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/sliderFull.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/sliderFullFocus.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/sliderFullVertical.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/sliderFullVerticalFocus.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/sliderThumb.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/sliderThumb.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/sliderThumbFocus.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/sliderThumbFocus.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/splitContainerSizerH-thumb.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/splitContainerSizerH.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/splitContainerSizerV-thumb.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/splitContainerSizerV.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/spriteArrows.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/spriteArrows.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/spriteCheckbox.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/spriteCheckbox.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/spriteDivIcons.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/spriteDivIcons.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/spriteRadio.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/spriteRadio.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/spriteRoundedIconsSmall.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/spriteRoundedIconsSmall.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/spriteRoundedIconsSmallBl.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/spriteRoundedIconsSmallBl.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/spriteTree.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/spriteTree.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/spriteTree_rtl.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/spriteTree_rtl.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/tabBottomActiveC.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/tabBottomEnabledC.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/tabBottomEnabledSpriteLR.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/tabBottomHoverC.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/tabContainerSprite.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/tabLeftChecked.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/tabRightChecked.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/titleBar.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/titleBarActive.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/tooltipConnectorDown.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/tooltipConnectorDown.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/tooltipConnectorLeft.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/tooltipConnectorLeft.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/tooltipConnectorRight.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/tooltipConnectorRight.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/tooltipConnectorUp.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/tooltipConnectorUp.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/treeExpand_loading.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/treeHover.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/treeI.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/treeI_half.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/treeI_half_rtl.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/treeI_rtl.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/validationInputBg.gif +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/validationInputBg.png +0 -0
- data/vendor/assets/images/{soria → themes/soria/images}/warning.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/accordionItemActive.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/accordionItemHover.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/buttonActive.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/buttonDisabled.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/buttonEnabled.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/buttonHover.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/calendarDayLabel.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/calendarMonthLabel.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/calendarYearLabel.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/checkmark.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/checkmark.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/checkmarkNoBorder.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/checkmarkNoBorder.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/circleIcon.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/circleIcon.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/comboArrowDown.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/dijitProgressBarAnim.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/dndCopy.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/dndMove.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/dndNoCopy.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/dndNoMove.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/dojoTundraGradientBg.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/dojoTundraGradientBg.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/doubleArrowDown.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/doubleArrowUp.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/folderClosed.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/folderOpened.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/i.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/i_half.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/i_half_rtl.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/i_rtl.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/leaf.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/loading.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/menu.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/minusButton.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/no.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/noX.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/plusButton.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/popupMenuBg.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/preciseSliderThumb.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/preciseSliderThumb.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/preciseSliderThumbFocus.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/preciseSliderThumbFocus.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-1.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-2.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-3.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-4.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-5.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-6.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-7.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-8.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim-9.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarAnim.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarEmpty.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/progressBarFull.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/radioButtonActive.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/radioButtonActiveDisabled.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/radioButtonActiveHover.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/radioButtonDisabled.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/radioButtonEnabled.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/radioButtonHover.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/sliderEmpty.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/sliderEmptyVertical.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/sliderFull.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/sliderFullFocus.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/sliderFullVertical.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/sliderFullVerticalFocus.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/sliderThumb.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/sliderThumbFocus.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/sliderThumbFocus.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/smallArrowDown.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/smallArrowUp.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/splitContainerSizerH-thumb.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/splitContainerSizerH.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/splitContainerSizerV-thumb.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/splitContainerSizerV.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/spriteArrows.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/spriteArrows.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/spriteRoundedIconsSmall.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/spriteRoundedIconsSmall.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/tabActive.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/tabClose.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/tabClose.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/tabCloseHover.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/tabCloseHover.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/tabDisabled.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/tabEnabled.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/tabHover.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/tabHover.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/titleBar.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/titleBarBg.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/tooltipConnectorDown.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/tooltipConnectorDown.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/tooltipConnectorLeft.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/tooltipConnectorLeft.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/tooltipConnectorRight.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/tooltipConnectorRight.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/tooltipConnectorUp.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/tooltipConnectorUp.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/treeExpand_leaf.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/treeExpand_leaf_rtl.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/treeExpand_loading.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/treeExpand_minus.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/treeExpand_minus_rtl.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/treeExpand_mius.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/treeExpand_plus.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/treeExpand_plus_rtl.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/treeHover.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/validationInputBg.gif +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/validationInputBg.png +0 -0
- data/vendor/assets/images/{tundra → themes/tundra/images}/warning.png +0 -0
- data/vendor/assets/javascripts/dijit/BackgroundIframe.js +2 -1
- data/vendor/assets/javascripts/dijit/CalendarLite.js +85 -81
- data/vendor/assets/javascripts/dijit/CheckedMenuItem.js +1 -1
- data/vendor/assets/javascripts/dijit/ColorPalette.js +1 -1
- data/vendor/assets/javascripts/dijit/Destroyable.js +6 -6
- data/vendor/assets/javascripts/dijit/Dialog.js +3 -1
- data/vendor/assets/javascripts/dijit/Editor.js +58 -58
- data/vendor/assets/javascripts/dijit/InlineEditBox.js +81 -81
- data/vendor/assets/javascripts/dijit/MenuSeparator.js +1 -1
- data/vendor/assets/javascripts/dijit/ProgressBar.js +2 -4
- data/vendor/assets/javascripts/dijit/TitlePane.js +5 -2
- data/vendor/assets/javascripts/dijit/TooltipDialog.js +1 -1
- data/vendor/assets/javascripts/dijit/Tree.js +10 -1
- data/vendor/assets/javascripts/dijit/_CssStateMixin.js +70 -70
- data/vendor/assets/javascripts/dijit/_HasDropDown.js +56 -49
- data/vendor/assets/javascripts/dijit/_MenuBase.js +68 -64
- data/vendor/assets/javascripts/dijit/_PaletteMixin.js +2 -2
- data/vendor/assets/javascripts/dijit/_TimePicker.js +5 -1
- data/vendor/assets/javascripts/dijit/_WidgetBase.js +10 -6
- data/vendor/assets/javascripts/dijit/_editor/RichText.js +645 -625
- data/vendor/assets/javascripts/dijit/_editor/plugins/EnterKeyHandling.js +2 -2
- data/vendor/assets/javascripts/dijit/_editor/plugins/FontChoice.js +2 -0
- data/vendor/assets/javascripts/dijit/_editor/plugins/LinkDialog.js +4 -0
- data/vendor/assets/javascripts/dijit/_editor/plugins/TextColor.js +1 -1
- data/vendor/assets/javascripts/dijit/_editor/plugins/ViewSource.js +3 -0
- data/vendor/assets/javascripts/dijit/a11y.js +1 -1
- data/vendor/assets/javascripts/dijit/dijit-all.js +2 -2
- data/vendor/assets/javascripts/dijit/dijit.js +2 -2
- data/vendor/assets/javascripts/dijit/form/CheckBox.js +2 -2
- data/vendor/assets/javascripts/dijit/form/ComboBoxMixin.js +1 -1
- data/vendor/assets/javascripts/dijit/form/DropDownButton.js +1 -1
- data/vendor/assets/javascripts/dijit/form/NumberSpinner.js +4 -1
- data/vendor/assets/javascripts/dijit/form/RangeBoundTextBox.js +0 -17
- data/vendor/assets/javascripts/dijit/form/Select.js +3 -3
- data/vendor/assets/javascripts/dijit/form/TextBox.js +3 -1
- data/vendor/assets/javascripts/dijit/form/ValidationTextBox.js +21 -19
- data/vendor/assets/javascripts/dijit/form/_AutoCompleterMixin.js +3 -4
- data/vendor/assets/javascripts/dijit/form/_CheckBoxMixin.js +2 -3
- data/vendor/assets/javascripts/dijit/form/_ComboBoxMenu.js +2 -1
- data/vendor/assets/javascripts/dijit/form/_DateTimeTextBox.js +1 -1
- data/vendor/assets/javascripts/dijit/form/_ExpandingTextAreaMixin.js +27 -31
- data/vendor/assets/javascripts/dijit/form/_FormSelectWidget.js +155 -170
- data/vendor/assets/javascripts/dijit/form/_FormValueMixin.js +0 -1
- data/vendor/assets/javascripts/dijit/form/_FormWidgetMixin.js +1 -1
- data/vendor/assets/javascripts/dijit/form/_RadioButtonMixin.js +1 -1
- data/vendor/assets/javascripts/dijit/form/_SearchMixin.js +1 -1
- data/vendor/assets/javascripts/dijit/form/_Spinner.js +17 -0
- data/vendor/assets/javascripts/dijit/form/_ToggleButtonMixin.js +13 -2
- data/vendor/assets/javascripts/dijit/layout/AccordionContainer.js +2 -1
- data/vendor/assets/javascripts/dijit/layout/ContentPane.js +80 -83
- data/vendor/assets/javascripts/dijit/layout/ScrollingTabController.js +4 -3
- data/vendor/assets/javascripts/dijit/layout/StackContainer.js +0 -1
- data/vendor/assets/javascripts/dijit/layout/StackController.js +0 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_ROOT.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_ar.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_ca.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_cs.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_da.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_de.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_el.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_en-gb.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_en-us.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_es-es.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_fi-fi.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_fr-fr.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_he-il.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_hu.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_it-it.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_ja-jp.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_ko-kr.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_nb.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_nl-nl.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_pl.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_pt-br.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_pt-pt.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_ru.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_sk.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_sl.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_sv.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_th.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_tr.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_zh-cn.js +1 -1
- data/vendor/assets/javascripts/dijit/nls/dijit-all_zh-tw.js +1 -1
- data/vendor/assets/javascripts/dijit/package.json +2 -2
- data/vendor/assets/javascripts/dijit/popup.js +8 -10
- data/vendor/assets/javascripts/dijit/registry.js +1 -1
- data/vendor/assets/javascripts/dijit/themes/claro/compile.js +52 -0
- data/vendor/assets/{images → javascripts/dijit/themes}/claro/form/images/buttonDisabled.svg +0 -0
- data/vendor/assets/{images → javascripts/dijit/themes}/claro/form/images/buttonEnabled.svg +0 -0
- data/vendor/assets/{images/claro → javascripts/dijit/themes/claro/images}/activeGradient.svg +0 -0
- data/vendor/assets/{images/claro → javascripts/dijit/themes/claro/images}/standardGradient.svg +0 -0
- data/vendor/assets/{stylesheets → javascripts/dijit/themes}/claro/layout/images/tabBottomSelected.svg +0 -0
- data/vendor/assets/{stylesheets → javascripts/dijit/themes}/claro/layout/images/tabBottomUnselected.svg +0 -0
- data/vendor/assets/{stylesheets → javascripts/dijit/themes}/claro/layout/images/tabLeftSelected.svg +0 -0
- data/vendor/assets/{stylesheets → javascripts/dijit/themes}/claro/layout/images/tabLeftUnselected.svg +0 -0
- data/vendor/assets/{stylesheets → javascripts/dijit/themes}/claro/layout/images/tabRightSelected.svg +0 -0
- data/vendor/assets/{stylesheets → javascripts/dijit/themes}/claro/layout/images/tabRightUnselected.svg +0 -0
- data/vendor/assets/{stylesheets → javascripts/dijit/themes}/claro/layout/images/tabTopSelected.svg +0 -0
- data/vendor/assets/{stylesheets → javascripts/dijit/themes}/claro/layout/images/tabTopUnselected.svg +0 -0
- data/vendor/assets/{images/tundra → javascripts/dijit/themes/tundra/images}/dijitProgressBarAnim.psd +0 -0
- data/vendor/assets/{images/tundra → javascripts/dijit/themes/tundra/images}/progressBarAnim.psd +0 -0
- data/vendor/assets/javascripts/dijit/tree/ObjectStoreModel.js +3 -4
- data/vendor/assets/javascripts/dijit/tree/_dndSelector.js +5 -2
- data/vendor/assets/{javascripts/dijit → stylesheets}/icons/commonIcons.css +1 -1
- data/vendor/assets/{javascripts/dijit → stylesheets}/icons/commonIcons_rtl.css +0 -0
- data/vendor/assets/{javascripts/dijit → stylesheets}/icons/editorIcons.css +0 -0
- data/vendor/assets/{javascripts/dijit → stylesheets}/icons/editorIcons_rtl.css +0 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/Calendar.css +2 -2
- data/vendor/assets/stylesheets/themes/claro/Calendar.less +277 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/Calendar_rtl.css +0 -0
- data/vendor/assets/stylesheets/themes/claro/Calendar_rtl.less +19 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/ColorPalette.css +0 -0
- data/vendor/assets/stylesheets/themes/claro/ColorPalette.less +44 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/Common.css +2 -2
- data/vendor/assets/stylesheets/themes/claro/Common.less +86 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/Dialog.css +2 -2
- data/vendor/assets/stylesheets/themes/claro/Dialog.less +209 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/Dialog_rtl.css +0 -0
- data/vendor/assets/stylesheets/themes/claro/Dialog_rtl.less +13 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/Editor.css +1 -1
- data/vendor/assets/stylesheets/themes/claro/Editor.less +57 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/Editor_rtl.css +0 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/Editor_rtl.less +0 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/InlineEditBox.css +0 -0
- data/vendor/assets/stylesheets/themes/claro/InlineEditBox.less +25 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/Menu.css +3 -3
- data/vendor/assets/stylesheets/themes/claro/Menu.less +179 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/Menu_rtl.css +0 -0
- data/vendor/assets/stylesheets/themes/claro/Menu_rtl.less +11 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/ProgressBar.css +1 -1
- data/vendor/assets/stylesheets/themes/claro/ProgressBar.less +64 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/TimePicker.css +2 -2
- data/vendor/assets/stylesheets/themes/claro/TimePicker.less +115 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/TimePicker_rtl.css +0 -0
- data/vendor/assets/stylesheets/themes/claro/TimePicker_rtl.less +12 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/TitlePane.css +2 -2
- data/vendor/assets/stylesheets/themes/claro/TitlePane.less +70 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/TitlePane_rtl.css +0 -0
- data/vendor/assets/stylesheets/themes/claro/TitlePane_rtl.less +7 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/Toolbar.css +13 -11
- data/vendor/assets/stylesheets/themes/claro/Toolbar.less +173 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/Toolbar_rtl.css +0 -0
- data/vendor/assets/stylesheets/themes/claro/Toolbar_rtl.less +32 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/Tree.css +3 -3
- data/vendor/assets/stylesheets/themes/claro/Tree.less +127 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/claro.css +86 -69
- data/vendor/assets/stylesheets/{claro → themes/claro}/claro_rtl.css +3 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/document.css +0 -0
- data/vendor/assets/stylesheets/themes/claro/document.less +45 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/form/Button.css +2 -2
- data/vendor/assets/stylesheets/themes/claro/form/Button.less +164 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/form/Button_rtl.css +0 -0
- data/vendor/assets/stylesheets/themes/claro/form/Button_rtl.less +16 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/form/Checkbox.css +0 -0
- data/vendor/assets/stylesheets/themes/claro/form/Checkbox.less +79 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/form/Common.css +4 -4
- data/vendor/assets/stylesheets/themes/claro/form/Common.less +241 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/form/Common_rtl.css +0 -0
- data/vendor/assets/stylesheets/themes/claro/form/Common_rtl.less +8 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/form/NumberSpinner.css +2 -2
- data/vendor/assets/stylesheets/themes/claro/form/NumberSpinner.less +150 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/form/RadioButton.css +0 -0
- data/vendor/assets/stylesheets/themes/claro/form/RadioButton.less +84 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/form/Select.css +3 -3
- data/vendor/assets/stylesheets/themes/claro/form/Select.less +98 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/form/Slider.css +2 -2
- data/vendor/assets/stylesheets/themes/claro/form/Slider.less +344 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/form/Slider_rtl.css +0 -0
- data/vendor/assets/stylesheets/themes/claro/form/Slider_rtl.less +33 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/layout/AccordionContainer.css +4 -4
- data/vendor/assets/stylesheets/{claro → themes/claro}/layout/AccordionContainer.less +3 -1
- data/vendor/assets/stylesheets/{claro → themes/claro}/layout/BorderContainer.css +2 -2
- data/vendor/assets/stylesheets/{claro → themes/claro}/layout/BorderContainer.less +0 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/layout/ContentPane.css +0 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/layout/ContentPane.less +0 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/layout/TabContainer.css +11 -11
- data/vendor/assets/stylesheets/{claro → themes/claro}/layout/TabContainer.less +0 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/layout/TabContainer_rtl.css +0 -0
- data/vendor/assets/stylesheets/{claro → themes/claro}/layout/TabContainer_rtl.less +0 -0
- data/vendor/assets/stylesheets/themes/claro/variables.less +378 -0
- data/vendor/assets/stylesheets/{dijit.css → themes/dijit.css} +21 -9
- data/vendor/assets/stylesheets/{dijit_rtl.css → themes/dijit_rtl.css} +3 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Calendar.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Calendar_rtl.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/ColorPalette.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Common.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Dialog.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Dialog_rtl.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Editor.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Editor_rtl.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Menu.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Menu_rtl.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/ProgressBar.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/TimePicker.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/TimePicker_rtl.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/TitlePane.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/TitlePane_rtl.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Toolbar.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Tree.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/Tree_rtl.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/Button.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/Button_rtl.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/Checkbox.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/Common.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/RadioButton.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/Select.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/Slider.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/Slider_rtl.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/form/TimeTextBox.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/layout/AccordionContainer.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/layout/AccordionContainer_rtl.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/layout/BorderContainer.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/layout/ContentPane.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/layout/SplitContainer.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/layout/TabContainer.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/layout/TabContainer_rtl.css +0 -0
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/nihilo.css +22 -10
- data/vendor/assets/stylesheets/{nihilo → themes/nihilo}/nihilo_rtl.css +3 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/Calendar.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/Calendar_rtl.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/ColorPalette.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/Common.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/Dialog.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/Dialog_rtl.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/Editor.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/Editor_rtl.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/Menu.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/Menu_rtl.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/ProgressBar.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/TimePicker.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/TimePicker_rtl.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/TitlePane.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/TitlePane_rtl.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/Toolbar.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/Tree.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/Tree_rtl.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/form/Button.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/form/Button_rtl.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/form/Checkbox.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/form/Common.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/form/RadioButton.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/form/Select.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/form/Slider.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/form/Slider_rtl.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/form/TimeTextBox.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/layout/AccordionContainer.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/layout/AccordionContainer_rtl.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/layout/BorderContainer.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/layout/ContentPane.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/layout/SplitContainer.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/layout/TabContainer.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/layout/TabContainer_rtl.css +0 -0
- data/vendor/assets/stylesheets/{soria → themes/soria}/soria.css +22 -10
- data/vendor/assets/stylesheets/{soria → themes/soria}/soria_rtl.css +3 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/Calendar.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/Calendar_rtl.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/ColorPalette.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/Common.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/Dialog.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/Dialog_rtl.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/Editor.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/Editor_rtl.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/Menu.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/Menu_rtl.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/ProgressBar.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/TimePicker.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/TimePicker_rtl.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/TitlePane.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/TitlePane_rtl.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/Toolbar.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/Tree.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/Tree_rtl.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/form/Button.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/form/Checkbox.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/form/Common.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/form/RadioButton.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/form/Select.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/form/Slider.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/form/Slider_rtl.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/layout/AccordionContainer.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/layout/BorderContainer.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/layout/ContentPane.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/layout/SplitContainer.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/layout/TabContainer.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/layout/TabContainer_rtl.css +0 -0
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/tundra.css +25 -10
- data/vendor/assets/stylesheets/{tundra → themes/tundra}/tundra_rtl.css +3 -0
- metadata +510 -928
- data/LICENSE +0 -19
- data/vendor/assets/javascripts/dijit/BackgroundIframe.js.uncompressed.js +0 -110
- data/vendor/assets/javascripts/dijit/Calendar.js.uncompressed.js +0 -312
- data/vendor/assets/javascripts/dijit/CalendarLite.js.uncompressed.js +0 -500
- data/vendor/assets/javascripts/dijit/CheckedMenuItem.js.uncompressed.js +0 -53
- data/vendor/assets/javascripts/dijit/ColorPalette.js.uncompressed.js +0 -161
- data/vendor/assets/javascripts/dijit/Declaration.js.uncompressed.js +0 -105
- data/vendor/assets/javascripts/dijit/Destroyable.js.uncompressed.js +0 -59
- data/vendor/assets/javascripts/dijit/Dialog.js.uncompressed.js +0 -640
- data/vendor/assets/javascripts/dijit/DialogUnderlay.js.uncompressed.js +0 -102
- data/vendor/assets/javascripts/dijit/DropDownMenu.js.uncompressed.js +0 -58
- data/vendor/assets/javascripts/dijit/Editor.js.uncompressed.js +0 -864
- data/vendor/assets/javascripts/dijit/InlineEditBox.js.uncompressed.js +0 -656
- data/vendor/assets/javascripts/dijit/LICENSE +0 -195
- data/vendor/assets/javascripts/dijit/Menu.js.uncompressed.js +0 -348
- data/vendor/assets/javascripts/dijit/MenuBar.js.uncompressed.js +0 -92
- data/vendor/assets/javascripts/dijit/MenuBarItem.js.uncompressed.js +0 -28
- data/vendor/assets/javascripts/dijit/MenuItem.js.uncompressed.js +0 -187
- data/vendor/assets/javascripts/dijit/MenuSeparator.js.uncompressed.js +0 -35
- data/vendor/assets/javascripts/dijit/PopupMenuBarItem.js.uncompressed.js +0 -16
- data/vendor/assets/javascripts/dijit/PopupMenuItem.js.uncompressed.js +0 -73
- data/vendor/assets/javascripts/dijit/ProgressBar.js.uncompressed.js +0 -171
- data/vendor/assets/javascripts/dijit/TitlePane.js.uncompressed.js +0 -266
- data/vendor/assets/javascripts/dijit/Toolbar.js.uncompressed.js +0 -43
- data/vendor/assets/javascripts/dijit/ToolbarSeparator.js.uncompressed.js +0 -31
- data/vendor/assets/javascripts/dijit/Tooltip.js.uncompressed.js +0 -542
- data/vendor/assets/javascripts/dijit/TooltipDialog.js.uncompressed.js +0 -174
- data/vendor/assets/javascripts/dijit/Tree.js.uncompressed.js +0 -1909
- data/vendor/assets/javascripts/dijit/Viewport.js.uncompressed.js +0 -50
- data/vendor/assets/javascripts/dijit/WidgetSet.js.uncompressed.js +0 -247
- data/vendor/assets/javascripts/dijit/_BidiSupport.js.uncompressed.js +0 -113
- data/vendor/assets/javascripts/dijit/_Calendar.js.uncompressed.js +0 -22
- data/vendor/assets/javascripts/dijit/_Contained.js.uncompressed.js +0 -60
- data/vendor/assets/javascripts/dijit/_Container.js.uncompressed.js +0 -94
- data/vendor/assets/javascripts/dijit/_CssStateMixin.js.uncompressed.js +0 -320
- data/vendor/assets/javascripts/dijit/_DialogMixin.js.uncompressed.js +0 -70
- data/vendor/assets/javascripts/dijit/_FocusMixin.js.uncompressed.js +0 -66
- data/vendor/assets/javascripts/dijit/_HasDropDown.js.uncompressed.js +0 -508
- data/vendor/assets/javascripts/dijit/_KeyNavContainer.js.uncompressed.js +0 -257
- data/vendor/assets/javascripts/dijit/_MenuBase.js.uncompressed.js +0 -418
- data/vendor/assets/javascripts/dijit/_OnDijitClickMixin.js.uncompressed.js +0 -50
- data/vendor/assets/javascripts/dijit/_PaletteMixin.js.uncompressed.js +0 -340
- data/vendor/assets/javascripts/dijit/_Templated.js.uncompressed.js +0 -64
- data/vendor/assets/javascripts/dijit/_TemplatedMixin.js.uncompressed.js +0 -308
- data/vendor/assets/javascripts/dijit/_TimePicker.js.uncompressed.js +0 -519
- data/vendor/assets/javascripts/dijit/_Widget.js.uncompressed.js +0 -362
- data/vendor/assets/javascripts/dijit/_WidgetBase.js.uncompressed.js +0 -1123
- data/vendor/assets/javascripts/dijit/_WidgetsInTemplateMixin.js.uncompressed.js +0 -65
- data/vendor/assets/javascripts/dijit/_base.js.uncompressed.js +0 -27
- data/vendor/assets/javascripts/dijit/_base/focus.js.uncompressed.js +0 -323
- data/vendor/assets/javascripts/dijit/_base/manager.js.uncompressed.js +0 -35
- data/vendor/assets/javascripts/dijit/_base/place.js.uncompressed.js +0 -131
- data/vendor/assets/javascripts/dijit/_base/popup.js.uncompressed.js +0 -58
- data/vendor/assets/javascripts/dijit/_base/scroll.js.uncompressed.js +0 -22
- data/vendor/assets/javascripts/dijit/_base/sniff.js.uncompressed.js +0 -12
- data/vendor/assets/javascripts/dijit/_base/typematic.js.uncompressed.js +0 -10
- data/vendor/assets/javascripts/dijit/_base/wai.js.uncompressed.js +0 -109
- data/vendor/assets/javascripts/dijit/_base/window.js.uncompressed.js +0 -18
- data/vendor/assets/javascripts/dijit/_editor/RichText.js.uncompressed.js +0 -2874
- data/vendor/assets/javascripts/dijit/_editor/_Plugin.js.uncompressed.js +0 -302
- data/vendor/assets/javascripts/dijit/_editor/html.js.uncompressed.js +0 -223
- data/vendor/assets/javascripts/dijit/_editor/nls/FontChoice.js.uncompressed.js +0 -62
- data/vendor/assets/javascripts/dijit/_editor/nls/LinkDialog.js.uncompressed.js +0 -48
- data/vendor/assets/javascripts/dijit/_editor/nls/ar/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/ar/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/ar/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/az/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/az/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/az/commands.js.uncompressed.js +0 -50
- data/vendor/assets/javascripts/dijit/_editor/nls/ca/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/ca/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/ca/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/commands.js.uncompressed.js +0 -85
- data/vendor/assets/javascripts/dijit/_editor/nls/cs/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/cs/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/cs/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/da/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/da/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/da/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/de/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/de/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/de/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/el/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/el/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/el/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/es/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/es/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/es/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/fi/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/fi/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/fi/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/fr/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/fr/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/fr/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/he/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/he/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/he/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/hr/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/hr/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/hr/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/hu/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/hu/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/hu/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/it/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/it/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/it/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/ja/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/ja/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/ja/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/kk/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/kk/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/kk/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/ko/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/ko/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/ko/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/nb/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/nb/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/nb/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/nl/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/nl/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/nl/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/pl/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/pl/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/pl/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/pt-pt/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/pt-pt/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/pt-pt/commands.js.uncompressed.js +0 -49
- data/vendor/assets/javascripts/dijit/_editor/nls/pt/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/pt/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/pt/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/ro/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/ro/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/ro/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/ru/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/ru/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/ru/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/sk/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/sk/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/sk/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/sl/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/sl/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/sl/commands.js.uncompressed.js +0 -49
- data/vendor/assets/javascripts/dijit/_editor/nls/sv/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/sv/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/sv/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/th/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/th/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/th/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/tr/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/tr/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/tr/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/zh-tw/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/zh-tw/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/zh-tw/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/nls/zh/FontChoice.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/_editor/nls/zh/LinkDialog.js.uncompressed.js +0 -14
- data/vendor/assets/javascripts/dijit/_editor/nls/zh/commands.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/_editor/plugins/AlwaysShowToolbar.js.uncompressed.js +0 -191
- data/vendor/assets/javascripts/dijit/_editor/plugins/EnterKeyHandling.js.uncompressed.js +0 -622
- data/vendor/assets/javascripts/dijit/_editor/plugins/FontChoice.js.uncompressed.js +0 -583
- data/vendor/assets/javascripts/dijit/_editor/plugins/FullScreen.js.uncompressed.js +0 -450
- data/vendor/assets/javascripts/dijit/_editor/plugins/LinkDialog.js.uncompressed.js +0 -607
- data/vendor/assets/javascripts/dijit/_editor/plugins/NewPage.js.uncompressed.js +0 -77
- data/vendor/assets/javascripts/dijit/_editor/plugins/Print.js.uncompressed.js +0 -123
- data/vendor/assets/javascripts/dijit/_editor/plugins/TabIndent.js.uncompressed.js +0 -60
- data/vendor/assets/javascripts/dijit/_editor/plugins/TextColor.js.uncompressed.js +0 -114
- data/vendor/assets/javascripts/dijit/_editor/plugins/ToggleDir.js.uncompressed.js +0 -69
- data/vendor/assets/javascripts/dijit/_editor/plugins/ViewSource.js.uncompressed.js +0 -577
- data/vendor/assets/javascripts/dijit/_editor/range.js.uncompressed.js +0 -559
- data/vendor/assets/javascripts/dijit/_editor/selection.js.uncompressed.js +0 -383
- data/vendor/assets/javascripts/dijit/_tree/dndSource.js.uncompressed.js +0 -15
- data/vendor/assets/javascripts/dijit/a11y.js.uncompressed.js +0 -177
- data/vendor/assets/javascripts/dijit/a11yclick.js.uncompressed.js +0 -131
- data/vendor/assets/javascripts/dijit/dijit-all.js.uncompressed.js +0 -33581
- data/vendor/assets/javascripts/dijit/dijit.js.uncompressed.js +0 -8131
- data/vendor/assets/javascripts/dijit/focus.js.uncompressed.js +0 -364
- data/vendor/assets/javascripts/dijit/form/Button.js.uncompressed.js +0 -121
- data/vendor/assets/javascripts/dijit/form/CheckBox.js.uncompressed.js +0 -116
- data/vendor/assets/javascripts/dijit/form/ComboBox.js.uncompressed.js +0 -27
- data/vendor/assets/javascripts/dijit/form/ComboBoxMixin.js.uncompressed.js +0 -143
- data/vendor/assets/javascripts/dijit/form/ComboButton.js.uncompressed.js +0 -85
- data/vendor/assets/javascripts/dijit/form/CurrencyTextBox.js.uncompressed.js +0 -85
- data/vendor/assets/javascripts/dijit/form/DataList.js.uncompressed.js +0 -69
- data/vendor/assets/javascripts/dijit/form/DateTextBox.js.uncompressed.js +0 -28
- data/vendor/assets/javascripts/dijit/form/DropDownButton.js.uncompressed.js +0 -99
- data/vendor/assets/javascripts/dijit/form/FilteringSelect.js.uncompressed.js +0 -234
- data/vendor/assets/javascripts/dijit/form/Form.js.uncompressed.js +0 -163
- data/vendor/assets/javascripts/dijit/form/HorizontalRule.js.uncompressed.js +0 -69
- data/vendor/assets/javascripts/dijit/form/HorizontalRuleLabels.js.uncompressed.js +0 -92
- data/vendor/assets/javascripts/dijit/form/HorizontalSlider.js.uncompressed.js +0 -349
- data/vendor/assets/javascripts/dijit/form/MappedTextBox.js.uncompressed.js +0 -81
- data/vendor/assets/javascripts/dijit/form/MultiSelect.js.uncompressed.js +0 -134
- data/vendor/assets/javascripts/dijit/form/NumberSpinner.js.uncompressed.js +0 -67
- data/vendor/assets/javascripts/dijit/form/NumberTextBox.js.uncompressed.js +0 -275
- data/vendor/assets/javascripts/dijit/form/RadioButton.js.uncompressed.js +0 -16
- data/vendor/assets/javascripts/dijit/form/RangeBoundTextBox.js.uncompressed.js +0 -134
- data/vendor/assets/javascripts/dijit/form/Select.js.uncompressed.js +0 -406
- data/vendor/assets/javascripts/dijit/form/SimpleTextarea.js.uncompressed.js +0 -92
- data/vendor/assets/javascripts/dijit/form/Slider.js.uncompressed.js +0 -23
- data/vendor/assets/javascripts/dijit/form/TextBox.js.uncompressed.js +0 -157
- data/vendor/assets/javascripts/dijit/form/Textarea.js.uncompressed.js +0 -42
- data/vendor/assets/javascripts/dijit/form/TimeTextBox.js.uncompressed.js +0 -79
- data/vendor/assets/javascripts/dijit/form/ToggleButton.js.uncompressed.js +0 -26
- data/vendor/assets/javascripts/dijit/form/ValidationTextBox.js.uncompressed.js +0 -327
- data/vendor/assets/javascripts/dijit/form/VerticalRule.js.uncompressed.js +0 -28
- data/vendor/assets/javascripts/dijit/form/VerticalRuleLabels.js.uncompressed.js +0 -26
- data/vendor/assets/javascripts/dijit/form/VerticalSlider.js.uncompressed.js +0 -35
- data/vendor/assets/javascripts/dijit/form/_AutoCompleterMixin.js.uncompressed.js +0 -581
- data/vendor/assets/javascripts/dijit/form/_ButtonMixin.js.uncompressed.js +0 -84
- data/vendor/assets/javascripts/dijit/form/_CheckBoxMixin.js.uncompressed.js +0 -78
- data/vendor/assets/javascripts/dijit/form/_ComboBoxMenu.js.uncompressed.js +0 -131
- data/vendor/assets/javascripts/dijit/form/_ComboBoxMenuMixin.js.uncompressed.js +0 -189
- data/vendor/assets/javascripts/dijit/form/_DateTimeTextBox.js.uncompressed.js +0 -259
- data/vendor/assets/javascripts/dijit/form/_ExpandingTextAreaMixin.js.uncompressed.js +0 -136
- data/vendor/assets/javascripts/dijit/form/_FormMixin.js.uncompressed.js +0 -456
- data/vendor/assets/javascripts/dijit/form/_FormSelectWidget.js.uncompressed.js +0 -706
- data/vendor/assets/javascripts/dijit/form/_FormValueMixin.js.uncompressed.js +0 -90
- data/vendor/assets/javascripts/dijit/form/_FormValueWidget.js.uncompressed.js +0 -51
- data/vendor/assets/javascripts/dijit/form/_FormWidget.js.uncompressed.js +0 -71
- data/vendor/assets/javascripts/dijit/form/_FormWidgetMixin.js.uncompressed.js +0 -223
- data/vendor/assets/javascripts/dijit/form/_ListBase.js.uncompressed.js +0 -135
- data/vendor/assets/javascripts/dijit/form/_ListMouseMixin.js.uncompressed.js +0 -79
- data/vendor/assets/javascripts/dijit/form/_RadioButtonMixin.js.uncompressed.js +0 -71
- data/vendor/assets/javascripts/dijit/form/_SearchMixin.js.uncompressed.js +0 -264
- data/vendor/assets/javascripts/dijit/form/_Spinner.js.uncompressed.js +0 -137
- data/vendor/assets/javascripts/dijit/form/_TextBoxMixin.js.uncompressed.js +0 -474
- data/vendor/assets/javascripts/dijit/form/_ToggleButtonMixin.js.uncompressed.js +0 -49
- data/vendor/assets/javascripts/dijit/form/nls/ComboBox.js.uncompressed.js +0 -40
- data/vendor/assets/javascripts/dijit/form/nls/Textarea.js.uncompressed.js +0 -43
- data/vendor/assets/javascripts/dijit/form/nls/ar/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/ar/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/ar/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/az/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/az/Textarea.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/az/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/ca/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/ca/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/ca/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/cs/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/cs/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/cs/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/da/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/da/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/da/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/de/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/de/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/de/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/el/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/el/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/el/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/es/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/es/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/es/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/fi/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/fi/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/fi/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/fr/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/fr/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/fr/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/he/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/he/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/he/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/hr/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/hr/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/hr/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/hu/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/hu/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/hu/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/it/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/it/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/it/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/ja/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/ja/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/ja/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/kk/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/kk/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/kk/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/ko/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/ko/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/ko/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/nb/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/nb/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/nb/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/nl/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/nl/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/nl/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/pl/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/pl/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/pl/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/pt-pt/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/pt-pt/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/pt-pt/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/pt/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/pt/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/pt/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/ro/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/ro/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/ro/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/ru/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/ru/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/ru/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/sk/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/sk/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/sk/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/sl/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/sl/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/sl/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/sv/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/sv/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/sv/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/th/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/th/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/th/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/tr/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/tr/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/tr/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/validate.js.uncompressed.js +0 -41
- data/vendor/assets/javascripts/dijit/form/nls/zh-tw/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/zh-tw/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/zh-tw/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/form/nls/zh/ComboBox.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/form/nls/zh/Textarea.js.uncompressed.js +0 -9
- data/vendor/assets/javascripts/dijit/form/nls/zh/validate.js.uncompressed.js +0 -7
- data/vendor/assets/javascripts/dijit/hccss.js.uncompressed.js +0 -23
- data/vendor/assets/javascripts/dijit/layout/AccordionContainer.js.uncompressed.js +0 -540
- data/vendor/assets/javascripts/dijit/layout/AccordionPane.js.uncompressed.js +0 -25
- data/vendor/assets/javascripts/dijit/layout/BorderContainer.js.uncompressed.js +0 -547
- data/vendor/assets/javascripts/dijit/layout/ContentPane.js.uncompressed.js +0 -645
- data/vendor/assets/javascripts/dijit/layout/LayoutContainer.js.uncompressed.js +0 -91
- data/vendor/assets/javascripts/dijit/layout/LinkPane.js.uncompressed.js +0 -44
- data/vendor/assets/javascripts/dijit/layout/ScrollingTabController.js.uncompressed.js +0 -500
- data/vendor/assets/javascripts/dijit/layout/SplitContainer.js.uncompressed.js +0 -584
- data/vendor/assets/javascripts/dijit/layout/StackContainer.js.uncompressed.js +0 -374
- data/vendor/assets/javascripts/dijit/layout/StackController.js.uncompressed.js +0 -389
- data/vendor/assets/javascripts/dijit/layout/TabContainer.js.uncompressed.js +0 -77
- data/vendor/assets/javascripts/dijit/layout/TabController.js.uncompressed.js +0 -171
- data/vendor/assets/javascripts/dijit/layout/_ContentPaneResizeMixin.js.uncompressed.js +0 -234
- data/vendor/assets/javascripts/dijit/layout/_LayoutWidget.js.uncompressed.js +0 -185
- data/vendor/assets/javascripts/dijit/layout/_TabContainerBase.js.uncompressed.js +0 -146
- data/vendor/assets/javascripts/dijit/layout/utils.js.uncompressed.js +0 -145
- data/vendor/assets/javascripts/dijit/main.js.uncompressed.js +0 -16
- data/vendor/assets/javascripts/dijit/nls/ar/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/ar/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/az/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/az/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/ca/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/ca/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/common.js.uncompressed.js +0 -42
- data/vendor/assets/javascripts/dijit/nls/cs/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/cs/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/da/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/da/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/de/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/de/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/dijit-all_ROOT.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_ar.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_ca.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_cs.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_da.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_de.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_el.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_en-gb.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_en-us.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_es-es.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_fi-fi.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_fr-fr.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_he-il.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_hu.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_it-it.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_ja-jp.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_ko-kr.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_nb.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_nl-nl.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_pl.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_pt-br.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_pt-pt.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_ru.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_sk.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_sl.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_sv.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_th.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_tr.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_zh-cn.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/dijit-all_zh-tw.js.uncompressed.js +0 -21
- data/vendor/assets/javascripts/dijit/nls/el/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/el/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/es/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/es/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/fi/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/fi/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/fr/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/fr/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/he/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/he/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/hr/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/hr/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/hu/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/hu/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/it/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/it/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/ja/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/ja/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/kk/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/kk/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/ko/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/ko/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/loading.js.uncompressed.js +0 -40
- data/vendor/assets/javascripts/dijit/nls/nb/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/nb/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/nl/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/nl/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/pl/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/pl/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/pt-pt/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/pt-pt/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/pt/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/pt/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/ro/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/ro/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/ru/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/ru/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/sk/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/sk/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/sl/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/sl/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/sv/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/sv/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/th/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/th/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/tr/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/tr/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/zh-tw/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/zh-tw/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/nls/zh/common.js.uncompressed.js +0 -8
- data/vendor/assets/javascripts/dijit/nls/zh/loading.js.uncompressed.js +0 -6
- data/vendor/assets/javascripts/dijit/place.js.uncompressed.js +0 -367
- data/vendor/assets/javascripts/dijit/popup.js.uncompressed.js +0 -318
- data/vendor/assets/javascripts/dijit/registry.js.uncompressed.js +0 -161
- data/vendor/assets/javascripts/dijit/tree/ForestStoreModel.js.uncompressed.js +0 -279
- data/vendor/assets/javascripts/dijit/tree/ObjectStoreModel.js.uncompressed.js +0 -252
- data/vendor/assets/javascripts/dijit/tree/TreeStoreModel.js.uncompressed.js +0 -379
- data/vendor/assets/javascripts/dijit/tree/_dndContainer.js.uncompressed.js +0 -165
- data/vendor/assets/javascripts/dijit/tree/_dndSelector.js.uncompressed.js +0 -352
- data/vendor/assets/javascripts/dijit/tree/dndSource.js.uncompressed.js +0 -564
- data/vendor/assets/javascripts/dijit/tree/model.js.uncompressed.js +0 -150
- data/vendor/assets/javascripts/dijit/typematic.js.uncompressed.js +0 -201
- 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
|
-
});
|