Files
pole-book/server/node_modules/.strapi/vite/deps/EmailTemplates-3V4J4ZNO.js

614 lines
20 KiB
JavaScript

import {
require_prop_types
} from "./chunk-ZYDILIPQ.js";
import "./chunk-AOWI4JYR.js";
import "./chunk-KGPWUC7Q.js";
import "./chunk-FVEHK4NK.js";
import "./chunk-C4NW23D7.js";
import "./chunk-E3IW2VDN.js";
import "./chunk-MN3D3XJI.js";
import "./chunk-C7H2BX76.js";
import "./chunk-U66AL5Y5.js";
import "./chunk-7KYK3FTC.js";
import "./chunk-JF4AI5LV.js";
import "./chunk-ALMC553V.js";
import "./chunk-PDGPTUUZ.js";
import "./chunk-XH2B3RAH.js";
import "./chunk-MLTBQQQV.js";
import "./chunk-GXKJFURG.js";
import "./chunk-7FUKGPNR.js";
import "./chunk-NAZM6EA4.js";
import "./chunk-UATNJIHQ.js";
import "./chunk-P4VL3IHZ.js";
import "./chunk-HIZVCZYI.js";
import "./chunk-7HX4OIS5.js";
import "./chunk-6LY4MOO2.js";
import "./chunk-SQLDXQZE.js";
import "./chunk-QF6GPHA4.js";
import "./chunk-SYWYLB7I.js";
import "./chunk-S3HPKOXW.js";
import "./chunk-JRLAXHTE.js";
import "./chunk-E4IFZ6ZT.js";
import "./chunk-XNACAI67.js";
import {
useMutation,
useQuery,
useQueryClient
} from "./chunk-QLEKUQKW.js";
import "./chunk-4J3VOWQV.js";
import "./chunk-PFI4R5WA.js";
import "./chunk-G2UWKDMB.js";
import "./chunk-B3BGMYGX.js";
import "./chunk-W6ICJ5TB.js";
import "./chunk-IHYIPMY2.js";
import "./chunk-UWHSN2C7.js";
import "./chunk-ERK7O2GM.js";
import {
useFetchClient
} from "./chunk-FCIM6RNO.js";
import "./chunk-J33IXKN4.js";
import "./chunk-NP53ZCXD.js";
import "./chunk-KFLQQE5L.js";
import "./chunk-ED4XR3VQ.js";
import "./chunk-MBK4V2X7.js";
import {
require_isEmpty
} from "./chunk-YJEURQPS.js";
import "./chunk-5ESYXDTN.js";
import "./chunk-GGK2TLCV.js";
import "./chunk-K65KIEAL.js";
import "./chunk-B7ZLODDO.js";
import "./chunk-PW7XKCYO.js";
import "./chunk-RMBEU7DO.js";
import "./chunk-RI2W2UZ6.js";
import "./chunk-IY256CNP.js";
import {
errorsTrads
} from "./chunk-IFOFBKTA.js";
import {
create4 as create,
create6 as create2
} from "./chunk-XLSIZGJF.js";
import "./chunk-EGNP2T5O.js";
import {
useTracking
} from "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import "./chunk-YXDCVYVT.js";
import "./chunk-QIJGNK42.js";
import "./chunk-7PUJSL55.js";
import "./chunk-C2ZJTFO7.js";
import "./chunk-C75BZXCZ.js";
import "./chunk-APGTER6B.js";
import "./chunk-ZM6TT53G.js";
import {
MemoizedInputRenderer
} from "./chunk-6AXVGFVQ.js";
import {
Form
} from "./chunk-BFLP6DBI.js";
import {
useRBAC
} from "./chunk-CMLQV3Z2.js";
import "./chunk-D4WYVNVM.js";
import "./chunk-MMOBCIZG.js";
import "./chunk-IGCTEXRF.js";
import {
Layouts
} from "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.js";
import "./chunk-VYSYYPOB.js";
import {
Page,
useAPIErrorHandler
} from "./chunk-5CAWUBTQ.js";
import "./chunk-W2TBR6J3.js";
import "./chunk-QEGMJR7H.js";
import "./chunk-LCL5TIBZ.js";
import "./chunk-WOQNBAGN.js";
import "./chunk-BHLYCXQ7.js";
import "./chunk-76QM3EFM.js";
import "./chunk-CE4VABH2.js";
import "./chunk-5VODLFKF.js";
import {
useNotification
} from "./chunk-N55RVBRV.js";
import {
Box,
Breadcrumbs,
Button,
Crumb,
Grid,
IconButton,
Modal,
Table,
Tbody,
Td,
Th,
Thead,
Tr,
Typography,
VisuallyHidden,
useIntl,
useNotifyAT
} from "./chunk-7XB6XSWQ.js";
import "./chunk-5ZC4PE57.js";
import "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$1v,
ForwardRef$4F,
ForwardRef$5n
} from "./chunk-WRD5KPDH.js";
import {
require_jsx_runtime
} from "./chunk-NIAJZ5MX.js";
import "./chunk-ACIMPXWY.js";
import {
require_react
} from "./chunk-MADUDGYZ.js";
import {
PERMISSIONS,
getTrad
} from "./chunk-DJJSG3NG.js";
import {
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/@strapi/plugin-users-permissions/dist/admin/pages/EmailTemplates/index.mjs
var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
var import_isEmpty3 = __toESM(require_isEmpty(), 1);
// node_modules/@strapi/plugin-users-permissions/dist/admin/pages/EmailTemplates/components/EmailForm.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var import_react = __toESM(require_react(), 1);
var import_prop_types = __toESM(require_prop_types(), 1);
var import_isEmpty = __toESM(require_isEmpty(), 1);
// node_modules/@strapi/plugin-users-permissions/dist/admin/pages/EmailTemplates/utils/schema.mjs
var schema = create2().shape({
options: create2().shape({
from: create2().shape({
name: create().required({
id: errorsTrads.required.id,
defaultMessage: "This field is required"
}),
email: create().email(errorsTrads.email).required({
id: errorsTrads.required.id,
defaultMessage: "This field is required"
})
}).required(),
response_email: create().email(errorsTrads.email),
object: create().required({
id: errorsTrads.required.id,
defaultMessage: "This field is required"
}),
message: create().required({
id: errorsTrads.required.id,
defaultMessage: "This field is required"
})
}).required(errorsTrads.required.id)
});
// node_modules/@strapi/plugin-users-permissions/dist/admin/pages/EmailTemplates/components/EmailForm.mjs
var EmailForm = ({ template = {}, onToggle, open, onSubmit }) => {
const { formatMessage } = useIntl();
return (0, import_jsx_runtime.jsx)(Modal.Root, {
open,
onOpenChange: onToggle,
children: (0, import_jsx_runtime.jsxs)(Modal.Content, {
children: [
(0, import_jsx_runtime.jsxs)(Modal.Header, {
children: [
(0, import_jsx_runtime.jsxs)(Breadcrumbs, {
label: `${formatMessage({
id: getTrad("PopUpForm.header.edit.email-templates"),
defaultMessage: "Edit email template"
})}, ${template.display ? formatMessage({
id: getTrad(template.display),
defaultMessage: template.display
}) : ""}`,
children: [
(0, import_jsx_runtime.jsx)(Crumb, {
children: formatMessage({
id: getTrad("PopUpForm.header.edit.email-templates"),
defaultMessage: "Edit email template"
})
}),
(0, import_jsx_runtime.jsx)(Crumb, {
isCurrent: true,
children: template.display ? formatMessage({
id: getTrad(template.display),
defaultMessage: template.display
}) : ""
})
]
}),
(0, import_jsx_runtime.jsx)(VisuallyHidden, {
children: (0, import_jsx_runtime.jsx)(Modal.Title, {
children: `${formatMessage({
id: getTrad("PopUpForm.header.edit.email-templates"),
defaultMessage: "Edit email template"
})}, ${template.display ? formatMessage({
id: getTrad(template.display),
defaultMessage: template.display
}) : ""}`
})
})
]
}),
(0, import_jsx_runtime.jsx)(Form, {
onSubmit,
initialValues: template,
validationSchema: schema,
children: ({ isSubmitting }) => {
return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
children: [
(0, import_jsx_runtime.jsx)(Modal.Body, {
children: (0, import_jsx_runtime.jsx)(Grid.Root, {
gap: 5,
children: [
{
label: formatMessage({
id: getTrad("PopUpForm.Email.options.from.name.label"),
defaultMessage: "Shipper name"
}),
name: "options.from.name",
size: 6,
type: "string"
},
{
label: formatMessage({
id: getTrad("PopUpForm.Email.options.from.email.label"),
defaultMessage: "Shipper email"
}),
name: "options.from.email",
size: 6,
type: "string"
},
{
label: formatMessage({
id: getTrad("PopUpForm.Email.options.response_email.label"),
defaultMessage: "Response email"
}),
name: "options.response_email",
size: 6,
type: "string"
},
{
label: formatMessage({
id: getTrad("PopUpForm.Email.options.object.label"),
defaultMessage: "Subject"
}),
name: "options.object",
size: 6,
type: "string"
},
{
label: formatMessage({
id: getTrad("PopUpForm.Email.options.message.label"),
defaultMessage: "Message"
}),
name: "options.message",
size: 12,
type: "text"
}
].map(({ size, ...field }) => (0, import_jsx_runtime.jsx)(Grid.Item, {
col: size,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime.jsx)(MemoizedInputRenderer, {
...field
})
}, field.name))
})
}),
(0, import_jsx_runtime.jsxs)(Modal.Footer, {
children: [
(0, import_jsx_runtime.jsx)(Modal.Close, {
children: (0, import_jsx_runtime.jsx)(Button, {
variant: "tertiary",
children: "Cancel"
})
}),
(0, import_jsx_runtime.jsx)(Button, {
loading: isSubmitting,
type: "submit",
children: "Finish"
})
]
})
]
});
}
})
]
})
});
};
EmailForm.defaultProps = {
template: {}
};
EmailForm.propTypes = {
template: import_prop_types.default.shape({
display: import_prop_types.default.string,
icon: import_prop_types.default.string,
options: import_prop_types.default.shape({
from: import_prop_types.default.shape({
name: import_prop_types.default.string,
email: import_prop_types.default.string
}),
message: import_prop_types.default.string,
object: import_prop_types.default.string,
response_email: import_prop_types.default.string
})
}),
open: import_prop_types.default.bool.isRequired,
onSubmit: import_prop_types.default.func.isRequired,
onToggle: import_prop_types.default.func.isRequired
};
// node_modules/@strapi/plugin-users-permissions/dist/admin/pages/EmailTemplates/components/EmailTable.mjs
var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
var import_react2 = __toESM(require_react(), 1);
var import_prop_types2 = __toESM(require_prop_types(), 1);
var import_isEmpty2 = __toESM(require_isEmpty(), 1);
var EmailTable = ({ canUpdate, onEditClick }) => {
const { formatMessage } = useIntl();
return (0, import_jsx_runtime2.jsxs)(Table, {
colCount: 3,
rowCount: 3,
children: [
(0, import_jsx_runtime2.jsx)(Thead, {
children: (0, import_jsx_runtime2.jsxs)(Tr, {
children: [
(0, import_jsx_runtime2.jsx)(Th, {
width: "1%",
children: (0, import_jsx_runtime2.jsx)(VisuallyHidden, {
children: formatMessage({
id: getTrad("Email.template.table.icon.label"),
defaultMessage: "icon"
})
})
}),
(0, import_jsx_runtime2.jsx)(Th, {
children: (0, import_jsx_runtime2.jsx)(Typography, {
variant: "sigma",
textColor: "neutral600",
children: formatMessage({
id: getTrad("Email.template.table.name.label"),
defaultMessage: "name"
})
})
}),
(0, import_jsx_runtime2.jsx)(Th, {
width: "1%",
children: (0, import_jsx_runtime2.jsx)(VisuallyHidden, {
children: formatMessage({
id: getTrad("Email.template.table.action.label"),
defaultMessage: "action"
})
})
})
]
})
}),
(0, import_jsx_runtime2.jsxs)(Tbody, {
children: [
(0, import_jsx_runtime2.jsxs)(Tr, {
cursor: "pointer",
onClick: () => onEditClick("reset_password"),
children: [
(0, import_jsx_runtime2.jsx)(Td, {
children: (0, import_jsx_runtime2.jsx)(Box, {
width: "3.2rem",
height: "3.2rem",
padding: "0.8rem",
children: (0, import_jsx_runtime2.jsx)(ForwardRef$5n, {
"aria-label": formatMessage({
id: "global.reset-password",
defaultMessage: "Reset password"
})
})
})
}),
(0, import_jsx_runtime2.jsx)(Td, {
children: (0, import_jsx_runtime2.jsx)(Typography, {
children: formatMessage({
id: "global.reset-password",
defaultMessage: "Reset password"
})
})
}),
(0, import_jsx_runtime2.jsx)(Td, {
onClick: (e) => e.stopPropagation(),
children: (0, import_jsx_runtime2.jsx)(IconButton, {
onClick: () => onEditClick("reset_password"),
label: formatMessage({
id: getTrad("Email.template.form.edit.label"),
defaultMessage: "Edit a template"
}),
variant: "ghost",
disabled: !canUpdate,
children: (0, import_jsx_runtime2.jsx)(ForwardRef$1v, {})
})
})
]
}),
(0, import_jsx_runtime2.jsxs)(Tr, {
cursor: "pointer",
onClick: () => onEditClick("email_confirmation"),
children: [
(0, import_jsx_runtime2.jsx)(Td, {
children: (0, import_jsx_runtime2.jsx)(Box, {
width: "3.2rem",
height: "3.2rem",
padding: "0.8rem",
children: (0, import_jsx_runtime2.jsx)(ForwardRef$4F, {
"aria-label": formatMessage({
id: getTrad("Email.template.email_confirmation"),
defaultMessage: "Email address confirmation"
})
})
})
}),
(0, import_jsx_runtime2.jsx)(Td, {
children: (0, import_jsx_runtime2.jsx)(Typography, {
children: formatMessage({
id: getTrad("Email.template.email_confirmation"),
defaultMessage: "Email address confirmation"
})
})
}),
(0, import_jsx_runtime2.jsx)(Td, {
onClick: (e) => e.stopPropagation(),
children: (0, import_jsx_runtime2.jsx)(IconButton, {
onClick: () => onEditClick("email_confirmation"),
label: formatMessage({
id: getTrad("Email.template.form.edit.label"),
defaultMessage: "Edit a template"
}),
variant: "ghost",
disabled: !canUpdate,
children: (0, import_jsx_runtime2.jsx)(ForwardRef$1v, {})
})
})
]
})
]
})
]
});
};
EmailTable.propTypes = {
canUpdate: import_prop_types2.default.bool.isRequired,
onEditClick: import_prop_types2.default.func.isRequired
};
// node_modules/@strapi/plugin-users-permissions/dist/admin/pages/EmailTemplates/index.mjs
var ProtectedEmailTemplatesPage = () => (0, import_jsx_runtime3.jsx)(Page.Protect, {
permissions: PERMISSIONS.readEmailTemplates,
children: (0, import_jsx_runtime3.jsx)(EmailTemplatesPage, {})
});
var EmailTemplatesPage = () => {
const { formatMessage } = useIntl();
const { trackUsage } = useTracking();
const { notifyStatus } = useNotifyAT();
const { toggleNotification } = useNotification();
const queryClient = useQueryClient();
const { get, put } = useFetchClient();
const { formatAPIError } = useAPIErrorHandler();
const [isModalOpen, setIsModalOpen] = React.useState(false);
const [templateToEdit, setTemplateToEdit] = React.useState(null);
const { isLoading: isLoadingForPermissions, allowedActions: { canUpdate } } = useRBAC({
update: PERMISSIONS.updateEmailTemplates
});
const { isLoading: isLoadingData, data } = useQuery([
"users-permissions",
"email-templates"
], async () => {
const { data: data2 } = await get("/users-permissions/email-templates");
return data2;
}, {
onSuccess() {
notifyStatus(formatMessage({
id: getTrad("Email.template.data.loaded"),
defaultMessage: "Email templates has been loaded"
}));
},
onError(error) {
toggleNotification({
type: "danger",
message: formatAPIError(error)
});
}
});
const isLoading = isLoadingForPermissions || isLoadingData;
const handleToggle = () => {
setIsModalOpen((prev) => !prev);
};
const handleEditClick = (template) => {
setTemplateToEdit(template);
handleToggle();
};
const submitMutation = useMutation((body) => put("/users-permissions/email-templates", {
"email-templates": body
}), {
async onSuccess() {
await queryClient.invalidateQueries([
"users-permissions",
"email-templates"
]);
toggleNotification({
type: "success",
message: formatMessage({
id: "notification.success.saved",
defaultMessage: "Saved"
})
});
trackUsage("didEditEmailTemplates");
handleToggle();
},
onError(error) {
toggleNotification({
type: "danger",
message: formatAPIError(error)
});
},
refetchActive: true
});
const handleSubmit = (body) => {
trackUsage("willEditEmailTemplates");
const editedTemplates = {
...data,
[templateToEdit]: body
};
submitMutation.mutate(editedTemplates);
};
if (isLoading) {
return (0, import_jsx_runtime3.jsx)(Page.Loading, {});
}
return (0, import_jsx_runtime3.jsxs)(Page.Main, {
"aria-busy": submitMutation.isLoading,
children: [
(0, import_jsx_runtime3.jsx)(Page.Title, {
children: formatMessage({
id: "Settings.PageTitle",
defaultMessage: "Settings - {name}"
}, {
name: formatMessage({
id: getTrad("HeaderNav.link.emailTemplates"),
defaultMessage: "Email templates"
})
})
}),
(0, import_jsx_runtime3.jsx)(Layouts.Header, {
title: formatMessage({
id: getTrad("HeaderNav.link.emailTemplates"),
defaultMessage: "Email templates"
})
}),
(0, import_jsx_runtime3.jsxs)(Layouts.Content, {
children: [
(0, import_jsx_runtime3.jsx)(EmailTable, {
onEditClick: handleEditClick,
canUpdate
}),
(0, import_jsx_runtime3.jsx)(EmailForm, {
template: data[templateToEdit],
onToggle: handleToggle,
open: isModalOpen,
onSubmit: handleSubmit
})
]
})
]
});
};
export {
EmailTemplatesPage,
ProtectedEmailTemplatesPage
};
//# sourceMappingURL=EmailTemplates-3V4J4ZNO.js.map