|
11 | 11 | }(this,function(){
|
12 | 12 | "use strict";
|
13 | 13 |
|
| 14 | +varindexOf=[].indexOf||function(item){for(vari=0,l=this.length;i<l;i++){if(iinthis&&this[i]===item)returni;}return-1;}; |
| 15 | + |
14 | 16 | functionmakePrefixer(prefix){
|
15 | 17 | returnfunction(name){
|
16 | 18 | returnprefix+"-"+name;
|
|
114 | 116 |
|
115 | 117 | function_format(data,options,parentKey){
|
116 | 118 |
|
117 |
| -varresult,container,key,keyNode,valNode,len,childs,tr, |
| 119 | +varresult,container,key,keyNode,valNode,len,childs,tr,value, |
118 | 120 | isEmpty=true,
|
119 | 121 | accum=[],
|
120 | 122 | type=getType(data);
|
121 | 123 |
|
122 |
| -varindexOf=[].indexOf||function(item){for(vari=0,l=this.length;i<l;i++){if(iinthis&&this[i]===item)returni;}return-1;}; |
| 124 | +// Initialized & used only in case of objects & arrays |
| 125 | +varhyperlinksEnabled,aTarget,hyperlinkKeys; |
123 | 126 |
|
124 | 127 | switch(type){
|
125 | 128 | caseBOOL:
|
|
141 | 144 | break;
|
142 | 145 | caseOBJECT:
|
143 | 146 | childs=[];
|
| 147 | + |
| 148 | +aTarget=options.hyperlinks.target; |
| 149 | +hyperlinkKeys=options.hyperlinks.keys; |
| 150 | + |
| 151 | +// Is Hyperlink Key |
| 152 | +hyperlinksEnabled= |
| 153 | +options.hyperlinks.enable&& |
| 154 | +hyperlinkKeys&& |
| 155 | +hyperlinkKeys.length>0; |
| 156 | + |
144 | 157 | for(keyindata){
|
145 | 158 | isEmpty=false;
|
146 | 159 |
|
147 |
| -valNode=_format(data[key],options,key); |
| 160 | +value=data[key]; |
| 161 | + |
| 162 | +valNode=_format(value,options,key); |
148 | 163 | keyNode=sn("th",OBJ_KEY_CLASS_NAME,key);
|
149 | 164 |
|
150 |
| -// Is Hyperlink Key |
151 |
| -if(options.hyperlinks.enable&& |
152 |
| -options.hyperlinks.keys&& |
153 |
| -options.hyperlinks.keys.length>0&& |
154 |
| -typeof(data[key])==='string'&& |
155 |
| -indexOf.call(options.hyperlinks.keys,key)>=0){ |
| 165 | +if(hyperlinksEnabled&& |
| 166 | +typeof(value)==='string'&& |
| 167 | +indexOf.call(hyperlinkKeys,key)>=0){ |
156 | 168 |
|
157 |
| -valNode=scn("td",OBJ_VAL_CLASS_NAME,linkNode(valNode,data[key],options.hyperlinks.target)); |
| 169 | +valNode=scn("td",OBJ_VAL_CLASS_NAME,linkNode(valNode,value,aTarget)); |
158 | 170 | }else{
|
159 | 171 | valNode=scn("td",OBJ_VAL_CLASS_NAME,valNode);
|
160 | 172 | }
|
|
178 | 190 | caseARRAY:
|
179 | 191 | if(data.length>0){
|
180 | 192 | childs=[];
|
| 193 | +varshowArrayIndices=options.showArrayIndex; |
| 194 | + |
| 195 | +aTarget=options.hyperlinks.target; |
| 196 | +hyperlinkKeys=options.hyperlinks.keys; |
181 | 197 |
|
182 | 198 | // Hyperlink of arrays?
|
183 |
| -varhyperlinks=parentKey&&options.hyperlinks.enable&& |
184 |
| -options.hyperlinks.keys&& |
185 |
| -options.hyperlinks.keys.length>0&& |
186 |
| -indexOf.call(options.hyperlinks.keys,parentKey)>=0; |
| 199 | +hyperlinksEnabled=parentKey&&options.hyperlinks.enable&& |
| 200 | +hyperlinkKeys&& |
| 201 | +hyperlinkKeys.length>0&& |
| 202 | +indexOf.call(hyperlinkKeys,parentKey)>=0; |
187 | 203 |
|
188 | 204 | for(key=0,len=data.length;key<len;key+=1){
|
189 | 205 |
|
190 | 206 | keyNode=sn("th",ARRAY_KEY_CLASS_NAME,key);
|
191 |
| -if(hyperlinks&&typeof(data[key])==="string"){ |
192 |
| -valNode=_format(data[key],options,key); |
193 |
| -valNode=scn("td",ARRAY_VAL_CLASS_NAME,linkNode(valNode,data[key],options.hyperlinks.target)); |
| 207 | +value=data[key]; |
| 208 | + |
| 209 | +if(hyperlinksEnabled&&typeof(value)==="string"){ |
| 210 | +valNode=_format(value,options,key); |
| 211 | +valNode=scn("td",ARRAY_VAL_CLASS_NAME,linkNode(valNode,value,aTarget)); |
194 | 212 | }else{
|
195 |
| -valNode=scn("td",ARRAY_VAL_CLASS_NAME,_format(data[key],options,key)); |
| 213 | +valNode=scn("td",ARRAY_VAL_CLASS_NAME,_format(value,options,key)); |
196 | 214 | }
|
197 | 215 |
|
198 | 216 | tr=document.createElement("tr");
|
199 | 217 |
|
200 |
| -if(options.showArrayIndex){ |
| 218 | +if(showArrayIndices){ |
201 | 219 | tr.appendChild(keyNode);
|
202 | 220 | }
|
203 | 221 | tr.appendChild(valNode);
|
|
241 | 259 |
|
242 | 260 |
|
243 | 261 | functionvalidateArrayIndexOption(options){
|
244 |
| -if(options['showArrayIndex']===undefined){ |
| 262 | +if(options.showArrayIndex===undefined){ |
245 | 263 | options.showArrayIndex=true;
|
246 | 264 | }else{
|
247 | 265 | // Force to boolean just in case
|
|