@useinsider/guido 3.3.0-beta.3708c8a → 3.3.0-beta.64c7838

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 (30) hide show
  1. package/dist/components/Guido.vue.js +1 -1
  2. package/dist/components/Guido.vue2.js +42 -40
  3. package/dist/components/organisms/header/MiddleSlot.vue.js +7 -7
  4. package/dist/composables/useCortexBlueprintBridge.js +66 -0
  5. package/dist/composables/useEmailTemplateApplier.js +41 -0
  6. package/dist/composables/useGuidoStateBridge.js +48 -0
  7. package/dist/composables/useHtmlValidator.js +41 -36
  8. package/dist/composables/useRecommendation.js +2 -2
  9. package/dist/enums/extensions/recommendationBlock.js +95 -41
  10. package/dist/enums/unsubscribe.js +25 -24
  11. package/dist/extensions/Blocks/Checkbox/control.js +23 -23
  12. package/dist/extensions/Blocks/RadioButton/control.js +15 -15
  13. package/dist/extensions/Blocks/Recommendation/block.js +43 -36
  14. package/dist/extensions/Blocks/Recommendation/services/configService.js +33 -26
  15. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +35 -26
  16. package/dist/extensions/Blocks/Recommendation/validation/requiredFields.js +33 -0
  17. package/dist/guido.css +1 -1
  18. package/dist/package.json.js +1 -1
  19. package/dist/services/unsubscribeApi.js +6 -6
  20. package/dist/src/composables/useCortexBlueprintBridge.d.ts +25 -0
  21. package/dist/src/composables/useEmailTemplateApplier.d.ts +21 -0
  22. package/dist/src/composables/useGuidoStateBridge.d.ts +22 -0
  23. package/dist/src/enums/extensions/recommendationBlock.d.ts +5 -1
  24. package/dist/src/enums/unsubscribe.d.ts +8 -3
  25. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +11 -3
  26. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +7 -1
  27. package/dist/src/extensions/Blocks/Recommendation/validation/requiredFields.d.ts +21 -0
  28. package/dist/src/stores/guido-email-editor.d.ts +41 -0
  29. package/dist/stores/guido-email-editor.js +20 -0
  30. package/package.json +2 -2
@@ -1,44 +1,98 @@
1
- const s = {
1
+ import { useTranslations as a } from "../../composables/useTranslations.js";
2
+ const u = {
2
3
  RECOMMENDATION_API_URL: "https://recommendationv2.api.useinsider.com"
3
- }, i = {
4
+ }, l = {
4
5
  CLIENT_ID: "clientId"
5
- }, u = [
6
- { id: 11, key: "similarViewed", name: "Viewed Together", path: "viewed-together" },
7
- { id: 12, key: "similarBought", name: "Purchased Together", path: "purchased-together" },
8
- { id: 13, key: "userBased", name: "User Based", path: "user-based" },
9
- { id: 36, key: "highestDiscounted", name: "Highest Discounted Items", path: "highest-discounted" },
10
- { id: 38, key: "manualMerchandising", name: "Manual Merchandising", path: "manual-merchandising" },
11
- { id: 39, key: "newArrivals", name: "New Arrivals", path: "new-arrivals" },
12
- { id: 40, key: "trendingProducts", name: "Trending Products", path: "trending" },
13
- { id: 46, key: "mostValuableOfPartner", name: "Most Valuable Products", path: "most-valuable" },
14
- { id: 61, key: "mostPopular", name: "Most Popular Items", path: "most-popular" },
15
- { id: 62, key: "mostPurchased", name: "Top Sellers", path: "top-sellers" }
16
- ], l = ["discount", "omnibus_price", "omnibus_discount", "price", "original_price"], c = [
6
+ }, c = () => {
7
+ const e = a();
8
+ return [
9
+ {
10
+ id: 11,
11
+ key: "similarViewed",
12
+ name: e("action-builder.similar-viewed"),
13
+ path: "viewed-together"
14
+ },
15
+ {
16
+ id: 12,
17
+ key: "similarBought",
18
+ name: e("action-builder.similar-bought"),
19
+ path: "purchased-together"
20
+ },
21
+ {
22
+ id: 13,
23
+ key: "userBased",
24
+ name: e("action-builder.user-based"),
25
+ path: "user-based"
26
+ },
27
+ {
28
+ id: 36,
29
+ key: "highestDiscounted",
30
+ name: e("journey-builder.highest-discounted-items"),
31
+ path: "highest-discounted"
32
+ },
33
+ {
34
+ id: 38,
35
+ key: "manualMerchandising",
36
+ name: e("action-builder.manual-merchandising"),
37
+ path: "manual-merchandising"
38
+ },
39
+ {
40
+ id: 39,
41
+ key: "newArrivals",
42
+ name: e("action-builder.new-arrivals"),
43
+ path: "new-arrivals"
44
+ },
45
+ {
46
+ id: 40,
47
+ key: "trendingProducts",
48
+ name: e("journey-builder.trending-products"),
49
+ path: "trending"
50
+ },
51
+ {
52
+ id: 46,
53
+ key: "mostValuableOfPartner",
54
+ name: e("journey-builder.most-valuable-products"),
55
+ path: "most-valuable"
56
+ },
57
+ {
58
+ id: 61,
59
+ key: "mostPopular",
60
+ name: e("journey-builder.most-popular-items"),
61
+ path: "most-popular"
62
+ },
63
+ {
64
+ id: 62,
65
+ key: "mostPurchased",
66
+ name: e("action-builder.most-purchased"),
67
+ path: "top-sellers"
68
+ }
69
+ ];
70
+ }, d = ["discount", "omnibus_price", "omnibus_discount", "price", "original_price"], m = [
17
71
  { text: "before the amount", value: "0" },
18
72
  { text: "after the amount", value: "1" }
19
- ], d = [
73
+ ], p = [
20
74
  { text: "dot(.)", value: "." },
21
75
  { text: "comma(,)", value: "," },
22
76
  { text: "space( )", value: " " }
23
- ], p = [
77
+ ], v = [
24
78
  { text: "0", value: "0" },
25
79
  { text: "1", value: "1" },
26
80
  { text: "2", value: "2" },
27
81
  { text: "3", value: "3" },
28
82
  { text: "4", value: "4" },
29
83
  { text: "5", value: "5" }
30
- ], e = [
84
+ ], t = [
31
85
  { text: "is exactly", value: "=" },
32
86
  { text: "contains", value: "~" },
33
87
  { text: "does not contain", value: "!~" },
34
88
  { text: "any of", value: "||" }
35
- ], a = [
89
+ ], r = [
36
90
  { text: "is exactly", value: "=" },
37
91
  { text: "is not exactly", value: "!==" },
38
92
  { text: "contains", value: "~" },
39
93
  { text: "does not contain", value: "!~" },
40
94
  { text: "any of", value: "||" }
41
- ], r = [
95
+ ], n = [
42
96
  { text: "is equal to", value: "=" },
43
97
  { text: "is greater than", value: ">" },
44
98
  { text: "is less than", value: "<" }
@@ -46,39 +100,39 @@ const s = {
46
100
  { text: "is equal to", value: "=" },
47
101
  { text: "after", value: ">" },
48
102
  { text: "before", value: "<" }
49
- ], n = [
103
+ ], s = [
50
104
  { text: "true", value: "==" },
51
105
  { text: "false", value: "!=" }
52
- ], m = (t) => {
53
- if (!t)
54
- return e;
55
- switch (t) {
106
+ ], h = (e) => {
107
+ if (!e)
108
+ return t;
109
+ switch (e) {
56
110
  case "Boolean":
57
- return n;
111
+ return s;
58
112
  case "Date":
59
113
  return o;
60
114
  case "Number":
61
- return r;
115
+ return n;
62
116
  case "String":
63
- return e;
117
+ return t;
64
118
  case "Strings":
65
- return a;
119
+ return r;
66
120
  default:
67
- return e;
121
+ return t;
68
122
  }
69
123
  };
70
124
  export {
71
- l as PriceAttributes,
72
- i as QUERY_PARAMS,
73
- u as RecommendationFeedSourceMaps,
74
- s as URLS,
75
- p as currencyDecimalCounts,
76
- c as currencyLocationMaps,
77
- d as currencyOperators,
78
- m as getOperatorOptions,
79
- a as operatorOptionsForArrayOfStrings,
80
- n as operatorOptionsForBooleans,
125
+ d as PriceAttributes,
126
+ l as QUERY_PARAMS,
127
+ u as URLS,
128
+ v as currencyDecimalCounts,
129
+ m as currencyLocationMaps,
130
+ p as currencyOperators,
131
+ h as getOperatorOptions,
132
+ c as getRecommendationFeedSourceMaps,
133
+ r as operatorOptionsForArrayOfStrings,
134
+ s as operatorOptionsForBooleans,
81
135
  o as operatorOptionsForDates,
82
- r as operatorOptionsForNumbers,
83
- e as operatorOptionsForStrings
136
+ n as operatorOptionsForNumbers,
137
+ t as operatorOptionsForStrings
84
138
  };
@@ -1,32 +1,32 @@
1
1
  import { useTranslations as R } from "../composables/useTranslations.js";
2
- import { ProductType as s } from "../@types/config/schemas.js";
2
+ import { ProductType as n } from "../@types/config/schemas.js";
3
3
  import "../@types/config/defaults.js";
4
4
  import { getEnvironmentPrefix as S } from "../utils/environmentUtil.js";
5
- const B = {
5
+ const i = {
6
6
  UNSUBSCRIBE_LINK_TYPE: 1,
7
7
  PREFERENCES_LINK_TYPE: 3
8
- }, i = {
8
+ }, B = {
9
9
  UNSUBSCRIBE_LINK_REGEX: /{{ins-unsubscribe-link}}/g,
10
10
  DATA_OGSB_BUTTON_CSS_REGEX: "\\[data-ogsb\\]\\s*\\.es-button\\.es-button-[0-9]+\\s*\\{(?:[^\\}]*)\\}",
11
11
  GLOBAL_UNSUBSCRIBE_LINK_REGEX: /{{ins-global-unsubscribe-link}}/g,
12
12
  PREFERENCES_UNSUBSCRIBE_LINK_REGEX: /{{ins-preferences-unsubscribe-link}}/g
13
- }, n = S(), C = {
14
- UNSUBSCRIBE_URL: `https://mail.${n}.com/user/v1/unsub`,
15
- PREFERENCES_URL: `https://mail.${n}.com/user/v1/prefs`
13
+ }, s = S(), C = {
14
+ UNSUBSCRIBE_URL: `https://mail.${s}.com/user/v1/unsub`,
15
+ PREFERENCES_URL: `https://mail.${s}.com/user/v1/prefs`
16
16
  }, U = {
17
- [s.EMAIL]: "email",
18
- [s.ARCHITECT]: "journey",
19
- [s.UNSUBSCRIBE_PAGES]: "email"
20
- }, t = "iid", o = {
21
- name: "Global Unsubscribe",
22
- sendGridId: "G"
23
- }, c = "/email/unsubscribe-pages", E = {
17
+ [n.EMAIL]: "email",
18
+ [n.ARCHITECT]: "journey",
19
+ [n.UNSUBSCRIBE_PAGES]: "email"
20
+ }, o = "iid", r = "G", c = () => ({
21
+ name: R()("onboarding-center.email-subscribers-global-unsub-card-title"),
22
+ sendGridId: r
23
+ }), u = "/email/unsubscribe-pages", E = {
24
24
  GLOBAL_UNSUBSCRIBE: 1,
25
25
  GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE: 2,
26
26
  SUBSCRIPTION_PREFERENCE_CENTER: 3,
27
27
  SUBSCRIPTION_PREFERENCE_CONFIRMATION: 4,
28
28
  RESUBSCRIBE: 5
29
- }, u = {
29
+ }, b = {
30
30
  [E.GLOBAL_UNSUBSCRIBE]: "custom-unsubscribe",
31
31
  [E.SUBSCRIPTION_PREFERENCE_CENTER]: "custom-preferences"
32
32
  }, T = {
@@ -39,7 +39,7 @@ const B = {
39
39
  E.SUBSCRIPTION_PREFERENCE_CENTER,
40
40
  E.SUBSCRIPTION_PREFERENCE_CONFIRMATION
41
41
  ]
42
- }, b = () => {
42
+ }, P = () => {
43
43
  const e = R();
44
44
  return {
45
45
  [E.GLOBAL_UNSUBSCRIBE]: e("unsubscription-preference.type-global-unsubscribe"),
@@ -48,22 +48,23 @@ const B = {
48
48
  [E.SUBSCRIPTION_PREFERENCE_CENTER]: e("unsubscription-preference.type-subscription-preferences-center"),
49
49
  [E.SUBSCRIPTION_PREFERENCE_CONFIRMATION]: e("unsubscription-preference.type-subscription-preferences-confirmation")
50
50
  };
51
- }, P = {
51
+ }, O = {
52
52
  default: "{{ins-unsubscribe-link}}",
53
53
  [E.GLOBAL_UNSUBSCRIBE]: "{{ins-global-unsubscribe-link}}",
54
54
  [E.SUBSCRIPTION_PREFERENCE_CENTER]: "{{ins-preferences-unsubscribe-link}}"
55
55
  };
56
56
  export {
57
- o as DEFAULT_UNSUBSCRIBE_GROUP,
58
- t as INSIDER_ID,
59
- i as LINK_REGEXES,
60
- B as LINK_TYPES,
61
- P as MERGE_TAGS,
57
+ r as DEFAULT_UNSUBSCRIBE_GROUP_SEND_GRID_ID,
58
+ o as INSIDER_ID,
59
+ B as LINK_REGEXES,
60
+ i as LINK_TYPES,
61
+ O as MERGE_TAGS,
62
62
  E as PAGE_TYPES,
63
63
  U as PRODUCT_TYPE_URL_SEGMENTS,
64
64
  T as TYPE_COLLECTIONS,
65
- c as UNSUBSCRIBE_PAGES_LINK,
66
- u as UNSUBSCRIBE_SYNC_MODULE_TYPES,
65
+ u as UNSUBSCRIBE_PAGES_LINK,
66
+ b as UNSUBSCRIBE_SYNC_MODULE_TYPES,
67
67
  C as URLS,
68
- b as getTypeTranslations
68
+ c as getDefaultUnsubscribeGroup,
69
+ P as getTypeTranslations
69
70
  };
@@ -1,11 +1,11 @@
1
- var d = Object.defineProperty;
2
- var l = (r, n, e) => n in r ? d(r, n, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[n] = e;
3
- var o = (r, n, e) => l(r, typeof n != "symbol" ? n + "" : n, e);
4
- import { useHttp as L } from "../../../composables/useHttp.js";
5
- import { DEFAULT_UNSUBSCRIBE_GROUP as c } from "../../../enums/unsubscribe.js";
6
- import { Control as h, UIElementType as i, UEAttr as t, ModificationDescription as p } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
7
- const m = "ui-elements-checkbox", u = "select", { get: C } = L();
8
- class S extends h {
1
+ var E = Object.defineProperty;
2
+ var d = (i, n, e) => n in i ? E(i, n, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[n] = e;
3
+ var o = (i, n, e) => d(i, typeof n != "symbol" ? n + "" : n, e);
4
+ import { useHttp as l } from "../../../composables/useHttp.js";
5
+ import { getDefaultUnsubscribeGroup as L, DEFAULT_UNSUBSCRIBE_GROUP_SEND_GRID_ID as h } from "../../../enums/unsubscribe.js";
6
+ import { Control as p, UIElementType as r, UEAttr as t, ModificationDescription as m } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
7
+ const b = "ui-elements-checkbox", u = "select", { get: C } = l();
8
+ class I extends p {
9
9
  constructor() {
10
10
  super(...arguments);
11
11
  o(this, "currentNode");
@@ -13,13 +13,13 @@ class S extends h {
13
13
  o(this, "unsubList", []);
14
14
  }
15
15
  getId() {
16
- return m;
16
+ return b;
17
17
  }
18
18
  _setFormValues() {
19
19
  if (this.selectedUnsubGroup = "", this.currentNode && "getAttribute" in this.currentNode) {
20
20
  const e = this.currentNode.getAttribute("id");
21
21
  if (e) {
22
- const s = e === c.sendGridId ? e : Number(e);
22
+ const s = e === h ? e : Number(e);
23
23
  s && (this.selectedUnsubGroup = s);
24
24
  }
25
25
  }
@@ -29,18 +29,18 @@ class S extends h {
29
29
  }
30
30
  _getLabel(e, s = `${Math.random()}`) {
31
31
  return `
32
- <${i.LABEL}
32
+ <${r.LABEL}
33
33
  ${t.LABEL.text}="${e}"
34
34
  ${t.LABEL.name}="${s}">
35
- </${i.LABEL}>
35
+ </${r.LABEL}>
36
36
  `;
37
37
  }
38
38
  _getSelectItem(e, s) {
39
39
  return `
40
- <${i.SELECT_ITEM}
40
+ <${r.SELECT_ITEM}
41
41
  ${t.SELECT_ITEM.text}="${e}"
42
42
  ${t.SELECT_ITEM.value}="${s}">
43
- </${i.SELECT_ITEM}>`;
43
+ </${r.SELECT_ITEM}>`;
44
44
  }
45
45
  _getSelect() {
46
46
  return this.unsubList.map((e) => this._getSelectItem(e.name, e.sendGridId)).join("");
@@ -49,22 +49,22 @@ class S extends h {
49
49
  return `
50
50
  <div class="checkbox-controls-container">
51
51
  <div class="checkbox-select-container container two-columns stretch">
52
- <${i.LABEL}
52
+ <${r.LABEL}
53
53
  ${t.LABEL.text}="${this.api.translate("Unsubscribe Group")}"
54
54
  ${t.LABEL.name}="${Math.random()}">
55
- </${i.LABEL}>
55
+ </${r.LABEL}>
56
56
 
57
- <${i.SELECTPICKER}
57
+ <${r.SELECTPICKER}
58
58
  ${t.SELECTPICKER.name}="${u}"
59
59
  ${t.SELECTPICKER.placeholder}="${this.api.translate("Select Unsubscribe Group")}">
60
60
  ${this._getSelect()}
61
- </${i.SELECTPICKER}>
61
+ </${r.SELECTPICKER}>
62
62
  </div>
63
63
  </div>
64
64
  `;
65
65
  }
66
66
  _onSelectChange(e) {
67
- this.currentNode && this.api.getDocumentModifier().modifyHtml(this.currentNode).setAttribute("id", e.toString()).apply(new p(`Updated text to ${e}`));
67
+ this.currentNode && this.api.getDocumentModifier().modifyHtml(this.currentNode).setAttribute("id", e.toString()).apply(new m(`Updated text to ${e}`));
68
68
  }
69
69
  _listenToFormUpdates() {
70
70
  this.api.onValueChanged(u, (e) => this._onSelectChange(e));
@@ -76,18 +76,18 @@ class S extends h {
76
76
  async onRender() {
77
77
  const e = await C(
78
78
  "/unsubscribe-groups/unsubscribe-list"
79
- ), s = [c, ...e.data], E = s.map((a) => ({
79
+ ), s = [L(), ...e.data], c = s.map((a) => ({
80
80
  [t.SELECT_ITEM.text]: a.name,
81
81
  [t.SELECT_ITEM.value]: a.sendGridId
82
82
  }));
83
83
  this.unsubList = s, this.api.setUIEAttribute(
84
84
  u,
85
85
  t.SELECTPICKER.items,
86
- E
86
+ c
87
87
  ), this._setFormValues(), this._listenToFormUpdates();
88
88
  }
89
89
  }
90
90
  export {
91
- m as CHECKBOX_CONTROL_BLOCK_ID,
92
- S as CheckboxControl
91
+ b as CHECKBOX_CONTROL_BLOCK_ID,
92
+ I as CheckboxControl
93
93
  };
@@ -1,11 +1,11 @@
1
- var d = Object.defineProperty;
2
- var l = (r, n, t) => n in r ? d(r, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[n] = t;
3
- var o = (r, n, t) => l(r, typeof n != "symbol" ? n + "" : n, t);
4
- import { useHttp as L } from "../../../composables/useHttp.js";
5
- import { DEFAULT_UNSUBSCRIBE_GROUP as c } from "../../../enums/unsubscribe.js";
6
- import { Control as p, UIElementType as i, UEAttr as e, ModificationDescription as h } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
7
- const m = "ui-elements-radio-button", u = "select", { get: $ } = L();
8
- class S extends p {
1
+ var E = Object.defineProperty;
2
+ var d = (r, n, t) => n in r ? E(r, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[n] = t;
3
+ var o = (r, n, t) => d(r, typeof n != "symbol" ? n + "" : n, t);
4
+ import { useHttp as l } from "../../../composables/useHttp.js";
5
+ import { getDefaultUnsubscribeGroup as L, DEFAULT_UNSUBSCRIBE_GROUP_SEND_GRID_ID as p } from "../../../enums/unsubscribe.js";
6
+ import { Control as h, UIElementType as i, UEAttr as e, ModificationDescription as m } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
7
+ const b = "ui-elements-radio-button", u = "select", { get: $ } = l();
8
+ class I extends h {
9
9
  constructor() {
10
10
  super(...arguments);
11
11
  o(this, "currentNode");
@@ -13,13 +13,13 @@ class S extends p {
13
13
  o(this, "unsubList", []);
14
14
  }
15
15
  getId() {
16
- return m;
16
+ return b;
17
17
  }
18
18
  _setFormValues() {
19
19
  if (this.selectedUnsubGroup = "", this.currentNode && "getAttribute" in this.currentNode) {
20
20
  const t = this.currentNode.getAttribute("id");
21
21
  if (t) {
22
- const s = t === c.sendGridId ? t : Number(t);
22
+ const s = t === p ? t : Number(t);
23
23
  s && (this.selectedUnsubGroup = s);
24
24
  }
25
25
  }
@@ -64,7 +64,7 @@ class S extends p {
64
64
  `;
65
65
  }
66
66
  _onSelectChange(t) {
67
- this.currentNode && this.api.getDocumentModifier().modifyHtml(this.currentNode).setAttribute("id", t.toString()).apply(new h(`Updated text to ${t}`));
67
+ this.currentNode && this.api.getDocumentModifier().modifyHtml(this.currentNode).setAttribute("id", t.toString()).apply(new m(`Updated text to ${t}`));
68
68
  }
69
69
  _listenToFormUpdates() {
70
70
  this.api.onValueChanged(u, (t) => this._onSelectChange(t));
@@ -76,18 +76,18 @@ class S extends p {
76
76
  async onRender() {
77
77
  const t = await $(
78
78
  "/unsubscribe-groups/unsubscribe-list"
79
- ), s = [c, ...t.data], E = s.map((a) => ({
79
+ ), s = [L(), ...t.data], c = s.map((a) => ({
80
80
  [e.SELECT_ITEM.text]: a.name,
81
81
  [e.SELECT_ITEM.value]: a.sendGridId
82
82
  }));
83
83
  this.unsubList = s, this.api.setUIEAttribute(
84
84
  u,
85
85
  e.SELECTPICKER.items,
86
- E
86
+ c
87
87
  ), this._setFormValues(), this._listenToFormUpdates();
88
88
  }
89
89
  }
90
90
  export {
91
- m as CONTROL_BLOCK_ID,
92
- S as RadioButtonControl
91
+ b as CONTROL_BLOCK_ID,
92
+ I as RadioButtonControl
93
93
  };
@@ -1,33 +1,33 @@
1
- var I = Object.defineProperty;
2
- var k = (r, n, t) => n in r ? I(r, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[n] = t;
3
- var u = (r, n, t) => k(r, typeof n != "symbol" ? n + "" : n, t);
4
- import { BlockId as _ } from "../../../enums/block.js";
5
- import { getMigrationBannerHtml as B } from "../../../utils/migrationBannerHtml.js";
6
- import { Block as b, BlockCompositionType as R, ModificationDescription as y } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
7
- import { regenerateMobileProductRows as C } from "./controls/main/utils.js";
8
- import { ensureMobileCssRulesExist as g, setMobileLayoutOptOut as d, hasMobileLayoutOptOut as A } from "./controls/mobileLayout/cssRules.js";
9
- import { RecommendationConfigService as c } from "./services/configService.js";
10
- import { useRecommendationExtensionStore as p } from "./store/recommendation.js";
1
+ var k = Object.defineProperty;
2
+ var _ = (r, n, t) => n in r ? k(r, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[n] = t;
3
+ var g = (r, n, t) => _(r, typeof n != "symbol" ? n + "" : n, t);
4
+ import { BlockId as B } from "../../../enums/block.js";
5
+ import { getMigrationBannerHtml as b } from "../../../utils/migrationBannerHtml.js";
6
+ import { Block as R, BlockCompositionType as y, ModificationDescription as C } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
7
+ import { regenerateMobileProductRows as A } from "./controls/main/utils.js";
8
+ import { ensureMobileCssRulesExist as d, setMobileLayoutOptOut as p, hasMobileLayoutOptOut as D } from "./controls/mobileLayout/cssRules.js";
9
+ import { RecommendationConfigService as s } from "./services/configService.js";
10
+ import { useRecommendationExtensionStore as f } from "./store/recommendation.js";
11
11
  import { getDefaultTemplate as E } from "./templates/grid/template.js";
12
- const f = _.Recommendation, l = "recommendation-block-v2", m = "recommendation-id";
13
- let h = !1;
14
- class q extends b {
12
+ const h = B.Recommendation, l = "recommendation-block-v2", m = "recommendation-id";
13
+ let I = !1;
14
+ class v extends R {
15
15
  constructor() {
16
16
  super();
17
17
  /**
18
18
  * Stores the ID generated in getTemplate() so onCreated() can reuse it.
19
19
  * This avoids generating a new (different) ID in onCreated().
20
20
  */
21
- u(this, "_pendingBlockId", null);
21
+ g(this, "_pendingBlockId", null);
22
22
  }
23
23
  getId() {
24
- return f;
24
+ return h;
25
25
  }
26
26
  getIcon() {
27
27
  return "recommendation-icon";
28
28
  }
29
29
  getBlockCompositionType() {
30
- return R.CONTAINER;
30
+ return y.CONTAINER;
31
31
  }
32
32
  getName() {
33
33
  return this.api.translate("Recommendation Block");
@@ -38,8 +38,8 @@ class q extends b {
38
38
  );
39
39
  }
40
40
  getSettingsPanelTitleHtml() {
41
- return B(
42
- f,
41
+ return b(
42
+ h,
43
43
  this.api.translate("Recommendation Block"),
44
44
  this.api.translate("This block is switched from the Old Version to the New Version. We recommend you check the Recommendation block and test your message to ensure it works properly.")
45
45
  );
@@ -71,13 +71,20 @@ class q extends b {
71
71
  return;
72
72
  const i = this._pendingBlockId ?? this._generateNextId();
73
73
  this._pendingBlockId = null, this._assignRecommendationId(t, i);
74
- const o = c.initializeConfig(this.api, t, { recommendationId: i }), s = p();
75
- s.setCurrentBlock(i), g(this.api);
76
- const a = this._getBlockElement(t);
77
- a && (d(this.api, a, !0), C({
78
- currentNode: t,
79
- documentModifier: this.api.getDocumentModifier()
80
- })), s.patchCurrentBlockConfig({ language: o.language }, { triggerRefetch: !1 });
74
+ const { config: o, wasFreshDrop: c } = s.initializeConfig(
75
+ this.api,
76
+ t,
77
+ { recommendationId: i }
78
+ ), a = f();
79
+ if (a.setCurrentBlock(i), c) {
80
+ d(this.api);
81
+ const u = this._getBlockElement(t);
82
+ u && (p(this.api, u, !0), A({
83
+ currentNode: t,
84
+ documentModifier: this.api.getDocumentModifier()
85
+ }));
86
+ }
87
+ a.patchCurrentBlockConfig({ language: o.language }, { triggerRefetch: !1 });
81
88
  }
82
89
  /**
83
90
  * Called when the document changes or template is loaded
@@ -90,20 +97,20 @@ class q extends b {
90
97
  if (!(!t || !("getNodeConfig" in t))) {
91
98
  if (!this._getRecommendationId(t)) {
92
99
  const e = this._generateNextId();
93
- this._assignRecommendationId(t, e), c.hasConfig(t) && c.updateConfig(
100
+ this._assignRecommendationId(t, e), s.hasConfig(t) && s.updateConfig(
94
101
  this.api,
95
102
  t,
96
103
  { recommendationId: e },
97
104
  "Assign recommendation ID to legacy block"
98
105
  );
99
106
  }
100
- c.needsMigration(t) && this._migrateFromLegacy(t);
107
+ s.needsMigration(t) && this._migrateFromLegacy(t);
101
108
  try {
102
- h || (g(this.api), h = !0);
103
- const e = c.getConfig(t), i = this._getBlockElement(t);
109
+ I || (d(this.api), I = !0);
110
+ const e = s.getConfig(t), i = this._getBlockElement(t);
104
111
  if (i) {
105
112
  const o = !e.mobileLayoutEnabled;
106
- A(i) !== o && d(this.api, i, o);
113
+ D(i) !== o && p(this.api, i, o);
107
114
  }
108
115
  } catch {
109
116
  }
@@ -117,7 +124,7 @@ class q extends b {
117
124
  */
118
125
  onDelete(t) {
119
126
  const e = this._getRecommendationId(t);
120
- e && p().removeBlockState(e);
127
+ e && f().removeBlockState(e);
121
128
  }
122
129
  /**
123
130
  * Generates the next unique recommendation ID by scanning all existing blocks
@@ -129,7 +136,7 @@ class q extends b {
129
136
  const e = this.api.getDocumentRoot();
130
137
  e && "querySelectorAll" in e && e.querySelectorAll(`.${l}`).forEach((o) => {
131
138
  if ("getAttribute" in o) {
132
- const s = o.getAttribute(m), a = s ? parseInt(s) : 0;
139
+ const c = o.getAttribute(m), a = c ? parseInt(c) : 0;
133
140
  a > t && (t = a);
134
141
  }
135
142
  });
@@ -148,7 +155,7 @@ class q extends b {
148
155
  if (!i)
149
156
  return;
150
157
  const o = this.api.getDocumentModifier();
151
- o.modifyHtml(i).setAttribute(m, e.toString()), o.apply(new y(`Assign recommendation ID ${e}`));
158
+ o.modifyHtml(i).setAttribute(m, e.toString()), o.apply(new C(`Assign recommendation ID ${e}`));
152
159
  }
153
160
  /**
154
161
  * Gets the recommendation-id from a block node
@@ -178,10 +185,10 @@ class q extends b {
178
185
  * Migrate configuration from legacy format
179
186
  */
180
187
  _migrateFromLegacy(t) {
181
- c.migrateFromDataAttributes(this.api, t);
188
+ s.migrateFromDataAttributes(this.api, t);
182
189
  }
183
190
  }
184
191
  export {
185
- f as BLOCK_ID,
186
- q as RecommendationBlock
192
+ h as BLOCK_ID,
193
+ v as RecommendationBlock
187
194
  };