@isi-ui7/bos7-shared 0.4.6 → 0.4.7

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.
@@ -27391,7 +27391,7 @@ function ba(M, L) {
27391
27391
  return String(pr(M, L));
27392
27392
  }
27393
27393
  async function Io(M, L, r) {
27394
- const { default: x } = await import("./jspdf.es.min-C5VEsLZd.js").then((o) => o.j), { default: w } = await import("./jspdf.plugin.autotable-DcntYaes.js"), c = new x({ orientation: "landscape" });
27394
+ const { default: x } = await import("./jspdf.es.min-OHmQQaGr.js").then((o) => o.j), { default: w } = await import("./jspdf.plugin.autotable-DcntYaes.js"), c = new x({ orientation: "landscape" });
27395
27395
  c.setFontSize(14), c.text(r, 14, 15), c.setFontSize(10), w(c, {
27396
27396
  head: [L.map((o) => o.title)],
27397
27397
  body: M.map((o) => L.map((a) => ba(o[a.field], a.displayFormat))),
@@ -27697,8 +27697,26 @@ const vr = "id", _i = "core7_locale", Ea = {
27697
27697
  "bos7.rulePhone": "No HP tidak valid",
27698
27698
  "bos7.boolYes": "Ya",
27699
27699
  "bos7.boolNo": "Tidak",
27700
- "bos7.toggleOn": "On",
27701
- "bos7.toggleOff": "Off",
27700
+ // 🔴 "Ya"/"Tidak", BUKAN "On"/"Off". Kamus ini Indonesia, dan locale
27701
+ // bawaan estate `id`.
27702
+ //
27703
+ // Terukur DG-00, butir 1.8: satu medan boolean menampilkan DUA kosakata di
27704
+ // modul yang SAMA —
27705
+ //
27706
+ // LIST is_printed -> "Ya" / "Tidak" (checkbox -> boolYes/boolNo)
27707
+ // VIEW is_printed -> "On" / "Off" (toggle -> toggleOn/toggleOff)
27708
+ //
27709
+ // Satu konsep boolean, dua widget, dua bahasa. Dan "Ya"/"Tidak" SUDAH ada
27710
+ // di kamus ini, nol terpakai oleh toggle.
27711
+ //
27712
+ // ⚠️ Kaidah user (ditekan 4x) berbunyi "sel menampilkan DESKRIPSI, bukan
27713
+ // nilai mentah". "On" memenuhi hurufnya dan meleset dari maksudnya:
27714
+ // deskripsi yang berbahasa lain dari layarnya nol lebih terbaca dari
27715
+ // `true`.
27716
+ //
27717
+ // EN_DICTIONARY TETAP "On"/"Off" — di sana ia benar.
27718
+ "bos7.toggleOn": "Ya",
27719
+ "bos7.toggleOff": "Tidak",
27702
27720
  "bos7.emptyValue": "—",
27703
27721
  "bos7.loading": "Memuat data...",
27704
27722
  "bos7.saving": "Memproses...",
@@ -28635,8 +28653,14 @@ function tl() {
28635
28653
  rulePhone: M("bos7.rulePhone", "No HP tidak valid"),
28636
28654
  boolYes: M("bos7.boolYes", "Ya"),
28637
28655
  boolNo: M("bos7.boolNo", "Tidak"),
28638
- toggleOn: M("bos7.toggleOn", "On"),
28639
- toggleOff: M("bos7.toggleOff", "Off"),
28656
+ // Fallback Indonesia, sama dengan boolYes/boolNo dua baris di atas.
28657
+ //
28658
+ // 🔴 Sebelumnya "On"/"Off" — fallback berbahasa INGGRIS di blok yang tiap
28659
+ // baris lainnya berbahasa Indonesia. Ia cacat KEDUA dari temuan yang
28660
+ // sama: memperbaiki kamus saja meninggalkan jalur ini, dan jalur ini yang
28661
+ // dipakai kapan pun kuncinya nol ada di kamus locale aktif.
28662
+ toggleOn: M("bos7.toggleOn", "Ya"),
28663
+ toggleOff: M("bos7.toggleOff", "Tidak"),
28640
28664
  emptyValue: M("bos7.emptyValue", "—"),
28641
28665
  showInactive: M("bos7.showInactive", "Tampilkan Nonaktif"),
28642
28666
  loading: M("bos7.loading", "Memuat data..."),
@@ -1,5 +1,5 @@
1
- import { c as Ke, g as Do } from "./index-C_114Ysm.js";
2
- import { _ as Xa } from "./jspdf.es.min-C5VEsLZd.js";
1
+ import { c as Ke, g as Do } from "./index-C-h8WiEp.js";
2
+ import { _ as Xa } from "./jspdf.es.min-OHmQQaGr.js";
3
3
  var vt = function(a) {
4
4
  return a && a.Math === Math && a;
5
5
  }, _ = (
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { m as s, a9 as o, A as t, Y as r, R as i, O as n, l, F as c, G as d, E as u, P as S, a3 as h, a2 as A, a1 as T, a0 as k, af as C, K as _, H as O, I as U, J as g, n as N, ah as P, ag as m, Q as E, i as F, D as p, f, y as I, S as R, j as x, V as v, a8 as y, o as L, h as b, L as B, M as D, T as M, W as H, C as V, e as W, z as q, a7 as K, a5 as w, a6 as z, v as G, aa as Q, ab as X, ac as Y, ad as j, k as J, U as Z, w as $, a4 as aa, Z as ea, _ as sa, p as oa, a as ta, N as ra, q as ia, r as na, $ as la, t as ca, ae as da, s as ua, B as Sa, x as ha, b as Aa, u as Ta, ai as ka, X as Ca, d as _a } from "./index-C_114Ysm.js";
1
+ import { m as s, a9 as o, A as t, Y as r, R as i, O as n, l, F as c, G as d, E as u, P as S, a3 as h, a2 as A, a1 as T, a0 as k, af as C, K as _, H as O, I as U, J as g, n as N, ah as P, ag as m, Q as E, i as F, D as p, f, y as I, S as R, j as x, V as v, a8 as y, o as L, h as b, L as B, M as D, T as M, W as H, C as V, e as W, z as q, a7 as K, a5 as w, a6 as z, v as G, aa as Q, ab as X, ac as Y, ad as j, k as J, U as Z, w as $, a4 as aa, Z as ea, _ as sa, p as oa, a as ta, N as ra, q as ia, r as na, $ as la, t as ca, ae as da, s as ua, B as Sa, x as ha, b as Aa, u as Ta, ai as ka, X as Ca, d as _a } from "./index-C-h8WiEp.js";
2
2
  export {
3
3
  s as AUTH7_SCOPES,
4
4
  o as AppShellLayout,
@@ -9216,7 +9216,7 @@ function(n) {
9216
9216
  var d = h.getContext("2d");
9217
9217
  d.fillStyle = "#fff", d.fillRect(0, 0, h.width, h.height);
9218
9218
  var m = { ignoreMouse: !0, ignoreAnimation: !0, ignoreDimensions: !0 }, _ = this;
9219
- return (Kt.canvg ? Promise.resolve(Kt.canvg) : import("./index.es-B-MluT1E.js")).catch(function(k) {
9219
+ return (Kt.canvg ? Promise.resolve(Kt.canvg) : import("./index.es-C4xrluJC.js")).catch(function(k) {
9220
9220
  return Promise.reject(new Error("Could not load canvg: " + k));
9221
9221
  }).then(function(k) {
9222
9222
  return k.default ? k.default : k;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isi-ui7/bos7-shared",
3
- "version": "0.4.6",
3
+ "version": "0.4.7",
4
4
  "description": "Shared auth7 and layout primitives for bos7 applications.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -70,10 +70,10 @@
70
70
  "peerDependencies": {
71
71
  "@carbon/icons-react": "^11.71.0",
72
72
  "@carbon/react": "^1.97.0",
73
- "@isi-ui7/corporate-themes": ">=0.2.16",
73
+ "@isi-ui7/corporate-themes": ">=0.2.17",
74
74
  "@isi-ui7/data-table": ">=0.2.5",
75
75
  "@isi-ui7/editable-table": ">=0.2.3",
76
- "@isi-ui7/i18n": ">=0.2.3",
76
+ "@isi-ui7/i18n": ">=0.2.4",
77
77
  "@isi-ui7/lookup-input": ">=0.2.4",
78
78
  "@isi-ui7/modal-manager": ">=0.2.0",
79
79
  "@isi-ui7/realtime": ">=0.2.0",
@@ -106,13 +106,13 @@
106
106
  "vite": "^5.0.0",
107
107
  "vite-plugin-dts": "^3.6.0",
108
108
  "vitest": "^1.0.0",
109
- "@isi-ui7/corporate-themes": "0.2.16",
109
+ "@isi-ui7/corporate-themes": "0.2.17",
110
110
  "@isi-ui7/data-table": "0.2.5",
111
- "@isi-ui7/editable-table": "0.2.3",
112
- "@isi-ui7/i18n": "0.2.3",
113
- "@isi-ui7/modal-manager": "0.2.2",
114
111
  "@isi-ui7/lookup-input": "0.2.4",
115
112
  "@isi-ui7/realtime": "0.2.3",
113
+ "@isi-ui7/modal-manager": "0.2.2",
114
+ "@isi-ui7/i18n": "0.2.4",
115
+ "@isi-ui7/editable-table": "0.2.3",
116
116
  "@isi-ui7/ui-shell": "0.2.8"
117
117
  },
118
118
  "dependencies": {
@@ -126,9 +126,9 @@
126
126
  "jose": "^5.9.6",
127
127
  "jspdf": "^4.2.1",
128
128
  "jspdf-autotable": "^5.0.7",
129
- "@isi-ui7/data-table": "0.2.5",
129
+ "@isi-ui7/lookup-input": "0.2.4",
130
130
  "@isi-ui7/editable-table": "0.2.3",
131
- "@isi-ui7/lookup-input": "0.2.4"
131
+ "@isi-ui7/data-table": "0.2.5"
132
132
  },
133
133
  "scripts": {
134
134
  "build": "vite build",
@@ -0,0 +1,52 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { SHARED_DICTIONARIES } from "@isi-ui7/i18n";
3
+
4
+ // Butir 1.8 (DG-00): satu medan boolean menampilkan DUA kosakata di modul yang
5
+ // sama, karena dua widget membaca dua kunci —
6
+ //
7
+ // LIST is_printed -> "Ya" / "Tidak" (checkbox -> boolYes/boolNo)
8
+ // VIEW is_printed -> "On" / "Off" (toggle -> toggleOn/toggleOff)
9
+ //
10
+ // Locale bawaan estate `id`, dan "Ya"/"Tidak" SUDAH ada di kamus itu, nol
11
+ // terpakai oleh toggle.
12
+ //
13
+ // ⚠️ Kaidah user (ditekan 4x): "sel menampilkan DESKRIPSI, bukan nilai
14
+ // mentah". "On" memenuhi hurufnya dan meleset dari maksudnya — deskripsi yang
15
+ // berbahasa lain dari layarnya nol lebih terbaca dari `true`.
16
+ describe("kamus toggle — bahasa mengikuti locale-nya", () => {
17
+ const id = SHARED_DICTIONARIES.id;
18
+ const en = SHARED_DICTIONARIES.en;
19
+
20
+ it("KONTROL POSITIF: kedua kamus terbaca dan berisi", () => {
21
+ // Tanpa ini, setiap asersi di bawah bisa lulus atas objek kosong.
22
+ expect(Object.keys(id).length).toBeGreaterThan(20);
23
+ expect(Object.keys(en).length).toBeGreaterThan(20);
24
+ });
25
+
26
+ it("ID: toggle memakai Ya/Tidak, bukan On/Off", () => {
27
+ expect(id["bos7.toggleOn"]).toBe("Ya");
28
+ expect(id["bos7.toggleOff"]).toBe("Tidak");
29
+ });
30
+
31
+ it("KONTROL (+): boolYes/boolNo NOL berubah — LIST tetap Ya/Tidak", () => {
32
+ // Perbaikan ini menyentuh toggle saja. Kalau checkbox ikut berubah, yang
33
+ // terjadi bukan penyeragaman melainkan kerusakan di tempat lain.
34
+ expect(id["bos7.boolYes"]).toBe("Ya");
35
+ expect(id["bos7.boolNo"]).toBe("Tidak");
36
+ });
37
+
38
+ it("KONTROL (−): kamus EN TETAP On/Off — di sana ia benar", () => {
39
+ expect(en["bos7.toggleOn"]).toBe("On");
40
+ expect(en["bos7.toggleOff"]).toBe("Off");
41
+ expect(en["bos7.boolYes"]).toBe("Yes");
42
+ expect(en["bos7.boolNo"]).toBe("No");
43
+ });
44
+
45
+ it("ID nol memuat kata Inggris On/Off di keempat kunci boolean", () => {
46
+ // Asersi yang MEMISAHKAN: ia merah pada keadaan lama, dan tetap merah
47
+ // kalau seseorang "memperbaiki" satu kunci dan melupakan pasangannya.
48
+ for (const k of ["bos7.toggleOn", "bos7.toggleOff", "bos7.boolYes", "bos7.boolNo"]) {
49
+ expect(["On", "Off", "Yes", "No"], `${k} berbahasa Inggris di kamus ID`).not.toContain(id[k]);
50
+ }
51
+ });
52
+ });
package/src/i18n.tsx CHANGED
@@ -81,8 +81,14 @@ export function useBosSharedI18n(): BosSharedLabels {
81
81
 
82
82
  boolYes: t("bos7.boolYes", "Ya"),
83
83
  boolNo: t("bos7.boolNo", "Tidak"),
84
- toggleOn: t("bos7.toggleOn", "On"),
85
- toggleOff: t("bos7.toggleOff", "Off"),
84
+ // Fallback Indonesia, sama dengan boolYes/boolNo dua baris di atas.
85
+ //
86
+ // 🔴 Sebelumnya "On"/"Off" — fallback berbahasa INGGRIS di blok yang tiap
87
+ // baris lainnya berbahasa Indonesia. Ia cacat KEDUA dari temuan yang
88
+ // sama: memperbaiki kamus saja meninggalkan jalur ini, dan jalur ini yang
89
+ // dipakai kapan pun kuncinya nol ada di kamus locale aktif.
90
+ toggleOn: t("bos7.toggleOn", "Ya"),
91
+ toggleOff: t("bos7.toggleOff", "Tidak"),
86
92
  emptyValue: t("bos7.emptyValue", "—"),
87
93
  showInactive: t("bos7.showInactive", "Tampilkan Nonaktif"),
88
94