@useinsider/guido 1.0.2-beta.b6e86c0 → 1.0.2-beta.bfb23c2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -2
- package/dist/@types/generic.d.ts +4 -0
- package/dist/components/Guido.vue.d.ts +3 -1
- package/dist/components/Guido.vue.js +5 -5
- package/dist/components/Guido.vue2.js +75 -63
- package/dist/components/organisms/LoadingWrapper.vue.js +1 -1
- package/dist/components/organisms/email-preview/amp/AmpToggle.vue.js +3 -2
- package/dist/components/organisms/header/HeaderWrapper.vue.d.ts +3 -1
- package/dist/components/organisms/header/HeaderWrapper.vue.js +6 -6
- package/dist/components/organisms/header/HeaderWrapper.vue2.js +15 -9
- package/dist/components/organisms/header/RightSlot.vue.d.ts +3 -1
- package/dist/components/organisms/header/RightSlot.vue.js +5 -3
- package/dist/components/organisms/header/RightSlot.vue2.js +26 -27
- package/dist/components/organisms/onboarding/AMPOnboarding.vue2.js +11 -11
- package/dist/components/organisms/onboarding/GenericOnboarding.vue.js +5 -5
- package/dist/components/organisms/onboarding/GenericOnboarding.vue2.js +8 -8
- package/dist/components/organisms/onboarding/TextBlockOnboarding.vue.js +1 -1
- package/dist/components/organisms/onboarding/TextBlockOnboarding.vue2.js +40 -28
- package/dist/components/organisms/onboarding/VersionHistoryOnboarding.vue2.js +6 -6
- package/dist/composables/useCustomInterfaceAppearance.js +22 -18
- package/dist/composables/useHtmlCompiler.js +17 -9
- package/dist/composables/useHtmlValidator.d.ts +4 -0
- package/dist/composables/useHtmlValidator.js +148 -0
- package/dist/composables/useRecommendation.d.ts +19 -0
- package/dist/composables/useRecommendation.js +27 -0
- package/dist/composables/useSave.d.ts +4 -0
- package/dist/composables/useSave.js +15 -0
- package/dist/composables/useStripo.js +29 -21
- package/dist/composables/useToaster.js +17 -17
- package/dist/config/compiler/outlookCompilerRules.d.ts +2 -0
- package/dist/config/compiler/outlookCompilerRules.js +36 -0
- package/dist/config/compiler/recommendationCompilerRules.d.ts +2 -0
- package/dist/config/compiler/recommendationCompilerRules.js +83 -0
- package/dist/config/compiler/socialCompilerRules.d.ts +2 -0
- package/dist/config/compiler/socialCompilerRules.js +21 -0
- package/dist/config/compiler/unsubscribeCompilerRules.d.ts +2 -0
- package/dist/config/compiler/unsubscribeCompilerRules.js +64 -0
- package/dist/config/migrator/checkboxMigrator.d.ts +1 -0
- package/dist/config/migrator/checkboxMigrator.js +83 -0
- package/dist/config/migrator/index.d.ts +1 -0
- package/dist/config/migrator/index.js +9 -0
- package/dist/config/migrator/radioButtonMigrator.d.ts +1 -0
- package/dist/config/migrator/radioButtonMigrator.js +86 -0
- package/dist/enums/defaults.d.ts +5 -1
- package/dist/enums/defaults.js +14 -10
- package/dist/enums/html-validator.d.ts +6 -0
- package/dist/enums/html-validator.js +7 -0
- package/dist/enums/recommendation.d.ts +54 -0
- package/dist/enums/recommendation.js +56 -0
- package/dist/enums/unsubscribe.d.ts +15 -0
- package/dist/enums/unsubscribe.js +17 -0
- package/dist/extensions/Blocks/Checkbox/block.d.ts +10 -0
- package/dist/extensions/Blocks/Checkbox/block.js +39 -0
- package/dist/extensions/Blocks/Checkbox/control.d.ts +22 -0
- package/dist/extensions/Blocks/Checkbox/control.js +104 -0
- package/dist/extensions/Blocks/Checkbox/extension.d.ts +2 -0
- package/dist/extensions/Blocks/Checkbox/extension.js +20 -0
- package/dist/extensions/Blocks/Checkbox/settingsPanel.d.ts +4 -0
- package/dist/extensions/Blocks/Checkbox/settingsPanel.js +38 -0
- package/dist/extensions/Blocks/Checkbox/template.d.ts +6 -0
- package/dist/extensions/Blocks/Checkbox/template.js +75 -0
- package/dist/extensions/Blocks/RadioButton/block.d.ts +10 -0
- package/dist/extensions/Blocks/RadioButton/block.js +39 -0
- package/dist/extensions/Blocks/RadioButton/control.d.ts +17 -0
- package/dist/extensions/Blocks/RadioButton/control.js +104 -0
- package/dist/extensions/Blocks/RadioButton/extension.d.ts +2 -0
- package/dist/extensions/Blocks/RadioButton/extension.js +20 -0
- package/dist/extensions/Blocks/RadioButton/settingsPanel.d.ts +4 -0
- package/dist/extensions/Blocks/RadioButton/settingsPanel.js +39 -0
- package/dist/extensions/Blocks/RadioButton/template.d.ts +6 -0
- package/dist/extensions/Blocks/RadioButton/template.js +160 -0
- package/dist/extensions/Blocks/_Boilerplate/block.d.ts +10 -0
- package/dist/extensions/Blocks/_Boilerplate/control.d.ts +17 -0
- package/dist/extensions/Blocks/_Boilerplate/extension.d.ts +2 -0
- package/dist/extensions/Blocks/_Boilerplate/settingsPanel.d.ts +4 -0
- package/dist/extensions/Blocks/_Boilerplate/template.d.ts +6 -0
- package/dist/extensions/DynamicContent/dynamic-content.js +41 -27
- package/dist/extensions/DynamicContent/extension.js +18 -6
- package/dist/guido.css +1 -1
- package/dist/mock/api/unsubscribe.d.ts +2 -0
- package/dist/mock/api/validator.d.ts +2 -0
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/Extension.js +72 -48
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ExtensionBuilder.js +74 -49
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/blocks/Block.js +120 -38
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/AiAssistantValueType.js +5 -11
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockCompositionType.js +5 -11
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockName.js +12 -0
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockType.js +5 -11
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BuiltInControlTypes.js +116 -101
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/ContextActionType.js +5 -11
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/EditorStatePropertyType.js +5 -11
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/PanelPosition.js +5 -11
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/Popover.js +12 -0
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/PreviewDeviceMode.js +5 -11
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/SettingsTab.js +5 -11
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/UIElementType.js +5 -11
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/UIElementsAttributes.js +22 -43
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/Control.js +21 -17
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/SettingsPanelRegistry.js +8 -15
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/SettingsPanelTab.js +30 -29
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/modifications/ModificationDescription.js +19 -23
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ui-elements/UIElement.js +37 -19
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ui-elements/UIElementTagRegistry.js +2 -15
- package/dist/static/styles/components/alert-message.css.js +32 -2
- package/dist/static/styles/components/button.css.js +32 -2
- package/dist/static/styles/components/notification.css.js +55 -0
- package/dist/static/styles/components/popup.css.js +68 -0
- package/dist/static/styles/components/wide-panel.css.js +5 -1
- package/dist/static/styles/customEditorStyle.css.js +6 -0
- package/dist/static/styles/variables.css.js +10 -0
- package/dist/stores/dynamic-content.d.ts +12 -0
- package/dist/stores/dynamic-content.js +7 -6
- package/dist/stores/recommendation.d.ts +10 -0
- package/dist/stores/recommendation.js +9 -0
- package/dist/stores/unsubscribe.d.ts +8 -0
- package/dist/stores/unsubscribe.js +9 -0
- package/dist/utils/genericUtil.js +9 -6
- package/dist/utils/templatePreparation.js +21 -14
- package/package.json +2 -2
- package/dist/_virtual/AddCustomFont.js +0 -4
- package/dist/_virtual/AiAssistantValueType.js +0 -4
- package/dist/_virtual/BackgroundColorBuiltInControl.js +0 -4
- package/dist/_virtual/BackgroundImageBuiltInControl.js +0 -4
- package/dist/_virtual/Block.js +0 -4
- package/dist/_virtual/BlockAttributes.js +0 -4
- package/dist/_virtual/BlockCompositionType.js +0 -4
- package/dist/_virtual/BlockPaddingsBuiltInControl.js +0 -4
- package/dist/_virtual/BlockRenderer.js +0 -4
- package/dist/_virtual/BlockType.js +0 -4
- package/dist/_virtual/BlocksPanel.js +0 -4
- package/dist/_virtual/BuiltInControl.js +0 -4
- package/dist/_virtual/BuiltInControlTypes.js +0 -4
- package/dist/_virtual/ButtonBorderBuiltInControl.js +0 -4
- package/dist/_virtual/ButtonColorBuiltInControl.js +0 -4
- package/dist/_virtual/ButtonFontColorBuiltInControl.js +0 -4
- package/dist/_virtual/ButtonInternalIndentsBuiltInControl.js +0 -4
- package/dist/_virtual/ButtonTextBuiltInControl.js +0 -4
- package/dist/_virtual/ContextAction.js +0 -4
- package/dist/_virtual/ContextActionType.js +0 -4
- package/dist/_virtual/Control.js +0 -4
- package/dist/_virtual/EditorStatePropertyType.js +0 -4
- package/dist/_virtual/Extension.js +0 -4
- package/dist/_virtual/ExtensionBuilder.js +0 -4
- package/dist/_virtual/FontFamilyBuiltInControl.js +0 -4
- package/dist/_virtual/LinkColorBuiltInControl.js +0 -4
- package/dist/_virtual/ModificationDescription.js +0 -4
- package/dist/_virtual/PanelPosition.js +0 -4
- package/dist/_virtual/PreviewDeviceMode.js +0 -4
- package/dist/_virtual/SettingsPanelRegistry.js +0 -4
- package/dist/_virtual/SettingsPanelTab.js +0 -4
- package/dist/_virtual/SettingsTab.js +0 -4
- package/dist/_virtual/StructureBorderBuiltInControl.js +0 -4
- package/dist/_virtual/StructurePaddingsBuiltInControl.js +0 -4
- package/dist/_virtual/TextColorBuiltInControl.js +0 -4
- package/dist/_virtual/TextLineSpacingBuiltInControl.js +0 -4
- package/dist/_virtual/TextSizeBuiltInControl.js +0 -4
- package/dist/_virtual/TextStyleBuiltInControl.js +0 -4
- package/dist/_virtual/UIElement.js +0 -4
- package/dist/_virtual/UIElementTagRegistry.js +0 -4
- package/dist/_virtual/UIElementType.js +0 -4
- package/dist/_virtual/UIElementsAttributes.js +0 -4
- package/dist/_virtual/index.js +0 -5
- package/dist/_virtual/index2.js +0 -4
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/blocks/BlockRenderer.js +0 -18
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/blocks/BlocksPanel.js +0 -32
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/blocks/ContextAction.js +0 -18
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/AddCustomFont.js +0 -8
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockAttributes.js +0 -34
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/BackgroundColorBuiltInControl.js +0 -43
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/BackgroundImageBuiltInControl.js +0 -46
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/BlockPaddingsBuiltInControl.js +0 -44
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/BuiltInControl.js +0 -22
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/ButtonBorderBuiltInControl.js +0 -46
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/ButtonColorBuiltInControl.js +0 -46
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/ButtonFontColorBuiltInControl.js +0 -45
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/ButtonInternalIndentsBuiltInControl.js +0 -45
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/ButtonTextBuiltInControl.js +0 -45
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/FontFamilyBuiltInControl.js +0 -43
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/LinkColorBuiltInControl.js +0 -45
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/StructureBorderBuiltInControl.js +0 -46
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/StructurePaddingsBuiltInControl.js +0 -44
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/TextColorBuiltInControl.js +0 -43
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/TextLineSpacingBuiltInControl.js +0 -43
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/TextSizeBuiltInControl.js +0 -45
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/TextStyleBuiltInControl.js +0 -43
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/index.js +0 -266
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { ToasterTypeOptions as
|
|
2
|
-
import { useToasterStore as
|
|
3
|
-
import { watch as c
|
|
4
|
-
const
|
|
5
|
-
const t =
|
|
6
|
-
let
|
|
7
|
-
const
|
|
8
|
-
|
|
1
|
+
import { ToasterTypeOptions as T } from "../enums/toaster.js";
|
|
2
|
+
import { useToasterStore as u } from "../stores/toaster.js";
|
|
3
|
+
import { watch as c } from "vue";
|
|
4
|
+
const d = () => {
|
|
5
|
+
const t = u();
|
|
6
|
+
let o = null;
|
|
7
|
+
const s = () => {
|
|
8
|
+
o && (clearTimeout(o), o = null);
|
|
9
9
|
};
|
|
10
10
|
function r(e = { message: "" }) {
|
|
11
|
-
|
|
11
|
+
s(), t.hideToaster(), t.showToaster(e);
|
|
12
12
|
}
|
|
13
|
-
function
|
|
14
|
-
|
|
13
|
+
function i() {
|
|
14
|
+
s(), t.hideToaster();
|
|
15
15
|
}
|
|
16
|
-
function
|
|
16
|
+
function a(e, n) {
|
|
17
17
|
const m = e instanceof Error ? e.message : String(e);
|
|
18
|
-
r({ type:
|
|
18
|
+
r({ type: T.Alert, message: `${n}: ${m}` });
|
|
19
19
|
}
|
|
20
20
|
return c(
|
|
21
21
|
() => t.shouldAutoHide,
|
|
22
22
|
(e) => {
|
|
23
|
-
|
|
24
|
-
t.hideToaster(),
|
|
23
|
+
s(), e && (o = setTimeout(() => {
|
|
24
|
+
t.hideToaster(), s();
|
|
25
25
|
}, 6e3));
|
|
26
26
|
}
|
|
27
|
-
),
|
|
27
|
+
), { showToaster: r, hideToaster: i, handleError: a };
|
|
28
28
|
};
|
|
29
29
|
export {
|
|
30
|
-
|
|
30
|
+
d as useToaster
|
|
31
31
|
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const c = `
|
|
2
|
+
<!--[if gte mso 9]>
|
|
3
|
+
<xml>
|
|
4
|
+
<o:OfficeDocumentSettings>
|
|
5
|
+
<o:AllowPNG></o:AllowPNG>
|
|
6
|
+
<o:PixelsPerInch>96</o:PixelsPerInch>
|
|
7
|
+
</o:OfficeDocumentSettings>
|
|
8
|
+
</xml>
|
|
9
|
+
<![endif]-->`, s = {
|
|
10
|
+
xmlns: "http://www.w3.org/1999/xhtml",
|
|
11
|
+
"xmlns:o": "urn:schemas-microsoft-com:office:office"
|
|
12
|
+
}, r = [
|
|
13
|
+
{
|
|
14
|
+
id: "append-office-xml",
|
|
15
|
+
description: "Appending office XML into the head if it does not exist.",
|
|
16
|
+
type: "custom",
|
|
17
|
+
processor: (e) => e.includes("<o:OfficeDocumentSettings>") ? e : e.replace("</head>", `${c}</head>`),
|
|
18
|
+
priority: 70
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
id: "set-html-attributes",
|
|
22
|
+
description: "Appending office XML into the head if it does not exist.",
|
|
23
|
+
type: "custom",
|
|
24
|
+
processor: (e) => {
|
|
25
|
+
let t = e;
|
|
26
|
+
return Object.entries(s).forEach(([o, i]) => {
|
|
27
|
+
const n = new RegExp(`${o}="[^"]*"`);
|
|
28
|
+
t.search(n) === -1 && (t = t.replace("<html", `<html ${o}="${i}"`));
|
|
29
|
+
}), t;
|
|
30
|
+
},
|
|
31
|
+
priority: 71
|
|
32
|
+
}
|
|
33
|
+
];
|
|
34
|
+
export {
|
|
35
|
+
r as outlookCompilerRules
|
|
36
|
+
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { useRecommendation as u } from "../../composables/useRecommendation.js";
|
|
2
|
+
import { DUMMY_IMAGE_MAPPINGS as P, REGEX as i, CSS as e, CONDITIONS as E, ATTRIBUTES as r, HTML as h } from "../../enums/recommendation.js";
|
|
3
|
+
const H = [
|
|
4
|
+
{
|
|
5
|
+
id: "replace-images-with-variable-names",
|
|
6
|
+
description: "Replacing dummy images with variable names in recommendation module",
|
|
7
|
+
type: "custom",
|
|
8
|
+
processor: (a) => {
|
|
9
|
+
let t = a;
|
|
10
|
+
return Object.entries(P).forEach(([, n]) => {
|
|
11
|
+
Object.entries(n).forEach(([s, o]) => {
|
|
12
|
+
t = t.replaceAll(o, `{{${s}}}`);
|
|
13
|
+
});
|
|
14
|
+
}), t;
|
|
15
|
+
},
|
|
16
|
+
priority: 50
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: "replace-recommendation-button-span-css",
|
|
20
|
+
description: "Replacing recommendation button span css",
|
|
21
|
+
type: "replace",
|
|
22
|
+
search: ".ext-product-button span,",
|
|
23
|
+
replacement: ".ext-product-button,",
|
|
24
|
+
replaceAll: !0,
|
|
25
|
+
priority: 51
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: "add-recommendation-unresponsive-css",
|
|
29
|
+
description: "Adding recommendation unresponsive css",
|
|
30
|
+
type: "custom",
|
|
31
|
+
processor: (a) => {
|
|
32
|
+
const { getRecommendationCampaignData: t } = u();
|
|
33
|
+
let n = a;
|
|
34
|
+
const s = n.match(i.ID);
|
|
35
|
+
if (s) {
|
|
36
|
+
const o = [];
|
|
37
|
+
if (s.forEach((c) => {
|
|
38
|
+
const m = c.slice(35, c.length - 1).trim();
|
|
39
|
+
t(m);
|
|
40
|
+
}), o.length) {
|
|
41
|
+
const c = `width:${Math.min(...o)}px!important;`;
|
|
42
|
+
n = n.replace(e.REGULAR_NAME_HEIGHT, `${e.TRIMMED_NAME_HEIGHT} ${c} ${e.ELLIPSIS}`).replace(e.REGULAR_NAME_CONTAINER_HEIGHT, e.TRIMMED_NAME_CONTAINER_CSS).replace(e.RESPONSIVE_NAME_SIZE, `${e.RESPONSIVE_NAME_HEIGHT} ${c} ${e.ELLIPSIS}`).replace(e.RESPONSIVE_NAME_CONTAINER_HEIGHT, e.TRIMMED_RESPONSIVE_NAME_CONTAINER_CSS);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return n;
|
|
46
|
+
},
|
|
47
|
+
priority: 52
|
|
48
|
+
},
|
|
49
|
+
// TODO: prepareRecommendations
|
|
50
|
+
// TODO: addRecommendationCustomFields
|
|
51
|
+
{
|
|
52
|
+
id: "add-discount-conditions",
|
|
53
|
+
description: "Adding discount conditions to the recommendation block",
|
|
54
|
+
type: "custom",
|
|
55
|
+
processor: (a) => {
|
|
56
|
+
let t = a;
|
|
57
|
+
const n = t.match(i.ATTRIBUTE_PARAGRAPH), { getRecommendationCampaignData: s } = u();
|
|
58
|
+
return n !== null && n.forEach((o) => {
|
|
59
|
+
const c = o.match(i.CUSTOM_FIELD);
|
|
60
|
+
if (!c)
|
|
61
|
+
return;
|
|
62
|
+
const [m] = c, p = m.match(i.CUSTOM_FIELD_INDEXES_PART), A = m.match(i.CUSTOM_FIELD_NAME_PART), _ = o.match(i.ATTRIBUTE_PARAGRAPH_START_TAG);
|
|
63
|
+
if (!p || !A || !_)
|
|
64
|
+
return;
|
|
65
|
+
const [l] = p, [T] = A, [d] = _, N = T.substring(1, T.length - 2), R = d.match(i.COMPOSITION) !== null;
|
|
66
|
+
let O = m;
|
|
67
|
+
if (R) {
|
|
68
|
+
const M = l.substring(2, l.length - 3);
|
|
69
|
+
s(M);
|
|
70
|
+
}
|
|
71
|
+
const I = l.substring(2);
|
|
72
|
+
let S = "";
|
|
73
|
+
N in E.IF && (S = E.IF[N].replaceAll(`{${r.DISCOUNT}}`, `${I}${r.DISCOUNT}`).replaceAll(`{${r.OMNIBUS_DISCOUNT}}`, `${I}${r.OMNIBUS_DISCOUNT}`).replaceAll(`{${r.OMNIBUS_PRICE}}`, `${I}${r.OMNIBUS_PRICE}`));
|
|
74
|
+
const $ = `${d}${O}${h.PARAGRAPH_END_TAG}`, C = `${S}${R ? $ : o}${E.ELSE}${d}${h.PARAGRAPH_END_TAG}${E.END_IF}`;
|
|
75
|
+
t = t.replace(o, C);
|
|
76
|
+
}), t;
|
|
77
|
+
},
|
|
78
|
+
priority: 53
|
|
79
|
+
}
|
|
80
|
+
];
|
|
81
|
+
export {
|
|
82
|
+
H as recommendationCompilerRules
|
|
83
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const a = [
|
|
2
|
+
{
|
|
3
|
+
id: "fix-custom-social-block",
|
|
4
|
+
description: "Fixing custom social block.",
|
|
5
|
+
type: "custom",
|
|
6
|
+
processor: (e) => {
|
|
7
|
+
let c = e;
|
|
8
|
+
const s = c.match(/<table[^>]*?class="[^>]*?es-social[^>]*?"[\S\s]*?<\/table>/gm);
|
|
9
|
+
return s && s.forEach((o) => {
|
|
10
|
+
if (o.match(/<img[^>]*?height="[0-9]+?"/gm)) {
|
|
11
|
+
const i = o.replace(/<img[^>]*?height="[0-9]+?"/gm, (t) => t.replace("height", "width"));
|
|
12
|
+
c = c.replace(o, i);
|
|
13
|
+
}
|
|
14
|
+
}), c;
|
|
15
|
+
},
|
|
16
|
+
priority: 80
|
|
17
|
+
}
|
|
18
|
+
];
|
|
19
|
+
export {
|
|
20
|
+
a as socialCompilerRules
|
|
21
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { usePartner as m } from "../../composables/usePartner.js";
|
|
2
|
+
import { LINK_REGEXES as c, LINK_TYPES as p, URLS as E } from "../../enums/unsubscribe.js";
|
|
3
|
+
import { useUnsubscribeStore as b } from "../../stores/unsubscribe.js";
|
|
4
|
+
const S = [
|
|
5
|
+
{
|
|
6
|
+
id: "add-unsubscribe-link-values",
|
|
7
|
+
description: "Adding unsubscribe link values",
|
|
8
|
+
type: "custom",
|
|
9
|
+
processor: (n) => {
|
|
10
|
+
var a, u;
|
|
11
|
+
const { getPartnerName: i } = m(), t = b();
|
|
12
|
+
let e = n;
|
|
13
|
+
const o = `/${i()}/email/0?user={{iid}}`, r = (a = t.selectedUnsubscribePages) == null ? void 0 : a.find((l) => l.type === p.UNSUBSCRIBE_LINK_TYPE), s = (u = t.selectedUnsubscribePages) == null ? void 0 : u.find((l) => l.type === p.PREFERENCES_LINK_TYPE);
|
|
14
|
+
return r && (e = e.replace(
|
|
15
|
+
c.GLOBAL_UNSUBSCRIBE_LINK_REGEX,
|
|
16
|
+
E.UNSUBSCRIBE_URL + o
|
|
17
|
+
)), s && (e = e.replace(
|
|
18
|
+
c.PREFERENCES_UNSUBSCRIBE_LINK_REGEX,
|
|
19
|
+
E.PREFERENCES_URL + o
|
|
20
|
+
)), e.replace(c.UNSUBSCRIBE_LINK_REGEX, "");
|
|
21
|
+
},
|
|
22
|
+
priority: 60
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
id: "remove-data-ogsb-button-styles",
|
|
26
|
+
description: "Removing styles like [data-ogsb] .es-button.es-button-123 { background: red; }",
|
|
27
|
+
type: "regex",
|
|
28
|
+
pattern: c.DATA_OGSB_BUTTON_CSS_REGEX,
|
|
29
|
+
replacement: "",
|
|
30
|
+
flags: "g",
|
|
31
|
+
priority: 61
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
id: "format-comment-braces",
|
|
35
|
+
description: "Adding spaces around comment braces for proper formatting",
|
|
36
|
+
type: "custom",
|
|
37
|
+
processor: (n) => n.replace(/{#/g, "{ #").replace(/#}/g, "# }"),
|
|
38
|
+
priority: 62
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
id: "add-universal-link-flags",
|
|
42
|
+
description: "Adding universal link flags",
|
|
43
|
+
type: "custom",
|
|
44
|
+
processor: (n) => {
|
|
45
|
+
let i = n;
|
|
46
|
+
const t = i.match(/<a[^>]+>(.*?)<\/a>/gm);
|
|
47
|
+
return t && t.forEach((e) => {
|
|
48
|
+
if (e.includes("insEmail=1"))
|
|
49
|
+
return;
|
|
50
|
+
if (e.match(/<a\s+(?:[^>]*?\s+)?href=(["'`”])(.*?)\1\s+(?:[^>]*?\s+)?universal=(["'`”])true\3/gm)) {
|
|
51
|
+
const o = e.replace(/href=(["'`”])(.*?)\1/gm, (r) => {
|
|
52
|
+
const s = r.slice(6, r.length - 1).trim();
|
|
53
|
+
return r.includes("?") || r.includes("#") ? s.slice(-1) === "&" ? r.replace(s, `${s}insEmail=1`) : r.replace(s, `${s}&insEmail=1`) : r.replace(s, `${s}?insEmail=1`);
|
|
54
|
+
});
|
|
55
|
+
i = i.replace(e, o);
|
|
56
|
+
}
|
|
57
|
+
}), i;
|
|
58
|
+
},
|
|
59
|
+
priority: 63
|
|
60
|
+
}
|
|
61
|
+
];
|
|
62
|
+
export {
|
|
63
|
+
S as unsubscribeCompilerRules
|
|
64
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function migrateCheckbox(html: string): string;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
var x = Object.defineProperty;
|
|
2
|
+
var y = (s, t, e) => t in s ? x(s, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[t] = e;
|
|
3
|
+
var m = (s, t, e) => y(s, typeof t != "symbol" ? t + "" : t, e);
|
|
4
|
+
import b from "../../extensions/Blocks/Checkbox/template.js";
|
|
5
|
+
class f {
|
|
6
|
+
constructor() {
|
|
7
|
+
m(this, "parser");
|
|
8
|
+
this.parser = new DOMParser();
|
|
9
|
+
}
|
|
10
|
+
migrate(t) {
|
|
11
|
+
try {
|
|
12
|
+
const e = this.parser.parseFromString(t, "text/html"), i = e.querySelectorAll("td.checkbox-block");
|
|
13
|
+
return i.length === 0 ? t : (i.forEach((r) => {
|
|
14
|
+
const n = r.getAttribute("id"), l = this.extractTextFromElement(r, "ins-title"), c = this.extractTextFromElement(r, "ins-description"), a = this.buildTextBlock(l), p = this.buildTextBlock(c), g = b.replace("{-{-TITLE-}-}", a).replace("{-{-DESCRIPTION-}-}", p), o = this.parser.parseFromString(
|
|
15
|
+
`<table id="tempDoc"><tbody><tr>${g}</tr></tbody></table>`,
|
|
16
|
+
"text/html"
|
|
17
|
+
).querySelector(".checkbox-block-v2");
|
|
18
|
+
o && r.parentNode && (o.setAttribute("id", n || ""), r.parentNode.replaceChild(o, r));
|
|
19
|
+
}), e.documentElement.outerHTML);
|
|
20
|
+
} catch (e) {
|
|
21
|
+
return console.error("CheckboxMigrator failed:", e), t;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
extractTextFromElement(t, e) {
|
|
25
|
+
var o, u;
|
|
26
|
+
const i = t.querySelector(`.${e}`);
|
|
27
|
+
if (!i)
|
|
28
|
+
return {
|
|
29
|
+
text: e === "ins-title" ? "Title" : "Description",
|
|
30
|
+
isBold: !1,
|
|
31
|
+
isItalic: !1,
|
|
32
|
+
align: "left",
|
|
33
|
+
styles: ""
|
|
34
|
+
};
|
|
35
|
+
const r = i.querySelector("p");
|
|
36
|
+
if (!r)
|
|
37
|
+
return {
|
|
38
|
+
text: ((o = i.textContent) == null ? void 0 : o.trim()) || (e === "ins-title" ? "Title" : "Description"),
|
|
39
|
+
isBold: !1,
|
|
40
|
+
isItalic: !1,
|
|
41
|
+
align: i.getAttribute("align") || "left",
|
|
42
|
+
styles: ""
|
|
43
|
+
};
|
|
44
|
+
const n = ((u = r.textContent) == null ? void 0 : u.trim()) || (e === "ins-title" ? "Title" : "Description"), l = r.getAttribute("style") || "", c = i.getAttribute("align") || r.getAttribute("align") || "left", a = /font-weight\s*:\s*bold/i.test(l) || !!r.querySelector("b, strong"), p = /font-style\s*:\s*italic/i.test(l) || !!r.querySelector("i, em"), g = this.removeStyleProperties(l, ["font-weight", "font-style"]), d = this.convertInlineToBlock(g);
|
|
45
|
+
return {
|
|
46
|
+
text: n,
|
|
47
|
+
isBold: a,
|
|
48
|
+
isItalic: p,
|
|
49
|
+
align: c,
|
|
50
|
+
styles: d
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
buildTextBlock(t) {
|
|
54
|
+
let e = t.text;
|
|
55
|
+
t.isBold && t.isItalic ? e = `<strong path="1,0"><em path="1,0,0">${e}</em></strong>` : t.isBold ? e = `<strong path="1,0">${e}</strong>` : t.isItalic && (e = `<em path="1,0">${e}</em>`);
|
|
56
|
+
const i = t.align ? ` align="${t.align}"` : "", r = t.styles ? ` style="${t.styles}"` : "";
|
|
57
|
+
return `
|
|
58
|
+
<td class="esd-block-text" ${i}>
|
|
59
|
+
<p path="1" ${r}>
|
|
60
|
+
${e}
|
|
61
|
+
</p>
|
|
62
|
+
</td>
|
|
63
|
+
`;
|
|
64
|
+
}
|
|
65
|
+
removeStyleProperties(t, e) {
|
|
66
|
+
return t ? e.reduce((r, n) => {
|
|
67
|
+
const l = new RegExp(`${n}\\s*:\\s*[^;]*;?`, "gi");
|
|
68
|
+
return r.replace(l, "");
|
|
69
|
+
}, t).replace(/;\s*;/g, ";").replace(/^;|;$/g, "").trim() : "";
|
|
70
|
+
}
|
|
71
|
+
convertInlineToBlock(t) {
|
|
72
|
+
if (!t)
|
|
73
|
+
return "";
|
|
74
|
+
let e = t.replace(/display\s*:\s*inline/gi, "display: block");
|
|
75
|
+
return /display\s*:/i.test(e) || (e = e ? `${e}; display: block` : "display: block"), e.replace(/;\s*;/g, ";").replace(/^;|;$/g, "").trim();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function k(s) {
|
|
79
|
+
return new f().migrate(s);
|
|
80
|
+
}
|
|
81
|
+
export {
|
|
82
|
+
k as migrateCheckbox
|
|
83
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const migrate: (html: string) => string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function migrateRadioButton(html: string): string;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
var b = Object.defineProperty;
|
|
2
|
+
var f = (r, t, e) => t in r ? b(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;
|
|
3
|
+
var x = (r, t, e) => f(r, typeof t != "symbol" ? t + "" : t, e);
|
|
4
|
+
import h from "../../extensions/Blocks/RadioButton/template.js";
|
|
5
|
+
class T {
|
|
6
|
+
constructor() {
|
|
7
|
+
x(this, "parser");
|
|
8
|
+
this.parser = new DOMParser();
|
|
9
|
+
}
|
|
10
|
+
migrate(t) {
|
|
11
|
+
try {
|
|
12
|
+
const e = this.parser.parseFromString(t, "text/html"), i = e.querySelectorAll("td.radio-button-block");
|
|
13
|
+
return i.length === 0 ? t : (i.forEach((s) => {
|
|
14
|
+
const o = s.getAttribute("id"), l = this.extractTextFromElement(s, "ins-title"), a = this.extractTextFromElement(s, "ins-description"), p = this.extractTextFromElement(s, "ins-subscribe"), u = this.extractTextFromElement(s, "ins-unsubscribe"), d = this.buildTextBlock(l), g = this.buildTextBlock(a), m = this.buildTextBlock({ ...p, classList: "" }), n = this.buildTextBlock({ ...u, classList: "" }), c = h.replace("{-{-TITLE-}-}", d).replace("{-{-DESCRIPTION-}-}", g).replace("{-{-YES-}-}", m).replace("{-{-NO-}-}", n), y = this.parser.parseFromString(
|
|
15
|
+
`<table id="tempDoc"><tbody><tr>${c}</tr></tbody></table>`,
|
|
16
|
+
"text/html"
|
|
17
|
+
).querySelector(".radio-button-v2");
|
|
18
|
+
y && s.parentNode && (y.setAttribute("id", o || ""), s.parentNode.replaceChild(y, s));
|
|
19
|
+
}), e.documentElement.outerHTML);
|
|
20
|
+
} catch (e) {
|
|
21
|
+
return console.error("RadioButtonMigrator failed:", e), t;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
extractTextFromElement(t, e) {
|
|
25
|
+
var n, c;
|
|
26
|
+
const i = t.querySelector(`.${e}`);
|
|
27
|
+
if (!i)
|
|
28
|
+
return {
|
|
29
|
+
text: e === "ins-title" ? "Title" : "Description",
|
|
30
|
+
isBold: !1,
|
|
31
|
+
isItalic: !1,
|
|
32
|
+
align: "left",
|
|
33
|
+
styles: "",
|
|
34
|
+
classList: ""
|
|
35
|
+
};
|
|
36
|
+
const s = i.querySelector("p");
|
|
37
|
+
if (!s)
|
|
38
|
+
return {
|
|
39
|
+
text: ((n = i.textContent) == null ? void 0 : n.trim()) || (e === "ins-title" ? "Title" : "Description"),
|
|
40
|
+
isBold: !1,
|
|
41
|
+
isItalic: !1,
|
|
42
|
+
align: i.getAttribute("align") || "left",
|
|
43
|
+
styles: "",
|
|
44
|
+
classList: ""
|
|
45
|
+
};
|
|
46
|
+
const o = ((c = s.textContent) == null ? void 0 : c.trim()) || (e === "ins-title" ? "Title" : "Description"), l = s.getAttribute("style") || "", a = i.getAttribute("align") || s.getAttribute("align") || "left", p = /font-weight\s*:\s*bold/i.test(l) || !!s.querySelector("b, strong"), u = /font-style\s*:\s*italic/i.test(l) || !!s.querySelector("i, em"), d = this.removeStyleProperties(l, ["font-weight", "font-style"]), g = this.convertInlineToBlock(d), m = i.getAttribute("class") || "";
|
|
47
|
+
return {
|
|
48
|
+
text: o,
|
|
49
|
+
isBold: p,
|
|
50
|
+
isItalic: u,
|
|
51
|
+
align: a,
|
|
52
|
+
styles: g,
|
|
53
|
+
classList: m
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
buildTextBlock(t) {
|
|
57
|
+
let e = t.text;
|
|
58
|
+
t.isBold && t.isItalic ? e = `<strong path="1,0"><em path="1,0,0">${e}</em></strong>` : t.isBold ? e = `<strong path="1,0">${e}</strong>` : t.isItalic && (e = `<em path="1,0">${e}</em>`);
|
|
59
|
+
const i = t.align ? ` align="${t.align}"` : "", s = t.styles ? ` style="${t.styles.replaceAll('"', "'")}"` : "";
|
|
60
|
+
return `
|
|
61
|
+
<td class="esd-block-text ${t.classList}" ${i}>
|
|
62
|
+
<p path="1" ${s}>
|
|
63
|
+
${e}
|
|
64
|
+
</p>
|
|
65
|
+
</td>
|
|
66
|
+
`;
|
|
67
|
+
}
|
|
68
|
+
removeStyleProperties(t, e) {
|
|
69
|
+
return t ? e.reduce((s, o) => {
|
|
70
|
+
const l = new RegExp(`${o}\\s*:\\s*[^;]*;?`, "gi");
|
|
71
|
+
return s.replace(l, "");
|
|
72
|
+
}, t).replace(/;\s*;/g, ";").replace(/^;|;$/g, "").trim() : "";
|
|
73
|
+
}
|
|
74
|
+
convertInlineToBlock(t) {
|
|
75
|
+
if (!t)
|
|
76
|
+
return "";
|
|
77
|
+
let e = t.replace(/display\s*:\s*inline/gi, "display: block");
|
|
78
|
+
return /display\s*:/i.test(e) || (e = e ? `${e}; display: block` : "display: block"), e.replace(/;\s*;/g, ";").replace(/^;|;$/g, "").trim();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function A(r) {
|
|
82
|
+
return new T().migrate(r);
|
|
83
|
+
}
|
|
84
|
+
export {
|
|
85
|
+
A as migrateRadioButton
|
|
86
|
+
};
|
package/dist/enums/defaults.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import type { GuidoConfig } from '@@/Types/generic';
|
|
2
2
|
export declare const DefaultGuidoConfig: GuidoConfig;
|
|
3
|
+
export declare const TemplateTypes: {
|
|
4
|
+
promotional: number;
|
|
5
|
+
transactional: number;
|
|
6
|
+
};
|
|
3
7
|
export declare const DefaultProductType = "email";
|
|
4
8
|
export declare const DefaultUsername = "Guido User";
|
|
5
|
-
export declare const DefaultMessageType
|
|
9
|
+
export declare const DefaultMessageType: number;
|
|
6
10
|
export declare const EditorType: number;
|
|
7
11
|
export declare const ProductIds: Record<string, number>;
|
|
8
12
|
export declare const TEST_PARTNER_LIST: string[];
|
package/dist/enums/defaults.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a = {
|
|
2
2
|
translationsPath: "window.trans.en",
|
|
3
3
|
emailHeader: {
|
|
4
4
|
senderName: "",
|
|
@@ -10,10 +10,13 @@ const t = {
|
|
|
10
10
|
versionHistory: !0
|
|
11
11
|
},
|
|
12
12
|
useHeader: !0
|
|
13
|
-
},
|
|
13
|
+
}, t = {
|
|
14
|
+
promotional: 1,
|
|
15
|
+
transactional: 2
|
|
16
|
+
}, e = "email", o = "Guido User", n = t.promotional, i = 2, s = {
|
|
14
17
|
email: 60,
|
|
15
18
|
architect: 49
|
|
16
|
-
},
|
|
19
|
+
}, u = [
|
|
17
20
|
"alfredtesting",
|
|
18
21
|
"electio",
|
|
19
22
|
"eurekatest",
|
|
@@ -46,11 +49,12 @@ const t = {
|
|
|
46
49
|
"stripoeditorlivetest"
|
|
47
50
|
];
|
|
48
51
|
export {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
a as DefaultGuidoConfig,
|
|
53
|
+
n as DefaultMessageType,
|
|
54
|
+
e as DefaultProductType,
|
|
55
|
+
o as DefaultUsername,
|
|
56
|
+
i as EditorType,
|
|
57
|
+
s as ProductIds,
|
|
58
|
+
u as TEST_PARTNER_LIST,
|
|
59
|
+
t as TemplateTypes
|
|
56
60
|
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const CanNotMakeAnyChangesForRunningKey = "newsletter.already-in-progress";
|
|
2
|
+
export declare const CanNotMakeAnyChangesKey = "newsletter.can-not-make-any-changes";
|
|
3
|
+
export declare const CampaignCouldNotBeSavedKey = "newsletter.campaign-could-not-be-saved";
|
|
4
|
+
export declare const DISPLAY_CONDITIONS_REGEX: RegExp;
|
|
5
|
+
export declare const DISPLAY_CONDITIONS_EXCEPTIONS_REGEX: RegExp;
|
|
6
|
+
export declare const REMOVE_CONDITIONS_REGEX: RegExp;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const e = "newsletter.already-in-progress", n = "newsletter.campaign-could-not-be-saved", o = / (==|<=|>=|!=|>|<|in) | (if|elif|endif|else|and|or) |("[\S ]+")|('[\S ]+')|([^”\s\n]+)|(({%)|( %}))/gm, a = /{%( )*now( )(".*")( )*%}/gm;
|
|
2
|
+
export {
|
|
3
|
+
n as CampaignCouldNotBeSavedKey,
|
|
4
|
+
e as CanNotMakeAnyChangesForRunningKey,
|
|
5
|
+
a as DISPLAY_CONDITIONS_EXCEPTIONS_REGEX,
|
|
6
|
+
o as DISPLAY_CONDITIONS_REGEX
|
|
7
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export declare const DefaultPadding = 20;
|
|
2
|
+
export declare const MinDeviceViewport = 320;
|
|
3
|
+
export declare const VerticalOrientation = "vertical";
|
|
4
|
+
export declare const DUMMY_IMAGE_MAPPINGS: {
|
|
5
|
+
CART_ABANDONMENT: {
|
|
6
|
+
ins_apr_img_1: string;
|
|
7
|
+
ins_apr_img_2: string;
|
|
8
|
+
ins_apr_img_3: string;
|
|
9
|
+
ins_apr_img_4: string;
|
|
10
|
+
};
|
|
11
|
+
BROWSE_ABANDONMENT: {
|
|
12
|
+
browsed_item_img_1: string;
|
|
13
|
+
browsed_item_img_2: string;
|
|
14
|
+
browsed_item_img_3: string;
|
|
15
|
+
browsed_item_img_4: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export declare const ATTRIBUTES: {
|
|
19
|
+
DISCOUNT: string;
|
|
20
|
+
OMNIBUS_DISCOUNT: string;
|
|
21
|
+
OMNIBUS_PRICE: string;
|
|
22
|
+
};
|
|
23
|
+
export declare const CONDITIONS: {
|
|
24
|
+
IF: {
|
|
25
|
+
discount: string;
|
|
26
|
+
omnibus_discount: string;
|
|
27
|
+
omnibus_price: string;
|
|
28
|
+
};
|
|
29
|
+
ELSE: string;
|
|
30
|
+
END_IF: string;
|
|
31
|
+
};
|
|
32
|
+
export declare const REGEX: {
|
|
33
|
+
ID: RegExp;
|
|
34
|
+
ATTRIBUTE_PARAGRAPH: RegExp;
|
|
35
|
+
ATTRIBUTE_PARAGRAPH_START_TAG: RegExp;
|
|
36
|
+
COMPOSITION: RegExp;
|
|
37
|
+
CUSTOM_FIELD: RegExp;
|
|
38
|
+
CUSTOM_FIELD_INDEXES_PART: RegExp;
|
|
39
|
+
CUSTOM_FIELD_NAME_PART: RegExp;
|
|
40
|
+
};
|
|
41
|
+
export declare const HTML: {
|
|
42
|
+
PARAGRAPH_END_TAG: string;
|
|
43
|
+
};
|
|
44
|
+
export declare const CSS: {
|
|
45
|
+
REGULAR_NAME_HEIGHT: string;
|
|
46
|
+
TRIMMED_NAME_HEIGHT: string;
|
|
47
|
+
ELLIPSIS: string;
|
|
48
|
+
REGULAR_NAME_CONTAINER_HEIGHT: string;
|
|
49
|
+
TRIMMED_NAME_CONTAINER_CSS: string;
|
|
50
|
+
RESPONSIVE_NAME_SIZE: string;
|
|
51
|
+
RESPONSIVE_NAME_HEIGHT: string;
|
|
52
|
+
RESPONSIVE_NAME_CONTAINER_HEIGHT: string;
|
|
53
|
+
TRIMMED_RESPONSIVE_NAME_CONTAINER_CSS: string;
|
|
54
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
const s = 20, e = 320, t = {
|
|
2
|
+
CART_ABANDONMENT: {
|
|
3
|
+
ins_apr_img_1: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_1.png",
|
|
4
|
+
ins_apr_img_2: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_2.png",
|
|
5
|
+
ins_apr_img_3: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_3.png",
|
|
6
|
+
ins_apr_img_4: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_4.png"
|
|
7
|
+
},
|
|
8
|
+
BROWSE_ABANDONMENT: {
|
|
9
|
+
browsed_item_img_1: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_1.jpg",
|
|
10
|
+
browsed_item_img_2: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_2.jpg",
|
|
11
|
+
browsed_item_img_3: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_3.jpg",
|
|
12
|
+
browsed_item_img_4: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_4.jpg"
|
|
13
|
+
}
|
|
14
|
+
}, i = {
|
|
15
|
+
DISCOUNT: "discount",
|
|
16
|
+
OMNIBUS_DISCOUNT: "omnibus_discount",
|
|
17
|
+
OMNIBUS_PRICE: "omnibus_price"
|
|
18
|
+
}, m = {
|
|
19
|
+
IF: {
|
|
20
|
+
discount: `{% if {${i.DISCOUNT}} != "0%" and {${i.DISCOUNT}} != "" %}`,
|
|
21
|
+
omnibus_discount: `{% if {${i.DISCOUNT}} != "0%" and {${i.DISCOUNT}} != "" and {${i.OMNIBUS_DISCOUNT}} != "0%" and {${i.OMNIBUS_DISCOUNT}} != "" %}`,
|
|
22
|
+
omnibus_price: `{% if {${i.DISCOUNT}} != "0%" and {${i.DISCOUNT}} != "" and {${i.OMNIBUS_PRICE}} != "" %}`
|
|
23
|
+
},
|
|
24
|
+
ELSE: "{% else %}",
|
|
25
|
+
END_IF: "{% endif %}"
|
|
26
|
+
}, _ = {
|
|
27
|
+
ID: /ins-recommendation-v3-campaign-id="(.*?)"/gi,
|
|
28
|
+
ATTRIBUTE_PARAGRAPH: /<p[^>]*?product-attr="(discount|omnibus_discount|omnibus_price)">[\S\s]*?<\/p>/gm,
|
|
29
|
+
ATTRIBUTE_PARAGRAPH_START_TAG: /<p[^>]*?product-attr="(discount|omnibus_discount|omnibus_price)">/gm,
|
|
30
|
+
COMPOSITION: /composition="true"/gm,
|
|
31
|
+
CUSTOM_FIELD: /{{[0-9]+_[0-8]_(discount|omnibus_discount|omnibus_price)}}/gm,
|
|
32
|
+
CUSTOM_FIELD_INDEXES_PART: /{{[0-9]+_[0-8]_/gm,
|
|
33
|
+
CUSTOM_FIELD_NAME_PART: /_(discount|omnibus_discount|omnibus_price)}}/gm
|
|
34
|
+
}, a = {
|
|
35
|
+
PARAGRAPH_END_TAG: "</p>"
|
|
36
|
+
}, n = {
|
|
37
|
+
REGULAR_NAME_HEIGHT: ".ext-product-name.ins-vertical p { height:90px!important;",
|
|
38
|
+
TRIMMED_NAME_HEIGHT: ".ext-product-name.ins-vertical p { height:18px!important;",
|
|
39
|
+
ELLIPSIS: "text-overflow:ellipsis!important; white-space:nowrap!important;",
|
|
40
|
+
REGULAR_NAME_CONTAINER_HEIGHT: ".ext-product-name.ins-vertical { height:100px!important",
|
|
41
|
+
TRIMMED_NAME_CONTAINER_CSS: ".ext-product-name.ins-vertical { height:38px!important; padding:0px!important",
|
|
42
|
+
RESPONSIVE_NAME_SIZE: ".ext-product-name p { height:unset!important; width:100%!important;",
|
|
43
|
+
RESPONSIVE_NAME_HEIGHT: ".ext-product-name p { height:24px!important;",
|
|
44
|
+
RESPONSIVE_NAME_CONTAINER_HEIGHT: ".ext-product-name { height:unset!important",
|
|
45
|
+
TRIMMED_RESPONSIVE_NAME_CONTAINER_CSS: ".ext-product-name { height:44px!important; padding:0px!important"
|
|
46
|
+
};
|
|
47
|
+
export {
|
|
48
|
+
i as ATTRIBUTES,
|
|
49
|
+
m as CONDITIONS,
|
|
50
|
+
n as CSS,
|
|
51
|
+
t as DUMMY_IMAGE_MAPPINGS,
|
|
52
|
+
s as DefaultPadding,
|
|
53
|
+
a as HTML,
|
|
54
|
+
e as MinDeviceViewport,
|
|
55
|
+
_ as REGEX
|
|
56
|
+
};
|