@useinsider/guido 3.2.0-beta.8b0bc0c → 3.2.0-beta.8e8f902

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.
Files changed (290) hide show
  1. package/README.md +25 -1
  2. package/dist/@types/config/schemas.js +38 -36
  3. package/dist/@types/config/validator.js +34 -27
  4. package/dist/components/Guido.vue.js +4 -4
  5. package/dist/components/Guido.vue2.js +88 -82
  6. package/dist/components/organisms/AutoSaveController.vue.js +17 -0
  7. package/dist/components/organisms/AutoSaveController.vue2.js +13 -0
  8. package/dist/components/organisms/base/Toaster.vue2.js +11 -10
  9. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +12 -12
  10. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue2.js +6 -6
  11. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue2.js +15 -9
  12. package/dist/components/organisms/extensions/recommendation/FilterItem.vue2.js +40 -31
  13. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +20 -19
  14. package/dist/components/organisms/extensions/recommendation/Filters.vue2.js +14 -11
  15. package/dist/components/organisms/header/AutoSaveToggle.vue.js +22 -0
  16. package/dist/components/organisms/header/AutoSaveToggle.vue2.js +19 -0
  17. package/dist/components/organisms/header/EditorActions.vue.js +12 -11
  18. package/dist/components/organisms/header/EditorActions.vue2.js +22 -18
  19. package/dist/components/organisms/header/HeaderWrapper.vue2.js +15 -12
  20. package/dist/components/organisms/header/LeftSlot.vue2.js +19 -16
  21. package/dist/components/organisms/header/MiddleSlot.vue2.js +11 -14
  22. package/dist/components/organisms/header/RightSlot.vue.js +8 -8
  23. package/dist/components/organisms/header/RightSlot.vue2.js +17 -13
  24. package/dist/components/organisms/onboarding/AMPOnboarding.vue.js +12 -11
  25. package/dist/components/organisms/onboarding/AMPOnboarding.vue2.js +51 -29
  26. package/dist/components/organisms/onboarding/GenericOnboarding.vue.js +13 -12
  27. package/dist/components/organisms/onboarding/GenericOnboarding.vue2.js +44 -40
  28. package/dist/components/organisms/onboarding/ItemsOnboarding.vue.js +13 -12
  29. package/dist/components/organisms/onboarding/ItemsOnboarding.vue2.js +50 -47
  30. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +21 -18
  31. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +31 -27
  32. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue.js +13 -12
  33. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue2.js +35 -44
  34. package/dist/components/organisms/onboarding/VersionHistoryOnboarding.vue.js +12 -11
  35. package/dist/components/organisms/onboarding/VersionHistoryOnboarding.vue2.js +23 -20
  36. package/dist/components/organisms/save-as-template/SaveAsTemplateDrawer.vue2.js +9 -8
  37. package/dist/components/organisms/unsubscribe/UnsubscribeWrapper.vue.js +10 -9
  38. package/dist/composables/useActionsApi.js +38 -37
  39. package/dist/composables/useAutoSave.js +71 -0
  40. package/dist/composables/useBlocksConfig.js +26 -26
  41. package/dist/composables/useFullStoryBridge.js +9 -8
  42. package/dist/composables/useHtmlCompiler.js +26 -34
  43. package/dist/composables/useHtmlValidator.js +109 -101
  44. package/dist/composables/useHttp.js +30 -30
  45. package/dist/composables/usePartner.js +1 -1
  46. package/dist/composables/useRecommendation.js +15 -14
  47. package/dist/composables/useRibbonOffset.js +21 -0
  48. package/dist/composables/useSave.js +22 -21
  49. package/dist/composables/useStripo.js +50 -53
  50. package/dist/composables/useSyncModuleExtractor.js +29 -31
  51. package/dist/composables/useTimerClone.js +25 -24
  52. package/dist/composables/useTranslations.js +16 -23
  53. package/dist/composables/useValidation.js +8 -7
  54. package/dist/composables/validators/useLiquidValidator.js +13 -13
  55. package/dist/config/compiler/unsubscribeCompilerRules.js +41 -37
  56. package/dist/config/compiler/utils/recommendationCompilerUtils.js +11 -10
  57. package/dist/config/migrator/checkboxMigrator.js +21 -20
  58. package/dist/config/migrator/couponBlockMigrator.js +19 -18
  59. package/dist/config/migrator/itemsBlockMigrator.js +89 -87
  60. package/dist/config/migrator/radioButtonMigrator.js +13 -12
  61. package/dist/config/migrator/recommendationMigrator.js +109 -106
  62. package/dist/config/migrator/unsubscribeMigrator.js +11 -10
  63. package/dist/enums/onboarding.js +7 -2
  64. package/dist/enums/unsubscribe.js +34 -27
  65. package/dist/extensions/Blocks/Items/block.js +9 -9
  66. package/dist/extensions/Blocks/Items/controls/button/link.js +14 -14
  67. package/dist/extensions/Blocks/Items/controls/cardComposition.js +97 -89
  68. package/dist/extensions/Blocks/Items/controls/image/link.js +14 -14
  69. package/dist/extensions/Blocks/Items/controls/name/trimming.js +24 -23
  70. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +14 -13
  71. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +47 -44
  72. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +38 -38
  73. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +11 -11
  74. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +40 -38
  75. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +35 -35
  76. package/dist/extensions/Blocks/Items/controls/settingsControl.js +162 -155
  77. package/dist/extensions/Blocks/Items/enums/productEnums.js +14 -9
  78. package/dist/extensions/Blocks/Items/template.js +210 -210
  79. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +36 -36
  80. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +133 -128
  81. package/dist/extensions/Blocks/Recommendation/controls/customAttribute/index.js +9 -9
  82. package/dist/extensions/Blocks/Recommendation/controls/customAttribute/textTrim.js +10 -10
  83. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +9 -9
  84. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +18 -17
  85. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +6 -4
  86. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +90 -82
  87. package/dist/extensions/Blocks/Recommendation/controls/main/layoutOrientation.js +18 -18
  88. package/dist/extensions/Blocks/Recommendation/controls/main/productCount.js +4 -4
  89. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +36 -35
  90. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +135 -134
  91. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +24 -24
  92. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +10 -10
  93. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +24 -24
  94. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +24 -24
  95. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +4 -4
  96. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +4 -4
  97. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +24 -24
  98. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +4 -4
  99. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +4 -4
  100. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +24 -24
  101. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +32 -32
  102. package/dist/extensions/Blocks/Recommendation/controls/syncInfoMessage.js +20 -18
  103. package/dist/extensions/Blocks/Recommendation/extension.js +32 -31
  104. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +16 -8
  105. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +56 -55
  106. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +23 -22
  107. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +10 -10
  108. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +10 -10
  109. package/dist/extensions/Blocks/Recommendation/templates/index.js +6 -6
  110. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +25 -24
  111. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +1 -1
  112. package/dist/extensions/Blocks/Recommendation/templates/utils.js +47 -45
  113. package/dist/extensions/Blocks/Recommendation/validation/filterSchema.js +16 -13
  114. package/dist/extensions/Blocks/Unsubscribe/control.js +13 -11
  115. package/dist/extensions/Blocks/Unsubscribe/elements/preview.js +18 -16
  116. package/dist/extensions/Blocks/common-control.js +26 -25
  117. package/dist/extensions/DynamicContent/dynamic-content.js +58 -53
  118. package/dist/guido.css +1 -1
  119. package/dist/library.js +12 -11
  120. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +286 -262
  121. package/dist/node_modules/lodash-es/_DataView.js +6 -0
  122. package/dist/node_modules/lodash-es/_Hash.js +20 -0
  123. package/dist/node_modules/lodash-es/_ListCache.js +20 -0
  124. package/dist/node_modules/lodash-es/_Map.js +6 -0
  125. package/dist/node_modules/lodash-es/_MapCache.js +20 -0
  126. package/dist/node_modules/lodash-es/_Promise.js +6 -0
  127. package/dist/node_modules/lodash-es/_Set.js +6 -0
  128. package/dist/node_modules/lodash-es/_SetCache.js +13 -0
  129. package/dist/node_modules/lodash-es/_Stack.js +18 -0
  130. package/dist/node_modules/lodash-es/_Symbol.js +5 -0
  131. package/dist/node_modules/lodash-es/_Uint8Array.js +5 -0
  132. package/dist/node_modules/lodash-es/_WeakMap.js +6 -0
  133. package/dist/node_modules/lodash-es/_arrayFilter.js +10 -0
  134. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +20 -0
  135. package/dist/node_modules/lodash-es/_arrayMap.js +8 -0
  136. package/dist/node_modules/lodash-es/_arrayPush.js +8 -0
  137. package/dist/node_modules/lodash-es/_arraySome.js +9 -0
  138. package/dist/node_modules/lodash-es/_assocIndexOf.js +10 -0
  139. package/dist/node_modules/lodash-es/_baseEach.js +6 -0
  140. package/dist/node_modules/lodash-es/_baseFlatten.js +13 -0
  141. package/dist/node_modules/lodash-es/_baseFor.js +5 -0
  142. package/dist/node_modules/lodash-es/_baseForOwn.js +8 -0
  143. package/dist/node_modules/lodash-es/_baseGet.js +11 -0
  144. package/dist/node_modules/lodash-es/_baseGetAllKeys.js +9 -0
  145. package/dist/node_modules/lodash-es/_baseGetTag.js +10 -0
  146. package/dist/node_modules/lodash-es/_baseHasIn.js +6 -0
  147. package/dist/node_modules/lodash-es/_baseIsArguments.js +9 -0
  148. package/dist/node_modules/lodash-es/_baseIsEqual.js +8 -0
  149. package/dist/node_modules/lodash-es/_baseIsEqualDeep.js +32 -0
  150. package/dist/node_modules/lodash-es/_baseIsMatch.js +29 -0
  151. package/dist/node_modules/lodash-es/_baseIsNative.js +16 -0
  152. package/dist/node_modules/lodash-es/_baseIsTypedArray.js +12 -0
  153. package/dist/node_modules/lodash-es/_baseIteratee.js +11 -0
  154. package/dist/node_modules/lodash-es/_baseKeys.js +14 -0
  155. package/dist/node_modules/lodash-es/_baseMap.js +11 -0
  156. package/dist/node_modules/lodash-es/_baseMatches.js +12 -0
  157. package/dist/node_modules/lodash-es/_baseMatchesProperty.js +17 -0
  158. package/dist/node_modules/lodash-es/_baseProperty.js +8 -0
  159. package/dist/node_modules/lodash-es/_basePropertyDeep.js +9 -0
  160. package/dist/node_modules/lodash-es/_baseRange.js +9 -0
  161. package/dist/node_modules/lodash-es/_baseTimes.js +8 -0
  162. package/dist/node_modules/lodash-es/_baseToString.js +18 -0
  163. package/dist/node_modules/lodash-es/_baseTrim.js +8 -0
  164. package/dist/node_modules/lodash-es/_baseUnary.js +8 -0
  165. package/dist/node_modules/lodash-es/_cacheHas.js +6 -0
  166. package/dist/node_modules/lodash-es/_castPath.js +10 -0
  167. package/dist/node_modules/lodash-es/_coreJsData.js +5 -0
  168. package/dist/node_modules/lodash-es/_createBaseEach.js +15 -0
  169. package/dist/node_modules/lodash-es/_createBaseFor.js +13 -0
  170. package/dist/node_modules/lodash-es/_createRange.js +11 -0
  171. package/dist/node_modules/lodash-es/_equalArrays.js +40 -0
  172. package/dist/node_modules/lodash-es/_equalByTag.js +45 -0
  173. package/dist/node_modules/lodash-es/_equalObjects.js +36 -0
  174. package/dist/node_modules/lodash-es/_freeGlobal.js +4 -0
  175. package/dist/node_modules/lodash-es/_getAllKeys.js +9 -0
  176. package/dist/node_modules/lodash-es/_getMapData.js +8 -0
  177. package/dist/node_modules/lodash-es/_getMatchData.js +12 -0
  178. package/dist/node_modules/lodash-es/_getNative.js +9 -0
  179. package/dist/node_modules/lodash-es/_getRawTag.js +15 -0
  180. package/dist/node_modules/lodash-es/_getSymbols.js +10 -0
  181. package/dist/node_modules/lodash-es/_getTag.js +28 -0
  182. package/dist/node_modules/lodash-es/_getValue.js +6 -0
  183. package/dist/node_modules/lodash-es/_hasPath.js +19 -0
  184. package/dist/node_modules/lodash-es/_hashClear.js +7 -0
  185. package/dist/node_modules/lodash-es/_hashDelete.js +7 -0
  186. package/dist/node_modules/lodash-es/_hashGet.js +13 -0
  187. package/dist/node_modules/lodash-es/_hashHas.js +9 -0
  188. package/dist/node_modules/lodash-es/_hashSet.js +9 -0
  189. package/dist/node_modules/lodash-es/_isFlattenable.js +10 -0
  190. package/dist/node_modules/lodash-es/_isIndex.js +8 -0
  191. package/dist/node_modules/lodash-es/_isIterateeCall.js +13 -0
  192. package/dist/node_modules/lodash-es/_isKey.js +12 -0
  193. package/dist/node_modules/lodash-es/_isKeyable.js +7 -0
  194. package/dist/node_modules/lodash-es/_isMasked.js +11 -0
  195. package/dist/node_modules/lodash-es/_isPrototype.js +8 -0
  196. package/dist/node_modules/lodash-es/_isStrictComparable.js +7 -0
  197. package/dist/node_modules/lodash-es/_listCacheClear.js +6 -0
  198. package/dist/node_modules/lodash-es/_listCacheDelete.js +12 -0
  199. package/dist/node_modules/lodash-es/_listCacheGet.js +8 -0
  200. package/dist/node_modules/lodash-es/_listCacheHas.js +7 -0
  201. package/dist/node_modules/lodash-es/_listCacheSet.js +8 -0
  202. package/dist/node_modules/lodash-es/_mapCacheClear.js +13 -0
  203. package/dist/node_modules/lodash-es/_mapCacheDelete.js +8 -0
  204. package/dist/node_modules/lodash-es/_mapCacheGet.js +7 -0
  205. package/dist/node_modules/lodash-es/_mapCacheHas.js +7 -0
  206. package/dist/node_modules/lodash-es/_mapCacheSet.js +8 -0
  207. package/dist/node_modules/lodash-es/_mapToArray.js +9 -0
  208. package/dist/node_modules/lodash-es/_matchesStrictComparable.js +8 -0
  209. package/dist/node_modules/lodash-es/_memoizeCapped.js +11 -0
  210. package/dist/node_modules/lodash-es/_nativeCreate.js +5 -0
  211. package/dist/node_modules/lodash-es/_nativeKeys.js +5 -0
  212. package/dist/node_modules/lodash-es/_nodeUtil.js +11 -0
  213. package/dist/node_modules/lodash-es/_objectToString.js +7 -0
  214. package/dist/node_modules/lodash-es/_overArg.js +8 -0
  215. package/dist/node_modules/lodash-es/_root.js +5 -0
  216. package/dist/node_modules/lodash-es/_setCacheAdd.js +7 -0
  217. package/dist/node_modules/lodash-es/_setCacheHas.js +6 -0
  218. package/dist/node_modules/lodash-es/_setToArray.js +9 -0
  219. package/dist/node_modules/lodash-es/_stackClear.js +7 -0
  220. package/dist/node_modules/lodash-es/_stackDelete.js +7 -0
  221. package/dist/node_modules/lodash-es/_stackGet.js +6 -0
  222. package/dist/node_modules/lodash-es/_stackHas.js +6 -0
  223. package/dist/node_modules/lodash-es/_stackSet.js +17 -0
  224. package/dist/node_modules/lodash-es/_stringToPath.js +10 -0
  225. package/dist/node_modules/lodash-es/_toKey.js +10 -0
  226. package/dist/node_modules/lodash-es/_toSource.js +17 -0
  227. package/dist/node_modules/lodash-es/_trimmedEndIndex.js +9 -0
  228. package/dist/node_modules/lodash-es/eq.js +6 -0
  229. package/dist/node_modules/lodash-es/flatMap.js +8 -0
  230. package/dist/node_modules/lodash-es/get.js +8 -0
  231. package/dist/node_modules/lodash-es/hasIn.js +8 -0
  232. package/dist/node_modules/lodash-es/identity.js +6 -0
  233. package/dist/node_modules/lodash-es/isArguments.js +10 -0
  234. package/dist/node_modules/lodash-es/isArray.js +4 -0
  235. package/dist/node_modules/lodash-es/isArrayLike.js +8 -0
  236. package/dist/node_modules/lodash-es/isBuffer.js +6 -0
  237. package/dist/node_modules/lodash-es/isFunction.js +12 -0
  238. package/dist/node_modules/lodash-es/isLength.js +7 -0
  239. package/dist/node_modules/lodash-es/isObject.js +7 -0
  240. package/dist/node_modules/lodash-es/isObjectLike.js +6 -0
  241. package/dist/node_modules/lodash-es/isSymbol.js +9 -0
  242. package/dist/node_modules/lodash-es/isTypedArray.js +7 -0
  243. package/dist/node_modules/lodash-es/keys.js +9 -0
  244. package/dist/node_modules/lodash-es/map.js +11 -0
  245. package/dist/node_modules/lodash-es/memoize.js +18 -0
  246. package/dist/node_modules/lodash-es/property.js +10 -0
  247. package/dist/node_modules/lodash-es/range.js +5 -0
  248. package/dist/node_modules/lodash-es/stubArray.js +6 -0
  249. package/dist/node_modules/lodash-es/stubFalse.js +6 -0
  250. package/dist/node_modules/lodash-es/toFinite.js +14 -0
  251. package/dist/node_modules/lodash-es/toNumber.js +22 -0
  252. package/dist/node_modules/lodash-es/toString.js +7 -0
  253. package/dist/node_modules/valibot/dist/index.js +126 -122
  254. package/dist/package.json.js +1 -1
  255. package/dist/services/recommendationApi.js +17 -14
  256. package/dist/services/templateLibraryApi.js +40 -38
  257. package/dist/src/@types/config/schemas.d.ts +4 -0
  258. package/dist/src/components/Guido.vue.d.ts +1 -1
  259. package/dist/src/components/organisms/AutoSaveController.vue.d.ts +2 -0
  260. package/dist/src/components/organisms/header/AutoSaveToggle.vue.d.ts +2 -0
  261. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
  262. package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -1
  263. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  264. package/dist/src/components/wrappers/WpModal.vue.d.ts +1 -1
  265. package/dist/src/composables/useAutoSave.d.ts +3 -0
  266. package/dist/src/composables/useConfig.d.ts +2 -0
  267. package/dist/src/composables/useHtmlCompiler.d.ts +2 -1
  268. package/dist/src/composables/useRibbonOffset.d.ts +4 -0
  269. package/dist/src/composables/useSave.d.ts +1 -1
  270. package/dist/src/composables/useTranslations.d.ts +1 -1
  271. package/dist/src/enums/onboarding.d.ts +6 -0
  272. package/dist/src/enums/unsubscribe.d.ts +5 -0
  273. package/dist/src/stores/autosave.d.ts +12 -0
  274. package/dist/src/stores/config.d.ts +18 -0
  275. package/dist/src/stores/dynamic-content.d.ts +3 -3
  276. package/dist/src/stores/editor.d.ts +23 -0
  277. package/dist/src/stores/onboarding.d.ts +4 -0
  278. package/dist/src/utils/timeUtil.d.ts +8 -0
  279. package/dist/stores/autosave.js +17 -0
  280. package/dist/stores/config.js +81 -25
  281. package/dist/stores/dynamic-content.js +11 -6
  282. package/dist/stores/editor.js +3 -1
  283. package/dist/stores/onboarding.js +9 -5
  284. package/dist/stores/preview.js +9 -6
  285. package/dist/stores/unsubscribe.js +4 -1
  286. package/dist/utils/dateUtil.js +10 -7
  287. package/dist/utils/genericUtil.js +13 -10
  288. package/dist/utils/pairProductVariables.js +89 -87
  289. package/dist/utils/timeUtil.js +19 -0
  290. package/package.json +5 -8
@@ -1,23 +1,23 @@
1
1
  import { defineComponent as f, ref as s, onMounted as c, onBeforeUnmount as m, nextTick as u } from "vue";
2
2
  import { useTranslations as p } from "../../../../composables/useTranslations.js";
3
3
  import { usePreviewStore as l } from "../../../../stores/preview.js";
4
- import v from "./DesktopBrowserHeader.vue.js";
5
- const R = /* @__PURE__ */ f({
4
+ import _ from "./DesktopBrowserHeader.vue.js";
5
+ const x = /* @__PURE__ */ f({
6
6
  __name: "DesktopPreview",
7
- setup(_) {
8
- const i = p(), r = s(), o = s(!1), a = l();
7
+ setup(v) {
8
+ const a = p(), o = s(), n = s(!1), i = l();
9
9
  let e = null;
10
- const n = () => {
11
- r.value && (e = new ResizeObserver(() => {
12
- }), e.observe(r.value), u(() => {
13
- o.value = !0;
10
+ const t = () => {
11
+ o.value && (e = new ResizeObserver(() => {
12
+ }), e.observe(o.value), u(() => {
13
+ n.value = !0;
14
14
  }));
15
- }, t = () => {
16
- e?.disconnect();
15
+ }, r = () => {
16
+ e == null || e.disconnect();
17
17
  };
18
- return c(n), m(t), { __sfc: !0, trans: i, containerRef: r, isContainerReady: o, previewStore: a, resizeObserver: e, initIframe: n, cleanIframe: t, DesktopBrowserHeader: v };
18
+ return c(t), m(r), { __sfc: !0, trans: a, containerRef: o, isContainerReady: n, previewStore: i, resizeObserver: e, initIframe: t, cleanIframe: r, DesktopBrowserHeader: _ };
19
19
  }
20
20
  });
21
21
  export {
22
- R as default
22
+ x as default
23
23
  };
@@ -7,14 +7,14 @@ const h = /* @__PURE__ */ m({
7
7
  __name: "ContentView",
8
8
  emits: ["back-to-inbox"],
9
9
  setup(v) {
10
- const i = a(), r = p(), t = c(), { setupResponsivePreview: n } = f(), s = (e) => {
11
- ["transform", "transform-origin", "height"].forEach((o) => {
12
- e.documentElement.style.removeProperty(o);
10
+ const i = a(), t = p(), n = c(), { setupResponsivePreview: r } = f(), s = (o) => {
11
+ ["transform", "transform-origin", "height"].forEach((e) => {
12
+ o.documentElement.style.removeProperty(e);
13
13
  });
14
14
  };
15
- return { __sfc: !0, trans: i, previewStore: r, iframeRef: t, setupResponsivePreview: n, clearAMPTransforms: s, onLoad: () => {
16
- const e = t.value, o = e?.contentDocument;
17
- o && (n(e), r.isAMPResponsive && s(o));
15
+ return { __sfc: !0, trans: i, previewStore: t, iframeRef: n, setupResponsivePreview: r, clearAMPTransforms: s, onLoad: () => {
16
+ const o = n.value, e = o == null ? void 0 : o.contentDocument;
17
+ e && (r(o), t.isAMPResponsive && s(e));
18
18
  }, InIcons: u };
19
19
  }
20
20
  });
@@ -1,15 +1,21 @@
1
- import { defineComponent as m, computed as o } from "vue";
2
- import { useConfig as a } from "../../../../composables/useConfig.js";
3
- import { useTranslations as i } from "../../../../composables/useTranslations.js";
4
- import { InIcons as c } from "@useinsider/design-system-vue";
5
- const _ = /* @__PURE__ */ m({
1
+ import { defineComponent as c, computed as r } from "vue";
2
+ import { useConfig as u } from "../../../../composables/useConfig.js";
3
+ import { useTranslations as d } from "../../../../composables/useTranslations.js";
4
+ import { InIcons as f } from "@useinsider/design-system-vue";
5
+ const j = /* @__PURE__ */ c({
6
6
  __name: "InboxView",
7
7
  emits: ["open-email"],
8
- setup(u, { emit: n }) {
9
- const e = i(), { config: t } = a(), s = o(() => t.value?.editor?.emailHeader?.senderName || e("settings.sender-name")), r = o(() => t.value?.editor?.emailHeader?.subject || e("email-editor.default-subject"));
10
- return { __sfc: !0, emit: n, trans: e, config: t, senderName: s, subject: r, InIcons: c };
8
+ setup(p, { emit: m }) {
9
+ const n = d(), { config: s } = u(), a = r(() => {
10
+ var e, t, o;
11
+ return ((o = (t = (e = s.value) == null ? void 0 : e.editor) == null ? void 0 : t.emailHeader) == null ? void 0 : o.senderName) || n("settings.sender-name");
12
+ }), i = r(() => {
13
+ var e, t, o;
14
+ return ((o = (t = (e = s.value) == null ? void 0 : e.editor) == null ? void 0 : t.emailHeader) == null ? void 0 : o.subject) || n("email-editor.default-subject");
15
+ });
16
+ return { __sfc: !0, emit: m, trans: n, config: s, senderName: a, subject: i, InIcons: f };
11
17
  }
12
18
  });
13
19
  export {
14
- _ as default
20
+ j as default
15
21
  };
@@ -1,12 +1,12 @@
1
- import { defineComponent as I, computed as r } from "vue";
2
- import { useTranslations as O } from "../../../../composables/useTranslations.js";
3
- import { getOperatorOptions as u } from "../../../../enums/extensions/recommendationBlock.js";
4
- import { useRecommendationExtensionStore as _ } from "../../../../extensions/Blocks/Recommendation/store/recommendation.js";
5
- import { getInvalidFilterFields as C } from "../../../../extensions/Blocks/Recommendation/validation/filterSchema.js";
6
- import { InButtonV2 as V, InSelect as L, InBasicTextInput as S } from "@useinsider/design-system-vue";
7
- import w from "./LogicAdapter.vue.js";
8
- import { useDebounceFn as E } from "../../../../node_modules/@vueuse/shared/index.js";
9
- const J = /* @__PURE__ */ I({
1
+ import { defineComponent as _, computed as l } from "vue";
2
+ import { useTranslations as C } from "../../../../composables/useTranslations.js";
3
+ import { getOperatorOptions as p } from "../../../../enums/extensions/recommendationBlock.js";
4
+ import { useRecommendationExtensionStore as V } from "../../../../extensions/Blocks/Recommendation/store/recommendation.js";
5
+ import { getInvalidFilterFields as A } from "../../../../extensions/Blocks/Recommendation/validation/filterSchema.js";
6
+ import { InButtonV2 as L, InSelect as O, InBasicTextInput as S } from "@useinsider/design-system-vue";
7
+ import E from "./LogicAdapter.vue.js";
8
+ import { useDebounceFn as N } from "../../../../node_modules/@vueuse/shared/index.js";
9
+ const K = /* @__PURE__ */ _({
10
10
  __name: "FilterItem",
11
11
  props: {
12
12
  filter: null,
@@ -15,46 +15,55 @@ const J = /* @__PURE__ */ I({
15
15
  submitted: { type: Boolean }
16
16
  },
17
17
  emits: ["delete-filter"],
18
- setup(f, { emit: m }) {
19
- const t = f, l = O(), o = _(), v = [
18
+ setup(f, { emit: v }) {
19
+ const t = f, n = C(), a = V(), y = [
20
20
  {
21
- text: l("email-editor.standard-filter"),
21
+ text: n("email-editor.standard-filter"),
22
22
  value: "standardFilter"
23
23
  }
24
- ], n = [
24
+ ], i = [
25
25
  { text: "True", value: "true" },
26
26
  { text: "False", value: "false" }
27
- ], s = r(() => t.filter.attribute || ""), a = r(() => o.getFilterList.find((e) => e.value === s.value) || { text: "", value: "", type: "" }), b = r(
28
- () => a.value?.type === "Boolean"
29
- ), y = r(() => u(a.value?.type).find((e) => e.value === t.filter.operator)), F = r(
30
- () => n.find((e) => e.value === t.filter.value) || n[0]
31
- ), i = r(() => t.submitted ? C(t.filter) : /* @__PURE__ */ new Set()), g = (e) => i.value.has(e) ? "error" : "default", h = r(
32
- () => i.value.has("value") ? l("action-builder.filter-empty-value-error") : ""
33
- ), p = r(
34
- () => a.value?.type === "Number"
35
- ), B = r(() => p.value ? "number" : "text"), x = E((e) => {
36
- o.updateFilter({
27
+ ], d = l(() => t.filter.attribute || ""), r = l(() => a.getFilterList.find((e) => e.value === d.value) || { text: "", value: "", type: "" }), F = l(
28
+ () => {
29
+ var e;
30
+ return ((e = r.value) == null ? void 0 : e.type) === "Boolean";
31
+ }
32
+ ), b = l(() => {
33
+ var e;
34
+ return p((e = r.value) == null ? void 0 : e.type).find((o) => o.value === t.filter.operator);
35
+ }), g = l(
36
+ () => i.find((e) => e.value === t.filter.value) || i[0]
37
+ ), u = l(() => t.submitted ? A(t.filter) : /* @__PURE__ */ new Set()), h = (e) => u.value.has(e) ? "error" : "default", B = l(
38
+ () => u.value.has("value") ? n("action-builder.filter-empty-value-error") : ""
39
+ ), c = l(
40
+ () => {
41
+ var e;
42
+ return ((e = r.value) == null ? void 0 : e.type) === "Number";
43
+ }
44
+ ), x = l(() => c.value ? "number" : "text"), T = N((e) => {
45
+ a.updateFilter({
37
46
  ...t.filter,
38
47
  [e.text]: e.value
39
48
  });
40
49
  }, 500);
41
- return { __sfc: !0, trans: l, store: o, props: t, filterTypeOptions: v, booleanValueOptions: n, attributeType: s, selectedAttributeType: a, isBooleanAttribute: b, selectedOperatorType: y, selectedBooleanValue: F, emit: m, invalidFields: i, getFieldState: g, valueErrorMessage: h, isNumericAttribute: p, valueInputType: B, updateFilter: x, handleAttributeChange: (e) => {
42
- const d = o.getFilterList.find((T) => T.value === e.value), c = d?.type === "Boolean", [A] = u(d?.type);
43
- o.updateFilter({
50
+ return { __sfc: !0, trans: n, store: a, props: t, filterTypeOptions: y, booleanValueOptions: i, attributeType: d, selectedAttributeType: r, isBooleanAttribute: F, selectedOperatorType: b, selectedBooleanValue: g, emit: v, invalidFields: u, getFieldState: h, valueErrorMessage: B, isNumericAttribute: c, valueInputType: x, updateFilter: T, handleAttributeChange: (e) => {
51
+ const o = a.getFilterList.find((I) => I.value === e.value), m = (o == null ? void 0 : o.type) === "Boolean", [s] = p(o == null ? void 0 : o.type);
52
+ a.updateFilter({
44
53
  ...t.filter,
45
54
  attribute: e.value,
46
- operator: c ? "=" : A?.value ?? "",
47
- value: c ? "true" : ""
55
+ operator: m ? "=" : (s == null ? void 0 : s.value) ?? "",
56
+ value: m ? "true" : ""
48
57
  });
49
58
  }, handleBooleanValueChange: (e) => {
50
- o.updateFilter({
59
+ a.updateFilter({
51
60
  ...t.filter,
52
61
  operator: "=",
53
62
  value: e.value
54
63
  });
55
- }, getOperatorOptions: u, InBasicTextInput: S, InSelect: L, InButtonV2: V, LogicAdapter: w };
64
+ }, getOperatorOptions: p, InBasicTextInput: S, InSelect: O, InButtonV2: L, LogicAdapter: E };
56
65
  }
57
66
  });
58
67
  export {
59
- J as default
68
+ K as default
60
69
  };
@@ -1,17 +1,17 @@
1
- import { defineComponent as p, ref as s, watch as m, computed as d, nextTick as y } from "vue";
2
- import g from "../../../wrappers/WpDrawer.vue.js";
3
- import { useTranslations as v } from "../../../../composables/useTranslations.js";
4
- import { useRecommendationExtensionStore as b } from "../../../../extensions/Blocks/Recommendation/store/recommendation.js";
5
- import { isFilterValid as w } from "../../../../extensions/Blocks/Recommendation/validation/filterSchema.js";
6
- import F from "./Filters.vue.js";
7
- const R = /* @__PURE__ */ p({
1
+ import { defineComponent as d, ref as a, watch as y, computed as g, nextTick as v } from "vue";
2
+ import b from "../../../wrappers/WpDrawer.vue.js";
3
+ import { useTranslations as w } from "../../../../composables/useTranslations.js";
4
+ import { useRecommendationExtensionStore as F } from "../../../../extensions/Blocks/Recommendation/store/recommendation.js";
5
+ import { isFilterValid as _ } from "../../../../extensions/Blocks/Recommendation/validation/filterSchema.js";
6
+ import h from "./Filters.vue.js";
7
+ const I = /* @__PURE__ */ d({
8
8
  __name: "FilterSelectionDrawer",
9
- setup(_) {
10
- const r = v(), e = b(), t = s(!1), o = s(!1), a = s();
11
- m(() => e.filterSelectionDrawerStatus, (n) => {
9
+ setup(S) {
10
+ const r = w(), e = F(), t = a(!1), o = a(!1), c = a();
11
+ y(() => e.filterSelectionDrawerStatus, (n) => {
12
12
  n && (o.value = !1);
13
13
  });
14
- const c = d(() => ({
14
+ const f = g(() => ({
15
15
  primaryButton: {
16
16
  styling: "solid",
17
17
  type: "primary",
@@ -27,24 +27,25 @@ const R = /* @__PURE__ */ p({
27
27
  disabledStatus: t.value
28
28
  }
29
29
  }));
30
- return { __sfc: !0, trans: r, store: e, isApplying: t, submitted: o, filtersRef: a, footerButtonGroupOptions: c, cancelModal: () => {
30
+ return { __sfc: !0, trans: r, store: e, isApplying: t, submitted: o, filtersRef: c, footerButtonGroupOptions: f, cancelModal: () => {
31
31
  e.cancelFilterDrawer();
32
32
  }, applyFilter: async () => {
33
+ var u;
33
34
  o.value = !0;
34
- const { filters: n } = e.recommendationConfigs, l = n.find((i) => !w(i));
35
- if (l) {
36
- a.value?.switchToGroup(l.filterGroup), await y();
37
- const { filterGroup: i, filterNumber: u } = l, f = `[data-filter-group="${i}"][data-filter-number="${u}"]`;
38
- document.querySelector(f)?.scrollIntoView({ behavior: "smooth", block: "center" });
35
+ const { filters: n } = e.recommendationConfigs, i = n.find((l) => !_(l));
36
+ if (i) {
37
+ (u = c.value) == null || u.switchToGroup(i.filterGroup), await v();
38
+ const { filterGroup: l, filterNumber: p } = i, m = `[data-filter-group="${l}"][data-filter-number="${p}"]`, s = document.querySelector(m);
39
+ s == null || s.scrollIntoView({ behavior: "smooth", block: "center" });
39
40
  return;
40
41
  }
41
42
  t.value = !0, e.patchCurrentBlockConfig(
42
43
  { filters: e.recommendationConfigs.filters },
43
44
  { triggerRefetch: !0 }
44
45
  ), e.closeFilterDrawer(), t.value = !1;
45
- }, WpDrawer: g, Filters: F };
46
+ }, WpDrawer: b, Filters: h };
46
47
  }
47
48
  });
48
49
  export {
49
- R as default
50
+ I as default
50
51
  };
@@ -1,4 +1,4 @@
1
- import { defineComponent as v, computed as o, ref as O, watch as f } from "vue";
1
+ import { defineComponent as v, computed as l, ref as O, watch as f } from "vue";
2
2
  import { useTranslations as g } from "../../../../composables/useTranslations.js";
3
3
  import { useRecommendationExtensionStore as R } from "../../../../extensions/Blocks/Recommendation/store/recommendation.js";
4
4
  import { getTooltipOptions as T } from "../../../../utils/tooltipUtils.js";
@@ -12,11 +12,11 @@ const V = /* @__PURE__ */ v({
12
12
  },
13
13
  emits: ["reset-validation"],
14
14
  setup(x, { expose: u, emit: s }) {
15
- const p = g(), t = R(), n = o(() => t.getUniqueFilterGroups.map((e) => ({
15
+ const p = g(), t = R(), a = l(() => t.getUniqueFilterGroups.map((e) => ({
16
16
  text: e.toString(),
17
17
  value: e
18
18
  }))), r = O(1);
19
- f(n, (e) => {
19
+ f(a, (e) => {
20
20
  if (!e.length)
21
21
  return;
22
22
  e.some((h) => h.value === r.value) || (r.value = e[0].value);
@@ -27,24 +27,27 @@ const V = /* @__PURE__ */ v({
27
27
  u({ switchToGroup: i });
28
28
  const c = () => {
29
29
  s("reset-validation");
30
- const e = t.getUniqueFilterGroups, a = e.length > 0 ? Math.max(...e) + 1 : 1;
31
- t.addFilterGroup(a), r.value = a;
32
- }, d = o(() => n.value.length >= 3), l = o(() => t.getSelectedFilterGroup(r.value)), F = o(() => l.value.length >= 10), _ = o(() => l.value.length > 1), G = o(() => n.value.length > 1), m = o(() => l.value[0]?.outerGroupOperator || "*");
33
- return { __sfc: !0, MAX_FILTER_GROUP_COUNT: 3, MAX_FILTER_PER_GROUP_COUNT: 10, trans: p, store: t, emit: s, filterGroupList: n, selectedFilterGroup: r, switchToGroup: i, handleAddFilterGroup: c, isMaxFilterGroupCount: d, selectedFilterGroupFilters: l, isMaxFilterPerGroupCount: F, hasLogicAdapter: _, hasRemoveFilterButton: G, outerGroupOperator: m, handleOuterGroupOperatorChange: (e) => {
34
- l.value.forEach((a) => {
35
- t.updateFilter({ ...a, outerGroupOperator: e });
30
+ const e = t.getUniqueFilterGroups, o = e.length > 0 ? Math.max(...e) + 1 : 1;
31
+ t.addFilterGroup(o), r.value = o;
32
+ }, d = l(() => a.value.length >= 3), n = l(() => t.getSelectedFilterGroup(r.value)), F = l(() => n.value.length >= 10), _ = l(() => n.value.length > 1), G = l(() => a.value.length > 1), m = l(() => {
33
+ var o;
34
+ return ((o = n.value[0]) == null ? void 0 : o.outerGroupOperator) || "*";
35
+ });
36
+ return { __sfc: !0, MAX_FILTER_GROUP_COUNT: 3, MAX_FILTER_PER_GROUP_COUNT: 10, trans: p, store: t, emit: s, filterGroupList: a, selectedFilterGroup: r, switchToGroup: i, handleAddFilterGroup: c, isMaxFilterGroupCount: d, selectedFilterGroupFilters: n, isMaxFilterPerGroupCount: F, hasLogicAdapter: _, hasRemoveFilterButton: G, outerGroupOperator: m, handleOuterGroupOperatorChange: (e) => {
37
+ n.value.forEach((o) => {
38
+ t.updateFilter({ ...o, outerGroupOperator: e });
36
39
  });
37
40
  }, handleAddFilter: () => {
38
41
  s("reset-validation"), t.addFilter(
39
42
  t.createDefaultFilter(
40
43
  r.value,
41
- l.value.length + 1
44
+ n.value.length + 1
42
45
  )
43
46
  );
44
47
  }, handleDeleteFilter: (e) => {
45
48
  t.deleteFilter(e);
46
49
  }, handleDeleteFilterGroup: () => {
47
- n.value.length <= 1 || t.deleteFilterGroup(r.value);
50
+ a.value.length <= 1 || t.deleteFilterGroup(r.value);
48
51
  }, getTooltipOptions: T, InSegments: E, InButtonV2: U, FilterItem: A, LogicAdapter: C };
49
52
  }
50
53
  });
@@ -0,0 +1,22 @@
1
+ import o from "./AutoSaveToggle.vue2.js";
2
+ /* empty css */
3
+ import i from "../../../_virtual/_plugin-vue2_normalizer.js";
4
+ var n = function() {
5
+ var e = this, a = e._self._c, t = e._self._setupProxy;
6
+ return t.isFeatureEnabled("autosave") ? a("div", { staticClass: "d-f a-i-c mr-3 auto-save-toggle", on: { mouseenter: function(s) {
7
+ t.isHovered = !0;
8
+ }, mouseleave: function(s) {
9
+ t.isHovered = !1;
10
+ } } }, [a(t.InToggle, { attrs: { id: "guido__autosave-toggle", name: "guido-autosave-toggle", checked: t.autosaveStore.isOn, disable: t.editorStore.loadingStatus }, on: { click: t.toggle } }), a("span", { staticClass: "ml-2 auto-save-toggle__label t-c-55" }, [e._v(" " + e._s(t.trans("email-editor.auto-save")) + " ")]), t.autosaveStore.status === t.AUTOSAVE_STATUS.SAVING ? a("span", { staticClass: "ml-2 d-f a-i-c f-s-1" }, [a(t.InLoading, { attrs: { "color-class": "i-c-53", size: "16" } }), a("span", { staticClass: "ml-1 t-c-53" }, [e._v(" " + e._s(t.trans("newsletter.saving")) + " ")])], 1) : t.lastSavedLabel ? a("span", { staticClass: "ml-2 f-s-1 t-c-53" }, [e._v(" " + e._s(t.lastSavedLabel) + " ")]) : e._e(), t.isHovered ? a(t.InInfoBox, { staticClass: "auto-save-toggle__info-box", attrs: { id: "guido__autosave-info-box", size: "small", variant: "information", "description-text": t.trans("email-editor.auto-save-description"), "title-text": t.trans("email-editor.auto-save-title") } }) : e._e()], 1) : e._e();
11
+ }, l = [], r = /* @__PURE__ */ i(
12
+ o,
13
+ n,
14
+ l,
15
+ !1,
16
+ null,
17
+ "2c964af4"
18
+ );
19
+ const d = r.exports;
20
+ export {
21
+ d as default
22
+ };
@@ -0,0 +1,19 @@
1
+ import { defineComponent as i, ref as f, computed as u } from "vue";
2
+ import { useConfig as l } from "../../../composables/useConfig.js";
3
+ import { useTranslations as p } from "../../../composables/useTranslations.js";
4
+ import { useAutosaveStore as c, AUTOSAVE_STATUS as t } from "../../../stores/autosave.js";
5
+ import { useEditorStore as S } from "../../../stores/editor.js";
6
+ import { formatLocalTime as d } from "../../../utils/timeUtil.js";
7
+ import { InToggle as g, InLoading as _, InInfoBox as A } from "@useinsider/design-system-vue";
8
+ const U = /* @__PURE__ */ i({
9
+ __name: "AutoSaveToggle",
10
+ setup(v) {
11
+ const { isFeatureEnabled: e } = l(), r = S(), o = c(), s = p(), n = f(!1), a = u(() => o.status !== t.SAVED || !o.lastSavedAt ? "" : d(o.lastSavedAt));
12
+ return { __sfc: !0, isFeatureEnabled: e, editorStore: r, autosaveStore: o, trans: s, isHovered: n, lastSavedLabel: a, toggle: (m) => {
13
+ o.isOn = m;
14
+ }, AUTOSAVE_STATUS: t, InInfoBox: A, InLoading: _, InToggle: g };
15
+ }
16
+ });
17
+ export {
18
+ U as default
19
+ };
@@ -1,22 +1,23 @@
1
- import i from "./EditorActions.vue2.js";
1
+ import l from "./EditorActions.vue2.js";
2
2
  /* empty css */
3
- import n from "../../../_virtual/_plugin-vue2_normalizer.js";
4
- var a = function() {
3
+ import d from "../../../_virtual/_plugin-vue2_normalizer.js";
4
+ var u = function() {
5
+ var s, i, n, a;
5
6
  var o = this, e = o._self._c, t = o._self._setupProxy;
6
- return e("div", { staticClass: "d-f editor-actions" }, [t.isVersionHistoryButtonVisible ? 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 } }), t.config?.features?.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(), t.config?.features?.testMessage ? 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", { staticPosition: "bottom right" }), "tooltip-text": t.trans("newsletter.test-email") }, on: { click: t.handleTestEmail } }) : o._e(), t.editorStore.isPreviewModeOpen ? o._e() : 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(s) {
7
+ return e("div", { staticClass: "d-f editor-actions" }, [t.isVersionHistoryButtonVisible ? 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 = (s = t.config) == null ? void 0 : s.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(), (a = (n = t.config) == null ? void 0 : n.features) != null && a.testMessage ? 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", { staticPosition: "bottom right" }), "tooltip-text": t.trans("newsletter.test-email") }, on: { click: t.handleTestEmail } }) : o._e(), t.editorStore.isPreviewModeOpen ? o._e() : 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(r) {
7
8
  return t.handleSave(!1);
8
- } } }), e(t.MigrationConfirmModal, { ref: "migrationModalRef", on: { confirm: function(s) {
9
+ } } }), e(t.MigrationConfirmModal, { ref: "migrationModalRef", on: { confirm: function(r) {
9
10
  return t.executeSave(!1);
10
11
  } } })], 1);
11
- }, r = [], l = /* @__PURE__ */ n(
12
- i,
13
- a,
14
- r,
12
+ }, p = [], c = /* @__PURE__ */ d(
13
+ l,
14
+ u,
15
+ p,
15
16
  !1,
16
17
  null,
17
18
  "4e2a4adb"
18
19
  );
19
- const _ = l.exports;
20
+ const v = c.exports;
20
21
  export {
21
- _ as default
22
+ v as default
22
23
  };
@@ -17,8 +17,8 @@ import K from "./MigrationConfirmModal.vue.js";
17
17
  const ut = /* @__PURE__ */ O({
18
18
  __name: "EditorActions",
19
19
  setup(N, { expose: x }) {
20
- const { config: a, isFeatureEnabled: l } = b(), { exportHtml: m } = k(), { save: u } = F(), { openVersionHistory: c, closeVersionHistory: p } = R(), { getCompiledEmail: f } = q(), { compileHtml: d } = D(), { validateLiquidSyntax: v } = z(), t = I(), y = P(), { hasMigrations: S } = J(y), s = L(), i = n(!1), r = n(!1), g = n(), H = B(), T = () => {
21
- if (t.isVersionHistoryOpen) {
20
+ const { config: a, isFeatureEnabled: l } = b(), { exportHtml: m } = k(), { save: u } = F(), { openVersionHistory: c, closeVersionHistory: p } = R(), { getCompiledEmail: f } = q(), { compileHtml: d } = D(), { validateLiquidSyntax: v } = z(), e = I(), y = P(), { hasMigrations: S } = J(y), s = L(), i = n(!1), r = n(!1), g = n(), H = B(), T = () => {
21
+ if (e.isVersionHistoryOpen) {
22
22
  p();
23
23
  return;
24
24
  }
@@ -26,35 +26,39 @@ const ut = /* @__PURE__ */ O({
26
26
  }, w = async () => {
27
27
  i.value = !0, await m(), i.value = !1;
28
28
  }, _ = () => {
29
- t.isSaveAsTemplateDrawerOpen = !0;
30
- }, C = h(() => t.isVersionHistoryOpen ? s("newsletter.close-version-history") : s("newsletter.version-history")), A = h(
31
- () => a.value?.features?.versionHistory && !t.isPreviewModeOpen
32
- ), V = async (o) => {
33
- r.value = !0, t.loadingStatus = !0;
34
- const e = await u(o);
35
- return r.value = !1, (o || !e) && (t.loadingStatus = !1), e;
36
- }, E = (o) => {
37
- if (!o && S.value) {
38
- g.value?.open();
29
+ e.isSaveAsTemplateDrawerOpen = !0;
30
+ }, C = h(() => e.isVersionHistoryOpen ? s("newsletter.close-version-history") : s("newsletter.version-history")), A = h(
31
+ () => {
32
+ var t, o;
33
+ return ((o = (t = a.value) == null ? void 0 : t.features) == null ? void 0 : o.versionHistory) && !e.isPreviewModeOpen;
34
+ }
35
+ ), V = async (t) => {
36
+ r.value = !0, e.loadingStatus = !0;
37
+ const o = await u(t);
38
+ return r.value = !1, (t || !o) && (e.loadingStatus = !1), o;
39
+ }, E = (t) => {
40
+ var o;
41
+ if (!t && S.value) {
42
+ (o = g.value) == null || o.open();
39
43
  return;
40
44
  }
41
- return V(o);
45
+ return V(t);
42
46
  }, M = async () => {
43
47
  if (l("liquidSyntax")) {
44
- t.loadingStatus = !0;
48
+ e.loadingStatus = !0;
45
49
  try {
46
- const { html: o } = await f({ minimize: !0, resetDataSavedFlag: !1 }), { compiledHtml: e } = d(o);
47
- if (!await v(e))
50
+ const { html: t } = await f({ minimize: !0, resetDataSavedFlag: !1 }), { compiledHtml: o } = d(t);
51
+ if (!await v(o))
48
52
  return;
49
53
  } finally {
50
- t.loadingStatus = !1;
54
+ e.loadingStatus = !1;
51
55
  }
52
56
  }
53
57
  H();
54
58
  };
55
59
  return x({
56
60
  handleSave: E
57
- }), { __sfc: !0, config: a, isFeatureEnabled: l, exportHtml: m, save: u, openVersionHistory: c, closeVersionHistory: p, getCompiledEmail: f, compileHtml: d, validateLiquidSyntax: v, editorStore: t, templateStore: y, hasMigrations: S, trans: s, isExporting: i, isSaving: r, migrationModalRef: g, testEmailClick: H, handleVersionHistory: T, handleExport: w, handleSaveAs: _, versionHistoryTooltipText: C, isVersionHistoryButtonVisible: A, executeSave: V, handleSave: E, handleTestEmail: M, getTooltipOptions: j, InButtonV2: G, MigrationConfirmModal: K };
61
+ }), { __sfc: !0, config: a, isFeatureEnabled: l, exportHtml: m, save: u, openVersionHistory: c, closeVersionHistory: p, getCompiledEmail: f, compileHtml: d, validateLiquidSyntax: v, editorStore: e, templateStore: y, hasMigrations: S, trans: s, isExporting: i, isSaving: r, migrationModalRef: g, testEmailClick: H, handleVersionHistory: T, handleExport: w, handleSaveAs: _, versionHistoryTooltipText: C, isVersionHistoryButtonVisible: A, executeSave: V, handleSave: E, handleTestEmail: M, getTooltipOptions: j, InButtonV2: G, MigrationConfirmModal: K };
58
62
  }
59
63
  });
60
64
  export {
@@ -1,17 +1,20 @@
1
- import { defineComponent as t, ref as n } from "vue";
2
- import { InContainer as m } from "@useinsider/design-system-vue";
3
- import a from "./LeftSlot.vue.js";
4
- import f from "./MiddleSlot.vue.js";
5
- import p from "./RightSlot.vue.js";
6
- const S = /* @__PURE__ */ t({
1
+ import { defineComponent as n, ref as m } from "vue";
2
+ import { InContainer as a } from "@useinsider/design-system-vue";
3
+ import f from "./LeftSlot.vue.js";
4
+ import p from "./MiddleSlot.vue.js";
5
+ import i from "./RightSlot.vue.js";
6
+ const c = /* @__PURE__ */ n({
7
7
  __name: "HeaderWrapper",
8
- setup(i, { expose: o }) {
9
- const e = n(null);
10
- return o({
11
- handleSave: (r) => e.value?.handleSave(r)
12
- }), { __sfc: !0, rightSlotRef: e, InContainer: m, LeftSlot: a, MiddleSlot: f, RightSlot: p };
8
+ setup(l, { expose: r }) {
9
+ const e = m(null);
10
+ return r({
11
+ handleSave: (t) => {
12
+ var o;
13
+ return (o = e.value) == null ? void 0 : o.handleSave(t);
14
+ }
15
+ }), { __sfc: !0, rightSlotRef: e, InContainer: a, LeftSlot: f, MiddleSlot: p, RightSlot: i };
13
16
  }
14
17
  });
15
18
  export {
16
- S as default
19
+ c as default
17
20
  };
@@ -1,16 +1,19 @@
1
- import { defineComponent as m, computed as f, ref as l } from "vue";
2
- import { useConfig as d } from "../../../composables/useConfig.js";
3
- import { useBack as p } from "../../../composables/useGuidoActions.js";
4
- import { usePreviewMode as k } from "../../../composables/usePreviewMode.js";
5
- import { useTranslations as B } from "../../../composables/useTranslations.js";
6
- import { useVersionHistoryApi as b } from "../../../composables/useVersionHistoryApi.js";
7
- import { useEditorStore as v } from "../../../stores/editor.js";
8
- import { InButtonV2 as _ } from "@useinsider/design-system-vue";
9
- import { useDebounceFn as V } from "../../../node_modules/@vueuse/shared/index.js";
10
- const A = /* @__PURE__ */ m({
1
+ import { defineComponent as l, computed as d, ref as p } from "vue";
2
+ import { useConfig as k } from "../../../composables/useConfig.js";
3
+ import { useBack as B } from "../../../composables/useGuidoActions.js";
4
+ import { usePreviewMode as b } from "../../../composables/usePreviewMode.js";
5
+ import { useTranslations as v } from "../../../composables/useTranslations.js";
6
+ import { useVersionHistoryApi as _ } from "../../../composables/useVersionHistoryApi.js";
7
+ import { useEditorStore as V } from "../../../stores/editor.js";
8
+ import { InButtonV2 as g } from "@useinsider/design-system-vue";
9
+ import { useDebounceFn as w } from "../../../node_modules/@vueuse/shared/index.js";
10
+ const D = /* @__PURE__ */ l({
11
11
  __name: "LeftSlot",
12
- setup(g) {
13
- const e = v(), i = p(), { closeVersionHistory: n } = b(), { closePreviewMode: s } = k(), o = B(), { config: t } = d(), u = f(() => e.isVersionHistoryOpen || e.isPreviewModeOpen ? o("email-editor.back-to-editor") : t.value?.ui?.backButtonLabel ? t.value.ui.backButtonLabel : o("email-editor.back-to-design")), r = l(!1), c = () => {
12
+ setup(y) {
13
+ const e = V(), i = B(), { closeVersionHistory: n } = _(), { closePreviewMode: s } = b(), o = v(), { config: t } = k(), f = d(() => {
14
+ var u, m;
15
+ return e.isVersionHistoryOpen || e.isPreviewModeOpen ? o("email-editor.back-to-editor") : (m = (u = t.value) == null ? void 0 : u.ui) != null && m.backButtonLabel ? t.value.ui.backButtonLabel : o("email-editor.back-to-design");
16
+ }), r = p(!1), c = () => {
14
17
  if (e.isVersionHistoryOpen) {
15
18
  n();
16
19
  return;
@@ -20,14 +23,14 @@ const A = /* @__PURE__ */ m({
20
23
  return;
21
24
  }
22
25
  e.loadingStatus = !0, i();
23
- }, a = V(() => {
26
+ }, a = w(() => {
24
27
  c(), r.value = !1;
25
28
  }, 500);
26
- return { __sfc: !0, editorStore: e, handleBack: i, closeVersionHistory: n, closePreviewMode: s, trans: o, config: t, backButtonLabel: u, isBackButtonDisabled: r, executeBackAction: c, debouncedBackAction: a, handleBackClick: () => {
29
+ return { __sfc: !0, editorStore: e, handleBack: i, closeVersionHistory: n, closePreviewMode: s, trans: o, config: t, backButtonLabel: f, isBackButtonDisabled: r, executeBackAction: c, debouncedBackAction: a, handleBackClick: () => {
27
30
  r.value = !0, a();
28
- }, InButtonV2: _ };
31
+ }, InButtonV2: g };
29
32
  }
30
33
  });
31
34
  export {
32
- A as default
35
+ D as default
33
36
  };
@@ -1,19 +1,16 @@
1
- import { defineComponent as e, defineAsyncComponent as o } from "vue";
2
- import m from "../email-preview/amp/AmpToggle.vue.js";
3
- import n from "../email-preview/desktop-preview/EmailSizeIndicator.vue.js";
4
- import { useEditorStore as s } from "../../../stores/editor.js";
5
- import p from "./EditorToolbar.vue.js";
6
- const u = /* @__PURE__ */ e({
1
+ import { defineComponent as o } from "vue";
2
+ import r from "../email-preview/amp/AmpToggle.vue.js";
3
+ import t from "../email-preview/desktop-preview/EmailSizeIndicator.vue.js";
4
+ import { useEditorStore as i } from "../../../stores/editor.js";
5
+ import e from "./EditorToolbar.vue.js";
6
+ import m from "./version-history/VersionHistory.vue.js";
7
+ import p from "./version-history/ViewOptions.vue.js";
8
+ const S = /* @__PURE__ */ o({
7
9
  __name: "MiddleSlot",
8
- setup(f) {
9
- const r = o(
10
- () => import("./version-history/VersionHistory.vue.js")
11
- ), t = o(
12
- () => import("./version-history/ViewOptions.vue.js")
13
- ), i = s();
14
- return { __sfc: !0, VersionHistory: r, VersionHistoryViewOptions: t, editorStore: i, AmpToggle: m, EmailSizeIndicator: n, EditorToolbar: p };
10
+ setup(s) {
11
+ return { __sfc: !0, editorStore: i(), AmpToggle: r, EmailSizeIndicator: t, EditorToolbar: e, VersionHistory: m, VersionHistoryViewOptions: p };
15
12
  }
16
13
  });
17
14
  export {
18
- u as default
15
+ S as default
19
16
  };
@@ -1,11 +1,11 @@
1
- import i from "./RightSlot.vue2.js";
2
- import r from "../../../_virtual/_plugin-vue2_normalizer.js";
3
- var o = function() {
4
- var s = this, e = s._self._c, t = s._self._setupProxy;
5
- return e("div", { staticClass: "d-f a-i-c" }, [t.isLiquidEnabled && !t.editorStore.isVersionHistoryOpen ? e(t.InChips, { staticClass: "mr-3", attrs: { id: "guido__liquid-tag-chip", styles: "stroke", type: "default", value: "liquid-tags", "close-button": !1, "disabled-status": t.editorStore.loadingStatus, interactive: !1, text: t.trans("email-editor.liquid-tags-enabled") } }) : s._e(), t.editorStore.isVersionHistoryOpen ? e(t.RestoreButton) : e(t.EditorActions, { ref: "editorActionsRef" })], 1);
6
- }, a = [], n = /* @__PURE__ */ r(
7
- i,
8
- o,
1
+ import s from "./RightSlot.vue2.js";
2
+ import o from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var r = function() {
4
+ var i = this, e = i._self._c, t = i._self._setupProxy;
5
+ return e("div", { staticClass: "d-f a-i-c" }, [t.editorStore.isVersionHistoryOpen ? i._e() : e(t.AutoSaveToggle), t.isLiquidEnabled && !t.editorStore.isVersionHistoryOpen ? e(t.InChips, { staticClass: "mr-1", attrs: { id: "guido__liquid-tag-chip", styles: "stroke", type: "default", value: "liquid-tags", "close-button": !1, "disabled-status": t.editorStore.loadingStatus, interactive: !1, text: t.trans("email-editor.liquid-tags-enabled") } }) : i._e(), t.editorStore.isVersionHistoryOpen ? e(t.RestoreButton) : e(t.EditorActions, { ref: "editorActionsRef" })], 1);
6
+ }, a = [], n = /* @__PURE__ */ o(
7
+ s,
8
+ r,
9
9
  a,
10
10
  !1,
11
11
  null,