@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,167 @@
|
|
|
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 FrappeFormActions_exports = {};
|
|
26
|
+
__export(FrappeFormActions_exports, {
|
|
27
|
+
FrappeFormActions: () => FrappeFormActions
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(FrappeFormActions_exports);
|
|
30
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
31
|
+
var import_components = require("@multiplatform.one/components");
|
|
32
|
+
var import_forms = require("@multiplatform.one/forms");
|
|
33
|
+
var import_theme = require("@multiplatform.one/theme");
|
|
34
|
+
var import_react = require("@phosphor-icons/react");
|
|
35
|
+
var import_react_i18next = require("react-i18next");
|
|
36
|
+
var import_tamagui = require("tamagui");
|
|
37
|
+
var indicatorColors = {
|
|
38
|
+
notSaved: "orange",
|
|
39
|
+
draft: "red",
|
|
40
|
+
submitted: "blue",
|
|
41
|
+
cancelled: "red"
|
|
42
|
+
};
|
|
43
|
+
function FrappeFormActions(param) {
|
|
44
|
+
var {
|
|
45
|
+
indicator,
|
|
46
|
+
action,
|
|
47
|
+
busy,
|
|
48
|
+
disabled,
|
|
49
|
+
onSave,
|
|
50
|
+
onSubmit,
|
|
51
|
+
onCancelDocument,
|
|
52
|
+
onAmend,
|
|
53
|
+
amendedAs,
|
|
54
|
+
onDelete,
|
|
55
|
+
onEdit,
|
|
56
|
+
onClose,
|
|
57
|
+
closeDisabled
|
|
58
|
+
} = param;
|
|
59
|
+
var {
|
|
60
|
+
t
|
|
61
|
+
} = (0, import_react_i18next.useTranslation)();
|
|
62
|
+
var {
|
|
63
|
+
knobProps
|
|
64
|
+
} = (0, import_theme.useResolvedKnobs)();
|
|
65
|
+
var readOnlyReason = t("Form is read-only");
|
|
66
|
+
var indicatorLabels = {
|
|
67
|
+
notSaved: t("Not Saved"),
|
|
68
|
+
draft: t("Draft"),
|
|
69
|
+
submitted: t("Submitted"),
|
|
70
|
+
cancelled: t("Cancelled")
|
|
71
|
+
};
|
|
72
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
|
|
73
|
+
...knobProps.gap,
|
|
74
|
+
justifyContent: "flex-end",
|
|
75
|
+
alignItems: "center",
|
|
76
|
+
paddingTop: "$3",
|
|
77
|
+
testID: "frappe-form-actions",
|
|
78
|
+
children: [indicator && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
|
|
79
|
+
flex: 1,
|
|
80
|
+
alignItems: "center",
|
|
81
|
+
testID: `frappe-form-status-${indicator}`,
|
|
82
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Chip, {
|
|
83
|
+
size: "$2",
|
|
84
|
+
variant: "subtle",
|
|
85
|
+
color: indicatorColors[indicator],
|
|
86
|
+
children: indicatorLabels[indicator]
|
|
87
|
+
})
|
|
88
|
+
}), onDelete && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
|
|
89
|
+
outlined: true,
|
|
90
|
+
error: true,
|
|
91
|
+
icon: import_react.TrashIcon,
|
|
92
|
+
loading: busy,
|
|
93
|
+
disabled,
|
|
94
|
+
disabledReason: disabled ? readOnlyReason : void 0,
|
|
95
|
+
disabledReasonPlacement: "inline",
|
|
96
|
+
onPress: onDelete,
|
|
97
|
+
children: t("Delete")
|
|
98
|
+
}), onClose && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
|
|
99
|
+
outlined: true,
|
|
100
|
+
icon: import_react.XIcon,
|
|
101
|
+
disabled: closeDisabled,
|
|
102
|
+
disabledReason: closeDisabled ? readOnlyReason : void 0,
|
|
103
|
+
disabledReasonPlacement: "inline",
|
|
104
|
+
onPress: onClose,
|
|
105
|
+
testID: "frappe-form-close",
|
|
106
|
+
children: (/* A submitted document's own Cancel sits beside this button. */
|
|
107
|
+
action === "cancel" ? t("Close") : t("Cancel"))
|
|
108
|
+
}), action === "cancel" && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
|
|
109
|
+
outlined: true,
|
|
110
|
+
error: true,
|
|
111
|
+
actionRole: "secondary",
|
|
112
|
+
icon: import_react.ProhibitIcon,
|
|
113
|
+
loading: busy,
|
|
114
|
+
disabled,
|
|
115
|
+
disabledReason: disabled ? readOnlyReason : void 0,
|
|
116
|
+
disabledReasonPlacement: "inline",
|
|
117
|
+
onPress: onCancelDocument,
|
|
118
|
+
testID: "frappe-form-cancel-document",
|
|
119
|
+
children: t("Cancel Document")
|
|
120
|
+
}), onEdit && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
|
|
121
|
+
accent: action !== "submit",
|
|
122
|
+
outlined: action === "submit",
|
|
123
|
+
icon: import_react.PencilSimpleIcon,
|
|
124
|
+
disabled,
|
|
125
|
+
disabledReason: disabled ? readOnlyReason : void 0,
|
|
126
|
+
disabledReasonPlacement: "inline",
|
|
127
|
+
onPress: onEdit,
|
|
128
|
+
testID: "frappe-form-edit",
|
|
129
|
+
children: t("Edit")
|
|
130
|
+
}), action === "amend" && onAmend && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
|
|
131
|
+
// Desk demotes Amend to a secondary action once the document is amended.
|
|
132
|
+
accent: !amendedAs,
|
|
133
|
+
outlined: Boolean(amendedAs),
|
|
134
|
+
icon: import_react.ArrowCounterClockwiseIcon,
|
|
135
|
+
loading: busy,
|
|
136
|
+
disabled: disabled || Boolean(amendedAs),
|
|
137
|
+
disabledReason: amendedAs ? t("Already amended as {{name}}", {
|
|
138
|
+
name: amendedAs
|
|
139
|
+
}) : disabled ? readOnlyReason : void 0,
|
|
140
|
+
disabledReasonPlacement: "inline",
|
|
141
|
+
onPress: onAmend,
|
|
142
|
+
testID: "frappe-form-amend",
|
|
143
|
+
children: t("Amend")
|
|
144
|
+
}), action === "submit" && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
|
|
145
|
+
accent: true,
|
|
146
|
+
icon: import_react.CheckCircleIcon,
|
|
147
|
+
loading: busy,
|
|
148
|
+
disabled,
|
|
149
|
+
disabledReason: disabled ? readOnlyReason : void 0,
|
|
150
|
+
disabledReasonPlacement: "inline",
|
|
151
|
+
onPress: onSubmit,
|
|
152
|
+
testID: "frappe-form-submit",
|
|
153
|
+
children: t("Submit")
|
|
154
|
+
}), (action === "save" || action === "update") && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
|
|
155
|
+
accent: true,
|
|
156
|
+
icon: import_react.FloppyDiskIcon,
|
|
157
|
+
loading: busy,
|
|
158
|
+
disabled,
|
|
159
|
+
disabledReason: disabled ? readOnlyReason : void 0,
|
|
160
|
+
disabledReasonPlacement: "inline",
|
|
161
|
+
onPress: onSave,
|
|
162
|
+
testID: "frappe-form-save",
|
|
163
|
+
children: busy ? t("Saving...") : action === "update" ? t("Update") : t("Save")
|
|
164
|
+
})]
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=FrappeFormActions.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","FrappeFormActions_exports","FrappeFormActions","module","exports","import_jsx_runtime","require","import_components","import_forms","import_theme","import_react","import_react_i18next","import_tamagui","indicatorColors","notSaved","draft","submitted","cancelled","param","indicator","action","busy","disabled","onSave","onSubmit","onCancelDocument","onAmend","amendedAs","onDelete","onEdit","onClose","closeDisabled","t","useTranslation","knobProps","useResolvedKnobs","readOnlyReason","indicatorLabels","jsxs","XStack","gap","justifyContent","alignItems","paddingTop","testID","children","jsx","flex","Chip","size","variant","color","Button","outlined","error","icon","TrashIcon","loading","disabledReason","disabledReasonPlacement","onPress","XIcon","actionRole","ProhibitIcon","accent","PencilSimpleIcon","Boolean","ArrowCounterClockwiseIcon","CheckCircleIcon","FloppyDiskIcon"],"sources":["../../src/FrappeFormActions.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/jsx/FrappeTable.mjs
CHANGED
|
@@ -9,7 +9,10 @@ import { FilterManager, SavedFilterDropdown, useSavedFilters } from "@multiplatf
|
|
|
9
9
|
import { useFrappeConfig } from "./FrappeProvider.mjs";
|
|
10
10
|
import { FrappeReconnectIndicator } from "./FrappeReconnectIndicator.mjs";
|
|
11
11
|
import { docFieldsToFilterFields } from "./filterFields.mjs";
|
|
12
|
+
import { buildPermLevelMatrix } from "./formEngine/fieldPermissions.mjs";
|
|
12
13
|
import { useDocRights } from "./formEngine/useDocRights.mjs";
|
|
14
|
+
import { buildListColumns } from "./list/listColumns.mjs";
|
|
15
|
+
import { listFieldsToFetch } from "./list/listFields.mjs";
|
|
13
16
|
import { useFrappeRows } from "./useFrappeRows.mjs";
|
|
14
17
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
15
18
|
function filterValueToFrappeTuple(fieldname, filterValue) {
|
|
@@ -125,7 +128,7 @@ function FrappeTable({
|
|
|
125
128
|
auth,
|
|
126
129
|
syncOptions,
|
|
127
130
|
doctype,
|
|
128
|
-
columns,
|
|
131
|
+
columns: columnsProp,
|
|
129
132
|
fields,
|
|
130
133
|
filters: initialFilters,
|
|
131
134
|
onRowClick,
|
|
@@ -142,6 +145,7 @@ function FrappeTable({
|
|
|
142
145
|
filterableFields: filterableFieldsProp,
|
|
143
146
|
rights: rightsProp,
|
|
144
147
|
layout,
|
|
148
|
+
initialState,
|
|
145
149
|
...dataTableProps
|
|
146
150
|
}) {
|
|
147
151
|
const infiniteServerMode = serverSide && paginationMode === "infinite";
|
|
@@ -182,10 +186,8 @@ function FrappeTable({
|
|
|
182
186
|
if (!serverSide || !finalBaseURL) return null;
|
|
183
187
|
return new FrappeApp(finalBaseURL, finalAuth ?? {});
|
|
184
188
|
}, [serverSide, finalBaseURL, finalAuth]);
|
|
185
|
-
const
|
|
186
|
-
const
|
|
187
|
-
const clientFields = fields ?? (connectionConfig.fixtures ? void 0 : serverFields);
|
|
188
|
-
const skipMeta = !!filterableFieldsProp && (!!rightsProp || !!connectionConfig.fixtures);
|
|
189
|
+
const deriveColumns = !columnsProp;
|
|
190
|
+
const skipMeta = !deriveColumns && !!filterableFieldsProp && (!!rightsProp || !!connectionConfig.fixtures);
|
|
189
191
|
const metaConnection = useMemo(() => {
|
|
190
192
|
if (skipMeta) return void 0;
|
|
191
193
|
if (!connectionConfig.fixtures) return connectionConfig;
|
|
@@ -195,12 +197,36 @@ function FrappeTable({
|
|
|
195
197
|
};
|
|
196
198
|
}, [skipMeta, connectionConfig]);
|
|
197
199
|
const {
|
|
198
|
-
meta
|
|
200
|
+
meta,
|
|
201
|
+
isLoading: isMetaLoading
|
|
199
202
|
} = useDocTypeMeta(metaConnection, doctype);
|
|
203
|
+
const readSession = !rightsProp || deriveColumns;
|
|
200
204
|
const {
|
|
201
|
-
rights: resolvedRights
|
|
202
|
-
|
|
205
|
+
rights: resolvedRights,
|
|
206
|
+
pending: rolesPending,
|
|
207
|
+
user: sessionUser,
|
|
208
|
+
roles: sessionRoles
|
|
209
|
+
} = useDocRights(readSession ? connectionConfig : void 0, readSession ? meta : void 0);
|
|
203
210
|
const rights = rightsProp ?? resolvedRights;
|
|
211
|
+
const permMatrix = useMemo(() => deriveColumns ? buildPermLevelMatrix(meta?.permissions, sessionRoles) : void 0, [deriveColumns, meta?.permissions, sessionRoles]);
|
|
212
|
+
const derivedColumns = useMemo(() => deriveColumns ? buildListColumns({
|
|
213
|
+
meta,
|
|
214
|
+
t: (_key, fallback) => t(fallback),
|
|
215
|
+
sessionUser,
|
|
216
|
+
permMatrix
|
|
217
|
+
}) : void 0, [deriveColumns, meta, t, sessionUser, permMatrix]);
|
|
218
|
+
const columns = columnsProp ?? derivedColumns ?? [];
|
|
219
|
+
const columnsPending = deriveColumns && (isMetaLoading || rolesPending);
|
|
220
|
+
const resolvedInitialState = deriveColumns ? {
|
|
221
|
+
...initialState,
|
|
222
|
+
columnVisibility: {
|
|
223
|
+
modified: false,
|
|
224
|
+
...initialState?.columnVisibility
|
|
225
|
+
}
|
|
226
|
+
} : initialState;
|
|
227
|
+
const columnFieldsKey = fields ? void 0 : JSON.stringify(deriveColumns ? listFieldsToFetch(meta, permMatrix) : columns.map(column => column.accessorKey).filter(key => typeof key === "string"));
|
|
228
|
+
const serverFields = useMemo(() => fields ? fields : Array.from(/* @__PURE__ */new Set(["name", ...JSON.parse(columnFieldsKey ?? "[]")])), [fields, columnFieldsKey]);
|
|
229
|
+
const clientFields = fields ?? (connectionConfig.fixtures ? void 0 : serverFields);
|
|
204
230
|
const metaFilterFields = useMemo(() => meta?.fields ? docFieldsToFilterFields(meta.fields) : void 0, [meta]);
|
|
205
231
|
const filterableFields = filterableFieldsProp ?? metaFilterFields;
|
|
206
232
|
const titleField = meta?.title_field;
|
|
@@ -338,7 +364,7 @@ function FrappeTable({
|
|
|
338
364
|
if (serverSide && !infiniteServerMode) fetchServerData(state);
|
|
339
365
|
}, [onStateChangeProp, serverSide, infiniteServerMode, fetchServerData]);
|
|
340
366
|
useEffect(() => {
|
|
341
|
-
if (serverSide && !infiniteServerMode && frappeApp) {
|
|
367
|
+
if (serverSide && !infiniteServerMode && frappeApp && !columnsPending) {
|
|
342
368
|
lastFetchKey.current = "";
|
|
343
369
|
fetchServerData(lastStateRef.current ?? {
|
|
344
370
|
data: [],
|
|
@@ -355,7 +381,7 @@ function FrappeTable({
|
|
|
355
381
|
columnSizing: {}
|
|
356
382
|
});
|
|
357
383
|
}
|
|
358
|
-
}, [serverSide, infiniteServerMode, !!frappeApp, fetchServerData]);
|
|
384
|
+
}, [serverSide, infiniteServerMode, !!frappeApp, columnsPending, fetchServerData]);
|
|
359
385
|
const savedFiltersHook = useSavedFilters({
|
|
360
386
|
userId
|
|
361
387
|
});
|
|
@@ -378,11 +404,11 @@ function FrappeTable({
|
|
|
378
404
|
fields: clientFields,
|
|
379
405
|
filters: activeFilters,
|
|
380
406
|
limit: null,
|
|
381
|
-
enabled: !serverSide,
|
|
407
|
+
enabled: !serverSide && !columnsPending,
|
|
382
408
|
messages: rowsMessages
|
|
383
409
|
});
|
|
384
410
|
const lastGoodClientRows = useRef(null);
|
|
385
|
-
if (!serverSide && !isRowsLoading) lastGoodClientRows.current = clientRows;
|
|
411
|
+
if (!serverSide && !isRowsLoading && !columnsPending) lastGoodClientRows.current = clientRows;
|
|
386
412
|
const clientRowsResolved = useMemo(() => {
|
|
387
413
|
if (serverSide) return clientRows;
|
|
388
414
|
if (!isRowsLoading || !lastGoodClientRows.current) return clientRows;
|
|
@@ -420,7 +446,7 @@ function FrappeTable({
|
|
|
420
446
|
const rowData = rows ?? [];
|
|
421
447
|
const boundaryState = resolvedError ? {
|
|
422
448
|
error: resolvedError
|
|
423
|
-
} : isRowsLoadingResolved ? {
|
|
449
|
+
} : isRowsLoadingResolved || columnsPending ? {
|
|
424
450
|
loading: loading ?? true
|
|
425
451
|
} : rowData.length === 0 && !infiniteServerMode && !isFetching ? {
|
|
426
452
|
empty: true
|
|
@@ -490,6 +516,9 @@ function FrappeTable({
|
|
|
490
516
|
...(filterableFields ? {
|
|
491
517
|
filterableFields
|
|
492
518
|
} : {}),
|
|
519
|
+
...(resolvedInitialState ? {
|
|
520
|
+
initialState: resolvedInitialState
|
|
521
|
+
} : {}),
|
|
493
522
|
isFetching,
|
|
494
523
|
...dataTableProps,
|
|
495
524
|
readOnly: dataTableProps.readOnly || !rights.write,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FrappeApp","Order","matchesFilters","useDocTypeMeta","useFrappeDoctypeEvents","DataTable","AsyncBoundary","useResolvedKnobs","React","useCallback","useEffect","useMemo","useRef","useState","useTranslation","XStack","YStack","FilterManager","SavedFilterDropdown","useSavedFilters","useFrappeConfig","FrappeReconnectIndicator","docFieldsToFilterFields","useDocRights","useFrappeRows","Fragment","jsx","jsxs","filterValueToFrappeTuple","fieldname","filterValue","operator","value","values","wrap","pattern","includes","length","isOperatorFilterValue","sortRowsLocally","rows","orderBy","sort","a","b","field","order","av","bv","Asc","stateToFrappeParams","state","pagination","sorting","filters","columnFilters","globalFilter","limitStart","pageIndex","pageSize","limit","frappeFilters","f","tuple","columnId","push","cf","id","trim","map","s","desc","Desc","FrappeTable","baseURL","auth","syncOptions","doctype","columns","fields","initialFilters","onRowClick","loading","error","savedFilters","canCreateGlobalFilters","userId","serverSide","onStateChange","onStateChangeProp","refreshToken","paginationMode","loadPage","loadPageProp","filterableFields","filterableFieldsProp","rights","rightsProp","layout","dataTableProps","infiniteServerMode","knobProps","t","errorState","setErrorState","activeFilters","setActiveFilters","config","filtersPropKey","JSON","stringify","adoptedFiltersPropRef","current","parse","finalBaseURL","finalAuth","finalSyncOptions","fixtures","Error","connectionConfig","socketPort","siteName","socketBaseURL","realtime","frappeApp","columnFieldsKey","column","accessorKey","filter","key","serverFields","Array","from","Set","clientFields","skipMeta","metaConnection","meta","resolvedRights","metaFilterFields","titleField","title_field","rowLabel","row","fromTitle","String","name","serverData","setServerData","serverRowCount","setServerRowCount","serverLoading","setServerLoading","hasLoadedOnce","setHasLoadedOnce","hasLoadedOnceRef","lastFetchKey","fetchSeq","fetchAbortRef","lastStateRef","lastFiltersKey","lastSortKey","lastGoodServerRows","fetchServerData","params","filtersKey","sortKey","alreadyLoaded","filtersChanged","sortChanged","previous","next","narrowed","abort","controller","AbortController","seq","data","count","Promise","all","db","getDocList","signal","getCount","err","aborted","liveRefetchTimer","clearTimeout","setTimeout","refreshTokenSeen","frappeLoadPage","query","resolve","rows2","totalCount","resolvedLoadPage","handleStateChange","columnVisibility","columnOrder","c","columnSizing","savedFiltersHook","rowsMessages","permission","generic","queryFailed","clientRows","isQueryLoading","isRowsLoading","liveError","enabled","messages","lastGoodClientRows","clientRowsResolved","held","serverRowsResolved","isRowsLoadingResolved","isFetching","handleSelectFilter","handleSaveFilter","filterName","isGlobal","filterArray","isArray","Object","entries","saveFilter","handleDeleteFilter","deleteFilter","resolvedError","children","rowData","boundaryState","empty","gap","flexGrow","flexShrink","flexBasis","minHeight","errorTitle","emptyTitle","padding","selectedFilter","onSelectFilter","onDeleteFilter","currentFilters","onSaveFilter","canCreateGlobal","onRowPress","manualFiltering","manualPagination","manualSorting","rowCount","readOnly","write","showAddRow","create","showDeleteRow","delete"],"sources":["../../src/FrappeTable.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["FrappeApp","Order","matchesFilters","useDocTypeMeta","useFrappeDoctypeEvents","DataTable","AsyncBoundary","useResolvedKnobs","React","useCallback","useEffect","useMemo","useRef","useState","useTranslation","XStack","YStack","FilterManager","SavedFilterDropdown","useSavedFilters","useFrappeConfig","FrappeReconnectIndicator","docFieldsToFilterFields","buildPermLevelMatrix","useDocRights","buildListColumns","listFieldsToFetch","useFrappeRows","Fragment","jsx","jsxs","filterValueToFrappeTuple","fieldname","filterValue","operator","value","values","wrap","pattern","includes","length","isOperatorFilterValue","sortRowsLocally","rows","orderBy","sort","a","b","field","order","av","bv","Asc","stateToFrappeParams","state","pagination","sorting","filters","columnFilters","globalFilter","limitStart","pageIndex","pageSize","limit","frappeFilters","f","tuple","columnId","push","cf","id","trim","map","s","desc","Desc","FrappeTable","baseURL","auth","syncOptions","doctype","columns","columnsProp","fields","initialFilters","onRowClick","loading","error","savedFilters","canCreateGlobalFilters","userId","serverSide","onStateChange","onStateChangeProp","refreshToken","paginationMode","loadPage","loadPageProp","filterableFields","filterableFieldsProp","rights","rightsProp","layout","initialState","dataTableProps","infiniteServerMode","knobProps","t","errorState","setErrorState","activeFilters","setActiveFilters","config","filtersPropKey","JSON","stringify","adoptedFiltersPropRef","current","parse","finalBaseURL","finalAuth","finalSyncOptions","fixtures","Error","connectionConfig","socketPort","siteName","socketBaseURL","realtime","frappeApp","deriveColumns","skipMeta","metaConnection","meta","isLoading","isMetaLoading","readSession","resolvedRights","pending","rolesPending","user","sessionUser","roles","sessionRoles","permMatrix","permissions","derivedColumns","_key","fallback","columnsPending","resolvedInitialState","columnVisibility","modified","columnFieldsKey","column","accessorKey","filter","key","serverFields","Array","from","Set","clientFields","metaFilterFields","titleField","title_field","rowLabel","row","fromTitle","String","name","serverData","setServerData","serverRowCount","setServerRowCount","serverLoading","setServerLoading","hasLoadedOnce","setHasLoadedOnce","hasLoadedOnceRef","lastFetchKey","fetchSeq","fetchAbortRef","lastStateRef","lastFiltersKey","lastSortKey","lastGoodServerRows","fetchServerData","params","filtersKey","sortKey","alreadyLoaded","filtersChanged","sortChanged","previous","next","narrowed","abort","controller","AbortController","seq","data","count","Promise","all","db","getDocList","signal","getCount","err","aborted","liveRefetchTimer","clearTimeout","setTimeout","refreshTokenSeen","frappeLoadPage","query","resolve","rows2","totalCount","resolvedLoadPage","handleStateChange","columnOrder","c","columnSizing","savedFiltersHook","rowsMessages","permission","generic","queryFailed","clientRows","isQueryLoading","isRowsLoading","liveError","enabled","messages","lastGoodClientRows","clientRowsResolved","held","serverRowsResolved","isRowsLoadingResolved","isFetching","handleSelectFilter","handleSaveFilter","filterName","isGlobal","filterArray","isArray","Object","entries","saveFilter","handleDeleteFilter","deleteFilter","resolvedError","children","rowData","boundaryState","empty","gap","flexGrow","flexShrink","flexBasis","minHeight","errorTitle","emptyTitle","padding","selectedFilter","onSelectFilter","onDeleteFilter","currentFilters","onSaveFilter","canCreateGlobal","onRowPress","manualFiltering","manualPagination","manualSorting","rowCount","readOnly","write","showAddRow","create","showDeleteRow","delete"],"sources":["../../src/FrappeTable.tsx"],"sourcesContent":[null],"mappings":"AAAA,SACEA,SAAA,EACAC,KAAA,EACAC,cAAA,EACAC,cAAA,EACAC,sBAAA,QACK;AACP,SACEC,SAAA,QAQK;AACP,SAASC,aAAA,QAAqB;AAC9B,SAASC,gBAAA,QAAwB;AACjC,OAAOC,KAAA,IAASC,WAAA,EAAaC,SAAA,EAAWC,OAAA,EAASC,MAAA,EAAQC,QAAA,QAAgB;AACzE,SAASC,cAAA,QAAsB;AAC/B,SAASC,MAAA,EAAQC,MAAA,QAAc;AAC/B,SAASC,aAAA,EAAeC,mBAAA,EAAqBC,eAAA,QAAuB;AACpE,SAASC,eAAA,QAAuB;AAChC,SAASC,wBAAA,QAAgC;AACzC,SAASC,uBAAA,QAA+B;AAExC,SAASC,oBAAA,QAA4B;AACrC,SAASC,YAAA,QAAoB;AAC7B,SAASC,gBAAA,QAAwB;AACjC,SAASC,iBAAA,QAAyB;AAClC,SAASC,aAAA,QAAqB;AAmyBnB,SAAAC,QAAA,EAAAC,GAAA,EAiBLC,IAAA,QAjBK;AA3pBJ,SAASC,yBACdC,SAAA,EACAC,WAAA,EACkC;EAClC,MAAM;IAAEC,QAAA;IAAUC,KAAA;IAAOC;EAAO,IAAIH,WAAA;EACpC,MAAMI,IAAA,GAAQC,OAAA,IACZ,OAAOH,KAAA,KAAU,YAAYA,KAAA,CAAMI,QAAA,CAAS,GAAG,IAAIJ,KAAA,GAAQG,OAAA;EAC7D,QAAQJ,QAAA;IACN,KAAK;MACH,OAAO,CAACF,SAAA,EAAW,MAAM,SAAS;IACpC,KAAK;MACH,OAAO,CAACA,SAAA,EAAW,MAAM,KAAK;IAChC,KAAK;MACH,OAAOI,MAAA,EAAQI,MAAA,GAAS,CAACR,SAAA,EAAW,MAAMI,MAAM,IAAI;IACtD,KAAK;MACH,OAAOA,MAAA,EAAQI,MAAA,GAAS,CAACR,SAAA,EAAW,UAAUI,MAAM,IAAI;IAC1D,KAAK;MACH,OAAOA,MAAA,EAAQI,MAAA,KAAW,IAAI,CAACR,SAAA,EAAW,WAAWI,MAAM,IAAI;EACnE;EACA,IAAID,KAAA,IAAS,QAAQA,KAAA,KAAU,IAAI,OAAO;EAC1C,QAAQD,QAAA;IACN,KAAK;MACH,OAAO,CAACF,SAAA,EAAW,QAAQK,IAAA,CAAK,IAAIF,KAAK,GAAG,CAAC;IAC/C,KAAK;MACH,OAAO,CAACH,SAAA,EAAW,YAAYK,IAAA,CAAK,IAAIF,KAAK,GAAG,CAAC;IACnD,KAAK;MACH,OAAO,CAACH,SAAA,EAAW,QAAQK,IAAA,CAAK,GAAGF,KAAK,GAAG,CAAC;IAC9C,KAAK;MACH,OAAO,CAACH,SAAA,EAAW,QAAQK,IAAA,CAAK,IAAIF,KAAK,EAAE,CAAC;IAC9C,KAAK;MACH,OAAO,CAACH,SAAA,EAAW,KAAKG,KAAK;IAC/B,KAAK;MACH,OAAO,CAACH,SAAA,EAAW,MAAMG,KAAK;IAChC,KAAK;IACL,KAAK;MACH,OAAO,CAACH,SAAA,EAAW,KAAKG,KAAK;IAC/B,KAAK;IACL,KAAK;MACH,OAAO,CAACH,SAAA,EAAW,KAAKG,KAAK;IAC/B,KAAK;IACL,KAAK;MACH,OAAO,CAACH,SAAA,EAAW,MAAMG,KAAK;IAChC,KAAK;IACL,KAAK;MACH,OAAO,CAACH,SAAA,EAAW,MAAMG,KAAK;IAChC;MACE,OAAO,CAACH,SAAA,EAAW,KAAKG,KAAK;EACjC;AACF;AAGA,SAASM,sBAAsBN,KAAA,EAAsC;EACnE,OACE,OAAOA,KAAA,KAAU,YACjBA,KAAA,KAAU,QACV,OAAQA,KAAA,CAAsBD,QAAA,KAAa;AAE/C;AAGA,SAASQ,gBACPC,IAAA,EACAC,OAAA,EACK;EACL,IAAI,CAACA,OAAA,EAASJ,MAAA,EAAQ,OAAOG,IAAA;EAC7B,OAAO,CAAC,GAAGA,IAAI,EAAEE,IAAA,CAAK,CAACC,CAAA,EAAGC,CAAA,KAAM;IAC9B,WAAW;MAAEC,KAAA;MAAOC;IAAM,KAAKL,OAAA,EAAS;MACtC,MAAMM,EAAA,GAAKJ,CAAA,CAAEE,KAAK;MAClB,MAAMG,EAAA,GAAKJ,CAAA,CAAEC,KAAK;MAClB,IAAIE,EAAA,IAAM,QAAQC,EAAA,IAAM,MAAM;MAC9B,IAAID,EAAA,IAAM,MAAM,OAAOD,KAAA,KAAUhD,KAAA,CAAMmD,GAAA,GAAM,KAAK;MAClD,IAAID,EAAA,IAAM,MAAM,OAAOF,KAAA,KAAUhD,KAAA,CAAMmD,GAAA,GAAM,IAAI;MACjD,IAAIF,EAAA,GAAKC,EAAA,EAAI,OAAOF,KAAA,KAAUhD,KAAA,CAAMmD,GAAA,GAAM,KAAK;MAC/C,IAAIF,EAAA,GAAKC,EAAA,EAAI,OAAOF,KAAA,KAAUhD,KAAA,CAAMmD,GAAA,GAAM,IAAI;IAChD;IACA,OAAO;EACT,CAAC;AACH;AAGA,SAASC,oBAAoBC,KAAA,EAAuB;EAClD,MAAM;IAAEC,UAAA;IAAYC,OAAA;IAASC,OAAA;IAASC,aAAA;IAAeC;EAAa,IAAIL,KAAA;EACtE,MAAMM,UAAA,GAAaL,UAAA,CAAWM,SAAA,GAAYN,UAAA,CAAWO,QAAA;EACrD,MAAMC,KAAA,GAAQR,UAAA,CAAWO,QAAA;EAEzB,MAAME,aAAA,GAAkD,EAAC;EAEzD,WAAWC,CAAA,IAAKR,OAAA,IAAW,EAAC,EAAG;IAC7B,IAAI,CAACQ,CAAA,CAAE9B,KAAA,EAAOD,QAAA,EAAU;IACxB,MAAMgC,KAAA,GAAQnC,wBAAA,CAAyBkC,CAAA,CAAEE,QAAA,EAAUF,CAAA,CAAE9B,KAAK;IAC1D,IAAI+B,KAAA,EAAOF,aAAA,CAAcI,IAAA,CAAKF,KAAK;EACrC;EAGA,WAAWG,EAAA,IAAMX,aAAA,IAAiB,EAAC,EAAG;IACpC,IAAIjB,qBAAA,CAAsB4B,EAAA,CAAGlC,KAAK,GAAG;MACnC,MAAM+B,KAAA,GAAQnC,wBAAA,CAAyBsC,EAAA,CAAGC,EAAA,EAAID,EAAA,CAAGlC,KAAK;MACtD,IAAI+B,KAAA,EAAOF,aAAA,CAAcI,IAAA,CAAKF,KAAK;IACrC,WAAWG,EAAA,CAAGlC,KAAA,IAAS,QAAQkC,EAAA,CAAGlC,KAAA,KAAU,IAAI;MAC9C6B,aAAA,CAAcI,IAAA,CAAK,CAACC,EAAA,CAAGC,EAAA,EAAI,KAAKD,EAAA,CAAGlC,KAAK,CAAC;IAC3C;EACF;EACA,IAAIwB,YAAA,IAAgB,OAAOA,YAAA,KAAiB,YAAYA,YAAA,CAAaY,IAAA,CAAK,GAAG;IAC3EP,aAAA,CAAcI,IAAA,CAAK,CAAC,QAAQ,QAAQ,IAAIT,YAAY,GAAG,CAAC;EAC1D;EAEA,MAAMf,OAAA,GACJY,OAAA,EAAShB,MAAA,IAAUgB,OAAA,CAAQ,CAAC,IACxBA,OAAA,CAAQgB,GAAA,CAAKC,CAAA,KAAO;IAAEzB,KAAA,EAAOyB,CAAA,CAAEH,EAAA;IAAIrB,KAAA,EAAOwB,CAAA,CAAEC,IAAA,GAAOzE,KAAA,CAAM0E,IAAA,GAAO1E,KAAA,CAAMmD;EAAI,EAAE,IAC5E;EAEN,OAAO;IAAEQ,UAAA;IAAYG,KAAA;IAAON,OAAA,EAASO,aAAA;IAAepB;EAAQ;AAC9D;AAgDO,SAASgC,YAA4D;EAC1EC,OAAA;EACAC,IAAA;EACAC,WAAA;EACAC,OAAA;EACAC,OAAA,EAASC,WAAA;EACTC,MAAA;EACA1B,OAAA,EAAS2B,cAAA;EACTC,UAAA;EACAC,OAAA;EACAC,KAAA;EACAC,YAAA,GAAe;EACfC,sBAAA,GAAyB;EACzBC,MAAA;EACAC,UAAA,GAAa;EACbC,aAAA,EAAeC,iBAAA;EACfC,YAAA;EACAC,cAAA,GAAiB;EACjBC,QAAA,EAAUC,YAAA;EACVC,gBAAA,EAAkBC,oBAAA;EAClBC,MAAA,EAAQC,UAAA;EACRC,MAAA;EACAC,YAAA;EACA,GAAGC;AACL,GAA2B;EAIzB,MAAMC,kBAAA,GAAqBd,UAAA,IAAcI,cAAA,KAAmB;EAC5D,MAAM;IAAEW;EAAU,IAAInG,gBAAA,CAAiB;EACvC,MAAM;IAAEoG;EAAE,IAAI7F,cAAA,CAAe;EAC7B,MAAM,CAAC8F,UAAA,EAAYC,aAAa,IAAIrG,KAAA,CAAMK,QAAA,CAAuB,IAAI;EACrE,MAAM,CAACiG,aAAA,EAAeC,gBAAgB,IAAIvG,KAAA,CAAMK,QAAA,CAE9CuE,cAAc;EAChB,MAAM4B,MAAA,GAAS5F,eAAA,CAAgB;EAO/B,MAAM6F,cAAA,GAAiB7B,cAAA,KAAmB,SAAY8B,IAAA,CAAKC,SAAA,CAAU/B,cAAc,IAAI;EACvF,MAAMgC,qBAAA,GAAwBxG,MAAA,CAAOqG,cAAc;EACnDvG,SAAA,CAAU,MAAM;IACd,IAAIuG,cAAA,KAAmB,QAAW;IAClC,IAAIG,qBAAA,CAAsBC,OAAA,KAAYJ,cAAA,EAAgB;IACtDG,qBAAA,CAAsBC,OAAA,GAAUJ,cAAA;IAChCF,gBAAA,CAAiBG,IAAA,CAAKI,KAAA,CAAML,cAAc,CAAC;EAC7C,GAAG,CAACA,cAAc,CAAC;EAEnB,MAAMM,YAAA,GAAe1C,OAAA,IAAWmC,MAAA,EAAQnC,OAAA;EACxC,MAAM2C,SAAA,GAAY1C,IAAA,IAAQkC,MAAA,EAAQlC,IAAA;EAClC,MAAM2C,gBAAA,GAAmB1C,WAAA,IAAeiC,MAAA,EAAQjC,WAAA;EAIhD,IAAI,CAACwC,YAAA,IAAgB,CAACP,MAAA,EAAQU,QAAA,EAAU;IACtC,MAAM,IAAIC,KAAA,CAAM,8EAA8E;EAChG;EAIA,MAAMC,gBAAA,GAAmBjH,OAAA,CACvB,OAAO;IACLkE,OAAA,EAAS0C,YAAA;IACTM,UAAA,EAAYb,MAAA,EAAQa,UAAA;IACpBC,QAAA,EAAUd,MAAA,EAAQc,QAAA;IAClBC,aAAA,EAAef,MAAA,EAAQe,aAAA;IACvBjD,IAAA,EAAM0C,SAAA;IACNzC,WAAA,EAAa0C,gBAAA;IACbO,QAAA,EAAUhB,MAAA,EAAQgB,QAAA;IAClBN,QAAA,EAAUV,MAAA,EAAQU;EACpB,IACA,CACEH,YAAA,EACAP,MAAA,EAAQa,UAAA,EACRb,MAAA,EAAQc,QAAA,EACRd,MAAA,EAAQe,aAAA,EACRf,MAAA,EAAQgB,QAAA,EACRR,SAAA,EACAC,gBAAA,EACAT,MAAA,EAAQU,QAAA,CAEZ;EAEA,MAAMO,SAAA,GAAYtH,OAAA,CAAQ,MAAM;IAC9B,IAAI,CAACgF,UAAA,IAAc,CAAC4B,YAAA,EAAc,OAAO;IACzC,OAAO,IAAIvH,SAAA,CAAUuH,YAAA,EAAeC,SAAA,IAAa,CAAC,CAA6B;EACjF,GAAG,CAAC7B,UAAA,EAAY4B,YAAA,EAAcC,SAAS,CAAC;EAUxC,MAAMU,aAAA,GAAgB,CAAChD,WAAA;EACvB,MAAMiD,QAAA,GACJ,CAACD,aAAA,IAAiB,CAAC,CAAC/B,oBAAA,KAAyB,CAAC,CAACE,UAAA,IAAc,CAAC,CAACuB,gBAAA,CAAiBF,QAAA;EAClF,MAAMU,cAAA,GAAiBzH,OAAA,CAAQ,MAAM;IACnC,IAAIwH,QAAA,EAAU,OAAO;IACrB,IAAI,CAACP,gBAAA,CAAiBF,QAAA,EAAU,OAAOE,gBAAA;IACvC,OAAO;MAAE,GAAGA,gBAAA;MAAkB/C,OAAA,EAAS;IAAU;EACnD,GAAG,CAACsD,QAAA,EAAUP,gBAAgB,CAAC;EAC/B,MAAM;IAAES,IAAA;IAAMC,SAAA,EAAWC;EAAc,IAAIpI,cAAA,CAAeiI,cAAA,EAAgBpD,OAAO;EACjF,MAAMwD,WAAA,GAAc,CAACnC,UAAA,IAAc6B,aAAA;EACnC,MAAM;IACJ9B,MAAA,EAAQqC,cAAA;IACRC,OAAA,EAASC,YAAA;IACTC,IAAA,EAAMC,WAAA;IACNC,KAAA,EAAOC;EACT,IAAIvH,YAAA,CAAagH,WAAA,GAAcZ,gBAAA,GAAmB,QAAWY,WAAA,GAAcH,IAAA,GAAO,MAAS;EAC3F,MAAMjC,MAAA,GAASC,UAAA,IAAcoC,cAAA;EAE7B,MAAMO,UAAA,GAAarI,OAAA,CACjB,MAAOuH,aAAA,GAAgB3G,oBAAA,CAAqB8G,IAAA,EAAMY,WAAA,EAAaF,YAAY,IAAI,QAC/E,CAACb,aAAA,EAAeG,IAAA,EAAMY,WAAA,EAAaF,YAAY,CACjD;EACA,MAAMG,cAAA,GAAiBvI,OAAA,CACrB,MACEuH,aAAA,GACKzG,gBAAA,CAAiB;IAChB4G,IAAA;IACA1B,CAAA,EAAGA,CAACwC,IAAA,EAAMC,QAAA,KAAazC,CAAA,CAAEyC,QAAQ;IACjCP,WAAA;IACAG;EACF,CAAC,IACD,QACN,CAACd,aAAA,EAAeG,IAAA,EAAM1B,CAAA,EAAGkC,WAAA,EAAaG,UAAU,CAClD;EACA,MAAM/D,OAAA,GAAUC,WAAA,IAAegE,cAAA,IAAkB,EAAC;EAGlD,MAAMG,cAAA,GAAiBnB,aAAA,KAAkBK,aAAA,IAAiBI,YAAA;EAC1D,MAAMW,oBAAA,GAAuBpB,aAAA,GACzB;IACE,GAAG3B,YAAA;IACHgD,gBAAA,EAAkB;MAAEC,QAAA,EAAU;MAAO,GAAGjD,YAAA,EAAcgD;IAAiB;EACzE,IACAhD,YAAA;EAIJ,MAAMkD,eAAA,GAAkBtE,MAAA,GACpB,SACA+B,IAAA,CAAKC,SAAA,CACHe,aAAA,GACIxG,iBAAA,CAAkB2G,IAAA,EAAMW,UAAU,IAClC/D,OAAA,CACGT,GAAA,CAAKkF,MAAA,IAAoBA,MAAA,CAAOC,WAAW,EAC3CC,MAAA,CAAQC,GAAA,IAAuB,OAAOA,GAAA,KAAQ,QAAQ,CAC/D;EACJ,MAAMC,YAAA,GAAenJ,OAAA,CACnB,MACEwE,MAAA,GACKA,MAAA,GACD4E,KAAA,CAAMC,IAAA,CAAK,mBAAIC,GAAA,CAAY,CAAC,QAAQ,GAAG/C,IAAA,CAAKI,KAAA,CAAMmC,eAAA,IAAmB,IAAI,CAAC,CAAC,CAAC,GAClF,CAACtE,MAAA,EAAQsE,eAAe,CAC1B;EAIA,MAAMS,YAAA,GAAgB/E,MAAA,KACnByC,gBAAA,CAAiBF,QAAA,GAAW,SAAYoC,YAAA;EAE3C,MAAMK,gBAAA,GAAmBxJ,OAAA,CACvB,MAAO0H,IAAA,EAAMlD,MAAA,GAAS7D,uBAAA,CAAwB+G,IAAA,CAAKlD,MAAM,IAAI,QAC7D,CAACkD,IAAI,CACP;EACA,MAAMnC,gBAAA,GAAmBC,oBAAA,IAAwBgE,gBAAA;EAMjD,MAAMC,UAAA,GAAa/B,IAAA,EAAMgC,WAAA;EACzB,MAAMC,QAAA,GAAW7J,WAAA,CACd8J,GAAA,IAA+B;IAC9B,MAAMC,SAAA,GAAYJ,UAAA,GAAcG,GAAA,CAAgCH,UAAU,IAAI;IAC9E,IAAI,OAAOI,SAAA,KAAc,YAAYA,SAAA,EAAW,OAAOA,SAAA;IACvD,IAAI,OAAOA,SAAA,KAAc,UAAU,OAAOC,MAAA,CAAOD,SAAS;IAC1D,OAAO,OAAOD,GAAA,CAAIG,IAAA,KAAS,WAAWH,GAAA,CAAIG,IAAA,GAAO;EACnD,GACA,CAACN,UAAU,CACb;EAEA,MAAM,CAACO,UAAA,EAAYC,aAAa,IAAI/J,QAAA,CAAiB,EAAE;EACvD,MAAM,CAACgK,cAAA,EAAgBC,iBAAiB,IAAIjK,QAAA,CAAS,CAAC;EACtD,MAAM,CAACkK,aAAA,EAAeC,gBAAgB,IAAInK,QAAA,CAAS8E,UAAU;EAG7D,MAAM,CAACsF,aAAA,EAAeC,gBAAgB,IAAIrK,QAAA,CAAS,KAAK;EACxD,MAAMsK,gBAAA,GAAmBvK,MAAA,CAAO,KAAK;EACrC,MAAMwK,YAAA,GAAexK,MAAA,CAAe,EAAE;EACtC,MAAMyK,QAAA,GAAWzK,MAAA,CAAO,CAAC;EAEzB,MAAM0K,aAAA,GAAgB1K,MAAA,CAA+B,IAAI;EAEzD,MAAM2K,YAAA,GAAe3K,MAAA,CAA8B,IAAI;EAIvD,MAAM4K,cAAA,GAAiB5K,MAAA,CAAe,EAAE;EACxC,MAAM6K,WAAA,GAAc7K,MAAA,CAAe,EAAE;EAIrC,MAAM8K,kBAAA,GAAqB9K,MAAA,CAAe,EAAE;EAE5C,MAAM+K,eAAA,GAAkBlL,WAAA,CACtB,MAAO6C,KAAA,IAA0B;IAC/B,IAAI,CAAC2E,SAAA,IAAa,CAACtC,UAAA,EAAY;IAC/B4F,YAAA,CAAalE,OAAA,GAAU/D,KAAA;IACvB,MAAMsI,MAAA,GAASvI,mBAAA,CAAoBC,KAAK;IACxC,MAAMuG,GAAA,GAAM3C,IAAA,CAAKC,SAAA,CAAUyE,MAAM;IACjC,IAAI/B,GAAA,KAAQuB,YAAA,CAAa/D,OAAA,EAAS;IAClC+D,YAAA,CAAa/D,OAAA,GAAUwC,GAAA;IAMvB,MAAMgC,UAAA,GAAa3E,IAAA,CAAKC,SAAA,CAAUyE,MAAA,CAAOnI,OAAO;IAChD,MAAMqI,OAAA,GAAU5E,IAAA,CAAKC,SAAA,CAAUyE,MAAA,CAAOhJ,OAAA,IAAW,EAAE;IACnD,MAAMmJ,aAAA,GAAgBP,cAAA,CAAenE,OAAA,KAAY,MAAMqE,kBAAA,CAAmBrE,OAAA,CAAQ7E,MAAA,GAAS;IAC3F,IAAIuJ,aAAA,EAAe;MACjB,MAAMC,cAAA,GAAiBH,UAAA,KAAeL,cAAA,CAAenE,OAAA;MACrD,MAAM4E,WAAA,GAAcH,OAAA,KAAYL,WAAA,CAAYpE,OAAA;MAC5C,IAAI2E,cAAA,IAAkBC,WAAA,EAAa;QACjCrB,aAAA,CAAesB,QAAA,IAAa;UAC1B,IAAIC,IAAA,GAAOD,QAAA;UACX,IAAIF,cAAA,IAAkBJ,MAAA,CAAOnI,OAAA,CAAQjB,MAAA,GAAS,GAAG;YAC/C,MAAM4J,QAAA,GAAWF,QAAA,CAAStC,MAAA,CAAQW,GAAA,IAChCrK,cAAA,CACEqK,GAAA,EACAqB,MAAA,CAAOnI,OACT,CACF;YACA,IAAI2I,QAAA,CAAS5J,MAAA,GAAS,GAAG2J,IAAA,GAAOC,QAAA;UAClC;UACA,IAAIH,WAAA,IAAeL,MAAA,CAAOhJ,OAAA,EAASJ,MAAA,EAAQ;YACzC2J,IAAA,GAAOzJ,eAAA,CACLyJ,IAAA,EACAP,MAAA,CAAOhJ,OACT;UACF;UACA,OAAOuJ,IAAA;QACT,CAAC;MACH;IACF;IACAX,cAAA,CAAenE,OAAA,GAAUwE,UAAA;IACzBJ,WAAA,CAAYpE,OAAA,GAAUyE,OAAA;IAGtBR,aAAA,CAAcjE,OAAA,EAASgF,KAAA,CAAM;IAC7B,MAAMC,UAAA,GAAa,IAAIC,eAAA,CAAgB;IACvCjB,aAAA,CAAcjE,OAAA,GAAUiF,UAAA;IACxB,MAAME,GAAA,GAAM,EAAEnB,QAAA,CAAShE,OAAA;IACvB2D,gBAAA,CAAiB,IAAI;IACrB,IAAI;MACF,MAAM,CAACyB,IAAA,EAAMC,KAAK,IAAI,MAAMC,OAAA,CAAQC,GAAA,CAAI,CACtC3E,SAAA,CAAU4E,EAAA,CAAG,EAAEC,UAAA,CAAiB9H,OAAA,EAAS;QACvCG,MAAA,EAAQ2E,YAAA;QACRrG,OAAA,EAASmI,MAAA,CAAOnI,OAAA,CAAQjB,MAAA,GAASoJ,MAAA,CAAOnI,OAAA,GAAU;QAClDG,UAAA,EAAYgI,MAAA,CAAOhI,UAAA;QACnBG,KAAA,EAAO6H,MAAA,CAAO7H,KAAA;QACdnB,OAAA,EAASgJ,MAAA,CAAOhJ,OAAA;QAChBmK,MAAA,EAAQT,UAAA,CAAWS;MACrB,CAAC,GACD9E,SAAA,CACG4E,EAAA,CAAG,EACHG,QAAA,CACChI,OAAA,EACA4G,MAAA,CAAOnI,OAAA,CAAQjB,MAAA,GAASoJ,MAAA,CAAOnI,OAAA,GAAU,QACzC,QACA,QACA6I,UAAA,CAAWS,MACb,EACH;MAED,IAAIP,GAAA,KAAQnB,QAAA,CAAShE,OAAA,EAAS;MAC9BuD,aAAA,CAAc6B,IAAI;MAClB3B,iBAAA,CAAkB4B,KAAK;MACvBhB,kBAAA,CAAmBrE,OAAA,GAAUoF,IAAA;MAC7B5F,aAAA,CAAc,IAAI;IACpB,SAASoG,GAAA,EAAK;MACZ,IAAIT,GAAA,KAAQnB,QAAA,CAAShE,OAAA,EAAS;MAE9B,IAAIiF,UAAA,CAAWS,MAAA,CAAOG,OAAA,EAAS;MAC/BrG,aAAA,CAAcoG,GAAA,YAAetF,KAAA,GAAQsF,GAAA,GAAM,IAAItF,KAAA,CAAM8C,MAAA,CAAOwC,GAAG,CAAC,CAAC;MAGjE,IAAI,CAAC9B,gBAAA,CAAiB9D,OAAA,EAAS;QAC7BuD,aAAA,CAAc,EAAE;QAChBE,iBAAA,CAAkB,CAAC;MACrB;IACF,UAAE;MACA,IAAI0B,GAAA,KAAQnB,QAAA,CAAShE,OAAA,IAAW,CAACiF,UAAA,CAAWS,MAAA,CAAOG,OAAA,EAAS;QAC1DlC,gBAAA,CAAiB,KAAK;QACtBG,gBAAA,CAAiB9D,OAAA,GAAU;QAC3B6D,gBAAA,CAAiB,IAAI;MACvB;IACF;EACF,GACA,CAACjD,SAAA,EAAWtC,UAAA,EAAYX,OAAA,EAAS8E,YAAY,CAC/C;EAQA,MAAMqD,gBAAA,GAAmBvM,MAAA,CAA6C,IAAI;EAC1ER,sBAAA,CACEwH,gBAAA,EACA5C,OAAA,EACA,MAAM;IACJ,IAAImI,gBAAA,CAAiB9F,OAAA,EAAS+F,YAAA,CAAaD,gBAAA,CAAiB9F,OAAO;IACnE8F,gBAAA,CAAiB9F,OAAA,GAAUgG,UAAA,CAAW,MAAM;MAC1CjC,YAAA,CAAa/D,OAAA,GAAU;MACvB,IAAIkE,YAAA,CAAalE,OAAA,EAASsE,eAAA,CAAgBJ,YAAA,CAAalE,OAAO;IAChE,GAAG,GAAG;EACR,GACA1B,UAAA,IAAc,CAACc,kBACjB;EACA/F,SAAA,CACE,MAAM,MAAM;IACV,IAAIyM,gBAAA,CAAiB9F,OAAA,EAAS+F,YAAA,CAAaD,gBAAA,CAAiB9F,OAAO;IACnEiE,aAAA,CAAcjE,OAAA,EAASgF,KAAA,CAAM;EAC/B,GACA,EACF;EAMA,MAAMiB,gBAAA,GAAmB1M,MAAA,CAAOkF,YAAY;EAC5CpF,SAAA,CAAU,MAAM;IACd,IAAI4M,gBAAA,CAAiBjG,OAAA,KAAYvB,YAAA,EAAc;IAC/CwH,gBAAA,CAAiBjG,OAAA,GAAUvB,YAAA;IAC3B,IAAI,CAACH,UAAA,IAAcc,kBAAA,EAAoB;IACvC2E,YAAA,CAAa/D,OAAA,GAAU;IACvB,IAAIkE,YAAA,CAAalE,OAAA,EAASsE,eAAA,CAAgBJ,YAAA,CAAalE,OAAO;EAChE,GAAG,CAACvB,YAAA,EAAcH,UAAA,EAAYc,kBAAA,EAAoBkF,eAAe,CAAC;EAKlE,MAAM4B,cAAA,GAAiB9M,WAAA,CACrB,MAAO+M,KAAA,IAAyB;IAC9B,IAAI,CAACvF,SAAA,EAAW,OAAO;MAAEtF,IAAA,EAAM;IAAG;IAClC,MAAMiJ,MAAA,GAASvI,mBAAA,CAAoB;MACjCE,UAAA,EAAY;QAAEM,SAAA,EAAW2J,KAAA,CAAM3J,SAAA;QAAWC,QAAA,EAAU0J,KAAA,CAAM1J;MAAS;MACnEN,OAAA,EAASgK,KAAA,CAAMhK,OAAA;MACfC,OAAA,EAAS+J,KAAA,CAAM/J,OAAA;MACfC,aAAA,EAAe8J,KAAA,CAAM9J,aAAA;MACrBC,YAAA,EAAc6J,KAAA,CAAM7J;IACtB,CAAmB;IACnB,MAAM,CAAChB,KAAA,EAAM+J,KAAK,IAAI,MAAMC,OAAA,CAAQC,GAAA,CAAI,CACtC3E,SAAA,CAAU4E,EAAA,CAAG,EAAEC,UAAA,CAAiB9H,OAAA,EAAS;MACvCG,MAAA,EAAQ2E,YAAA;MACRrG,OAAA,EAASmI,MAAA,CAAOnI,OAAA,CAAQjB,MAAA,GAASoJ,MAAA,CAAOnI,OAAA,GAAU;MAClDG,UAAA,EAAYgI,MAAA,CAAOhI,UAAA;MACnBG,KAAA,EAAO6H,MAAA,CAAO7H,KAAA;MACdnB,OAAA,EAASgJ,MAAA,CAAOhJ;IAClB,CAAC,GACD4K,KAAA,CAAM3J,SAAA,KAAc,IAChBoE,SAAA,CAAU4E,EAAA,CAAG,EAAEG,QAAA,CAAShI,OAAA,EAAS4G,MAAA,CAAOnI,OAAA,CAAQjB,MAAA,GAASoJ,MAAA,CAAOnI,OAAA,GAAU,MAAS,IACnFkJ,OAAA,CAAQc,OAAA,CAAQ,MAAS,EAC9B;IACD,OAAO;MAAE9K,IAAA,EAAA+K,KAAA;MAAMC,UAAA,EAAYjB,KAAA,IAAS;IAAU;EAChD,GACA,CAACzE,SAAA,EAAWjD,OAAA,EAAS8E,YAAY,CACnC;EAEA,MAAM8D,gBAAA,GAAmB3H,YAAA,KAAiBQ,kBAAA,GAAqB8G,cAAA,GAAiB;EAEhF,MAAMM,iBAAA,GAAoBpN,WAAA,CACvB6C,KAAA,IAA0B;IACzBuC,iBAAA,GAAoBvC,KAAK;IACzB,IAAIqC,UAAA,IAAc,CAACc,kBAAA,EAAoBkF,eAAA,CAAgBrI,KAAK;EAC9D,GACA,CAACuC,iBAAA,EAAmBF,UAAA,EAAYc,kBAAA,EAAoBkF,eAAe,CACrE;EAEAjL,SAAA,CAAU,MAAM;IACd,IAAIiF,UAAA,IAAc,CAACc,kBAAA,IAAsBwB,SAAA,IAAa,CAACoB,cAAA,EAAgB;MACrE+B,YAAA,CAAa/D,OAAA,GAAU;MACvBsE,eAAA,CACEJ,YAAA,CAAalE,OAAA,IACV;QACCoF,IAAA,EAAM,EAAC;QACPxH,OAAA;QACA1B,UAAA,EAAY;UAAEM,SAAA,EAAW;UAAGC,QAAA,EAAU;QAAG;QACzCN,OAAA,EAAS,EAAC;QACVC,OAAA,EAAS,EAAC;QACVC,aAAA,EAAe,EAAC;QAChB6F,gBAAA,EAAkB,CAAC;QACnBuE,WAAA,EAAa7I,OAAA,CAAQT,GAAA,CAAKuJ,CAAA,IAAMA,CAAA,CAAEzJ,EAAA,IAAM,EAAE;QAC1C0J,YAAA,EAAc,CAAC;MACjB,CACJ;IACF;EACF,GAAG,CAACrI,UAAA,EAAYc,kBAAA,EAAoB,CAAC,CAACwB,SAAA,EAAWoB,cAAA,EAAgBsC,eAAe,CAAC;EAGjF,MAAMsC,gBAAA,GAAmB9M,eAAA,CAAgB;IAAEuE;EAAO,CAAC;EAQnD,MAAMwI,YAAA,GAAevN,OAAA,CACnB,OAAO;IACLwN,UAAA,EAAYxH,CAAA,CAAE,kDAAkD;MAAE3B;IAAQ,CAAC;IAC3EoJ,OAAA,EAASzH,CAAA,CAAE,6BAA6B;MAAE3B;IAAQ,CAAC;IACnDqJ,WAAA,EAAa1H,CAAA,CAAE,8BAA8B;MAAE3B;IAAQ,CAAC;EAC1D,IACA,CAACA,OAAA,EAAS2B,CAAC,CACb;EACA,MAAM;IACJhE,IAAA,EAAM2L,UAAA;IACNC,cAAA,EAAgBC,aAAA;IAChBjJ,KAAA,EAAOkJ;EACT,IAAI9M,aAAA,CAAoBgE,UAAA,GAAa,SAAYiC,gBAAA,EAAkB5C,OAAA,EAAS;IAC1EG,MAAA,EAAQ+E,YAAA;IACRzG,OAAA,EAASqD,aAAA;IACT/C,KAAA,EAAO;IACP2K,OAAA,EAAS,CAAC/I,UAAA,IAAc,CAAC0D,cAAA;IACzBsF,QAAA,EAAUT;EACZ,CAAC;EAOD,MAAMU,kBAAA,GAAqBhO,MAAA,CAAsB,IAAI;EACrD,IAAI,CAAC+E,UAAA,IAAc,CAAC6I,aAAA,IAAiB,CAACnF,cAAA,EAAgBuF,kBAAA,CAAmBvH,OAAA,GAAUiH,UAAA;EACnF,MAAMO,kBAAA,GAAqBlO,OAAA,CAAQ,MAAM;IACvC,IAAIgF,UAAA,EAAY,OAAO2I,UAAA;IACvB,IAAI,CAACE,aAAA,IAAiB,CAACI,kBAAA,CAAmBvH,OAAA,EAAS,OAAOiH,UAAA;IAC1D,MAAMQ,IAAA,GAAOF,kBAAA,CAAmBvH,OAAA;IAChC,IAAI,CAACP,aAAA,EAAe,OAAOgI,IAAA;IAC3B,MAAM1C,QAAA,GAAW0C,IAAA,CAAKlF,MAAA,CAAQW,GAAA,IAC5BrK,cAAA,CAAeqK,GAAA,EAAwDzD,aAAa,CACtF;IAGA,OAAOsF,QAAA,CAAS5J,MAAA,GAAS,IAAI4J,QAAA,GAAW0C,IAAA;EAC1C,GAAG,CAACnJ,UAAA,EAAY2I,UAAA,EAAYE,aAAA,EAAe1H,aAAa,CAAC;EAEzD,MAAMiI,kBAAA,GACJpJ,UAAA,IAAcoF,aAAA,IAAiBJ,UAAA,CAAWnI,MAAA,KAAW,KAAKkJ,kBAAA,CAAmBrE,OAAA,CAAQ7E,MAAA,GAAS,IAC1FkJ,kBAAA,CAAmBrE,OAAA,GACnBsD,UAAA;EACN,MAAMhI,IAAA,GAAOgD,UAAA,GAAaoJ,kBAAA,GAAqBF,kBAAA;EAO/C,MAAMG,qBAAA,GAAwBrJ,UAAA,GAC1Bc,kBAAA,GACE,QACAsE,aAAA,IAAiB,CAACE,aAAA,GACpBuD,aAAA,IAAiBI,kBAAA,CAAmBvH,OAAA,KAAY;EACpD,MAAM4H,UAAA,GAAatJ,UAAA,GACf,CAACc,kBAAA,IAAsBsE,aAAA,IAAiBE,aAAA,GACxCuD,aAAA,IAAiBI,kBAAA,CAAmBvH,OAAA,KAAY;EAEpD,MAAM6H,kBAAA,GAAsBtF,MAAA,IAAgB;IAC1C,IAAIA,MAAA,EAAQ;MACV7C,gBAAA,CAAiB6C,MAAA,CAAOnG,OAAO;IACjC,OAAO;MACLsD,gBAAA,CAAiB3B,cAAc;IACjC;EACF;EAEA,MAAM+J,gBAAA,GAAmB,MAAAA,CAAOC,UAAA,EAAoBC,QAAA,KAAsB;IACxE,IAAI,CAACpB,gBAAA,IAAoB,CAACnH,aAAA,EAAe;IACzC,MAAMwI,WAAA,GAAcvF,KAAA,CAAMwF,OAAA,CAAQzI,aAAa,IAC3CA,aAAA,GACA0I,MAAA,CAAOC,OAAA,CAAQ3I,aAAa,EAAEtC,GAAA,CAC5B,CAAC,CAACqF,GAAA,EAAK1H,KAAK,MAAM,CAAC0H,GAAA,EAAK,KAAK1H,KAAK,CACpC;IACJ,MAAM8L,gBAAA,CAAiByB,UAAA,CAAWN,UAAA,EAAYE,WAAA,EAAaD,QAAQ;EACrE;EAEA,MAAMM,kBAAA,GAAqB,MAAOjF,IAAA,IAAiB;IACjD,IAAI,CAACuD,gBAAA,EAAkB;IACvB,MAAMA,gBAAA,CAAiB2B,YAAA,CAAalF,IAAI;EAC1C;EAIA,MAAMmF,aAAA,GAAgBlK,UAAA,GAAaiB,UAAA,GAAa6H,SAAA;EAEhD,IAAIoB,aAAA,IAAiBtK,KAAA,EAAO;IAC1B,OAAO,eAAA1D,GAAA,CAAAD,QAAA;MAAGkO,QAAA,EAAAvK,KAAA,CAAMsK,aAAa;IAAA,CAAE;EACjC;EAEA,MAAME,OAAA,GAAUpN,IAAA,IAAQ,EAAC;EAKzB,MAAMqN,aAAA,GAAgBH,aAAA,GAClB;IAAEtK,KAAA,EAAOsK;EAAc,IACvBb,qBAAA,IAAyB3F,cAAA,GACvB;IAAE/D,OAAA,EAASA,OAAA,IAAW;EAAK,IAC3ByK,OAAA,CAAQvN,MAAA,KAAW,KAAK,CAACiE,kBAAA,IAAsB,CAACwI,UAAA,GAC9C;IAAEgB,KAAA,EAAO;EAAK,IACd;EACR,IAAID,aAAA,EAAe;IACjB,OACE,eAAAlO,IAAA,CAACd,MAAA;MACE,GAAG0F,SAAA,CAAUwJ,GAAA;MAIdC,QAAA,EAAU;MACVC,UAAA,EAAY;MACZC,SAAA,EAAU;MACVC,SAAA,EAAW;MAEXR,QAAA,kBAAAjO,GAAA,CAACR,wBAAA;QAAyB2F,MAAA,EAAQY;MAAA,CAAkB,GACpD,eAAA/F,GAAA,CAACvB,aAAA;QACCgG,MAAA,EAAQA,MAAA,KAAW,UAAUA,MAAA,KAAW,UAAU,SAAS;QAC3DiK,UAAA,EAAY5J,CAAA,CAAE,6BAA6B;UAAE3B;QAAQ,CAAC;QACtDwL,UAAA,EAAY7J,CAAA,CAAE,gCAAgC;UAAE3B;QAAQ,CAAC;QACxD,GAAGgL;MAAA,CACN;IAAA,CACF;EAEJ;EAEA,OACE,eAAAlO,IAAA,CAACd,MAAA;IACE,GAAG0F,SAAA,CAAUwJ,GAAA;IAIdC,QAAA,EAAU;IACVC,UAAA,EAAY;IACZC,SAAA,EAAU;IACVC,SAAA,EAAW;IAEXR,QAAA,kBAAAjO,GAAA,CAACR,wBAAA;MAAyB2F,MAAA,EAAQY;IAAA,CAAkB,GACnDpC,YAAA,IAAgByI,gBAAA,IACf,eAAAnM,IAAA,CAACf,MAAA;MAAQ,GAAG2F,SAAA,CAAUwJ,GAAA;MAAKO,OAAA,EAAQ;MACjCX,QAAA,kBAAAjO,GAAA,CAACX,mBAAA;QACCuC,OAAA,EAASwK,gBAAA,CAAiBxK,OAAA;QAC1BiN,cAAA,EAAgB;QAChBC,cAAA,EAAgBzB,kBAAA;QAChB0B,cAAA,EAAgBjB;MAAA,CAClB,GACA,eAAA9N,GAAA,CAACZ,aAAA;QACC4P,cAAA,EACE9G,KAAA,CAAMwF,OAAA,CAAQzI,aAAa,IACvBA,aAAA,GACAA,aAAA,GACE0I,MAAA,CAAOC,OAAA,CAAQ3I,aAAa,EAAEtC,GAAA,CAC5B,CAAC,CAACqF,GAAA,EAAK1H,KAAK,MAAM,CAAC0H,GAAA,EAAK,KAAK1H,KAAK,CACpC,IACA,EAAC;QAET2O,YAAA,EAAc3B,gBAAA;QACd4B,eAAA,EAAiBtL;MAAA,CACnB;IAAA,CACF,GAEF,eAAA5D,GAAA,CAACxB,SAAA;MACCoM,IAAA,EAAMsD,OAAA;MACN9K,OAAA;MAQC,IAAII,UAAA,GAAa;QAAE2L,UAAA,EAAazG,GAAA,IAAuBlF,UAAA,CAAWkF,GAAG;MAAE,IAAI,CAAC;MAC7ED,QAAA;MACC,IAAI3E,UAAA,IAAc;QACjBsL,eAAA,EAAiB;QACjBC,gBAAA,EAAkB;QAClBC,aAAA,EAAe;QACfvL,aAAA,EAAeiI,iBAAA;QACf,IAAIpH,kBAAA,GAAqB,CAAC,IAAI;UAAE2K,QAAA,EAAUvG;QAAe;MAC3D;MACA9E,cAAA;MACC,IAAI6H,gBAAA,GAAmB;QAAE5H,QAAA,EAAU4H;MAAiB,IAAI,CAAC;MACzD,IAAI1H,gBAAA,GAAmB;QAAEA;MAAiB,IAAI,CAAC;MAC/C,IAAIoD,oBAAA,GAAuB;QAAE/C,YAAA,EAAc+C;MAAqB,IAAI,CAAC;MACtE2F,UAAA;MACC,GAAGzI,cAAA;MACJ6K,QAAA,EAAU7K,cAAA,CAAe6K,QAAA,IAAY,CAACjL,MAAA,CAAOkL,KAAA;MAC7CC,UAAA,EAAY/K,cAAA,CAAe+K,UAAA,IAAcnL,MAAA,CAAOoL,MAAA;MAChDC,aAAA,EAAejL,cAAA,CAAeiL,aAAA,IAAiBrL,MAAA,CAAOsL,MAAA;MACrD,IAAIpL,MAAA,GAAS;QAAEA;MAAO,IAAI,CAAC;IAAA,CAC9B;EAAA,CACF;AAEJ","ignoreList":[]}
|
|
@@ -51,7 +51,10 @@ var import_table2 = require("@multiplatform.one/table");
|
|
|
51
51
|
var import_FrappeProvider = require("./FrappeProvider.native.js");
|
|
52
52
|
var import_FrappeReconnectIndicator = require("./FrappeReconnectIndicator.native.js");
|
|
53
53
|
var import_filterFields = require("./filterFields.native.js");
|
|
54
|
+
var import_fieldPermissions = require("./formEngine/fieldPermissions.native.js");
|
|
54
55
|
var import_useDocRights = require("./formEngine/useDocRights.native.js");
|
|
56
|
+
var import_listColumns = require("./list/listColumns.native.js");
|
|
57
|
+
var import_listFields = require("./list/listFields.native.js");
|
|
55
58
|
var import_useFrappeRows = require("./useFrappeRows.native.js");
|
|
56
59
|
function _instanceof(left, right) {
|
|
57
60
|
"@swc/helpers - instanceof";
|
|
@@ -243,7 +246,7 @@ function FrappeTable(param) {
|
|
|
243
246
|
auth,
|
|
244
247
|
syncOptions,
|
|
245
248
|
doctype,
|
|
246
|
-
columns,
|
|
249
|
+
columns: columnsProp,
|
|
247
250
|
fields,
|
|
248
251
|
filters: initialFilters,
|
|
249
252
|
onRowClick,
|
|
@@ -260,8 +263,10 @@ function FrappeTable(param) {
|
|
|
260
263
|
filterableFields: filterableFieldsProp,
|
|
261
264
|
rights: rightsProp,
|
|
262
265
|
layout,
|
|
266
|
+
initialState,
|
|
263
267
|
...dataTableProps
|
|
264
268
|
} = param;
|
|
269
|
+
var _ref;
|
|
265
270
|
var infiniteServerMode = serverSide && paginationMode === "infinite";
|
|
266
271
|
var {
|
|
267
272
|
knobProps
|
|
@@ -302,16 +307,8 @@ function FrappeTable(param) {
|
|
|
302
307
|
if (!serverSide || !finalBaseURL) return null;
|
|
303
308
|
return new import_frappe.FrappeApp(finalBaseURL, finalAuth !== null && finalAuth !== void 0 ? finalAuth : {});
|
|
304
309
|
}, [serverSide, finalBaseURL, finalAuth]);
|
|
305
|
-
var
|
|
306
|
-
|
|
307
|
-
}).filter(function (key) {
|
|
308
|
-
return typeof key === "string";
|
|
309
|
-
}));
|
|
310
|
-
var serverFields = (0, import_react.useMemo)(function () {
|
|
311
|
-
return fields ? fields : Array.from(/* @__PURE__ */new Set(["name", ...JSON.parse(columnFieldsKey !== null && columnFieldsKey !== void 0 ? columnFieldsKey : "[]")]));
|
|
312
|
-
}, [fields, columnFieldsKey]);
|
|
313
|
-
var clientFields = fields !== null && fields !== void 0 ? fields : connectionConfig.fixtures ? void 0 : serverFields;
|
|
314
|
-
var skipMeta = !!filterableFieldsProp && (!!rightsProp || !!connectionConfig.fixtures);
|
|
310
|
+
var deriveColumns = !columnsProp;
|
|
311
|
+
var skipMeta = !deriveColumns && !!filterableFieldsProp && (!!rightsProp || !!connectionConfig.fixtures);
|
|
315
312
|
var metaConnection = (0, import_react.useMemo)(function () {
|
|
316
313
|
if (skipMeta) return void 0;
|
|
317
314
|
if (!connectionConfig.fixtures) return connectionConfig;
|
|
@@ -321,12 +318,48 @@ function FrappeTable(param) {
|
|
|
321
318
|
};
|
|
322
319
|
}, [skipMeta, connectionConfig]);
|
|
323
320
|
var {
|
|
324
|
-
meta
|
|
321
|
+
meta,
|
|
322
|
+
isLoading: isMetaLoading
|
|
325
323
|
} = (0, import_frappe.useDocTypeMeta)(metaConnection, doctype);
|
|
324
|
+
var readSession = !rightsProp || deriveColumns;
|
|
326
325
|
var {
|
|
327
|
-
rights: resolvedRights
|
|
328
|
-
|
|
326
|
+
rights: resolvedRights,
|
|
327
|
+
pending: rolesPending,
|
|
328
|
+
user: sessionUser,
|
|
329
|
+
roles: sessionRoles
|
|
330
|
+
} = (0, import_useDocRights.useDocRights)(readSession ? connectionConfig : void 0, readSession ? meta : void 0);
|
|
329
331
|
var rights = rightsProp !== null && rightsProp !== void 0 ? rightsProp : resolvedRights;
|
|
332
|
+
var permMatrix = (0, import_react.useMemo)(function () {
|
|
333
|
+
return deriveColumns ? (0, import_fieldPermissions.buildPermLevelMatrix)(meta === null || meta === void 0 ? void 0 : meta.permissions, sessionRoles) : void 0;
|
|
334
|
+
}, [deriveColumns, meta === null || meta === void 0 ? void 0 : meta.permissions, sessionRoles]);
|
|
335
|
+
var derivedColumns = (0, import_react.useMemo)(function () {
|
|
336
|
+
return deriveColumns ? (0, import_listColumns.buildListColumns)({
|
|
337
|
+
meta,
|
|
338
|
+
t: function t1(_key, fallback) {
|
|
339
|
+
return t(fallback);
|
|
340
|
+
},
|
|
341
|
+
sessionUser,
|
|
342
|
+
permMatrix
|
|
343
|
+
}) : void 0;
|
|
344
|
+
}, [deriveColumns, meta, t, sessionUser, permMatrix]);
|
|
345
|
+
var columns = (_ref = columnsProp !== null && columnsProp !== void 0 ? columnsProp : derivedColumns) !== null && _ref !== void 0 ? _ref : [];
|
|
346
|
+
var columnsPending = deriveColumns && (isMetaLoading || rolesPending);
|
|
347
|
+
var resolvedInitialState = deriveColumns ? {
|
|
348
|
+
...initialState,
|
|
349
|
+
columnVisibility: {
|
|
350
|
+
modified: false,
|
|
351
|
+
...(initialState === null || initialState === void 0 ? void 0 : initialState.columnVisibility)
|
|
352
|
+
}
|
|
353
|
+
} : initialState;
|
|
354
|
+
var columnFieldsKey = fields ? void 0 : JSON.stringify(deriveColumns ? (0, import_listFields.listFieldsToFetch)(meta, permMatrix) : columns.map(function (column) {
|
|
355
|
+
return column.accessorKey;
|
|
356
|
+
}).filter(function (key) {
|
|
357
|
+
return typeof key === "string";
|
|
358
|
+
}));
|
|
359
|
+
var serverFields = (0, import_react.useMemo)(function () {
|
|
360
|
+
return fields ? fields : Array.from(/* @__PURE__ */new Set(["name", ...JSON.parse(columnFieldsKey !== null && columnFieldsKey !== void 0 ? columnFieldsKey : "[]")]));
|
|
361
|
+
}, [fields, columnFieldsKey]);
|
|
362
|
+
var clientFields = fields !== null && fields !== void 0 ? fields : connectionConfig.fixtures ? void 0 : serverFields;
|
|
330
363
|
var metaFilterFields = (0, import_react.useMemo)(function () {
|
|
331
364
|
return (meta === null || meta === void 0 ? void 0 : meta.fields) ? (0, import_filterFields.docFieldsToFilterFields)(meta.fields) : void 0;
|
|
332
365
|
}, [meta]);
|
|
@@ -474,7 +507,7 @@ function FrappeTable(param) {
|
|
|
474
507
|
if (serverSide && !infiniteServerMode) fetchServerData(state);
|
|
475
508
|
}, [onStateChangeProp, serverSide, infiniteServerMode, fetchServerData]);
|
|
476
509
|
(0, import_react.useEffect)(function () {
|
|
477
|
-
if (serverSide && !infiniteServerMode && frappeApp) {
|
|
510
|
+
if (serverSide && !infiniteServerMode && frappeApp && !columnsPending) {
|
|
478
511
|
var _lastStateRef_current;
|
|
479
512
|
lastFetchKey.current = "";
|
|
480
513
|
fetchServerData((_lastStateRef_current = lastStateRef.current) !== null && _lastStateRef_current !== void 0 ? _lastStateRef_current : {
|
|
@@ -495,7 +528,7 @@ function FrappeTable(param) {
|
|
|
495
528
|
columnSizing: {}
|
|
496
529
|
});
|
|
497
530
|
}
|
|
498
|
-
}, [serverSide, infiniteServerMode, !!frappeApp, fetchServerData]);
|
|
531
|
+
}, [serverSide, infiniteServerMode, !!frappeApp, columnsPending, fetchServerData]);
|
|
499
532
|
var savedFiltersHook = (0, import_table2.useSavedFilters)({
|
|
500
533
|
userId
|
|
501
534
|
});
|
|
@@ -520,11 +553,11 @@ function FrappeTable(param) {
|
|
|
520
553
|
fields: clientFields,
|
|
521
554
|
filters: activeFilters,
|
|
522
555
|
limit: null,
|
|
523
|
-
enabled: !serverSide,
|
|
556
|
+
enabled: !serverSide && !columnsPending,
|
|
524
557
|
messages: rowsMessages
|
|
525
558
|
});
|
|
526
559
|
var lastGoodClientRows = (0, import_react.useRef)(null);
|
|
527
|
-
if (!serverSide && !isRowsLoading) lastGoodClientRows.current = clientRows;
|
|
560
|
+
if (!serverSide && !isRowsLoading && !columnsPending) lastGoodClientRows.current = clientRows;
|
|
528
561
|
var clientRowsResolved = (0, import_react.useMemo)(function () {
|
|
529
562
|
if (serverSide) return clientRows;
|
|
530
563
|
if (!isRowsLoading || !lastGoodClientRows.current) return clientRows;
|
|
@@ -567,7 +600,7 @@ function FrappeTable(param) {
|
|
|
567
600
|
var rowData = rows !== null && rows !== void 0 ? rows : [];
|
|
568
601
|
var boundaryState = resolvedError ? {
|
|
569
602
|
error: resolvedError
|
|
570
|
-
} : isRowsLoadingResolved ? {
|
|
603
|
+
} : isRowsLoadingResolved || columnsPending ? {
|
|
571
604
|
loading: loading !== null && loading !== void 0 ? loading : true
|
|
572
605
|
} : rowData.length === 0 && !infiniteServerMode && !isFetching ? {
|
|
573
606
|
empty: true
|
|
@@ -655,6 +688,9 @@ function FrappeTable(param) {
|
|
|
655
688
|
...(filterableFields ? {
|
|
656
689
|
filterableFields
|
|
657
690
|
} : {}),
|
|
691
|
+
...(resolvedInitialState ? {
|
|
692
|
+
initialState: resolvedInitialState
|
|
693
|
+
} : {}),
|
|
658
694
|
isFetching,
|
|
659
695
|
...dataTableProps,
|
|
660
696
|
readOnly: dataTableProps.readOnly || !rights.write,
|