docs/default.css
[roojs1] / docs / symbols / src / Roo_bootstrap_MonthField.js.html
1 <html><head><title>../roojs1/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">/*
2  * - LGPL
3  *
4  * MonthField
5  * 
6  */
7
8 /**
9  * @class Roo.bootstrap.MonthField
10  * @extends Roo.bootstrap.Input
11  * Bootstrap MonthField class
12  * 
13  * @cfg {String} language default en
14  * 
15  * @constructor
16  * Create a new MonthField
17  * @param {Object} config The config object
18  */
19
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">);
22     
23     </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
24         </span><span class="jsdoc-comment">/**
25          * @event show
26          * Fires when this field show.
27          * @param {Roo.bootstrap.MonthField} this
28          * @param {Mixed} date The date value
29          */
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">/**
32          * @event show
33          * Fires when this field hide.
34          * @param {Roo.bootstrap.MonthField} this
35          * @param {Mixed} date The date value
36          */
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">/**
39          * @event select
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
44          */
45         </span><span class="jsdoc-var">select </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
46     </span><span class="jsdoc-syntax">});
47 };
48
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">,  {
50     
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">)
52     {
53         
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">);
55         
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">&quot;en&quot;</span><span class="jsdoc-syntax">;
59         
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">&amp;&amp; </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">&amp;&amp; </span><span class="jsdoc-var">this.inputEL</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">;
66         
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">);
68         
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">;
70         
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">);
73         
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">);
75         
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 &gt; tr &gt; 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">);
78         });
79         
80         </span><span class="jsdoc-var">this.fillMonths</span><span class="jsdoc-syntax">();
81         
82         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
83         
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">();
86         }
87         
88     },
89     
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">)
91     {   
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">();
93         
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">);
95         
96         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
97
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">);
100         }
101         
102     },
103     
104     </span><span class="jsdoc-var">getValue</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
105     {
106         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">;
107     },
108     
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">) 
110     {
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">();
113         
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">();
115         
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">;
118         }
119         
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">;
123         
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">) &gt; -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">;
126         }
127         
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">);
129         
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">]);
131         
132         </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
133                         
134     },
135     
136     </span><span class="jsdoc-var">picker </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
137     {
138         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.pickerEl</span><span class="jsdoc-syntax">;
139     },
140     
141     </span><span class="jsdoc-var">fillMonths</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
142     {    
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">'&gt;.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">();
145         
146         </span><span class="jsdoc-var">months.dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
147         
148         </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; 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">++]
153             };
154             
155             </span><span class="jsdoc-var">months.createChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">month</span><span class="jsdoc-syntax">);
156         }
157         
158     },
159     
160     </span><span class="jsdoc-var">update</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
161     {
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">;
163         
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">&amp;&amp; </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">);
166         }
167         
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">'&gt; .datepicker-months tbody &gt; tr &gt; td &gt; 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">);
170             
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">&amp;&amp; </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">);
173             }
174         })
175     },
176     
177     </span><span class="jsdoc-var">place</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
178     {
179         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isInline</span><span class="jsdoc-syntax">) </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
180         
181         </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">]);
182         
183         </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">()) &lt; 0){
184             </span><span class="jsdoc-comment">/*
185              * place to the top of element!
186              *
187              */
188             
189             </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">);
190             </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">());
191             
192             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
193         }
194         
195         </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">);
196         
197         </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">());
198     },
199     
200     </span><span class="jsdoc-var">onFocus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
201     {
202         </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">);
203         </span><span class="jsdoc-var">this.show</span><span class="jsdoc-syntax">();
204     },
205     
206     </span><span class="jsdoc-var">onBlur </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
207     {
208         </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">);
209         
210         </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">();
211         
212         </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">);
213                 
214         </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
215     },
216     
217     </span><span class="jsdoc-var">show </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
218     {
219         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.show</span><span class="jsdoc-syntax">();
220         </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">'&gt;.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">();
221         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
222         </span><span class="jsdoc-var">this.place</span><span class="jsdoc-syntax">();
223         
224         </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">);
225     },
226     
227     </span><span class="jsdoc-var">hide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
228     {
229         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isInline</span><span class="jsdoc-syntax">) </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
230         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.hide</span><span class="jsdoc-syntax">();
231         </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">);
232         
233     },
234     
235     </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">)
236     {
237         </span><span class="jsdoc-var">e.stopPropagation</span><span class="jsdoc-syntax">();
238         </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
239     },
240     
241     </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">)
242     {
243         </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">);
244         </span><span class="jsdoc-var">this.update</span><span class="jsdoc-syntax">();
245     },
246
247     </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">)
248     {
249         </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">()){
250             </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
251                 </span><span class="jsdoc-var">this.show</span><span class="jsdoc-syntax">();
252             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
253         }
254         
255         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">;
256         
257         </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.keyCode</span><span class="jsdoc-syntax">){
258             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">27: </span><span class="jsdoc-comment">// escape
259                 </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
260                 </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
261                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
262             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">37: </span><span class="jsdoc-comment">// left
263             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">39: </span><span class="jsdoc-comment">// right
264                 </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;
265                 
266                 </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">;
267                 
268                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">&lt; 0){
269                     </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">= 0;
270                 }
271                 
272                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">&gt; 11){
273                     </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">= 11;
274                 }
275                 
276                 </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">)){
277                     </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">= 0;
278                 }
279                 
280                 </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">]);
281                 
282                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
283             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">38: </span><span class="jsdoc-comment">// up
284             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">40: </span><span class="jsdoc-comment">// down
285                 
286                 </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;
287                 
288                 </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;
289                 
290                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">&lt; 0){
291                     </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">= 0;
292                 }
293                 
294                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">&gt; 11){
295                     </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">= 11;
296                 }
297                 
298                 </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">)){
299                     </span><span class="jsdoc-var">this.vIndex </span><span class="jsdoc-syntax">= 0;
300                 }
301                 
302                 </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">]);
303                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
304                 
305             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">13: </span><span class="jsdoc-comment">// enter
306                 
307                 </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">&amp;&amp; !</span><span class="jsdoc-var">isNaN</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vIndex</span><span class="jsdoc-syntax">)){
308                     </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">]);
309                 }
310                 
311                 </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
312                 </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
313                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
314             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">9: </span><span class="jsdoc-comment">// tab
315                 </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">&amp;&amp; !</span><span class="jsdoc-var">isNaN</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.vIndex</span><span class="jsdoc-syntax">)){
316                     </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">]);
317                 }
318                 </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
319                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
320             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">16: </span><span class="jsdoc-comment">// shift
321             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">17: </span><span class="jsdoc-comment">// ctrl
322             </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">18: </span><span class="jsdoc-comment">// alt
323                 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
324             </span><span class="jsdoc-keyword">default </span><span class="jsdoc-syntax">:
325                 </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
326                 
327         }
328     },
329     
330     </span><span class="jsdoc-var">remove</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() 
331     {
332         </span><span class="jsdoc-var">this.picker</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.remove</span><span class="jsdoc-syntax">();
333     }
334    
335 });
336
337 </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">,  {
338     
339     </span><span class="jsdoc-var">content </span><span class="jsdoc-syntax">: {
340         </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tbody'</span><span class="jsdoc-syntax">,
341         </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
342         {
343             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tr'</span><span class="jsdoc-syntax">,
344             </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
345             {
346                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'td'</span><span class="jsdoc-syntax">,
347                 </span><span class="jsdoc-var">colspan</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'7'
348             </span><span class="jsdoc-syntax">}
349             ]
350         }
351         ]
352     },
353     
354     </span><span class="jsdoc-var">dates</span><span class="jsdoc-syntax">:{
355         </span><span class="jsdoc-var">en</span><span class="jsdoc-syntax">: {
356             </span><span class="jsdoc-var">months</span><span class="jsdoc-syntax">: [</span><span class="jsdoc-string">&quot;January&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;February&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;March&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;April&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;May&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;June&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;July&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;August&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;September&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;October&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;November&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;December&quot;</span><span class="jsdoc-syntax">],
357             </span><span class="jsdoc-var">monthsShort</span><span class="jsdoc-syntax">: [</span><span class="jsdoc-string">&quot;Jan&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Feb&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Mar&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Apr&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;May&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Jun&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Jul&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Aug&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Sep&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Oct&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Nov&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Dec&quot;</span><span class="jsdoc-syntax">]
358         }
359     }
360 });
361
362 </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">,  {
363   
364     </span><span class="jsdoc-var">template </span><span class="jsdoc-syntax">: {
365         </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
366         </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">,
367         </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
368             {
369                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
370                 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'datepicker-months'</span><span class="jsdoc-syntax">,
371                 </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [
372                 {
373                     </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table'</span><span class="jsdoc-syntax">,
374                     </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table-condensed'</span><span class="jsdoc-syntax">,
375                     </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">:[
376                         </span><span class="jsdoc-var">Roo.bootstrap.DateField.content
377                     </span><span class="jsdoc-syntax">]
378                 }
379                 ]
380             }
381         ]
382     }
383 });
384
385  
386
387  
388  </span></code></body></html>