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 CHANGED
@@ -1,8 +1,54 @@
1
- <div align="center">
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
- Galaxy Charts is a JavaScript-based visualization framework for Galaxy, designed with a streamlined plugin interface. This framework enables developers to create Galaxy visualizations using modern tools like Vite and Vue3. With Galaxy Charts, you can connect to both local and public Galaxy instances, allowing you to test visualizations with real-world data prior to publishing.
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
- Learn more at [https://galaxyproject.github.io/galaxy-charts/](https://galaxyproject.github.io/galaxy-charts/).
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
+ ---
@@ -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.log(l);
18953
+ console.debug(l);
18954
18954
  }
18955
18955
  else
18956
- console.log("Data column selector disabled, since `datasetId` is unavailable.");
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[9] || (s[9] = (f) => l())
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.getAttribute("data-incoming")) || "{}");
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
  }