11<script lang="ts" setup>
22import { Fireworks } from ' fireworks-js'
3- import type { FireworksOptions } from ' fireworks-js'
4- import { PropType , defineExpose , onMounted , onUnmounted , ref } from ' vue'
3+ import type { FireworksHandlers , FireworksOptions } from ' fireworks-js'
4+ import { defineExpose , onMounted , onUnmounted , ref } from ' vue'
5+ import type { PropType } from ' vue'
56
67const props = defineProps ({
78 autostart: {
@@ -14,8 +15,8 @@ const props = defineProps({
1415 }
1516})
1617
17- const fireworks = ref <Fireworks >()
1818const container = ref <HTMLDivElement >()
19+ const fireworks = ref <Fireworks >()
1920
2021onMounted (() => {
2122 fireworks .value = new Fireworks (container .value ! , props .options )
@@ -28,9 +29,34 @@ onUnmounted(() => {
2829 fireworks .value ! .stop ()
2930})
3031
31- defineExpose ({
32- fireworks ,
33- container
32+ defineExpose <FireworksHandlers >({
33+ get isRunning() {
34+ return fireworks .value ! .isRunning
35+ },
36+ start() {
37+ fireworks .value ! .start ()
38+ },
39+ stop() {
40+ fireworks .value ! .stop ()
41+ },
42+ async waitStop() {
43+ await fireworks .value ! .waitStop ()
44+ },
45+ pause() {
46+ fireworks .value ! .pause ()
47+ },
48+ clear() {
49+ fireworks .value ! .clear ()
50+ },
51+ updateOptions(options ) {
52+ fireworks .value ! .updateOptions (options )
53+ },
54+ updateSize(size ) {
55+ fireworks .value ! .updateSize (size )
56+ },
57+ updateBoundaries(boundaries ) {
58+ fireworks .value ! .updateBoundaries (boundaries )
59+ }
3460})
3561 </script >
3662
0 commit comments