mirror of
https://github.com/gradio-app/gradio.git
synced 2025-01-18 10:44:33 +08:00
ensure dataframe updates as expected (#981)
* ensure input updates as expected * ci debug * ci debug * ci debug * fix broken path * cleanup * cleanup * cleanup * remove pkg-up * fix dataframe * ensure headers can be edited * allow the table to render empty content without exploding * fixed components and test components * fixed test inputs and test outputs * formatting * Update test_components.py Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
This commit is contained in:
parent
6e1ccec1d0
commit
9cb40dc99a
@ -2044,23 +2044,21 @@ class Dataframe(Component):
|
||||
self.col_width = col_width
|
||||
self.type = type
|
||||
self.output_type = "auto"
|
||||
self.default_value = (
|
||||
default_value
|
||||
if default_value is not None
|
||||
else [[None for _ in range(self.col_count)] for _ in range(self.row_count)]
|
||||
)
|
||||
sample_values = {
|
||||
"str": "abc",
|
||||
"number": 786,
|
||||
"bool": True,
|
||||
"date": "02/08/1993",
|
||||
default_values = {
|
||||
"str": "",
|
||||
"number": 0,
|
||||
"bool": False,
|
||||
"date": "01/01/1970",
|
||||
}
|
||||
column_dtypes = (
|
||||
[datatype] * self.col_count if isinstance(datatype, str) else datatype
|
||||
)
|
||||
self.test_input = [
|
||||
[sample_values[c] for c in column_dtypes] for _ in range(row_count)
|
||||
[default_values[c] for c in column_dtypes] for _ in range(row_count)
|
||||
]
|
||||
self.default_value = (
|
||||
default_value if default_value is not None else self.test_input
|
||||
)
|
||||
self.max_rows = max_rows
|
||||
self.max_cols = max_cols
|
||||
self.overflow_row_behaviour = overflow_row_behaviour
|
||||
|
@ -45,7 +45,7 @@
|
||||
</script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.3.1/iframeResizer.contentWindow.min.js"></script>
|
||||
<title>Gradio</title>
|
||||
<script type="module" crossorigin src="./assets/index.8c3dba6a.js"></script>
|
||||
<script type="module" crossorigin src="./assets/index.693bb58e.js"></script>
|
||||
<link rel="stylesheet" href="./assets/index.38c11487.css">
|
||||
</head>
|
||||
|
||||
|
@ -832,9 +832,9 @@ class TestDataframe(unittest.TestCase):
|
||||
"col_count": 3,
|
||||
"col_width": None,
|
||||
"default_value": [
|
||||
[None, None, None],
|
||||
[None, None, None],
|
||||
[None, None, None],
|
||||
["", "", ""],
|
||||
["", "", ""],
|
||||
["", "", ""],
|
||||
],
|
||||
"name": "dataframe",
|
||||
"label": "Dataframe Input",
|
||||
@ -882,9 +882,9 @@ class TestDataframe(unittest.TestCase):
|
||||
"col_count": 3,
|
||||
"col_width": None,
|
||||
"default_value": [
|
||||
[None, None, None],
|
||||
[None, None, None],
|
||||
[None, None, None],
|
||||
["", "", ""],
|
||||
["", "", ""],
|
||||
["", "", ""],
|
||||
],
|
||||
},
|
||||
)
|
||||
|
@ -594,9 +594,9 @@ class TestDataframe(unittest.TestCase):
|
||||
"col_count": 3,
|
||||
"col_width": None,
|
||||
"default_value": [
|
||||
[None, None, None],
|
||||
[None, None, None],
|
||||
[None, None, None],
|
||||
["", "", ""],
|
||||
["", "", ""],
|
||||
["", "", ""],
|
||||
],
|
||||
"name": "dataframe",
|
||||
"label": "Dataframe Input",
|
||||
|
@ -369,9 +369,9 @@ class TestDataframe(unittest.TestCase):
|
||||
"col_count": 3,
|
||||
"col_width": None,
|
||||
"default_value": [
|
||||
[None, None, None],
|
||||
[None, None, None],
|
||||
[None, None, None],
|
||||
["", "", ""],
|
||||
["", "", ""],
|
||||
["", "", ""],
|
||||
],
|
||||
"name": "dataframe",
|
||||
},
|
||||
|
@ -1,13 +1,44 @@
|
||||
<script lang="ts">
|
||||
import { Table } from "@gradio/table";
|
||||
export let headers: Array<string> = [];
|
||||
export let value: Array<Array<string | number>> = [["", "", ""]];
|
||||
import { createEventDispatcher, tick } from "svelte";
|
||||
|
||||
type Headers = Array<string>;
|
||||
type Data = Array<Array<string | number>>;
|
||||
|
||||
export let headers: Headers = [];
|
||||
export let value: Data | { data: Data; headers: Headers } = [["", "", ""]];
|
||||
export let default_value: Array<Array<string | number>> = [["", "", ""]];
|
||||
|
||||
export let style: string = "";
|
||||
export let is_static: boolean;
|
||||
|
||||
if (default_value) value = default_value;
|
||||
|
||||
$: {
|
||||
if (!Array.isArray(value)) {
|
||||
if (Array.isArray(value.headers)) headers = value.headers;
|
||||
|
||||
value =
|
||||
value.data.length === 0 ? [Array(headers.length).fill("")] : value.data;
|
||||
} else {
|
||||
value = value;
|
||||
}
|
||||
}
|
||||
|
||||
const dispatch = createEventDispatcher();
|
||||
|
||||
async function handle_change({ detail }) {
|
||||
value = detail;
|
||||
await tick();
|
||||
|
||||
dispatch("change", detail);
|
||||
}
|
||||
</script>
|
||||
|
||||
<Table bind:values={value} {headers} {style} on:change editable={!is_static} />
|
||||
<Table
|
||||
values={value}
|
||||
{headers}
|
||||
{style}
|
||||
on:change={handle_change}
|
||||
editable={!is_static}
|
||||
/>
|
||||
|
@ -58,9 +58,6 @@ test("can run an api request and display the data", async ({ page }) => {
|
||||
|
||||
await page.goto("http://localhost:3000");
|
||||
|
||||
// await page.locator('button:has-text("Covid")').click();
|
||||
// await page.locator('button:has-text("Lung Cancer")').click();
|
||||
|
||||
await page.check("label:has-text('Covid')");
|
||||
await page.check("label:has-text('Lung Cancer')");
|
||||
|
||||
|
@ -2,61 +2,104 @@
|
||||
import { createEventDispatcher, tick } from "svelte";
|
||||
|
||||
export let headers: Array<string> = [];
|
||||
export let values: Array<Array<string | number>> = [["", "", ""]];
|
||||
// export let default_data: Array<Array<string | number>> = [];
|
||||
export let style: string = "";
|
||||
export let values: Array<Array<string | number>> = [[]];
|
||||
|
||||
if ($$props.default) values = $$props.default;
|
||||
export let style: string = "";
|
||||
|
||||
export let editable = true;
|
||||
|
||||
const dispatch = createEventDispatcher<{ change: typeof values }>();
|
||||
|
||||
let id = 0;
|
||||
let editing: boolean | number = false;
|
||||
let selected: boolean | number = false;
|
||||
let editing: boolean | string = false;
|
||||
let selected: boolean | string = false;
|
||||
let els: Record<
|
||||
string,
|
||||
{ cell: null | HTMLTableCellElement; input: null | HTMLInputElement }
|
||||
> = {};
|
||||
|
||||
type Headers = Array<{ value: string; id: number }>;
|
||||
type Headers = Array<{ value: string; id: string }>;
|
||||
|
||||
function make_headers(_h: Array<string>): Headers {
|
||||
if (!_h || _h.length === 0) {
|
||||
return values[0].map((_, i) => {
|
||||
const _id = ++id;
|
||||
const _id = `h-${i}`;
|
||||
els[_id] = { cell: null, input: null };
|
||||
return { id: _id, value: JSON.stringify(i + 1) };
|
||||
});
|
||||
} else {
|
||||
return _h.map((h) => {
|
||||
const _id = ++id;
|
||||
return _h.map((h, i) => {
|
||||
const _id = `h-${i}`;
|
||||
els[_id] = { cell: null, input: null };
|
||||
return { id: _id, value: h };
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function process_data(_values: Array<Array<string | number>>) {
|
||||
return (
|
||||
_values.map((x, i) =>
|
||||
x.map((n, j) => {
|
||||
const id = `${i}-${j}`;
|
||||
els[id] = { input: null, cell: null };
|
||||
return { value: n, id };
|
||||
})
|
||||
) || [
|
||||
Array(headers.length)
|
||||
.fill(0)
|
||||
|
||||
.map((_, j) => {
|
||||
const id = `0-${j}`;
|
||||
els[id] = { input: null, cell: null };
|
||||
|
||||
return { value: "", id: `0-${j}` };
|
||||
})
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
let _headers = make_headers(headers);
|
||||
let old_headers: Array<string> | undefined;
|
||||
$: {
|
||||
if (!is_equal(headers, old_headers)) {
|
||||
_headers = make_headers(headers);
|
||||
old_headers = headers;
|
||||
refresh_focus();
|
||||
}
|
||||
}
|
||||
|
||||
let data = values.map((x) =>
|
||||
x.map((n) => {
|
||||
const _id = ++id;
|
||||
els[id] = { input: null, cell: null };
|
||||
return { value: n, id: _id };
|
||||
})
|
||||
) || [
|
||||
Array(headers.length)
|
||||
.fill(0)
|
||||
$: if (!is_equal(values, old_val)) {
|
||||
data = process_data(values);
|
||||
old_val = values;
|
||||
|
||||
.map((_) => {
|
||||
const _id = ++id;
|
||||
els[id] = { input: null, cell: null };
|
||||
refresh_focus();
|
||||
}
|
||||
|
||||
return { value: "", id: _id };
|
||||
})
|
||||
];
|
||||
async function refresh_focus() {
|
||||
if (typeof editing === "string") {
|
||||
await tick();
|
||||
els[editing as string]?.input?.focus();
|
||||
} else if (typeof selected === "string") {
|
||||
await tick();
|
||||
els[selected as string]?.input?.focus();
|
||||
}
|
||||
}
|
||||
|
||||
let data: Array<Array<{ id: string; value: string | number }>> = [[]];
|
||||
|
||||
let old_val: undefined | Array<Array<string | number>> = undefined;
|
||||
|
||||
function is_equal(arr: Array<any>, arr2: Array<any> | undefined) {
|
||||
if (!arr2) return false;
|
||||
return arr.every((_arr, i) => {
|
||||
if (Array.isArray(_arr)) {
|
||||
return _arr.every((item, j) => {
|
||||
return item === arr2?.[i]?.[j];
|
||||
});
|
||||
} else {
|
||||
return _arr === arr2?.[i];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$: dispatch(
|
||||
"change",
|
||||
@ -75,7 +118,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
async function start_edit(id: number) {
|
||||
async function start_edit(id: string) {
|
||||
if (!editable) return;
|
||||
editing = id;
|
||||
await tick();
|
||||
@ -87,7 +130,7 @@
|
||||
event: KeyboardEvent,
|
||||
i: number,
|
||||
j: number,
|
||||
id: number
|
||||
id: string
|
||||
) {
|
||||
let is_data;
|
||||
switch (event.key) {
|
||||
@ -148,12 +191,14 @@
|
||||
}
|
||||
}
|
||||
|
||||
async function handle_cell_click(id: number) {
|
||||
async function handle_cell_click(id: string) {
|
||||
if (editing === id) return;
|
||||
if (selected === id) return;
|
||||
editing = false;
|
||||
selected = id;
|
||||
}
|
||||
|
||||
async function set_focus(id: number | boolean, type: "edit" | "select") {
|
||||
async function set_focus(id: string | boolean, type: "edit" | "select") {
|
||||
if (type === "edit" && typeof id == "number") {
|
||||
await tick();
|
||||
els[id].input?.focus();
|
||||
@ -207,9 +252,9 @@
|
||||
sort(col, sort_direction);
|
||||
}
|
||||
|
||||
let header_edit: number | boolean;
|
||||
let header_edit: string | boolean;
|
||||
|
||||
async function edit_header(_id: number, select?: boolean) {
|
||||
async function edit_header(_id: string, select?: boolean) {
|
||||
if (!editable) return;
|
||||
header_edit = _id;
|
||||
await tick();
|
||||
@ -234,8 +279,8 @@
|
||||
|
||||
function add_row() {
|
||||
data.push(
|
||||
headers.map(() => {
|
||||
const _id = ++id;
|
||||
headers.map((_, i) => {
|
||||
const _id = `${data.length}-${i}`;
|
||||
els[_id] = { cell: null, input: null };
|
||||
return { id: _id, value: "" };
|
||||
})
|
||||
@ -245,12 +290,12 @@
|
||||
|
||||
async function add_col() {
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
const _id = ++id;
|
||||
const _id = `${i}-${data[i].length}`;
|
||||
els[_id] = { cell: null, input: null };
|
||||
data[i].push({ id: _id, value: "" });
|
||||
}
|
||||
|
||||
const _id = ++id;
|
||||
const _id = `h-${headers.length}`;
|
||||
els[_id] = { cell: null, input: null };
|
||||
_headers.push({ id: _id, value: `Header ${_headers.length + 1}` });
|
||||
|
||||
@ -319,13 +364,14 @@
|
||||
on:blur={({ currentTarget }) =>
|
||||
currentTarget.setAttribute("tabindex", "-1")}
|
||||
/>
|
||||
{:else}
|
||||
<span
|
||||
tabindex="-1"
|
||||
role="button"
|
||||
class="min-h-full"
|
||||
class:opacity-0={header_edit === id}>{value}</span
|
||||
>
|
||||
{/if}
|
||||
<span
|
||||
tabindex="-1"
|
||||
role="button"
|
||||
class="min-h-full"
|
||||
class:opacity-0={header_edit === id}>{value}</span
|
||||
>
|
||||
</th>
|
||||
{/each}
|
||||
</tr></thead
|
||||
@ -361,15 +407,16 @@
|
||||
on:blur={({ currentTarget }) =>
|
||||
currentTarget.setAttribute("tabindex", "-1")}
|
||||
/>
|
||||
{:else}
|
||||
<span
|
||||
class=" cursor-default w-full"
|
||||
class:opacity-0={editing === id}
|
||||
tabindex="-1"
|
||||
role="button"
|
||||
>
|
||||
{value}
|
||||
</span>
|
||||
{/if}
|
||||
<span
|
||||
class=" cursor-default w-full"
|
||||
class:opacity-0={editing === id}
|
||||
tabindex="-1"
|
||||
role="button"
|
||||
>
|
||||
{value}
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
{/each}
|
||||
|
@ -1,5 +1,14 @@
|
||||
<script lang="ts">
|
||||
import { Table } from "@gradio/table";
|
||||
|
||||
const src = [
|
||||
[1, "Two", "Three"],
|
||||
[2, "Four", "Five"],
|
||||
[3, "Six", "Seven"]
|
||||
];
|
||||
|
||||
let values = [[1, "Two", "Three"]];
|
||||
</script>
|
||||
|
||||
<Table />
|
||||
<Table {values} headers={["Num", "Two", "Three"]} />
|
||||
<button on:click={() => (values = src)}>Populate</button>
|
||||
|
@ -98,7 +98,10 @@ importers:
|
||||
'@gradio/upload': link:../upload
|
||||
'@gradio/video': link:../video
|
||||
mime-types: 2.1.34
|
||||
svelte-i18n: 3.3.13
|
||||
svelte-i18n: 3.3.13_svelte@3.46.3
|
||||
|
||||
packages/atoms:
|
||||
specifiers: {}
|
||||
|
||||
packages/audio:
|
||||
specifiers:
|
||||
@ -267,8 +270,8 @@ importers:
|
||||
'@gradio/upload': link:../upload
|
||||
'@gradio/video': link:../video
|
||||
devDependencies:
|
||||
'@sveltejs/adapter-auto': 1.0.0-next.33
|
||||
'@sveltejs/kit': 1.0.0-next.303_svelte@3.46.3
|
||||
'@sveltejs/adapter-auto': 1.0.0-next.34
|
||||
'@sveltejs/kit': 1.0.0-next.311_svelte@3.46.3
|
||||
autoprefixer: 10.4.2_postcss@8.4.6
|
||||
postcss: 8.4.6
|
||||
postcss-load-config: 3.1.1
|
||||
@ -966,45 +969,46 @@ packages:
|
||||
estree-walker: 2.0.2
|
||||
picomatch: 2.3.1
|
||||
|
||||
/@sveltejs/adapter-auto/1.0.0-next.33:
|
||||
resolution: {integrity: sha512-FVEBSw5XIYCrqMPY2VGmaGyT4ZvbahcdQJ613O4lgAoafRdUy7ZaE8GoeDmCJxtTUsqhAQUFu7jx9IIhz+QrsQ==}
|
||||
/@sveltejs/adapter-auto/1.0.0-next.34:
|
||||
resolution: {integrity: sha512-BzZVfy39idFojauroLrE/v9paJ1/HOlS2R857ooCwaLg+RrRy6zJHWwYxNSv5e8AaZiVg7ioZZpU/2g6ZgUpaQ==}
|
||||
dependencies:
|
||||
'@sveltejs/adapter-cloudflare': 1.0.0-next.16
|
||||
'@sveltejs/adapter-cloudflare': 1.0.0-next.17
|
||||
'@sveltejs/adapter-netlify': 1.0.0-next.51
|
||||
'@sveltejs/adapter-vercel': 1.0.0-next.47
|
||||
dev: true
|
||||
|
||||
/@sveltejs/adapter-cloudflare/1.0.0-next.16:
|
||||
resolution: {integrity: sha512-ripTRtOasAtxDJEIF3kwwji/9WHfX069i5LuRwGUzOi4/cbcGfgV1RFBVfo/8G6hr3ehqLeKCdloet1yTsp34A==}
|
||||
/@sveltejs/adapter-cloudflare/1.0.0-next.17:
|
||||
resolution: {integrity: sha512-B2ze5L0LsHFsZctVNy4sw0XxgV2YiVEHyMrWRo3pmpTwpu6GT5V3U2fsEoCMg/RKMazlWkyKTCuUqmcpYjjf2g==}
|
||||
dependencies:
|
||||
esbuild: 0.14.23
|
||||
esbuild: 0.14.31
|
||||
worktop: 0.8.0-next.12
|
||||
dev: true
|
||||
|
||||
/@sveltejs/adapter-netlify/1.0.0-next.51:
|
||||
resolution: {integrity: sha512-P7/cW/0z8zd8J6DOI2yxKZG0+HRMMuzfOf0yzFXX0vRwBePhKlZ/H4qhTOo2NrCmj3Len545o+ugj5gyMXl1+g==}
|
||||
dependencies:
|
||||
'@iarna/toml': 2.2.5
|
||||
esbuild: 0.14.23
|
||||
esbuild: 0.14.31
|
||||
tiny-glob: 0.2.9
|
||||
dev: true
|
||||
|
||||
/@sveltejs/adapter-vercel/1.0.0-next.47:
|
||||
resolution: {integrity: sha512-VV3vP8KqL9XOc7xfQLVhXTM5jrTme+r1qJy98u5/dhAhkdjqrGDwAKo/s7MoB3rTYxLb2b8I4QxAaoz2Y2aIBg==}
|
||||
dependencies:
|
||||
esbuild: 0.14.23
|
||||
esbuild: 0.14.31
|
||||
dev: true
|
||||
|
||||
/@sveltejs/kit/1.0.0-next.303_svelte@3.46.3:
|
||||
resolution: {integrity: sha512-WdxDc8OiF1WEd/bEza7CBdzA+3qIcCi1GKBj/gieKX9I3N8iDJt/Cg2POrLo9wQoJ47nZcAd1eOhfr7XEX1aIQ==}
|
||||
/@sveltejs/kit/1.0.0-next.311_svelte@3.46.3:
|
||||
resolution: {integrity: sha512-OkRIi0XBXcs16J+H+6fgOeFYxKu05gamY08KHAQ5cohjymUODGWIwaIfwAuNkZAcEEr8Vh2ejp4UcaxNzD53lQ==}
|
||||
engines: {node: '>=14.13'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
svelte: ^3.44.0
|
||||
dependencies:
|
||||
'@sveltejs/vite-plugin-svelte': 1.0.0-next.36_svelte@3.46.3+vite@2.8.4
|
||||
'@sveltejs/vite-plugin-svelte': 1.0.0-next.36_svelte@3.46.3+vite@2.9.1
|
||||
sade: 1.8.1
|
||||
svelte: 3.46.3
|
||||
vite: 2.8.4
|
||||
vite: 2.9.1
|
||||
transitivePeerDependencies:
|
||||
- diff-match-patch
|
||||
- less
|
||||
@ -1013,28 +1017,6 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@sveltejs/vite-plugin-svelte/1.0.0-next.36_svelte@3.46.3+vite@2.8.4:
|
||||
resolution: {integrity: sha512-X7lTiioTGC3ri5M299fxc2dimuKU7f22zTXcmD+NrF+fO9/b7YNfLeQQwWV7Tvv9REysMlR4G2HQF6+lY62p/Q==}
|
||||
engines: {node: ^14.13.1 || >= 16}
|
||||
peerDependencies:
|
||||
diff-match-patch: ^1.0.5
|
||||
svelte: ^3.44.0
|
||||
vite: ^2.7.0
|
||||
peerDependenciesMeta:
|
||||
diff-match-patch:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 4.1.2
|
||||
debug: 4.3.3
|
||||
kleur: 4.1.4
|
||||
magic-string: 0.25.7
|
||||
svelte: 3.46.3
|
||||
svelte-hmr: 0.14.9_svelte@3.46.3
|
||||
vite: 2.8.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@sveltejs/vite-plugin-svelte/1.0.0-next.36_svelte@3.46.3+vite@2.9.1:
|
||||
resolution: {integrity: sha512-X7lTiioTGC3ri5M299fxc2dimuKU7f22zTXcmD+NrF+fO9/b7YNfLeQQwWV7Tvv9REysMlR4G2HQF6+lY62p/Q==}
|
||||
engines: {node: ^14.13.1 || >= 16}
|
||||
@ -1055,7 +1037,6 @@ packages:
|
||||
vite: 2.9.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@tailwindcss/forms/0.5.0_tailwindcss@3.0.23:
|
||||
resolution: {integrity: sha512-KzWugryEBFkmoaYcBE18rs6gthWCFHHO7cAZm2/hv3hwD67AzwP7udSCa22E7R1+CEJL/FfhYsJWrc0b1aeSzw==}
|
||||
@ -1994,16 +1975,6 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [android]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-android-arm64/0.14.23:
|
||||
resolution: {integrity: sha512-k9sXem++mINrZty1v4FVt6nC5BQCFG4K2geCIUUqHNlTdFnuvcqsY7prcKZLFhqVC1rbcJAr9VSUGFL/vD4vsw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [android]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-android-arm64/0.14.31:
|
||||
@ -2012,16 +1983,6 @@ packages:
|
||||
cpu: [arm64]
|
||||
os: [android]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-darwin-64/0.14.23:
|
||||
resolution: {integrity: sha512-lB0XRbtOYYL1tLcYw8BoBaYsFYiR48RPrA0KfA/7RFTr4MV7Bwy/J4+7nLsVnv9FGuQummM3uJ93J3ptaTqFug==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-darwin-64/0.14.31:
|
||||
@ -2030,16 +1991,6 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-darwin-arm64/0.14.23:
|
||||
resolution: {integrity: sha512-yat73Z/uJ5tRcfRiI4CCTv0FSnwErm3BJQeZAh+1tIP0TUNh6o+mXg338Zl5EKChD+YGp6PN+Dbhs7qa34RxSw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-darwin-arm64/0.14.31:
|
||||
@ -2048,16 +1999,6 @@ packages:
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-freebsd-64/0.14.23:
|
||||
resolution: {integrity: sha512-/1xiTjoLuQ+LlbfjJdKkX45qK/M7ARrbLmyf7x3JhyQGMjcxRYVR6Dw81uH3qlMHwT4cfLW4aEVBhP1aNV7VsA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [freebsd]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-freebsd-64/0.14.31:
|
||||
@ -2066,16 +2007,6 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [freebsd]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-freebsd-arm64/0.14.23:
|
||||
resolution: {integrity: sha512-uyPqBU/Zcp6yEAZS4LKj5jEE0q2s4HmlMBIPzbW6cTunZ8cyvjG6YWpIZXb1KK3KTJDe62ltCrk3VzmWHp+iLg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [freebsd]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-freebsd-arm64/0.14.31:
|
||||
@ -2084,16 +2015,6 @@ packages:
|
||||
cpu: [arm64]
|
||||
os: [freebsd]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-32/0.14.23:
|
||||
resolution: {integrity: sha512-37R/WMkQyUfNhbH7aJrr1uCjDVdnPeTHGeDhZPUNhfoHV0lQuZNCKuNnDvlH/u/nwIYZNdVvz1Igv5rY/zfrzQ==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [ia32]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-32/0.14.31:
|
||||
@ -2102,16 +2023,6 @@ packages:
|
||||
cpu: [ia32]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-64/0.14.23:
|
||||
resolution: {integrity: sha512-H0gztDP60qqr8zoFhAO64waoN5yBXkmYCElFklpd6LPoobtNGNnDe99xOQm28+fuD75YJ7GKHzp/MLCLhw2+vQ==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-64/0.14.31:
|
||||
@ -2120,16 +2031,6 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-arm/0.14.23:
|
||||
resolution: {integrity: sha512-x64CEUxi8+EzOAIpCUeuni0bZfzPw/65r8tC5cy5zOq9dY7ysOi5EVQHnzaxS+1NmV+/RVRpmrzGw1QgY2Xpmw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-arm/0.14.31:
|
||||
@ -2138,16 +2039,6 @@ packages:
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-arm64/0.14.23:
|
||||
resolution: {integrity: sha512-c4MLOIByNHR55n3KoYf9hYDfBRghMjOiHLaoYLhkQkIabb452RWi+HsNgB41sUpSlOAqfpqKPFNg7VrxL3UX9g==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-arm64/0.14.31:
|
||||
@ -2156,16 +2047,6 @@ packages:
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-mips64le/0.14.23:
|
||||
resolution: {integrity: sha512-kHKyKRIAedYhKug2EJpyJxOUj3VYuamOVA1pY7EimoFPzaF3NeY7e4cFBAISC/Av0/tiV0xlFCt9q0HJ68IBIw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [mips64el]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-mips64le/0.14.31:
|
||||
@ -2174,16 +2055,6 @@ packages:
|
||||
cpu: [mips64el]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-ppc64le/0.14.23:
|
||||
resolution: {integrity: sha512-7ilAiJEPuJJnJp/LiDO0oJm5ygbBPzhchJJh9HsHZzeqO+3PUzItXi+8PuicY08r0AaaOe25LA7sGJ0MzbfBag==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-ppc64le/0.14.31:
|
||||
@ -2192,16 +2063,6 @@ packages:
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-riscv64/0.14.23:
|
||||
resolution: {integrity: sha512-fbL3ggK2wY0D8I5raPIMPhpCvODFE+Bhb5QGtNP3r5aUsRR6TQV+ZBXIaw84iyvKC8vlXiA4fWLGhghAd/h/Zg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-riscv64/0.14.31:
|
||||
@ -2210,16 +2071,6 @@ packages:
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-s390x/0.14.23:
|
||||
resolution: {integrity: sha512-GHMDCyfy7+FaNSO8RJ8KCFsnax8fLUsOrj9q5Gi2JmZMY0Zhp75keb5abTFCq2/Oy6KVcT0Dcbyo/bFb4rIFJA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-s390x/0.14.31:
|
||||
@ -2228,16 +2079,6 @@ packages:
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-netbsd-64/0.14.23:
|
||||
resolution: {integrity: sha512-ovk2EX+3rrO1M2lowJfgMb/JPN1VwVYrx0QPUyudxkxLYrWeBxDKQvc6ffO+kB4QlDyTfdtAURrVzu3JeNdA2g==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [netbsd]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-netbsd-64/0.14.31:
|
||||
@ -2246,16 +2087,6 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [netbsd]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-openbsd-64/0.14.23:
|
||||
resolution: {integrity: sha512-uYYNqbVR+i7k8ojP/oIROAHO9lATLN7H2QeXKt2H310Fc8FJj4y3Wce6hx0VgnJ4k1JDrgbbiXM8rbEgQyg8KA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [openbsd]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-openbsd-64/0.14.31:
|
||||
@ -2264,16 +2095,6 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [openbsd]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-sunos-64/0.14.23:
|
||||
resolution: {integrity: sha512-hAzeBeET0+SbScknPzS2LBY6FVDpgE+CsHSpe6CEoR51PApdn2IB0SyJX7vGelXzlyrnorM4CAsRyb9Qev4h9g==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [sunos]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-sunos-64/0.14.31:
|
||||
@ -2282,16 +2103,6 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [sunos]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-windows-32/0.14.23:
|
||||
resolution: {integrity: sha512-Kttmi3JnohdaREbk6o9e25kieJR379TsEWF0l39PQVHXq3FR6sFKtVPgY8wk055o6IB+rllrzLnbqOw/UV60EA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-windows-32/0.14.31:
|
||||
@ -2300,16 +2111,6 @@ packages:
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-windows-64/0.14.23:
|
||||
resolution: {integrity: sha512-JtIT0t8ymkpl6YlmOl6zoSWL5cnCgyLaBdf/SiU/Eg3C13r0NbHZWNT/RDEMKK91Y6t79kTs3vyRcNZbfu5a8g==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-windows-64/0.14.31:
|
||||
@ -2318,16 +2119,6 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild-windows-arm64/0.14.23:
|
||||
resolution: {integrity: sha512-cTFaQqT2+ik9e4hePvYtRZQ3pqOvKDVNarzql0VFIzhc0tru/ZgdLoXd6epLiKT+SzoSce6V9YJ+nn6RCn6SHw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-windows-arm64/0.14.31:
|
||||
@ -2336,36 +2127,8 @@ packages:
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/esbuild/0.14.23:
|
||||
resolution: {integrity: sha512-XjnIcZ9KB6lfonCa+jRguXyRYcldmkyZ99ieDksqW/C8bnyEX299yA4QH2XcgijCgaddEZePPTgvx/2imsq7Ig==}
|
||||
engines: {node: '>=12'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
optionalDependencies:
|
||||
esbuild-android-arm64: 0.14.23
|
||||
esbuild-darwin-64: 0.14.23
|
||||
esbuild-darwin-arm64: 0.14.23
|
||||
esbuild-freebsd-64: 0.14.23
|
||||
esbuild-freebsd-arm64: 0.14.23
|
||||
esbuild-linux-32: 0.14.23
|
||||
esbuild-linux-64: 0.14.23
|
||||
esbuild-linux-arm: 0.14.23
|
||||
esbuild-linux-arm64: 0.14.23
|
||||
esbuild-linux-mips64le: 0.14.23
|
||||
esbuild-linux-ppc64le: 0.14.23
|
||||
esbuild-linux-riscv64: 0.14.23
|
||||
esbuild-linux-s390x: 0.14.23
|
||||
esbuild-netbsd-64: 0.14.23
|
||||
esbuild-openbsd-64: 0.14.23
|
||||
esbuild-sunos-64: 0.14.23
|
||||
esbuild-windows-32: 0.14.23
|
||||
esbuild-windows-64: 0.14.23
|
||||
esbuild-windows-arm64: 0.14.23
|
||||
dev: true
|
||||
|
||||
/esbuild/0.14.31:
|
||||
resolution: {integrity: sha512-QA0fUM13+JZzcvg1bdrhi7wo8Lr5IRHA9ypNn2znqxGqb66dSK6pAh01TjyBOhzZGazPQJZ1K26VrCAQJ715qA==}
|
||||
engines: {node: '>=12'}
|
||||
@ -2392,7 +2155,6 @@ packages:
|
||||
esbuild-windows-32: 0.14.31
|
||||
esbuild-windows-64: 0.14.31
|
||||
esbuild-windows-arm64: 0.14.31
|
||||
dev: false
|
||||
|
||||
/escalade/3.1.1:
|
||||
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
|
||||
@ -3316,7 +3078,6 @@ packages:
|
||||
/mrmime/1.0.0:
|
||||
resolution: {integrity: sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==}
|
||||
engines: {node: '>=10'}
|
||||
dev: false
|
||||
|
||||
/ms/2.1.2:
|
||||
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
|
||||
@ -3339,7 +3100,6 @@ packages:
|
||||
resolution: {integrity: sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==}
|
||||
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/nice-try/1.0.5:
|
||||
resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
|
||||
@ -3680,7 +3440,6 @@ packages:
|
||||
nanoid: 3.3.2
|
||||
picocolors: 1.0.0
|
||||
source-map-js: 1.0.2
|
||||
dev: false
|
||||
|
||||
/postcss/8.4.6:
|
||||
resolution: {integrity: sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==}
|
||||
@ -3838,6 +3597,11 @@ packages:
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
|
||||
/regexparam/2.0.0:
|
||||
resolution: {integrity: sha512-gJKwd2MVPWHAIFLsaYDZfyKzHNS4o7E/v8YmNf44vmeV2e4YfVoDToTOKTvE7ab68cRJ++kLuEXJBaEeJVt5ow==}
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/request-promise-core/1.1.4_request@2.88.2:
|
||||
resolution: {integrity: sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@ -4340,20 +4104,6 @@ packages:
|
||||
dependencies:
|
||||
svelte: 3.46.3
|
||||
|
||||
/svelte-i18n/3.3.13:
|
||||
resolution: {integrity: sha512-RQM+ys4+Y9ztH//tX22H1UL2cniLNmIR+N4xmYygV6QpQ6EyQvloZiENRew8XrVzfvJ8HaE8NU6/yurLkl7z3g==}
|
||||
engines: {node: '>= 11.15.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
svelte: ^3.25.1
|
||||
dependencies:
|
||||
deepmerge: 4.2.2
|
||||
estree-walker: 2.0.2
|
||||
intl-messageformat: 9.11.4
|
||||
sade: 1.8.1
|
||||
tiny-glob: 0.2.9
|
||||
dev: false
|
||||
|
||||
/svelte-i18n/3.3.13_svelte@3.46.3:
|
||||
resolution: {integrity: sha512-RQM+ys4+Y9ztH//tX22H1UL2cniLNmIR+N4xmYygV6QpQ6EyQvloZiENRew8XrVzfvJ8HaE8NU6/yurLkl7z3g==}
|
||||
engines: {node: '>= 11.15.0'}
|
||||
@ -4824,30 +4574,6 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/vite/2.8.4:
|
||||
resolution: {integrity: sha512-GwtOkkaT2LDI82uWZKcrpRQxP5tymLnC7hVHHqNkhFNknYr0hJUlDLfhVRgngJvAy3RwypkDCWtTKn1BjO96Dw==}
|
||||
engines: {node: '>=12.2.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
less: '*'
|
||||
sass: '*'
|
||||
stylus: '*'
|
||||
peerDependenciesMeta:
|
||||
less:
|
||||
optional: true
|
||||
sass:
|
||||
optional: true
|
||||
stylus:
|
||||
optional: true
|
||||
dependencies:
|
||||
esbuild: 0.14.23
|
||||
postcss: 8.4.6
|
||||
resolve: 1.22.0
|
||||
rollup: 2.66.1
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.2
|
||||
dev: true
|
||||
|
||||
/vite/2.9.1:
|
||||
resolution: {integrity: sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ==}
|
||||
engines: {node: '>=12.2.0'}
|
||||
@ -4870,7 +4596,6 @@ packages:
|
||||
rollup: 2.66.1
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.2
|
||||
dev: false
|
||||
|
||||
/vitest/0.7.4_happy-dom@2.49.0:
|
||||
resolution: {integrity: sha512-6kyJ/YZJFVj/zEVVHFyvLvAZlbg05yAyJrk7oP+FOCFanGRYK7bBEz4qsIpNHxX+dlf5vRkbBDjpdXzGL7udeA==}
|
||||
@ -4991,6 +4716,14 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/worktop/0.8.0-next.12:
|
||||
resolution: {integrity: sha512-ZXdgI9XOf0uB4IegFoViLdQ0Bf7hish0XMHwuV3nopOXygfLJkwAC5+HyA+sihBMSM2sLLQ5uGnD5aknL8+NQg==}
|
||||
engines: {node: '>=12'}
|
||||
dependencies:
|
||||
mrmime: 1.0.0
|
||||
regexparam: 2.0.0
|
||||
dev: true
|
||||
|
||||
/wrappy/1.0.2:
|
||||
resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user