@rozaqi02/reusable-dashboard 1.1.4 → 1.2.0
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/CHANGELOG.md +14 -0
- package/README.md +69 -1
- package/dist/index.cjs +921 -493
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +916 -493
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented in this file.
|
|
4
4
|
|
|
5
|
+
## [1.2.0] - 2026-06-06
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
1. `<AutoDashboard>` — komponen plug-and-play untuk domain transaksional. Client cukup memberi prop `supabase`, `table`, dan pemetaan `columns`; data source, adapter, dan widget config dirakit otomatis tanpa menulis file konfigurasi terpisah.
|
|
10
|
+
2. `createUniversalSource(supabase, { table, columns })` — data source generik yang menormalkan baris ke bentuk kanonik berdasarkan pemetaan kolom runtime.
|
|
11
|
+
3. `adaptUniversalData` + `createEmptyUniversalData` — adapter generik yang menghasilkan struktur `{ stats, charts, table }` dari data kanonik.
|
|
12
|
+
4. `createUniversalWidgetConfig(columns)` — membangun widget config secara dinamis sesuai kolom yang dipetakan.
|
|
13
|
+
|
|
14
|
+
### Notes
|
|
15
|
+
|
|
16
|
+
- Preset `cidika`, `tokoSepatu`, dan `dummyUmkm` tetap tersedia untuk kasus yang butuh kontrol penuh.
|
|
17
|
+
- `<AutoDashboard>` ditujukan untuk data transaksional (waktu + status + nilai). Domain non-transaksional tetap memakai adapter manual.
|
|
18
|
+
|
|
5
19
|
## [1.0.0] - 2026-04-15
|
|
6
20
|
|
|
7
21
|
### Added
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Modul dashboard admin reusable untuk aplikasi UMKM berbasis React + Supabase.
|
|
|
4
4
|
Mendukung berbagai domain bisnis (travel, toko online, UMKM generik) tanpa menulis ulang komponen.
|
|
5
5
|
CSS sudah terbundle — tidak perlu konfigurasi Tailwind.
|
|
6
6
|
|
|
7
|
-
[](./CHANGELOG.md)
|
|
8
8
|
[](./LICENSE)
|
|
9
9
|
[](https://www.npmjs.com/package/@rozaqi02/reusable-dashboard)
|
|
10
10
|
|
|
@@ -12,6 +12,7 @@ CSS sudah terbundle — tidak perlu konfigurasi Tailwind.
|
|
|
12
12
|
|
|
13
13
|
## Daftar Isi
|
|
14
14
|
|
|
15
|
+
0. [⚡ Cara Tercepat — `<AutoDashboard>` (Plug & Play)](#0-cara-tercepat--autodashboard-plug--play)
|
|
15
16
|
1. [Instalasi](#1-instalasi)
|
|
16
17
|
2. [Prasyarat Teknis](#2-prasyarat-teknis)
|
|
17
18
|
3. [Preset yang Tersedia](#3-preset-yang-tersedia)
|
|
@@ -28,6 +29,73 @@ CSS sudah terbundle — tidak perlu konfigurasi Tailwind.
|
|
|
28
29
|
|
|
29
30
|
---
|
|
30
31
|
|
|
32
|
+
## 0. Cara Tercepat — `<AutoDashboard>` (Plug & Play)
|
|
33
|
+
|
|
34
|
+
Kalau kamu hanya ingin dashboard jadi **tanpa menulis file config apa pun**, pakai
|
|
35
|
+
komponen `<AutoDashboard>`. Cukup beri tahu nama tabel dan pemetaan kolom — modul
|
|
36
|
+
merakit data source, adapter, dan widget config secara otomatis di balik layar.
|
|
37
|
+
|
|
38
|
+
```jsx
|
|
39
|
+
import { AutoDashboard } from "@rozaqi02/reusable-dashboard";
|
|
40
|
+
import { supabase } from "./lib/supabaseClient";
|
|
41
|
+
|
|
42
|
+
export default function Dashboard() {
|
|
43
|
+
return (
|
|
44
|
+
<AutoDashboard
|
|
45
|
+
supabase={supabase}
|
|
46
|
+
table="bookings"
|
|
47
|
+
columns={{
|
|
48
|
+
date: "created_at", // WAJIB — kolom timestamp
|
|
49
|
+
status: "status", // opsional — kolom status transaksi
|
|
50
|
+
total: "total_idr", // opsional — kolom nilai uang
|
|
51
|
+
customer: "customer_name", // opsional — nama pelanggan
|
|
52
|
+
item: "package_id", // opsional — nama produk/paket/layanan
|
|
53
|
+
audience: "audience", // opsional — segmen pelanggan
|
|
54
|
+
}}
|
|
55
|
+
confirmedValue="confirmed" // nilai status yang dihitung "berhasil"
|
|
56
|
+
pendingValue="pending" // nilai status yang dihitung "menunggu"
|
|
57
|
+
title="Dashboard Cidika"
|
|
58
|
+
/>
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Jangan lupa import CSS-nya sekali saja (lihat [Bab 1](#1-instalasi)).
|
|
64
|
+
|
|
65
|
+
### Props `<AutoDashboard>`
|
|
66
|
+
|
|
67
|
+
| Prop | Tipe | Wajib | Keterangan |
|
|
68
|
+
|------|------|-------|------------|
|
|
69
|
+
| `supabase` | object | ✅ | Instance Supabase client. |
|
|
70
|
+
| `table` | string | ✅ | Nama tabel sumber data, mis. `"bookings"`, `"orders"`. |
|
|
71
|
+
| `columns.date` | string | ✅ | Kolom timestamp untuk tren harian & filter rentang. |
|
|
72
|
+
| `columns.status` | string | — | Kolom status. Tanpa ini semua baris dianggap "berhasil". |
|
|
73
|
+
| `columns.total` | string | — | Kolom nilai uang untuk metrik pendapatan. |
|
|
74
|
+
| `columns.customer` | string | — | Kolom nama pelanggan (muncul di tabel). |
|
|
75
|
+
| `columns.item` | string | — | Kolom produk/paket/layanan (mengaktifkan chart "Item Teratas"). |
|
|
76
|
+
| `columns.audience` | string | — | Kolom segmen (mengaktifkan chart distribusi segmen). |
|
|
77
|
+
| `confirmedValue` | string | — | Nilai status "berhasil" (default `"confirmed"`). |
|
|
78
|
+
| `pendingValue` | string | — | Nilai status "menunggu" (default `"pending"`). |
|
|
79
|
+
| `title` | string | — | Judul dashboard. |
|
|
80
|
+
| `labels` | object | — | Override sebagian/seluruh teks UI (lihat [Bab 9](#9-label--internasionalisasi)). |
|
|
81
|
+
| `dateLocale` | string | — | Locale format tanggal (default `"id-ID"`). |
|
|
82
|
+
|
|
83
|
+
Widget menyesuaikan otomatis: chart "Distribusi Segmen" hanya muncul bila `columns.audience`
|
|
84
|
+
diisi, dan chart "Item Teratas" hanya muncul bila `columns.item` diisi.
|
|
85
|
+
|
|
86
|
+
### Kapan memakai ini vs preset/adapter manual?
|
|
87
|
+
|
|
88
|
+
`<AutoDashboard>` cocok untuk **data transaksional** — data yang punya waktu, status,
|
|
89
|
+
dan (opsional) nilai uang. Ini mencakup mayoritas UMKM: travel, retail, laundry, klinik,
|
|
90
|
+
restoran, rental, kursus, bengkel, dan sejenisnya.
|
|
91
|
+
|
|
92
|
+
Untuk kasus yang lebih kompleks — gabungan banyak tabel, metrik khusus domain
|
|
93
|
+
(rating bintang, okupansi kamar), atau data non-transaksional (blog/CMS, inventori murni) —
|
|
94
|
+
gunakan pendekatan **adapter manual** ([Bab 7](#7-cara-membuat-adapter-untuk-domain-bisnis-baru))
|
|
95
|
+
atau **preset** ([Bab 3](#3-preset-yang-tersedia)) yang memberi kontrol penuh.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
31
99
|
## 1. Instalasi
|
|
32
100
|
|
|
33
101
|
```bash
|