| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -34,7 +34,6 @@ export default class Block {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							intro: CodeBuilder;
 | 
					 | 
					 | 
					 | 
							intro: CodeBuilder;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							update: CodeBuilder;
 | 
					 | 
					 | 
					 | 
							update: CodeBuilder;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							outro: CodeBuilder;
 | 
					 | 
					 | 
					 | 
							outro: CodeBuilder;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							detachRaw: CodeBuilder;
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							destroy: CodeBuilder;
 | 
					 | 
					 | 
					 | 
							destroy: CodeBuilder;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						};
 | 
					 | 
					 | 
					 | 
						};
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -72,7 +71,6 @@ export default class Block {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								intro: new CodeBuilder(),
 | 
					 | 
					 | 
					 | 
								intro: new CodeBuilder(),
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								update: new CodeBuilder(),
 | 
					 | 
					 | 
					 | 
								update: new CodeBuilder(),
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								outro: new CodeBuilder(),
 | 
					 | 
					 | 
					 | 
								outro: new CodeBuilder(),
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								detachRaw: new CodeBuilder(),
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								destroy: new CodeBuilder(),
 | 
					 | 
					 | 
					 | 
								destroy: new CodeBuilder(),
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							};
 | 
					 | 
					 | 
					 | 
							};
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -101,7 +99,8 @@ export default class Block {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							name: string,
 | 
					 | 
					 | 
					 | 
							name: string,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							renderStatement: string,
 | 
					 | 
					 | 
					 | 
							renderStatement: string,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							claimStatement: string,
 | 
					 | 
					 | 
					 | 
							claimStatement: string,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							parentNode: string
 | 
					 | 
					 | 
					 | 
							parentNode: string,
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							noDetach?: boolean
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						) {
 | 
					 | 
					 | 
					 | 
						) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							this.addVariable(name);
 | 
					 | 
					 | 
					 | 
							this.addVariable(name);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							this.builders.create.addLine(`${name} = ${renderStatement};`);
 | 
					 | 
					 | 
					 | 
							this.builders.create.addLine(`${name} = ${renderStatement};`);
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -112,7 +111,7 @@ export default class Block {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								if (parentNode === 'document.head') this.builders.destroy.addLine(`@detachNode(${name});`);
 | 
					 | 
					 | 
					 | 
								if (parentNode === 'document.head') this.builders.destroy.addLine(`@detachNode(${name});`);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							} else {
 | 
					 | 
					 | 
					 | 
							} else {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								this.builders.mount.addLine(`@insertNode(${name}, #target, anchor);`);
 | 
					 | 
					 | 
					 | 
								this.builders.mount.addLine(`@insertNode(${name}, #target, anchor);`);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								this.builders.destroy.addConditional('detach', `@detachNode(${name});`);
 | 
					 | 
					 | 
					 | 
								if (!noDetach) this.builders.destroy.addConditional('detach', `@detachNode(${name});`);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}
 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -159,10 +158,6 @@ export default class Block {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								this.builders.mount.addLine(`${this.autofocus}.focus();`);
 | 
					 | 
					 | 
					 | 
								this.builders.mount.addLine(`${this.autofocus}.focus();`);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}
 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							// minor hack – we need to ensure that any {@html x} blocks are detached first
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							// (TODO: is this still necessary? or is there a neater approach?)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							this.builders.destroy.addBlockAtStart(this.builders.detachRaw.toString());
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							const properties = new CodeBuilder();
 | 
					 | 
					 | 
					 | 
							const properties = new CodeBuilder();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							let localKey;
 | 
					 | 
					 | 
					 | 
							let localKey;
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |