{"version":3,"file":"index.cjs.js","sources":["../src/composables/api.ts","../src/composables/autoresize.ts","../src/composables/loading.ts","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../src/utils.ts","../src/ECharts.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Ref } from \"vue-demi\";\nimport { EChartsType } from \"../types\";\n\nconst METHOD_NAMES = [\n \"getWidth\",\n \"getHeight\",\n \"getDom\",\n \"getOption\",\n \"resize\",\n \"dispatchAction\",\n \"convertToPixel\",\n \"convertFromPixel\",\n \"containPixel\",\n \"getDataURL\",\n \"getConnectedDataURL\",\n \"appendData\",\n \"clear\",\n \"isDisposed\",\n \"dispose\"\n] as const;\ntype MethodName = typeof METHOD_NAMES[number];\n\ntype PublicMethods = Pick;\n\nexport function usePublicAPI(\n chart: Ref\n): PublicMethods {\n function makePublicMethod(\n name: T\n ): (...args: Parameters) => ReturnType {\n return (...args) => {\n if (!chart.value) {\n throw new Error(\"ECharts is not initialized yet.\");\n }\n return (chart.value[name] as any).apply(chart.value, args);\n };\n }\n\n function makePublicMethods(): PublicMethods {\n const methods = Object.create(null);\n METHOD_NAMES.forEach(name => {\n methods[name] = makePublicMethod(name);\n });\n\n return methods as PublicMethods;\n }\n\n return makePublicMethods();\n}\n","import { Ref, watch } from \"vue-demi\";\nimport { throttle } from \"echarts/core\";\nimport { addListener, removeListener, ResizeCallback } from \"resize-detector\";\nimport { EChartsType } from \"../types\";\n\nexport function useAutoresize(\n chart: Ref,\n autoresize: Ref,\n root: Ref\n): void {\n let resizeListener: ResizeCallback | null = null;\n\n watch([root, chart, autoresize], ([root, chart, autoresize], _, cleanup) => {\n if (root && chart && autoresize) {\n resizeListener = throttle(() => {\n chart.resize();\n }, 100);\n\n addListener(root, resizeListener);\n }\n\n cleanup(() => {\n if (resizeListener && root) {\n removeListener(root, resizeListener);\n }\n });\n });\n}\n\nexport const autoresizeProps = {\n autoresize: Boolean\n};\n","import { inject, unref, computed, Ref, watchEffect } from \"vue-demi\";\nimport { EChartsType } from \"../types\";\n\nexport const LOADING_OPTIONS_KEY = \"ecLoadingOptions\";\n\ntype UnknownRecord = Record;\n\nexport function useLoading(\n chart: Ref,\n loading: Ref,\n loadingOptions: Ref\n): void {\n const defaultLoadingOptions = inject(LOADING_OPTIONS_KEY, {}) as\n | UnknownRecord\n | Ref;\n const realLoadingOptions = computed(() => ({\n ...unref(defaultLoadingOptions),\n ...loadingOptions?.value\n }));\n\n watchEffect(() => {\n const instance = chart.value;\n if (!instance) {\n return;\n }\n\n if (loading.value) {\n instance.showLoading(realLoadingOptions.value);\n } else {\n instance.hideLoading();\n }\n });\n}\n\nexport const loadingProps = {\n loading: Boolean,\n loadingOptions: Object\n};\n","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n onRE.test(key);\n\nexport function omitOn(attrs: Attrs): Attrs {\n const result: Attrs = {};\n for (const key in attrs) {\n if (!isOn(key)) {\n result[key] = attrs[key];\n }\n }\n\n return result;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n defineComponent,\n unref,\n shallowRef,\n toRefs,\n watch,\n computed,\n inject,\n onMounted,\n onUnmounted,\n h,\n nextTick,\n PropType,\n watchEffect,\n Vue2\n} from \"vue-demi\";\nimport { init as initChart } from \"echarts/core\";\nimport {\n EChartsType,\n Option,\n Theme,\n ThemeInjection,\n InitOptions,\n InitOptionsInjection,\n UpdateOptions,\n UpdateOptionsInjection\n} from \"./types\";\nimport {\n usePublicAPI,\n useAutoresize,\n autoresizeProps,\n useLoading,\n loadingProps\n} from \"./composables\";\nimport \"./style.css\";\nimport { omitOn } from \"./utils\";\n\nconst TAG_NAME = \"x-vue-echarts\";\n\nif (Vue2) {\n Vue2.config.ignoredElements.push(TAG_NAME);\n}\n\nexport const THEME_KEY = \"ecTheme\";\nexport const INIT_OPTIONS_KEY = \"ecInitOptions\";\nexport const UPDATE_OPTIONS_KEY = \"ecUpdateOptions\";\nexport { LOADING_OPTIONS_KEY } from \"./composables\";\n\nexport default defineComponent({\n name: \"echarts\",\n props: {\n option: Object as PropType