@useinsider/guido 3.12.0-beta.66af948 → 3.12.0-beta.6de71f8
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 +0 -1
- package/dist/@types/config/schemas.js +31 -28
- package/dist/components/Guido.vue.js +6 -6
- package/dist/components/Guido.vue2.js +50 -49
- package/dist/components/organisms/extensions/recommendation/StrategyDetailDrawer.vue.js +38 -0
- package/dist/components/organisms/extensions/recommendation/StrategyDetailDrawer.vue2.js +271 -0
- package/dist/components/organisms/extensions/recommendation/strategy-detail/CampaignTable.vue.js +18 -0
- package/dist/components/organisms/extensions/recommendation/strategy-detail/CampaignTable.vue2.js +42 -0
- package/dist/components/organisms/extensions/recommendation/strategy-detail/FilterHumanizer.vue.js +20 -0
- package/dist/components/organisms/extensions/recommendation/strategy-detail/FilterHumanizer.vue2.js +18 -0
- package/dist/components/organisms/extensions/recommendation/strategy-detail/HumanizerCondition.vue.js +20 -0
- package/dist/components/organisms/extensions/recommendation/strategy-detail/HumanizerCondition.vue2.js +60 -0
- package/dist/components/organisms/extensions/recommendation/strategy-detail/HumanizerGroup.vue.js +19 -0
- package/dist/components/organisms/extensions/recommendation/strategy-detail/HumanizerGroup.vue2.js +19 -0
- package/dist/components/organisms/extensions/recommendation/strategy-detail/InfoDisplayValue.vue.js +22 -0
- package/dist/components/organisms/extensions/recommendation/strategy-detail/InfoDisplayValue.vue2.js +29 -0
- package/dist/composables/useHttp.js +61 -52
- package/dist/composables/useRecommendation.js +56 -40
- package/dist/composables/useSave.js +23 -42
- package/dist/composables/useStrategyFilters.js +16 -0
- package/dist/config/migrator/recommendationMigrator.js +7 -4
- package/dist/enums/date.js +4 -3
- package/dist/enums/extensions/filteringV2.js +1024 -0
- package/dist/enums/extensions/recommendationBlock.js +45 -24
- package/dist/enums/extensions/strategyDetail.js +149 -0
- package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +12 -11
- package/dist/extensions/Blocks/Recommendation/controls/main/index.js +141 -123
- package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +285 -0
- package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +16 -2
- package/dist/extensions/Blocks/Recommendation/recommendation.css.js +137 -0
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +478 -113
- package/dist/extensions/Blocks/Recommendation/utils/strategyHumanizer.js +97 -0
- package/dist/extensions/Blocks/Recommendation/utils/strategyNavigation.js +8 -0
- package/dist/extensions/Blocks/Recommendation/utils/strategySummary.js +95 -0
- package/dist/extensions/Blocks/Recommendation/utils/strategyUrl.js +43 -0
- package/dist/extensions/Blocks/Recommendation/validation/requiredFields.js +24 -10
- package/dist/extensions/Blocks/common-control.js +37 -35
- package/dist/guido.css +1 -1
- package/dist/services/recommendationApi.js +127 -33
- package/dist/src/@types/config/schemas.d.ts +10 -15
- package/dist/src/components/organisms/extensions/recommendation/StrategyDetailDrawer.vue.d.ts +2 -0
- package/dist/src/components/organisms/extensions/recommendation/strategy-detail/CampaignTable.vue.d.ts +43 -0
- package/dist/src/components/organisms/extensions/recommendation/strategy-detail/FilterHumanizer.vue.d.ts +29 -0
- package/dist/src/components/organisms/extensions/recommendation/strategy-detail/HumanizerCondition.vue.d.ts +40 -0
- package/dist/src/components/organisms/extensions/recommendation/strategy-detail/HumanizerGroup.vue.d.ts +38 -0
- package/dist/src/components/organisms/extensions/recommendation/strategy-detail/InfoDisplayValue.vue.d.ts +51 -0
- package/dist/src/composables/useConfig.d.ts +2 -2
- package/dist/src/composables/useRecommendation.d.ts +2 -0
- package/dist/src/composables/useStrategyFilters.d.ts +24 -0
- package/dist/src/enums/extensions/filteringV2.d.ts +72 -0
- package/dist/src/enums/extensions/recommendationBlock.d.ts +33 -0
- package/dist/src/enums/extensions/strategyDetail.d.ts +90 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +10 -4
- package/dist/src/extensions/Blocks/Recommendation/controls/main/strategy.d.ts +109 -0
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +924 -1
- package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +7 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/strategyHumanizer.d.ts +50 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/strategyNavigation.d.ts +10 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/strategySummary.d.ts +34 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/strategyUrl.d.ts +51 -0
- package/dist/src/extensions/Blocks/Recommendation/validation/requiredFields.d.ts +8 -1
- package/dist/src/extensions/Blocks/common-control.d.ts +5 -2
- package/dist/src/mock/api/recommendation-strategies.d.ts +2 -0
- package/dist/src/services/recommendationApi.d.ts +9 -1
- package/dist/src/stores/config.d.ts +18 -18
- package/dist/src/utils/genericUtil.d.ts +9 -0
- package/dist/utils/dateUtil.js +23 -10
- package/dist/utils/genericUtil.js +10 -1
- package/dist/utils/templatePreparation.js +70 -57
- package/package.json +1 -1
- package/dist/composables/useAllowlist.js +0 -50
- package/dist/composables/useUserRole.js +0 -12
- package/dist/enums/roles.js +0 -4
- package/dist/services/allowlistApi.js +0 -15
- package/dist/src/composables/useAllowlist.d.ts +0 -18
- package/dist/src/composables/useUserRole.d.ts +0 -9
- package/dist/src/enums/roles.d.ts +0 -9
- package/dist/src/services/allowlistApi.d.ts +0 -10
package/README.md
CHANGED
|
@@ -161,7 +161,6 @@ const config: GuidoConfigInput = {
|
|
|
161
161
|
modulesDisabled?: boolean, // Default: false - Disable modules panel
|
|
162
162
|
liquidSyntax?: boolean, // Default: false - Enable Liquid template syntax
|
|
163
163
|
autosave?: boolean, // Default: false - Show the Auto Save toggle in the header. See wiki/AUTOSAVE.md.
|
|
164
|
-
allowlistEnabled?: boolean, // Default: false - Pre-save domain-allowlist check (opt-in). Guido self-serves the block toaster (role lookup, deep-link, copy from window.trans).
|
|
165
164
|
},
|
|
166
165
|
|
|
167
166
|
// Optional: Callbacks
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ModuleFolderDefaults as y } from "../../enums/defaults.js";
|
|
2
|
-
import { object as a, number as n, optional as e, string as t, picklist as
|
|
2
|
+
import { object as a, number as n, optional as e, string as t, picklist as l, pipe as p, minLength as b, custom as f, boolean as o, array as c, record as k, fallback as R, literal as i, looseObject as g, variant as C, union as h, unknown as s, lazy as T } from "../../node_modules/valibot/dist/index.js";
|
|
3
3
|
const d = {
|
|
4
4
|
/** Promotional/marketing emails */
|
|
5
5
|
PROMOTIONAL: 1,
|
|
6
6
|
/** Transactional/system emails */
|
|
7
7
|
TRANSACTIONAL: 2
|
|
8
|
-
},
|
|
8
|
+
}, r = {
|
|
9
9
|
/** Standard email campaigns */
|
|
10
10
|
EMAIL: 60,
|
|
11
11
|
/** Architect journey builder */
|
|
@@ -38,16 +38,16 @@ const d = {
|
|
|
38
38
|
),
|
|
39
39
|
/** Product type identifier */
|
|
40
40
|
productType: e(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
l([
|
|
42
|
+
r.EMAIL,
|
|
43
|
+
r.ARCHITECT,
|
|
44
|
+
r.UNSUBSCRIBE_PAGES
|
|
45
45
|
]),
|
|
46
|
-
|
|
46
|
+
r.EMAIL
|
|
47
47
|
),
|
|
48
48
|
/** Message type (promotional or transactional) */
|
|
49
49
|
messageType: e(
|
|
50
|
-
|
|
50
|
+
l([d.PROMOTIONAL, d.TRANSACTIONAL]),
|
|
51
51
|
d.PROMOTIONAL
|
|
52
52
|
),
|
|
53
53
|
/** Display name for the current user */
|
|
@@ -76,14 +76,14 @@ const d = {
|
|
|
76
76
|
children: e(c(S)),
|
|
77
77
|
// eslint-disable-next-line camelcase -- backend field name
|
|
78
78
|
select_items: e(c(S))
|
|
79
|
-
})),
|
|
79
|
+
})), P = k(
|
|
80
80
|
t(),
|
|
81
|
-
|
|
82
|
-
),
|
|
81
|
+
R(c(S), [])
|
|
82
|
+
), D = g({
|
|
83
83
|
/** Block ID (matches the dictionary key and the legacy HTML element id) */
|
|
84
84
|
id: e(n()),
|
|
85
85
|
/** Decimal places for price display (legacy data may use string or number) */
|
|
86
|
-
decimalCount: e(
|
|
86
|
+
decimalCount: e(h([t(), n()])),
|
|
87
87
|
/** Pinned product IDs (empty array when filter-driven) */
|
|
88
88
|
productIds: e(c(s())),
|
|
89
89
|
/** Whether the block requested live products at send time */
|
|
@@ -117,14 +117,14 @@ const d = {
|
|
|
117
117
|
/** Block type marker used by some legacy variants */
|
|
118
118
|
blockType: e(t()),
|
|
119
119
|
/** Size variant marker (legacy data may use string or number) */
|
|
120
|
-
size: e(
|
|
120
|
+
size: e(h([t(), n()])),
|
|
121
121
|
/** Vertical responsiveness flag (legacy size=1 variants) */
|
|
122
122
|
verticalResponsiveness: e(o()),
|
|
123
123
|
/** Legacy "Move to next line" price placement toggle (cardPricePlacement.js) */
|
|
124
124
|
isPriceMovedToNextLine: e(o()),
|
|
125
125
|
/** Legacy "Hide if same as discounted" / delete-price-for-zero-sale toggle */
|
|
126
126
|
isPriceDeletedForZeroSale: e(o())
|
|
127
|
-
}),
|
|
127
|
+
}), E = a({
|
|
128
128
|
/**
|
|
129
129
|
* Legacy recommendation block configs keyed by block ID.
|
|
130
130
|
* Pass this when loading a template authored with the v1
|
|
@@ -132,7 +132,7 @@ const d = {
|
|
|
132
132
|
* strategy, currency, locale, and layout data.
|
|
133
133
|
*/
|
|
134
134
|
recommendationConfigs: e(
|
|
135
|
-
k(t(),
|
|
135
|
+
k(t(), D),
|
|
136
136
|
{}
|
|
137
137
|
)
|
|
138
138
|
}), M = a({
|
|
@@ -151,7 +151,7 @@ const d = {
|
|
|
151
151
|
* (first) partner's leaf attributes into the label→token map that repairs
|
|
152
152
|
* label-form placeholders (`{{ Phone Number }}`) in dropped saved modules.
|
|
153
153
|
*/
|
|
154
|
-
dynamicContentList: e(
|
|
154
|
+
dynamicContentList: e(P, {}),
|
|
155
155
|
/** Valid custom field attribute names from the partner's categorized fields */
|
|
156
156
|
customFieldAttributes: e(c(t()), []),
|
|
157
157
|
/** Selected unsubscribe page IDs */
|
|
@@ -159,7 +159,7 @@ const d = {
|
|
|
159
159
|
/** Force recreate template in Stripo storage (use true when updating externally modified templates) */
|
|
160
160
|
forceRecreate: e(o(), !1),
|
|
161
161
|
/** Migration-only inputs (legacy block configs) */
|
|
162
|
-
migration: e(
|
|
162
|
+
migration: e(E, {})
|
|
163
163
|
}), N = a({
|
|
164
164
|
/** Sender display name */
|
|
165
165
|
senderName: e(t(), ""),
|
|
@@ -202,9 +202,12 @@ const d = {
|
|
|
202
202
|
liquidSyntax: e(o(), !1),
|
|
203
203
|
/** Enable autosave (3-min interval + tab-hide). User toggles on/off from the header. */
|
|
204
204
|
autosave: e(o(), !1),
|
|
205
|
-
/**
|
|
206
|
-
|
|
207
|
-
|
|
205
|
+
/**
|
|
206
|
+
* Select a Reusable Recommendation Strategy (RRS) instead of a per-block algorithm.
|
|
207
|
+
* Replaces the algorithm dropdown with a strategy dropdown fed from Smart Recommender.
|
|
208
|
+
*/
|
|
209
|
+
reusableRecommendationStrategy: e(o(), !0)
|
|
210
|
+
}), U = l([
|
|
208
211
|
"amp-accordion",
|
|
209
212
|
"amp-carousel",
|
|
210
213
|
"amp-form-controls",
|
|
@@ -218,7 +221,7 @@ const d = {
|
|
|
218
221
|
"text-block",
|
|
219
222
|
"timer-block",
|
|
220
223
|
"video-block"
|
|
221
|
-
]), B =
|
|
224
|
+
]), B = l([
|
|
222
225
|
"dynamic-content",
|
|
223
226
|
"checkbox-block",
|
|
224
227
|
"radio-button-block",
|
|
@@ -271,11 +274,11 @@ const d = {
|
|
|
271
274
|
...m.entries,
|
|
272
275
|
type: i("custom"),
|
|
273
276
|
/** Custom processor function */
|
|
274
|
-
processor:
|
|
277
|
+
processor: f(
|
|
275
278
|
(u) => typeof u == "function",
|
|
276
279
|
"processor must be a function"
|
|
277
280
|
)
|
|
278
|
-
}), G =
|
|
281
|
+
}), G = C("type", [
|
|
279
282
|
H,
|
|
280
283
|
_,
|
|
281
284
|
j,
|
|
@@ -291,7 +294,7 @@ const d = {
|
|
|
291
294
|
* Return false to cancel the save operation.
|
|
292
295
|
*/
|
|
293
296
|
externalValidation: e(
|
|
294
|
-
|
|
297
|
+
f(
|
|
295
298
|
(u) => typeof u == "function",
|
|
296
299
|
"externalValidation must be a function"
|
|
297
300
|
)
|
|
@@ -326,7 +329,7 @@ export {
|
|
|
326
329
|
B as CustomBlockTypeSchema,
|
|
327
330
|
q as CustomRuleSchema,
|
|
328
331
|
U as DefaultBlockTypeSchema,
|
|
329
|
-
|
|
332
|
+
P as DynamicContentListSchema,
|
|
330
333
|
S as DynamicContentNodeSchema,
|
|
331
334
|
v as DynamicContentSchema,
|
|
332
335
|
O as EditorSchema,
|
|
@@ -335,14 +338,14 @@ export {
|
|
|
335
338
|
F as FeaturesSchema,
|
|
336
339
|
K as GuidoConfigSchema,
|
|
337
340
|
A as IdentitySchema,
|
|
338
|
-
|
|
341
|
+
D as LegacyRecommendationConfigSchema,
|
|
339
342
|
d as MessageType,
|
|
340
343
|
L as PartnerSchema,
|
|
341
|
-
|
|
344
|
+
r as ProductType,
|
|
342
345
|
_ as RegexRuleSchema,
|
|
343
346
|
j as RemoveRuleSchema,
|
|
344
347
|
H as ReplaceRuleSchema,
|
|
345
|
-
|
|
348
|
+
E as TemplateMigrationSchema,
|
|
346
349
|
M as TemplateSchema,
|
|
347
350
|
x as UISchema
|
|
348
351
|
};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import
|
|
1
|
+
import a from "./Guido.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
|
-
import
|
|
3
|
+
import i from "../_virtual/_plugin-vue2_normalizer.js";
|
|
4
4
|
var t = function() {
|
|
5
5
|
var o = this, r = o._self._c, e = o._self._setupProxy;
|
|
6
|
-
return r("div", { ref: "wrapperRef", staticClass: "guido-editor__wrapper", class: { "guido-editor__no-header": e.noHeader } }, [r(e.HeaderWrapper, { ref: "headerWrapperRef" }), r(e.AutoSaveController), e.editorStore.isPreviewModeOpen ? r(e.PreviewContainer) : o._e(), r("div", { directives: [{ name: "show", rawName: "v-show", value: !e.previewStore.isLoaded, expression: "!previewStore.isLoaded" }], staticClass: "guido-editor__container", class: { "guido-editor__no-header": e.noHeader }, attrs: { id: "guido-editor" } }), r(e.Toaster), r(e.FilterSelectionDrawer), r(e.SaveAsTemplateDrawer), e.isTestPartner() ? o._e() : r(e.OnboardingWrapper, { on: { "onboarding-finished": function(p) {
|
|
6
|
+
return r("div", { ref: "wrapperRef", staticClass: "guido-editor__wrapper", class: { "guido-editor__no-header": e.noHeader } }, [r(e.HeaderWrapper, { ref: "headerWrapperRef" }), r(e.AutoSaveController), e.editorStore.isPreviewModeOpen ? r(e.PreviewContainer) : o._e(), r("div", { directives: [{ name: "show", rawName: "v-show", value: !e.previewStore.isLoaded, expression: "!previewStore.isLoaded" }], staticClass: "guido-editor__container", class: { "guido-editor__no-header": e.noHeader }, attrs: { id: "guido-editor" } }), r(e.Toaster), r(e.FilterSelectionDrawer), r(e.StrategyDetailDrawer), r(e.SaveAsTemplateDrawer), e.isTestPartner() ? o._e() : r(e.OnboardingWrapper, { on: { "onboarding-finished": function(p) {
|
|
7
7
|
return e.emit("onboarding:finished");
|
|
8
8
|
} } }), r(e.UnsubscribeWrapper), r(e.LoadingWrapper)], 1);
|
|
9
|
-
}, n = [], s = /* @__PURE__ */
|
|
10
|
-
|
|
9
|
+
}, n = [], s = /* @__PURE__ */ i(
|
|
10
|
+
a,
|
|
11
11
|
t,
|
|
12
12
|
n,
|
|
13
13
|
!1,
|
|
14
14
|
null,
|
|
15
|
-
"
|
|
15
|
+
"f96d1003"
|
|
16
16
|
);
|
|
17
17
|
const l = s.exports;
|
|
18
18
|
export {
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
import { defineComponent as X, defineAsyncComponent as I, ref as W, computed as x, watch as Y, onMounted as Z, onUnmounted as ee } from "vue";
|
|
2
|
-
import { useCortexBlueprintBridge as
|
|
3
|
-
import { provideGuidoActions as
|
|
2
|
+
import { useCortexBlueprintBridge as te } from "../composables/useCortexBlueprintBridge.js";
|
|
3
|
+
import { provideGuidoActions as oe } from "../composables/useGuidoActions.js";
|
|
4
4
|
import { useGuidoStateBridge as ne } from "../composables/useGuidoStateBridge.js";
|
|
5
5
|
import { usePartner as re } from "../composables/usePartner.js";
|
|
6
6
|
import { useStripo as se } from "../composables/useStripo.js";
|
|
7
7
|
import { useTimerClone as ae } from "../composables/useTimerClone.js";
|
|
8
8
|
import { migrate as G } from "../config/migrator/index.js";
|
|
9
9
|
import { ModuleFolderDefaults as H } from "../enums/defaults.js";
|
|
10
|
-
import { RIBBON_SELECTOR as
|
|
11
|
-
import { useRecommendationExtensionStore as
|
|
10
|
+
import { RIBBON_SELECTOR as ie } from "../enums/onboarding.js";
|
|
11
|
+
import { useRecommendationExtensionStore as ce } from "../extensions/Blocks/Recommendation/store/recommendation.js";
|
|
12
12
|
import me from "./organisms/AutoSaveController.vue.js";
|
|
13
13
|
import de from "./organisms/base/Toaster.vue.js";
|
|
14
14
|
import le from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
|
|
15
|
-
import ue from "./organisms/
|
|
16
|
-
import pe from "./organisms/
|
|
17
|
-
import fe from "./organisms/
|
|
18
|
-
import ve from "./organisms/
|
|
19
|
-
import
|
|
20
|
-
import {
|
|
15
|
+
import ue from "./organisms/extensions/recommendation/StrategyDetailDrawer.vue.js";
|
|
16
|
+
import pe from "./organisms/header/HeaderWrapper.vue.js";
|
|
17
|
+
import fe from "./organisms/LoadingWrapper.vue.js";
|
|
18
|
+
import ve from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
|
|
19
|
+
import Se from "./organisms/unsubscribe/UnsubscribeWrapper.vue.js";
|
|
20
|
+
import { useStripoApi as ye } from "../services/stripoApi.js";
|
|
21
|
+
import { useConfigStore as ge } from "../stores/config.js";
|
|
21
22
|
import { useDynamicContentStore as he } from "../stores/dynamic-content.js";
|
|
22
23
|
import { useEditorStore as $ } from "../stores/editor.js";
|
|
23
|
-
import { usePreviewStore as
|
|
24
|
-
import { useTemplateStore as
|
|
25
|
-
import { useUnsubscribeStore as
|
|
26
|
-
const
|
|
24
|
+
import { usePreviewStore as be } from "../stores/preview.js";
|
|
25
|
+
import { useTemplateStore as we } from "../stores/template.js";
|
|
26
|
+
import { useUnsubscribeStore as De } from "../stores/unsubscribe.js";
|
|
27
|
+
const Je = /* @__PURE__ */ X({
|
|
27
28
|
__name: "Guido",
|
|
28
29
|
props: {
|
|
29
30
|
config: null
|
|
@@ -34,11 +35,11 @@ const Ve = /* @__PURE__ */ X({
|
|
|
34
35
|
() => import("./organisms/email-preview/PreviewContainer.vue.js")
|
|
35
36
|
), V = I(
|
|
36
37
|
() => import("./organisms/onboarding/OnboardingWrapper.vue.js")
|
|
37
|
-
),
|
|
38
|
-
|
|
39
|
-
const m = $(), j =
|
|
38
|
+
), w = W(), p = W(), f = he(), D = De(), c = ge();
|
|
39
|
+
c.init(b.config);
|
|
40
|
+
const m = $(), j = be(), d = x(() => m.hasChanges), { isTestPartner: J } = re(), E = () => {
|
|
40
41
|
var e;
|
|
41
|
-
return (e =
|
|
42
|
+
return (e = w.value) == null ? void 0 : e.handleSave(!0);
|
|
42
43
|
}, C = (e) => {
|
|
43
44
|
m.loadingStatus = e;
|
|
44
45
|
}, {
|
|
@@ -46,10 +47,10 @@ const Ve = /* @__PURE__ */ X({
|
|
|
46
47
|
userId: T,
|
|
47
48
|
partnerName: L,
|
|
48
49
|
username: k,
|
|
49
|
-
template:
|
|
50
|
+
template: t,
|
|
50
51
|
editor: s
|
|
51
|
-
} =
|
|
52
|
-
|
|
52
|
+
} = c, l = (t == null ? void 0 : t.html) || "", F = (t == null ? void 0 : t.css) || "", S = (t == null ? void 0 : t.preselectedDynamicContent) || [], U = (s == null ? void 0 : s.savedModulesFolderName) || H.SAVED_MODULES, _ = (s == null ? void 0 : s.defaultModulesFolderName) || H.DEFAULT_MODULES;
|
|
53
|
+
te(), ne();
|
|
53
54
|
const y = {
|
|
54
55
|
emailId: v,
|
|
55
56
|
userId: T,
|
|
@@ -62,11 +63,11 @@ const Ve = /* @__PURE__ */ X({
|
|
|
62
63
|
onReady: () => {
|
|
63
64
|
console.debug("guido:ready"), n("ready");
|
|
64
65
|
}
|
|
65
|
-
}, { initPlugin: O } = se(y, M), { getDefaultTemplate: P } =
|
|
66
|
+
}, { initPlugin: O } = se(y, M), { getDefaultTemplate: P } = ye(), { cloneTimersOnSave: R, hasTimerBlocks: A } = ae(), Q = x(() => {
|
|
66
67
|
var e;
|
|
67
|
-
return !((e =
|
|
68
|
+
return !((e = c.ui) != null && e.showHeader);
|
|
68
69
|
});
|
|
69
|
-
|
|
70
|
+
oe({
|
|
70
71
|
onBack: () => {
|
|
71
72
|
console.debug("guido:back"), n("back");
|
|
72
73
|
},
|
|
@@ -74,8 +75,8 @@ const Ve = /* @__PURE__ */ X({
|
|
|
74
75
|
console.debug("guido:save:start"), n("save:start");
|
|
75
76
|
},
|
|
76
77
|
onSaveComplete: (e) => {
|
|
77
|
-
const
|
|
78
|
-
console.debug("guido:save:complete",
|
|
78
|
+
const o = { ...e, metadata: y };
|
|
79
|
+
console.debug("guido:save:complete", o), n("save:complete", o);
|
|
79
80
|
},
|
|
80
81
|
onTestEmailClick: () => {
|
|
81
82
|
console.debug("guido:test-email:click"), n("test-email:click");
|
|
@@ -89,52 +90,52 @@ const Ve = /* @__PURE__ */ X({
|
|
|
89
90
|
Y(() => d.value, () => {
|
|
90
91
|
n("on-change", d.value);
|
|
91
92
|
});
|
|
92
|
-
const
|
|
93
|
-
const
|
|
94
|
-
console.debug("dynamic-content:open",
|
|
93
|
+
const g = (e) => {
|
|
94
|
+
const o = e, { attribute: u, position: i } = o.detail;
|
|
95
|
+
console.debug("dynamic-content:open", o.detail), n("dynamic-content:open", u, i);
|
|
95
96
|
};
|
|
96
97
|
let a = null;
|
|
97
|
-
const
|
|
98
|
-
var
|
|
99
|
-
const e = document.querySelector(
|
|
100
|
-
(
|
|
98
|
+
const h = () => {
|
|
99
|
+
var o;
|
|
100
|
+
const e = document.querySelector(ie);
|
|
101
|
+
(o = p.value) == null || o.style.setProperty("--ribbon-offset", `${(e == null ? void 0 : e.offsetHeight) ?? 0}px`);
|
|
101
102
|
};
|
|
102
103
|
return Z(async () => {
|
|
103
|
-
var
|
|
104
|
-
console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow"),
|
|
105
|
-
const e = (
|
|
106
|
-
e && (a = new ResizeObserver(
|
|
104
|
+
var o, u;
|
|
105
|
+
console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow"), ce().$reset(), $().$reset(), m.templateId = v, we().$reset(), h();
|
|
106
|
+
const e = (o = p.value) == null ? void 0 : o.parentElement;
|
|
107
|
+
e && (a = new ResizeObserver(h), a.observe(e));
|
|
107
108
|
try {
|
|
108
|
-
|
|
109
|
-
const
|
|
109
|
+
D.selectedUnsubscribePages = (t == null ? void 0 : t.selectedUnsubscribePages) || [];
|
|
110
|
+
const i = ((u = t == null ? void 0 : t.migration) == null ? void 0 : u.recommendationConfigs) ?? {};
|
|
110
111
|
let r = {
|
|
111
|
-
html: l && await G(l,
|
|
112
|
+
html: l && await G(l, i),
|
|
112
113
|
css: F
|
|
113
114
|
};
|
|
114
|
-
r.html || (r = await P(), r.html = await G(r.html,
|
|
115
|
-
} catch (
|
|
116
|
-
console.error("Failed to initialize Stripo editor:",
|
|
115
|
+
r.html || (r = await P(), r.html = await G(r.html, i)), A(r.html) && (r.html = await R(r.html)), await O(r), f.selectedDynamicContentList = S;
|
|
116
|
+
} catch (i) {
|
|
117
|
+
console.error("Failed to initialize Stripo editor:", i);
|
|
117
118
|
}
|
|
118
|
-
document.addEventListener("dynamic-content:open",
|
|
119
|
+
document.addEventListener("dynamic-content:open", g);
|
|
119
120
|
}), ee(() => {
|
|
120
|
-
a == null || a.disconnect(), document.removeEventListener("dynamic-content:open",
|
|
121
|
+
a == null || a.disconnect(), document.removeEventListener("dynamic-content:open", g);
|
|
121
122
|
try {
|
|
122
123
|
window.UIEditor.removeEditor();
|
|
123
124
|
} catch {
|
|
124
125
|
console.debug("Failed to remove Stripo editor: No editor found");
|
|
125
126
|
}
|
|
126
|
-
|
|
127
|
+
c.reset();
|
|
127
128
|
}), q({
|
|
128
129
|
dynamicContent: {
|
|
129
130
|
insert: B,
|
|
130
131
|
close: N
|
|
131
132
|
},
|
|
132
133
|
hasChanges: d,
|
|
133
|
-
saveSilent:
|
|
134
|
+
saveSilent: E,
|
|
134
135
|
setLoading: C
|
|
135
|
-
}), { __sfc: !0, PreviewContainer: K, OnboardingWrapper: V, headerWrapperRef:
|
|
136
|
+
}), { __sfc: !0, PreviewContainer: K, OnboardingWrapper: V, headerWrapperRef: w, wrapperRef: p, dynamicContentStore: f, unsubscribeStore: D, props: b, configStore: c, editorStore: m, previewStore: j, hasChanges: d, isTestPartner: J, saveSilent: E, setLoading: C, templateId: v, userId: T, partnerName: L, username: k, templateConfig: t, editorConfig: s, html: l, css: F, preselectedDynamicContentList: S, savedModulesFolderName: U, defaultModulesFolderName: _, emit: n, metadata: y, options: M, initPlugin: O, getDefaultTemplate: P, cloneTimersOnSave: R, hasTimerBlocks: A, noHeader: Q, insertDynamicContent: B, closeDynamicContent: N, handleDynamicContentOpen: g, ribbonObserver: a, updateRibbonOffset: h, AutoSaveController: me, Toaster: de, FilterSelectionDrawer: le, StrategyDetailDrawer: ue, HeaderWrapper: pe, LoadingWrapper: fe, SaveAsTemplateDrawer: ve, UnsubscribeWrapper: Se };
|
|
136
137
|
}
|
|
137
138
|
});
|
|
138
139
|
export {
|
|
139
|
-
|
|
140
|
+
Je as default
|
|
140
141
|
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import o from "./StrategyDetailDrawer.vue2.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import l from "../../../../_virtual/_plugin-vue2_normalizer.js";
|
|
4
|
+
var c = function() {
|
|
5
|
+
var i;
|
|
6
|
+
var a = this, s = a._self._c, t = a._self._setupProxy;
|
|
7
|
+
return s(t.InDrawer, { attrs: { id: "recommendation-strategy-detail-drawer", "close-button-status": "", "footer-status": "", "full-width-content-status": "", "overlay-status": "", size: "medium", state: "default", "description-status": !1, "footer-button-group-options": t.footerButtonGroupOptions, status: t.isOpen, "title-text": ((i = t.strategy) == null ? void 0 : i.name) || "" }, on: { cancelOrBackButtonEvent: t.close, onCloseEvent: t.close, primaryButtonEvent: t.onPrimaryAction }, scopedSlots: a._u([{ key: "headerBottomSlot", fn: function() {
|
|
8
|
+
return [t.strategy ? s(t.InTabs, { staticClass: "p-r z-4 px-5", attrs: { "active-tab": t.activeTab, "add-new-tab-active": !1, draggable: !1, "dropdown-tabs": !1, "tabs-list": t.tabs, "use-router": !1 }, on: { click: function(e) {
|
|
9
|
+
t.activeTab = e;
|
|
10
|
+
} } }) : a._e()];
|
|
11
|
+
}, proxy: !0 }, { key: "contentSlot", fn: function() {
|
|
12
|
+
return [t.strategy ? s("div", [t.isSharedAcrossCampaigns ? s("div", { staticClass: "px-5 pt-5" }, [s(t.InInfoBox, { attrs: { id: "strategy-shared-notice", theme: "light", variant: "information", "description-status": !1, "title-status": !1 } }, [s("ul", { staticClass: "strategy-shared-notice" }, a._l(t.sharedNotice, function(e, r) {
|
|
13
|
+
return s("li", { key: r, domProps: { innerHTML: a._s(e) } });
|
|
14
|
+
}), 0)])], 1) : a._e(), t.activeTab === t.DetailTabs.GENERAL ? s("div", [s("div", { staticClass: "px-5 py-5 bor-b-s-s bor-b-c-6 bor-b-w-1" }, [s("div", { staticClass: "f-s-13 f-w-600 mb-3" }, [a._v(" " + a._s(t.trans("discovery-strategy.suitable-page-and-channel-types")) + " ")]), a._l(t.visibleRows(t.pageAndChannelDetails), function(e, r) {
|
|
15
|
+
return s(t.InfoDisplayValue, { key: e.title, attrs: { index: r, title: e.title, "translate-value": e.translateValue, value: e.value } });
|
|
16
|
+
})], 2), s("div", { staticClass: "px-5 py-5 bor-b-s-s bor-b-c-6 bor-b-w-1" }, [s("div", { staticClass: "f-s-13 f-w-600 mb-3" }, [a._v(" " + a._s(t.trans("discovery-strategy.recommendation-widget-preferences")) + " ")]), a._l(t.visibleRows(t.widgetPreferences), function(e, r) {
|
|
17
|
+
return s(t.InfoDisplayValue, { key: e.title, attrs: { index: r, title: e.title, "translate-value": e.translateValue, value: e.value } });
|
|
18
|
+
})], 2), s("div", { staticClass: "px-5 py-5 bor-b-s-s bor-b-c-6 bor-b-w-1" }, [s("div", { staticClass: "f-s-13 f-w-600 mb-3" }, [a._v(" " + a._s(t.trans("discovery-strategy.advanced-personalization-criteria")) + " ")]), a._l(t.visibleRows(t.advancedPersonalization), function(e, r) {
|
|
19
|
+
return s(t.InfoDisplayValue, { key: e.title, attrs: { index: r, title: e.title, "translate-value": e.translateValue, value: e.value } });
|
|
20
|
+
})], 2), s("div", { staticClass: "px-5 py-5" }, [s("div", { staticClass: "f-s-13 f-w-600 mb-3" }, [a._v(" " + a._s(t.trans("discovery-strategy.filters")) + " ")]), s(t.FilterHumanizer, { attrs: { filters: t.strategy.filters } })], 1)]) : a._e(), t.activeTab === t.DetailTabs.OTHER ? s("div", [s("div", { staticClass: "px-5 py-5 bor-b-s-s bor-b-c-6 bor-b-w-1 other-details" }, a._l(t.visibleRows(t.otherDetails), function(e, r) {
|
|
21
|
+
return s(t.InfoDisplayValue, { key: e.title, attrs: { icon: e.icon, "icon-tooltip": e.iconTooltip, "icon-tooltip-after-clicked": e.iconTooltipAfterClicked, index: r, title: e.title, "translate-value": e.translateValue, value: e.value }, on: { iconClick: function(f) {
|
|
22
|
+
var n;
|
|
23
|
+
(n = e.iconClick) == null || n.call(e, e.value);
|
|
24
|
+
} } });
|
|
25
|
+
}), 1), s("div", { staticClass: "px-5 py-5" }, [s(t.CampaignTable, { attrs: { campaigns: t.store.strategyCampaigns, loading: t.store.strategyCampaignsLoading } })], 1)]) : a._e()]) : a._e()];
|
|
26
|
+
}, proxy: !0 }]) });
|
|
27
|
+
}, u = [], v = /* @__PURE__ */ l(
|
|
28
|
+
o,
|
|
29
|
+
c,
|
|
30
|
+
u,
|
|
31
|
+
!1,
|
|
32
|
+
null,
|
|
33
|
+
"8e655adb"
|
|
34
|
+
);
|
|
35
|
+
const _ = v.exports;
|
|
36
|
+
export {
|
|
37
|
+
_ as default
|
|
38
|
+
};
|