1 <html><head><title>Roo/bootstrap/MonthField.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
9 * @class Roo.bootstrap.MonthField
10 * @extends Roo.bootstrap.Input
11 * Bootstrap MonthField class
13 * @cfg {String} language default en
16 * Create a new MonthField
17 * @param {Object} config The config object
20 </span><span class="jsdoc-var">Roo.bootstrap.MonthField </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
21 </span><span class="jsdoc-var">Roo.bootstrap.MonthField.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
23 </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
24 </span><span class="jsdoc-comment">/**
26 * Fires when this field show.
27 * @param {Roo.bootstrap.MonthField} this
28 * @param {Mixed} date The date value
30 </span><span class="jsdoc-var">show </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
31 </span><span class="jsdoc-comment">/**
33 * Fires when this field hide.
34 * @param {Roo.bootstrap.MonthField} this
35 * @param {Mixed} date The date value
37 </span><span class="jsdoc-var">hide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
38 </span><span class="jsdoc-comment">/**
40 * Fires when select a date.
41 * @param {Roo.bootstrap.MonthField} this
42 * @param {String} oldvalue The old value
43 * @param {String} newvalue The new value
45 </span><span class="jsdoc-var">select </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
46 </span><span class="jsdoc-syntax">});
49 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.MonthField</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.bootstrap.Input</span><span class="jsdoc-syntax">, {
51 </span><span class="jsdoc-var">onRender</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">)
54 </span><span class="jsdoc-var">Roo.bootstrap.MonthField.superclass.onRender.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
56 </span><span class="jsdoc-var">this.language </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.language </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">'en'</span><span class="jsdoc-syntax">;
57 </span><span class="jsdoc-var">this.language </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.language </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">Roo.bootstrap.MonthField.dates </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.language </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.language.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'-'</span><span class="jsdoc-syntax">)[0];
58 </span><span class="jsdoc-var">this.language </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.language </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">Roo.bootstrap.MonthField.dates </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.language </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"en"</span><span class="jsdoc-syntax">;
60 </span><span class="jsdoc-var">this.isRTL </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.bootstrap.MonthField.dates</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.language</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.rtl </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
61 </span><span class="jsdoc-var">this.isInline </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
62 </span><span class="jsdoc-var">this.isInput </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
63 </span><span class="jsdoc-var">this.component </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.add-on'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">() || </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
64 </span><span class="jsdoc-var">this.component </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">this.component </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">this.component.length </span><span class="jsdoc-syntax">=== 0) ? </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.component</span><span class="jsdoc-syntax">;
65 </span><span class="jsdoc-var">this.hasInput </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.component </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">this.inputEL</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">;
67 </span><span class="jsdoc-var">this.pickerEl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.createChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.MonthField.template</span><span class="jsdoc-syntax">);
69 </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.setVisibilityMode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.Element.DISPLAY</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.originalDisplay </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'block'</span><span class="jsdoc-syntax">;
71 </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'mousedown'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onMousedown</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
72 </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'click'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
74 </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'datepicker-dropdown'</span><span class="jsdoc-syntax">);
76 </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'tbody > tr > td'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.elements</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">){
77 </span><span class="jsdoc-var">v.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'width'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'189px'</span><span class="jsdoc-syntax">);
80 </span><span class="jsdoc-var">this.fillMonths</span><span class="jsdoc-syntax">();
82 </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
84 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isInline</span><span class="jsdoc-syntax">) {
85 </span><span class="jsdoc-var">this.show</span><span class="jsdoc-syntax">();
90 </span><span class="jsdoc-var">setValue</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">suppressEvent</span><span class="jsdoc-syntax">)
92 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getValue</span><span class="jsdoc-syntax">();
94 </span><span class="jsdoc-var">Roo.bootstrap.MonthField.superclass.setValue.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">);
96 </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
98 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">suppressEvent </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
99 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'select'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">);
104 </span><span class="jsdoc-var">getValue</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
106 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">;
109 </span><span class="jsdoc-var">onClick</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
111 </span><span class="jsdoc-var">e.stopPropagation</span><span class="jsdoc-syntax">();
112 </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
114 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.getTarget</span><span class="jsdoc-syntax">();
116 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">target.nodeName.toLowerCase</span><span class="jsdoc-syntax">() === </span><span class="jsdoc-string">'i'</span><span class="jsdoc-syntax">){
117 </span><span class="jsdoc-var">target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.dom.parentNode</span><span class="jsdoc-syntax">;
120 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nodeName </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">target.nodeName</span><span class="jsdoc-syntax">;
121 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">target.className</span><span class="jsdoc-syntax">;
122 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">target.innerHTML</span><span class="jsdoc-syntax">;
124 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">nodeName.toLowerCase</span><span class="jsdoc-syntax">() != </span><span class="jsdoc-string">'span' </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">className.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'disabled'</span><span class="jsdoc-syntax">) > -1 || </span><span class="jsdoc-var">className.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'month'</span><span class="jsdoc-syntax">) == -1){
125 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
128 </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.bootstrap.MonthField.dates</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.language</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.monthsShort.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">);
130 </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.MonthField.dates</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.language</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.months</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.vIndex</span><span class="jsdoc-syntax">]);
132 </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
136 </span><span class="jsdoc-var">picker </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
138 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.pickerEl</span><span class="jsdoc-syntax">;
141 </span><span class="jsdoc-var">fillMonths</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
143 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0;
144 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">months </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'>.datepicker-months td'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">();
146 </span><span class="jsdoc-var">months.dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
148 </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< 12) {
149 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">month </span><span class="jsdoc-syntax">= {
150 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'span'</span><span class="jsdoc-syntax">,
151 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'month'</span><span class="jsdoc-syntax">,
152 </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.bootstrap.MonthField.dates</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.language</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.monthsShort</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++]
155 </span><span class="jsdoc-var">months.createChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">month</span><span class="jsdoc-syntax">);
160 </span><span class="jsdoc-var">update</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
162 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">_this </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
164 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vIndex</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">this.value.length</span><span class="jsdoc-syntax">){
165 </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.bootstrap.MonthField.dates</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.language</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.months.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">);
168 </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.pickerEl.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'> .datepicker-months tbody > tr > td > span'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.elements</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">){
169 </span><span class="jsdoc-var">e.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'active'</span><span class="jsdoc-syntax">);
171 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_this.vIndex</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">k </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">_this.vIndex</span><span class="jsdoc-syntax">){
172 </span><span class="jsdoc-var">e.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'active'</span><span class="jsdoc-syntax">);
177 </span><span class="jsdoc-var">place</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
179 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isInline</span><span class="jsdoc-syntax">) {
180 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
183 </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.removeClass</span><span class="jsdoc-syntax">([</span><span class="jsdoc-string">'bottom'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'top'</span><span class="jsdoc-syntax">]);
185 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">Roo.lib.Dom.getViewHeight</span><span class="jsdoc-syntax">() + </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.getScroll</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.top</span><span class="jsdoc-syntax">) - (</span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getBottom</span><span class="jsdoc-syntax">() + </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getHeight</span><span class="jsdoc-syntax">()) < 0){
186 </span><span class="jsdoc-comment">/*
187 * place to the top of element!
191 </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'top'</span><span class="jsdoc-syntax">);
192 </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.setTop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getTop</span><span class="jsdoc-syntax">() - </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getHeight</span><span class="jsdoc-syntax">())</span><span class="jsdoc-var">.setLeft</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getLeft</span><span class="jsdoc-syntax">());
194 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
197 </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'bottom'</span><span class="jsdoc-syntax">);
199 </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.setTop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getBottom</span><span class="jsdoc-syntax">())</span><span class="jsdoc-var">.setLeft</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getLeft</span><span class="jsdoc-syntax">());
202 </span><span class="jsdoc-var">onFocus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
204 </span><span class="jsdoc-var">Roo.bootstrap.MonthField.superclass.onFocus.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
205 </span><span class="jsdoc-var">this.show</span><span class="jsdoc-syntax">();
208 </span><span class="jsdoc-var">onBlur </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
210 </span><span class="jsdoc-var">Roo.bootstrap.MonthField.superclass.onBlur.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
212 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getValue</span><span class="jsdoc-syntax">();
214 </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">);
216 </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
219 </span><span class="jsdoc-var">show </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
221 </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.show</span><span class="jsdoc-syntax">();
222 </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'>.datepicker-months'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.show</span><span class="jsdoc-syntax">();
223 </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
224 </span><span class="jsdoc-var">this.place</span><span class="jsdoc-syntax">();
226 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'show'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">);
229 </span><span class="jsdoc-var">hide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
231 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isInline</span><span class="jsdoc-syntax">) {
232 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
234 </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.hide</span><span class="jsdoc-syntax">();
235 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'hide'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.date</span><span class="jsdoc-syntax">);
239 </span><span class="jsdoc-var">onMousedown</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
241 </span><span class="jsdoc-var">e.stopPropagation</span><span class="jsdoc-syntax">();
242 </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
245 </span><span class="jsdoc-var">keyup</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
247 </span><span class="jsdoc-var">Roo.bootstrap.MonthField.superclass.keyup.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
248 </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
251 </span><span class="jsdoc-var">fireKey</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
253 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.isVisible</span><span class="jsdoc-syntax">()){
254 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.keyCode </span><span class="jsdoc-syntax">== 27) {</span><span class="jsdoc-comment">// allow escape to hide and re-show picker
255 </span><span class="jsdoc-var">this.show</span><span class="jsdoc-syntax">();
257 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
260 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">;
262 </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.keyCode</span><span class="jsdoc-syntax">){
263 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">27: </span><span class="jsdoc-comment">// escape
264 </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
265 </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
266 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
267 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">37: </span><span class="jsdoc-comment">// left
268 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">39: </span><span class="jsdoc-comment">// right
269 </span><span class="jsdoc-var">dir </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.keyCode </span><span class="jsdoc-syntax">== 37 ? -1 : 1;
271 </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">;
273 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">< 0){
274 </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">= 0;
277 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">> 11){
278 </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">= 11;
281 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isNaN</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vIndex</span><span class="jsdoc-syntax">)){
282 </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">= 0;
285 </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.MonthField.dates</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.language</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.months</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.vIndex</span><span class="jsdoc-syntax">]);
287 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
288 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">38: </span><span class="jsdoc-comment">// up
289 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">40: </span><span class="jsdoc-comment">// down
291 </span><span class="jsdoc-var">dir </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.keyCode </span><span class="jsdoc-syntax">== 38 ? -1 : 1;
293 </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">dir </span><span class="jsdoc-syntax">* 4;
295 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">< 0){
296 </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">= 0;
299 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">> 11){
300 </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">= 11;
303 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isNaN</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vIndex</span><span class="jsdoc-syntax">)){
304 </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">= 0;
307 </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.MonthField.dates</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.language</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.months</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.vIndex</span><span class="jsdoc-syntax">]);
308 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
310 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">13: </span><span class="jsdoc-comment">// enter
312 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vIndex</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">&& !</span><span class="jsdoc-var">isNaN</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vIndex</span><span class="jsdoc-syntax">)){
313 </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.MonthField.dates</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.language</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.months</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.vIndex</span><span class="jsdoc-syntax">]);
316 </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
317 </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
318 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
319 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">9: </span><span class="jsdoc-comment">// tab
320 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vIndex</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">&& !</span><span class="jsdoc-var">isNaN</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vIndex</span><span class="jsdoc-syntax">)){
321 </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.MonthField.dates</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.language</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.months</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.vIndex</span><span class="jsdoc-syntax">]);
323 </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
324 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
325 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">16: </span><span class="jsdoc-comment">// shift
326 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">17: </span><span class="jsdoc-comment">// ctrl
327 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">18: </span><span class="jsdoc-comment">// alt
328 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
329 </span><span class="jsdoc-keyword">default </span><span class="jsdoc-syntax">:
330 </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
335 </span><span class="jsdoc-var">remove</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
337 </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.remove</span><span class="jsdoc-syntax">();
342 </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.MonthField</span><span class="jsdoc-syntax">, {
344 </span><span class="jsdoc-var">content </span><span class="jsdoc-syntax">: {
345 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tbody'</span><span class="jsdoc-syntax">,
346 </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
348 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tr'</span><span class="jsdoc-syntax">,
349 </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
351 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'td'</span><span class="jsdoc-syntax">,
352 </span><span class="jsdoc-var">colspan</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'7'
353 </span><span class="jsdoc-syntax">}
359 </span><span class="jsdoc-var">dates</span><span class="jsdoc-syntax">:{
360 </span><span class="jsdoc-var">en</span><span class="jsdoc-syntax">: {
361 </span><span class="jsdoc-var">months</span><span class="jsdoc-syntax">: [</span><span class="jsdoc-string">"January"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"February"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"March"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"April"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"May"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"June"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"July"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"August"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"September"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"October"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"November"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"December"</span><span class="jsdoc-syntax">],
362 </span><span class="jsdoc-var">monthsShort</span><span class="jsdoc-syntax">: [</span><span class="jsdoc-string">"Jan"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"Feb"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"Mar"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"Apr"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"May"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"Jun"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"Jul"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"Aug"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"Sep"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"Oct"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"Nov"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"Dec"</span><span class="jsdoc-syntax">]
367 </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.MonthField</span><span class="jsdoc-syntax">, {
369 </span><span class="jsdoc-var">template </span><span class="jsdoc-syntax">: {
370 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
371 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'datepicker dropdown-menu roo-dynamic'</span><span class="jsdoc-syntax">,
372 </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
374 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
375 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'datepicker-months'</span><span class="jsdoc-syntax">,
376 </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
378 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table'</span><span class="jsdoc-syntax">,
379 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table-condensed'</span><span class="jsdoc-syntax">,
380 </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">:[
381 </span><span class="jsdoc-var">Roo.bootstrap.DateField.content
382 </span><span class="jsdoc-syntax">]
393 </span></code></body></html>