@codee-sh/medusa-plugin-notification-emails 0.0.2 → 0.1.1
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/.medusa/server/emails-previews/contact-form.js +5 -7
- package/.medusa/server/emails-previews/inventory-level.js +23 -0
- package/.medusa/server/emails-previews/order-completed.js +20 -14
- package/.medusa/server/emails-previews/order-placed.js +19 -13
- package/.medusa/server/src/admin/index.js +834 -6778
- package/.medusa/server/src/admin/index.mjs +760 -6704
- package/.medusa/server/src/api/admin/notification-plugin/render-template/route.js +8 -5
- package/.medusa/server/src/hooks/api/orders.js +3 -2
- package/.medusa/server/src/hooks/api/preview.js +5 -4
- package/.medusa/server/src/subscribers/order-completed.js +14 -62
- package/.medusa/server/src/subscribers/order-placed.js +12 -58
- package/.medusa/server/src/templates/emails/base-template/index.js +23 -0
- package/.medusa/server/src/templates/emails/base-template/template.js +25 -0
- package/.medusa/server/src/templates/emails/blocks/components/heading.js +15 -0
- package/.medusa/server/src/templates/emails/blocks/components/product-item.js +14 -0
- package/.medusa/server/src/templates/emails/blocks/components/repeater.js +26 -0
- package/.medusa/server/src/templates/emails/blocks/components/row.js +13 -0
- package/.medusa/server/src/templates/emails/blocks/components/section.js +14 -0
- package/.medusa/server/src/templates/emails/blocks/components/separator.js +13 -0
- package/.medusa/server/src/templates/emails/blocks/components/text.js +15 -0
- package/.medusa/server/src/templates/emails/blocks/index.js +41 -0
- package/.medusa/server/src/templates/{shared/i18n → emails/blocks}/types.js +1 -1
- package/.medusa/server/src/templates/emails/contact-form/config.js +79 -0
- package/.medusa/server/src/templates/emails/contact-form/index.js +6 -17
- package/.medusa/server/src/templates/emails/contact-form/translations/de.json +14 -0
- package/.medusa/server/src/templates/emails/contact-form/translations/en.json +12 -14
- package/.medusa/server/src/templates/emails/contact-form/translations/pl.json +8 -10
- package/.medusa/server/src/templates/emails/index.js +192 -91
- package/.medusa/server/src/templates/emails/inventory-level/config.js +126 -0
- package/.medusa/server/src/templates/emails/inventory-level/index.js +6 -17
- package/.medusa/server/src/templates/emails/order/completed/config.js +221 -0
- package/.medusa/server/src/templates/emails/order/completed/index.js +8 -0
- package/.medusa/server/src/templates/emails/{order-completed → order/completed}/translations/en.json +2 -1
- package/.medusa/server/src/templates/emails/{order-placed → order/completed}/translations/index.js +1 -1
- package/.medusa/server/src/templates/emails/{order-completed → order/completed}/translations/pl.json +2 -1
- package/.medusa/server/src/templates/emails/order/placed/config.js +221 -0
- package/.medusa/server/src/templates/emails/order/placed/index.js +8 -0
- package/.medusa/server/src/templates/emails/{order-placed → order/placed}/translations/en.json +1 -1
- package/.medusa/server/src/templates/emails/{order-completed → order/placed}/translations/index.js +1 -1
- package/.medusa/server/src/templates/emails/{order-placed → order/placed}/translations/pl.json +1 -1
- package/.medusa/server/src/templates/emails/order/updated/config.js +221 -0
- package/.medusa/server/src/templates/emails/order/updated/index.js +7 -0
- package/.medusa/server/src/templates/emails/order/updated/translations/en.json +24 -0
- package/.medusa/server/src/templates/emails/{contact-form → order/updated}/translations/index.js +1 -1
- package/.medusa/server/src/templates/emails/order/updated/translations/pl.json +24 -0
- package/.medusa/server/src/templates/emails/types.js +3 -1
- package/.medusa/server/src/utils/attribute-helpers.js +17 -0
- package/.medusa/server/src/utils/data/modules/index.js +15 -0
- package/.medusa/server/src/utils/data/modules/inventory/index.js +18 -0
- package/.medusa/server/src/utils/data/modules/inventory/inventory.js +108 -0
- package/.medusa/server/src/utils/data/modules/order/index.js +18 -0
- package/.medusa/server/src/utils/data/modules/order/order.js +415 -0
- package/.medusa/server/src/utils/data/modules/product/helpers.js +9 -0
- package/.medusa/server/src/utils/data/modules/product/index.js +18 -0
- package/.medusa/server/src/utils/data/modules/product/product.js +276 -0
- package/.medusa/server/src/utils/data/modules/product-category/index.js +18 -0
- package/.medusa/server/src/utils/data/modules/product-category/product-category.js +75 -0
- package/.medusa/server/src/utils/data/modules/product-tag/index.js +18 -0
- package/.medusa/server/src/utils/data/modules/product-tag/product-tag.js +39 -0
- package/.medusa/server/src/utils/data/modules/product-type/index.js +18 -0
- package/.medusa/server/src/utils/data/modules/product-type/product-type.js +39 -0
- package/.medusa/server/src/utils/data/modules/product-variant/index.js +18 -0
- package/.medusa/server/src/utils/data/modules/product-variant/product-variant.js +139 -0
- package/.medusa/server/src/utils/i18n/i18n.js +176 -0
- package/.medusa/server/src/utils/i18n/index.js +18 -0
- package/.medusa/server/src/utils/index.js +11 -1
- package/.medusa/server/src/utils/is-defined.js +7 -0
- package/.medusa/server/src/utils/is-object.js +7 -0
- package/.medusa/server/src/utils/pick-value-from-object.js +28 -0
- package/.medusa/server/src/utils/transforms/index.js +42 -0
- package/.medusa/server/src/utils/transforms/order-transformer.js +42 -0
- package/.medusa/server/src/workflows/order/get-order-by-id.js +23 -0
- package/.medusa/server/src/workflows/order/index.js +18 -0
- package/.medusa/server/src/workflows/order/steps/get-order-by-id.js +40 -0
- package/.medusa/server/src/workflows/order/steps/index.js +18 -0
- package/package.json +18 -11
- package/.medusa/server/src/templates/emails/contact-form/template.js +0 -28
- package/.medusa/server/src/templates/emails/contact-form/types.js +0 -3
- package/.medusa/server/src/templates/emails/inventory-level/template.js +0 -28
- package/.medusa/server/src/templates/emails/inventory-level/types.js +0 -3
- package/.medusa/server/src/templates/emails/order-completed/index.js +0 -19
- package/.medusa/server/src/templates/emails/order-completed/template.js +0 -36
- package/.medusa/server/src/templates/emails/order-completed/types.js +0 -3
- package/.medusa/server/src/templates/emails/order-placed/index.js +0 -19
- package/.medusa/server/src/templates/emails/order-placed/template.js +0 -36
- package/.medusa/server/src/templates/emails/order-placed/types.js +0 -3
- package/.medusa/server/src/templates/shared/i18n/index.js +0 -6
- package/.medusa/server/src/templates/shared/i18n/languages.js +0 -187
- package/.medusa/server/src/templates/shared/i18n/utils.js +0 -186
|
@@ -2,18 +2,21 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.POST = POST;
|
|
4
4
|
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const theme_1 = require("../../../../templates/shared/theme");
|
|
5
6
|
const emails_1 = require("../../../../templates/emails");
|
|
7
|
+
const transforms_1 = require("../../../../utils/transforms");
|
|
6
8
|
const plugins_1 = require("../../../../utils/plugins");
|
|
7
|
-
const theme_1 = require("../../../../templates/shared/theme");
|
|
8
9
|
async function POST(req, res) {
|
|
9
10
|
const pluginOptions = (0, plugins_1.getPluginOptions)(req.scope, "@codee-sh/medusa-plugin-notification");
|
|
10
11
|
const templateName = req.body?.templateName;
|
|
11
|
-
const
|
|
12
|
+
const context = req.body?.context;
|
|
13
|
+
const contextType = req.body?.contextType;
|
|
12
14
|
const locale = req.body?.locale || "pl";
|
|
13
|
-
if (!templateName || !
|
|
15
|
+
if (!templateName || !context || !locale) {
|
|
14
16
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_ARGUMENT, "Template name, template data and locale are required");
|
|
15
17
|
}
|
|
16
|
-
const
|
|
18
|
+
const transformedTemplateData = (0, transforms_1.transformContext)(contextType, context, locale);
|
|
19
|
+
const { html, text } = await (0, emails_1.renderTemplate)(templateName, transformedTemplateData, {
|
|
17
20
|
locale: locale,
|
|
18
21
|
theme: pluginOptions?.theme || theme_1.defaultTheme,
|
|
19
22
|
customTranslations: pluginOptions?.customTranslations?.[templateName]
|
|
@@ -23,4 +26,4 @@ async function POST(req, res) {
|
|
|
23
26
|
text,
|
|
24
27
|
});
|
|
25
28
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL25vdGlmaWNhdGlvbi1wbHVnaW4vcmVuZGVyLXRlbXBsYXRlL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0Esb0JBZ0NDO0FBdENELHFEQUF1RDtBQUN2RCw4REFBaUU7QUFDakUseURBQXlGO0FBQ3pGLDZEQUErRDtBQUMvRCx1REFBNEQ7QUFFckQsS0FBSyxVQUFVLElBQUksQ0FDeEIsR0FBNEYsRUFDNUYsR0FBbUI7SUFFbkIsTUFBTSxhQUFhLEdBQUcsSUFBQSwwQkFBZ0IsRUFBQyxHQUFHLENBQUMsS0FBSyxFQUFFLHNDQUFzQyxDQUFDLENBQUE7SUFFekYsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxZQUE0QixDQUFBO0lBQzNELE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBdUIsQ0FBQTtJQUNqRCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQTtJQUV6QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUE7SUFFdkMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxtQkFBVyxDQUFDLG1CQUFXLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLHNEQUFzRCxDQUFDLENBQUE7SUFDbkgsQ0FBQztJQUVELE1BQU0sdUJBQXVCLEdBQUcsSUFBQSw2QkFBZ0IsRUFBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBRTlFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFBLHVCQUFjLEVBQ3pDLFlBQVksRUFDWix1QkFBdUIsRUFDdkI7UUFDRSxNQUFNLEVBQUUsTUFBTTtRQUNkLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxJQUFJLG9CQUFZO1FBQzNDLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLFlBQVksQ0FBQztLQUN0RSxDQUNGLENBQUE7SUFFRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNuQixJQUFJO1FBQ0osSUFBSTtLQUNMLENBQUMsQ0FBQTtBQUNKLENBQUMifQ==
|
|
@@ -4,7 +4,7 @@ exports.useOrder = exports.useOrders = void 0;
|
|
|
4
4
|
const react_query_1 = require("@tanstack/react-query");
|
|
5
5
|
const sdk_1 = require("../../admin/lib/sdk");
|
|
6
6
|
const useOrders = (params = {}, options) => {
|
|
7
|
-
const { limit = 100, offset = 0, extraKey = [], enabled, fields = "id,display_id" } = params;
|
|
7
|
+
const { limit = 100, offset = 0, extraKey = [], enabled, fields = "id,display_id", order = "-created_at" } = params;
|
|
8
8
|
const queryKey = [
|
|
9
9
|
"orders",
|
|
10
10
|
...extraKey
|
|
@@ -13,6 +13,7 @@ const useOrders = (params = {}, options) => {
|
|
|
13
13
|
limit,
|
|
14
14
|
offset,
|
|
15
15
|
fields,
|
|
16
|
+
order,
|
|
16
17
|
};
|
|
17
18
|
const { data, ...rest } = (0, react_query_1.useQuery)({
|
|
18
19
|
queryKey,
|
|
@@ -47,4 +48,4 @@ const useOrder = (params, options) => {
|
|
|
47
48
|
return { data, ...rest };
|
|
48
49
|
};
|
|
49
50
|
exports.useOrder = useOrder;
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2hvb2tzL2FwaS9vcmRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsdURBTThCO0FBQzlCLDZDQUF5QztBQWdCbEMsTUFBTSxTQUFTLEdBQUcsQ0FDdkIsU0FBMEIsRUFBRSxFQUM1QixPQUdDLEVBQ0QsRUFBRTtJQUNGLE1BQU0sRUFBRSxLQUFLLEdBQUcsR0FBRyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsUUFBUSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxHQUFHLGVBQWUsRUFBRSxLQUFLLEdBQUcsYUFBYSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRXBILE1BQU0sUUFBUSxHQUFhO1FBQ3pCLFFBQVE7UUFDUixHQUFHLFFBQVE7S0FDWixDQUFDO0lBRUYsTUFBTSxLQUFLLEdBQUc7UUFDWixLQUFLO1FBQ0wsTUFBTTtRQUNOLE1BQU07UUFDTixLQUFLO0tBQ0MsQ0FBQztJQUVULE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxJQUFBLHNCQUFRLEVBS2hDO1FBQ0EsUUFBUTtRQUNSLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTtZQUNsQixPQUFPLE1BQU0sU0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzFDLENBQUM7UUFDRCxPQUFPO1FBQ1AsR0FBSSxPQUFlO0tBQ3BCLENBQUMsQ0FBQztJQUVILE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztBQUMzQixDQUFDLENBQUM7QUFwQ1csUUFBQSxTQUFTLGFBb0NwQjtBQVdLLE1BQU0sUUFBUSxHQUFHLENBQ3RCLE1BQXNCLEVBQ3RCLE9BUUMsRUFDRCxFQUFFO0lBQ0YsTUFBTSxFQUNKLFFBQVEsRUFDUixRQUFRLEdBQUcsRUFBRSxFQUNiLE9BQU8sR0FBRyxLQUFLLEdBQ2hCLEdBQUcsTUFBTSxDQUFBO0lBRVYsTUFBTSxRQUFRLEdBQWE7UUFDekIsT0FBTztRQUNQLFFBQVE7UUFDUixHQUFHLFFBQVE7S0FDWixDQUFBO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLElBQUEsc0JBQVEsRUFLaEM7UUFDQSxRQUFRO1FBQ1IsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2xCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLFNBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3pELE1BQU0sRUFBRSxpMkJBQWkyQjthQUMxMkIsQ0FBQyxDQUFBO1lBRUYsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO1FBQ0QsU0FBUyxFQUFFLENBQUM7UUFDWixPQUFPLEVBQUUsT0FBTztRQUNoQixHQUFJLE9BQWU7S0FDcEIsQ0FBQyxDQUFBO0lBRUYsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFBO0FBQzFCLENBQUMsQ0FBQTtBQTVDWSxRQUFBLFFBQVEsWUE0Q3BCIn0=
|
|
@@ -4,7 +4,7 @@ exports.usePreview = void 0;
|
|
|
4
4
|
const react_query_1 = require("@tanstack/react-query");
|
|
5
5
|
const sdk_1 = require("../../admin/lib/sdk");
|
|
6
6
|
const usePreview = (params, options) => {
|
|
7
|
-
const { templateName,
|
|
7
|
+
const { templateName, context, contextType, locale, extraKey = [], enabled = false, } = params;
|
|
8
8
|
const queryKey = [
|
|
9
9
|
"preview",
|
|
10
10
|
templateName,
|
|
@@ -18,16 +18,17 @@ const usePreview = (params, options) => {
|
|
|
18
18
|
method: "POST",
|
|
19
19
|
body: {
|
|
20
20
|
templateName: templateName,
|
|
21
|
-
|
|
21
|
+
context: context,
|
|
22
|
+
contextType: contextType,
|
|
22
23
|
locale: locale,
|
|
23
24
|
},
|
|
24
25
|
});
|
|
25
26
|
},
|
|
26
27
|
staleTime: 0,
|
|
27
|
-
enabled: enabled && !!templateName && !!
|
|
28
|
+
enabled: enabled && !!templateName && !!context && !!locale,
|
|
28
29
|
...options,
|
|
29
30
|
});
|
|
30
31
|
return { data, ...rest };
|
|
31
32
|
};
|
|
32
33
|
exports.usePreview = usePreview;
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9ob29rcy9hcGkvcHJldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx1REFNOEI7QUFDOUIsNkNBQXlDO0FBZ0JsQyxNQUFNLFVBQVUsR0FBRyxDQUN4QixNQUF3QixFQUN4QixPQVFDLEVBQ0QsRUFBRTtJQUNGLE1BQU0sRUFDSixZQUFZLEVBQ1osT0FBTyxFQUNQLFdBQVcsRUFDWCxNQUFNLEVBQ04sUUFBUSxHQUFHLEVBQUUsRUFDYixPQUFPLEdBQUcsS0FBSyxHQUNoQixHQUFHLE1BQU0sQ0FBQTtJQUVWLE1BQU0sUUFBUSxHQUFhO1FBQ3pCLFNBQVM7UUFDVCxZQUFZO1FBQ1osTUFBTTtRQUNOLEdBQUcsUUFBUTtLQUNaLENBQUE7SUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBQSxzQkFBUSxFQUtoQztRQUNBLFFBQVE7UUFDUixPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtZQUM5QixPQUFPLE1BQU0sU0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsNENBQTRDLEVBQUU7Z0JBQzFFLE1BQU0sRUFBRSxNQUFNO2dCQUNkLElBQUksRUFBRTtvQkFDSixZQUFZLEVBQUUsWUFBWTtvQkFDMUIsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLFdBQVcsRUFBRSxXQUFXO29CQUN4QixNQUFNLEVBQUUsTUFBTTtpQkFDZjthQUNGLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFDRCxTQUFTLEVBQUUsQ0FBQztRQUNaLE9BQU8sRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxNQUFNO1FBQzNELEdBQUksT0FBZTtLQUNwQixDQUFDLENBQUE7SUFFRixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUE7QUFDMUIsQ0FBQyxDQUFBO0FBcERZLFFBQUEsVUFBVSxjQW9EdEIifQ==
|
|
@@ -1,85 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.config = void 0;
|
|
4
|
-
exports.default =
|
|
4
|
+
exports.default = orderPlacedEmailsHandler;
|
|
5
5
|
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
-
const emails_1 = require("
|
|
7
|
-
const types_1 = require("
|
|
8
|
-
const
|
|
9
|
-
const plugins_1 = require("
|
|
10
|
-
|
|
6
|
+
const emails_1 = require("../templates/emails");
|
|
7
|
+
const types_1 = require("../templates/emails/types");
|
|
8
|
+
const transforms_1 = require("../utils/transforms");
|
|
9
|
+
const plugins_1 = require("../utils/plugins");
|
|
10
|
+
const get_order_by_id_1 = require("../workflows/order/get-order-by-id");
|
|
11
|
+
async function orderPlacedEmailsHandler({ event: { data: { id, trigger_type } }, container, }) {
|
|
11
12
|
const pluginOptions = (0, plugins_1.getPluginOptions)(container, "@codee-sh/medusa-plugin-notification-emails");
|
|
12
13
|
const notificationModuleService = container.resolve(utils_1.Modules.NOTIFICATION);
|
|
13
|
-
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
14
14
|
const triggerType = trigger_type || 'system';
|
|
15
15
|
if (!id) {
|
|
16
16
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_ARGUMENT, "Order ID is required");
|
|
17
17
|
}
|
|
18
|
-
const {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"id",
|
|
22
|
-
"email",
|
|
23
|
-
"created_at",
|
|
24
|
-
"updated_at",
|
|
25
|
-
"payment_collections.*",
|
|
26
|
-
"items.*",
|
|
27
|
-
"items.variant.*",
|
|
28
|
-
"items.variant.product.*",
|
|
29
|
-
"currency_code",
|
|
30
|
-
"display_id",
|
|
31
|
-
"sales_channel.name",
|
|
32
|
-
"sales_channel.description",
|
|
33
|
-
"shipping_address.*",
|
|
34
|
-
"billing_address.*",
|
|
35
|
-
"summary.*",
|
|
36
|
-
"tax_total",
|
|
37
|
-
"discount_total",
|
|
38
|
-
],
|
|
39
|
-
filters: {
|
|
40
|
-
id: id,
|
|
18
|
+
const { result: order } = await (0, get_order_by_id_1.getOrderByIdWorkflow)(container).run({
|
|
19
|
+
input: {
|
|
20
|
+
order_id: id,
|
|
41
21
|
},
|
|
42
22
|
});
|
|
43
23
|
if (!order) {
|
|
44
24
|
return;
|
|
45
25
|
}
|
|
46
|
-
|
|
47
|
-
const
|
|
48
|
-
const templateData = {
|
|
49
|
-
sales_channel: {
|
|
50
|
-
name: order?.sales_channel?.name,
|
|
51
|
-
description: order?.sales_channel?.description,
|
|
52
|
-
},
|
|
53
|
-
orderNumber: `#${order.display_id}`,
|
|
54
|
-
customerName: order.email,
|
|
55
|
-
customerEmail: order.email,
|
|
56
|
-
orderDate: (0, utils_2.formatDate)({ date: order.created_at, includeTime: true, localeCode: "pl" }),
|
|
57
|
-
completedDate: (0, utils_2.formatDate)({ date: order.updated_at || order.created_at, includeTime: true, localeCode: "pl" }),
|
|
58
|
-
totalAmount: order.items.reduce((acc, item) => acc + (item.variant?.prices?.[0]?.amount || 0) * item.quantity, 0),
|
|
59
|
-
currency: order.currency_code,
|
|
60
|
-
items: order.items.map((item) => ({
|
|
61
|
-
thumbnail: item.thumbnail,
|
|
62
|
-
title: item.title,
|
|
63
|
-
quantity: item.quantity,
|
|
64
|
-
price: (0, utils_2.getLocaleAmount)(item.unit_price, order.currency_code),
|
|
65
|
-
})),
|
|
66
|
-
shippingAddress: shippingAddressText,
|
|
67
|
-
billingAddress: billingAddressText,
|
|
68
|
-
summary: {
|
|
69
|
-
total: (0, utils_2.getLocaleAmount)(order.summary.original_order_total, order.currency_code),
|
|
70
|
-
paid_total: (0, utils_2.getLocaleAmount)((0, utils_2.getTotalCaptured)(order.payment_collections || []), order.currency_code),
|
|
71
|
-
tax_total: (0, utils_2.getLocaleAmount)(order.tax_total, order.currency_code),
|
|
72
|
-
discount_total: (0, utils_2.getLocaleAmount)(order.discount_total, order.currency_code),
|
|
73
|
-
currency_code: order.currency_code,
|
|
74
|
-
}
|
|
75
|
-
};
|
|
26
|
+
// Transform raw order data to email template format
|
|
27
|
+
const templateData = (0, transforms_1.transformContext)("order", order, "pl");
|
|
76
28
|
const templateName = types_1.TEMPLATES_NAMES.ORDER_COMPLETED;
|
|
77
29
|
const { html, text, subject } = await (0, emails_1.renderTemplate)(templateName, templateData, {
|
|
78
30
|
locale: "pl",
|
|
79
31
|
customTranslations: pluginOptions?.customTranslations?.[templateName]
|
|
80
32
|
});
|
|
81
33
|
const result = await notificationModuleService.createNotifications({
|
|
82
|
-
to: order.email,
|
|
34
|
+
to: order.order.customer.email,
|
|
83
35
|
channel: "email",
|
|
84
36
|
template: templateName,
|
|
85
37
|
trigger_type: triggerType,
|
|
@@ -96,4 +48,4 @@ async function orderCompletedEmailsHandler({ event: { data: { id, trigger_type }
|
|
|
96
48
|
exports.config = {
|
|
97
49
|
event: "order.completed",
|
|
98
50
|
};
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItY29tcGxldGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL29yZGVyLWNvbXBsZXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFXQSwyQ0FxREM7QUE1REQscURBQWdFO0FBQ2hFLGdEQUFvRDtBQUNwRCxxREFBMkQ7QUFDM0Qsb0RBQXNEO0FBQ3RELDhDQUFtRDtBQUNuRCx3RUFBeUU7QUFFMUQsS0FBSyxVQUFVLHdCQUF3QixDQUFDLEVBQ3JELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUNyQyxTQUFTLEdBQzRDO0lBQ3JELE1BQU0sYUFBYSxHQUFHLElBQUEsMEJBQWdCLEVBQUMsU0FBUyxFQUFFLDZDQUE2QyxDQUFDLENBQUE7SUFFaEcsTUFBTSx5QkFBeUIsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNqRCxlQUFPLENBQUMsWUFBWSxDQUNyQixDQUFBO0lBQ0QsTUFBTSxXQUFXLEdBQUcsWUFBWSxJQUFJLFFBQVEsQ0FBQTtJQUU1QyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDUixNQUFNLElBQUksbUJBQVcsQ0FBQyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFBO0lBQ25GLENBQUM7SUFFRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBQSxzQ0FBb0IsRUFBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDbEUsS0FBSyxFQUFFO1lBQ0wsUUFBUSxFQUFFLEVBQUU7U0FDYjtLQUNGLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU07SUFDUixDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELE1BQU0sWUFBWSxHQUFHLElBQUEsNkJBQWdCLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUUzRCxNQUFNLFlBQVksR0FBRyx1QkFBZSxDQUFDLGVBQWUsQ0FBQTtJQUVwRCxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLElBQUEsdUJBQWMsRUFDbEQsWUFBWSxFQUNaLFlBQVksRUFDWjtRQUNFLE1BQU0sRUFBRSxJQUFJO1FBQ1osa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLENBQUMsWUFBWSxDQUFDO0tBQ3RFLENBQ0YsQ0FBQTtJQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0seUJBQXlCLENBQUMsbUJBQW1CLENBQUM7UUFDakUsRUFBRSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUs7UUFDOUIsT0FBTyxFQUFFLE9BQU87UUFDaEIsUUFBUSxFQUFFLFlBQVk7UUFDdEIsWUFBWSxFQUFFLFdBQVc7UUFDekIsV0FBVyxFQUFFLEVBQUU7UUFDZixhQUFhLEVBQUUsT0FBTztRQUN0QixJQUFJLEVBQUUsWUFBWTtRQUNsQixPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsT0FBTztZQUNoQixJQUFJO1lBQ0osSUFBSTtTQUNMO0tBQ0YsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVZLFFBQUEsTUFBTSxHQUFxQjtJQUN0QyxLQUFLLEVBQUUsaUJBQWlCO0NBQ3pCLENBQUEifQ==
|
|
@@ -3,81 +3,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.config = void 0;
|
|
4
4
|
exports.default = orderPlacedEmailsHandler;
|
|
5
5
|
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
-
const emails_1 = require("
|
|
7
|
-
const types_1 = require("
|
|
8
|
-
const
|
|
9
|
-
const plugins_1 = require("
|
|
6
|
+
const emails_1 = require("../templates/emails");
|
|
7
|
+
const types_1 = require("../templates/emails/types");
|
|
8
|
+
const transforms_1 = require("../utils/transforms");
|
|
9
|
+
const plugins_1 = require("../utils/plugins");
|
|
10
|
+
const get_order_by_id_1 = require("../workflows/order/get-order-by-id");
|
|
10
11
|
async function orderPlacedEmailsHandler({ event: { data: { id, trigger_type } }, container, }) {
|
|
11
12
|
const pluginOptions = (0, plugins_1.getPluginOptions)(container, "@codee-sh/medusa-plugin-notification-emails");
|
|
12
13
|
const notificationModuleService = container.resolve(utils_1.Modules.NOTIFICATION);
|
|
13
|
-
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
14
14
|
const triggerType = trigger_type || 'system';
|
|
15
15
|
if (!id) {
|
|
16
16
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_ARGUMENT, "Order ID is required");
|
|
17
17
|
}
|
|
18
|
-
const {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"id",
|
|
22
|
-
"email",
|
|
23
|
-
"created_at",
|
|
24
|
-
"payment_collections.*",
|
|
25
|
-
"items.*",
|
|
26
|
-
"items.variant.*",
|
|
27
|
-
"items.variant.product.*",
|
|
28
|
-
"currency_code",
|
|
29
|
-
"display_id",
|
|
30
|
-
"sales_channel.name",
|
|
31
|
-
"sales_channel.description",
|
|
32
|
-
"shipping_address.*",
|
|
33
|
-
"billing_address.*",
|
|
34
|
-
"summary.*",
|
|
35
|
-
"tax_total",
|
|
36
|
-
"discount_total",
|
|
37
|
-
],
|
|
38
|
-
filters: {
|
|
39
|
-
id: id,
|
|
18
|
+
const { result: order } = await (0, get_order_by_id_1.getOrderByIdWorkflow)(container).run({
|
|
19
|
+
input: {
|
|
20
|
+
order_id: id,
|
|
40
21
|
},
|
|
41
22
|
});
|
|
42
23
|
if (!order) {
|
|
43
24
|
return;
|
|
44
25
|
}
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
const templateData = {
|
|
48
|
-
sales_channel: {
|
|
49
|
-
name: order?.sales_channel?.name,
|
|
50
|
-
description: order?.sales_channel?.description,
|
|
51
|
-
},
|
|
52
|
-
orderNumber: `#${order.display_id}`,
|
|
53
|
-
customerName: order.email,
|
|
54
|
-
customerEmail: order.email,
|
|
55
|
-
orderDate: (0, utils_2.formatDate)({ date: order.created_at, includeTime: true, localeCode: "pl" }),
|
|
56
|
-
totalAmount: order.items.reduce((acc, item) => acc + (item.variant?.prices?.[0]?.amount || 0) * item.quantity, 0),
|
|
57
|
-
currency: order.currency_code,
|
|
58
|
-
items: order.items.map((item) => ({
|
|
59
|
-
thumbnail: item.thumbnail,
|
|
60
|
-
title: item.title,
|
|
61
|
-
quantity: item.quantity,
|
|
62
|
-
price: (0, utils_2.getLocaleAmount)(item.unit_price, order.currency_code),
|
|
63
|
-
})),
|
|
64
|
-
shippingAddress: shippingAddressText,
|
|
65
|
-
billingAddress: billingAddressText,
|
|
66
|
-
summary: {
|
|
67
|
-
total: (0, utils_2.getLocaleAmount)(order.summary.original_order_total, order.currency_code),
|
|
68
|
-
paid_total: (0, utils_2.getLocaleAmount)((0, utils_2.getTotalCaptured)(order.payment_collections || []), order.currency_code),
|
|
69
|
-
tax_total: (0, utils_2.getLocaleAmount)(order.tax_total, order.currency_code),
|
|
70
|
-
discount_total: (0, utils_2.getLocaleAmount)(order.discount_total, order.currency_code),
|
|
71
|
-
currency_code: order.currency_code,
|
|
72
|
-
}
|
|
73
|
-
};
|
|
26
|
+
// Transform raw order data to email template format
|
|
27
|
+
const templateData = (0, transforms_1.transformContext)("order", order, "pl");
|
|
74
28
|
const templateName = types_1.TEMPLATES_NAMES.ORDER_PLACED;
|
|
75
29
|
const { html, text, subject } = await (0, emails_1.renderTemplate)(templateName, templateData, {
|
|
76
30
|
locale: "pl",
|
|
77
31
|
customTranslations: pluginOptions?.customTranslations?.[templateName]
|
|
78
32
|
});
|
|
79
33
|
const result = await notificationModuleService.createNotifications({
|
|
80
|
-
to: order.email,
|
|
34
|
+
to: order.order.customer.email,
|
|
81
35
|
channel: "email",
|
|
82
36
|
template: templateName,
|
|
83
37
|
trigger_type: triggerType,
|
|
@@ -94,4 +48,4 @@ async function orderPlacedEmailsHandler({ event: { data: { id, trigger_type } },
|
|
|
94
48
|
exports.config = {
|
|
95
49
|
event: "order.placed",
|
|
96
50
|
};
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcGxhY2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL29yZGVyLXBsYWNlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFXQSwyQ0FxREM7QUE1REQscURBQWdFO0FBQ2hFLGdEQUFvRDtBQUNwRCxxREFBMkQ7QUFDM0Qsb0RBQXNEO0FBQ3RELDhDQUFtRDtBQUNuRCx3RUFBeUU7QUFFMUQsS0FBSyxVQUFVLHdCQUF3QixDQUFDLEVBQ3JELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUNyQyxTQUFTLEdBQzRDO0lBQ3JELE1BQU0sYUFBYSxHQUFHLElBQUEsMEJBQWdCLEVBQUMsU0FBUyxFQUFFLDZDQUE2QyxDQUFDLENBQUE7SUFFaEcsTUFBTSx5QkFBeUIsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNqRCxlQUFPLENBQUMsWUFBWSxDQUNyQixDQUFBO0lBQ0QsTUFBTSxXQUFXLEdBQUcsWUFBWSxJQUFJLFFBQVEsQ0FBQTtJQUU1QyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDUixNQUFNLElBQUksbUJBQVcsQ0FBQyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFBO0lBQ25GLENBQUM7SUFFRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBQSxzQ0FBb0IsRUFBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDbEUsS0FBSyxFQUFFO1lBQ0wsUUFBUSxFQUFFLEVBQUU7U0FDYjtLQUNGLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU07SUFDUixDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELE1BQU0sWUFBWSxHQUFHLElBQUEsNkJBQWdCLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUUzRCxNQUFNLFlBQVksR0FBRyx1QkFBZSxDQUFDLFlBQVksQ0FBQTtJQUVqRCxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLElBQUEsdUJBQWMsRUFDbEQsWUFBWSxFQUNaLFlBQVksRUFDWjtRQUNFLE1BQU0sRUFBRSxJQUFJO1FBQ1osa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLENBQUMsWUFBWSxDQUFDO0tBQ3RFLENBQ0YsQ0FBQTtJQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0seUJBQXlCLENBQUMsbUJBQW1CLENBQUM7UUFDakUsRUFBRSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUs7UUFDOUIsT0FBTyxFQUFFLE9BQU87UUFDaEIsUUFBUSxFQUFFLFlBQVk7UUFDdEIsWUFBWSxFQUFFLFdBQVc7UUFDekIsV0FBVyxFQUFFLEVBQUU7UUFDZixhQUFhLEVBQUUsT0FBTztRQUN0QixJQUFJLEVBQUUsWUFBWTtRQUNsQixPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsT0FBTztZQUNoQixJQUFJO1lBQ0osSUFBSTtTQUNMO0tBQ0YsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVZLFFBQUEsTUFBTSxHQUFxQjtJQUN0QyxLQUFLLEVBQUUsY0FBYztDQUN0QixDQUFBIn0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getBaseTemplateHtml = getBaseTemplateHtml;
|
|
4
|
+
exports.getBaseTemplateText = getBaseTemplateText;
|
|
5
|
+
exports.getBaseTemplateReactNode = getBaseTemplateReactNode;
|
|
6
|
+
const template_1 = require("./template");
|
|
7
|
+
/**
|
|
8
|
+
* Generates HTML for base template
|
|
9
|
+
*
|
|
10
|
+
* @param data - Base template data
|
|
11
|
+
* @param options - Optional theme and locale configuration
|
|
12
|
+
* @returns HTML string ready to send
|
|
13
|
+
*/
|
|
14
|
+
async function getBaseTemplateHtml(data, options) {
|
|
15
|
+
return await (0, template_1.renderHTML)(data, options);
|
|
16
|
+
}
|
|
17
|
+
async function getBaseTemplateText(data, options) {
|
|
18
|
+
return await (0, template_1.renderText)(data, options);
|
|
19
|
+
}
|
|
20
|
+
function getBaseTemplateReactNode(data, options) {
|
|
21
|
+
return (0, template_1.renderHTMLReact)(data, options);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9iYXNlLXRlbXBsYXRlL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLGtEQUtDO0FBRUQsa0RBS0M7QUFFRCw0REFLQztBQTVCRCx5Q0FBcUU7QUFFckU7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLG1CQUFtQixDQUN2QyxJQUFTLEVBQ1QsT0FBNEI7SUFFNUIsT0FBTyxNQUFNLElBQUEscUJBQVUsRUFBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVNLEtBQUssVUFBVSxtQkFBbUIsQ0FDdkMsSUFBUyxFQUNULE9BQTRCO0lBRTVCLE9BQU8sTUFBTSxJQUFBLHFCQUFVLEVBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxTQUFnQix3QkFBd0IsQ0FDdEMsSUFBUyxFQUNULE9BQTRCO0lBRTVCLE9BQU8sSUFBQSwwQkFBZSxFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4QyxDQUFDIn0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderHTMLReact = renderHTMLReact;
|
|
4
|
+
exports.renderHTML = renderHTML;
|
|
5
|
+
exports.renderText = renderText;
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
const components_1 = require("@react-email/components");
|
|
8
|
+
const render_1 = require("@react-email/render");
|
|
9
|
+
const blocks_1 = require("../blocks");
|
|
10
|
+
function renderHTMLReact(data, options) {
|
|
11
|
+
const theme = options.theme || {};
|
|
12
|
+
const blocks = options.blocks || [];
|
|
13
|
+
return ((0, jsx_runtime_1.jsxs)(components_1.Html, { children: [(0, jsx_runtime_1.jsx)(components_1.Head, {}), (0, jsx_runtime_1.jsx)(components_1.Tailwind, { config: {
|
|
14
|
+
presets: [components_1.pixelBasedPreset],
|
|
15
|
+
theme: theme
|
|
16
|
+
}, children: (0, jsx_runtime_1.jsx)(components_1.Body, { className: "mx-auto my-auto px-4 font-arial font-normal text-base bg-ui-bg text-ui-text", children: (0, jsx_runtime_1.jsx)(components_1.Container, { className: "py-4", children: (0, jsx_runtime_1.jsx)(blocks_1.BlockRenderer, { blocks: blocks, data: data }) }) }) })] }));
|
|
17
|
+
}
|
|
18
|
+
async function renderHTML(data, options) {
|
|
19
|
+
return await (0, render_1.pretty)(await (0, render_1.render)(renderHTMLReact(data, options)));
|
|
20
|
+
}
|
|
21
|
+
async function renderText(data, options) {
|
|
22
|
+
const html = await (0, render_1.render)(renderHTMLReact(data, options));
|
|
23
|
+
return (0, render_1.toPlainText)(html);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9iYXNlLXRlbXBsYXRlL3RlbXBsYXRlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLDBDQXdCQztBQUVELGdDQUtDO0FBRUQsZ0NBTUM7O0FBNUNELHdEQUEySTtBQUMzSSxnREFBa0U7QUFFbEUsc0NBQTBDO0FBRTFDLFNBQWdCLGVBQWUsQ0FDN0IsSUFBUyxFQUNULE9BQTRCO0lBRTVCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ2xDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBRXBDLE9BQU8sQ0FDTCx3QkFBQyxpQkFBSSxlQUNILHVCQUFDLGlCQUFJLEtBQUcsRUFDUix1QkFBQyxxQkFBUSxJQUNQLE1BQU0sRUFBRTtvQkFDTixPQUFPLEVBQUUsQ0FBQyw2QkFBZ0IsQ0FBQztvQkFDM0IsS0FBSyxFQUFFLEtBQUs7aUJBQ2IsWUFFRCx1QkFBQyxpQkFBSSxJQUFDLFNBQVMsRUFBQyw2RUFBNkUsWUFDM0YsdUJBQUMsc0JBQVMsSUFBQyxTQUFTLEVBQUMsTUFBTSxZQUN6Qix1QkFBQyxzQkFBYSxJQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxHQUNuQyxHQUNQLEdBQ0UsSUFDTixDQUNSLENBQUM7QUFDSixDQUFDO0FBRU0sS0FBSyxVQUFVLFVBQVUsQ0FDOUIsSUFBUyxFQUNULE9BQTRCO0lBRTVCLE9BQU8sTUFBTSxJQUFBLGVBQU0sRUFBQyxNQUFNLElBQUEsZUFBTSxFQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BFLENBQUM7QUFFTSxLQUFLLFVBQVUsVUFBVSxDQUM5QixJQUFTLEVBQ1QsT0FBNEI7SUFFNUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLGVBQU0sRUFBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDMUQsT0FBTyxJQUFBLG9CQUFXLEVBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0IsQ0FBQyJ9
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HeadingBlock = HeadingBlock;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const components_1 = require("@react-email/components");
|
|
6
|
+
const ui_1 = require("@medusajs/ui");
|
|
7
|
+
/**
|
|
8
|
+
* HeadingBlock - Heading block component
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
function HeadingBlock({ id, props, data, isLastBlock, isFirstBlock, }) {
|
|
12
|
+
const className = (0, ui_1.clx)("text-xl", "font-bold", isLastBlock ? "mb-0" : "mb-4", isFirstBlock ? "mt-0" : "mt-4");
|
|
13
|
+
return ((0, jsx_runtime_1.jsx)(components_1.Heading, { className: className, children: props.value }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy90ZW1wbGF0ZXMvZW1haWxzL2Jsb2Nrcy9jb21wb25lbnRzL2hlYWRpbmcudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0Esb0NBeUJDOztBQWhDRCx3REFBa0Q7QUFDbEQscUNBQW1DO0FBRW5DOzs7R0FHRztBQUNILFNBQWdCLFlBQVksQ0FBQyxFQUMzQixFQUFFLEVBQ0YsS0FBSyxFQUNMLElBQUksRUFDSixXQUFXLEVBQ1gsWUFBWSxHQU9iO0lBQ0MsTUFBTSxTQUFTLEdBQUcsSUFBQSxRQUFHLEVBQ25CLFNBQVMsRUFDVCxXQUFXLEVBQ1gsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFDN0IsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDL0IsQ0FBQztJQUVGLE9BQU8sQ0FDTCx1QkFBQyxvQkFBTyxJQUFDLFNBQVMsRUFBRSxTQUFTLFlBQzFCLEtBQUssQ0FBQyxLQUFLLEdBQ0osQ0FDWCxDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProductItemBlock = ProductItemBlock;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const components_1 = require("@react-email/components");
|
|
6
|
+
/**
|
|
7
|
+
* ProductItemBlock - Product item block component
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
function ProductItemBlock({ props, data, isLastBlock, isFirstBlock, }) {
|
|
11
|
+
return ((0, jsx_runtime_1.jsxs)(components_1.Row, { children: [props.thumbnail &&
|
|
12
|
+
(0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "w-[50px]", children: (0, jsx_runtime_1.jsx)("img", { src: props.thumbnail, width: 50, height: 50 }) }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "w-[12px]" })] }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-left", children: typeof props.value === "string" ? (0, jsx_runtime_1.jsx)("span", { dangerouslySetInnerHTML: { __html: props.value } }) : props.value })] }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3RlbXBsYXRlcy9lbWFpbHMvYmxvY2tzL2NvbXBvbmVudHMvcHJvZHVjdC1pdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLDRDQW9CQzs7QUExQkQsd0RBQTREO0FBRTVEOzs7R0FHRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLEVBQy9CLEtBQUssRUFDTCxJQUFJLEVBQ0osV0FBVyxFQUNYLFlBQVksR0FDd0U7SUFDcEYsT0FBTyxDQUNMLHdCQUFDLGdCQUFHLGVBQ0QsS0FBSyxDQUFDLFNBQVM7Z0JBQ2QsNkRBQ0UsdUJBQUMsbUJBQU0sSUFBQyxTQUFTLEVBQUMsVUFBVSxZQUFDLGdDQUFLLEdBQUcsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBSSxHQUFTLEVBQzFGLHVCQUFDLG1CQUFNLElBQUMsU0FBUyxFQUFDLFVBQVUsR0FBVSxJQUNyQyxFQUdMLHVCQUFDLG1CQUFNLElBQUMsU0FBUyxFQUFDLFdBQVcsWUFDMUIsT0FBTyxLQUFLLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsaUNBQU0sdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQ3BHLElBQ0wsQ0FDUCxDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RepeaterBlock = RepeaterBlock;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const index_1 = require("../index");
|
|
6
|
+
/**
|
|
7
|
+
* RepeaterBlock - Iterates over an array and renders blocks for each item
|
|
8
|
+
*
|
|
9
|
+
* Example:
|
|
10
|
+
* {
|
|
11
|
+
* type: "repeater",
|
|
12
|
+
* props: {
|
|
13
|
+
* arrayPath: "items",
|
|
14
|
+
* itemBlocks: [
|
|
15
|
+
* { type: "text", props: { text: "{{label}}" } }
|
|
16
|
+
* ],
|
|
17
|
+
* separator: { type: "separator" } // optional
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
*/
|
|
21
|
+
function RepeaterBlock({ id, props, data, }) {
|
|
22
|
+
// Retrieve array from data
|
|
23
|
+
const array = props.itemBlocks;
|
|
24
|
+
return (0, jsx_runtime_1.jsx)(index_1.BlockRenderer, { blocks: array, data: data });
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9ibG9ja3MvY29tcG9uZW50cy9yZXBlYXRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpQkEsc0NBaUJDOztBQWxDRCxvQ0FBeUM7QUFFekM7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxTQUFnQixhQUFhLENBQUMsRUFDNUIsRUFBRSxFQUNGLEtBQUssRUFDTCxJQUFJLEdBU0w7SUFDQywyQkFBMkI7SUFDM0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUUvQixPQUFPLHVCQUFDLHFCQUFhLElBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUE7QUFDckQsQ0FBQyJ9
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RowBlock = RowBlock;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const components_1 = require("@react-email/components");
|
|
6
|
+
/**
|
|
7
|
+
* RowBlock - Row block component
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
function RowBlock({ id, props, data, isLastBlock, isFirstBlock, }) {
|
|
11
|
+
return ((0, jsx_runtime_1.jsxs)(components_1.Row, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { className: "font-semibold", children: props.label }), (0, jsx_runtime_1.jsx)(components_1.Column, { className: "text-right", children: typeof props.value === "string" ? (0, jsx_runtime_1.jsx)("span", { dangerouslySetInnerHTML: { __html: props.value } }) : props.value })] }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3RlbXBsYXRlcy9lbWFpbHMvYmxvY2tzL2NvbXBvbmVudHMvcm93LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLDRCQXFCQzs7QUEzQkQsd0RBQXNEO0FBRXREOzs7R0FHRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxFQUN2QixFQUFFLEVBQ0YsS0FBSyxFQUNMLElBQUksRUFDSixXQUFXLEVBQ1gsWUFBWSxHQU9iO0lBQ0MsT0FBTyxDQUNMLHdCQUFDLGdCQUFHLGVBQ0YsdUJBQUMsbUJBQU0sSUFBQyxTQUFTLEVBQUMsZUFBZSxZQUFFLEtBQUssQ0FBQyxLQUFLLEdBQVUsRUFDeEQsdUJBQUMsbUJBQU0sSUFBQyxTQUFTLEVBQUMsWUFBWSxZQUMzQixPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxpQ0FBTSx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssR0FDcEcsSUFDTCxDQUNQLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SectionBlock = SectionBlock;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const components_1 = require("@react-email/components");
|
|
6
|
+
const index_1 = require("../index");
|
|
7
|
+
/**
|
|
8
|
+
* SectionBlock - Container for other blocks with optional title and styles
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
function SectionBlock({ id, props, data, isLastBlock, isFirstBlock, }) {
|
|
12
|
+
return ((0, jsx_runtime_1.jsx)(components_1.Section, { className: "m-0 p-0", children: (0, jsx_runtime_1.jsx)(index_1.BlockRenderer, { blocks: props.blocks || [], data: data }) }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy90ZW1wbGF0ZXMvZW1haWxzL2Jsb2Nrcy9jb21wb25lbnRzL3NlY3Rpb24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0Esb0NBWUM7O0FBbkJELHdEQUFrRDtBQUNsRCxvQ0FBeUM7QUFFekM7OztHQUdHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLEVBQzNCLEVBQUUsRUFDRixLQUFLLEVBQ0wsSUFBSSxFQUNKLFdBQVcsRUFDWCxZQUFZLEdBQ3lFO0lBQ3JGLE9BQU8sQ0FDTCx1QkFBQyxvQkFBTyxJQUFDLFNBQVMsRUFBQyxTQUFTLFlBQzFCLHVCQUFDLHFCQUFhLElBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksR0FDakQsQ0FDWCxDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SeparatorBlock = SeparatorBlock;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const components_1 = require("@react-email/components");
|
|
6
|
+
/**
|
|
7
|
+
* SeparatorBlock - Separator block component
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
function SeparatorBlock({ id, props, isLastBlock, isFirstBlock, }) {
|
|
11
|
+
return ((0, jsx_runtime_1.jsx)(components_1.Hr, { className: "my-4 border-ui-border" }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwYXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3RlbXBsYXRlcy9lbWFpbHMvYmxvY2tzL2NvbXBvbmVudHMvc2VwYXJhdG9yLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLHdDQWNDOztBQXBCRCx3REFBNkM7QUFFN0M7OztHQUdHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLEVBQzdCLEVBQUUsRUFDRixLQUFLLEVBQ0wsV0FBVyxFQUNYLFlBQVksR0FNYjtJQUNDLE9BQU8sQ0FDTCx1QkFBQyxlQUFFLElBQUMsU0FBUyxFQUFDLHVCQUF1QixHQUFHLENBQ3pDLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TextBlock = TextBlock;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const components_1 = require("@react-email/components");
|
|
6
|
+
const ui_1 = require("@medusajs/ui");
|
|
7
|
+
/**
|
|
8
|
+
* TextBlock - Text block component
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
function TextBlock({ id, props, isLastBlock, isFirstBlock, }) {
|
|
12
|
+
const className = (0, ui_1.clx)(isLastBlock ? "mb-0" : "mb-4", isFirstBlock && "mt-0");
|
|
13
|
+
return ((0, jsx_runtime_1.jsx)(components_1.Text, { className: className, children: typeof props.value === "string" ? (0, jsx_runtime_1.jsx)("span", { dangerouslySetInnerHTML: { __html: props.value } }) : props.value }, id));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy90ZW1wbGF0ZXMvZW1haWxzL2Jsb2Nrcy9jb21wb25lbnRzL3RleHQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0EsOEJBZ0JDOztBQXZCRCx3REFBK0M7QUFDL0MscUNBQW1DO0FBRW5DOzs7R0FHRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxFQUN4QixFQUFFLEVBQ0YsS0FBSyxFQUNMLFdBQVcsRUFDWCxZQUFZLEdBQzREO0lBQ3hFLE1BQU0sU0FBUyxHQUFHLElBQUEsUUFBRyxFQUNuQixXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUM3QixZQUFZLElBQUksTUFBTSxDQUN2QixDQUFDO0lBRUYsT0FBTyxDQUNMLHVCQUFDLGlCQUFJLElBQVUsU0FBUyxFQUFFLFNBQVMsWUFDaEMsT0FBTyxLQUFLLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsaUNBQU0sdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBRGxHLEVBQUUsQ0FFTixDQUNSLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BlockRenderer = BlockRenderer;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const section_1 = require("./components/section");
|
|
6
|
+
const text_1 = require("./components/text");
|
|
7
|
+
const repeater_1 = require("./components/repeater");
|
|
8
|
+
const heading_1 = require("./components/heading");
|
|
9
|
+
const row_1 = require("./components/row");
|
|
10
|
+
const separator_1 = require("./components/separator");
|
|
11
|
+
const product_item_1 = require("./components/product-item");
|
|
12
|
+
function BlockRenderer({ blocks, data }) {
|
|
13
|
+
return blocks.map((block, index) => {
|
|
14
|
+
const blockKey = block.id || `block-${index}`;
|
|
15
|
+
const isLastBlock = index === blocks.length - 1;
|
|
16
|
+
const isFirstBlock = index === 0;
|
|
17
|
+
switch (block.type) {
|
|
18
|
+
case "section":
|
|
19
|
+
return ((0, jsx_runtime_1.jsx)(section_1.SectionBlock, { id: blockKey, props: block.props, data: data, isLastBlock: isLastBlock, isFirstBlock: isFirstBlock }, blockKey));
|
|
20
|
+
case "row":
|
|
21
|
+
return ((0, jsx_runtime_1.jsx)(row_1.RowBlock, { id: blockKey, props: block.props, data: data, isLastBlock: isLastBlock, isFirstBlock: isFirstBlock }, blockKey));
|
|
22
|
+
case "product-item":
|
|
23
|
+
return ((0, jsx_runtime_1.jsx)(product_item_1.ProductItemBlock, { id: blockKey, props: block.props, data: data, isLastBlock: isLastBlock, isFirstBlock: isFirstBlock }, blockKey));
|
|
24
|
+
case "heading":
|
|
25
|
+
return ((0, jsx_runtime_1.jsx)(heading_1.HeadingBlock, { id: blockKey, props: block.props, data: data, isLastBlock: isLastBlock, isFirstBlock: isFirstBlock }, blockKey));
|
|
26
|
+
case "text":
|
|
27
|
+
return ((0, jsx_runtime_1.jsx)(text_1.TextBlock, { id: blockKey, props: block.props, isLastBlock: isLastBlock, isFirstBlock: isFirstBlock }, blockKey));
|
|
28
|
+
case "separator":
|
|
29
|
+
return ((0, jsx_runtime_1.jsx)(separator_1.SeparatorBlock, { id: blockKey, props: block.props, isLastBlock: isLastBlock, isFirstBlock: isFirstBlock }, blockKey));
|
|
30
|
+
case "repeater":
|
|
31
|
+
if (!data) {
|
|
32
|
+
console.warn("RepeaterBlock requires data prop");
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
return ((0, jsx_runtime_1.jsx)(repeater_1.RepeaterBlock, { id: blockKey, props: block.props, data: data }, blockKey));
|
|
36
|
+
default:
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9ibG9ja3MvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsc0NBd0ZDOztBQWhHRCxrREFBb0Q7QUFDcEQsNENBQThDO0FBQzlDLG9EQUFzRDtBQUN0RCxrREFBb0Q7QUFDcEQsMENBQTRDO0FBQzVDLHNEQUF3RDtBQUN4RCw0REFBNkQ7QUFFN0QsU0FBZ0IsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBaUM7SUFDM0UsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLElBQUksU0FBUyxLQUFLLEVBQUUsQ0FBQztRQUM5QyxNQUFNLFdBQVcsR0FBRyxLQUFLLEtBQUssTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEQsTUFBTSxZQUFZLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQztRQUVqQyxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxDQUNMLHVCQUFDLHNCQUFZLElBRVgsRUFBRSxFQUFFLFFBQVEsRUFDWixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFDbEIsSUFBSSxFQUFFLElBQUksRUFDVixXQUFXLEVBQUUsV0FBVyxFQUN4QixZQUFZLEVBQUUsWUFBWSxJQUxyQixRQUFRLENBTWIsQ0FDSCxDQUFDO1lBQ0osS0FBSyxLQUFLO2dCQUNSLE9BQU8sQ0FDTCx1QkFBQyxjQUFRLElBRVAsRUFBRSxFQUFFLFFBQVEsRUFDWixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFDbEIsSUFBSSxFQUFFLElBQUksRUFDVixXQUFXLEVBQUUsV0FBVyxFQUN4QixZQUFZLEVBQUUsWUFBWSxJQUxyQixRQUFRLENBTWIsQ0FDSCxDQUFDO1lBQ0osS0FBSyxjQUFjO2dCQUNqQixPQUFPLENBQ0wsdUJBQUMsK0JBQWdCLElBRWYsRUFBRSxFQUFFLFFBQVEsRUFDWixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFDbEIsSUFBSSxFQUFFLElBQUksRUFDVixXQUFXLEVBQUUsV0FBVyxFQUN4QixZQUFZLEVBQUUsWUFBWSxJQUxyQixRQUFRLENBTWIsQ0FDSCxDQUFDO1lBQ0osS0FBSyxTQUFTO2dCQUNaLE9BQU8sQ0FDTCx1QkFBQyxzQkFBWSxJQUVYLEVBQUUsRUFBRSxRQUFRLEVBQ1osS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQ2xCLElBQUksRUFBRSxJQUFJLEVBQ1YsV0FBVyxFQUFFLFdBQVcsRUFDeEIsWUFBWSxFQUFFLFlBQVksSUFMckIsUUFBUSxDQU1iLENBQ0gsQ0FBQztZQUNKLEtBQUssTUFBTTtnQkFDVCxPQUFPLENBQ0wsdUJBQUMsZ0JBQVMsSUFFUixFQUFFLEVBQUUsUUFBUSxFQUNaLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUNsQixXQUFXLEVBQUUsV0FBVyxFQUN4QixZQUFZLEVBQUUsWUFBWSxJQUpyQixRQUFRLENBS2IsQ0FDSCxDQUFDO1lBQ0osS0FBSyxXQUFXO2dCQUNkLE9BQU8sQ0FDTCx1QkFBQywwQkFBYyxJQUViLEVBQUUsRUFBRSxRQUFRLEVBQ1osS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQ2xCLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFlBQVksRUFBRSxZQUFZLElBSnJCLFFBQVEsQ0FLYixDQUNILENBQUM7WUFDSixLQUFLLFVBQVU7Z0JBQ2IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQztvQkFDakQsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztnQkFDRCxPQUFPLENBQ0wsdUJBQUMsd0JBQWEsSUFFWixFQUFFLEVBQUUsUUFBUSxFQUNaLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUNsQixJQUFJLEVBQUUsSUFBSSxJQUhMLFFBQVEsQ0FJYixDQUNILENBQUM7WUFDSjtnQkFDRSxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQyxDQUF5QixDQUFDO0FBQzdCLENBQUMifQ==
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL2VtYWlscy9ibG9ja3MvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|