@wandzai/utils 1.0.75-benchmark-classifications-14 → 1.0.75-benchmark-classifications-15

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wandzai/utils",
3
- "version": "1.0.75-benchmark-classifications-14",
3
+ "version": "1.0.75-benchmark-classifications-15",
4
4
  "description": "Common used utilities library",
5
5
  "main": "src/index",
6
6
  "scripts": {
package/src/bee-free.js CHANGED
@@ -6,7 +6,7 @@ const html_entities_1 = require("html-entities");
6
6
  const wandz_interfaces_1 = require("@wandzai/wandz-interfaces");
7
7
  const extractAllTextFromEntityJson = (json, device = null) => {
8
8
  const elements = [];
9
- const seenText = new Set();
9
+ let index = 0;
10
10
  const stripHtml = (html) => (0, html_entities_1.decode)(html
11
11
  .replace(/<style[^>]*>.*?<\/style>/gis, '')
12
12
  .replace(/<script[^>]*>.*?<\/script>/gis, '')
@@ -16,89 +16,82 @@ const extractAllTextFromEntityJson = (json, device = null) => {
16
16
  const isVisibleForDevice = (style) => {
17
17
  if (!style)
18
18
  return true;
19
- if (device === 'desktop' && style.hideContentOnDesktop)
20
- return false;
21
- if (device === 'mobile' && style.hideContentOnMobile)
22
- return false;
23
- return true;
19
+ const hideDesktop = style?.hideContentOnDesktop;
20
+ const hideMobile = style?.hideContentOnMobile;
21
+ if (device === wandz_interfaces_1.InteractionViewModes.DESKTOP)
22
+ return !hideDesktop;
23
+ if (device === wandz_interfaces_1.InteractionViewModes.MOBILE)
24
+ return !hideMobile;
25
+ return !(hideDesktop && hideMobile);
24
26
  };
25
- const pushElement = (text, style, rowIndex, columnIndex, moduleIndex, totalRows, flags) => {
26
- if (!text || seenText.has(text))
27
+ const mergeStyles = (...styles) => Object.assign({}, ...styles);
28
+ const pushElement = (text, style, rowIndex, columnIndex, moduleIndex, totalRows, contentFlags) => {
29
+ if (!text)
27
30
  return;
28
- seenText.add(text);
29
31
  elements.push({
30
- id: `${rowIndex}-${columnIndex}-${moduleIndex}-${elements.length}`,
31
- text,
32
- index: elements.length,
32
+ id: `${rowIndex}-${columnIndex}-${moduleIndex}-${index}`,
33
+ text: text.trim(),
34
+ index: index++,
33
35
  signals: {
34
- content: flags,
36
+ content: contentFlags,
35
37
  typography: {
36
- fontSizePx: style.fontSizePx || 14,
37
- fontWeight: style.fontWeight || 400,
38
- isItalic: !!style.fontStyle?.includes('italic'),
39
- isUppercase: !!style.textTransform?.includes('uppercase'),
40
- isUnderlined: !!style.textDecoration?.includes('underline')
38
+ fontSizePx: style?.fontSize ? Number(String(style.fontSize).replace('px', '')) : undefined,
39
+ fontWeight: style?.fontWeight ? Number(style.fontWeight) : undefined,
40
+ isItalic: style?.fontStyle === 'italic',
41
+ isUppercase: style?.textTransform === 'uppercase',
42
+ isUnderlined: style?.textDecoration === 'underline',
41
43
  },
42
44
  color: {
43
- textColor: style.textColor || '#000000',
44
- backgroundColor: style.backgroundColor || 'transparent'
45
+ textColor: style?.color,
46
+ backgroundColor: style?.backgroundColor,
45
47
  },
46
48
  layout: {
47
- textAlign: style.textAlign || 'left',
49
+ textAlign: style?.textAlign,
48
50
  rowIndex,
49
51
  columnIndex,
50
52
  moduleIndex,
51
- verticalRatio: rowIndex / (totalRows || 1)
52
- }
53
- }
53
+ verticalRatio: rowIndex / Math.max(totalRows - 1, 1),
54
+ },
55
+ },
54
56
  });
55
57
  };
56
- const traverseModules = (modules) => {
57
- modules.forEach((module, moduleIndex) => {
58
- const d = module.descriptor;
59
- if (!d || !isVisibleForDevice(d.computedStyle))
60
- return;
61
- const baseStyle = { ...d.computedStyle, ...d.style };
62
- const sources = [
63
- { text: d.paragraph?.html && stripHtml(d.paragraph.html), flags: { isParagraph: true }, style: { ...baseStyle, ...d.paragraph?.style } },
64
- { text: d.button?.label && stripHtml(d.button.label), flags: { isButton: true }, style: { ...baseStyle, ...d.button?.style } },
65
- { text: d.heading?.text && stripHtml(d.heading.text), flags: { isHeading: true }, style: { ...baseStyle, ...d.heading?.style } },
66
- { text: d.heading?.html && stripHtml(d.heading.html), flags: { isHeading: true }, style: { ...baseStyle, ...d.heading?.style } },
67
- {
68
- text: null,
69
- flags: { isListItem: true },
70
- style: { ...baseStyle, ...d.list?.style },
71
- listItems: Array.isArray(d.list?.items) ? d.list.items.map((i) => stripHtml(i.text)) : []
72
- },
73
- { text: d.html?.html && stripHtml(d.html.html), flags: { isRawHtml: true }, style: { ...baseStyle, ...d.html?.style } },
74
- { text: d.image?.alt && stripHtml(d.image.alt), flags: { isImageAlt: true }, style: { ...baseStyle, ...d.image?.style } },
75
- {
76
- text: null,
77
- flags: { isTableCell: true },
78
- style: { ...baseStyle, ...d.table?.style },
79
- tableCells: d.table?.content?.rows?.flatMap((r) => r.cells?.map((c) => stripHtml(c.html)) || []) || []
80
- }
81
- ];
82
- for (const src of sources) {
83
- if (src.listItems && src.listItems.length) {
84
- src.listItems.forEach((text, idx) => pushElement(text, src.style, idx, 0, moduleIndex, src.listItems.length, src.flags));
85
- break;
86
- }
87
- if (src.tableCells && src.tableCells.length) {
88
- src.tableCells.forEach((text, idx) => pushElement(text, src.style, idx, 0, moduleIndex, src.tableCells.length, src.flags));
89
- break;
58
+ const extractTextFromModule = (module, rowIndex, columnIndex, moduleIndex, totalRows) => {
59
+ const d = module.descriptor;
60
+ if (!d || !isVisibleForDevice(d.computedStyle))
61
+ return;
62
+ const baseStyle = mergeStyles(d.computedStyle, d.style, d.mobileStyle);
63
+ const sources = [
64
+ { text: d.paragraph?.html && stripHtml(d.paragraph.html), flags: { isParagraph: true }, style: mergeStyles(baseStyle, d.paragraph?.style, d.paragraph?.computedStyle) },
65
+ { text: d.button?.label && stripHtml(d.button.label), flags: { isButton: true }, style: mergeStyles(baseStyle, d.button?.style, d.button?.computedStyle) },
66
+ { text: d.heading?.text && stripHtml(d.heading.text), flags: { isHeading: true }, style: mergeStyles(baseStyle, d.heading?.style, d.heading?.computedStyle) },
67
+ { text: d.heading?.html && stripHtml(d.heading.html), flags: { isHeading: true }, style: mergeStyles(baseStyle, d.heading?.style, d.heading?.computedStyle) },
68
+ { text: Array.isArray(d.list?.items) ? d.list.items.map((i) => stripHtml(i.text)).join(' | ') : null, flags: { isListItem: true }, style: mergeStyles(baseStyle, d.list?.style, d.list?.computedStyle) },
69
+ { text: d.html?.html && stripHtml(d.html.html), flags: { isRawHtml: true }, style: mergeStyles(baseStyle, d.html?.style, d.html?.computedStyle) },
70
+ { text: d.image?.alt && stripHtml(d.image.alt), flags: { isImageAlt: true }, style: mergeStyles(baseStyle, d.image?.style, d.image?.computedStyle) },
71
+ { text: d.table?.content?.rows?.map((r) => r.cells?.map((c) => stripHtml(c.html)).join(' | ')).join(' || '), flags: { isTableCell: true }, style: mergeStyles(baseStyle, d.table?.style, d.table?.computedStyle) },
72
+ ];
73
+ for (const src of sources) {
74
+ if (src.text) {
75
+ if (Array.isArray(src.text)) {
76
+ src.text.forEach(cellText => pushElement(cellText, src.style, rowIndex, columnIndex, moduleIndex, totalRows, src.flags));
90
77
  }
91
- if (src.text) {
92
- pushElement(src.text, src.style, 0, 0, moduleIndex, 1, src.flags);
93
- break;
78
+ else {
79
+ pushElement(src.text, src.style, rowIndex, columnIndex, moduleIndex, totalRows, src.flags);
94
80
  }
81
+ break;
95
82
  }
96
- });
83
+ }
97
84
  };
98
- if (json.modules?.desktop && (!device || device === 'desktop'))
99
- traverseModules(json.modules.desktop);
100
- if (json.modules?.mobile && (!device || device === 'mobile'))
101
- traverseModules(json.modules.mobile);
85
+ const rows = json.page?.rows ?? [];
86
+ rows.forEach((row, rowIndex) => {
87
+ if (!isVisibleForDevice(row.content?.computedStyle))
88
+ return;
89
+ row.columns?.forEach((column, columnIndex) => {
90
+ column.modules?.forEach((module, moduleIndex) => {
91
+ extractTextFromModule(module, rowIndex, columnIndex, moduleIndex, rows.length);
92
+ });
93
+ });
94
+ });
102
95
  return elements;
103
96
  };
104
97
  exports.extractAllTextFromEntityJson = extractAllTextFromEntityJson;
@@ -1 +1 @@
1
- {"version":3,"file":"bee-free.js","sourceRoot":"","sources":["../../../../libs/utils/src/bee-free.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bee-free.js","sourceRoot":"","sources":["../../../../libs/utils/src/bee-free.ts"],"names":[],"mappings":"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"}