@useinsider/guido 3.16.0-beta.ca26c4e → 3.16.0-beta.d7c8e2a
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/dist/config/migrator/itemsBlockMigrator.js +1 -1
- package/dist/enums/recommendation.js +17 -17
- package/dist/extensions/Blocks/Items/enums/productEnums.js +45 -45
- package/dist/src/utils/dynamicContentFormat.d.ts +33 -0
- package/dist/utils/dynamicContentFormat.js +35 -0
- package/dist/utils/genericUtil.js +43 -49
- package/package.json +1 -1
|
@@ -381,7 +381,7 @@ class H {
|
|
|
381
381
|
* Supports all block types by detecting prefix and using appropriate type:
|
|
382
382
|
*
|
|
383
383
|
* Examples:
|
|
384
|
-
* - {{ins_apr_img_1}} → https://
|
|
384
|
+
* - {{ins_apr_img_1}} → https://s3.../img_1.jpeg (CART_ITEMS)
|
|
385
385
|
* - {{browsed_item_name_2}} → 'Set of Sprite Yoga Straps' (BROWSED_ITEMS)
|
|
386
386
|
* - {{purchased_item_formattedprice_5}} → '1,490.49' (PURCHASED_ITEMS)
|
|
387
387
|
*/
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
const e = 20,
|
|
1
|
+
const e = 20, s = 320, t = "vertical", m = {
|
|
2
2
|
CART_ABANDONMENT: {
|
|
3
|
-
ins_apr_img_1: "https://web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_1.png",
|
|
4
|
-
ins_apr_img_2: "https://web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_2.png",
|
|
5
|
-
ins_apr_img_3: "https://web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_3.png",
|
|
6
|
-
ins_apr_img_4: "https://web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_4.png"
|
|
3
|
+
ins_apr_img_1: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_1.png",
|
|
4
|
+
ins_apr_img_2: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_2.png",
|
|
5
|
+
ins_apr_img_3: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_3.png",
|
|
6
|
+
ins_apr_img_4: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_4.png"
|
|
7
7
|
},
|
|
8
8
|
BROWSE_ABANDONMENT: {
|
|
9
|
-
browsed_item_img_1: "https://web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_1.jpg",
|
|
10
|
-
browsed_item_img_2: "https://web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_2.jpg",
|
|
11
|
-
browsed_item_img_3: "https://web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_3.jpg",
|
|
12
|
-
browsed_item_img_4: "https://web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_4.jpg"
|
|
9
|
+
browsed_item_img_1: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_1.jpg",
|
|
10
|
+
browsed_item_img_2: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_2.jpg",
|
|
11
|
+
browsed_item_img_3: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_3.jpg",
|
|
12
|
+
browsed_item_img_4: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_4.jpg"
|
|
13
13
|
}
|
|
14
14
|
}, i = {
|
|
15
15
|
DISCOUNT: "discount",
|
|
@@ -23,7 +23,7 @@ const e = 20, t = 320, s = "vertical", m = {
|
|
|
23
23
|
},
|
|
24
24
|
ELSE: "{% else %}",
|
|
25
25
|
END_IF: "{% endif %}"
|
|
26
|
-
},
|
|
26
|
+
}, a = {
|
|
27
27
|
ID: /recommendation-id="(.*?)"/gi,
|
|
28
28
|
ATTRIBUTE_PARAGRAPH: /<p[^>]*?product-attr="(discount|omnibus_discount|omnibus_price)"[^>]*>[\S\s]*?<\/p>/gm,
|
|
29
29
|
ATTRIBUTE_PARAGRAPH_START_TAG: /<p[^>]*?product-attr="(discount|omnibus_discount|omnibus_price)"[^>]*>/gm,
|
|
@@ -31,9 +31,9 @@ const e = 20, t = 320, s = "vertical", m = {
|
|
|
31
31
|
CUSTOM_FIELD: /{{(?:reco_)?[0-9]+_[0-8]_(discount|omnibus_discount|omnibus_price)}}/gm,
|
|
32
32
|
CUSTOM_FIELD_INDEXES_PART: /{{(?:reco_)?[0-9]+_[0-8]_/gm,
|
|
33
33
|
CUSTOM_FIELD_NAME_PART: /_(discount|omnibus_discount|omnibus_price)}}/gm
|
|
34
|
-
},
|
|
34
|
+
}, n = {
|
|
35
35
|
PARAGRAPH_END_TAG: "</p>"
|
|
36
|
-
},
|
|
36
|
+
}, o = {
|
|
37
37
|
REGULAR_NAME_HEIGHT: ".ext-product-name.ins-vertical p { height:90px!important;",
|
|
38
38
|
TRIMMED_NAME_HEIGHT: ".ext-product-name.ins-vertical p { height:18px!important;",
|
|
39
39
|
ELLIPSIS: "text-overflow:ellipsis!important; white-space:nowrap!important;",
|
|
@@ -47,11 +47,11 @@ const e = 20, t = 320, s = "vertical", m = {
|
|
|
47
47
|
export {
|
|
48
48
|
i as ATTRIBUTES,
|
|
49
49
|
_ as CONDITIONS,
|
|
50
|
-
|
|
50
|
+
o as CSS,
|
|
51
51
|
m as DUMMY_IMAGE_MAPPINGS,
|
|
52
52
|
e as DefaultPadding,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
n as HTML,
|
|
54
|
+
s as MinDeviceViewport,
|
|
55
|
+
a as REGEX,
|
|
56
|
+
t as VerticalOrientation
|
|
57
57
|
};
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
const
|
|
1
|
+
import _ from "../../../../node_modules/lodash-es/flatMap.js";
|
|
2
|
+
import E from "../../../../node_modules/lodash-es/range.js";
|
|
3
|
+
const T = '<td align="center" class="ins-product-td items-block items-block-v2">', a = { PAIRS_FOR_EXTENSION: {
|
|
4
4
|
imageSrc: {
|
|
5
5
|
CART_ITEMS: {
|
|
6
6
|
ATTR: "ins_apr_img",
|
|
7
7
|
DEFAULT: [
|
|
8
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_1.jpeg",
|
|
9
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_2.webp",
|
|
10
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_3.jpeg",
|
|
11
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_4.jpeg",
|
|
12
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_5.jpeg",
|
|
13
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_6.jpeg",
|
|
14
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_7.jpeg",
|
|
15
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_8.jpeg"
|
|
8
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_1.jpeg",
|
|
9
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_2.webp",
|
|
10
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_3.jpeg",
|
|
11
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_4.jpeg",
|
|
12
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_5.jpeg",
|
|
13
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_6.jpeg",
|
|
14
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_7.jpeg",
|
|
15
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_8.jpeg"
|
|
16
16
|
]
|
|
17
17
|
},
|
|
18
18
|
BROWSED_ITEMS: {
|
|
19
19
|
ATTR: "browsed_item_img",
|
|
20
20
|
DEFAULT: [
|
|
21
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_1.jpeg",
|
|
22
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_2.webp",
|
|
23
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_3.jpeg",
|
|
24
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_4.jpeg",
|
|
25
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_5.jpeg",
|
|
26
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_6.jpeg",
|
|
27
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_7.jpeg",
|
|
28
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_8.jpeg"
|
|
21
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_1.jpeg",
|
|
22
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_2.webp",
|
|
23
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_3.jpeg",
|
|
24
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_4.jpeg",
|
|
25
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_5.jpeg",
|
|
26
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_6.jpeg",
|
|
27
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_7.jpeg",
|
|
28
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_8.jpeg"
|
|
29
29
|
]
|
|
30
30
|
},
|
|
31
31
|
PURCHASED_ITEMS: {
|
|
32
32
|
ATTR: "purchased_item_img",
|
|
33
33
|
DEFAULT: [
|
|
34
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_1.jpeg",
|
|
35
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_2.webp",
|
|
36
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_3.jpeg",
|
|
37
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_4.jpeg",
|
|
38
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_5.jpeg",
|
|
39
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_6.jpeg",
|
|
40
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_7.jpeg",
|
|
41
|
-
"https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_8.jpeg"
|
|
34
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_1.jpeg",
|
|
35
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_2.webp",
|
|
36
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_3.jpeg",
|
|
37
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_4.jpeg",
|
|
38
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_5.jpeg",
|
|
39
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_6.jpeg",
|
|
40
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_7.jpeg",
|
|
41
|
+
"https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_8.jpeg"
|
|
42
42
|
]
|
|
43
43
|
}
|
|
44
44
|
},
|
|
@@ -211,27 +211,27 @@ const t = '<td align="center" class="ins-product-td items-block items-block-v2">
|
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
213
|
} };
|
|
214
|
-
function
|
|
215
|
-
return
|
|
214
|
+
function m(e, s = 8) {
|
|
215
|
+
return E(1, s + 1).map((i) => `${e}_${i}`);
|
|
216
216
|
}
|
|
217
|
-
function
|
|
218
|
-
const { PAIRS_FOR_EXTENSION: e } =
|
|
219
|
-
return
|
|
217
|
+
function r() {
|
|
218
|
+
const { PAIRS_FOR_EXTENSION: e } = a, s = [];
|
|
219
|
+
return s.push(
|
|
220
220
|
e.imageSrc.CART_ITEMS.ATTR,
|
|
221
221
|
e.imageSrc.BROWSED_ITEMS.ATTR,
|
|
222
222
|
e.imageSrc.PURCHASED_ITEMS.ATTR
|
|
223
|
-
),
|
|
223
|
+
), s.push(
|
|
224
224
|
e.name.CART_ITEMS.ATTR,
|
|
225
225
|
e.name.CART_ITEMS.HREF,
|
|
226
226
|
e.name.BROWSED_ITEMS.ATTR,
|
|
227
227
|
e.name.BROWSED_ITEMS.HREF,
|
|
228
228
|
e.name.PURCHASED_ITEMS.ATTR,
|
|
229
229
|
e.name.PURCHASED_ITEMS.HREF
|
|
230
|
-
),
|
|
230
|
+
), s.push(
|
|
231
231
|
e.quantity.CART_ITEMS.ATTR,
|
|
232
232
|
e.quantity.BROWSED_ITEMS.ATTR,
|
|
233
233
|
e.quantity.PURCHASED_ITEMS.ATTR
|
|
234
|
-
),
|
|
234
|
+
), s.push(
|
|
235
235
|
e.price.CART_ITEMS.PRICE,
|
|
236
236
|
e.price.CART_ITEMS.PRICE_FORMATTED,
|
|
237
237
|
e.price.CART_ITEMS.SINGLE_PRICE,
|
|
@@ -247,7 +247,7 @@ function R() {
|
|
|
247
247
|
e.price.PURCHASED_ITEMS.SINGLE_PRICE,
|
|
248
248
|
e.price.PURCHASED_ITEMS.SINGLE_PRICE_FORMATTED,
|
|
249
249
|
e.price.PURCHASED_ITEMS.CURRENCY
|
|
250
|
-
),
|
|
250
|
+
), s.push(
|
|
251
251
|
e.originalPrice.CART_ITEMS.PRICE,
|
|
252
252
|
e.originalPrice.CART_ITEMS.PRICE_FORMATTED,
|
|
253
253
|
e.originalPrice.CART_ITEMS.SINGLE_PRICE,
|
|
@@ -263,22 +263,22 @@ function R() {
|
|
|
263
263
|
e.originalPrice.PURCHASED_ITEMS.SINGLE_PRICE,
|
|
264
264
|
e.originalPrice.PURCHASED_ITEMS.SINGLE_PRICE_FORMATTED,
|
|
265
265
|
e.originalPrice.PURCHASED_ITEMS.CURRENCY
|
|
266
|
-
),
|
|
266
|
+
), s.push(
|
|
267
267
|
e.button.CART_ITEMS.HREF,
|
|
268
268
|
e.button.BROWSED_ITEMS.HREF,
|
|
269
269
|
e.button.PURCHASED_ITEMS.HREF
|
|
270
|
-
),
|
|
270
|
+
), s.push(
|
|
271
271
|
e.itemLink.CART_ITEMS.HREF,
|
|
272
272
|
e.itemLink.BROWSED_ITEMS.HREF,
|
|
273
273
|
e.itemLink.PURCHASED_ITEMS.HREF
|
|
274
|
-
),
|
|
274
|
+
), s;
|
|
275
275
|
}
|
|
276
|
-
const
|
|
277
|
-
|
|
278
|
-
(e) =>
|
|
276
|
+
const o = _(
|
|
277
|
+
r(),
|
|
278
|
+
(e) => m(e)
|
|
279
279
|
);
|
|
280
280
|
export {
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
281
|
+
o as itemsBlockDynamicVariables,
|
|
282
|
+
a as productPairs,
|
|
283
|
+
T as templateFirstLine
|
|
284
284
|
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { BaseDynamicContent } from '@@/Types/generic';
|
|
2
|
+
/** Format key the dynamic-content picker sends for a custom date/time format. */
|
|
3
|
+
export declare const TIME_FORMAT_KEY = "time-format";
|
|
4
|
+
/** Liquid filter that renders a date/time value in a custom pattern. */
|
|
5
|
+
export declare const TIME_FORMAT_FILTER = "time_format";
|
|
6
|
+
/** Liquid filter that renders a fallback when the value is empty. */
|
|
7
|
+
export declare const DEFAULT_FILTER = "default";
|
|
8
|
+
export type DynamicContentFormat = NonNullable<BaseDynamicContent['format']>;
|
|
9
|
+
/** Unwraps a quoted Liquid literal — the exact inverse of `toLiquidLiteral`. */
|
|
10
|
+
export declare const stripQuotes: (literal: string) => string;
|
|
11
|
+
/** Liquid string literal — numbers stay unquoted so `default: 0` keeps its type. */
|
|
12
|
+
export declare const toLiquidLiteral: (value: string) => string;
|
|
13
|
+
/**
|
|
14
|
+
* `{ key: 'time-format', value: 'YYYY-MM-DD' }` → `time_format: "YYYY-MM-DD"`.
|
|
15
|
+
* Returns null when the format has no Liquid equivalent, which is the caller's
|
|
16
|
+
* signal to keep the legacy tail instead.
|
|
17
|
+
*/
|
|
18
|
+
export declare const formatToLiquidFilter: (format: DynamicContentFormat | undefined) => string | null;
|
|
19
|
+
/** Inverse of `formatToLiquidFilter` — reads the picker format back out of one filter segment. */
|
|
20
|
+
export declare const liquidFilterToFormat: (segment: string) => DynamicContentFormat | null;
|
|
21
|
+
/**
|
|
22
|
+
* The full Liquid expression for a dynamic-content selection, e.g.
|
|
23
|
+
* `{{ signup_date | time_format: "YYYY-MM-DD" | default: "-" }}`.
|
|
24
|
+
* A format with no Liquid filter is dropped rather than emitted as invalid syntax —
|
|
25
|
+
* callers that must preserve it fall back to the legacy tag form.
|
|
26
|
+
*/
|
|
27
|
+
export declare const buildLiquidTag: ({ value, format, fallback }: BaseDynamicContent) => string;
|
|
28
|
+
/** Whether the selection can be expressed in Liquid without losing its format. */
|
|
29
|
+
export declare const hasLiquidEquivalent: (format: DynamicContentFormat | undefined) => boolean;
|
|
30
|
+
/** Whether one `{{ … }}` segment is a `default:` filter. */
|
|
31
|
+
export declare const isLiquidDefaultFilter: (segment: string) => boolean;
|
|
32
|
+
/** Reads the fallback out of a `default: "…"` filter segment. */
|
|
33
|
+
export declare const readLiquidDefault: (segment: string) => string;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
const l = "time-format", _ = "time_format", s = "default", u = {
|
|
2
|
+
[l]: _
|
|
3
|
+
}, L = Object.fromEntries(
|
|
4
|
+
Object.entries(u).map(([t, i]) => [i, t])
|
|
5
|
+
), E = /^([a-z_]+)\s*:\s*(.+)$/, c = (t) => {
|
|
6
|
+
const i = t.slice(0, 1);
|
|
7
|
+
return (i === '"' || i === "'") && t.endsWith(i) && t.length > 1 ? t.slice(1, -1).replace(/\\(["'\\])/g, "$1") : t;
|
|
8
|
+
}, o = (t) => !Number.isNaN(Number(t)) && t.trim() !== "" ? t : `"${t.replace(/(["\\])/g, "\\$1")}"`, r = (t) => {
|
|
9
|
+
const i = t != null && t.key ? u[t.key] : void 0;
|
|
10
|
+
return !i || !(t != null && t.value) ? null : `${i}: ${o(t.value)}`;
|
|
11
|
+
}, T = (t) => {
|
|
12
|
+
const i = t.trim().match(E);
|
|
13
|
+
if (!i)
|
|
14
|
+
return null;
|
|
15
|
+
const e = L[i[1]];
|
|
16
|
+
return e ? { key: e, value: c(i[2].trim()) } : null;
|
|
17
|
+
}, d = ({ value: t, format: i, fallback: e }) => {
|
|
18
|
+
const n = [r(i)];
|
|
19
|
+
return e && n.push(`${s}: ${o(e)}`), `{{ ${[t, ...n.filter(Boolean)].join(" | ")} }}`;
|
|
20
|
+
}, F = (t) => !t || r(t) !== null, I = (t) => t.startsWith(`${s}:`), $ = (t) => c(
|
|
21
|
+
t.slice(`${s}:`.length).trim()
|
|
22
|
+
);
|
|
23
|
+
export {
|
|
24
|
+
s as DEFAULT_FILTER,
|
|
25
|
+
_ as TIME_FORMAT_FILTER,
|
|
26
|
+
l as TIME_FORMAT_KEY,
|
|
27
|
+
d as buildLiquidTag,
|
|
28
|
+
r as formatToLiquidFilter,
|
|
29
|
+
F as hasLiquidEquivalent,
|
|
30
|
+
I as isLiquidDefaultFilter,
|
|
31
|
+
T as liquidFilterToFormat,
|
|
32
|
+
$ as readLiquidDefault,
|
|
33
|
+
c as stripQuotes,
|
|
34
|
+
o as toLiquidLiteral
|
|
35
|
+
};
|
|
@@ -1,68 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { hasLiquidEquivalent as v, buildLiquidTag as b, isLiquidDefaultFilter as o, readLiquidDefault as f, liquidFilterToFormat as h } from "./dynamicContentFormat.js";
|
|
2
|
+
const d = (e) => {
|
|
3
|
+
const a = e.value.match(/\{\{([^}]+)\}\}/)[1].split("|").map((t) => t.trim()), [n] = a, r = {
|
|
4
|
+
text: e.label,
|
|
5
|
+
value: n || ""
|
|
5
6
|
};
|
|
6
7
|
if (a.length >= 2) {
|
|
7
|
-
const [, t,
|
|
8
|
-
if (t
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
n ? r.format = n : e || (r.fallback = t), e && (r.fallback = e);
|
|
8
|
+
const [, t, l] = a;
|
|
9
|
+
if (o(t))
|
|
10
|
+
r.fallback = f(t);
|
|
11
|
+
else {
|
|
12
|
+
const s = h(t) ?? (t.includes("=") ? { key: t.split("=")[0].trim(), value: t.split("=")[1].trim() } : null);
|
|
13
|
+
s ? r.format = s : l || (r.fallback = t), l && (r.fallback = o(l) ? f(l) : l);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
return r;
|
|
17
|
-
},
|
|
18
|
-
|
|
17
|
+
}, i = (e, u = !1) => e.map((a) => {
|
|
18
|
+
var n;
|
|
19
|
+
if (u && v(a.format)) {
|
|
20
|
+
const r = [(n = a.format) == null ? void 0 : n.value, a.fallback].filter(Boolean);
|
|
19
21
|
return {
|
|
20
|
-
label:
|
|
21
|
-
value:
|
|
22
|
-
};
|
|
23
|
-
if (s) {
|
|
24
|
-
if (!a.fallback)
|
|
25
|
-
return {
|
|
26
|
-
label: a.text,
|
|
27
|
-
value: `{{ ${a.value} }}`
|
|
28
|
-
};
|
|
29
|
-
const r = !Number.isNaN(Number(a.fallback)) && a.fallback.trim() !== "" ? a.fallback : `"${a.fallback}"`;
|
|
30
|
-
return {
|
|
31
|
-
label: `${a.text} | ${a.fallback}`,
|
|
32
|
-
value: `{{ ${a.value} | default: ${r} }}`
|
|
22
|
+
label: [a.text, ...r].join(" | "),
|
|
23
|
+
value: b(a)
|
|
33
24
|
};
|
|
34
25
|
}
|
|
35
|
-
return {
|
|
26
|
+
return a.format ? {
|
|
27
|
+
label: `${a.text} | ${a.format.key}=${a.format.value}`,
|
|
28
|
+
value: `{{${a.value}|${a.format.key}=${a.format.value}}}`
|
|
29
|
+
} : {
|
|
36
30
|
label: a.fallback ? `${a.text} | ${a.fallback}` : a.text,
|
|
37
31
|
value: a.fallback ? `{{${a.value}|${a.fallback}}}` : `{{${a.value}}}`
|
|
38
32
|
};
|
|
39
|
-
}),
|
|
40
|
-
const
|
|
41
|
-
Array.isArray(t) && t.forEach((
|
|
42
|
-
const
|
|
43
|
-
if (
|
|
44
|
-
|
|
33
|
+
}), $ = (e) => {
|
|
34
|
+
const u = [], a = /* @__PURE__ */ new Set(), n = (t) => {
|
|
35
|
+
Array.isArray(t) && t.forEach((l) => {
|
|
36
|
+
const s = [...l.children ?? [], ...l.select_items ?? []];
|
|
37
|
+
if (s.length > 0) {
|
|
38
|
+
n(s);
|
|
45
39
|
return;
|
|
46
40
|
}
|
|
47
|
-
const
|
|
48
|
-
|
|
41
|
+
const c = l.text || l.tag_text;
|
|
42
|
+
c && l.value && !a.has(l.value) && (a.add(l.value), u.push({ text: c, value: l.value }));
|
|
49
43
|
});
|
|
50
|
-
}, [r] = Object.values(
|
|
51
|
-
return
|
|
52
|
-
},
|
|
53
|
-
const
|
|
44
|
+
}, [r] = Object.values(e ?? {});
|
|
45
|
+
return n(r), u;
|
|
46
|
+
}, g = (e, u, a = !1) => {
|
|
47
|
+
const n = new Set(e.map((t) => t.value)), r = u.filter((t) => n.has(t.value) ? !1 : (n.add(t.value), !0));
|
|
54
48
|
return [
|
|
55
|
-
...
|
|
56
|
-
...
|
|
49
|
+
...i(e, a),
|
|
50
|
+
...i(r, a)
|
|
57
51
|
];
|
|
58
|
-
},
|
|
59
|
-
var
|
|
60
|
-
return ((
|
|
52
|
+
}, y = () => {
|
|
53
|
+
var e;
|
|
54
|
+
return ((e = document.head.querySelector('meta[name="csrf-token"]')) == null ? void 0 : e.getAttribute("content")) ?? "";
|
|
61
55
|
};
|
|
62
56
|
export {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
57
|
+
g as buildMergeTagEntries,
|
|
58
|
+
i as dynamicContentToMergeTags,
|
|
59
|
+
$ as flattenDynamicContentList,
|
|
60
|
+
y as getCsrfToken,
|
|
61
|
+
d as mergeTagToDynamicContent
|
|
68
62
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@useinsider/guido",
|
|
3
|
-
"version": "3.16.0-beta.
|
|
3
|
+
"version": "3.16.0-beta.d7c8e2a",
|
|
4
4
|
"description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
|
|
5
5
|
"main": "./dist/guido.umd.cjs",
|
|
6
6
|
"module": "./dist/library.js",
|