No description
  • TypeScript 51.6%
  • Vue 36.3%
  • JavaScript 11.5%
  • HTML 0.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
renovate-bot a9d2c03b09
All checks were successful
ci / build (push) Successful in 30s
ci / publish (push) Successful in 30s
chore(deps): lock file maintenance (#30)
This PR contains the following updates:

| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |

🔧 This Pull Request updates lock files to use the latest dependency versions.

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "before 6am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xOTguMyIsInVwZGF0ZWRJblZlciI6IjQ0LjE5OC4zIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->

Reviewed-on: #30
2026-11-02 06:15:10 +00:00
.forgejo Send publish reports to Argus from the release job (#27) 2026-10-30 09:55:41 +00:00
dev README in English, add dashboard/query screenshots 2026-10-10 08:22:07 +02:00
docs/screenshots README in English, add dashboard/query screenshots 2026-10-10 08:22:07 +02:00
src Chart options for time series (#25) 2026-10-29 22:02:34 +00:00
.gitignore Scaffold bigb-vue: composants Vue 3 pour bigb-django 2026-10-09 23:15:33 +02:00
COPYING Scaffold bigb-vue: composants Vue 3 pour bigb-django 2026-10-09 23:15:33 +02:00
COPYING.LESSER Scaffold bigb-vue: composants Vue 3 pour bigb-django 2026-10-09 23:15:33 +02:00
eslint.config.js Fix build/lint toolchain: declaration emit, ESLint TS parsing 2026-10-10 07:41:27 +02:00
index.html Scaffold bigb-vue: composants Vue 3 pour bigb-django 2026-10-09 23:15:33 +02:00
package.json Chart options for time series (#25) 2026-10-29 22:02:34 +00:00
pnpm-lock.yaml chore(deps): lock file maintenance (#30) 2026-11-02 06:15:10 +00:00
pnpm-workspace.yaml chore(deps): update dependency vue to v3.5.44 (#11) 2026-10-13 21:55:23 +00:00
README.md Chart options for time series (#25) 2026-10-29 22:02:34 +00:00
renovate.json Scaffold bigb-vue: composants Vue 3 pour bigb-django 2026-10-09 23:15:33 +02:00
tsconfig.json Chart options for time series (#25) 2026-10-29 22:02:34 +00:00
vite.config.ts README in English, add dashboard/query screenshots 2026-10-10 08:22:07 +02:00

bigb-vue

CI License: LGPL v3

Vue 3 components for bigb-django: interactive grid dashboards (drag/resize), query rendering (table, number, Chart.js), or injecting the SVG rendered server-side.

Screenshots

Dashboard (table, number, line, bar, pie, backend SVG) Standalone query result
Dashboard with six tiles of different render types A single bar chart query result

Installation

npm install bigb-vue
import { createBigbClient, BigbDashboard, BigbQueryResult } from "bigb-vue";

const client = createBigbClient({ baseURL: "/bigb" });
<!-- a full dashboard, read-only -->
<BigbDashboard :client="client" slug="sales" />

<!-- the same dashboard, with layout editing (drag/resize) enabled -->
<BigbDashboard :client="client" slug="sales" editable />

<!-- a single query, outside of any dashboard -->
<BigbQueryResult :client="client" slug="paid-orders" render-type="bar" />

Components

  • BigbDashboard: interactive grid (grid-layout-plus), loads the dashboard and its tiles, PATCHes positions in editable mode.
  • BigbTile: a single tile, dispatches to the right renderer based on render_type/render_target.
  • BigbQueryResult: a single query (named via slug, or ad hoc via spec), outside of any dashboard.
  • Renderers (also exported individually if needed directly): TableRenderer, NumberRenderer, ChartRenderer (line/bar/pie via Chart.js), SvgRenderer (injects the SVG rendered server-side).

Chart options

ChartRenderer (prop options), BigbQueryResult (prop chartOptions) and dashboard tiles (options.chart) accept optional chart options -- without them a chart renders exactly as before:

{
  xAxis: "time",               // x values are dates, placed proportionally
  step: true,                  // each value holds until the next one
  unit: "%",                   // axis, tooltip and table values
  color: "var(--chart-line)",  // CSS color or variable, resolved at render time
  table: true,                 // the values as a table under the chart
}

A single series then gets no legend (its title names it), a 2px line and a 10% area wash (hex colors); the tooltip follows the nearest x.

<BigbQueryResult
  :client="client"
  :spec="{ model: 'reports.ReportMetric', fields: ['at', 'value'], order_by: ['at'] }"
  render-type="line"
  :chart-options="{ xAxis: 'time', step: true, unit: '%' }"
/>

Composables

  • useQuery(fetcher, { immediate }): generic reactive wrapper (data/loading/error/refresh) around any call returning a QueryResult.
  • useDashboard(client, slug): loads a dashboard and exposes updateTileLayout().

Development

Requires Node.js (verified with Node 22).

npm install
npm run dev     # local demo (index.html + dev/App.vue), VITE_BIGB_BASE_URL for the API
npm run build   # vite build && vue-tsc -b (library mode + .d.ts declarations)
npm run lint    # eslint

npm audit reports 4 moderate/dev-only vulnerabilities (esbuild's dev server, postcss-selector-parser via eslint-plugin-vue) -- none affect the published code in dist/. npm audit fix --force would fix them but bumps vite to v8 and eslint-plugin-vue to v10 (breaking changes); left to Renovate rather than a forced bump here.