@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.
- package/dist/{index-C_114Ysm.js → index-C-h8WiEp.js} +29 -5
- package/dist/{index.es-B-MluT1E.js → index.es-C4xrluJC.js} +2 -2
- package/dist/index.js +1 -1
- package/dist/{jspdf.es.min-C5VEsLZd.js → jspdf.es.min-OHmQQaGr.js} +1 -1
- package/package.json +9 -9
- package/src/i18n-toggle-locale.test.ts +52 -0
- package/src/i18n.tsx +8 -2
|
@@ -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-
|
|
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
|
-
"
|
|
27701
|
-
|
|
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
|
-
|
|
28639
|
-
|
|
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-
|
|
2
|
-
import { _ as Xa } from "./jspdf.es.min-
|
|
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-
|
|
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-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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/
|
|
129
|
+
"@isi-ui7/lookup-input": "0.2.4",
|
|
130
130
|
"@isi-ui7/editable-table": "0.2.3",
|
|
131
|
-
"@isi-ui7/
|
|
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
|
-
|
|
85
|
-
|
|
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
|
|