| 
									
										
										
										
											2017-08-19 23:06:34 +00:00
										 |  |  | /* 18.14 Supplementary Workbook Data */ | 
					
						
							| 
									
										
										
										
											2019-11-01 03:09:14 +00:00
										 |  |  | function parse_xlink_xml(/*::data, rel, name:string, _opts*/) { | 
					
						
							| 
									
										
										
										
											2018-01-23 09:07:51 +00:00
										 |  |  | 	//var opts = _opts || {};
 | 
					
						
							| 
									
										
										
										
											2017-08-19 23:06:34 +00:00
										 |  |  | 	//if(opts.WTF) throw "XLSX External Link";
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* [MS-XLSB] 2.1.7.25 External Link */ | 
					
						
							| 
									
										
										
										
											2019-11-01 03:09:14 +00:00
										 |  |  | function parse_xlink_bin(data, rel, name/*:string*/, _opts) { | 
					
						
							| 
									
										
										
										
											2017-08-19 23:06:34 +00:00
										 |  |  | 	if(!data) return data; | 
					
						
							|  |  |  | 	var opts = _opts || {}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	var pass = false, end = false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	recordhopper(data, function xlink_parse(val, R_n, RT) { | 
					
						
							|  |  |  | 		if(end) return; | 
					
						
							|  |  |  | 		switch(RT) { | 
					
						
							|  |  |  | 			case 0x0167: /* 'BrtSupTabs' */ | 
					
						
							|  |  |  | 			case 0x016B: /* 'BrtExternTableStart' */ | 
					
						
							|  |  |  | 			case 0x016C: /* 'BrtExternTableEnd' */ | 
					
						
							|  |  |  | 			case 0x016E: /* 'BrtExternRowHdr' */ | 
					
						
							|  |  |  | 			case 0x016F: /* 'BrtExternCellBlank' */ | 
					
						
							|  |  |  | 			case 0x0170: /* 'BrtExternCellReal' */ | 
					
						
							|  |  |  | 			case 0x0171: /* 'BrtExternCellBool' */ | 
					
						
							|  |  |  | 			case 0x0172: /* 'BrtExternCellError' */ | 
					
						
							|  |  |  | 			case 0x0173: /* 'BrtExternCellString' */ | 
					
						
							|  |  |  | 			case 0x01D8: /* 'BrtExternValueMeta' */ | 
					
						
							|  |  |  | 			case 0x0241: /* 'BrtSupNameStart' */ | 
					
						
							|  |  |  | 			case 0x0242: /* 'BrtSupNameValueStart' */ | 
					
						
							|  |  |  | 			case 0x0243: /* 'BrtSupNameValueEnd' */ | 
					
						
							|  |  |  | 			case 0x0244: /* 'BrtSupNameNum' */ | 
					
						
							|  |  |  | 			case 0x0245: /* 'BrtSupNameErr' */ | 
					
						
							|  |  |  | 			case 0x0246: /* 'BrtSupNameSt' */ | 
					
						
							|  |  |  | 			case 0x0247: /* 'BrtSupNameNil' */ | 
					
						
							|  |  |  | 			case 0x0248: /* 'BrtSupNameBool' */ | 
					
						
							|  |  |  | 			case 0x0249: /* 'BrtSupNameFmla' */ | 
					
						
							|  |  |  | 			case 0x024A: /* 'BrtSupNameBits' */ | 
					
						
							|  |  |  | 			case 0x024B: /* 'BrtSupNameEnd' */ | 
					
						
							|  |  |  | 				break; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			case 0x0023: /* 'BrtFRTBegin' */ | 
					
						
							|  |  |  | 				pass = true; break; | 
					
						
							|  |  |  | 			case 0x0024: /* 'BrtFRTEnd' */ | 
					
						
							|  |  |  | 				pass = false; break; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			default: | 
					
						
							|  |  |  | 				if((R_n||"").indexOf("Begin") > 0){/* empty */} | 
					
						
							|  |  |  | 				else if((R_n||"").indexOf("End") > 0){/* empty */} | 
					
						
							|  |  |  | 				else if(!pass || opts.WTF) throw new Error("Unexpected record " + RT.toString(16) + " " + R_n); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	}, opts); | 
					
						
							|  |  |  | } |