|
|
@ -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;
|
|
|
|