@multiplatform.one/frappe-ui 7.22.0 → 7.23.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/README.md +14 -0
- package/dist/cjs/FrappeForm.cjs +96 -52
- package/dist/cjs/FrappeForm.native.js +103 -52
- package/dist/cjs/FrappeForm.native.js.map +1 -1
- package/dist/cjs/FrappeFormActions.cjs +161 -0
- package/dist/cjs/FrappeFormActions.native.js +167 -0
- package/dist/cjs/FrappeFormActions.native.js.map +1 -0
- package/dist/cjs/FrappeTable.cjs +42 -13
- package/dist/cjs/FrappeTable.native.js +55 -19
- package/dist/cjs/FrappeTable.native.js.map +1 -1
- package/dist/cjs/desk/DeskFormPage.cjs +2 -1
- package/dist/cjs/desk/DeskFormPage.native.js +3 -0
- package/dist/cjs/desk/DeskFormPage.native.js.map +1 -1
- package/dist/cjs/filterFields.cjs +277 -34
- package/dist/cjs/filterFields.native.js +311 -36
- package/dist/cjs/filterFields.native.js.map +1 -1
- package/dist/cjs/formEngine/docLifecycle.cjs +98 -0
- package/dist/cjs/formEngine/docLifecycle.native.js +131 -0
- package/dist/cjs/formEngine/docLifecycle.native.js.map +1 -0
- package/dist/cjs/formEngine/useAmendedAs.cjs +48 -0
- package/dist/cjs/formEngine/useAmendedAs.native.js +60 -0
- package/dist/cjs/formEngine/useAmendedAs.native.js.map +1 -0
- package/dist/cjs/formEngine/useDocRights.cjs +2 -2
- package/dist/cjs/formEngine/useDocRights.native.js +2 -2
- package/dist/cjs/formEngine/useDocRights.native.js.map +1 -1
- package/dist/cjs/formEngine/useFormEngine.cjs +1 -0
- package/dist/cjs/formEngine/useFormEngine.native.js +1 -0
- package/dist/cjs/formEngine/useFormEngine.native.js.map +1 -1
- package/dist/cjs/index.cjs +30 -1
- package/dist/cjs/index.native.js +30 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/list/listColumns.cjs +397 -0
- package/dist/cjs/list/listColumns.native.js +447 -0
- package/dist/cjs/list/listColumns.native.js.map +1 -0
- package/dist/cjs/list/listFields.cjs +50 -0
- package/dist/cjs/list/listFields.native.js +79 -0
- package/dist/cjs/list/listFields.native.js.map +1 -0
- package/dist/cjs/list/listFormat.cjs +68 -0
- package/dist/cjs/list/listFormat.native.js +74 -0
- package/dist/cjs/list/listFormat.native.js.map +1 -0
- package/dist/cjs/list/statusColors.cjs +102 -0
- package/dist/cjs/list/statusColors.native.js +109 -0
- package/dist/cjs/list/statusColors.native.js.map +1 -0
- package/dist/esm/FrappeForm.mjs +97 -53
- package/dist/esm/FrappeForm.mjs.map +1 -1
- package/dist/esm/FrappeForm.native.js +104 -53
- package/dist/esm/FrappeForm.native.js.map +1 -1
- package/dist/esm/FrappeFormActions.mjs +136 -0
- package/dist/esm/FrappeFormActions.mjs.map +1 -0
- package/dist/esm/FrappeFormActions.native.js +139 -0
- package/dist/esm/FrappeFormActions.native.js.map +1 -0
- package/dist/esm/FrappeTable.mjs +42 -13
- package/dist/esm/FrappeTable.mjs.map +1 -1
- package/dist/esm/FrappeTable.native.js +55 -19
- package/dist/esm/FrappeTable.native.js.map +1 -1
- package/dist/esm/desk/DeskFormPage.mjs +2 -1
- package/dist/esm/desk/DeskFormPage.mjs.map +1 -1
- package/dist/esm/desk/DeskFormPage.native.js +3 -0
- package/dist/esm/desk/DeskFormPage.native.js.map +1 -1
- package/dist/esm/filterFields.mjs +263 -34
- package/dist/esm/filterFields.mjs.map +1 -1
- package/dist/esm/filterFields.native.js +297 -36
- package/dist/esm/filterFields.native.js.map +1 -1
- package/dist/esm/formEngine/docLifecycle.mjs +68 -0
- package/dist/esm/formEngine/docLifecycle.mjs.map +1 -0
- package/dist/esm/formEngine/docLifecycle.native.js +98 -0
- package/dist/esm/formEngine/docLifecycle.native.js.map +1 -0
- package/dist/esm/formEngine/useAmendedAs.mjs +23 -0
- package/dist/esm/formEngine/useAmendedAs.mjs.map +1 -0
- package/dist/esm/formEngine/useAmendedAs.native.js +32 -0
- package/dist/esm/formEngine/useAmendedAs.native.js.map +1 -0
- package/dist/esm/formEngine/useDocRights.mjs +2 -2
- package/dist/esm/formEngine/useDocRights.mjs.map +1 -1
- package/dist/esm/formEngine/useDocRights.native.js +2 -2
- package/dist/esm/formEngine/useDocRights.native.js.map +1 -1
- package/dist/esm/formEngine/useFormEngine.mjs +1 -1
- package/dist/esm/formEngine/useFormEngine.mjs.map +1 -1
- package/dist/esm/formEngine/useFormEngine.native.js +1 -1
- package/dist/esm/formEngine/useFormEngine.native.js.map +1 -1
- package/dist/esm/index.mjs +6 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +6 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/list/listColumns.mjs +372 -0
- package/dist/esm/list/listColumns.mjs.map +1 -0
- package/dist/esm/list/listColumns.native.js +419 -0
- package/dist/esm/list/listColumns.native.js.map +1 -0
- package/dist/esm/list/listFields.mjs +23 -0
- package/dist/esm/list/listFields.mjs.map +1 -0
- package/dist/esm/list/listFields.native.js +49 -0
- package/dist/esm/list/listFields.native.js.map +1 -0
- package/dist/esm/list/listFormat.mjs +38 -0
- package/dist/esm/list/listFormat.mjs.map +1 -0
- package/dist/esm/list/listFormat.native.js +41 -0
- package/dist/esm/list/listFormat.native.js.map +1 -0
- package/dist/esm/list/statusColors.mjs +77 -0
- package/dist/esm/list/statusColors.mjs.map +1 -0
- package/dist/esm/list/statusColors.native.js +81 -0
- package/dist/esm/list/statusColors.native.js.map +1 -0
- package/dist/jsx/FrappeForm.mjs +97 -53
- package/dist/jsx/FrappeForm.mjs.map +1 -1
- package/dist/jsx/FrappeForm.native.js +103 -52
- package/dist/jsx/FrappeForm.native.js.map +1 -1
- package/dist/jsx/FrappeFormActions.mjs +136 -0
- package/dist/jsx/FrappeFormActions.mjs.map +1 -0
- package/dist/jsx/FrappeFormActions.native.js +167 -0
- package/dist/jsx/FrappeFormActions.native.js.map +1 -0
- package/dist/jsx/FrappeTable.mjs +42 -13
- package/dist/jsx/FrappeTable.mjs.map +1 -1
- package/dist/jsx/FrappeTable.native.js +55 -19
- package/dist/jsx/FrappeTable.native.js.map +1 -1
- package/dist/jsx/desk/DeskFormPage.mjs +2 -1
- package/dist/jsx/desk/DeskFormPage.mjs.map +1 -1
- package/dist/jsx/desk/DeskFormPage.native.js +3 -0
- package/dist/jsx/desk/DeskFormPage.native.js.map +1 -1
- package/dist/jsx/filterFields.mjs +263 -34
- package/dist/jsx/filterFields.mjs.map +1 -1
- package/dist/jsx/filterFields.native.js +311 -36
- package/dist/jsx/filterFields.native.js.map +1 -1
- package/dist/jsx/formEngine/docLifecycle.mjs +68 -0
- package/dist/jsx/formEngine/docLifecycle.mjs.map +1 -0
- package/dist/jsx/formEngine/docLifecycle.native.js +131 -0
- package/dist/jsx/formEngine/docLifecycle.native.js.map +1 -0
- package/dist/jsx/formEngine/useAmendedAs.mjs +23 -0
- package/dist/jsx/formEngine/useAmendedAs.mjs.map +1 -0
- package/dist/jsx/formEngine/useAmendedAs.native.js +60 -0
- package/dist/jsx/formEngine/useAmendedAs.native.js.map +1 -0
- package/dist/jsx/formEngine/useDocRights.mjs +2 -2
- package/dist/jsx/formEngine/useDocRights.mjs.map +1 -1
- package/dist/jsx/formEngine/useDocRights.native.js +2 -2
- package/dist/jsx/formEngine/useDocRights.native.js.map +1 -1
- package/dist/jsx/formEngine/useFormEngine.mjs +1 -1
- package/dist/jsx/formEngine/useFormEngine.mjs.map +1 -1
- package/dist/jsx/formEngine/useFormEngine.native.js +1 -0
- package/dist/jsx/formEngine/useFormEngine.native.js.map +1 -1
- package/dist/jsx/index.js +6 -2
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +6 -2
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +30 -1
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/list/listColumns.mjs +372 -0
- package/dist/jsx/list/listColumns.mjs.map +1 -0
- package/dist/jsx/list/listColumns.native.js +447 -0
- package/dist/jsx/list/listColumns.native.js.map +1 -0
- package/dist/jsx/list/listFields.mjs +23 -0
- package/dist/jsx/list/listFields.mjs.map +1 -0
- package/dist/jsx/list/listFields.native.js +79 -0
- package/dist/jsx/list/listFields.native.js.map +1 -0
- package/dist/jsx/list/listFormat.mjs +38 -0
- package/dist/jsx/list/listFormat.mjs.map +1 -0
- package/dist/jsx/list/listFormat.native.js +74 -0
- package/dist/jsx/list/listFormat.native.js.map +1 -0
- package/dist/jsx/list/statusColors.mjs +77 -0
- package/dist/jsx/list/statusColors.mjs.map +1 -0
- package/dist/jsx/list/statusColors.native.js +109 -0
- package/dist/jsx/list/statusColors.native.js.map +1 -0
- package/package.json +22 -16
- package/src/FrappeForm.deskSemantics.spec.tsx +1 -1
- package/src/FrappeForm.lifecycle.spec.tsx +463 -0
- package/src/FrappeForm.lifecycle.stories.tsx +84 -0
- package/src/FrappeForm.tsx +124 -84
- package/src/FrappeFormActions.tsx +216 -0
- package/src/FrappeTable.defaultColumns.spec.tsx +229 -0
- package/src/FrappeTable.tsx +79 -32
- package/src/desk/DeskFormPage.tsx +1 -0
- package/src/filterFields.spec.ts +57 -2
- package/src/filterFields.ts +365 -38
- package/src/formEngine/docLifecycle.spec.ts +195 -0
- package/src/formEngine/docLifecycle.ts +148 -0
- package/src/formEngine/useAmendedAs.ts +38 -0
- package/src/formEngine/useDocRights.ts +11 -3
- package/src/formEngine/useFormEngine.ts +1 -1
- package/src/frappeViews.designLaw.spec.ts +6 -0
- package/src/index.ts +47 -1
- package/src/list/listColumns.tsx +488 -0
- package/src/list/listFields.spec.ts +147 -0
- package/src/list/listFields.ts +68 -0
- package/src/list/listFormat.spec.ts +151 -0
- package/src/list/listFormat.ts +80 -0
- package/src/list/seam.spec.ts +116 -0
- package/src/list/statusColors.spec.ts +100 -0
- package/src/list/statusColors.ts +94 -0
- package/types/FrappeForm.d.ts +13 -3
- package/types/FrappeForm.d.ts.map +1 -1
- package/types/FrappeFormActions.d.ts +36 -0
- package/types/FrappeFormActions.d.ts.map +1 -0
- package/types/FrappeTable.d.ts +11 -5
- package/types/FrappeTable.d.ts.map +1 -1
- package/types/desk/DeskFormPage.d.ts.map +1 -1
- package/types/filterFields.d.ts +81 -10
- package/types/filterFields.d.ts.map +1 -1
- package/types/formEngine/docLifecycle.d.ts +59 -0
- package/types/formEngine/docLifecycle.d.ts.map +1 -0
- package/types/formEngine/useAmendedAs.d.ts +9 -0
- package/types/formEngine/useAmendedAs.d.ts.map +1 -0
- package/types/formEngine/useDocRights.d.ts +1 -1
- package/types/formEngine/useDocRights.d.ts.map +1 -1
- package/types/formEngine/useFormEngine.d.ts +1 -0
- package/types/formEngine/useFormEngine.d.ts.map +1 -1
- package/types/index.d.ts +5 -1
- package/types/index.d.ts.map +1 -1
- package/types/list/listColumns.d.ts +41 -0
- package/types/list/listColumns.d.ts.map +1 -0
- package/types/list/listFields.d.ts +16 -0
- package/types/list/listFields.d.ts.map +1 -0
- package/types/list/listFormat.d.ts +30 -0
- package/types/list/listFormat.d.ts.map +1 -0
- package/types/list/statusColors.d.ts +14 -0
- package/types/list/statusColors.d.ts.map +1 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var listFormat_exports = {};
|
|
26
|
+
__export(listFormat_exports, {
|
|
27
|
+
formatDateCell: () => formatDateCell,
|
|
28
|
+
formatTimeAgo: () => formatTimeAgo,
|
|
29
|
+
parseFrappeDate: () => parseFrappeDate,
|
|
30
|
+
parseTagsField: () => parseTagsField,
|
|
31
|
+
parseUserListField: () => parseUserListField,
|
|
32
|
+
stripHtmlPreview: () => stripHtmlPreview
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(listFormat_exports);
|
|
35
|
+
var import_theme = require("@multiplatform.one/theme");
|
|
36
|
+
function parseFrappeDate(value) {
|
|
37
|
+
var isoish = value.includes(" ") ? value.replace(" ", "T") : value;
|
|
38
|
+
var date = new Date(isoish);
|
|
39
|
+
return Number.isNaN(date.getTime()) ? void 0 : date;
|
|
40
|
+
}
|
|
41
|
+
function formatDateCell(value, now) {
|
|
42
|
+
if (!parseFrappeDate(value)) return value;
|
|
43
|
+
var isoish = value.includes(" ") ? value.replace(" ", "T") : value;
|
|
44
|
+
return (0, import_theme.formatAbsoluteDate)(isoish, now ? {
|
|
45
|
+
now
|
|
46
|
+
} : void 0);
|
|
47
|
+
}
|
|
48
|
+
function formatTimeAgo(value) {
|
|
49
|
+
var now = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : /* @__PURE__ */new Date();
|
|
50
|
+
var date = parseFrappeDate(value);
|
|
51
|
+
if (!date) return value;
|
|
52
|
+
return (0, import_theme.formatRelativeTimestamp)(date, now.getTime());
|
|
53
|
+
}
|
|
54
|
+
function stripHtmlPreview(value) {
|
|
55
|
+
if (!value.includes("<") && !value.includes("&")) return value;
|
|
56
|
+
return value.replace(/<[^>]*>/g, " ").replace(/ /gi, " ").replace(/&/gi, "&").replace(/</gi, "<").replace(/>/gi, ">").replace(/'|'/gi, "'").replace(/"/gi, '"').replace(/\s+/g, " ").trim();
|
|
57
|
+
}
|
|
58
|
+
function parseUserListField(value) {
|
|
59
|
+
if (Array.isArray(value)) return value.map(String);
|
|
60
|
+
if (typeof value !== "string" || !value) return [];
|
|
61
|
+
try {
|
|
62
|
+
var parsed = JSON.parse(value);
|
|
63
|
+
return Array.isArray(parsed) ? parsed.map(String) : [];
|
|
64
|
+
} catch (unused) {
|
|
65
|
+
return [];
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function parseTagsField(value) {
|
|
69
|
+
if (typeof value !== "string") return [];
|
|
70
|
+
return value.split(",").map(function (tag) {
|
|
71
|
+
return tag.trim();
|
|
72
|
+
}).filter(Boolean);
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=listFormat.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","listFormat_exports","formatDateCell","formatTimeAgo","parseFrappeDate","parseTagsField","parseUserListField","stripHtmlPreview","module","exports","import_theme","require","isoish","includes","replace","date","Date","Number","isNaN","getTime"],"sources":["../../../src/list/listFormat.ts"],"sourcesContent":[null],"mappings":"AAIA,YAAS;;AAGF,IAAAA,SAAS,GAAAC,MAAA,CAAAC,cAAiD;AAE/D,IAAAC,gBAAe,GAAMF,MAAA,CAAAG,wBAA8B;AACnD,IAAAC,iBAAiB,GAAKJ,MAAM,CAAAK,mBAAA;AAC5B,IAAAC,YAAc,GAAAN,MAAM,CAAAO,SAAa,CAACC,cAAgB;AACpD,IAAAC,QAAA,GAAAA,CAAAC,MAAA,EAAAC,GAAA;EAUO,SAASC,IAAA,IAAAD,GAAA,EACdZ,SAAK,CAAAW,MAAA,EAAAE,IAAgB,EAAK;IAAGC,GAAA,EAAAF,GAAO,CAAAC,IAAA;IAAAE,UAAA;EAAA;AACpC;AACA,IAAAC,WAAO,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAmBC,MAAA,EAAQC,IAAA,KAAQ;EAC5C,IAAAF,IAAA,WAAAA,IAAA,wBAAAA,IAAA;IAOO,KAAS,IAAAG,GAAA,IAAAhB,iBAAyC,CAAAa,IAAA,GACvD,IAAM,CAAAX,YAAO,CAAAe,IAAA,CAAAL,EAAgB,EAAAI,GAAK,KAAAA,GAAA,KAAAF,MAAA,EAC7BnB,SAAM,CAAAiB,EAAO,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EAClB;EACF,OAAAE,EAAA;AASO;AACL,IAAAM,YAAW,GAAAC,GAAS,IAAGR,WAAY,CAAAhB,SAAY,EAAG,eAAO;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AACzD,IAAAE,kBACG,GAAQ;AASbhB,QAAA,CAAAgB,kBAAA;EAGOC,cAAS,EAAAA,CAAA,KAAAA,cAA6C;EAC3DC,aAAU,EAAAA,CAAA,KAAQA,aAAe;EACjCC,eAAW,EAAAA,CAAA,KAAUA,eAAa;EAClCC,cAAI,EAAAA,CAAA,KAAAA,cAAA;EACFC,kBAAe,EAAAA,CAAA,KAAKA,kBAAW;EAC/BC,gBAAa,EAAAA,CAAA,KAAQA;AAAgC,EACvD;AACEC,MAAA,CAAAC,OAAQ,GAAAX,YAAA,CAAAG,kBAAA;AAAA,IACVS,YAAA,GAAAC,OAAA;AACF,SAAAP,gBAAAJ,KAAA;EAGO,IAAAY,MAAS,GAAAZ,KAAA,CAAAa,QAAe,IAA0B,IAAAb,KAAA,CAAAc,OAAA,aAAAd,KAAA;EACvD,IAAIe,IAAA,GAAO,IAAAC,IAAA,CAAAJ,MAAU;EACrB,OAAOK,MACJ,CAAAC,KAAM,CAAAH,IACN,CAAAI,OAAK,MAAQ,KAAI,IAAMJ,IACvB;AACL","ignoreList":[]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
const DESK_COLOR_TO_RAMP = {
|
|
2
|
+
red: "red",
|
|
3
|
+
green: "green",
|
|
4
|
+
blue: "blue",
|
|
5
|
+
orange: "orange",
|
|
6
|
+
yellow: "yellow",
|
|
7
|
+
amber: "yellow",
|
|
8
|
+
gray: "gray",
|
|
9
|
+
grey: "gray",
|
|
10
|
+
darkgrey: "gray",
|
|
11
|
+
"light-blue": "blue",
|
|
12
|
+
purple: "purple",
|
|
13
|
+
pink: "pink",
|
|
14
|
+
cyan: "blue"
|
|
15
|
+
};
|
|
16
|
+
const STATUS_WORD_TO_RAMP = {
|
|
17
|
+
// green — done / healthy
|
|
18
|
+
closed: "green",
|
|
19
|
+
completed: "green",
|
|
20
|
+
complete: "green",
|
|
21
|
+
finished: "green",
|
|
22
|
+
active: "green",
|
|
23
|
+
enabled: "green",
|
|
24
|
+
approved: "green",
|
|
25
|
+
paid: "green",
|
|
26
|
+
success: "green",
|
|
27
|
+
resolved: "green",
|
|
28
|
+
delivered: "green",
|
|
29
|
+
received: "green",
|
|
30
|
+
// orange — needs attention / in flight
|
|
31
|
+
open: "orange",
|
|
32
|
+
pending: "orange",
|
|
33
|
+
"in progress": "orange",
|
|
34
|
+
"to deliver": "orange",
|
|
35
|
+
"to bill": "orange",
|
|
36
|
+
overdue: "orange",
|
|
37
|
+
medium: "orange",
|
|
38
|
+
// blue — submitted / informational
|
|
39
|
+
submitted: "blue",
|
|
40
|
+
running: "blue",
|
|
41
|
+
new: "blue",
|
|
42
|
+
"in review": "blue",
|
|
43
|
+
low: "blue",
|
|
44
|
+
// red — failed / stopped
|
|
45
|
+
cancelled: "red",
|
|
46
|
+
canceled: "red",
|
|
47
|
+
disabled: "red",
|
|
48
|
+
failed: "red",
|
|
49
|
+
rejected: "red",
|
|
50
|
+
error: "red",
|
|
51
|
+
expired: "red",
|
|
52
|
+
inactive: "red",
|
|
53
|
+
unpaid: "red",
|
|
54
|
+
lost: "red",
|
|
55
|
+
high: "red",
|
|
56
|
+
urgent: "red",
|
|
57
|
+
// gray — inert
|
|
58
|
+
draft: "gray"
|
|
59
|
+
};
|
|
60
|
+
function rampToPill(ramp) {
|
|
61
|
+
return {
|
|
62
|
+
background: `$${ramp}3`,
|
|
63
|
+
text: `$${ramp}11`
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function statusPillColors(status, meta) {
|
|
67
|
+
const normalized = status.trim().toLowerCase();
|
|
68
|
+
const state = meta?.states?.find(s => (s.title ?? "").trim().toLowerCase() === normalized);
|
|
69
|
+
if (state?.color) {
|
|
70
|
+
const ramp2 = DESK_COLOR_TO_RAMP[state.color.trim().toLowerCase()];
|
|
71
|
+
if (ramp2) return rampToPill(ramp2);
|
|
72
|
+
}
|
|
73
|
+
const ramp = STATUS_WORD_TO_RAMP[normalized];
|
|
74
|
+
return rampToPill(ramp ?? "gray");
|
|
75
|
+
}
|
|
76
|
+
export { statusPillColors };
|
|
77
|
+
//# sourceMappingURL=statusColors.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DESK_COLOR_TO_RAMP","red","green","blue","orange","yellow","amber","gray","grey","darkgrey","purple","pink","cyan","STATUS_WORD_TO_RAMP","closed","completed","complete","finished","active","enabled","approved","paid","success","resolved","delivered","received","open","pending","overdue","medium","submitted","running","new","low","cancelled","canceled","disabled","failed","rejected","error","expired","inactive","unpaid","lost","high","urgent","draft","rampToPill","ramp","background","text","statusPillColors","status","meta","normalized","trim","toLowerCase","state","states","find","s","title","color","ramp2"],"sources":["../../../src/list/statusColors.ts"],"sourcesContent":[null],"mappings":"AAaA,MAAMA,kBAAA,GAA6C;EACjDC,GAAA,EAAK;EACLC,KAAA,EAAO;EACPC,IAAA,EAAM;EACNC,MAAA,EAAQ;EACRC,MAAA,EAAQ;EACRC,KAAA,EAAO;EACPC,IAAA,EAAM;EACNC,IAAA,EAAM;EACNC,QAAA,EAAU;EACV,cAAc;EACdC,MAAA,EAAQ;EACRC,IAAA,EAAM;EACNC,IAAA,EAAM;AACR;AAGA,MAAMC,mBAAA,GAA8C;EAAA;EAElDC,MAAA,EAAQ;EACRC,SAAA,EAAW;EACXC,QAAA,EAAU;EACVC,QAAA,EAAU;EACVC,MAAA,EAAQ;EACRC,OAAA,EAAS;EACTC,QAAA,EAAU;EACVC,IAAA,EAAM;EACNC,OAAA,EAAS;EACTC,QAAA,EAAU;EACVC,SAAA,EAAW;EACXC,QAAA,EAAU;EAAA;EAEVC,IAAA,EAAM;EACNC,OAAA,EAAS;EACT,eAAe;EACf,cAAc;EACd,WAAW;EACXC,OAAA,EAAS;EACTC,MAAA,EAAQ;EAAA;EAERC,SAAA,EAAW;EACXC,OAAA,EAAS;EACTC,GAAA,EAAK;EACL,aAAa;EACbC,GAAA,EAAK;EAAA;EAELC,SAAA,EAAW;EACXC,QAAA,EAAU;EACVC,QAAA,EAAU;EACVC,MAAA,EAAQ;EACRC,QAAA,EAAU;EACVC,KAAA,EAAO;EACPC,OAAA,EAAS;EACTC,QAAA,EAAU;EACVC,MAAA,EAAQ;EACRC,IAAA,EAAM;EACNC,IAAA,EAAM;EACNC,MAAA,EAAQ;EAAA;EAERC,KAAA,EAAO;AACT;AAEA,SAASC,WAAWC,IAAA,EAAgC;EAClD,OAAO;IAAEC,UAAA,EAAY,IAAID,IAAI;IAAKE,IAAA,EAAM,IAAIF,IAAI;EAAK;AACvD;AAOO,SAASG,iBAAiBC,MAAA,EAAgBC,IAAA,EAAsC;EACrF,MAAMC,UAAA,GAAaF,MAAA,CAAOG,IAAA,CAAK,EAAEC,WAAA,CAAY;EAC7C,MAAMC,KAAA,GAAQJ,IAAA,EAAMK,MAAA,EAAQC,IAAA,CAAMC,CAAA,KAAOA,CAAA,CAAEC,KAAA,IAAS,IAAIN,IAAA,CAAK,EAAEC,WAAA,CAAY,MAAMF,UAAU;EAC3F,IAAIG,KAAA,EAAOK,KAAA,EAAO;IAChB,MAAMd,KAAA,GAAOhD,kBAAA,CAAmByD,KAAA,CAAMK,KAAA,CAAMP,IAAA,CAAK,EAAEC,WAAA,CAAY,CAAC;IAChE,IAAIR,KAAA,EAAM,OAAOD,UAAA,CAAWgB,KAAI;EAClC;EACA,MAAMf,IAAA,GAAOnC,mBAAA,CAAoByC,UAAU;EAC3C,OAAOP,UAAA,CAAWC,IAAA,IAAQ,MAAM;AAClC","ignoreList":[]}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var statusColors_exports = {};
|
|
26
|
+
__export(statusColors_exports, {
|
|
27
|
+
statusPillColors: () => statusPillColors
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(statusColors_exports);
|
|
30
|
+
var DESK_COLOR_TO_RAMP = {
|
|
31
|
+
red: "red",
|
|
32
|
+
green: "green",
|
|
33
|
+
blue: "blue",
|
|
34
|
+
orange: "orange",
|
|
35
|
+
yellow: "yellow",
|
|
36
|
+
amber: "yellow",
|
|
37
|
+
gray: "gray",
|
|
38
|
+
grey: "gray",
|
|
39
|
+
darkgrey: "gray",
|
|
40
|
+
"light-blue": "blue",
|
|
41
|
+
purple: "purple",
|
|
42
|
+
pink: "pink",
|
|
43
|
+
cyan: "blue"
|
|
44
|
+
};
|
|
45
|
+
var STATUS_WORD_TO_RAMP = {
|
|
46
|
+
// green — done / healthy
|
|
47
|
+
closed: "green",
|
|
48
|
+
completed: "green",
|
|
49
|
+
complete: "green",
|
|
50
|
+
finished: "green",
|
|
51
|
+
active: "green",
|
|
52
|
+
enabled: "green",
|
|
53
|
+
approved: "green",
|
|
54
|
+
paid: "green",
|
|
55
|
+
success: "green",
|
|
56
|
+
resolved: "green",
|
|
57
|
+
delivered: "green",
|
|
58
|
+
received: "green",
|
|
59
|
+
// orange — needs attention / in flight
|
|
60
|
+
open: "orange",
|
|
61
|
+
pending: "orange",
|
|
62
|
+
"in progress": "orange",
|
|
63
|
+
"to deliver": "orange",
|
|
64
|
+
"to bill": "orange",
|
|
65
|
+
overdue: "orange",
|
|
66
|
+
medium: "orange",
|
|
67
|
+
// blue — submitted / informational
|
|
68
|
+
submitted: "blue",
|
|
69
|
+
running: "blue",
|
|
70
|
+
new: "blue",
|
|
71
|
+
"in review": "blue",
|
|
72
|
+
low: "blue",
|
|
73
|
+
// red — failed / stopped
|
|
74
|
+
cancelled: "red",
|
|
75
|
+
canceled: "red",
|
|
76
|
+
disabled: "red",
|
|
77
|
+
failed: "red",
|
|
78
|
+
rejected: "red",
|
|
79
|
+
error: "red",
|
|
80
|
+
expired: "red",
|
|
81
|
+
inactive: "red",
|
|
82
|
+
unpaid: "red",
|
|
83
|
+
lost: "red",
|
|
84
|
+
high: "red",
|
|
85
|
+
urgent: "red",
|
|
86
|
+
// gray — inert
|
|
87
|
+
draft: "gray"
|
|
88
|
+
};
|
|
89
|
+
function rampToPill(ramp) {
|
|
90
|
+
return {
|
|
91
|
+
background: `$${ramp}3`,
|
|
92
|
+
text: `$${ramp}11`
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
function statusPillColors(status, meta) {
|
|
96
|
+
var _meta_states;
|
|
97
|
+
var normalized = status.trim().toLowerCase();
|
|
98
|
+
var state = meta === null || meta === void 0 ? void 0 : (_meta_states = meta.states) === null || _meta_states === void 0 ? void 0 : _meta_states.find(function (s) {
|
|
99
|
+
var _s_title;
|
|
100
|
+
return ((_s_title = s.title) !== null && _s_title !== void 0 ? _s_title : "").trim().toLowerCase() === normalized;
|
|
101
|
+
});
|
|
102
|
+
if (state === null || state === void 0 ? void 0 : state.color) {
|
|
103
|
+
var ramp = DESK_COLOR_TO_RAMP[state.color.trim().toLowerCase()];
|
|
104
|
+
if (ramp) return rampToPill(ramp);
|
|
105
|
+
}
|
|
106
|
+
var ramp1 = STATUS_WORD_TO_RAMP[normalized];
|
|
107
|
+
return rampToPill(ramp1 !== null && ramp1 !== void 0 ? ramp1 : "gray");
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=statusColors.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","statusColors_exports","statusPillColors","module","exports","DESK_COLOR_TO_RAMP","red","green","blue","orange","yellow","amber","gray","grey","darkgrey","purple","pink","cyan","STATUS_WORD_TO_RAMP","closed","completed","complete","finished","active","enabled","approved","paid","success","resolved","delivered","received","open","pending","overdue","medium","submitted","running","new","low","cancelled","canceled","disabled","failed","rejected"],"sources":["../../../src/list/statusColors.ts"],"sourcesContent":[null],"mappings":"AAaA,YAAM;;AAA6C,IACjDA,SAAK,GAAAC,MAAA,CAAAC,cAAA;AAAA,IACLC,gBAAO,GAAAF,MAAA,CAAAG,wBAAA;AAAA,IACPC,iBAAM,GAAAJ,MAAA,CAAAK,mBAAA;AAAA,IACNC,YAAQ,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA;AAAA,IACRC,QAAQ,GAAAA,CAAAC,MAAA,EAAAC,GAAA;EACR,SAAOC,IAAA,IAAAD,GAAA,EACPZ,SAAM,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAAA;AACA,IACNC,WAAU,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EACV,IAAAF,IAAA,WAAcA,IAAA,wBAAAA,IAAA;IACd,SAAQG,GAAA,IAAAhB,iBAAA,CAAAa,IAAA,GACR,IAAM,CAAAX,YAAA,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACAnB,SAAA,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EACR;EAGA,OAAME,EAAA;AAA8C;AAAA,IAElDM,YAAQ,GAAAC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAAA,IACRE,oBAAW;AAAAhB,QACX,CAAAgB,oBAAU;EACVC,gBAAU,EAAAA,CAAA,KAAAA;AAAA,EACV;AAAQC,MACR,CAAAC,OAAS,GAAAN,YAAA,CAAAG,oBAAA;AAAA,IACTI,kBAAU;EACVC,GAAA,OAAM;EACNC,KAAA,SAAS;EACTC,IAAA,QAAU;EACVC,MAAA,UAAW;EACXC,MAAA,UAAU;EAAAC,KAAA;EAEVC,IAAA,EAAM;EACNC,IAAA,QAAS;EACTC,QAAA,QAAe;EACf,cAAc;EACdC,MAAA,UAAW;EACXC,IAAA,QAAS;EACTC,IAAA;AAAQ;AAAA,IAERC,mBAAW;EACX;EACAC,MAAK;EACLC,SAAA,SAAa;EACbC,QAAK;EAAAC,QAAA;EAELC,MAAA,SAAW;EACXC,OAAA,SAAU;EACVC,QAAA,EAAU;EACVC,IAAA,SAAQ;EACRC,OAAA,SAAU;EACVC,QAAO;EACPC,SAAS;EACTC,QAAA,EAAU;EACV;EACAC,IAAA,EAAM;EACNC,OAAM;EACN,aAAQ;EAAA;EAER,SAAO;EACTC,OAAA;EAEAC,MAAA,EAAS;EACP;EACFC,SAAA;EAOOC,OAAS;EACdC,GAAA,QAAM;EACN,WAAM,QAAQ;EACdC,GAAA,EAAI,MAAO;EACT;EACAC,SAAI,OAAM;EACZC,QAAA;EACAC,QAAM,OAAO;EACbC,MAAA,EAAO;EACTC,QAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@multiplatform.one/frappe-ui",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.23.0",
|
|
4
4
|
"description": "Pre-wired Tamagui components for Frappe doctypes with live data",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cross-platform",
|
|
@@ -72,21 +72,22 @@
|
|
|
72
72
|
"access": "public"
|
|
73
73
|
},
|
|
74
74
|
"dependencies": {
|
|
75
|
-
"@multiplatform.one/components": "7.
|
|
76
|
-
"@multiplatform.one/desktop": "7.
|
|
77
|
-
"@multiplatform.one/forms": "7.
|
|
78
|
-
"@multiplatform.one/frappe": "7.
|
|
79
|
-
"@multiplatform.one/i18n": "7.
|
|
80
|
-
"@multiplatform.one/markdown": "7.
|
|
81
|
-
"@multiplatform.one/platform": "7.
|
|
82
|
-
"@multiplatform.one/rich-text": "7.
|
|
83
|
-
"@multiplatform.one/router": "7.
|
|
84
|
-
"@multiplatform.one/store": "7.
|
|
85
|
-
"@multiplatform.one/table": "7.
|
|
86
|
-
"@multiplatform.one/theme": "7.
|
|
75
|
+
"@multiplatform.one/components": "7.23.0",
|
|
76
|
+
"@multiplatform.one/desktop": "7.23.0",
|
|
77
|
+
"@multiplatform.one/forms": "7.23.0",
|
|
78
|
+
"@multiplatform.one/frappe": "7.23.0",
|
|
79
|
+
"@multiplatform.one/i18n": "7.23.0",
|
|
80
|
+
"@multiplatform.one/markdown": "7.23.0",
|
|
81
|
+
"@multiplatform.one/platform": "7.23.0",
|
|
82
|
+
"@multiplatform.one/rich-text": "7.23.0",
|
|
83
|
+
"@multiplatform.one/router": "7.23.0",
|
|
84
|
+
"@multiplatform.one/store": "7.23.0",
|
|
85
|
+
"@multiplatform.one/table": "7.23.0",
|
|
86
|
+
"@multiplatform.one/theme": "7.23.0",
|
|
87
87
|
"@phosphor-icons/react": "^2.1.10",
|
|
88
88
|
"@tamagui/colors": "2.7.6",
|
|
89
89
|
"@tanstack/db": "0.8.0",
|
|
90
|
+
"@tanstack/form-core": "^1.29.1",
|
|
90
91
|
"@tanstack/react-hotkeys": "^0.5.1",
|
|
91
92
|
"@tiptap/extension-image": "^3.30.0",
|
|
92
93
|
"@tiptap/extension-link": "^3.30.0",
|
|
@@ -99,15 +100,16 @@
|
|
|
99
100
|
"tamagui": "2.7.6"
|
|
100
101
|
},
|
|
101
102
|
"devDependencies": {
|
|
102
|
-
"@multiplatform.one/config": "7.
|
|
103
|
-
"@multiplatform.one/storybook": "7.
|
|
104
|
-
"@multiplatform.one/test-utils": "7.
|
|
103
|
+
"@multiplatform.one/config": "7.23.0",
|
|
104
|
+
"@multiplatform.one/storybook": "7.23.0",
|
|
105
|
+
"@multiplatform.one/test-utils": "7.23.0",
|
|
105
106
|
"@tamagui/build": "2.7.6",
|
|
106
107
|
"@testing-library/jest-dom": "^6.9.1",
|
|
107
108
|
"@testing-library/react": "^16.3.2",
|
|
108
109
|
"@types/react-dom": "^19.2.3",
|
|
109
110
|
"@vitejs/plugin-react": "^6.0.1",
|
|
110
111
|
"@vitest/coverage-v8": "^4.1.5",
|
|
112
|
+
"i18next": "^25.10.10",
|
|
111
113
|
"react": "19.2.5",
|
|
112
114
|
"react-dom": "19.2.5",
|
|
113
115
|
"react-i18next": "^16.6.6",
|
|
@@ -115,6 +117,7 @@
|
|
|
115
117
|
},
|
|
116
118
|
"peerDependencies": {
|
|
117
119
|
"@react-native-community/datetimepicker": ">=8.0.1",
|
|
120
|
+
"i18next": "^25.0.0",
|
|
118
121
|
"react": "^19.1.0",
|
|
119
122
|
"react-dom": "^19.1.0",
|
|
120
123
|
"react-i18next": ">=14",
|
|
@@ -125,6 +128,9 @@
|
|
|
125
128
|
"@react-native-community/datetimepicker": {
|
|
126
129
|
"optional": true
|
|
127
130
|
},
|
|
131
|
+
"i18next": {
|
|
132
|
+
"optional": true
|
|
133
|
+
},
|
|
128
134
|
"react-i18next": {
|
|
129
135
|
"optional": true
|
|
130
136
|
},
|
|
@@ -190,7 +190,7 @@ describe("FrappeForm resolves a doctype through the desk form engine", () => {
|
|
|
190
190
|
});
|
|
191
191
|
|
|
192
192
|
it("save refuses an empty field that mandatory_depends_on made required", async () => {
|
|
193
|
-
renderForm({ name: "LOAN-APPROVED" });
|
|
193
|
+
renderForm({ name: "LOAN-APPROVED", roles: ["Loan Officer"] });
|
|
194
194
|
await expectProbe("status", "val=Approved");
|
|
195
195
|
fireEvent.click(screen.getByText("Save"));
|
|
196
196
|
await expectProbe("reason", "err=Reason is required");
|