From 29b27b6cfdf18dbb4304b55286eb3445f16cc27c Mon Sep 17 00:00:00 2001 From: longxiaofei Date: Tue, 25 Jun 2024 15:16:03 +0800 Subject: [PATCH 1/3] chore: remove pure image preview --- pygwalker/services/preview_image.py | 48 +--------------------- pygwalker/templates/preview.html | 18 --------- pygwalker/templates/preview_list.html | 58 --------------------------- 3 files changed, 1 insertion(+), 123 deletions(-) delete mode 100644 pygwalker/templates/preview.html delete mode 100644 pygwalker/templates/preview_list.html diff --git a/pygwalker/services/preview_image.py b/pygwalker/services/preview_image.py index dcd31b3c..eef0ae3b 100644 --- a/pygwalker/services/preview_image.py +++ b/pygwalker/services/preview_image.py @@ -1,4 +1,4 @@ -from typing import Optional, List, Dict, Any +from typing import List, Dict, Any from concurrent.futures.thread import ThreadPoolExecutor import base64 import zlib @@ -45,48 +45,6 @@ def _compress_data(data: List[List[Dict[str, Any]]]) -> str: return data_base64_str -def render_preview_html( - chart_data: ChartData, - div_id: str, - *, - custom_title: Optional[str] = None, - desc: str = "", -) -> str: - image_list = [[None] * chart_data.n_cols for _ in range(chart_data.n_rows)] - for image in chart_data.charts: - image_list[image.row_index][image.col_index] = image - - html = jinja_env.get_template("preview.html").render( - image_list=image_list, - div_id=div_id, - title=custom_title if custom_title is not None else chart_data.title, - desc=desc, - ) - - return html - - -def render_preview_html_for_multi_charts(charts_map: Dict[str, ChartData], gid: str, preview_id: str) -> str: - tab_name = "tab-pyg-" + str(gid) - items = [] - for chart_data in charts_map.values(): - div_id = f"{gid}-{chart_data.title}".replace(" ", "") - chart_html = render_preview_html(chart_data, div_id, custom_title="") - items.append({ - "tab_id": "tab-" + div_id, - "chart_title": chart_data.title, - "chart_html": chart_html - }) - - html = jinja_env.get_template("preview_list.html").render( - tab_name=tab_name, - preview_id=preview_id, - items=items - ) - - return html - - def render_gw_preview_html( vis_spec_obj: List[Dict[str, Any]], datas: List[List[Dict[str, Any]]], @@ -172,10 +130,6 @@ def __init__(self, gid: str): def init_display(self): display_html("", slot_id=self.image_slot_id) - def render(self, charts_map: Dict[str, ChartData]): - html = render_preview_html_for_multi_charts(charts_map, self.gid, self.image_slot_id) - display_html(html, slot_id=self.image_slot_id) - def render_gw_review(self, html: str): display_html(html, slot_id=self.image_slot_id) diff --git a/pygwalker/templates/preview.html b/pygwalker/templates/preview.html deleted file mode 100644 index b43f1e92..00000000 --- a/pygwalker/templates/preview.html +++ /dev/null @@ -1,18 +0,0 @@ -
- {% if title != '' %} -

{{ title }}

- {% endif %} -

{{ desc }}

- -
- {% for row in image_list %} -
- {% for image in row %} -
- -
- {% endfor %} -
- {% endfor %} -
-
diff --git a/pygwalker/templates/preview_list.html b/pygwalker/templates/preview_list.html deleted file mode 100644 index 4dd734c9..00000000 --- a/pygwalker/templates/preview_list.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - -
-
- {% for item in items %} -
- {% if loop.index == 1 %} - - {% else %} - - {% endif %} - -
{{ item['chart_html'] | safe }}
-
- {% endfor %} -
-
- - \ No newline at end of file From bbe15cce749401b40ce6f6ccc868c885f9c1b8e9 Mon Sep 17 00:00:00 2001 From: longxiaofei Date: Wed, 26 Jun 2024 13:46:30 +0800 Subject: [PATCH 2/3] feat: add dev mode for app --- app/index.html | 8 +++++-- app/package.json | 2 +- app/src/index.tsx | 20 +++++++++-------- app/vite.config.ts | 19 +++++++++++++---- pygwalker/api/pygwalker.py | 5 ++--- pygwalker/services/global_var.py | 5 +++++ pygwalker/services/preview_image.py | 6 ++++-- pygwalker/services/render.py | 12 +++++++---- pygwalker/templates/index.html | 20 ++++++++++++++++- pygwalker/templates/pygwalker_iframe.html | 26 +++++++++++++++++++++++ pyproject.toml | 2 ++ 11 files changed, 99 insertions(+), 26 deletions(-) diff --git a/app/index.html b/app/index.html index 0be8d210..16f952f8 100644 --- a/app/index.html +++ b/app/index.html @@ -10,7 +10,11 @@
- \ No newline at end of file + diff --git a/app/package.json b/app/package.json index b44d78be..29066ff2 100644 --- a/app/package.json +++ b/app/package.json @@ -9,7 +9,7 @@ "build:app": "vite build", "dev:preinstall": "(cd ../graphic-walker/packages/graphic-walker; yarn --frozen-lockfile && yarn build)", "dev:server": "vite --host", - "dev": "vite build --mode=develop", + "dev": "vite", "test:front_end": "vite --host", "test": "npm run test:front_end", "serve": "vite preview" diff --git a/app/src/index.tsx b/app/src/index.tsx index f46bf77e..a59c1145 100644 --- a/app/src/index.tsx +++ b/app/src/index.tsx @@ -4,7 +4,7 @@ import { observer } from "mobx-react-lite"; import { autorun } from "mobx" import { GraphicWalker, PureRenderer, GraphicRenderer, TableWalker } from '@kanaries/graphic-walker' import type { VizSpecStore } from '@kanaries/graphic-walker/store/visualSpecStore' -import type { IGWHandler, IViewField, ISegmentKey, IDarkMode, IChatMessage } from '@kanaries/graphic-walker/interfaces'; +import type { IGWHandler, IViewField, ISegmentKey, IDarkMode, IChatMessage, IRow } from '@kanaries/graphic-walker/interfaces'; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import Options from './components/options'; @@ -29,6 +29,7 @@ import { formatExportedChartDatas } from "./utils/save"; import { tracker } from "@/utils/tracker"; import Notification from "./notify" import initDslParser from "@kanaries/gw-dsl-parser"; +import wasmPath from "@kanaries/gw-dsl-parser/gw_dsl_parser_bg.wasm?url"; import { Select, SelectContent, @@ -306,7 +307,7 @@ const initOnJupyter = async(props: IAppProps) => { if (props.needLoadDatas) { comm.sendMsgAsync("request_data", {}, null); } - await initDslParser(); + await initDslParser(wasmPath); } const initOnHttpCommunication = async(props: IAppProps) => { @@ -316,18 +317,19 @@ const initOnHttpCommunication = async(props: IAppProps) => { const visSpecResp = await comm.sendMsg("get_latest_vis_spec", {}); props.visSpec = visSpecResp["data"]["visSpec"]; } - await initDslParser(); + await initDslParser(wasmPath); } const defaultInit = async(props: IAppProps) => {} function GWalkerComponent(props: IAppProps) { const [initChartFlag, setInitChartFlag] = useState(false); + const [dataSource, setDataSource] = useState(props.dataSource); useEffect(() => { if (props.needLoadDatas) { loadDataSource(props.dataSourceProps).then((data) => { - props.dataSource = data; + setDataSource(data); setInitChartFlag(true); commonStore.setInitModalOpen(false); }) @@ -338,15 +340,15 @@ function GWalkerComponent(props: IAppProps) { switch(props.gwMode) { case "explore": - return ; + return ; case "renderer": - return ; + return ; case "filter_renderer": - return ; + return ; case "table": - return ; + return ; default: - return + return } } diff --git a/app/vite.config.ts b/app/vite.config.ts index 490a1bf5..45d51c84 100644 --- a/app/vite.config.ts +++ b/app/vite.config.ts @@ -11,8 +11,6 @@ const modulesNotToBundle = Object.keys(peerDependencies); // https://vitejs.dev/config/ export default defineConfig((config: ConfigEnv) => { - console.log("defineConfig: ", config); - const buildConfigMap = { "production": { lib: { @@ -50,8 +48,9 @@ export default defineConfig((config: ConfigEnv) => { } return { + base: "/pyg_dev_app/", server: { - port: 2002, + port: 8769, }, plugins: [ react(), @@ -73,6 +72,18 @@ export default defineConfig((config: ConfigEnv) => { "@": path.resolve(__dirname, "./src"), }, }, - build: buildConfigMap[config.mode] + build: { + ...buildConfigMap[config.mode], + rollupOptions: { + external: modulesNotToBundle, + output: { + globals: { + 'react': 'React', + 'react-dom': 'ReactDOM', + 'styled-components': 'styled', + }, + }, + }, + } } as UserConfig; }) diff --git a/pygwalker/api/pygwalker.py b/pygwalker/api/pygwalker.py index 15d61288..7053bc2c 100644 --- a/pygwalker/api/pygwalker.py +++ b/pygwalker/api/pygwalker.py @@ -1,5 +1,4 @@ from typing import List, Dict, Any, Optional, Union -import html as m_html import urllib import json @@ -566,10 +565,10 @@ def _get_render_iframe( iframe_width: Optional[str] = None, iframe_height: Optional[str] = None ) -> str: + """Get render iframe html.""" html = render_gwalker_html(self.gid, props) if return_iframe: - srcdoc = m_html.escape(html) - return render_gwalker_iframe(self.gid, srcdoc, iframe_width, iframe_height) + return render_gwalker_iframe(self.gid, html, iframe_width, iframe_height) else: return html diff --git a/pygwalker/services/global_var.py b/pygwalker/services/global_var.py index 8ccb66fe..7822a00c 100644 --- a/pygwalker/services/global_var.py +++ b/pygwalker/services/global_var.py @@ -15,6 +15,7 @@ class GlobalVarManager: kanaries_main_host = "https://kanaries.net" last_exported_dataframe = None max_data_length = 1000 * 1000 + component_url = "" @classmethod def set_env(cls, env: Literal['Jupyter', 'Streamlit']): @@ -47,3 +48,7 @@ def set_last_exported_dataframe(cls, df: DataFrame): @classmethod def set_max_data_length(cls, length: int): cls.max_data_length = length + + @classmethod + def set_component_url(cls, url: str): + cls.component_url = url diff --git a/pygwalker/services/preview_image.py b/pygwalker/services/preview_image.py index eef0ae3b..6f8307fd 100644 --- a/pygwalker/services/preview_image.py +++ b/pygwalker/services/preview_image.py @@ -76,7 +76,8 @@ def render_gw_preview_html( 'gw_script': GWALKER_SCRIPT_BASE64, "component_script": "PyGWalkerApp.PreviewApp(props, gw_id);", "props": json.dumps(props, cls=DataFrameEncoder) - } + }, + component_url="" ) return html @@ -111,7 +112,8 @@ def render_gw_chart_preview_html( 'gw_script': GWALKER_SCRIPT_BASE64, "component_script": "PyGWalkerApp.ChartPreviewApp(props, gw_id);", "props": json.dumps(props, cls=DataFrameEncoder) - } + }, + component_url="" ) return html diff --git a/pygwalker/services/render.py b/pygwalker/services/render.py index ac77381d..5a0cc6d7 100644 --- a/pygwalker/services/render.py +++ b/pygwalker/services/render.py @@ -1,6 +1,7 @@ import os import json import base64 +import html as m_html from typing import Dict, List, Any, Optional from jinja2 import Environment, PackageLoader @@ -8,6 +9,7 @@ from pygwalker._constants import ROOT_DIR from pygwalker.utils.encode import DataFrameEncoder from pygwalker.utils.estimate_tools import estimate_average_data_size +from pygwalker.services.global_var import GlobalVarManager jinja_env = Environment( loader=PackageLoader("pygwalker"), @@ -30,7 +32,7 @@ def get_max_limited_datas(datas: List[Dict[str, Any]], byte_limit: int) -> List[ def render_gwalker_iframe( gid: int, - srcdoc: str, + html: str, width: Optional[str] = None, height: Optional[str] = None ) -> str: @@ -41,9 +43,10 @@ def render_gwalker_iframe( return jinja_env.get_template("pygwalker_iframe.html").render( gid=gid, - srcdoc=srcdoc, + srcdoc=m_html.escape(html), height=height, - width=width + width=width, + component_url=GlobalVarManager.component_url ) @@ -56,6 +59,7 @@ def render_gwalker_html(gid: int, props: Dict[str, Any]) -> str: 'gw_script': GWALKER_SCRIPT_BASE64, "component_script": "PyGWalkerApp.GWalker(props, gw_id);", "props": json.dumps(props, cls=DataFrameEncoder) - } + }, + component_url=GlobalVarManager.component_url ) return html diff --git a/pygwalker/templates/index.html b/pygwalker/templates/index.html index 3ab8792d..64cc9065 100644 --- a/pygwalker/templates/index.html +++ b/pygwalker/templates/index.html @@ -3,6 +3,8 @@ + +{% if component_url == "" %}
Loading Graphic-Walker UI... @@ -25,4 +27,20 @@ } - \ No newline at end of file +{% endif %} + +{% if component_url != "" %} + + + +{% endif %} + + diff --git a/pygwalker/templates/pygwalker_iframe.html b/pygwalker/templates/pygwalker_iframe.html index b1755f7b..4b3fe9ce 100644 --- a/pygwalker/templates/pygwalker_iframe.html +++ b/pygwalker/templates/pygwalker_iframe.html @@ -1,3 +1,4 @@ +{% if component_url == "" %}
@@ -12,3 +13,28 @@ allowfullscreen>
+{% endif %} + +{% if component_url != "" %} +
+ + + + + +
+{% endif %} diff --git a/pyproject.toml b/pyproject.toml index 3bc59b5e..93721062 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -67,6 +67,8 @@ all = [ dev = [ "build", "twine", + "jupyterlab", + "jupyter_server_proxy", ] [project.scripts] From 791df3f32bb4ca669b0a371e6e9cb3f2e97c75f9 Mon Sep 17 00:00:00 2001 From: longxiaofei Date: Wed, 26 Jun 2024 14:54:56 +0800 Subject: [PATCH 3/3] chore: fix vite version to resolve react-syntax-highlighter bug in dev --- app/package.json | 2 +- app/yarn.lock | 312 +++++++++++++++++++++++++---------------------- 2 files changed, 167 insertions(+), 147 deletions(-) diff --git a/app/package.json b/app/package.json index 29066ff2..68ac3151 100644 --- a/app/package.json +++ b/app/package.json @@ -60,7 +60,7 @@ "@types/styled-components": "^5.1.26", "@vitejs/plugin-react": "^3.1.x", "typescript": "^5.4.2", - "vite": "^4.1.4", + "vite": "4.1.5", "vite-plugin-wasm": "^3.2.2" }, "resolutions": { diff --git a/app/yarn.lock b/app/yarn.lock index 6842311c..0fec3123 100644 --- a/app/yarn.lock +++ b/app/yarn.lock @@ -573,115 +573,115 @@ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== -"@esbuild/android-arm64@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz#4aa8d8afcffb4458736ca9b32baa97d7cb5861ea" - integrity sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw== - -"@esbuild/android-arm@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.18.tgz#74a7e95af4ee212ebc9db9baa87c06a594f2a427" - integrity sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw== - -"@esbuild/android-x64@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.18.tgz#1dcd13f201997c9fe0b204189d3a0da4eb4eb9b6" - integrity sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg== - -"@esbuild/darwin-arm64@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz#444f3b961d4da7a89eb9bd35cfa4415141537c2a" - integrity sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ== - -"@esbuild/darwin-x64@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz#a6da308d0ac8a498c54d62e0b2bfb7119b22d315" - integrity sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A== - -"@esbuild/freebsd-arm64@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz#b83122bb468889399d0d63475d5aea8d6829c2c2" - integrity sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA== - -"@esbuild/freebsd-x64@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz#af59e0e03fcf7f221b34d4c5ab14094862c9c864" - integrity sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew== - -"@esbuild/linux-arm64@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz#8551d72ba540c5bce4bab274a81c14ed01eafdcf" - integrity sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ== - -"@esbuild/linux-arm@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz#e09e76e526df4f665d4d2720d28ff87d15cdf639" - integrity sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg== - -"@esbuild/linux-ia32@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz#47878860ce4fe73a36fd8627f5647bcbbef38ba4" - integrity sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ== - -"@esbuild/linux-loong64@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz#3f8fbf5267556fc387d20b2e708ce115de5c967a" - integrity sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ== - -"@esbuild/linux-mips64el@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz#9d896d8f3c75f6c226cbeb840127462e37738226" - integrity sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA== - -"@esbuild/linux-ppc64@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz#3d9deb60b2d32c9985bdc3e3be090d30b7472783" - integrity sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ== - -"@esbuild/linux-riscv64@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz#8a943cf13fd24ff7ed58aefb940ef178f93386bc" - integrity sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA== - -"@esbuild/linux-s390x@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz#66cb01f4a06423e5496facabdce4f7cae7cb80e5" - integrity sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw== - -"@esbuild/linux-x64@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz#23c26050c6c5d1359c7b774823adc32b3883b6c9" - integrity sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA== - -"@esbuild/netbsd-x64@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz#789a203d3115a52633ff6504f8cbf757f15e703b" - integrity sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg== - -"@esbuild/openbsd-x64@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz#d7b998a30878f8da40617a10af423f56f12a5e90" - integrity sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA== - -"@esbuild/sunos-x64@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz#ecad0736aa7dae07901ba273db9ef3d3e93df31f" - integrity sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg== - -"@esbuild/win32-arm64@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz#58dfc177da30acf956252d7c8ae9e54e424887c4" - integrity sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg== - -"@esbuild/win32-ia32@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz#340f6163172b5272b5ae60ec12c312485f69232b" - integrity sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw== - -"@esbuild/win32-x64@0.17.18": - version "0.17.18" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz#3a8e57153905308db357fd02f57c180ee3a0a1fa" - integrity sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg== +"@esbuild/android-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" + integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== + +"@esbuild/android-arm@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" + integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw== + +"@esbuild/android-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e" + integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ== + +"@esbuild/darwin-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220" + integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w== + +"@esbuild/darwin-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4" + integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== + +"@esbuild/freebsd-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27" + integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw== + +"@esbuild/freebsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72" + integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug== + +"@esbuild/linux-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca" + integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g== + +"@esbuild/linux-arm@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196" + integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ== + +"@esbuild/linux-ia32@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54" + integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== + +"@esbuild/linux-loong64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" + integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ== + +"@esbuild/linux-mips64el@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726" + integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw== + +"@esbuild/linux-ppc64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8" + integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g== + +"@esbuild/linux-riscv64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9" + integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw== + +"@esbuild/linux-s390x@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87" + integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w== + +"@esbuild/linux-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f" + integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw== + +"@esbuild/netbsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775" + integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA== + +"@esbuild/openbsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35" + integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg== + +"@esbuild/sunos-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c" + integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw== + +"@esbuild/win32-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a" + integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw== + +"@esbuild/win32-ia32@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09" + integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig== + +"@esbuild/win32-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091" + integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q== "@floating-ui/core@^1.0.0", "@floating-ui/core@^1.4.2": version "1.5.0" @@ -3865,33 +3865,33 @@ error-stack-parser@^2.0.6: dependencies: stackframe "^1.3.4" -esbuild@^0.17.5: - version "0.17.18" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.18.tgz#f4f8eb6d77384d68cd71c53eb6601c7efe05e746" - integrity sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w== +esbuild@^0.16.14: + version "0.16.17" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259" + integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg== optionalDependencies: - "@esbuild/android-arm" "0.17.18" - "@esbuild/android-arm64" "0.17.18" - "@esbuild/android-x64" "0.17.18" - "@esbuild/darwin-arm64" "0.17.18" - "@esbuild/darwin-x64" "0.17.18" - "@esbuild/freebsd-arm64" "0.17.18" - "@esbuild/freebsd-x64" "0.17.18" - "@esbuild/linux-arm" "0.17.18" - "@esbuild/linux-arm64" "0.17.18" - "@esbuild/linux-ia32" "0.17.18" - "@esbuild/linux-loong64" "0.17.18" - "@esbuild/linux-mips64el" "0.17.18" - "@esbuild/linux-ppc64" "0.17.18" - "@esbuild/linux-riscv64" "0.17.18" - "@esbuild/linux-s390x" "0.17.18" - "@esbuild/linux-x64" "0.17.18" - "@esbuild/netbsd-x64" "0.17.18" - "@esbuild/openbsd-x64" "0.17.18" - "@esbuild/sunos-x64" "0.17.18" - "@esbuild/win32-arm64" "0.17.18" - "@esbuild/win32-ia32" "0.17.18" - "@esbuild/win32-x64" "0.17.18" + "@esbuild/android-arm" "0.16.17" + "@esbuild/android-arm64" "0.16.17" + "@esbuild/android-x64" "0.16.17" + "@esbuild/darwin-arm64" "0.16.17" + "@esbuild/darwin-x64" "0.16.17" + "@esbuild/freebsd-arm64" "0.16.17" + "@esbuild/freebsd-x64" "0.16.17" + "@esbuild/linux-arm" "0.16.17" + "@esbuild/linux-arm64" "0.16.17" + "@esbuild/linux-ia32" "0.16.17" + "@esbuild/linux-loong64" "0.16.17" + "@esbuild/linux-mips64el" "0.16.17" + "@esbuild/linux-ppc64" "0.16.17" + "@esbuild/linux-riscv64" "0.16.17" + "@esbuild/linux-s390x" "0.16.17" + "@esbuild/linux-x64" "0.16.17" + "@esbuild/netbsd-x64" "0.16.17" + "@esbuild/openbsd-x64" "0.16.17" + "@esbuild/sunos-x64" "0.16.17" + "@esbuild/win32-arm64" "0.16.17" + "@esbuild/win32-ia32" "0.16.17" + "@esbuild/win32-x64" "0.16.17" escalade@^3.1.1: version "3.1.1" @@ -5106,6 +5106,11 @@ nanoid@^3.3.6: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + nanoid@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-4.0.2.tgz#140b3c5003959adbebf521c170f282c5e7f9fb9e" @@ -5389,6 +5394,15 @@ postcss@^8.3.7, postcss@^8.4.23: picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.4.21: + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.2.0" + postinstall-postinstall@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz#4f7f77441ef539d1512c40bd04c71b06a4704ca3" @@ -5777,10 +5791,10 @@ robust-predicates@^3.0.0: resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.1.tgz#ecde075044f7f30118682bd9fb3f123109577f9a" integrity sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g== -rollup@^3.21.0: - version "3.21.6" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.21.6.tgz#f5649ccdf8fcc7729254faa457cbea9547eb86db" - integrity sha512-SXIICxvxQxR3D4dp/3LDHZIJPC8a4anKMHd4E3Jiz2/JnY+2bEjqrOokAauc5ShGVNFHlEFjBXAXlaxkJqIqSg== +rollup@^3.10.0: + version "3.29.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" + integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== optionalDependencies: fsevents "~2.3.2" @@ -5922,6 +5936,11 @@ source-map-js@^1.0.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + source-map-support@0.5.13: version "0.5.13" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" @@ -6781,14 +6800,15 @@ vite-plugin-wasm@^3.2.2: resolved "https://registry.yarnpkg.com/vite-plugin-wasm/-/vite-plugin-wasm-3.2.2.tgz#7a66fef27733a0dea9b2b14f942a6389a2523f7c" integrity sha512-cdbBUNR850AEoMd5nvLmnyeq63CSfoP1ctD/L2vLk/5+wsgAPlAVAzUK5nGKWO/jtehNlrSSHLteN+gFQw7VOA== -vite@^4.1.4: - version "4.3.5" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.3.5.tgz#3871fe0f4b582ea7f49a85386ac80e84826367d9" - integrity sha512-0gEnL9wiRFxgz40o/i/eTBwm+NEbpUeTWhzKrZDSdKm6nplj+z4lKz8ANDgildxHm47Vg8EUia0aicKbawUVVA== +vite@4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.1.5.tgz#9c93d579f62179ab99c4182fa37acf1b380a374b" + integrity sha512-zJ0RiVkf61kpd7O+VtU6r766xgnTaIknP/lR6sJTZq3HtVJ3HGnTo5DaJhTUtYoTyS/CQwZ6yEVdc/lrmQT7dQ== dependencies: - esbuild "^0.17.5" - postcss "^8.4.23" - rollup "^3.21.0" + esbuild "^0.16.14" + postcss "^8.4.21" + resolve "^1.22.1" + rollup "^3.10.0" optionalDependencies: fsevents "~2.3.2"