@cundi/refine-xaf 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +194 -1
- package/dist/index.d.ts +194 -1
- package/dist/index.js +266 -30
- package/dist/index.mjs +266 -31
- package/package.json +4 -2
package/dist/index.js
CHANGED
|
@@ -60,6 +60,7 @@ __export(index_exports, {
|
|
|
60
60
|
httpClient: () => httpClient,
|
|
61
61
|
keycloakService: () => keycloakService,
|
|
62
62
|
parseJwt: () => parseJwt,
|
|
63
|
+
refineXafTranslations: () => refineXafTranslations,
|
|
63
64
|
useColorMode: () => useColorMode,
|
|
64
65
|
useModelTypes: () => useModelTypes,
|
|
65
66
|
validatePasswordStrength: () => validatePasswordStrength
|
|
@@ -785,6 +786,202 @@ var validatePasswordStrength = (password) => {
|
|
|
785
786
|
return { isValid: true, message: "Password is strong" };
|
|
786
787
|
};
|
|
787
788
|
|
|
789
|
+
// src/i18n/index.ts
|
|
790
|
+
var en = {
|
|
791
|
+
pages: {
|
|
792
|
+
login: {
|
|
793
|
+
title: "Sign in to your account",
|
|
794
|
+
buttons: {
|
|
795
|
+
submit: "Sign in"
|
|
796
|
+
}
|
|
797
|
+
}
|
|
798
|
+
},
|
|
799
|
+
buttons: {
|
|
800
|
+
create: "Create",
|
|
801
|
+
edit: "Edit",
|
|
802
|
+
delete: "Delete",
|
|
803
|
+
save: "Save",
|
|
804
|
+
cancel: "Cancel",
|
|
805
|
+
refresh: "Refresh",
|
|
806
|
+
list: "List",
|
|
807
|
+
logout: "Logout"
|
|
808
|
+
},
|
|
809
|
+
actions: {
|
|
810
|
+
create: "Create",
|
|
811
|
+
edit: "Edit",
|
|
812
|
+
show: "Show",
|
|
813
|
+
list: "List",
|
|
814
|
+
delete: "Delete"
|
|
815
|
+
},
|
|
816
|
+
components: {
|
|
817
|
+
header: {
|
|
818
|
+
theme: {
|
|
819
|
+
light: "Light Mode",
|
|
820
|
+
dark: "Dark Mode"
|
|
821
|
+
},
|
|
822
|
+
language: {
|
|
823
|
+
en: "English",
|
|
824
|
+
"zh-TW": "Traditional Chinese"
|
|
825
|
+
},
|
|
826
|
+
menu: {
|
|
827
|
+
changePhoto: "Change Photo",
|
|
828
|
+
manageAccount: "Manage Account in Keycloak",
|
|
829
|
+
changePassword: "Change Password",
|
|
830
|
+
logout: "Logout"
|
|
831
|
+
}
|
|
832
|
+
},
|
|
833
|
+
base64Upload: {
|
|
834
|
+
upload: "Upload"
|
|
835
|
+
},
|
|
836
|
+
relatedList: {
|
|
837
|
+
addDetail: "Add Detail",
|
|
838
|
+
actions: "Actions",
|
|
839
|
+
manageDetail: "Manage Detail",
|
|
840
|
+
deleteConfirm: "Are you sure you want to delete this detail?"
|
|
841
|
+
},
|
|
842
|
+
smartList: {
|
|
843
|
+
search: "Search...",
|
|
844
|
+
refresh: "Refresh",
|
|
845
|
+
columns: "Columns",
|
|
846
|
+
selectColumns: "Select Columns",
|
|
847
|
+
reset: "Reset"
|
|
848
|
+
},
|
|
849
|
+
tiptapEditor: {
|
|
850
|
+
placeholder: "Write something...",
|
|
851
|
+
textColor: "Text Color",
|
|
852
|
+
highlight: "Highlight",
|
|
853
|
+
insertTable: "Insert Table",
|
|
854
|
+
deleteTable: "Delete Table",
|
|
855
|
+
emoji: "Emoji",
|
|
856
|
+
addRowBefore: "Add Row Before",
|
|
857
|
+
addRowAfter: "Add Row After",
|
|
858
|
+
deleteRow: "Delete Row",
|
|
859
|
+
addColumnBefore: "Add Column Before",
|
|
860
|
+
addColumnAfter: "Add Column After",
|
|
861
|
+
deleteColumn: "Delete Column",
|
|
862
|
+
math: "Math (LaTeX)",
|
|
863
|
+
youtube: "YouTube",
|
|
864
|
+
enterYoutubeUrl: "Enter YouTube URL"
|
|
865
|
+
}
|
|
866
|
+
},
|
|
867
|
+
common: {
|
|
868
|
+
actions: {
|
|
869
|
+
create: "Create",
|
|
870
|
+
edit: "Edit",
|
|
871
|
+
delete: "Delete",
|
|
872
|
+
save: "Save",
|
|
873
|
+
cancel: "Cancel"
|
|
874
|
+
}
|
|
875
|
+
},
|
|
876
|
+
sider: {
|
|
877
|
+
dashboard: "Dashboard",
|
|
878
|
+
dataTypeExamples: "Data Type Examples",
|
|
879
|
+
tiptapExamples: "Tiptap Examples",
|
|
880
|
+
users: "Users",
|
|
881
|
+
roles: "Roles",
|
|
882
|
+
settings: "Settings"
|
|
883
|
+
}
|
|
884
|
+
};
|
|
885
|
+
var zhTW = {
|
|
886
|
+
pages: {
|
|
887
|
+
login: {
|
|
888
|
+
title: "\u767B\u5165\u60A8\u7684\u5E33\u6236",
|
|
889
|
+
buttons: {
|
|
890
|
+
submit: "\u767B\u5165"
|
|
891
|
+
}
|
|
892
|
+
}
|
|
893
|
+
},
|
|
894
|
+
buttons: {
|
|
895
|
+
create: "\u65B0\u589E",
|
|
896
|
+
edit: "\u7DE8\u8F2F",
|
|
897
|
+
delete: "\u522A\u9664",
|
|
898
|
+
save: "\u5132\u5B58",
|
|
899
|
+
cancel: "\u53D6\u6D88",
|
|
900
|
+
refresh: "\u91CD\u65B0\u6574\u7406",
|
|
901
|
+
list: "\u5217\u8868",
|
|
902
|
+
logout: "\u767B\u51FA"
|
|
903
|
+
},
|
|
904
|
+
actions: {
|
|
905
|
+
create: "\u65B0\u589E",
|
|
906
|
+
edit: "\u7DE8\u8F2F",
|
|
907
|
+
show: "\u986F\u793A",
|
|
908
|
+
list: "\u5217\u8868",
|
|
909
|
+
delete: "\u522A\u9664"
|
|
910
|
+
},
|
|
911
|
+
components: {
|
|
912
|
+
header: {
|
|
913
|
+
theme: {
|
|
914
|
+
light: "\u5207\u63DB\u70BA\u4EAE\u8272\u6A21\u5F0F",
|
|
915
|
+
dark: "\u5207\u63DB\u70BA\u6697\u8272\u6A21\u5F0F"
|
|
916
|
+
},
|
|
917
|
+
language: {
|
|
918
|
+
en: "English",
|
|
919
|
+
"zh-TW": "\u7E41\u9AD4\u4E2D\u6587"
|
|
920
|
+
},
|
|
921
|
+
menu: {
|
|
922
|
+
changePhoto: "\u66F4\u63DB\u982D\u50CF",
|
|
923
|
+
manageAccount: "\u5728 Keycloak \u7BA1\u7406\u5E33\u865F",
|
|
924
|
+
changePassword: "\u8B8A\u66F4\u5BC6\u78BC",
|
|
925
|
+
logout: "\u767B\u51FA"
|
|
926
|
+
}
|
|
927
|
+
},
|
|
928
|
+
base64Upload: {
|
|
929
|
+
upload: "\u4E0A\u50B3"
|
|
930
|
+
},
|
|
931
|
+
relatedList: {
|
|
932
|
+
addDetail: "\u65B0\u589E\u660E\u7D30",
|
|
933
|
+
actions: "\u64CD\u4F5C",
|
|
934
|
+
manageDetail: "\u7BA1\u7406\u660E\u7D30",
|
|
935
|
+
deleteConfirm: "\u60A8\u78BA\u5B9A\u8981\u522A\u9664\u6B64\u9805\u76EE\u55CE\uFF1F"
|
|
936
|
+
},
|
|
937
|
+
smartList: {
|
|
938
|
+
search: "\u641C\u5C0B...",
|
|
939
|
+
refresh: "\u91CD\u65B0\u6574\u7406",
|
|
940
|
+
columns: "\u6B04\u4F4D",
|
|
941
|
+
selectColumns: "\u9078\u64C7\u6B04\u4F4D",
|
|
942
|
+
reset: "\u91CD\u7F6E"
|
|
943
|
+
},
|
|
944
|
+
tiptapEditor: {
|
|
945
|
+
placeholder: "\u8F38\u5165\u5167\u5BB9...",
|
|
946
|
+
textColor: "\u6587\u5B57\u984F\u8272",
|
|
947
|
+
highlight: "\u87A2\u5149\u7B46",
|
|
948
|
+
insertTable: "\u63D2\u5165\u8868\u683C",
|
|
949
|
+
deleteTable: "\u522A\u9664\u8868\u683C",
|
|
950
|
+
emoji: "\u8868\u60C5\u7B26\u865F",
|
|
951
|
+
addRowBefore: "\u5728\u4E0A\u65B9\u63D2\u5165\u5217",
|
|
952
|
+
addRowAfter: "\u5728\u4E0B\u65B9\u63D2\u5165\u5217",
|
|
953
|
+
deleteRow: "\u522A\u9664\u5217",
|
|
954
|
+
addColumnBefore: "\u5728\u5DE6\u65B9\u63D2\u5165\u6B04",
|
|
955
|
+
addColumnAfter: "\u5728\u53F3\u65B9\u63D2\u5165\u6B04",
|
|
956
|
+
deleteColumn: "\u522A\u9664\u6B04",
|
|
957
|
+
math: "\u6578\u5B78\u516C\u5F0F (LaTeX)",
|
|
958
|
+
youtube: "YouTube \u5F71\u7247",
|
|
959
|
+
enterYoutubeUrl: "\u8F38\u5165 YouTube \u7DB2\u5740"
|
|
960
|
+
}
|
|
961
|
+
},
|
|
962
|
+
common: {
|
|
963
|
+
actions: {
|
|
964
|
+
create: "\u65B0\u589E",
|
|
965
|
+
edit: "\u7DE8\u8F2F",
|
|
966
|
+
delete: "\u522A\u9664",
|
|
967
|
+
save: "\u5132\u5B58",
|
|
968
|
+
cancel: "\u53D6\u6D88"
|
|
969
|
+
}
|
|
970
|
+
},
|
|
971
|
+
sider: {
|
|
972
|
+
dashboard: "\u5100\u8868\u677F",
|
|
973
|
+
dataTypeExamples: "\u8CC7\u6599\u985E\u578B\u7BC4\u4F8B",
|
|
974
|
+
tiptapExamples: "Tiptap \u7BC4\u4F8B",
|
|
975
|
+
users: "\u4F7F\u7528\u8005",
|
|
976
|
+
roles: "\u89D2\u8272",
|
|
977
|
+
settings: "\u8A2D\u5B9A"
|
|
978
|
+
}
|
|
979
|
+
};
|
|
980
|
+
var refineXafTranslations = {
|
|
981
|
+
en,
|
|
982
|
+
"zh-TW": zhTW
|
|
983
|
+
};
|
|
984
|
+
|
|
788
985
|
// src/components/Header.tsx
|
|
789
986
|
var import_react3 = __toESM(require("react"));
|
|
790
987
|
var import_core = require("@refinedev/core");
|
|
@@ -851,7 +1048,9 @@ var useColorMode = () => {
|
|
|
851
1048
|
// src/components/Base64Upload.tsx
|
|
852
1049
|
var import_react2 = __toESM(require("react"));
|
|
853
1050
|
var import_lib2 = require("antd/lib");
|
|
1051
|
+
var import_react_i18next = require("react-i18next");
|
|
854
1052
|
var Base64Upload = ({ value, onChange }) => {
|
|
1053
|
+
const { t } = (0, import_react_i18next.useTranslation)();
|
|
855
1054
|
return /* @__PURE__ */ import_react2.default.createElement(
|
|
856
1055
|
import_lib2.Upload,
|
|
857
1056
|
{
|
|
@@ -869,11 +1068,12 @@ var Base64Upload = ({ value, onChange }) => {
|
|
|
869
1068
|
return false;
|
|
870
1069
|
}
|
|
871
1070
|
},
|
|
872
|
-
value ? /* @__PURE__ */ import_react2.default.createElement("img", { src: `data:image/png;base64,${value}`, alt: "avatar", style: { width: "100%" } }) : /* @__PURE__ */ import_react2.default.createElement("div", null, /* @__PURE__ */ import_react2.default.createElement("div", { style: { marginTop: 8 } }, "Upload"))
|
|
1071
|
+
value ? /* @__PURE__ */ import_react2.default.createElement("img", { src: `data:image/png;base64,${value}`, alt: "avatar", style: { width: "100%" } }) : /* @__PURE__ */ import_react2.default.createElement("div", null, /* @__PURE__ */ import_react2.default.createElement("div", { style: { marginTop: 8 } }, t("components.base64Upload.upload", "Upload")))
|
|
873
1072
|
);
|
|
874
1073
|
};
|
|
875
1074
|
|
|
876
1075
|
// src/components/Header.tsx
|
|
1076
|
+
var import_react_i18next2 = require("react-i18next");
|
|
877
1077
|
var import_meta3 = {};
|
|
878
1078
|
var { Text } = import_lib3.Typography;
|
|
879
1079
|
var { useToken } = import_lib3.theme;
|
|
@@ -884,6 +1084,11 @@ var Header = () => {
|
|
|
884
1084
|
const { mode, setMode } = useColorMode();
|
|
885
1085
|
const { token } = useToken();
|
|
886
1086
|
const invalidate = (0, import_core.useInvalidate)();
|
|
1087
|
+
const { t: translate, i18n } = (0, import_react_i18next2.useTranslation)();
|
|
1088
|
+
const currentLocale = i18n.language;
|
|
1089
|
+
const handleLanguageChange = (lang) => {
|
|
1090
|
+
i18n.changeLanguage(lang);
|
|
1091
|
+
};
|
|
887
1092
|
const [authProvider2, setAuthProvider] = (0, import_react3.useState)(null);
|
|
888
1093
|
(0, import_react3.useEffect)(() => {
|
|
889
1094
|
if (user) {
|
|
@@ -954,7 +1159,7 @@ var Header = () => {
|
|
|
954
1159
|
},
|
|
955
1160
|
{
|
|
956
1161
|
key: "change-photo",
|
|
957
|
-
label: "Change Photo",
|
|
1162
|
+
label: translate("components.header.menu.changePhoto", "Change Photo"),
|
|
958
1163
|
icon: /* @__PURE__ */ import_react3.default.createElement(import_icons.CameraOutlined, null),
|
|
959
1164
|
onClick: () => {
|
|
960
1165
|
photoForm.setFieldsValue({ Photo: user?.avatar?.replace("data:image/png;base64,", "") });
|
|
@@ -963,7 +1168,7 @@ var Header = () => {
|
|
|
963
1168
|
},
|
|
964
1169
|
{
|
|
965
1170
|
key: "change-password",
|
|
966
|
-
label: authProvider2 === "keycloak" ? "Manage Account in Keycloak" : "Change Password",
|
|
1171
|
+
label: authProvider2 === "keycloak" ? translate("components.header.menu.manageAccount", "Manage Account in Keycloak") : translate("components.header.menu.changePassword", "Change Password"),
|
|
967
1172
|
icon: /* @__PURE__ */ import_react3.default.createElement(import_icons.LockOutlined, null),
|
|
968
1173
|
onClick: () => {
|
|
969
1174
|
if (authProvider2 === "keycloak") {
|
|
@@ -982,13 +1187,13 @@ var Header = () => {
|
|
|
982
1187
|
},
|
|
983
1188
|
{
|
|
984
1189
|
key: "theme",
|
|
985
|
-
label: mode === "light" ? "Dark Theme" : "Light Theme",
|
|
1190
|
+
label: mode === "light" ? translate("components.header.theme.dark", "Dark Theme") : translate("components.header.theme.light", "Light Theme"),
|
|
986
1191
|
icon: mode === "light" ? /* @__PURE__ */ import_react3.default.createElement(import_icons.MoonOutlined, null) : /* @__PURE__ */ import_react3.default.createElement(import_icons.SunOutlined, null),
|
|
987
1192
|
onClick: () => setMode(mode === "light" ? "dark" : "light")
|
|
988
1193
|
},
|
|
989
1194
|
{
|
|
990
1195
|
key: "logout",
|
|
991
|
-
label: "Logout",
|
|
1196
|
+
label: translate("components.header.menu.logout", "Logout"),
|
|
992
1197
|
icon: /* @__PURE__ */ import_react3.default.createElement(import_icons.LogoutOutlined, null),
|
|
993
1198
|
onClick: () => logout()
|
|
994
1199
|
}
|
|
@@ -1008,7 +1213,29 @@ var Header = () => {
|
|
|
1008
1213
|
zIndex: 1
|
|
1009
1214
|
}
|
|
1010
1215
|
},
|
|
1011
|
-
/* @__PURE__ */ import_react3.default.createElement(import_lib3.Space, null, /* @__PURE__ */ import_react3.default.createElement(
|
|
1216
|
+
/* @__PURE__ */ import_react3.default.createElement(import_lib3.Space, null, /* @__PURE__ */ import_react3.default.createElement(
|
|
1217
|
+
import_lib3.Dropdown,
|
|
1218
|
+
{
|
|
1219
|
+
menu: {
|
|
1220
|
+
items: [
|
|
1221
|
+
{
|
|
1222
|
+
key: "en",
|
|
1223
|
+
label: translate("components.header.language.en", "English"),
|
|
1224
|
+
onClick: () => handleLanguageChange("en"),
|
|
1225
|
+
disabled: currentLocale === "en"
|
|
1226
|
+
},
|
|
1227
|
+
{
|
|
1228
|
+
key: "zh-TW",
|
|
1229
|
+
label: translate("components.header.language.zh-TW", "\u7E41\u9AD4\u4E2D\u6587"),
|
|
1230
|
+
onClick: () => handleLanguageChange("zh-TW"),
|
|
1231
|
+
disabled: currentLocale === "zh-TW"
|
|
1232
|
+
}
|
|
1233
|
+
]
|
|
1234
|
+
},
|
|
1235
|
+
trigger: ["click"]
|
|
1236
|
+
},
|
|
1237
|
+
/* @__PURE__ */ import_react3.default.createElement(import_lib3.Button, { type: "text", icon: /* @__PURE__ */ import_react3.default.createElement(import_icons.GlobalOutlined, null) }, currentLocale === "zh-TW" ? "\u7E41\u9AD4\u4E2D\u6587" : "English", " ", /* @__PURE__ */ import_react3.default.createElement(import_icons.DownOutlined, null))
|
|
1238
|
+
), /* @__PURE__ */ import_react3.default.createElement(import_lib3.Dropdown, { menu: { items: menuItems }, trigger: ["click"] }, /* @__PURE__ */ import_react3.default.createElement(import_lib3.Button, { type: "text", style: { height: 48 } }, /* @__PURE__ */ import_react3.default.createElement(import_lib3.Space, null, /* @__PURE__ */ import_react3.default.createElement(import_lib3.Avatar, { src: user?.avatar, alt: user?.name, icon: /* @__PURE__ */ import_react3.default.createElement(import_icons.UserOutlined, null) }), /* @__PURE__ */ import_react3.default.createElement(Text, null, user?.name), /* @__PURE__ */ import_react3.default.createElement(import_icons.DownOutlined, { style: { fontSize: 12 } }))))),
|
|
1012
1239
|
/* @__PURE__ */ import_react3.default.createElement(
|
|
1013
1240
|
import_lib3.Modal,
|
|
1014
1241
|
{
|
|
@@ -1048,11 +1275,13 @@ var import_react4 = __toESM(require("react"));
|
|
|
1048
1275
|
var import_antd2 = require("@refinedev/antd");
|
|
1049
1276
|
var import_lib4 = require("antd/lib");
|
|
1050
1277
|
var import_icons2 = require("@ant-design/icons");
|
|
1278
|
+
var import_react_i18next3 = require("react-i18next");
|
|
1051
1279
|
var SmartList = ({
|
|
1052
1280
|
children,
|
|
1053
1281
|
resource,
|
|
1054
1282
|
searchFields
|
|
1055
1283
|
}) => {
|
|
1284
|
+
const { t } = (0, import_react_i18next3.useTranslation)();
|
|
1056
1285
|
const { tableProps, searchFormProps, tableQuery, setFilters } = (0, import_antd2.useTable)({
|
|
1057
1286
|
resource,
|
|
1058
1287
|
syncWithLocation: true,
|
|
@@ -1123,7 +1352,7 @@ var SmartList = ({
|
|
|
1123
1352
|
setVisibleColumns(defaultVisible);
|
|
1124
1353
|
localStorage.removeItem(`table-columns-${resource}`);
|
|
1125
1354
|
};
|
|
1126
|
-
const content = /* @__PURE__ */ import_react4.default.createElement("div", { style: { display: "flex", flexDirection: "column", gap: "8px" } }, /* @__PURE__ */ import_react4.default.createElement("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", marginBottom: "4px" } }, /* @__PURE__ */ import_react4.default.createElement("span", { style: { fontWeight: 500 } }, "Select Columns"), /* @__PURE__ */ import_react4.default.createElement(import_lib4.Button, { size: "small", type: "link", onClick: handleResetColumns, style: { padding: 0 } }, "Reset")), columns.filter((col) => col.dataIndex !== "actions").map((col) => /* @__PURE__ */ import_react4.default.createElement(
|
|
1355
|
+
const content = /* @__PURE__ */ import_react4.default.createElement("div", { style: { display: "flex", flexDirection: "column", gap: "8px" } }, /* @__PURE__ */ import_react4.default.createElement("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", marginBottom: "4px" } }, /* @__PURE__ */ import_react4.default.createElement("span", { style: { fontWeight: 500 } }, t("components.smartList.selectColumns", "Select Columns")), /* @__PURE__ */ import_react4.default.createElement(import_lib4.Button, { size: "small", type: "link", onClick: handleResetColumns, style: { padding: 0 } }, t("components.smartList.reset", "Reset"))), columns.filter((col) => col.dataIndex !== "actions").map((col) => /* @__PURE__ */ import_react4.default.createElement(
|
|
1127
1356
|
import_lib4.Checkbox,
|
|
1128
1357
|
{
|
|
1129
1358
|
key: col.key,
|
|
@@ -1144,7 +1373,7 @@ var SmartList = ({
|
|
|
1144
1373
|
return /* @__PURE__ */ import_react4.default.createElement(import_antd2.List, null, /* @__PURE__ */ import_react4.default.createElement("div", { style: { display: "flex", justifyContent: "space-between", marginBottom: 20 } }, /* @__PURE__ */ import_react4.default.createElement(import_lib4.Form, { ...searchFormProps, layout: "inline" }, /* @__PURE__ */ import_react4.default.createElement(import_lib4.Form.Item, { name: "search" }, /* @__PURE__ */ import_react4.default.createElement(
|
|
1145
1374
|
import_lib4.Input,
|
|
1146
1375
|
{
|
|
1147
|
-
placeholder: "Search...",
|
|
1376
|
+
placeholder: t("components.smartList.search", "Search..."),
|
|
1148
1377
|
style: { width: 300 },
|
|
1149
1378
|
allowClear: true,
|
|
1150
1379
|
suffix: /* @__PURE__ */ import_react4.default.createElement(
|
|
@@ -1173,7 +1402,7 @@ var SmartList = ({
|
|
|
1173
1402
|
}
|
|
1174
1403
|
}
|
|
1175
1404
|
}
|
|
1176
|
-
))), /* @__PURE__ */ import_react4.default.createElement(import_lib4.Space, null, /* @__PURE__ */ import_react4.default.createElement(import_lib4.Button, { icon: /* @__PURE__ */ import_react4.default.createElement(import_icons2.ReloadOutlined, null), onClick: () => tableQuery?.refetch() }, "Refresh"), /* @__PURE__ */ import_react4.default.createElement(import_lib4.Popover, { content, title: "Columns", trigger: "click", placement: "bottomRight" }, /* @__PURE__ */ import_react4.default.createElement(import_lib4.Button, { icon: /* @__PURE__ */ import_react4.default.createElement(import_icons2.SettingOutlined, null) }, "Columns")))), /* @__PURE__ */ import_react4.default.createElement(import_lib4.Table, { ...tableProps, rowKey: "Oid" }, filteredChildren));
|
|
1405
|
+
))), /* @__PURE__ */ import_react4.default.createElement(import_lib4.Space, null, /* @__PURE__ */ import_react4.default.createElement(import_lib4.Button, { icon: /* @__PURE__ */ import_react4.default.createElement(import_icons2.ReloadOutlined, null), onClick: () => tableQuery?.refetch() }, t("components.smartList.refresh", "Refresh")), /* @__PURE__ */ import_react4.default.createElement(import_lib4.Popover, { content, title: t("components.smartList.columns", "Columns"), trigger: "click", placement: "bottomRight" }, /* @__PURE__ */ import_react4.default.createElement(import_lib4.Button, { icon: /* @__PURE__ */ import_react4.default.createElement(import_icons2.SettingOutlined, null) }, t("components.smartList.columns", "Columns"))))), /* @__PURE__ */ import_react4.default.createElement(import_lib4.Table, { ...tableProps, rowKey: "Oid" }, filteredChildren));
|
|
1177
1406
|
};
|
|
1178
1407
|
|
|
1179
1408
|
// src/components/RelatedList.tsx
|
|
@@ -1182,6 +1411,7 @@ var import_lib5 = require("antd/lib");
|
|
|
1182
1411
|
var import_icons3 = require("@ant-design/icons");
|
|
1183
1412
|
var import_antd3 = require("@refinedev/antd");
|
|
1184
1413
|
var import_core2 = require("@refinedev/core");
|
|
1414
|
+
var import_react_i18next4 = require("react-i18next");
|
|
1185
1415
|
var DetailModal = ({
|
|
1186
1416
|
modalForm,
|
|
1187
1417
|
mode,
|
|
@@ -1227,9 +1457,12 @@ var RelatedList = ({
|
|
|
1227
1457
|
dataSource,
|
|
1228
1458
|
onMutationSuccess,
|
|
1229
1459
|
FormFields,
|
|
1230
|
-
modalTitle
|
|
1460
|
+
modalTitle,
|
|
1231
1461
|
children
|
|
1232
1462
|
}) => {
|
|
1463
|
+
const { t } = (0, import_react_i18next4.useTranslation)();
|
|
1464
|
+
const defaultTitle = t("components.relatedList.manageDetail", "Manage Detail");
|
|
1465
|
+
const finalModalTitle = modalTitle || defaultTitle;
|
|
1233
1466
|
const createModalForm = (0, import_antd3.useModalForm)({
|
|
1234
1467
|
resource,
|
|
1235
1468
|
action: "create",
|
|
@@ -1244,7 +1477,7 @@ var RelatedList = ({
|
|
|
1244
1477
|
});
|
|
1245
1478
|
const { mutate: deleteMutate } = (0, import_core2.useDelete)();
|
|
1246
1479
|
const handleDelete = (id) => {
|
|
1247
|
-
if (confirm("Are you sure you want to delete this detail?")) {
|
|
1480
|
+
if (confirm(t("components.relatedList.deleteConfirm", "Are you sure you want to delete this detail?"))) {
|
|
1248
1481
|
deleteMutate({
|
|
1249
1482
|
resource,
|
|
1250
1483
|
id,
|
|
@@ -1263,7 +1496,7 @@ var RelatedList = ({
|
|
|
1263
1496
|
disabled: !masterId,
|
|
1264
1497
|
"data-testid": "add-detail-btn"
|
|
1265
1498
|
},
|
|
1266
|
-
"Add Detail"
|
|
1499
|
+
t("components.relatedList.addDetail", "Add Detail")
|
|
1267
1500
|
)), /* @__PURE__ */ import_react5.default.createElement(
|
|
1268
1501
|
import_lib5.Table,
|
|
1269
1502
|
{
|
|
@@ -1277,7 +1510,7 @@ var RelatedList = ({
|
|
|
1277
1510
|
/* @__PURE__ */ import_react5.default.createElement(
|
|
1278
1511
|
import_lib5.Table.Column,
|
|
1279
1512
|
{
|
|
1280
|
-
title: "Actions",
|
|
1513
|
+
title: t("components.relatedList.actions", "Actions"),
|
|
1281
1514
|
key: "actions",
|
|
1282
1515
|
width: 120,
|
|
1283
1516
|
render: (_, record) => /* @__PURE__ */ import_react5.default.createElement(import_lib5.Space, null, /* @__PURE__ */ import_react5.default.createElement(
|
|
@@ -1303,7 +1536,7 @@ var RelatedList = ({
|
|
|
1303
1536
|
{
|
|
1304
1537
|
modalForm: createModalForm,
|
|
1305
1538
|
mode: "create",
|
|
1306
|
-
modalTitle,
|
|
1539
|
+
modalTitle: finalModalTitle,
|
|
1307
1540
|
FormFields,
|
|
1308
1541
|
masterField,
|
|
1309
1542
|
masterId
|
|
@@ -1313,7 +1546,7 @@ var RelatedList = ({
|
|
|
1313
1546
|
{
|
|
1314
1547
|
modalForm: editModalForm,
|
|
1315
1548
|
mode: "edit",
|
|
1316
|
-
modalTitle,
|
|
1549
|
+
modalTitle: finalModalTitle,
|
|
1317
1550
|
FormFields,
|
|
1318
1551
|
masterField,
|
|
1319
1552
|
masterId
|
|
@@ -1323,6 +1556,7 @@ var RelatedList = ({
|
|
|
1323
1556
|
|
|
1324
1557
|
// src/components/TiptapEditor.tsx
|
|
1325
1558
|
var import_react6 = __toESM(require("react"));
|
|
1559
|
+
var import_react_i18next5 = require("react-i18next");
|
|
1326
1560
|
var import_react7 = require("@tiptap/react");
|
|
1327
1561
|
var import_starter_kit = __toESM(require("@tiptap/starter-kit"));
|
|
1328
1562
|
var import_extension_image = __toESM(require("@tiptap/extension-image"));
|
|
@@ -18547,6 +18781,7 @@ var import_lib6 = require("antd/lib");
|
|
|
18547
18781
|
var import_icons4 = require("@ant-design/icons");
|
|
18548
18782
|
var TiptapEditor = ({ value, onChange, disabled }) => {
|
|
18549
18783
|
const { token } = import_lib6.theme.useToken();
|
|
18784
|
+
const { t } = (0, import_react_i18next5.useTranslation)();
|
|
18550
18785
|
const editor = (0, import_react7.useEditor)({
|
|
18551
18786
|
extensions: [
|
|
18552
18787
|
import_starter_kit.default,
|
|
@@ -18577,7 +18812,7 @@ var TiptapEditor = ({ value, onChange, disabled }) => {
|
|
|
18577
18812
|
TextStyle,
|
|
18578
18813
|
Color,
|
|
18579
18814
|
index_default.configure({
|
|
18580
|
-
placeholder: "Write something..."
|
|
18815
|
+
placeholder: t("components.tiptapEditor.placeholder", "Write something...")
|
|
18581
18816
|
})
|
|
18582
18817
|
],
|
|
18583
18818
|
content: value,
|
|
@@ -18662,7 +18897,7 @@ var TiptapEditor = ({ value, onChange, disabled }) => {
|
|
|
18662
18897
|
onClick: () => editor.chain().focus().toggleHighlight().run(),
|
|
18663
18898
|
disabled,
|
|
18664
18899
|
size: "small",
|
|
18665
|
-
title: "Highlight"
|
|
18900
|
+
title: t("components.tiptapEditor.highlight", "Highlight")
|
|
18666
18901
|
}
|
|
18667
18902
|
), /* @__PURE__ */ import_react6.default.createElement(
|
|
18668
18903
|
import_lib6.ColorPicker,
|
|
@@ -18680,7 +18915,7 @@ var TiptapEditor = ({ value, onChange, disabled }) => {
|
|
|
18680
18915
|
icon: /* @__PURE__ */ import_react6.default.createElement(import_icons4.FontColorsOutlined, { style: { color: editor.getAttributes("textStyle").color } }),
|
|
18681
18916
|
disabled,
|
|
18682
18917
|
size: "small",
|
|
18683
|
-
title: "Text Color"
|
|
18918
|
+
title: t("components.tiptapEditor.textColor", "Text Color")
|
|
18684
18919
|
}
|
|
18685
18920
|
)
|
|
18686
18921
|
), /* @__PURE__ */ import_react6.default.createElement(
|
|
@@ -18745,7 +18980,7 @@ var TiptapEditor = ({ value, onChange, disabled }) => {
|
|
|
18745
18980
|
onClick: () => editor.chain().focus().toggleMath().run(),
|
|
18746
18981
|
disabled,
|
|
18747
18982
|
size: "small",
|
|
18748
|
-
title: "Math (LaTeX)"
|
|
18983
|
+
title: t("components.tiptapEditor.math", "Math (LaTeX)")
|
|
18749
18984
|
}
|
|
18750
18985
|
), /* @__PURE__ */ import_react6.default.createElement(
|
|
18751
18986
|
import_lib6.Button,
|
|
@@ -18753,14 +18988,14 @@ var TiptapEditor = ({ value, onChange, disabled }) => {
|
|
|
18753
18988
|
type: editor.isActive("youtube") ? "primary" : "text",
|
|
18754
18989
|
icon: /* @__PURE__ */ import_react6.default.createElement(import_icons4.YoutubeOutlined, null),
|
|
18755
18990
|
onClick: () => {
|
|
18756
|
-
const url = window.prompt("Enter YouTube URL");
|
|
18991
|
+
const url = window.prompt(t("components.tiptapEditor.enterYoutubeUrl", "Enter YouTube URL"));
|
|
18757
18992
|
if (url) {
|
|
18758
18993
|
editor.commands.setYoutubeVideo({ src: url });
|
|
18759
18994
|
}
|
|
18760
18995
|
},
|
|
18761
18996
|
disabled,
|
|
18762
18997
|
size: "small",
|
|
18763
|
-
title: "YouTube"
|
|
18998
|
+
title: t("components.tiptapEditor.youtube", "YouTube")
|
|
18764
18999
|
}
|
|
18765
19000
|
), /* @__PURE__ */ import_react6.default.createElement(
|
|
18766
19001
|
import_lib6.Button,
|
|
@@ -18770,7 +19005,7 @@ var TiptapEditor = ({ value, onChange, disabled }) => {
|
|
|
18770
19005
|
onClick: () => editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run(),
|
|
18771
19006
|
disabled,
|
|
18772
19007
|
size: "small",
|
|
18773
|
-
title: "Insert Table"
|
|
19008
|
+
title: t("components.tiptapEditor.insertTable", "Insert Table")
|
|
18774
19009
|
}
|
|
18775
19010
|
), /* @__PURE__ */ import_react6.default.createElement(
|
|
18776
19011
|
import_lib6.Button,
|
|
@@ -18780,7 +19015,7 @@ var TiptapEditor = ({ value, onChange, disabled }) => {
|
|
|
18780
19015
|
onClick: () => editor.chain().focus().deleteTable().run(),
|
|
18781
19016
|
disabled: !editor.can().deleteTable() || disabled,
|
|
18782
19017
|
size: "small",
|
|
18783
|
-
title: "Delete Table"
|
|
19018
|
+
title: t("components.tiptapEditor.deleteTable", "Delete Table")
|
|
18784
19019
|
}
|
|
18785
19020
|
), /* @__PURE__ */ import_react6.default.createElement(
|
|
18786
19021
|
import_lib6.Popover,
|
|
@@ -18805,7 +19040,7 @@ var TiptapEditor = ({ value, onChange, disabled }) => {
|
|
|
18805
19040
|
icon: /* @__PURE__ */ import_react6.default.createElement(import_icons4.SmileOutlined, null),
|
|
18806
19041
|
disabled,
|
|
18807
19042
|
size: "small",
|
|
18808
|
-
title: "Emoji"
|
|
19043
|
+
title: t("components.tiptapEditor.emoji", "Emoji")
|
|
18809
19044
|
}
|
|
18810
19045
|
)
|
|
18811
19046
|
), editor.isActive("table") && /* @__PURE__ */ import_react6.default.createElement(import_react6.default.Fragment, null, /* @__PURE__ */ import_react6.default.createElement(
|
|
@@ -18816,7 +19051,7 @@ var TiptapEditor = ({ value, onChange, disabled }) => {
|
|
|
18816
19051
|
onClick: () => editor.chain().focus().addRowBefore().run(),
|
|
18817
19052
|
disabled,
|
|
18818
19053
|
size: "small",
|
|
18819
|
-
title: "Add Row Before"
|
|
19054
|
+
title: t("components.tiptapEditor.addRowBefore", "Add Row Before")
|
|
18820
19055
|
}
|
|
18821
19056
|
), /* @__PURE__ */ import_react6.default.createElement(
|
|
18822
19057
|
import_lib6.Button,
|
|
@@ -18826,7 +19061,7 @@ var TiptapEditor = ({ value, onChange, disabled }) => {
|
|
|
18826
19061
|
onClick: () => editor.chain().focus().addRowAfter().run(),
|
|
18827
19062
|
disabled,
|
|
18828
19063
|
size: "small",
|
|
18829
|
-
title: "Add Row After"
|
|
19064
|
+
title: t("components.tiptapEditor.addRowAfter", "Add Row After")
|
|
18830
19065
|
}
|
|
18831
19066
|
), /* @__PURE__ */ import_react6.default.createElement(
|
|
18832
19067
|
import_lib6.Button,
|
|
@@ -18836,7 +19071,7 @@ var TiptapEditor = ({ value, onChange, disabled }) => {
|
|
|
18836
19071
|
onClick: () => editor.chain().focus().deleteRow().run(),
|
|
18837
19072
|
disabled: !editor.can().deleteRow() || disabled,
|
|
18838
19073
|
size: "small",
|
|
18839
|
-
title: "Delete Row"
|
|
19074
|
+
title: t("components.tiptapEditor.deleteRow", "Delete Row")
|
|
18840
19075
|
}
|
|
18841
19076
|
), /* @__PURE__ */ import_react6.default.createElement(
|
|
18842
19077
|
import_lib6.Button,
|
|
@@ -18846,7 +19081,7 @@ var TiptapEditor = ({ value, onChange, disabled }) => {
|
|
|
18846
19081
|
onClick: () => editor.chain().focus().addColumnBefore().run(),
|
|
18847
19082
|
disabled,
|
|
18848
19083
|
size: "small",
|
|
18849
|
-
title: "Add Column Before"
|
|
19084
|
+
title: t("components.tiptapEditor.addColumnBefore", "Add Column Before")
|
|
18850
19085
|
}
|
|
18851
19086
|
), /* @__PURE__ */ import_react6.default.createElement(
|
|
18852
19087
|
import_lib6.Button,
|
|
@@ -18856,7 +19091,7 @@ var TiptapEditor = ({ value, onChange, disabled }) => {
|
|
|
18856
19091
|
onClick: () => editor.chain().focus().addColumnAfter().run(),
|
|
18857
19092
|
disabled,
|
|
18858
19093
|
size: "small",
|
|
18859
|
-
title: "Add Column After"
|
|
19094
|
+
title: t("components.tiptapEditor.addColumnAfter", "Add Column After")
|
|
18860
19095
|
}
|
|
18861
19096
|
), /* @__PURE__ */ import_react6.default.createElement(
|
|
18862
19097
|
import_lib6.Button,
|
|
@@ -18866,7 +19101,7 @@ var TiptapEditor = ({ value, onChange, disabled }) => {
|
|
|
18866
19101
|
onClick: () => editor.chain().focus().deleteColumn().run(),
|
|
18867
19102
|
disabled: !editor.can().deleteColumn() || disabled,
|
|
18868
19103
|
size: "small",
|
|
18869
|
-
title: "Delete Column"
|
|
19104
|
+
title: t("components.tiptapEditor.deleteColumn", "Delete Column")
|
|
18870
19105
|
}
|
|
18871
19106
|
))), /* @__PURE__ */ import_react6.default.createElement(import_lib6.Space, { style: { marginLeft: "auto" } }, /* @__PURE__ */ import_react6.default.createElement(
|
|
18872
19107
|
import_lib6.Button,
|
|
@@ -19800,6 +20035,7 @@ var RoleEdit = () => {
|
|
|
19800
20035
|
httpClient,
|
|
19801
20036
|
keycloakService,
|
|
19802
20037
|
parseJwt,
|
|
20038
|
+
refineXafTranslations,
|
|
19803
20039
|
useColorMode,
|
|
19804
20040
|
useModelTypes,
|
|
19805
20041
|
validatePasswordStrength
|