@useinsider/guido 3.21.0-beta.1bd7edd → 3.21.0-beta.c433290
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 +1 -1
- package/dist/@types/config/schemas.js +37 -38
- package/dist/components/Guido.vue.js +6 -6
- package/dist/components/Guido.vue2.js +112 -103
- package/dist/components/organisms/AutoSaveController.vue2.js +20 -10
- package/dist/components/organisms/header/AutoSaveStatus.vue.js +17 -0
- package/dist/components/organisms/header/AutoSaveStatus.vue2.js +25 -0
- package/dist/components/organisms/header/EditorActions.vue.js +13 -13
- package/dist/components/organisms/header/EditorActions.vue2.js +58 -73
- package/dist/components/organisms/header/EditorActionsMenu.vue.js +20 -0
- package/dist/components/organisms/header/EditorActionsMenu.vue2.js +98 -0
- package/dist/components/organisms/header/HeaderWrapper.vue.js +6 -6
- package/dist/components/organisms/header/HeaderWrapper.vue2.js +9 -17
- package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
- package/dist/components/organisms/header/LeftSlot.vue2.js +28 -23
- package/dist/components/organisms/header/MiddleSlot.vue.js +4 -4
- package/dist/components/organisms/header/MiddleSlot.vue2.js +8 -7
- package/dist/components/organisms/header/RightSlot.vue.js +11 -10
- package/dist/components/organisms/header/RightSlot.vue2.js +13 -18
- package/dist/components/organisms/header/accessibility/AccessibilityToolbar.vue.js +18 -0
- package/dist/components/organisms/header/accessibility/AccessibilityToolbar.vue2.js +37 -0
- package/dist/components/organisms/header/accessibility/ColorVisionSelect.vue.js +22 -0
- package/dist/components/organisms/header/accessibility/ColorVisionSelect.vue2.js +48 -0
- package/dist/components/organisms/onboarding/EditorTabBarOnboarding.vue.js +19 -0
- package/dist/components/organisms/onboarding/EditorTabBarOnboarding.vue2.js +90 -0
- package/dist/components/organisms/onboarding/OnboardingWrapper.vue.js +12 -12
- package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +60 -35
- package/dist/composables/useAccessibilityApi.js +51 -0
- package/dist/composables/useBlocksConfig.js +24 -32
- package/dist/composables/useCustomInterfaceAppearance.js +42 -41
- package/dist/config/i18n/en/labels.json.js +36 -4
- package/dist/config/i18n/en/tooltips.json.js +2 -1
- package/dist/enums/academy.js +0 -1
- package/dist/guido.css +1 -1
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +92 -93
- package/dist/node_modules/valibot/dist/index.js +261 -297
- package/dist/sprite.svg +10 -0
- package/dist/src/@types/config/schemas.d.ts +2 -4
- package/dist/src/components/organisms/AutoSaveController.vue.d.ts +19 -1
- package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -19
- package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -19
- package/dist/src/components/organisms/onboarding/EditorTabBarOnboarding.vue.d.ts +2 -0
- package/dist/src/composables/useAccessibilityApi.d.ts +13 -0
- package/dist/src/composables/useActionsApi.d.ts +2 -2
- package/dist/src/composables/useConfig.d.ts +2 -2
- package/dist/src/enums/academy.d.ts +0 -1
- package/dist/src/stores/autosave.d.ts +73 -1
- package/dist/src/stores/config.d.ts +20 -166
- package/dist/src/stores/editor.d.ts +109 -0
- package/dist/src/stores/onboarding.d.ts +966 -35
- package/dist/src/stores/version-history.d.ts +1 -1
- package/dist/src/utils/timeUtil.d.ts +5 -8
- package/dist/static/styles/components/accessibility.css.js +234 -0
- package/dist/static/styles/variables.css.js +2 -0
- package/dist/stores/autosave.js +12 -7
- package/dist/stores/config.js +6 -13
- package/dist/stores/editor.js +8 -3
- package/dist/stores/onboarding.js +48 -22
- package/dist/utils/pairProductVariables.js +14 -15
- package/dist/utils/timeUtil.js +6 -17
- package/package.json +1 -1
- package/dist/@types/display-condition.js +0 -25
- package/dist/components/organisms/display-conditions/CodeEditorField.vue.js +0 -20
- package/dist/components/organisms/display-conditions/CodeEditorField.vue2.js +0 -30
- package/dist/components/organisms/display-conditions/DisplayConditionCreateDrawer.vue.js +0 -30
- package/dist/components/organisms/display-conditions/DisplayConditionCreateDrawer.vue2.js +0 -71
- package/dist/components/organisms/display-conditions/DisplayConditionSelectDrawer.vue.js +0 -34
- package/dist/components/organisms/display-conditions/DisplayConditionSelectDrawer.vue2.js +0 -57
- package/dist/components/organisms/display-conditions/DisplayConditionsHost.vue.js +0 -17
- package/dist/components/organisms/display-conditions/DisplayConditionsHost.vue2.js +0 -22
- package/dist/components/organisms/header/AutoSaveToggle.vue.js +0 -22
- package/dist/components/organisms/header/AutoSaveToggle.vue2.js +0 -19
- package/dist/composables/useDisplayConditions.js +0 -102
- package/dist/enums/display-condition.js +0 -12
- package/dist/extensions/DisplayConditions/bridge.js +0 -17
- package/dist/extensions/DisplayConditions/constants.js +0 -17
- package/dist/extensions/DisplayConditions/control.js +0 -178
- package/dist/extensions/DisplayConditions/display-conditions.css.js +0 -201
- package/dist/extensions/DisplayConditions/extension.js +0 -28
- package/dist/extensions/DisplayConditions/iconsRegistry.js +0 -20
- package/dist/extensions/DisplayConditions/library.js +0 -27
- package/dist/extensions/DisplayConditions/settingsPanel.js +0 -17
- package/dist/services/displayConditionApi.js +0 -39
- package/dist/src/@types/display-condition.d.ts +0 -59
- package/dist/src/components/organisms/display-conditions/CodeEditorField.vue.d.ts +0 -43
- package/dist/src/composables/useDisplayConditions.d.ts +0 -16
- package/dist/src/enums/display-condition.d.ts +0 -15
- package/dist/src/extensions/DisplayConditions/bridge.d.ts +0 -6
- package/dist/src/extensions/DisplayConditions/constants.d.ts +0 -14
- package/dist/src/extensions/DisplayConditions/control.d.ts +0 -23
- package/dist/src/extensions/DisplayConditions/extension.d.ts +0 -2
- package/dist/src/extensions/DisplayConditions/iconsRegistry.d.ts +0 -4
- package/dist/src/extensions/DisplayConditions/library.d.ts +0 -8
- package/dist/src/extensions/DisplayConditions/settingsPanel.d.ts +0 -5
- package/dist/src/mock/api/display-conditions.d.ts +0 -2
- package/dist/src/services/displayConditionApi.d.ts +0 -8
- package/dist/src/stores/display-condition.d.ts +0 -81
- package/dist/src/utils/displayCondition.d.ts +0 -10
- package/dist/src/utils/protectTableText.d.ts +0 -2
- package/dist/stores/display-condition.js +0 -28
- package/dist/utils/displayCondition.js +0 -26
- package/dist/utils/protectTableText.js +0 -22
- /package/dist/src/components/organisms/{display-conditions/DisplayConditionCreateDrawer.vue.d.ts → header/AutoSaveStatus.vue.d.ts} +0 -0
- /package/dist/src/components/organisms/{display-conditions/DisplayConditionSelectDrawer.vue.d.ts → header/EditorActionsMenu.vue.d.ts} +0 -0
- /package/dist/src/components/organisms/{display-conditions/DisplayConditionsHost.vue.d.ts → header/accessibility/AccessibilityToolbar.vue.d.ts} +0 -0
- /package/dist/src/components/organisms/header/{AutoSaveToggle.vue.d.ts → accessibility/ColorVisionSelect.vue.d.ts} +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import i from "./AccessibilityToolbar.vue2.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import s from "../../../../_virtual/_plugin-vue2_normalizer.js";
|
|
4
|
+
var a = function() {
|
|
5
|
+
var o = this, e = o._self._c, t = o._self._setupProxy;
|
|
6
|
+
return e("div", { staticClass: "d-f a-i-c accessibility-toolbar" }, [e(t.InButtonV2, { attrs: { id: "guido__a11y-no-images", "data-testid": "Accessibility No Images", "left-icon": "line-no-image-v2", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.loadingStatus, "label-text-status": !1, "selected-status": t.editorStore.imagesHidden, "tooltip-options": t.getTooltipOptions("guido__a11y-no-images"), "tooltip-text": t.imagesTooltip }, on: { click: t.toggleImages } }), e(t.InButtonV2, { attrs: { id: "guido__a11y-code", "data-testid": "Accessibility Code Editor", "left-icon": "line-code", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.loadingStatus, "label-text-status": !1, "selected-status": t.editorStore.isCodeEditorOpen, "tooltip-options": t.getTooltipOptions("guido__a11y-code"), "tooltip-text": t.trans("newsletter.html-editor") }, on: { click: t.toggleCodeEditor } }), e(t.ColorVisionSelect), e(t.InSegments, { attrs: { id: "guido__a11y-view-selection", "with-icon": "", disable: t.editorStore.loadingStatus, "segment-list": t.segmentList, selected: t.editorStore.editorVisualMode }, on: { click: t.handleView } })], 1);
|
|
7
|
+
}, l = [], d = /* @__PURE__ */ s(
|
|
8
|
+
i,
|
|
9
|
+
a,
|
|
10
|
+
l,
|
|
11
|
+
!1,
|
|
12
|
+
null,
|
|
13
|
+
"391019bc"
|
|
14
|
+
);
|
|
15
|
+
const _ = d.exports;
|
|
16
|
+
export {
|
|
17
|
+
_ as default
|
|
18
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { defineComponent as d, computed as n } from "vue";
|
|
2
|
+
import { useAccessibilityApi as c } from "../../../../composables/useAccessibilityApi.js";
|
|
3
|
+
import { useTranslations as g } from "../../../../composables/useTranslations.js";
|
|
4
|
+
import { useEditorStore as u } from "../../../../stores/editor.js";
|
|
5
|
+
import { getTooltipOptions as e } from "../../../../utils/tooltipUtils.js";
|
|
6
|
+
import { InSegments as _, InButtonV2 as f } from "@useinsider/design-system-vue";
|
|
7
|
+
import w from "./ColorVisionSelect.vue.js";
|
|
8
|
+
const A = /* @__PURE__ */ d({
|
|
9
|
+
__name: "AccessibilityToolbar",
|
|
10
|
+
setup(b) {
|
|
11
|
+
const t = u(), o = g(), {
|
|
12
|
+
toggleImages: r,
|
|
13
|
+
toggleCodeEditor: m,
|
|
14
|
+
switchToDesktopPreview: i,
|
|
15
|
+
switchToMobilePreview: s
|
|
16
|
+
} = c(), l = n(() => [
|
|
17
|
+
{
|
|
18
|
+
text: "",
|
|
19
|
+
icon: "line-desktop",
|
|
20
|
+
value: "desktop",
|
|
21
|
+
tooltipText: o("newsletter.desktop"),
|
|
22
|
+
tooltipOptions: e("guido__a11y-view-desktop")
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
text: "",
|
|
26
|
+
icon: "line-menu-mobileapp",
|
|
27
|
+
value: "mobile",
|
|
28
|
+
tooltipText: o("newsletter.mobile"),
|
|
29
|
+
tooltipOptions: e("guido__a11y-view-mobile")
|
|
30
|
+
}
|
|
31
|
+
]), p = n(() => t.imagesHidden ? o("email-editor.a11y-show-images") : o("email-editor.a11y-hide-images"));
|
|
32
|
+
return { __sfc: !0, editorStore: t, trans: o, toggleImages: r, toggleCodeEditor: m, switchToDesktopPreview: i, switchToMobilePreview: s, segmentList: l, imagesTooltip: p, handleView: (a) => a === "mobile" ? s() : i(), getTooltipOptions: e, InButtonV2: f, InSegments: _, ColorVisionSelect: w };
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
export {
|
|
36
|
+
A as default
|
|
37
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import i from "./ColorVisionSelect.vue2.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import n from "../../../../_virtual/_plugin-vue2_normalizer.js";
|
|
4
|
+
var l = function() {
|
|
5
|
+
var o = this, e = o._self._c, t = o._self._setupProxy;
|
|
6
|
+
return e("div", { staticClass: "color-vision-select p-r" }, [e(t.InButtonV2, { attrs: { id: "guido__a11y-color-vision-trigger", "left-icon": "line-show-on", "right-icon": "line-chevron-small-down", type: "secondary", "disabled-status": t.editorStore.loadingStatus, "label-text": t.selectedOption.text }, on: { click: function(s) {
|
|
7
|
+
t.isOpen = !t.isOpen;
|
|
8
|
+
} } }), e(t.InDropdownMenu, { staticClass: "color-vision-select__dropdown", attrs: { id: "guido__a11y-color-vision-menu", "is-wrapped-description": "", "box-width": "basedOnLongestItem", "static-position": "bottom left", "dynamic-position": !1, "max-height": 400, options: t.options, "pre-selected-values": [t.selectedOption], "select-all-option-status": !1, status: t.isOpen }, on: { clickOutside: function(s) {
|
|
9
|
+
t.isOpen = !1;
|
|
10
|
+
}, optionClick: t.select } })], 1);
|
|
11
|
+
}, r = [], a = /* @__PURE__ */ n(
|
|
12
|
+
i,
|
|
13
|
+
l,
|
|
14
|
+
r,
|
|
15
|
+
!1,
|
|
16
|
+
null,
|
|
17
|
+
"64cb50da"
|
|
18
|
+
);
|
|
19
|
+
const u = a.exports;
|
|
20
|
+
export {
|
|
21
|
+
u as default
|
|
22
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { defineComponent as d, ref as p, computed as c } from "vue";
|
|
2
|
+
import { useAccessibilityApi as m } from "../../../../composables/useAccessibilityApi.js";
|
|
3
|
+
import { useTranslations as u } from "../../../../composables/useTranslations.js";
|
|
4
|
+
import { useEditorStore as v } from "../../../../stores/editor.js";
|
|
5
|
+
import { InDropdownMenu as f, InButtonV2 as y } from "@useinsider/design-system-vue";
|
|
6
|
+
const C = /* @__PURE__ */ d({
|
|
7
|
+
__name: "ColorVisionSelect",
|
|
8
|
+
setup(K) {
|
|
9
|
+
const i = "none", a = [
|
|
10
|
+
{
|
|
11
|
+
value: i,
|
|
12
|
+
labelKey: "email-editor.cvd-none"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
value: "protanopia",
|
|
16
|
+
labelKey: "email-editor.cvd-protanopia",
|
|
17
|
+
descriptionKey: "email-editor.cvd-protanopia-description"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
value: "deuteranopia",
|
|
21
|
+
labelKey: "email-editor.cvd-deuteranopia",
|
|
22
|
+
descriptionKey: "email-editor.cvd-deuteranopia-description"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
value: "tritanopia",
|
|
26
|
+
labelKey: "email-editor.cvd-tritanopia",
|
|
27
|
+
descriptionKey: "email-editor.cvd-tritanopia-description"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
value: "achromatopsia",
|
|
31
|
+
labelKey: "email-editor.cvd-achromatopsia",
|
|
32
|
+
descriptionKey: "email-editor.cvd-achromatopsia-description"
|
|
33
|
+
}
|
|
34
|
+
], r = v(), o = u(), { setColorVisionDeficiency: n } = m(), s = p(!1), t = c(() => a.map((e) => ({
|
|
35
|
+
text: o(e.labelKey),
|
|
36
|
+
value: e.value,
|
|
37
|
+
...e.descriptionKey ? { description: o(e.descriptionKey) } : {}
|
|
38
|
+
}))), l = c(
|
|
39
|
+
() => t.value.find((e) => e.value === (r.colorVisionDeficiency || i)) ?? t.value[0]
|
|
40
|
+
);
|
|
41
|
+
return { __sfc: !0, NONE: i, OPTIONS: a, editorStore: r, trans: o, setColorVisionDeficiency: n, isOpen: s, options: t, selectedOption: l, select: ({ value: e }) => {
|
|
42
|
+
n(e === i ? "" : e), s.value = !1;
|
|
43
|
+
}, InButtonV2: y, InDropdownMenu: f };
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
export {
|
|
47
|
+
C as default
|
|
48
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import i from "./EditorTabBarOnboarding.vue2.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import a from "../../../_virtual/_plugin-vue2_normalizer.js";
|
|
4
|
+
var s = function() {
|
|
5
|
+
var r, n;
|
|
6
|
+
var t = this, e = t._self._c, o = t._self._setupProxy;
|
|
7
|
+
return o.isVisible ? e(o.InOnboard, { key: "guido__tab-bar-onboard", staticClass: "w-21-s p-a z-11", class: (r = o.onboardingStore.getEditorTabBarCurrentCard) == null ? void 0 : r.classes, attrs: { id: o.CARD_ID, "is-multiple-page": "", visible: "", "image-source": "", title: "", "pages-config": o.onboardingStore.onboardings.editorTabBarOnboarding.config, "pointer-position": (n = o.onboardingStore.getEditorTabBarCurrentCard) == null ? void 0 : n.position, "right-position": o.placement.right, "top-position": o.placement.top }, on: { backButtonClick: o.handleBack, close: o.finish, nextButtonClick: o.handleNext } }) : t._e();
|
|
8
|
+
}, c = [], d = /* @__PURE__ */ a(
|
|
9
|
+
i,
|
|
10
|
+
s,
|
|
11
|
+
c,
|
|
12
|
+
!1,
|
|
13
|
+
null,
|
|
14
|
+
"219b4f7c"
|
|
15
|
+
);
|
|
16
|
+
const g = d.exports;
|
|
17
|
+
export {
|
|
18
|
+
g as default
|
|
19
|
+
};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { defineComponent as M, ref as q, computed as P, watch as I, nextTick as N } from "vue";
|
|
2
|
+
import { useConfig as D } from "../../../composables/useConfig.js";
|
|
3
|
+
import { useRibbonOffset as F } from "../../../composables/useRibbonOffset.js";
|
|
4
|
+
import { useTranslations as G } from "../../../composables/useTranslations.js";
|
|
5
|
+
import { useOnboardingStore as K } from "../../../stores/onboarding.js";
|
|
6
|
+
import { InOnboard as $ } from "@useinsider/design-system-vue";
|
|
7
|
+
const Q = /* @__PURE__ */ M({
|
|
8
|
+
__name: "EditorTabBarOnboarding",
|
|
9
|
+
setup(H) {
|
|
10
|
+
const r = "editorTabBarOnboarding", B = "guido__tab-bar-onboard", i = G(), o = K(), { isFeatureEnabled: x } = D(), { getTopPosition: f } = F(), k = () => o.next(r), T = () => o.previous(r), _ = () => void o.close(r), C = 4, O = 17, d = "#guido__kebab-button", b = ".editor-actions-menu__dropdown", c = (t, e, n) => ({
|
|
11
|
+
classes: "guido-tab-bar-onboarding",
|
|
12
|
+
position: "Right Top",
|
|
13
|
+
title: i(t),
|
|
14
|
+
description: i(e),
|
|
15
|
+
imageSource: "",
|
|
16
|
+
backButtonType: "text",
|
|
17
|
+
backButtonText: i("action-builder.back"),
|
|
18
|
+
backButtonClick: T,
|
|
19
|
+
nextButtonType: "text",
|
|
20
|
+
nextButtonText: i("action-builder.next"),
|
|
21
|
+
nextButtonClick: k,
|
|
22
|
+
...n
|
|
23
|
+
}), g = { backButtonType: void 0, backButtonText: void 0, backButtonClick: () => {
|
|
24
|
+
} }, v = () => x("autosave") ? [{
|
|
25
|
+
card: c("email-editor.onboarding-autosave-title", "email-editor.onboarding-autosave-description", {
|
|
26
|
+
pinsMenu: !0
|
|
27
|
+
}),
|
|
28
|
+
edge: b,
|
|
29
|
+
target: '[data-attr-value="guido__kebab-autosave"]'
|
|
30
|
+
}] : [], h = () => [
|
|
31
|
+
{
|
|
32
|
+
card: c("email-editor.onboarding-kebab-title", "email-editor.onboarding-kebab-description", g),
|
|
33
|
+
edge: d,
|
|
34
|
+
target: d
|
|
35
|
+
},
|
|
36
|
+
...v(),
|
|
37
|
+
{
|
|
38
|
+
card: c("email-editor.onboarding-accessibility-title", "email-editor.onboarding-accessibility-description", {
|
|
39
|
+
nextButtonText: i("action-builder.ok"),
|
|
40
|
+
nextButtonClick: _,
|
|
41
|
+
pinsMenu: !0
|
|
42
|
+
}),
|
|
43
|
+
edge: b,
|
|
44
|
+
target: '[data-attr-value="guido__kebab-accessibility"]'
|
|
45
|
+
}
|
|
46
|
+
], y = (t, e) => {
|
|
47
|
+
if (e <= 0 || e >= t.length)
|
|
48
|
+
return { steps: t, offset: 0 };
|
|
49
|
+
const [n, ...a] = t.slice(e);
|
|
50
|
+
return { steps: [{ ...n, card: { ...n.card, ...g } }, ...a], offset: e };
|
|
51
|
+
}, l = () => ({ top: f(56), right: "150px" });
|
|
52
|
+
let s = [];
|
|
53
|
+
const p = q(l()), m = async () => {
|
|
54
|
+
var R;
|
|
55
|
+
await N();
|
|
56
|
+
const t = s[o.onboardings.editorTabBarOnboarding.cardIndex], e = (R = document.getElementById(B)) == null ? void 0 : R.offsetParent, n = (t && document.querySelector(t.edge)) ?? document.querySelector(d), a = (t && document.querySelector(t.target)) ?? document.querySelector(d);
|
|
57
|
+
if (!e || !n || !a) {
|
|
58
|
+
p.value = l();
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const u = e.getBoundingClientRect(), E = a.getBoundingClientRect();
|
|
62
|
+
p.value = {
|
|
63
|
+
top: `${Math.round(E.top + E.height / 2 - u.top - O)}px`,
|
|
64
|
+
right: `${Math.round(u.right - n.getBoundingClientRect().left - C)}px`
|
|
65
|
+
};
|
|
66
|
+
}, A = P(
|
|
67
|
+
() => o.onboardings.editorTabBarOnboarding.config.length > 0 && o.onboardings.editorTabBarOnboarding.isActive
|
|
68
|
+
), S = () => {
|
|
69
|
+
var t, e;
|
|
70
|
+
(e = (t = o.getEditorTabBarCurrentCard) == null ? void 0 : t.nextButtonClick) == null || e.call(t);
|
|
71
|
+
}, w = () => {
|
|
72
|
+
var t, e;
|
|
73
|
+
(e = (t = o.getEditorTabBarCurrentCard) == null ? void 0 : t.backButtonClick) == null || e.call(t);
|
|
74
|
+
};
|
|
75
|
+
return I(
|
|
76
|
+
() => o.onboardings.editorTabBarOnboarding.isActive,
|
|
77
|
+
async (t) => {
|
|
78
|
+
if (!t)
|
|
79
|
+
return;
|
|
80
|
+
await N();
|
|
81
|
+
const { cardOffset: e, cardIndex: n } = o.onboardings.editorTabBarOnboarding, a = y(h(), e + n);
|
|
82
|
+
({ steps: s } = a), o.resetCardIndex(r), o.setConfig(r, s.map((u) => u.card), a.offset), await m();
|
|
83
|
+
},
|
|
84
|
+
{ immediate: !0 }
|
|
85
|
+
), I(() => o.onboardings.editorTabBarOnboarding.cardIndex, m), { __sfc: !0, ONBOARDING: r, CARD_ID: B, trans: i, onboardingStore: o, isFeatureEnabled: x, getTopPosition: f, goNext: k, goBack: T, finish: _, ANCHOR_GAP: C, POINTER_CENTER: O, KEBAB: d, MENU: b, card: c, NO_BACK: g, autoSaveStep: v, buildSteps: h, resumeFrom: y, designFallback: l, steps: s, placement: p, place: m, isVisible: A, handleNext: S, handleBack: w, InOnboard: $ };
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
export {
|
|
89
|
+
Q as default
|
|
90
|
+
};
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
var
|
|
4
|
-
var n = this,
|
|
5
|
-
return
|
|
6
|
-
return e
|
|
7
|
-
return
|
|
1
|
+
import o from "./OnboardingWrapper.vue2.js";
|
|
2
|
+
import s from "../../../_virtual/_plugin-vue2_normalizer.js";
|
|
3
|
+
var _ = function() {
|
|
4
|
+
var n = this, r = n._self._c, t = n._self._setupProxy;
|
|
5
|
+
return r("div", n._l(t.visibleOnboardings, function(e) {
|
|
6
|
+
return r(e.component, { key: e.type, tag: "component", on: { "onboarding-finished": function(l) {
|
|
7
|
+
return t.handleFinished(e.type);
|
|
8
8
|
} } });
|
|
9
9
|
}), 1);
|
|
10
|
-
},
|
|
11
|
-
|
|
12
|
-
s,
|
|
10
|
+
}, i = [], a = /* @__PURE__ */ s(
|
|
11
|
+
o,
|
|
13
12
|
_,
|
|
13
|
+
i,
|
|
14
14
|
!1,
|
|
15
15
|
null,
|
|
16
16
|
null
|
|
17
17
|
);
|
|
18
|
-
const
|
|
18
|
+
const f = a.exports;
|
|
19
19
|
export {
|
|
20
|
-
|
|
20
|
+
f as default
|
|
21
21
|
};
|
|
@@ -1,50 +1,75 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
|
|
1
|
+
import { defineComponent as S, computed as e, onMounted as h, watch as t, ref as T } from "vue";
|
|
2
|
+
import w from "./AMPOnboarding.vue.js";
|
|
3
|
+
import P from "./EditorTabBarOnboarding.vue.js";
|
|
4
|
+
import B from "./GenericOnboarding.vue.js";
|
|
5
|
+
import A from "./ItemsOnboarding.vue.js";
|
|
6
|
+
import M from "./NewVersionPopup.vue.js";
|
|
7
|
+
import _ from "./RecommendationLegacyStrategyOnboarding.vue.js";
|
|
8
|
+
import H from "./RecommendationStrategyOnboarding.vue.js";
|
|
9
|
+
import F from "./TextBlockOnboarding.vue.js";
|
|
10
|
+
import V from "./VersionHistoryOnboarding.vue.js";
|
|
11
|
+
import { useConfig as x } from "../../../composables/useConfig.js";
|
|
12
|
+
import { usePartner as C } from "../../../composables/usePartner.js";
|
|
13
|
+
import { useEditorStore as E } from "../../../stores/editor.js";
|
|
14
|
+
import { useOnboardingStore as I } from "../../../stores/onboarding.js";
|
|
15
|
+
import { usePreviewStore as N } from "../../../stores/preview.js";
|
|
16
|
+
const $ = /* @__PURE__ */ S({
|
|
15
17
|
__name: "OnboardingWrapper",
|
|
16
18
|
emits: ["onboarding-finished"],
|
|
17
|
-
setup(
|
|
18
|
-
const o =
|
|
19
|
-
{ type: "newVersionPopup", component:
|
|
20
|
-
{ type: "genericOnboarding", component:
|
|
21
|
-
{ type: "textBlockOnboarding", component:
|
|
22
|
-
{ type: "versionHistoryOnboarding", component:
|
|
23
|
-
{ type: "ampOnboarding", component:
|
|
24
|
-
{ type: "itemsOnboarding", component:
|
|
25
|
-
{ type: "
|
|
26
|
-
{ type: "
|
|
27
|
-
|
|
28
|
-
|
|
19
|
+
setup(R, { emit: p }) {
|
|
20
|
+
const o = I(), i = E(), b = N(), { isTestPartner: m } = C(), { isFeatureEnabled: g } = x(), a = e(() => i.isStripoInitialized), s = e(() => m()), O = [
|
|
21
|
+
{ type: "newVersionPopup", component: M },
|
|
22
|
+
{ type: "genericOnboarding", component: B },
|
|
23
|
+
{ type: "textBlockOnboarding", component: F },
|
|
24
|
+
{ type: "versionHistoryOnboarding", component: V },
|
|
25
|
+
{ type: "ampOnboarding", component: w },
|
|
26
|
+
{ type: "itemsOnboarding", component: A },
|
|
27
|
+
{ type: "editorTabBarOnboarding", component: P },
|
|
28
|
+
{ type: "recommendationStrategyOnboarding", component: H },
|
|
29
|
+
{ type: "recommendationLegacyStrategyOnboarding", component: _ }
|
|
30
|
+
], f = (n) => s.value || !a.value ? !1 : n === "newVersionPopup" ? o.shouldShowOnboarding(n) : o.isActive(n), l = e(() => O.filter((n) => f(n.type)));
|
|
31
|
+
h(async () => {
|
|
29
32
|
await o.fetchUserModalState();
|
|
30
33
|
}), t(
|
|
31
|
-
() =>
|
|
32
|
-
(n,
|
|
33
|
-
n && !
|
|
34
|
+
() => i.isVersionHistoryOpen,
|
|
35
|
+
(n, r) => {
|
|
36
|
+
n && !r && (o.isActive("editorTabBarOnboarding") && o.closeForSession("editorTabBarOnboarding"), o.shouldShowOnboarding("versionHistoryOnboarding") && o.start("versionHistoryOnboarding")), !n && r && o.isActive("versionHistoryOnboarding") && o.close("versionHistoryOnboarding");
|
|
34
37
|
}
|
|
35
38
|
), t(
|
|
36
|
-
() =>
|
|
37
|
-
(n,
|
|
38
|
-
|
|
39
|
+
() => b.emailFormat,
|
|
40
|
+
(n, r) => {
|
|
41
|
+
r !== "AMP" && n === "AMP" && o.shouldShowOnboarding("ampOnboarding") && o.start("ampOnboarding");
|
|
39
42
|
}
|
|
40
43
|
), t(
|
|
41
|
-
() =>
|
|
44
|
+
() => i.isPreviewModeOpen,
|
|
42
45
|
(n) => {
|
|
43
46
|
!n && o.isActive("ampOnboarding") && o.close("ampOnboarding");
|
|
44
47
|
}
|
|
45
|
-
)
|
|
48
|
+
);
|
|
49
|
+
const d = T(!1), v = (n) => {
|
|
50
|
+
n === "newVersionPopup" && (d.value = !0), p("onboarding-finished");
|
|
51
|
+
}, c = e(() => i.isNormalMode && !i.isPreviewModeOpen), u = e(() => a.value && o.isFetched && g("accessibilityTesting") && !s.value && c.value && !(o.shouldShowOnboarding("newVersionPopup") && !d.value) && !o.isOnboardingActive() && !o.closedThisSession.includes("editorTabBarOnboarding") && o.shouldShowOnboarding("editorTabBarOnboarding"));
|
|
52
|
+
return t(
|
|
53
|
+
u,
|
|
54
|
+
(n) => {
|
|
55
|
+
n && o.start("editorTabBarOnboarding");
|
|
56
|
+
},
|
|
57
|
+
{ immediate: !0 }
|
|
58
|
+
), t(
|
|
59
|
+
c,
|
|
60
|
+
(n) => {
|
|
61
|
+
if (!n && o.isActive("editorTabBarOnboarding")) {
|
|
62
|
+
const { cardIndex: r, config: y } = o.onboardings.editorTabBarOnboarding;
|
|
63
|
+
if (i.isAccessibilityTestingOpen && r === y.length - 1) {
|
|
64
|
+
o.close("editorTabBarOnboarding");
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
o.closeForSession("editorTabBarOnboarding");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
), { __sfc: !0, emit: p, onboardingStore: o, editorStore: i, previewStore: b, isTestPartner: m, isFeatureEnabled: g, isStripoReady: a, isTestPartnerActive: s, onboardingConfigs: O, shouldShow: f, visibleOnboardings: l, isNewVersionPopupClosed: d, handleFinished: v, isTourAnchored: c, canStartTabBarTour: u };
|
|
46
71
|
}
|
|
47
72
|
});
|
|
48
73
|
export {
|
|
49
|
-
|
|
74
|
+
$ as default
|
|
50
75
|
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ToasterTypeOptions as p } from "../enums/toaster.js";
|
|
2
|
+
import { useEditorStore as m } from "../stores/editor.js";
|
|
3
|
+
import { findEditorApi as d, EDITOR_NOT_READY_MESSAGE as A } from "../utils/stripoEditorApi.js";
|
|
4
|
+
import { useToaster as b } from "./useToaster.js";
|
|
5
|
+
const C = () => {
|
|
6
|
+
const e = m(), { showToaster: a, handleError: t } = b(), s = (i) => {
|
|
7
|
+
var g;
|
|
8
|
+
const o = (g = d()) == null ? void 0 : g.accessibilityApi;
|
|
9
|
+
if (!o) {
|
|
10
|
+
a({ type: p.Error, message: A });
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
try {
|
|
14
|
+
i(o);
|
|
15
|
+
} catch (y) {
|
|
16
|
+
t(y, "Accessibility Test action failed");
|
|
17
|
+
}
|
|
18
|
+
}, c = () => s((i) => {
|
|
19
|
+
i.openAccessibilityTestingMode(), e.isAccessibilityTestingOpen = !0;
|
|
20
|
+
}), r = () => {
|
|
21
|
+
var i;
|
|
22
|
+
try {
|
|
23
|
+
(i = d()) == null || i.accessibilityApi.closeAccessibilityTestingMode();
|
|
24
|
+
} catch (o) {
|
|
25
|
+
t(o, "Failed to exit Accessibility Test");
|
|
26
|
+
} finally {
|
|
27
|
+
e.isAccessibilityTestingOpen = !1, e.imagesHidden = !1, e.colorVisionDeficiency = "";
|
|
28
|
+
}
|
|
29
|
+
}, T = () => e.isAccessibilityTestingOpen ? r() : c(), n = () => s((i) => {
|
|
30
|
+
i.showImages(), e.imagesHidden = !1;
|
|
31
|
+
}), l = () => s((i) => {
|
|
32
|
+
i.hideImages(), e.imagesHidden = !0;
|
|
33
|
+
});
|
|
34
|
+
return {
|
|
35
|
+
openAccessibilityTestingMode: c,
|
|
36
|
+
closeAccessibilityTestingMode: r,
|
|
37
|
+
toggleAccessibilityTestingMode: T,
|
|
38
|
+
showImages: n,
|
|
39
|
+
hideImages: l,
|
|
40
|
+
toggleImages: () => e.imagesHidden ? n() : l(),
|
|
41
|
+
setColorVisionDeficiency: (i) => s((o) => {
|
|
42
|
+
o.setColorVisionDeficiency(i), e.colorVisionDeficiency = i;
|
|
43
|
+
}),
|
|
44
|
+
switchToDesktopPreview: () => s((i) => i.switchToDesktopPreview()),
|
|
45
|
+
switchToMobilePreview: () => s((i) => i.switchToMobilePreview()),
|
|
46
|
+
toggleCodeEditor: () => s((i) => i.emitToggleCodeEditor())
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
export {
|
|
50
|
+
C as useAccessibilityApi
|
|
51
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useConfigStore as
|
|
3
|
-
const
|
|
1
|
+
import r from "../extensions/ModulesTabIcons/extension.js";
|
|
2
|
+
import { useConfigStore as l } from "../stores/config.js";
|
|
3
|
+
const a = {
|
|
4
4
|
"amp-accordion": "ampAccordionEnabled",
|
|
5
5
|
"amp-carousel": "ampCarouselEnabled",
|
|
6
6
|
"amp-form-controls": "ampFormControlsEnabled",
|
|
@@ -14,7 +14,7 @@ const s = {
|
|
|
14
14
|
"text-block": "textEnabled",
|
|
15
15
|
"timer-block": "timerEnabled",
|
|
16
16
|
"video-block": "videoEnabled"
|
|
17
|
-
},
|
|
17
|
+
}, s = {
|
|
18
18
|
"dynamic-content": () => import("../extensions/DynamicContent/extension.js"),
|
|
19
19
|
"checkbox-block": () => import("../extensions/Blocks/Checkbox/extension.js"),
|
|
20
20
|
"radio-button-block": () => import("../extensions/Blocks/RadioButton/extension.js"),
|
|
@@ -22,48 +22,40 @@ const s = {
|
|
|
22
22
|
"unsubscribe-block": () => import("../extensions/Blocks/Unsubscribe/extension.js"),
|
|
23
23
|
"coupon-block": () => import("../extensions/Blocks/CouponBlock/extension.js"),
|
|
24
24
|
"items-block": () => import("../extensions/Blocks/Items/extension.js")
|
|
25
|
-
},
|
|
26
|
-
if (!
|
|
25
|
+
}, i = (n) => {
|
|
26
|
+
if (!n || !n.length)
|
|
27
27
|
return {};
|
|
28
28
|
const t = {};
|
|
29
|
-
return
|
|
30
|
-
const e =
|
|
29
|
+
return n.forEach((o) => {
|
|
30
|
+
const e = a[o];
|
|
31
31
|
e && (t[e] = !1);
|
|
32
32
|
}), t;
|
|
33
|
-
}, m = async (
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
return n;
|
|
42
|
-
const e = await Promise.all(
|
|
43
|
-
o.map(async (r) => {
|
|
44
|
-
const a = i[r];
|
|
45
|
-
return a ? (await a()).default : null;
|
|
33
|
+
}, b = () => [r], m = async (n) => {
|
|
34
|
+
const t = b();
|
|
35
|
+
if (!n || !n.length)
|
|
36
|
+
return t;
|
|
37
|
+
const o = await Promise.all(
|
|
38
|
+
n.map(async (e) => {
|
|
39
|
+
const c = s[e];
|
|
40
|
+
return c ? (await c()).default : null;
|
|
46
41
|
})
|
|
47
42
|
);
|
|
48
43
|
return [
|
|
49
|
-
...
|
|
50
|
-
...
|
|
44
|
+
...t,
|
|
45
|
+
...o.filter((e) => e !== null)
|
|
51
46
|
];
|
|
52
|
-
},
|
|
53
|
-
const
|
|
47
|
+
}, E = () => {
|
|
48
|
+
const n = l();
|
|
54
49
|
return {
|
|
55
50
|
getStripoBlocksConfig: async () => {
|
|
56
|
-
const
|
|
51
|
+
const o = n.blocks;
|
|
57
52
|
return {
|
|
58
|
-
baseBlocks:
|
|
59
|
-
extensions: await
|
|
60
|
-
n == null ? void 0 : n.includeCustoms,
|
|
61
|
-
o.externalDisplayConditions
|
|
62
|
-
)
|
|
53
|
+
baseBlocks: i(o == null ? void 0 : o.excludeDefaults),
|
|
54
|
+
extensions: await m(o == null ? void 0 : o.includeCustoms)
|
|
63
55
|
};
|
|
64
56
|
}
|
|
65
57
|
};
|
|
66
58
|
};
|
|
67
59
|
export {
|
|
68
|
-
|
|
60
|
+
E as useBlocksConfig
|
|
69
61
|
};
|