galaxy-charts 0.0.68 โ 0.0.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -6
- package/dist/galaxy-charts.js +14 -42
- package/dist/galaxy-charts.umd.cjs +20 -20
- package/package.json +6 -4
package/README.md
CHANGED
|
@@ -1,8 +1,54 @@
|
|
|
1
|
-
<
|
|
2
|
-
<img src="https://cdn.jsdelivr.net/gh/galaxyproject/galaxy-charts/docs/public/galaxy-charts.svg" alt="Description" width="50">
|
|
3
|
-
<h3>Welcome to Galaxy Charts!</h3>
|
|
4
|
-
</div>
|
|
1
|
+
# <img src="https://cdn.jsdelivr.net/gh/galaxyproject/galaxy-charts/docs/public/galaxy-charts.svg" alt="Galaxy Charts Logo" width="24" /> Galaxy Charts
|
|
5
2
|
|
|
6
|
-
|
|
3
|
+
A modern JavaScript visualization framework for the [Galaxy Project](https://galaxyproject.org), built with [Vue 3](https://vuejs.org/) and [Vite](https://vitejs.dev/). It provides the core infrastructure for developing Galaxy visualizations using a simple and extensible plugin interface.
|
|
7
4
|
|
|
8
|
-
|
|
5
|
+
> ๐ก To quickly start building your own Galaxy visualizations, use the [Galaxy Charts Starter Template](https://github.com/guerler/galaxy-charts-starter) and run `npm install && npm run dev`.
|
|
6
|
+
|
|
7
|
+
๐ **Documentation**: [https://charts.galaxyproject.org](https://charts.galaxyproject.org)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## ๐ Getting Started
|
|
12
|
+
|
|
13
|
+
To build your own visualization:
|
|
14
|
+
|
|
15
|
+
1. **Use the Starter Template**
|
|
16
|
+
Begin with the ready-to-go starter project:
|
|
17
|
+
```bash
|
|
18
|
+
npx degit guerler/galaxy-charts-starter my-viz
|
|
19
|
+
cd my-viz
|
|
20
|
+
npm install
|
|
21
|
+
npm run dev
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
2. **Develop Your Plugin**
|
|
25
|
+
Customize the included plugin or create your own inside the `src/plugins` directory.
|
|
26
|
+
|
|
27
|
+
3. **Preview and Iterate**
|
|
28
|
+
Use the development server (`http://localhost:3000`) to test your visualization live against Galaxy datasets.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## โจ Features
|
|
33
|
+
|
|
34
|
+
- โก **Built with Vite**: Fast bundling and lightning-fast hot module replacement.
|
|
35
|
+
- ๐จ **Vue 3 Components**: Use composable and reactive components for visualizations.
|
|
36
|
+
- ๐ **Plugin Architecture**: Create, test, and extend visualizations as isolated plugins.
|
|
37
|
+
- ๐ **Connect to Galaxy**: Pull datasets from any accessible Galaxy instance.
|
|
38
|
+
- ๐งช **Test with Real Data**: Debug and verify visualizations with real datasets before deployment.
|
|
39
|
+
- ๐ฆ **Deploy-Ready**: Easily publish plugins or integrate into Galaxy instances.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## ๐ค Contributing
|
|
44
|
+
|
|
45
|
+
We welcome contributions from the community! To get started:
|
|
46
|
+
|
|
47
|
+
1. Fork the repository.
|
|
48
|
+
2. Create a new branch for your feature or fix.
|
|
49
|
+
3. Make your changes.
|
|
50
|
+
4. Open a pull request with a clear description of what youโve done.
|
|
51
|
+
|
|
52
|
+
For larger changes or questions, feel free to open an issue first to discuss it with the maintainers.
|
|
53
|
+
|
|
54
|
+
---
|
package/dist/galaxy-charts.js
CHANGED
|
@@ -18950,10 +18950,10 @@ const iy = /* @__PURE__ */ de({
|
|
|
18950
18950
|
const { data: l } = await sr().GET(`/api/datasets/${t.datasetId}`), a = oy(l, t.isAuto, t.isText, t.isNumber);
|
|
18951
18951
|
n.value = a, i();
|
|
18952
18952
|
} catch (l) {
|
|
18953
|
-
console.
|
|
18953
|
+
console.debug(l);
|
|
18954
18954
|
}
|
|
18955
18955
|
else
|
|
18956
|
-
console.
|
|
18956
|
+
console.debug("Data column selector disabled, since `datasetId` is unavailable.");
|
|
18957
18957
|
}
|
|
18958
18958
|
function i() {
|
|
18959
18959
|
n.value.length > 0 && r.value === null && (r.value = n.value[0].value);
|
|
@@ -19010,44 +19010,29 @@ const iy = /* @__PURE__ */ de({
|
|
|
19010
19010
|
d.type === "boolean" ? (we(), et(ge(Td), {
|
|
19011
19011
|
key: 0,
|
|
19012
19012
|
value: o.value[d.name],
|
|
19013
|
-
"onUpdate:value": [
|
|
19014
|
-
(f) => o.value[d.name] = f,
|
|
19015
|
-
s[0] || (s[0] = (f) => l())
|
|
19016
|
-
]
|
|
19013
|
+
"onUpdate:value": [(f) => o.value[d.name] = f, l]
|
|
19017
19014
|
}, null, 8, ["value", "onUpdate:value"])) : d.type === "color" ? (we(), et(ge(dx), {
|
|
19018
19015
|
key: 1,
|
|
19019
19016
|
value: o.value[d.name],
|
|
19020
|
-
"onUpdate:value": [
|
|
19021
|
-
(f) => o.value[d.name] = f,
|
|
19022
|
-
s[1] || (s[1] = (f) => l())
|
|
19023
|
-
],
|
|
19017
|
+
"onUpdate:value": [(f) => o.value[d.name] = f, l],
|
|
19024
19018
|
modes: ["hex"],
|
|
19025
19019
|
"show-alpha": !1
|
|
19026
19020
|
}, null, 8, ["value", "onUpdate:value"])) : d.type === "conditional" ? (we(), et(ey, {
|
|
19027
19021
|
key: 2,
|
|
19028
19022
|
value: o.value[d.name],
|
|
19029
|
-
"onUpdate:value": [
|
|
19030
|
-
(f) => o.value[d.name] = f,
|
|
19031
|
-
s[2] || (s[2] = (f) => l())
|
|
19032
|
-
],
|
|
19023
|
+
"onUpdate:value": [(f) => o.value[d.name] = f, l],
|
|
19033
19024
|
"dataset-id": a.datasetId,
|
|
19034
19025
|
input: d
|
|
19035
19026
|
}, null, 8, ["value", "onUpdate:value", "dataset-id", "input"])) : d.type === "data" ? (we(), et(ry, {
|
|
19036
19027
|
key: 3,
|
|
19037
19028
|
value: o.value[d.name],
|
|
19038
|
-
"onUpdate:value": [
|
|
19039
|
-
(f) => o.value[d.name] = f,
|
|
19040
|
-
s[3] || (s[3] = (f) => l())
|
|
19041
|
-
],
|
|
19029
|
+
"onUpdate:value": [(f) => o.value[d.name] = f, l],
|
|
19042
19030
|
extension: d.extension,
|
|
19043
19031
|
optional: ge(Cr)(d.optional)
|
|
19044
19032
|
}, null, 8, ["value", "onUpdate:value", "extension", "optional"])) : d.type === "data_column" ? (we(), et(iy, {
|
|
19045
19033
|
key: 4,
|
|
19046
19034
|
value: o.value[d.name],
|
|
19047
|
-
"onUpdate:value": [
|
|
19048
|
-
(f) => o.value[d.name] = f,
|
|
19049
|
-
s[4] || (s[4] = (f) => l())
|
|
19050
|
-
],
|
|
19035
|
+
"onUpdate:value": [(f) => o.value[d.name] = f, l],
|
|
19051
19036
|
"dataset-id": a.datasetId,
|
|
19052
19037
|
"is-auto": ge(Cr)(d.is_auto),
|
|
19053
19038
|
"is-text": ge(Cr)(d.is_text),
|
|
@@ -19057,20 +19042,14 @@ const iy = /* @__PURE__ */ de({
|
|
|
19057
19042
|
key: 0,
|
|
19058
19043
|
class: "mb-2",
|
|
19059
19044
|
value: o.value[d.name],
|
|
19060
|
-
"onUpdate:value": [
|
|
19061
|
-
(f) => o.value[d.name] = f,
|
|
19062
|
-
s[5] || (s[5] = (f) => l())
|
|
19063
|
-
],
|
|
19045
|
+
"onUpdate:value": [(f) => o.value[d.name] = f, l],
|
|
19064
19046
|
min: Number(d.min),
|
|
19065
19047
|
max: Number(d.max),
|
|
19066
19048
|
step: d.type === "float" ? Ll : 1
|
|
19067
19049
|
}, null, 8, ["value", "onUpdate:value", "min", "max", "step"])) : _t("", !0),
|
|
19068
19050
|
Re(ge(Ox), {
|
|
19069
19051
|
value: o.value[d.name],
|
|
19070
|
-
"onUpdate:value": [
|
|
19071
|
-
(f) => o.value[d.name] = f,
|
|
19072
|
-
s[6] || (s[6] = (f) => l())
|
|
19073
|
-
],
|
|
19052
|
+
"onUpdate:value": [(f) => o.value[d.name] = f, l],
|
|
19074
19053
|
size: "small",
|
|
19075
19054
|
min: Number(d.min),
|
|
19076
19055
|
max: Number(d.max),
|
|
@@ -19079,18 +19058,12 @@ const iy = /* @__PURE__ */ de({
|
|
|
19079
19058
|
])) : d.type === "select" ? (we(), et(ge(Fo), {
|
|
19080
19059
|
key: 6,
|
|
19081
19060
|
value: o.value[d.name],
|
|
19082
|
-
"onUpdate:value": [
|
|
19083
|
-
(f) => o.value[d.name] = f,
|
|
19084
|
-
s[7] || (s[7] = (f) => l())
|
|
19085
|
-
],
|
|
19061
|
+
"onUpdate:value": [(f) => o.value[d.name] = f, l],
|
|
19086
19062
|
options: d.data
|
|
19087
19063
|
}, null, 8, ["value", "onUpdate:value", "options"])) : d.type === "textarea" ? (we(), et(ge(ar), {
|
|
19088
19064
|
key: 7,
|
|
19089
19065
|
value: o.value[d.name],
|
|
19090
|
-
"onUpdate:value": [
|
|
19091
|
-
(f) => o.value[d.name] = f,
|
|
19092
|
-
s[8] || (s[8] = (f) => l())
|
|
19093
|
-
],
|
|
19066
|
+
"onUpdate:value": [(f) => o.value[d.name] = f, l],
|
|
19094
19067
|
rows: Number(d.rows),
|
|
19095
19068
|
type: "textarea"
|
|
19096
19069
|
}, null, 8, ["value", "onUpdate:value", "rows"])) : (we(), et(ge(ar), {
|
|
@@ -19098,7 +19071,7 @@ const iy = /* @__PURE__ */ de({
|
|
|
19098
19071
|
value: o.value[d.name],
|
|
19099
19072
|
"onUpdate:value": [
|
|
19100
19073
|
(f) => o.value[d.name] = f,
|
|
19101
|
-
s[
|
|
19074
|
+
s[0] || (s[0] = (f) => l())
|
|
19102
19075
|
]
|
|
19103
19076
|
}, null, 8, ["value", "onUpdate:value"]))
|
|
19104
19077
|
])
|
|
@@ -19158,10 +19131,9 @@ const iy = /* @__PURE__ */ de({
|
|
|
19158
19131
|
Re(ge(Vt), {
|
|
19159
19132
|
class: "w-full mt-2",
|
|
19160
19133
|
"data-description": "remove repeat block",
|
|
19134
|
+
disabled: s.valuesArray.length <= 1,
|
|
19161
19135
|
size: "tiny",
|
|
19162
19136
|
type: "primary",
|
|
19163
|
-
round: "",
|
|
19164
|
-
disabled: s.valuesArray.length <= 1,
|
|
19165
19137
|
onClick: (v) => l(f)
|
|
19166
19138
|
}, {
|
|
19167
19139
|
default: Fe(() => [
|
|
@@ -19496,7 +19468,7 @@ function By(e, t = "app") {
|
|
|
19496
19468
|
if (e === void 0) {
|
|
19497
19469
|
const a = document.getElementById(t);
|
|
19498
19470
|
if (a)
|
|
19499
|
-
e = JSON.parse((a == null ? void 0 : a.
|
|
19471
|
+
e = JSON.parse((a == null ? void 0 : a.dataset.incoming) || "{}");
|
|
19500
19472
|
else
|
|
19501
19473
|
throw new Error(`Container element '${t}' not found.`);
|
|
19502
19474
|
}
|