@useinsider/guido 1.0.3-beta.25d8896 → 1.0.3-beta.283d792
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 +3 -137
- package/dist/components/Guido.vue.js +1 -1
- package/dist/components/Guido.vue2.js +59 -62
- package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
- package/dist/components/organisms/header/LeftSlot.vue2.js +15 -16
- package/dist/components/organisms/header/RightSlot.vue.js +11 -11
- package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +20 -21
- package/dist/composables/useStripo.js +50 -39
- package/dist/config/migrator/index.js +6 -7
- package/dist/enums/date.js +14 -4
- package/dist/enums/defaults.js +9 -15
- package/dist/enums/onboarding.js +1 -2
- package/dist/extensions/Blocks/Checkbox/extension.js +2 -2
- package/dist/extensions/Blocks/CouponBlock/extension.js +2 -2
- package/dist/extensions/Blocks/Recommendation/block.js +3 -6
- package/dist/extensions/Blocks/Recommendation/control.js +40 -69
- package/dist/extensions/Blocks/Recommendation/extension.js +7 -42
- package/dist/extensions/Blocks/Recommendation/settingsPanel.js +22 -107
- package/dist/extensions/Blocks/Recommendation/template.js +200 -0
- package/dist/extensions/Blocks/common-control.js +43 -125
- package/dist/extensions/DynamicContent/dynamic-content-modal.js +19 -46
- package/dist/extensions/DynamicContent/dynamic-content.js +31 -140
- package/dist/guido.css +1 -1
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +100 -307
- package/dist/services/stripoApi.js +1 -1
- package/dist/src/@types/generic.d.ts +6 -46
- package/dist/src/components/Guido.vue.d.ts +2 -2
- package/dist/src/components/wrappers/WpModal.vue.d.ts +1 -1
- package/dist/src/enums/date.d.ts +13 -4
- package/dist/src/enums/onboarding.d.ts +0 -1
- package/dist/src/extensions/Blocks/Recommendation/block.d.ts +0 -1
- package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -6
- package/dist/src/extensions/Blocks/Recommendation/template.d.ts +6 -0
- package/dist/src/extensions/Blocks/common-control.d.ts +0 -21
- package/dist/src/extensions/DynamicContent/dynamic-content-modal.d.ts +2 -9
- package/dist/src/extensions/DynamicContent/dynamic-content.d.ts +2 -58
- package/dist/src/stores/config.d.ts +1 -7
- package/dist/src/stores/dynamic-content.d.ts +2 -2
- package/dist/src/utils/dateUtil.d.ts +1 -21
- package/dist/src/utils/genericUtil.d.ts +0 -8
- package/dist/static/styles/components/narrow-panel.css.js +0 -10
- package/dist/static/styles/customEditorStyle.css.js +0 -5
- package/dist/stores/dynamic-content.js +1 -1
- package/dist/utils/dateUtil.js +7 -33
- package/dist/utils/genericUtil.js +8 -32
- package/package.json +2 -2
- package/dist/composables/useBlocksConfig.js +0 -49
- package/dist/config/migrator/recommendationMigrator.js +0 -293
- package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
- package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
- package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
- package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
- package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
- package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
- package/dist/src/composables/useBlocksConfig.d.ts +0 -11
- package/dist/src/config/migrator/recommendationMigrator.d.ts +0 -1
- package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
- package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +0 -51
- package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
- package/dist/src/extensions/Blocks/Recommendation/templates/migrationTemplate.d.ts +0 -16
- package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
package/README.md
CHANGED
|
@@ -82,12 +82,10 @@ export default {
|
|
|
82
82
|
translationsPath: 'window.trans.en',
|
|
83
83
|
htmlCompilerRules: [],
|
|
84
84
|
ignoreDefaultHtmlCompilerRules: false,
|
|
85
|
-
backButtonLabel?: "Back to Design",
|
|
86
85
|
features: {
|
|
87
86
|
dynamicContent: true,
|
|
88
87
|
saveAsTemplate: true,
|
|
89
|
-
versionHistory: true
|
|
90
|
-
testMessage: true
|
|
88
|
+
versionHistory: true
|
|
91
89
|
}
|
|
92
90
|
},
|
|
93
91
|
dynamicContentModalVisible: false
|
|
@@ -196,11 +194,6 @@ interface GuidoConfig {
|
|
|
196
194
|
dynamicContent: boolean;
|
|
197
195
|
saveAsTemplate: boolean;
|
|
198
196
|
versionHistory: boolean;
|
|
199
|
-
testMessage: boolean;
|
|
200
|
-
};
|
|
201
|
-
blocks?: {
|
|
202
|
-
excludeDefaults?: GuidoBlockType[];
|
|
203
|
-
includeCustoms?: GuidoCustomBlockType[];
|
|
204
197
|
};
|
|
205
198
|
}
|
|
206
199
|
```
|
|
@@ -215,9 +208,6 @@ interface GuidoConfig {
|
|
|
215
208
|
| `features.dynamicContent` | `boolean` | `true` | Enable dynamic content insertion feature |
|
|
216
209
|
| `features.saveAsTemplate` | `boolean` | `true` | Enable save as template feature |
|
|
217
210
|
| `features.versionHistory` | `boolean` | `true` | Enable version history feature |
|
|
218
|
-
| `blocks` | `BlocksConfig` | `{ excludeDefaults: [], includeCustoms: [] }` | Block configuration for excluding default blocks and including custom blocks. See [Blocks Configuration](#-blocks-configuration) section below |
|
|
219
|
-
| `blocks.excludeDefaults` | `GuidoBlockType[]` | `[]` | Array of default Stripo blocks to exclude from the editor |
|
|
220
|
-
| `blocks.includeCustoms` | `GuidoCustomBlockType[]` | `[]` | Array of custom blocks to include in the editor |
|
|
221
211
|
|
|
222
212
|
```typescript
|
|
223
213
|
interface DynamicContent {
|
|
@@ -234,128 +224,6 @@ interface DynamicContent {
|
|
|
234
224
|
| `text` | `string` | '' | Visible value of the dynamic content |
|
|
235
225
|
| `fallback?` | `string` | '' | Fallback value of the dynamic content. Optional |
|
|
236
226
|
|
|
237
|
-
## 🧱 Blocks Configuration
|
|
238
|
-
|
|
239
|
-
Guido allows you to customize which blocks are available in the editor. You can exclude default Stripo blocks and selectively include custom blocks to create tailored editing experiences for different product types.
|
|
240
|
-
|
|
241
|
-
### Block Types
|
|
242
|
-
|
|
243
|
-
#### Default Blocks (GuidoBlockType)
|
|
244
|
-
|
|
245
|
-
These are the standard Stripo email editor blocks that can be excluded:
|
|
246
|
-
|
|
247
|
-
```typescript
|
|
248
|
-
type GuidoBlockType =
|
|
249
|
-
| 'amp-accordion' // AMP accordion component
|
|
250
|
-
| 'amp-carousel' // AMP image carousel
|
|
251
|
-
| 'amp-form-controls' // AMP form elements
|
|
252
|
-
| 'banner-block' // Banner/hero section
|
|
253
|
-
| 'button-block' // Call-to-action buttons
|
|
254
|
-
| 'html-block' // Custom HTML
|
|
255
|
-
| 'image-block' // Image elements
|
|
256
|
-
| 'menu-block' // Navigation menu
|
|
257
|
-
| 'social-block' // Social media links
|
|
258
|
-
| 'spacer-block' // Vertical spacing
|
|
259
|
-
| 'text-block' // Text content
|
|
260
|
-
| 'timer-block' // Countdown timer
|
|
261
|
-
| 'video-block' // Video embeds
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
#### Custom Blocks (GuidoCustomBlockType)
|
|
265
|
-
|
|
266
|
-
These are custom blocks that can be selectively included:
|
|
267
|
-
|
|
268
|
-
```typescript
|
|
269
|
-
type GuidoCustomBlockType =
|
|
270
|
-
| 'dynamic-content' // Dynamic content merge tags
|
|
271
|
-
| 'checkbox-block' // Checkbox form input
|
|
272
|
-
| 'radio-button-block' // Radio button form input
|
|
273
|
-
| 'recommendation-block' // Product recommendations
|
|
274
|
-
| 'unsubscribe-block' // Unsubscribe link
|
|
275
|
-
| 'coupon-block' // Coupon/promo code
|
|
276
|
-
| 'items-block' // Cart items display
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
### Configuration Examples
|
|
280
|
-
|
|
281
|
-
#### Example 1: Exclude Specific Default Blocks
|
|
282
|
-
|
|
283
|
-
Disable button, image, and video blocks while keeping all custom blocks:
|
|
284
|
-
|
|
285
|
-
```typescript
|
|
286
|
-
const guidoConfig = {
|
|
287
|
-
translationsPath: 'window.trans.en',
|
|
288
|
-
features: {
|
|
289
|
-
dynamicContent: true,
|
|
290
|
-
saveAsTemplate: true,
|
|
291
|
-
versionHistory: true,
|
|
292
|
-
testMessage: true
|
|
293
|
-
},
|
|
294
|
-
blocks: {
|
|
295
|
-
excludeDefaults: ['button-block', 'image-block', 'video-block']
|
|
296
|
-
}
|
|
297
|
-
};
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
**Result:**
|
|
301
|
-
- Button, Image, Video blocks disabled
|
|
302
|
-
- All other default blocks enabled
|
|
303
|
-
- All custom blocks are disabled.
|
|
304
|
-
|
|
305
|
-
#### Example 2: Include Only Specific Custom Blocks
|
|
306
|
-
|
|
307
|
-
Enable only coupon and recommendation blocks:
|
|
308
|
-
|
|
309
|
-
```typescript
|
|
310
|
-
const guidoConfig = {
|
|
311
|
-
translationsPath: 'window.trans.en',
|
|
312
|
-
features: {
|
|
313
|
-
dynamicContent: true,
|
|
314
|
-
saveAsTemplate: true,
|
|
315
|
-
versionHistory: true,
|
|
316
|
-
testMessage: true
|
|
317
|
-
},
|
|
318
|
-
blocks: {
|
|
319
|
-
includeCustoms: ['coupon-block', 'recommendation-block']
|
|
320
|
-
}
|
|
321
|
-
};
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
**Result:**
|
|
325
|
-
- All default blocks enabled
|
|
326
|
-
- Only Coupon and Recommendation extensions enabled.
|
|
327
|
-
- Other custom blocks are disabled
|
|
328
|
-
|
|
329
|
-
### Default Behavior
|
|
330
|
-
|
|
331
|
-
When `blocks` is not provided or is `undefined`:
|
|
332
|
-
|
|
333
|
-
```typescript
|
|
334
|
-
const guidoConfig = {
|
|
335
|
-
translationsPath: 'window.trans.en',
|
|
336
|
-
features: {
|
|
337
|
-
dynamicContent: true,
|
|
338
|
-
saveAsTemplate: true,
|
|
339
|
-
versionHistory: true,
|
|
340
|
-
testMessage: true
|
|
341
|
-
},
|
|
342
|
-
// No blocks config
|
|
343
|
-
};
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
**Result:**
|
|
347
|
-
- All 13 default Stripo blocks enabled
|
|
348
|
-
- All custom blocks are disabled.
|
|
349
|
-
|
|
350
|
-
### Block Configuration Interface
|
|
351
|
-
|
|
352
|
-
```typescript
|
|
353
|
-
interface BlocksConfig {
|
|
354
|
-
excludeDefaults?: GuidoBlockType[];
|
|
355
|
-
includeCustoms?: GuidoCustomBlockType[];
|
|
356
|
-
}
|
|
357
|
-
```
|
|
358
|
-
|
|
359
227
|
### TypeScript Types
|
|
360
228
|
|
|
361
229
|
The library exports the following TypeScript types:
|
|
@@ -450,8 +318,7 @@ const guidoConfig = {
|
|
|
450
318
|
features: {
|
|
451
319
|
dynamicContent: true,
|
|
452
320
|
saveAsTemplate: true,
|
|
453
|
-
versionHistory: false
|
|
454
|
-
testMessage: true
|
|
321
|
+
versionHistory: false // Disable version history
|
|
455
322
|
},
|
|
456
323
|
htmlCompilerRules: [
|
|
457
324
|
{
|
|
@@ -484,8 +351,7 @@ const guidoConfig = {
|
|
|
484
351
|
features: {
|
|
485
352
|
dynamicContent: true,
|
|
486
353
|
saveAsTemplate: true,
|
|
487
|
-
versionHistory: true
|
|
488
|
-
testMessage: true
|
|
354
|
+
versionHistory: true
|
|
489
355
|
},
|
|
490
356
|
ignoreDefaultHtmlCompilerRules: true, // Skip all default rules
|
|
491
357
|
htmlCompilerRules: [
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { provideGuidoActions as
|
|
3
|
-
import { usePartner as
|
|
4
|
-
import { useStripo as
|
|
1
|
+
import { defineComponent as R, defineAsyncComponent as I, ref as x, computed as U, watch as M, onMounted as z, onUnmounted as B } from "vue";
|
|
2
|
+
import { provideGuidoActions as K } from "../composables/useGuidoActions.js";
|
|
3
|
+
import { usePartner as O } from "../composables/usePartner.js";
|
|
4
|
+
import { useStripo as j } from "../composables/useStripo.js";
|
|
5
5
|
import { migrate as W } from "../config/migrator/index.js";
|
|
6
|
-
import { DefaultUsername as
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import { useStripoApi as
|
|
14
|
-
import { useConfigStore as
|
|
15
|
-
import { useDynamicContentStore as
|
|
16
|
-
import { useEditorStore as
|
|
17
|
-
import { usePreviewStore as
|
|
18
|
-
import { useUnsubscribeStore as
|
|
19
|
-
import
|
|
20
|
-
const
|
|
6
|
+
import { DefaultUsername as q, DefaultMessageType as J, DefaultGuidoConfig as Q } from "../enums/defaults.js";
|
|
7
|
+
import V from "./organisms/base/Toaster.vue.js";
|
|
8
|
+
import X from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
|
|
9
|
+
import Y from "./organisms/header/HeaderWrapper.vue.js";
|
|
10
|
+
import Z from "./organisms/LoadingWrapper.vue.js";
|
|
11
|
+
import $ from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
|
|
12
|
+
import ee from "./organisms/unsubscribe/UnsubscribeWrapper.vue.js";
|
|
13
|
+
import { useStripoApi as oe } from "../services/stripoApi.js";
|
|
14
|
+
import { useConfigStore as te } from "../stores/config.js";
|
|
15
|
+
import { useDynamicContentStore as ne } from "../stores/dynamic-content.js";
|
|
16
|
+
import { useEditorStore as re } from "../stores/editor.js";
|
|
17
|
+
import { usePreviewStore as ae } from "../stores/preview.js";
|
|
18
|
+
import { useUnsubscribeStore as ie } from "../stores/unsubscribe.js";
|
|
19
|
+
import se from "../node_modules/lodash-es/merge.js";
|
|
20
|
+
const Ge = /* @__PURE__ */ R({
|
|
21
21
|
__name: "Guido",
|
|
22
22
|
props: {
|
|
23
23
|
templateId: null,
|
|
@@ -32,46 +32,46 @@ const Le = /* @__PURE__ */ O({
|
|
|
32
32
|
templateConfig: null
|
|
33
33
|
},
|
|
34
34
|
emits: ["dynamic-content:open", "back", "save:start", "save:complete", "on-change", "ready", "onboarding:finished"],
|
|
35
|
-
setup(_, { expose:
|
|
36
|
-
const
|
|
35
|
+
setup(_, { expose: L, emit: t }) {
|
|
36
|
+
const u = _, k = I(
|
|
37
37
|
() => import("./organisms/email-preview/PreviewContainer.vue.js")
|
|
38
|
-
),
|
|
38
|
+
), A = I(
|
|
39
39
|
() => import("./organisms/onboarding/OnboardingWrapper.vue.js")
|
|
40
|
-
),
|
|
40
|
+
), l = x(), a = ne(), p = ie(), g = te(), i = re(), N = ae(), n = U(() => i.hasChanges), { getPartnerName: f, getProductType: y, isTestPartner: F } = O(), v = () => {
|
|
41
41
|
var e;
|
|
42
|
-
return (e =
|
|
42
|
+
return (e = l.value) == null ? void 0 : e.handleSave(!0);
|
|
43
43
|
}, {
|
|
44
44
|
templateId: s,
|
|
45
|
-
userId:
|
|
46
|
-
guidoConfig:
|
|
45
|
+
userId: b,
|
|
46
|
+
guidoConfig: C,
|
|
47
47
|
templateConfig: o,
|
|
48
48
|
html: r = "",
|
|
49
|
-
css:
|
|
50
|
-
partnerName: c =
|
|
51
|
-
productType: d =
|
|
52
|
-
messageType:
|
|
53
|
-
username:
|
|
54
|
-
} =
|
|
55
|
-
|
|
49
|
+
css: h = "",
|
|
50
|
+
partnerName: c = f(),
|
|
51
|
+
productType: d = y(),
|
|
52
|
+
messageType: S = J,
|
|
53
|
+
username: w = q
|
|
54
|
+
} = u, m = (o == null ? void 0 : o.preselectedDynamicContentList) || [];
|
|
55
|
+
i.templateId = s, window.GuidoConfig = se(Q, C), window.GuidoConfig.partner = {
|
|
56
56
|
partnerName: c,
|
|
57
57
|
productType: d,
|
|
58
|
-
messageType:
|
|
59
|
-
},
|
|
60
|
-
const { initPlugin:
|
|
58
|
+
messageType: S
|
|
59
|
+
}, g.templateConfig = o;
|
|
60
|
+
const { initPlugin: D } = j({
|
|
61
61
|
emailId: s,
|
|
62
|
-
userId:
|
|
63
|
-
username:
|
|
62
|
+
userId: b,
|
|
63
|
+
username: w,
|
|
64
64
|
partnerName: c,
|
|
65
65
|
productType: d,
|
|
66
66
|
preselectedDynamicContentList: m,
|
|
67
67
|
onReady: () => {
|
|
68
68
|
console.debug("guido:ready"), t("ready");
|
|
69
69
|
}
|
|
70
|
-
}), { getDefaultTemplate: T } =
|
|
70
|
+
}), { getDefaultTemplate: T } = oe(), H = U(() => {
|
|
71
71
|
var e;
|
|
72
72
|
return !((e = window.GuidoConfig) != null && e.useHeader);
|
|
73
73
|
});
|
|
74
|
-
|
|
74
|
+
K({
|
|
75
75
|
onBack: () => {
|
|
76
76
|
console.debug("guido:back"), t("back");
|
|
77
77
|
},
|
|
@@ -82,50 +82,47 @@ const Le = /* @__PURE__ */ O({
|
|
|
82
82
|
console.debug("guido:save:complete", e), t("save:complete", e);
|
|
83
83
|
}
|
|
84
84
|
});
|
|
85
|
-
const
|
|
86
|
-
console.debug("dynamic-content:close", e),
|
|
87
|
-
},
|
|
85
|
+
const E = (e) => {
|
|
86
|
+
console.debug("dynamic-content:close", e), a.setSelectedDynamicContent(e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
|
|
87
|
+
}, P = () => {
|
|
88
88
|
console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
|
|
89
89
|
};
|
|
90
|
-
|
|
90
|
+
return M(() => n.value, () => {
|
|
91
91
|
t("on-change", n.value);
|
|
92
|
-
})
|
|
93
|
-
const u = (e) => {
|
|
94
|
-
const I = e, { attribute: x, position: M } = I.detail;
|
|
95
|
-
console.debug("dynamic-content:open", I.detail), t("dynamic-content:open", x, M);
|
|
96
|
-
};
|
|
97
|
-
return K(async () => {
|
|
92
|
+
}), z(async () => {
|
|
98
93
|
console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow");
|
|
99
94
|
try {
|
|
100
|
-
|
|
95
|
+
p.selectedUnsubscribePages = (o == null ? void 0 : o.selectedUnsubscribePages) || [];
|
|
101
96
|
let e = {
|
|
102
97
|
html: r && await W(r),
|
|
103
|
-
css:
|
|
98
|
+
css: h,
|
|
104
99
|
forceRecreate: !0
|
|
105
100
|
// TODO: It should be false for old templates. We will communicate with Stripo
|
|
106
101
|
};
|
|
107
|
-
e.html || (e = await T(), e.html = await W(e.html)), await
|
|
102
|
+
e.html || (e = await T(), e.html = await W(e.html)), await D(e), a.selectedDynamicContentList = m;
|
|
108
103
|
} catch (e) {
|
|
109
104
|
console.error("Failed to initialize Stripo editor:", e);
|
|
110
105
|
}
|
|
111
|
-
document.addEventListener("dynamic-content:open",
|
|
112
|
-
|
|
113
|
-
|
|
106
|
+
document.addEventListener("dynamic-content:open", (e) => {
|
|
107
|
+
const G = e;
|
|
108
|
+
console.debug("dynamic-content:open", G.detail), t("dynamic-content:open", G.detail);
|
|
109
|
+
});
|
|
110
|
+
}), B(() => {
|
|
114
111
|
try {
|
|
115
112
|
window.UIEditor.removeEditor();
|
|
116
113
|
} catch {
|
|
117
114
|
console.debug("Failed to remove Stripo editor: No editor found");
|
|
118
115
|
}
|
|
119
|
-
}),
|
|
116
|
+
}), L({
|
|
120
117
|
dynamicContent: {
|
|
121
|
-
insert:
|
|
122
|
-
close:
|
|
118
|
+
insert: E,
|
|
119
|
+
close: P
|
|
123
120
|
},
|
|
124
121
|
hasChanges: n,
|
|
125
|
-
saveSilent:
|
|
126
|
-
}), { __sfc: !0, PreviewContainer:
|
|
122
|
+
saveSilent: v
|
|
123
|
+
}), { __sfc: !0, PreviewContainer: k, OnboardingWrapper: A, headerWrapperRef: l, dynamicContentStore: a, unsubscribeStore: p, props: u, configStore: g, editorStore: i, previewStore: N, hasChanges: n, getPartnerName: f, getProductType: y, isTestPartner: F, saveSilent: v, templateId: s, userId: b, guidoConfig: C, templateConfig: o, html: r, css: h, partnerName: c, productType: d, messageType: S, username: w, preselectedDynamicContentList: m, emit: t, initPlugin: D, getDefaultTemplate: T, noHeader: H, insertDynamicContent: E, closeDynamicContent: P, Toaster: V, FilterSelectionDrawer: X, HeaderWrapper: Y, LoadingWrapper: Z, SaveAsTemplateDrawer: $, UnsubscribeWrapper: ee };
|
|
127
124
|
}
|
|
128
125
|
});
|
|
129
126
|
export {
|
|
130
|
-
|
|
127
|
+
Ge as default
|
|
131
128
|
};
|
|
@@ -1,29 +1,28 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { usePreviewMode as f } from "../../../composables/usePreviewMode.js";
|
|
1
|
+
import { defineComponent as s, computed as c } from "vue";
|
|
2
|
+
import { useBack as m } from "../../../composables/useGuidoActions.js";
|
|
3
|
+
import { usePreviewMode as a } from "../../../composables/usePreviewMode.js";
|
|
5
4
|
import { useTranslations as p } from "../../../composables/useTranslations.js";
|
|
6
|
-
import { useVersionHistoryApi as
|
|
7
|
-
import { useEditorStore as
|
|
8
|
-
import { InButtonV2 as
|
|
9
|
-
import
|
|
10
|
-
const
|
|
5
|
+
import { useVersionHistoryApi as u } from "../../../composables/useVersionHistoryApi.js";
|
|
6
|
+
import { useEditorStore as d } from "../../../stores/editor.js";
|
|
7
|
+
import { InButtonV2 as f } from "@useinsider/design-system-vue";
|
|
8
|
+
import l from "./version-history/RestoreButton.vue.js";
|
|
9
|
+
const O = /* @__PURE__ */ s({
|
|
11
10
|
__name: "LeftSlot",
|
|
12
|
-
setup(
|
|
13
|
-
const o =
|
|
14
|
-
return { __sfc: !0, editorStore: o, handleBack: r, closeVersionHistory:
|
|
11
|
+
setup(k) {
|
|
12
|
+
const o = d(), r = m(), { closeVersionHistory: t } = u(), { closePreviewMode: i } = a(), e = p(), n = c(() => o.isVersionHistoryOpen || o.isPreviewModeOpen ? e("email-editor.back-to-editor") : e("email-editor.back-to-design"));
|
|
13
|
+
return { __sfc: !0, editorStore: o, handleBack: r, closeVersionHistory: t, closePreviewMode: i, trans: e, backButtonLabel: n, handleBackClick: () => {
|
|
15
14
|
if (o.isVersionHistoryOpen) {
|
|
16
|
-
|
|
15
|
+
t();
|
|
17
16
|
return;
|
|
18
17
|
}
|
|
19
18
|
if (o.isPreviewModeOpen) {
|
|
20
|
-
|
|
19
|
+
i();
|
|
21
20
|
return;
|
|
22
21
|
}
|
|
23
22
|
r();
|
|
24
|
-
}, InButtonV2:
|
|
23
|
+
}, InButtonV2: f, RestoreButton: l };
|
|
25
24
|
}
|
|
26
25
|
});
|
|
27
26
|
export {
|
|
28
|
-
|
|
27
|
+
O as default
|
|
29
28
|
};
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
return e("div", { staticClass: "d-f" }, [(
|
|
1
|
+
import n from "./RightSlot.vue2.js";
|
|
2
|
+
import a from "../../../_virtual/_plugin-vue2_normalizer.js";
|
|
3
|
+
var l = function() {
|
|
4
|
+
var s, i;
|
|
5
|
+
var o = this, e = o._self._c, t = o._self._setupProxy;
|
|
6
|
+
return e("div", { staticClass: "d-f" }, [(s = t.config.features) != null && s.versionHistory ? e(t.InButtonV2, { attrs: { id: "guido__history-button", "left-icon": "line-architect-version-history", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isVersionHistoryButtonDisabled, "label-text-status": !1, "selected-status": t.editorStore.isVersionHistoryOpen, "tooltip-options": t.getTooltipOptions("guido__history-button"), "tooltip-text": t.versionHistoryTooltipText }, on: { click: t.handleVersionHistory } }) : o._e(), e(t.InButtonV2, { attrs: { id: "guido__export-button", "left-icon": "line-export", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isExportButtonDisabled, "label-text-status": !1, "loading-status": t.isExporting, "tooltip-options": t.getTooltipOptions("guido__export-button"), "tooltip-text": t.trans("newsletter.export") }, on: { click: t.handleExport } }), (i = t.config.features) != null && i.saveAsTemplate ? e(t.InButtonV2, { attrs: { id: "guido__save-as-button", "left-icon": "line-newsletter-save-as-template", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isSaveAsButtonDisabled, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__save-as-button"), "tooltip-text": t.trans("newsletter.save-templates") }, on: { click: t.handleSaveAs } }) : o._e(), e(t.InButtonV2, { attrs: { id: "guido__test-button", "left-icon": "line-architect-test-journey", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isTestButtonDisabled, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__test-button"), "tooltip-text": t.trans("newsletter.test-email") } }), e(t.InButtonV2, { staticClass: "ml-3", attrs: { id: "guido__save-button", "label-text": "Save", "disabled-status": !t.isSaving && t.editorStore.isSaveButtonDisabled, "loading-status": t.isSaving }, on: { click: function(p) {
|
|
7
7
|
return t.handleSave(!1);
|
|
8
8
|
} } })], 1);
|
|
9
|
-
},
|
|
10
|
-
|
|
9
|
+
}, r = [], d = /* @__PURE__ */ a(
|
|
10
|
+
n,
|
|
11
|
+
l,
|
|
11
12
|
r,
|
|
12
|
-
u,
|
|
13
13
|
!1,
|
|
14
14
|
null,
|
|
15
15
|
null
|
|
16
16
|
);
|
|
17
|
-
const
|
|
17
|
+
const g = d.exports;
|
|
18
18
|
export {
|
|
19
|
-
|
|
19
|
+
g as default
|
|
20
20
|
};
|
|
@@ -1,43 +1,42 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import
|
|
1
|
+
import { defineComponent as f, ref as g, computed as o } from "vue";
|
|
2
|
+
import b from "../../wrappers/WpModal.vue.js";
|
|
3
3
|
import { useConfig as D } from "../../../composables/useConfig.js";
|
|
4
|
-
import { useTranslations as
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import { useOnboardingStore as
|
|
8
|
-
import { isAfterDate as
|
|
9
|
-
const
|
|
4
|
+
import { useTranslations as v } from "../../../composables/useTranslations.js";
|
|
5
|
+
import { DATE_FORMAT_DD_MM_YYYY as _ } from "../../../enums/date.js";
|
|
6
|
+
import h from "../../../static/assets/onboarding-img.svg.js";
|
|
7
|
+
import { useOnboardingStore as y } from "../../../stores/onboarding.js";
|
|
8
|
+
import { isAfterDate as w, formatPatchDate as C } from "../../../utils/dateUtil.js";
|
|
9
|
+
const V = /* @__PURE__ */ f({
|
|
10
10
|
__name: "NewVersionPopup",
|
|
11
11
|
emits: ["onboarding-finished"],
|
|
12
|
-
setup(
|
|
13
|
-
const e =
|
|
14
|
-
i.value
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
})), u = o(() => n.value ? e("products.cancel") : e("products.remind-me-later")), f = o(() => ({
|
|
12
|
+
setup(M, { emit: a }) {
|
|
13
|
+
const e = v(), t = y(), s = g(!0), { config: p } = D(), i = o(() => p.migrationDate), n = o(() => w(i.value || 0)), u = o(() => C(
|
|
14
|
+
i.value * 1e3,
|
|
15
|
+
_,
|
|
16
|
+
"en-GB"
|
|
17
|
+
)), l = o(() => n.value ? e("email-editor.onboarding-popup-sunsetted-title") : e("email-editor.onboarding-title")), m = o(() => n.value ? e("email-editor.onboarding-popup-sunsetted-description", {
|
|
18
|
+
sunsetDate: u.value
|
|
19
|
+
}) : e("email-editor.onboarding-description")), d = o(() => n.value ? e("products.cancel") : e("products.remind-me-later")), c = o(() => ({
|
|
21
20
|
primaryButton: {
|
|
22
21
|
type: "primary",
|
|
23
22
|
labelText: e("left-menu.discover-now")
|
|
24
23
|
},
|
|
25
24
|
secondaryButton: {
|
|
26
25
|
type: "subtle-primary",
|
|
27
|
-
labelText:
|
|
26
|
+
labelText: d.value
|
|
28
27
|
}
|
|
29
28
|
})), r = () => {
|
|
30
29
|
s.value = !1, a("onboarding-finished");
|
|
31
30
|
};
|
|
32
|
-
return { __sfc: !0, emit: a, trans: e, onboardingStore: t, isVisible: s, config: p, migrationDate: i, isAfterMigrationDate: n, formattedSunsetDate:
|
|
31
|
+
return { __sfc: !0, emit: a, trans: e, onboardingStore: t, isVisible: s, config: p, migrationDate: i, isAfterMigrationDate: n, formattedSunsetDate: u, popupTitle: l, popupDescription: m, secondaryButtonLabel: d, footerButtonOptions: c, closePopup: r, handleDiscoverNow: () => {
|
|
33
32
|
t.onDiscoverNowClicked(), r();
|
|
34
33
|
}, handleRemindLater: () => {
|
|
35
34
|
t.onRemindMeLater(), r();
|
|
36
35
|
}, handleClose: () => {
|
|
37
36
|
t.onNewVersionPopupClose(), r();
|
|
38
|
-
}, WpModal:
|
|
37
|
+
}, WpModal: b, onboardingImageSvg: h };
|
|
39
38
|
}
|
|
40
39
|
});
|
|
41
40
|
export {
|
|
42
|
-
|
|
41
|
+
V as default
|
|
43
42
|
};
|