buxFilter.js.uncompressed.js 58 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005
  1. require({cache:{
  2. 'url:dojox/form/resources/VerticalRangeSlider.html':"<table class=\"dijitReset dijitSlider dijitSliderV dojoxRangeSlider\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderIncrementIconV\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"decrementButton\" dojoAttachEvent=\"onclick: increment\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderTopBumper\" dojoAttachEvent=\"onclick:_onClkIncBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td dojoAttachPoint=\"leftDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationL dijitSliderDecorationV\" style=\"text-align:center;height:100%;\"></td\n\t\t><td class=\"dijitReset\" style=\"height:100%;\"\n\t\t\t><input dojoAttachPoint=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><center role=\"presentation\" style=\"position:relative;height:100%;\" dojoAttachPoint=\"sliderBarContainer\"\n\t\t\t\t><div role=\"presentation\" dojoAttachPoint=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderRemainingBar dijitSliderRemainingBarV\" dojoAttachEvent=\"onmousedown:_onRemainingBarClick\"\n\t\t\t\t\t><div dojoAttachPoint=\"sliderHandle\" tabIndex=\"${tabIndex}\" class=\"dijitSliderMoveable dijitSliderMoveableV\" dojoAttachEvent=\"onkeypress:_onKeyPress,onmousedown:_onHandleClick\" style=\"vertical-align:top;\" role=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"\n\t\t\t\t\t\t><div class=\"dijitSliderImageHandle dijitSliderImageHandleV\"></div\n\t\t\t\t\t></div\n\t\t\t\t\t><div role=\"presentation\" dojoAttachPoint=\"progressBar,focusNode\" tabIndex=\"${tabIndex}\" class=\"dijitSliderBar dijitSliderBarV dijitSliderProgressBar dijitSliderProgressBarV\" dojoAttachEvent=\"onkeypress:_onKeyPress,onmousedown:_onBarClick\"\n\t\t\t\t\t></div\n\t\t\t\t\t><div dojoAttachPoint=\"sliderHandleMax,focusNodeMax\" tabIndex=\"${tabIndex}\" class=\"dijitSliderMoveable dijitSliderMoveableV\" dojoAttachEvent=\"onkeypress:_onKeyPress,onmousedown:_onHandleClickMax\" style=\"vertical-align:top;\" role=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"\n\t\t\t\t\t\t><div class=\"dijitSliderImageHandle dijitSliderImageHandleV\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t></center\n\t\t></td\n\t\t><td dojoAttachPoint=\"containerNode,rightDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationR dijitSliderDecorationV\" style=\"text-align:center;height:100%;\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderBottomBumper\" dojoAttachEvent=\"onclick:_onClkDecBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderDecrementIconV\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"incrementButton\" dojoAttachEvent=\"onclick: decrement\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n></table>\n",
  3. 'dijit/form/HorizontalRule':function(){
  4. define("dijit/form/HorizontalRule", [
  5. "dojo/_base/declare", // declare
  6. "../_Widget",
  7. "../_TemplatedMixin"
  8. ], function(declare, _Widget, _TemplatedMixin){
  9. /*=====
  10. var _Widget = dijit._Widget;
  11. var _TemplatedMixin = dijit._TemplatedMixin;
  12. =====*/
  13. // module:
  14. // dijit/form/HorizontalRule
  15. // summary:
  16. // Hash marks for `dijit.form.HorizontalSlider`
  17. return declare("dijit.form.HorizontalRule", [_Widget, _TemplatedMixin], {
  18. // summary:
  19. // Hash marks for `dijit.form.HorizontalSlider`
  20. templateString: '<div class="dijitRuleContainer dijitRuleContainerH"></div>',
  21. // count: Integer
  22. // Number of hash marks to generate
  23. count: 3,
  24. // container: String
  25. // For HorizontalSlider, this is either "topDecoration" or "bottomDecoration",
  26. // and indicates whether this rule goes above or below the slider.
  27. container: "containerNode",
  28. // ruleStyle: String
  29. // CSS style to apply to individual hash marks
  30. ruleStyle: "",
  31. _positionPrefix: '<div class="dijitRuleMark dijitRuleMarkH" style="left:',
  32. _positionSuffix: '%;',
  33. _suffix: '"></div>',
  34. _genHTML: function(pos){
  35. return this._positionPrefix + pos + this._positionSuffix + this.ruleStyle + this._suffix;
  36. },
  37. // _isHorizontal: [protected extension] Boolean
  38. // VerticalRule will override this...
  39. _isHorizontal: true,
  40. buildRendering: function(){
  41. this.inherited(arguments);
  42. var innerHTML;
  43. if(this.count == 1){
  44. innerHTML = this._genHTML(50, 0);
  45. }else{
  46. var i;
  47. var interval = 100 / (this.count-1);
  48. if(!this._isHorizontal || this.isLeftToRight()){
  49. innerHTML = this._genHTML(0, 0);
  50. for(i=1; i < this.count-1; i++){
  51. innerHTML += this._genHTML(interval*i, i);
  52. }
  53. innerHTML += this._genHTML(100, this.count-1);
  54. }else{
  55. innerHTML = this._genHTML(100, 0);
  56. for(i=1; i < this.count-1; i++){
  57. innerHTML += this._genHTML(100-interval*i, i);
  58. }
  59. innerHTML += this._genHTML(0, this.count-1);
  60. }
  61. }
  62. this.domNode.innerHTML = innerHTML;
  63. }
  64. });
  65. });
  66. },
  67. 'url:dojox/form/resources/HorizontalRangeSlider.html':"<table class=\"dijit dijitReset dijitSlider dijitSliderH dojoxRangeSlider\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" dojoAttachEvent=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td dojoAttachPoint=\"topDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationT dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderDecrementIconH\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"decrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderLeftBumper\" dojoAttachEvent=\"onmousedown:_onClkDecBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><input dojoAttachPoint=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><div role=\"presentation\" class=\"dojoxRangeSliderBarContainer\" dojoAttachPoint=\"sliderBarContainer\"\n\t\t\t\t><div dojoAttachPoint=\"sliderHandle\" tabIndex=\"${tabIndex}\" class=\"dijitSliderMoveable dijitSliderMoveableH\" dojoAttachEvent=\"onmousedown:_onHandleClick\" role=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"\n\t\t\t\t\t><div class=\"dijitSliderImageHandle dijitSliderImageHandleH\"></div\n\t\t\t\t></div\n\t\t\t\t><div role=\"presentation\" dojoAttachPoint=\"progressBar,focusNode\" class=\"dijitSliderBar dijitSliderBarH dijitSliderProgressBar dijitSliderProgressBarH\" dojoAttachEvent=\"onmousedown:_onBarClick\"></div\n\t\t\t\t><div dojoAttachPoint=\"sliderHandleMax,focusNodeMax\" tabIndex=\"${tabIndex}\" class=\"dijitSliderMoveable dijitSliderMoveableH\" dojoAttachEvent=\"onmousedown:_onHandleClickMax\" role=\"sliderMax\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"\n\t\t\t\t\t><div class=\"dijitSliderImageHandle dijitSliderImageHandleH\"></div\n\t\t\t\t></div\n\t\t\t\t><div role=\"presentation\" dojoAttachPoint=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderRemainingBar dijitSliderRemainingBarH\" dojoAttachEvent=\"onmousedown:_onRemainingBarClick\"></div\n\t\t\t></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderRightBumper\" dojoAttachEvent=\"onmousedown:_onClkIncBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderIncrementIconH\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"incrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td dojoAttachPoint=\"containerNode,bottomDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationB dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n></table>\n",
  68. 'dijit/form/VerticalSlider':function(){
  69. require({cache:{
  70. 'url:dijit/form/templates/VerticalSlider.html':"<table class=\"dijit dijitReset dijitSlider dijitSliderV\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" data-dojo-attach-event=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\trole=\"presentation\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderIncrementIconV\" style=\"display:none\" data-dojo-attach-point=\"decrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderTopBumper\" data-dojo-attach-event=\"press:_onClkIncBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td data-dojo-attach-point=\"leftDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationL dijitSliderDecorationV\"></td\n\t\t><td class=\"dijitReset dijitSliderDecorationC\" style=\"height:100%;\"\n\t\t\t><input data-dojo-attach-point=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><center class=\"dijitReset dijitSliderBarContainerV\" role=\"presentation\" data-dojo-attach-point=\"sliderBarContainer\"\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderRemainingBar dijitSliderRemainingBarV\" data-dojo-attach-event=\"press:_onBarClick\"><!--#5629--></div\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"progressBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderProgressBar dijitSliderProgressBarV\" data-dojo-attach-event=\"press:_onBarClick\"\n\t\t\t\t\t><div class=\"dijitSliderMoveable dijitSliderMoveableV\" style=\"vertical-align:top;\"\n\t\t\t\t\t\t><div data-dojo-attach-point=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleV\" data-dojo-attach-event=\"press:_onHandleClick\" role=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t></center\n\t\t></td\n\t\t><td data-dojo-attach-point=\"containerNode,rightDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationR dijitSliderDecorationV\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderBottomBumper\" data-dojo-attach-event=\"press:_onClkDecBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderDecrementIconV\" style=\"display:none\" data-dojo-attach-point=\"incrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n></table>\n"}});
  71. define("dijit/form/VerticalSlider", [
  72. "dojo/_base/declare", // declare
  73. "./HorizontalSlider",
  74. "dojo/text!./templates/VerticalSlider.html"
  75. ], function(declare, HorizontalSlider, template){
  76. /*=====
  77. var HorizontalSlider = dijit.form.HorizontalSlider;
  78. =====*/
  79. // module:
  80. // dijit/form/VerticalSlider
  81. // summary:
  82. // A form widget that allows one to select a value with a vertically draggable handle
  83. return declare("dijit.form.VerticalSlider", HorizontalSlider, {
  84. // summary:
  85. // A form widget that allows one to select a value with a vertically draggable handle
  86. templateString: template,
  87. _mousePixelCoord: "pageY",
  88. _pixelCount: "h",
  89. _startingPixelCoord: "y",
  90. _handleOffsetCoord: "top",
  91. _progressPixelSize: "height",
  92. // _descending: Boolean
  93. // Specifies if the slider values go from high-on-top (true), or low-on-top (false)
  94. // TODO: expose this in 1.2 - the css progress/remaining bar classes need to be reversed
  95. _descending: true,
  96. _isReversed: function(){
  97. // summary:
  98. // Overrides HorizontalSlider._isReversed.
  99. // Indicates if values are high on top (with low numbers on the bottom).
  100. return this._descending;
  101. }
  102. });
  103. });
  104. },
  105. 'dojox/form/RangeSlider':function(){
  106. require({cache:{
  107. 'url:dojox/form/resources/HorizontalRangeSlider.html':"<table class=\"dijit dijitReset dijitSlider dijitSliderH dojoxRangeSlider\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" dojoAttachEvent=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td dojoAttachPoint=\"topDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationT dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderDecrementIconH\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"decrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderLeftBumper\" dojoAttachEvent=\"onmousedown:_onClkDecBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><input dojoAttachPoint=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><div role=\"presentation\" class=\"dojoxRangeSliderBarContainer\" dojoAttachPoint=\"sliderBarContainer\"\n\t\t\t\t><div dojoAttachPoint=\"sliderHandle\" tabIndex=\"${tabIndex}\" class=\"dijitSliderMoveable dijitSliderMoveableH\" dojoAttachEvent=\"onmousedown:_onHandleClick\" role=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"\n\t\t\t\t\t><div class=\"dijitSliderImageHandle dijitSliderImageHandleH\"></div\n\t\t\t\t></div\n\t\t\t\t><div role=\"presentation\" dojoAttachPoint=\"progressBar,focusNode\" class=\"dijitSliderBar dijitSliderBarH dijitSliderProgressBar dijitSliderProgressBarH\" dojoAttachEvent=\"onmousedown:_onBarClick\"></div\n\t\t\t\t><div dojoAttachPoint=\"sliderHandleMax,focusNodeMax\" tabIndex=\"${tabIndex}\" class=\"dijitSliderMoveable dijitSliderMoveableH\" dojoAttachEvent=\"onmousedown:_onHandleClickMax\" role=\"sliderMax\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"\n\t\t\t\t\t><div class=\"dijitSliderImageHandle dijitSliderImageHandleH\"></div\n\t\t\t\t></div\n\t\t\t\t><div role=\"presentation\" dojoAttachPoint=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderRemainingBar dijitSliderRemainingBarH\" dojoAttachEvent=\"onmousedown:_onRemainingBarClick\"></div\n\t\t\t></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderRightBumper\" dojoAttachEvent=\"onmousedown:_onClkIncBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderIncrementIconH\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"incrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td dojoAttachPoint=\"containerNode,bottomDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationB dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n></table>\n",
  108. 'url:dojox/form/resources/VerticalRangeSlider.html':"<table class=\"dijitReset dijitSlider dijitSliderV dojoxRangeSlider\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderIncrementIconV\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"decrementButton\" dojoAttachEvent=\"onclick: increment\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderTopBumper\" dojoAttachEvent=\"onclick:_onClkIncBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td dojoAttachPoint=\"leftDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationL dijitSliderDecorationV\" style=\"text-align:center;height:100%;\"></td\n\t\t><td class=\"dijitReset\" style=\"height:100%;\"\n\t\t\t><input dojoAttachPoint=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><center role=\"presentation\" style=\"position:relative;height:100%;\" dojoAttachPoint=\"sliderBarContainer\"\n\t\t\t\t><div role=\"presentation\" dojoAttachPoint=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderRemainingBar dijitSliderRemainingBarV\" dojoAttachEvent=\"onmousedown:_onRemainingBarClick\"\n\t\t\t\t\t><div dojoAttachPoint=\"sliderHandle\" tabIndex=\"${tabIndex}\" class=\"dijitSliderMoveable dijitSliderMoveableV\" dojoAttachEvent=\"onkeypress:_onKeyPress,onmousedown:_onHandleClick\" style=\"vertical-align:top;\" role=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"\n\t\t\t\t\t\t><div class=\"dijitSliderImageHandle dijitSliderImageHandleV\"></div\n\t\t\t\t\t></div\n\t\t\t\t\t><div role=\"presentation\" dojoAttachPoint=\"progressBar,focusNode\" tabIndex=\"${tabIndex}\" class=\"dijitSliderBar dijitSliderBarV dijitSliderProgressBar dijitSliderProgressBarV\" dojoAttachEvent=\"onkeypress:_onKeyPress,onmousedown:_onBarClick\"\n\t\t\t\t\t></div\n\t\t\t\t\t><div dojoAttachPoint=\"sliderHandleMax,focusNodeMax\" tabIndex=\"${tabIndex}\" class=\"dijitSliderMoveable dijitSliderMoveableV\" dojoAttachEvent=\"onkeypress:_onKeyPress,onmousedown:_onHandleClickMax\" style=\"vertical-align:top;\" role=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"\n\t\t\t\t\t\t><div class=\"dijitSliderImageHandle dijitSliderImageHandleV\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t></center\n\t\t></td\n\t\t><td dojoAttachPoint=\"containerNode,rightDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationR dijitSliderDecorationV\" style=\"text-align:center;height:100%;\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderBottomBumper\" dojoAttachEvent=\"onclick:_onClkDecBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderDecrementIconV\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"incrementButton\" dojoAttachEvent=\"onclick: decrement\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n></table>\n"}});
  109. define("dojox/form/RangeSlider", [
  110. "dojo/_base/declare",
  111. "dojo/_base/lang",
  112. "dojo/_base/array",
  113. "dojo/_base/fx",
  114. "dojo/_base/event",
  115. "dojo/_base/sniff",
  116. "dojo/dom-style",
  117. "dojo/dom-geometry",
  118. "dojo/keys",
  119. "dijit",
  120. "dojo/dnd/Mover",
  121. "dojo/dnd/Moveable",
  122. "dojo/text!./resources/HorizontalRangeSlider.html",
  123. "dojo/text!./resources/VerticalRangeSlider.html",
  124. "dijit/form/HorizontalSlider",
  125. "dijit/form/VerticalSlider",
  126. "dijit/form/_FormValueWidget",
  127. "dijit/focus",
  128. "dojo/fx",
  129. "dojox/fx" // unused?
  130. ], function(declare, lang, array, fx, event, has, domStyle, domGeometry, keys, dijit, Mover, Moveable, hTemplate, vTemplate, HorizontalSlider, VerticalSlider, FormValueWidget, FocusManager, fxUtils){
  131. // make these functions once:
  132. var sortReversed = function(a, b){ return b - a; },
  133. sortForward = function(a, b){ return a - b; }
  134. ;
  135. lang.getObject("form", true, dojox);
  136. /*=====
  137. hTemplate = dijit.form.HorizontalSlider;
  138. vTemplate = dijit.form.VerticalSlider;
  139. =====*/
  140. var RangeSliderMixin = declare("dojox.form._RangeSliderMixin", null, {
  141. value: [0,100],
  142. postMixInProperties: function(){
  143. this.inherited(arguments);
  144. this.value = array.map(this.value, function(i){ return parseInt(i, 10); });
  145. },
  146. postCreate: function(){
  147. this.inherited(arguments);
  148. // we sort the values!
  149. // TODO: re-think, how to set the value
  150. this.value.sort(this._isReversed() ? sortReversed : sortForward);
  151. // define a custom constructor for a SliderMoverMax that points back to me
  152. var _self = this;
  153. var mover = declare(SliderMoverMax, {
  154. constructor: function(){
  155. this.widget = _self;
  156. }
  157. });
  158. this._movableMax = new Moveable(this.sliderHandleMax,{ mover: mover });
  159. this.focusNodeMax.setAttribute("aria-valuemin", this.minimum);
  160. this.focusNodeMax.setAttribute("aria-valuemax", this.maximum);
  161. // a dnd for the bar!
  162. var barMover = declare(SliderBarMover, {
  163. constructor: function(){
  164. this.widget = _self;
  165. }
  166. });
  167. this._movableBar = new Moveable(this.progressBar,{ mover: barMover });
  168. },
  169. destroy: function(){
  170. this.inherited(arguments);
  171. this._movableMax.destroy();
  172. this._movableBar.destroy();
  173. },
  174. _onKeyPress: function(/*Event*/ e){
  175. if(this.disabled || this.readOnly || e.altKey || e.ctrlKey){ return; }
  176. var useMaxValue = e.target === this.sliderHandleMax;
  177. var barFocus = e.target === this.progressBar;
  178. var k = lang.delegate(keys, this.isLeftToRight() ? {PREV_ARROW: keys.LEFT_ARROW, NEXT_ARROW: keys.RIGHT_ARROW}
  179. : {PREV_ARROW: keys.RIGHT_ARROW, NEXT_ARROW: keys.LEFT_ARROW});
  180. var delta = 0;
  181. var down = false;
  182. switch(e.keyCode){
  183. case k.HOME : this._setValueAttr(this.minimum, true, useMaxValue);event.stop(e);return;
  184. case k.END : this._setValueAttr(this.maximum, true, useMaxValue);event.stop(e);return;
  185. case k.PREV_ARROW :
  186. case k.DOWN_ARROW : down = true;
  187. case k.NEXT_ARROW :
  188. case k.UP_ARROW : delta = 1; break;
  189. case k.PAGE_DOWN : down = true;
  190. case k.PAGE_UP : delta = this.pageIncrement; break;
  191. default : this.inherited(arguments);return;
  192. }
  193. if(down){delta = -delta;}
  194. if(delta){
  195. if(barFocus){
  196. this._bumpValue([
  197. { change: delta, useMaxValue: false },
  198. { change: delta, useMaxValue: true }
  199. ]);
  200. }else{
  201. this._bumpValue(delta, useMaxValue);
  202. }
  203. event.stop(e);
  204. }
  205. },
  206. _onHandleClickMax: function(e){
  207. if(this.disabled || this.readOnly){ return; }
  208. if(!has("ie")){
  209. // make sure you get focus when dragging the handle
  210. // (but don't do on IE because it causes a flicker on mouse up (due to blur then focus)
  211. FocusManager.focus(this.sliderHandleMax);
  212. }
  213. event.stop(e);
  214. },
  215. _onClkIncBumper: function(){
  216. this._setValueAttr(this._descending === false ? this.minimum : this.maximum, true, true);
  217. },
  218. _bumpValue: function(signedChange, useMaxValue){
  219. // we pass an array to _setValueAttr when signedChange is an array
  220. var value = lang.isArray(signedChange) ? [
  221. this._getBumpValue(signedChange[0].change, signedChange[0].useMaxValue),
  222. this._getBumpValue(signedChange[1].change, signedChange[1].useMaxValue)
  223. ]
  224. : this._getBumpValue(signedChange, useMaxValue)
  225. this._setValueAttr(value, true, useMaxValue);
  226. },
  227. _getBumpValue: function(signedChange, useMaxValue){
  228. var idx = useMaxValue ? 1 : 0;
  229. if(this._isReversed()){
  230. idx = 1 - idx;
  231. }
  232. var s = domStyle.getComputedStyle(this.sliderBarContainer),
  233. c = domGeometry.getContentBox(this.sliderBarContainer, s),
  234. count = this.discreteValues,
  235. myValue = this.value[idx]
  236. ;
  237. if(count <= 1 || count == Infinity){ count = c[this._pixelCount]; }
  238. count--;
  239. var value = (myValue - this.minimum) * count / (this.maximum - this.minimum) + signedChange;
  240. if(value < 0){ value = 0; }
  241. if(value > count){ value = count; }
  242. return value * (this.maximum - this.minimum) / count + this.minimum;
  243. },
  244. _onBarClick: function(e){
  245. if(this.disabled || this.readOnly){ return; }
  246. if(!has("ie")){
  247. // make sure you get focus when dragging the handle
  248. // (but don't do on IE because it causes a flicker on mouse up (due to blur then focus)
  249. FocusManager.focus(this.progressBar);
  250. }
  251. event.stop(e);
  252. },
  253. _onRemainingBarClick: function(e){
  254. if(this.disabled || this.readOnly){ return; }
  255. if(!has("ie")){
  256. // make sure you get focus when dragging the handle
  257. // (but don't do on IE because it causes a flicker on mouse up (due to blur then focus)
  258. FocusManager.focus(this.progressBar);
  259. }
  260. // now we set the min/max-value of the slider!
  261. var abspos = domGeometry.position(this.sliderBarContainer, true),
  262. bar = domGeometry.position(this.progressBar, true),
  263. mousePos = e[this._mousePixelCoord],
  264. leftPos = bar[this._startingPixelCoord],
  265. rightPos = leftPos + bar[this._pixelCount],
  266. isMaxVal = this._isReversed() ? mousePos <= leftPos : mousePos >= rightPos,
  267. p = this._isReversed() ? (abspos[this._pixelCount] - mousePos + abspos[this._startingPixelCoord]) : (mousePos - abspos[this._startingPixelCoord])
  268. ;
  269. this._setPixelValue(p, abspos[this._pixelCount], true, isMaxVal);
  270. event.stop(e);
  271. },
  272. _setPixelValue: function(/*Number*/ pixelValue, /*Number*/ maxPixels, /*Boolean*/ priorityChange, /*Boolean*/ isMaxVal){
  273. if(this.disabled || this.readOnly){ return; }
  274. var myValue = this._getValueByPixelValue(pixelValue, maxPixels);
  275. this._setValueAttr(myValue, priorityChange, isMaxVal);
  276. },
  277. _getValueByPixelValue: function(/*Number*/ pixelValue, /*Number*/ maxPixels){
  278. pixelValue = pixelValue < 0 ? 0 : maxPixels < pixelValue ? maxPixels : pixelValue;
  279. var count = this.discreteValues;
  280. if(count <= 1 || count == Infinity){ count = maxPixels; }
  281. count--;
  282. var pixelsPerValue = maxPixels / count;
  283. var wholeIncrements = Math.round(pixelValue / pixelsPerValue);
  284. return (this.maximum-this.minimum)*wholeIncrements/count + this.minimum;
  285. },
  286. _setValueAttr: function(/*Array or Number*/ value, /*Boolean, optional*/ priorityChange, /*Boolean, optional*/ isMaxVal){
  287. // we pass an array, when we move the slider with the bar
  288. var actValue = this.value;
  289. if(!lang.isArray(value)){
  290. if(isMaxVal){
  291. if(this._isReversed()){
  292. actValue[0] = value;
  293. }else{
  294. actValue[1] = value;
  295. }
  296. }else{
  297. if(this._isReversed()){
  298. actValue[1] = value;
  299. }else{
  300. actValue[0] = value;
  301. }
  302. }
  303. }else{
  304. actValue = value;
  305. }
  306. // we have to reset this values. don't know the reason for that
  307. this._lastValueReported = "";
  308. this.valueNode.value = this.value = value = actValue;
  309. this.focusNode.setAttribute("aria-valuenow", actValue[0]);
  310. this.focusNodeMax.setAttribute("aria-valuenow", actValue[1]);
  311. this.value.sort(this._isReversed() ? sortReversed : sortForward);
  312. // not calling the _setValueAttr-function of Slider, but the super-super-class (needed for the onchange-event!)
  313. FormValueWidget.prototype._setValueAttr.apply(this, arguments);
  314. this._printSliderBar(priorityChange, isMaxVal);
  315. },
  316. _printSliderBar: function(priorityChange, isMaxVal){
  317. var percentMin = (this.value[0] - this.minimum) / (this.maximum - this.minimum);
  318. var percentMax = (this.value[1] - this.minimum) / (this.maximum - this.minimum);
  319. var percentMinSave = percentMin;
  320. if(percentMin > percentMax){
  321. percentMin = percentMax;
  322. percentMax = percentMinSave;
  323. }
  324. var sliderHandleVal = this._isReversed() ? ((1-percentMin)*100) : (percentMin * 100);
  325. var sliderHandleMaxVal = this._isReversed() ? ((1-percentMax)*100) : (percentMax * 100);
  326. var progressBarVal = this._isReversed() ? ((1-percentMax)*100) : (percentMin * 100);
  327. if(priorityChange && this.slideDuration > 0 && this.progressBar.style[this._progressPixelSize]){
  328. // animate the slider
  329. var percent = isMaxVal ? percentMax : percentMin;
  330. var _this = this;
  331. var props = {};
  332. var start = parseFloat(this.progressBar.style[this._handleOffsetCoord]);
  333. var duration = this.slideDuration / 10; // * (percent-start/100);
  334. if(duration === 0){ return; }
  335. if(duration < 0){ duration = 0 - duration; }
  336. var propsHandle = {};
  337. var propsHandleMax = {};
  338. var propsBar = {};
  339. // hui, a lot of animations :-)
  340. propsHandle[this._handleOffsetCoord] = { start: this.sliderHandle.style[this._handleOffsetCoord], end: sliderHandleVal, units:"%"};
  341. propsHandleMax[this._handleOffsetCoord] = { start: this.sliderHandleMax.style[this._handleOffsetCoord], end: sliderHandleMaxVal, units:"%"};
  342. propsBar[this._handleOffsetCoord] = { start: this.progressBar.style[this._handleOffsetCoord], end: progressBarVal, units:"%"};
  343. propsBar[this._progressPixelSize] = { start: this.progressBar.style[this._progressPixelSize], end: (percentMax - percentMin) * 100, units:"%"};
  344. var animHandle = fx.animateProperty({node: this.sliderHandle,duration: duration, properties: propsHandle});
  345. var animHandleMax = fx.animateProperty({node: this.sliderHandleMax,duration: duration, properties: propsHandleMax});
  346. var animBar = fx.animateProperty({node: this.progressBar,duration: duration, properties: propsBar});
  347. var animCombine = fxUtils.combine([animHandle, animHandleMax, animBar]);
  348. animCombine.play();
  349. }else{
  350. this.sliderHandle.style[this._handleOffsetCoord] = sliderHandleVal + "%";
  351. this.sliderHandleMax.style[this._handleOffsetCoord] = sliderHandleMaxVal + "%";
  352. this.progressBar.style[this._handleOffsetCoord] = progressBarVal + "%";
  353. this.progressBar.style[this._progressPixelSize] = ((percentMax - percentMin) * 100) + "%";
  354. }
  355. }
  356. });
  357. var SliderMoverMax = declare("dijit.form._SliderMoverMax", dijit.form._SliderMover, {
  358. onMouseMove: function(e){
  359. var widget = this.widget;
  360. var abspos = widget._abspos;
  361. if(!abspos){
  362. abspos = widget._abspos = domGeometry.position(widget.sliderBarContainer, true);
  363. widget._setPixelValue_ = lang.hitch(widget, "_setPixelValue");
  364. widget._isReversed_ = widget._isReversed();
  365. }
  366. var pixelValue = e[widget._mousePixelCoord] - abspos[widget._startingPixelCoord];
  367. widget._setPixelValue_(widget._isReversed_ ? (abspos[widget._pixelCount]-pixelValue) : pixelValue, abspos[widget._pixelCount], false, true);
  368. },
  369. destroy: function(e){
  370. Mover.prototype.destroy.apply(this, arguments);
  371. var widget = this.widget;
  372. widget._abspos = null;
  373. widget._setValueAttr(widget.value, true);
  374. }
  375. });
  376. var SliderBarMover = declare("dijit.form._SliderBarMover", Mover, {
  377. onMouseMove: function(e){
  378. var widget = this.widget;
  379. if(widget.disabled || widget.readOnly){ return; }
  380. var abspos = widget._abspos;
  381. var bar = widget._bar;
  382. var mouseOffset = widget._mouseOffset;
  383. if(!abspos){
  384. abspos = widget._abspos = domGeometry.position(widget.sliderBarContainer, true);
  385. widget._setPixelValue_ = lang.hitch(widget, "_setPixelValue");
  386. widget._getValueByPixelValue_ = lang.hitch(widget, "_getValueByPixelValue");
  387. widget._isReversed_ = widget._isReversed();
  388. }
  389. if(!bar){
  390. bar = widget._bar = domGeometry.position(widget.progressBar, true);
  391. }
  392. if(!mouseOffset){
  393. mouseOffset = widget._mouseOffset = e[widget._mousePixelCoord] - bar[widget._startingPixelCoord];
  394. }
  395. var pixelValueMin = e[widget._mousePixelCoord] - abspos[widget._startingPixelCoord] - mouseOffset,
  396. pixelValueMax = pixelValueMin + bar[widget._pixelCount];
  397. // we don't narrow the slider when it reaches the bumper!
  398. // maybe there is a simpler way
  399. pixelValues = [pixelValueMin, pixelValueMax]
  400. ;
  401. pixelValues.sort(sortForward);
  402. if(pixelValues[0] <= 0){
  403. pixelValues[0] = 0;
  404. pixelValues[1] = bar[widget._pixelCount];
  405. }
  406. if(pixelValues[1] >= abspos[widget._pixelCount]){
  407. pixelValues[1] = abspos[widget._pixelCount];
  408. pixelValues[0] = abspos[widget._pixelCount] - bar[widget._pixelCount];
  409. }
  410. // getting the real values by pixel
  411. var myValues = [
  412. widget._getValueByPixelValue(widget._isReversed_ ? (abspos[widget._pixelCount] - pixelValues[0]) : pixelValues[0], abspos[widget._pixelCount]),
  413. widget._getValueByPixelValue(widget._isReversed_ ? (abspos[widget._pixelCount] - pixelValues[1]) : pixelValues[1], abspos[widget._pixelCount])
  414. ];
  415. // and setting the value of the widget
  416. widget._setValueAttr(myValues, false, false);
  417. },
  418. destroy: function(){
  419. Mover.prototype.destroy.apply(this, arguments);
  420. var widget = this.widget;
  421. widget._abspos = null;
  422. widget._bar = null;
  423. widget._mouseOffset = null;
  424. widget._setValueAttr(widget.value, true);
  425. }
  426. });
  427. declare("dojox.form.HorizontalRangeSlider", [HorizontalSlider, RangeSliderMixin], {
  428. // summary:
  429. // A form widget that allows one to select a range with two horizontally draggable images
  430. templateString: hTemplate
  431. });
  432. declare("dojox.form.VerticalRangeSlider", [VerticalSlider, RangeSliderMixin], {
  433. // summary:
  434. // A form widget that allows one to select a range with two vertically draggable images
  435. templateString: vTemplate
  436. });
  437. return RangeSliderMixin;
  438. });
  439. },
  440. 'url:dijit/form/templates/VerticalSlider.html':"<table class=\"dijit dijitReset dijitSlider dijitSliderV\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" data-dojo-attach-event=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\trole=\"presentation\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderIncrementIconV\" style=\"display:none\" data-dojo-attach-point=\"decrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderTopBumper\" data-dojo-attach-event=\"press:_onClkIncBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td data-dojo-attach-point=\"leftDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationL dijitSliderDecorationV\"></td\n\t\t><td class=\"dijitReset dijitSliderDecorationC\" style=\"height:100%;\"\n\t\t\t><input data-dojo-attach-point=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><center class=\"dijitReset dijitSliderBarContainerV\" role=\"presentation\" data-dojo-attach-point=\"sliderBarContainer\"\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderRemainingBar dijitSliderRemainingBarV\" data-dojo-attach-event=\"press:_onBarClick\"><!--#5629--></div\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"progressBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderProgressBar dijitSliderProgressBarV\" data-dojo-attach-event=\"press:_onBarClick\"\n\t\t\t\t\t><div class=\"dijitSliderMoveable dijitSliderMoveableV\" style=\"vertical-align:top;\"\n\t\t\t\t\t\t><div data-dojo-attach-point=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleV\" data-dojo-attach-event=\"press:_onHandleClick\" role=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t></center\n\t\t></td\n\t\t><td data-dojo-attach-point=\"containerNode,rightDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationR dijitSliderDecorationV\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderBottomBumper\" data-dojo-attach-event=\"press:_onClkDecBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderDecrementIconV\" style=\"display:none\" data-dojo-attach-point=\"incrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n></table>\n",
  441. 'dijit/form/HorizontalRuleLabels':function(){
  442. define("dijit/form/HorizontalRuleLabels", [
  443. "dojo/_base/declare", // declare
  444. "dojo/number", // number.format
  445. "dojo/query", // query
  446. "./HorizontalRule"
  447. ], function(declare, number, query, HorizontalRule){
  448. /*=====
  449. var HorizontalRule = dijit.form.HorizontalRule;
  450. =====*/
  451. // module:
  452. // dijit/form/HorizontalRuleLabels
  453. // summary:
  454. // Labels for `dijit.form.HorizontalSlider`
  455. return declare("dijit.form.HorizontalRuleLabels", HorizontalRule, {
  456. // summary:
  457. // Labels for `dijit.form.HorizontalSlider`
  458. templateString: '<div class="dijitRuleContainer dijitRuleContainerH dijitRuleLabelsContainer dijitRuleLabelsContainerH"></div>',
  459. // labelStyle: String
  460. // CSS style to apply to individual text labels
  461. labelStyle: "",
  462. // labels: String[]?
  463. // Array of text labels to render - evenly spaced from left-to-right or bottom-to-top.
  464. // Alternately, minimum and maximum can be specified, to get numeric labels.
  465. labels: [],
  466. // numericMargin: Integer
  467. // Number of generated numeric labels that should be rendered as '' on the ends when labels[] are not specified
  468. numericMargin: 0,
  469. // numericMinimum: Integer
  470. // Leftmost label value for generated numeric labels when labels[] are not specified
  471. minimum: 0,
  472. // numericMaximum: Integer
  473. // Rightmost label value for generated numeric labels when labels[] are not specified
  474. maximum: 1,
  475. // constraints: Object
  476. // pattern, places, lang, et al (see dojo.number) for generated numeric labels when labels[] are not specified
  477. constraints: {pattern:"#%"},
  478. _positionPrefix: '<div class="dijitRuleLabelContainer dijitRuleLabelContainerH" style="left:',
  479. _labelPrefix: '"><div class="dijitRuleLabel dijitRuleLabelH">',
  480. _suffix: '</div></div>',
  481. _calcPosition: function(pos){
  482. // summary:
  483. // Returns the value to be used in HTML for the label as part of the left: attribute
  484. // tags:
  485. // protected extension
  486. return pos;
  487. },
  488. _genHTML: function(pos, ndx){
  489. return this._positionPrefix + this._calcPosition(pos) + this._positionSuffix + this.labelStyle + this._labelPrefix + this.labels[ndx] + this._suffix;
  490. },
  491. getLabels: function(){
  492. // summary:
  493. // Overridable function to return array of labels to use for this slider.
  494. // Can specify a getLabels() method instead of a labels[] array, or min/max attributes.
  495. // tags:
  496. // protected extension
  497. // if the labels array was not specified directly, then see if <li> children were
  498. var labels = this.labels;
  499. if(!labels.length){
  500. // for markup creation, labels are specified as child elements
  501. labels = query("> li", this.srcNodeRef).map(function(node){
  502. return String(node.innerHTML);
  503. });
  504. }
  505. this.srcNodeRef.innerHTML = '';
  506. // if the labels were not specified directly and not as <li> children, then calculate numeric labels
  507. if(!labels.length && this.count > 1){
  508. var start = this.minimum;
  509. var inc = (this.maximum - start) / (this.count-1);
  510. for(var i=0; i < this.count; i++){
  511. labels.push((i < this.numericMargin || i >= (this.count-this.numericMargin)) ? '' : number.format(start, this.constraints));
  512. start += inc;
  513. }
  514. }
  515. return labels;
  516. },
  517. postMixInProperties: function(){
  518. this.inherited(arguments);
  519. this.labels = this.getLabels();
  520. this.count = this.labels.length;
  521. }
  522. });
  523. });
  524. },
  525. 'dijit/dijit':function(){
  526. define("dijit/dijit", [
  527. ".",
  528. "./_base",
  529. "dojo/parser",
  530. "./_Widget",
  531. "./_TemplatedMixin",
  532. "./_Container",
  533. "./layout/_LayoutWidget",
  534. "./form/_FormWidget",
  535. "./form/_FormValueWidget"
  536. ], function(dijit){
  537. // module:
  538. // dijit/dijit
  539. // summary:
  540. // A roll-up for common dijit methods
  541. // All the stuff in _base (these are the function that are guaranteed available without an explicit dojo.require)
  542. // And some other stuff that we tend to pull in all the time anyway
  543. return dijit;
  544. });
  545. },
  546. 'dijit/form/HorizontalSlider':function(){
  547. require({cache:{
  548. 'url:dijit/form/templates/HorizontalSlider.html':"<table class=\"dijit dijitReset dijitSlider dijitSliderH\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" data-dojo-attach-event=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\trole=\"presentation\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td data-dojo-attach-point=\"topDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationT dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderDecrementIconH\" style=\"display:none\" data-dojo-attach-point=\"decrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderLeftBumper\" data-dojo-attach-event=\"press:_onClkDecBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><input data-dojo-attach-point=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><div class=\"dijitReset dijitSliderBarContainerH\" role=\"presentation\" data-dojo-attach-point=\"sliderBarContainer\"\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"progressBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderProgressBar dijitSliderProgressBarH\" data-dojo-attach-event=\"press:_onBarClick\"\n\t\t\t\t\t><div class=\"dijitSliderMoveable dijitSliderMoveableH\"\n\t\t\t\t\t\t><div data-dojo-attach-point=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleH\" data-dojo-attach-event=\"press:_onHandleClick\" role=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderRemainingBar dijitSliderRemainingBarH\" data-dojo-attach-event=\"press:_onBarClick\"></div\n\t\t\t></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderRightBumper\" data-dojo-attach-event=\"press:_onClkIncBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderIncrementIconH\" style=\"display:none\" data-dojo-attach-point=\"incrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td data-dojo-attach-point=\"containerNode,bottomDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationB dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n></table>\n"}});
  549. define("dijit/form/HorizontalSlider", [
  550. "dojo/_base/array", // array.forEach
  551. "dojo/_base/declare", // declare
  552. "dojo/dnd/move",
  553. "dojo/_base/event", // event.stop
  554. "dojo/_base/fx", // fx.animateProperty
  555. "dojo/dom-geometry", // domGeometry.position
  556. "dojo/dom-style", // domStyle.getComputedStyle
  557. "dojo/keys", // keys.DOWN_ARROW keys.END keys.HOME keys.LEFT_ARROW keys.PAGE_DOWN keys.PAGE_UP keys.RIGHT_ARROW keys.UP_ARROW
  558. "dojo/_base/lang", // lang.hitch
  559. "dojo/_base/sniff", // has("ie") has("mozilla")
  560. "dojo/dnd/Moveable", // Moveable
  561. "dojo/dnd/Mover", // Mover Mover.prototype.destroy.apply
  562. "dojo/query", // query
  563. "../registry", // registry.findWidgets
  564. "../focus", // focus.focus()
  565. "../typematic",
  566. "./Button",
  567. "./_FormValueWidget",
  568. "../_Container",
  569. "dojo/text!./templates/HorizontalSlider.html"
  570. ], function(array, declare, move, event, fx, domGeometry, domStyle, keys, lang, has, Moveable, Mover, query,
  571. registry, focus, typematic, Button, _FormValueWidget, _Container, template){
  572. /*=====
  573. var Button = dijit.form.Button;
  574. var _FormValueWidget = dijit.form._FormValueWidget;
  575. var _Container = dijit._Container;
  576. =====*/
  577. // module:
  578. // dijit/form/HorizontalSlider
  579. // summary:
  580. // A form widget that allows one to select a value with a horizontally draggable handle
  581. var _SliderMover = declare("dijit.form._SliderMover", Mover, {
  582. onMouseMove: function(e){
  583. var widget = this.widget;
  584. var abspos = widget._abspos;
  585. if(!abspos){
  586. abspos = widget._abspos = domGeometry.position(widget.sliderBarContainer, true);
  587. widget._setPixelValue_ = lang.hitch(widget, "_setPixelValue");
  588. widget._isReversed_ = widget._isReversed();
  589. }
  590. var pixelValue = e[widget._mousePixelCoord] - abspos[widget._startingPixelCoord];
  591. widget._setPixelValue_(widget._isReversed_ ? (abspos[widget._pixelCount]-pixelValue) : pixelValue, abspos[widget._pixelCount], false);
  592. },
  593. destroy: function(e){
  594. Mover.prototype.destroy.apply(this, arguments);
  595. var widget = this.widget;
  596. widget._abspos = null;
  597. widget._setValueAttr(widget.value, true);
  598. }
  599. });
  600. var HorizontalSlider = declare("dijit.form.HorizontalSlider", [_FormValueWidget, _Container], {
  601. // summary:
  602. // A form widget that allows one to select a value with a horizontally draggable handle
  603. templateString: template,
  604. // Overrides FormValueWidget.value to indicate numeric value
  605. value: 0,
  606. // showButtons: [const] Boolean
  607. // Show increment/decrement buttons at the ends of the slider?
  608. showButtons: true,
  609. // minimum:: [const] Integer
  610. // The minimum value the slider can be set to.
  611. minimum: 0,
  612. // maximum: [const] Integer
  613. // The maximum value the slider can be set to.
  614. maximum: 100,
  615. // discreteValues: Integer
  616. // If specified, indicates that the slider handle has only 'discreteValues' possible positions,
  617. // and that after dragging the handle, it will snap to the nearest possible position.
  618. // Thus, the slider has only 'discreteValues' possible values.
  619. //
  620. // For example, if minimum=10, maxiumum=30, and discreteValues=3, then the slider handle has
  621. // three possible positions, representing values 10, 20, or 30.
  622. //
  623. // If discreteValues is not specified or if it's value is higher than the number of pixels
  624. // in the slider bar, then the slider handle can be moved freely, and the slider's value will be
  625. // computed/reported based on pixel position (in this case it will likely be fractional,
  626. // such as 123.456789).
  627. discreteValues: Infinity,
  628. // pageIncrement: Integer
  629. // If discreteValues is also specified, this indicates the amount of clicks (ie, snap positions)
  630. // that the slider handle is moved via pageup/pagedown keys.
  631. // If discreteValues is not specified, it indicates the number of pixels.
  632. pageIncrement: 2,
  633. // clickSelect: Boolean
  634. // If clicking the slider bar changes the value or not
  635. clickSelect: true,
  636. // slideDuration: Number
  637. // The time in ms to take to animate the slider handle from 0% to 100%,
  638. // when clicking the slider bar to make the handle move.
  639. slideDuration: registry.defaultDuration,
  640. // Map widget attributes to DOMNode attributes.
  641. _setIdAttr: "", // Override _FormWidget which sends id to focusNode
  642. baseClass: "dijitSlider",
  643. // Apply CSS classes to up/down arrows and handle per mouse state
  644. cssStateNodes: {
  645. incrementButton: "dijitSliderIncrementButton",
  646. decrementButton: "dijitSliderDecrementButton",
  647. focusNode: "dijitSliderThumb"
  648. },
  649. _mousePixelCoord: "pageX",
  650. _pixelCount: "w",
  651. _startingPixelCoord: "x",
  652. _handleOffsetCoord: "left",
  653. _progressPixelSize: "width",
  654. _onKeyUp: function(/*Event*/ e){
  655. if(this.disabled || this.readOnly || e.altKey || e.ctrlKey || e.metaKey){ return; }
  656. this._setValueAttr(this.value, true);
  657. },
  658. _onKeyPress: function(/*Event*/ e){
  659. if(this.disabled || this.readOnly || e.altKey || e.ctrlKey || e.metaKey){ return; }
  660. switch(e.charOrCode){
  661. case keys.HOME:
  662. this._setValueAttr(this.minimum, false);
  663. break;
  664. case keys.END:
  665. this._setValueAttr(this.maximum, false);
  666. break;
  667. // this._descending === false: if ascending vertical (min on top)
  668. // (this._descending || this.isLeftToRight()): if left-to-right horizontal or descending vertical
  669. case ((this._descending || this.isLeftToRight()) ? keys.RIGHT_ARROW : keys.LEFT_ARROW):
  670. case (this._descending === false ? keys.DOWN_ARROW : keys.UP_ARROW):
  671. case (this._descending === false ? keys.PAGE_DOWN : keys.PAGE_UP):
  672. this.increment(e);
  673. break;
  674. case ((this._descending || this.isLeftToRight()) ? keys.LEFT_ARROW : keys.RIGHT_ARROW):
  675. case (this._descending === false ? keys.UP_ARROW : keys.DOWN_ARROW):
  676. case (this._descending === false ? keys.PAGE_UP : keys.PAGE_DOWN):
  677. this.decrement(e);
  678. break;
  679. default:
  680. return;
  681. }
  682. event.stop(e);
  683. },
  684. _onHandleClick: function(e){
  685. if(this.disabled || this.readOnly){ return; }
  686. if(!has("ie")){
  687. // make sure you get focus when dragging the handle
  688. // (but don't do on IE because it causes a flicker on mouse up (due to blur then focus)
  689. focus.focus(this.sliderHandle);
  690. }
  691. event.stop(e);
  692. },
  693. _isReversed: function(){
  694. // summary:
  695. // Returns true if direction is from right to left
  696. // tags:
  697. // protected extension
  698. return !this.isLeftToRight();
  699. },
  700. _onBarClick: function(e){
  701. if(this.disabled || this.readOnly || !this.clickSelect){ return; }
  702. focus.focus(this.sliderHandle);
  703. event.stop(e);
  704. var abspos = domGeometry.position(this.sliderBarContainer, true);
  705. var pixelValue = e[this._mousePixelCoord] - abspos[this._startingPixelCoord];
  706. this._setPixelValue(this._isReversed() ? (abspos[this._pixelCount] - pixelValue) : pixelValue, abspos[this._pixelCount], true);
  707. this._movable.onMouseDown(e);
  708. },
  709. _setPixelValue: function(/*Number*/ pixelValue, /*Number*/ maxPixels, /*Boolean?*/ priorityChange){
  710. if(this.disabled || this.readOnly){ return; }
  711. var count = this.discreteValues;
  712. if(count <= 1 || count == Infinity){ count = maxPixels; }
  713. count--;
  714. var pixelsPerValue = maxPixels / count;
  715. var wholeIncrements = Math.round(pixelValue / pixelsPerValue);
  716. this._setValueAttr(Math.max(Math.min((this.maximum-this.minimum)*wholeIncrements/count + this.minimum, this.maximum), this.minimum), priorityChange);
  717. },
  718. _setValueAttr: function(/*Number*/ value, /*Boolean?*/ priorityChange){
  719. // summary:
  720. // Hook so set('value', value) works.
  721. this._set("value", value);
  722. this.valueNode.value = value;
  723. this.focusNode.setAttribute("aria-valuenow", value);
  724. this.inherited(arguments);
  725. var percent = (value - this.minimum) / (this.maximum - this.minimum);
  726. var progressBar = (this._descending === false) ? this.remainingBar : this.progressBar;
  727. var remainingBar = (this._descending === false) ? this.progressBar : this.remainingBar;
  728. if(this._inProgressAnim && this._inProgressAnim.status != "stopped"){
  729. this._inProgressAnim.stop(true);
  730. }
  731. if(priorityChange && this.slideDuration > 0 && progressBar.style[this._progressPixelSize]){
  732. // animate the slider
  733. var _this = this;
  734. var props = {};
  735. var start = parseFloat(progressBar.style[this._progressPixelSize]);
  736. var duration = this.slideDuration * (percent-start/100);
  737. if(duration == 0){ return; }
  738. if(duration < 0){ duration = 0 - duration; }
  739. props[this._progressPixelSize] = { start: start, end: percent*100, units:"%" };
  740. this._inProgressAnim = fx.animateProperty({ node: progressBar, duration: duration,
  741. onAnimate: function(v){
  742. remainingBar.style[_this._progressPixelSize] = (100 - parseFloat(v[_this._progressPixelSize])) + "%";
  743. },
  744. onEnd: function(){
  745. delete _this._inProgressAnim;
  746. },
  747. properties: props
  748. });
  749. this._inProgressAnim.play();
  750. }else{
  751. progressBar.style[this._progressPixelSize] = (percent*100) + "%";
  752. remainingBar.style[this._progressPixelSize] = ((1-percent)*100) + "%";
  753. }
  754. },
  755. _bumpValue: function(signedChange, /*Boolean?*/ priorityChange){
  756. if(this.disabled || this.readOnly){ return; }
  757. var s = domStyle.getComputedStyle(this.sliderBarContainer);
  758. var c = domGeometry.getContentBox(this.sliderBarContainer, s);
  759. var count = this.discreteValues;
  760. if(count <= 1 || count == Infinity){ count = c[this._pixelCount]; }
  761. count--;
  762. var value = (this.value - this.minimum) * count / (this.maximum - this.minimum) + signedChange;
  763. if(value < 0){ value = 0; }
  764. if(value > count){ value = count; }
  765. value = value * (this.maximum - this.minimum) / count + this.minimum;
  766. this._setValueAttr(value, priorityChange);
  767. },
  768. _onClkBumper: function(val){
  769. if(this.disabled || this.readOnly || !this.clickSelect){ return; }
  770. this._setValueAttr(val, true);
  771. },
  772. _onClkIncBumper: function(){
  773. this._onClkBumper(this._descending === false ? this.minimum : this.maximum);
  774. },
  775. _onClkDecBumper: function(){
  776. this._onClkBumper(this._descending === false ? this.maximum : this.minimum);
  777. },
  778. decrement: function(/*Event*/ e){
  779. // summary:
  780. // Decrement slider
  781. // tags:
  782. // private
  783. this._bumpValue(e.charOrCode == keys.PAGE_DOWN ? -this.pageIncrement : -1);
  784. },
  785. increment: function(/*Event*/ e){
  786. // summary:
  787. // Increment slider
  788. // tags:
  789. // private
  790. this._bumpValue(e.charOrCode == keys.PAGE_UP ? this.pageIncrement : 1);
  791. },
  792. _mouseWheeled: function(/*Event*/ evt){
  793. // summary:
  794. // Event handler for mousewheel where supported
  795. event.stop(evt);
  796. var janky = !has("mozilla");
  797. var scroll = evt[(janky ? "wheelDelta" : "detail")] * (janky ? 1 : -1);
  798. this._bumpValue(scroll < 0 ? -1 : 1, true); // negative scroll acts like a decrement
  799. },
  800. startup: function(){
  801. if(this._started){ return; }
  802. array.forEach(this.getChildren(), function(child){
  803. if(this[child.container] != this.containerNode){
  804. this[child.container].appendChild(child.domNode);
  805. }
  806. }, this);
  807. this.inherited(arguments);
  808. },
  809. _typematicCallback: function(/*Number*/ count, /*Object*/ button, /*Event*/ e){
  810. if(count == -1){
  811. this._setValueAttr(this.value, true);
  812. }else{
  813. this[(button == (this._descending? this.incrementButton : this.decrementButton)) ? "decrement" : "increment"](e);
  814. }
  815. },
  816. buildRendering: function(){
  817. this.inherited(arguments);
  818. if(this.showButtons){
  819. this.incrementButton.style.display="";
  820. this.decrementButton.style.display="";
  821. }
  822. // find any associated label element and add to slider focusnode.
  823. var label = query('label[for="'+this.id+'"]');
  824. if(label.length){
  825. label[0].id = (this.id+"_label");
  826. this.focusNode.setAttribute("aria-labelledby", label[0].id);
  827. }
  828. this.focusNode.setAttribute("aria-valuemin", this.minimum);
  829. this.focusNode.setAttribute("aria-valuemax", this.maximum);
  830. },
  831. postCreate: function(){
  832. this.inherited(arguments);
  833. if(this.showButtons){
  834. this._connects.push(typematic.addMouseListener(
  835. this.decrementButton, this, "_typematicCallback", 25, 500));
  836. this._connects.push(typematic.addMouseListener(
  837. this.incrementButton, this, "_typematicCallback", 25, 500));
  838. }
  839. this.connect(this.domNode, !has("mozilla") ? "onmousewheel" : "DOMMouseScroll", "_mouseWheeled");
  840. // define a custom constructor for a SliderMover that points back to me
  841. var mover = declare(_SliderMover, {
  842. widget: this
  843. });
  844. this._movable = new Moveable(this.sliderHandle, {mover: mover});
  845. this._layoutHackIE7();
  846. },
  847. destroy: function(){
  848. this._movable.destroy();
  849. if(this._inProgressAnim && this._inProgressAnim.status != "stopped"){
  850. this._inProgressAnim.stop(true);
  851. }
  852. this._supportingWidgets = registry.findWidgets(this.domNode); // tells destroy about pseudo-child widgets (ruler/labels)
  853. this.inherited(arguments);
  854. }
  855. });
  856. HorizontalSlider._Mover = _SliderMover; // for monkey patching
  857. return HorizontalSlider;
  858. });
  859. },
  860. 'url:dijit/form/templates/HorizontalSlider.html':"<table class=\"dijit dijitReset dijitSlider dijitSliderH\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" data-dojo-attach-event=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\trole=\"presentation\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td data-dojo-attach-point=\"topDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationT dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderDecrementIconH\" style=\"display:none\" data-dojo-attach-point=\"decrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderLeftBumper\" data-dojo-attach-event=\"press:_onClkDecBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><input data-dojo-attach-point=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><div class=\"dijitReset dijitSliderBarContainerH\" role=\"presentation\" data-dojo-attach-point=\"sliderBarContainer\"\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"progressBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderProgressBar dijitSliderProgressBarH\" data-dojo-attach-event=\"press:_onBarClick\"\n\t\t\t\t\t><div class=\"dijitSliderMoveable dijitSliderMoveableH\"\n\t\t\t\t\t\t><div data-dojo-attach-point=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleH\" data-dojo-attach-event=\"press:_onHandleClick\" role=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t\t><div role=\"presentation\" data-dojo-attach-point=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderRemainingBar dijitSliderRemainingBarH\" data-dojo-attach-event=\"press:_onBarClick\"></div\n\t\t\t></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderRightBumper\" data-dojo-attach-event=\"press:_onClkIncBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderIncrementIconH\" style=\"display:none\" data-dojo-attach-point=\"incrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td data-dojo-attach-point=\"containerNode,bottomDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationB dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n></table>\n"}});
  861. define("dojo/buxFilter", [], 1);