|
|
@ -29,18 +29,19 @@ export default function generate ( parsed, source, options, names ) {
|
|
|
|
`${generator.current.target}.appendChild( ${renderStatement} );`
|
|
|
|
`${generator.current.target}.appendChild( ${renderStatement} );`
|
|
|
|
);
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if ( isToplevel ) {
|
|
|
|
if ( isToplevel ) {
|
|
|
|
generator.current.detachStatements.push( deindent`
|
|
|
|
generator.current.builders.detach.addLine(
|
|
|
|
${name}.parentNode.removeChild( ${name} );
|
|
|
|
`${name}.parentNode.removeChild( ${name} );`
|
|
|
|
` );
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
createMountStatement ( name ) {
|
|
|
|
createMountStatement ( name ) {
|
|
|
|
if ( generator.current.target === 'target' ) {
|
|
|
|
if ( generator.current.target === 'target' ) {
|
|
|
|
generator.current.mountStatements.push( deindent`
|
|
|
|
generator.current.builders.mount.addLine(
|
|
|
|
target.insertBefore( ${name}, anchor );
|
|
|
|
`target.insertBefore( ${name}, anchor );`
|
|
|
|
` );
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
generator.current.builders.init.addLine(
|
|
|
|
generator.current.builders.init.addLine(
|
|
|
|
`${generator.current.target}.appendChild( ${name} );` );
|
|
|
|
`${generator.current.target}.appendChild( ${name} );` );
|
|
|
@ -59,12 +60,6 @@ export default function generate ( parsed, source, options, names ) {
|
|
|
|
name,
|
|
|
|
name,
|
|
|
|
target: 'target',
|
|
|
|
target: 'target',
|
|
|
|
localElementDepth: 0,
|
|
|
|
localElementDepth: 0,
|
|
|
|
|
|
|
|
|
|
|
|
mountStatements: [],
|
|
|
|
|
|
|
|
updateStatements: [],
|
|
|
|
|
|
|
|
detachStatements: [],
|
|
|
|
|
|
|
|
teardownStatements: [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
builders: generator.getBuilders(),
|
|
|
|
builders: generator.getBuilders(),
|
|
|
|
getUniqueName: generator.getUniqueNameMaker()
|
|
|
|
getUniqueName: generator.getUniqueNameMaker()
|
|
|
|
});
|
|
|
|
});
|
|
|
@ -81,18 +76,13 @@ export default function generate ( parsed, source, options, names ) {
|
|
|
|
fragment.builders.init.addLine( `${fragment.autofocus}.focus();` );
|
|
|
|
fragment.builders.init.addLine( `${fragment.autofocus}.focus();` );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const detachStatements = fragment.detachStatements.join( '\n\n' );
|
|
|
|
if ( !fragment.builders.detach.isEmpty() ) {
|
|
|
|
const teardownStatements = fragment.teardownStatements.join( '\n\n' );
|
|
|
|
fragment.builders.teardown.addBlock( deindent`
|
|
|
|
|
|
|
|
|
|
|
|
const detachBlock = deindent`
|
|
|
|
|
|
|
|
if ( detach ) {
|
|
|
|
if ( detach ) {
|
|
|
|
${detachStatements}
|
|
|
|
${fragment.builders.detach}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
` );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
`;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const teardownBlock = deindent`
|
|
|
|
|
|
|
|
${teardownStatements}${detachStatements ? `\n\n${detachBlock}` : ``}
|
|
|
|
|
|
|
|
`;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
renderers.push( deindent`
|
|
|
|
renderers.push( deindent`
|
|
|
|
function ${fragment.name} ( ${fragment.params}, component ) {
|
|
|
|
function ${fragment.name} ( ${fragment.params}, component ) {
|
|
|
@ -100,15 +90,15 @@ export default function generate ( parsed, source, options, names ) {
|
|
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
mount: function ( target, anchor ) {
|
|
|
|
mount: function ( target, anchor ) {
|
|
|
|
${fragment.mountStatements.join( '\n\n' )}
|
|
|
|
${fragment.builders.mount}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
update: function ( changed, ${fragment.params} ) {
|
|
|
|
update: function ( changed, ${fragment.params} ) {
|
|
|
|
${fragment.updateStatements.join( '\n\n' )}
|
|
|
|
${fragment.builders.update}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
teardown: function ( detach ) {
|
|
|
|
teardown: function ( detach ) {
|
|
|
|
${teardownBlock}
|
|
|
|
${fragment.builders.teardown}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -304,11 +294,6 @@ export default function generate ( parsed, source, options, names ) {
|
|
|
|
elementDepth: 0,
|
|
|
|
elementDepth: 0,
|
|
|
|
localElementDepth: 0,
|
|
|
|
localElementDepth: 0,
|
|
|
|
|
|
|
|
|
|
|
|
mountStatements: [],
|
|
|
|
|
|
|
|
updateStatements: [],
|
|
|
|
|
|
|
|
detachStatements: [],
|
|
|
|
|
|
|
|
teardownStatements: [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
contexts: {},
|
|
|
|
contexts: {},
|
|
|
|
indexes: {},
|
|
|
|
indexes: {},
|
|
|
|
|
|
|
|
|
|
|
|