|
|
|
@ -138,6 +138,28 @@ export default function visitBinding(
|
|
|
|
|
|
|
|
|
|
updateConditions = [`${last} !== (${last} = ${snippet})`];
|
|
|
|
|
updateElement = `${state.parentNode}[${last} ? "pause" : "play"]();`;
|
|
|
|
|
} else if (attribute.name === 'buffered') {
|
|
|
|
|
const frame = block.getUniqueName(`${state.parentNode}_animationframe`);
|
|
|
|
|
block.addVariable(frame);
|
|
|
|
|
setter = deindent`
|
|
|
|
|
cancelAnimationFrame(${frame});
|
|
|
|
|
${frame} = requestAnimationFrame(${handler});
|
|
|
|
|
${setter}
|
|
|
|
|
`;
|
|
|
|
|
|
|
|
|
|
updateConditions.push(`${snippet}.start`);
|
|
|
|
|
readOnly = true;
|
|
|
|
|
} else if (attribute.name === 'seekable' || attribute.name === 'played') {
|
|
|
|
|
const frame = block.getUniqueName(`${state.parentNode}_animationframe`);
|
|
|
|
|
block.addVariable(frame);
|
|
|
|
|
setter = deindent`
|
|
|
|
|
cancelAnimationFrame(${frame});
|
|
|
|
|
if (!${state.parentNode}.paused) ${frame} = requestAnimationFrame(${handler});
|
|
|
|
|
${setter}
|
|
|
|
|
`;
|
|
|
|
|
|
|
|
|
|
updateConditions.push(`${snippet}.start`);
|
|
|
|
|
readOnly = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -213,6 +235,9 @@ function getBindingEventName(node: Node, attribute: Node) {
|
|
|
|
|
if (attribute.name === 'currentTime') return 'timeupdate';
|
|
|
|
|
if (attribute.name === 'duration') return 'durationchange';
|
|
|
|
|
if (attribute.name === 'paused') return 'pause';
|
|
|
|
|
if (attribute.name === 'buffered') return 'progress';
|
|
|
|
|
if (attribute.name === 'seekable') return 'timeupdate';
|
|
|
|
|
if (attribute.name === 'played') return 'timeupdate';
|
|
|
|
|
|
|
|
|
|
return 'change';
|
|
|
|
|
}
|
|
|
|
@ -317,4 +342,4 @@ function isComputed(node: Node) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|