@wandzai/utils 1.0.75 → 1.0.76

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",
3
+ "version": "1.0.76",
4
4
  "description": "Common used utilities library",
5
5
  "main": "src/index",
6
6
  "scripts": {
package/src/bee-free.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { InteractionViewModes } from '@wandzai/wandz-interfaces';
2
- export declare const extractAllTextFromEntityJson: (json: any, device?: InteractionViewModes | null) => string[];
1
+ import { InteractionViewModes, IPopupElement } from '@wandzai/wandz-interfaces';
2
+ export declare const extractAllTextFromEntityJson: (json: any, device?: InteractionViewModes | null) => IPopupElement[];
3
3
  export declare const STUDIO_SETTINGS_WIDTH_PATH: {
4
4
  desktop: string;
5
5
  mobile: string;
package/src/bee-free.js CHANGED
@@ -5,7 +5,8 @@ const lodash_1 = require("lodash");
5
5
  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
- const values = [];
8
+ const elements = [];
9
+ let index = 0;
9
10
  const stripHtml = (html) => (0, html_entities_1.decode)(html
10
11
  .replace(/<style[^>]*>.*?<\/style>/gis, '')
11
12
  .replace(/<script[^>]*>.*?<\/script>/gis, '')
@@ -23,73 +24,102 @@ const extractAllTextFromEntityJson = (json, device = null) => {
23
24
  return !hideMobile;
24
25
  return true;
25
26
  };
26
- const extractTextFromModule = (module) => {
27
+ const mergeStyles = (...styles) => Object.assign({}, ...styles);
28
+ const pushElement = (text, flags, style, rowIndex, columnIndex, moduleIndex, verticalRatio) => {
29
+ if (!text)
30
+ return;
31
+ elements.push({
32
+ id: `${rowIndex}-${columnIndex}-${moduleIndex}-${index}`,
33
+ text: text.trim(),
34
+ index: index++,
35
+ signals: {
36
+ content: flags,
37
+ typography: {
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',
43
+ },
44
+ color: {
45
+ textColor: style?.color,
46
+ backgroundColor: style?.backgroundColor,
47
+ },
48
+ layout: {
49
+ rowIndex,
50
+ columnIndex,
51
+ moduleIndex,
52
+ verticalRatio,
53
+ },
54
+ },
55
+ });
56
+ };
57
+ const extractTextFromModule = (module, rowIndex, columnIndex, moduleIndex, totalRows) => {
27
58
  const d = module.descriptor;
28
- if (!d)
59
+ if (!d || !isVisibleForDevice(d.computedStyle))
29
60
  return;
61
+ const verticalRatio = rowIndex / Math.max(totalRows - 1, 1);
62
+ const baseStyle = mergeStyles(d.computedStyle, d.style, d.mobileStyle);
30
63
  if (typeof d.paragraph?.html === 'string') {
31
- const t = stripHtml(d.paragraph.html);
32
- if (t)
33
- values.push(t);
64
+ const text = stripHtml(d.paragraph.html);
65
+ const style = mergeStyles(baseStyle, d.paragraph?.style, d.paragraph?.computedStyle);
66
+ pushElement(text, { isParagraph: true }, style, rowIndex, columnIndex, moduleIndex, verticalRatio);
34
67
  }
35
68
  if (typeof d.button?.label === 'string') {
36
- const t = stripHtml(d.button.label);
37
- if (t)
38
- values.push(t);
39
- }
40
- if (typeof d.heading?.text === 'string') {
41
- const t = stripHtml(d.heading.text);
42
- if (t)
43
- values.push(t);
69
+ const text = stripHtml(d.button.label);
70
+ const style = mergeStyles(baseStyle, d.button?.style, d.button?.computedStyle);
71
+ pushElement(text, { isButton: true }, style, rowIndex, columnIndex, moduleIndex, verticalRatio);
44
72
  }
45
- else if (typeof d.heading?.html === 'string') {
46
- const t = stripHtml(d.heading.html);
47
- if (t)
48
- values.push(t);
73
+ if (typeof d.heading?.text === 'string' || typeof d.heading?.html === 'string') {
74
+ const text = stripHtml(d.heading?.text ?? d.heading?.html);
75
+ const style = mergeStyles(baseStyle, d.heading?.style, d.heading?.computedStyle);
76
+ pushElement(text, { isHeading: true }, style, rowIndex, columnIndex, moduleIndex, verticalRatio);
49
77
  }
50
78
  if (Array.isArray(d.list?.items)) {
51
79
  for (const item of d.list.items) {
52
80
  if (typeof item?.text === 'string') {
53
- const t = stripHtml(item.text);
54
- if (t)
55
- values.push(t);
81
+ const text = stripHtml(item.text);
82
+ const style = mergeStyles(baseStyle, d.list?.style, d.list?.computedStyle);
83
+ pushElement(text, { isListItem: true }, style, rowIndex, columnIndex, moduleIndex, verticalRatio);
56
84
  }
57
85
  }
58
86
  }
59
87
  if (typeof d.html?.html === 'string') {
60
- const t = stripHtml(d.html.html);
61
- if (t)
62
- values.push(t);
88
+ const text = stripHtml(d.html.html);
89
+ const style = mergeStyles(baseStyle, d.html?.style, d.html?.computedStyle);
90
+ pushElement(text, { isRawHtml: true }, style, rowIndex, columnIndex, moduleIndex, verticalRatio);
63
91
  }
64
92
  if (typeof d.image?.alt === 'string') {
65
- const t = stripHtml(d.image.alt);
66
- if (t)
67
- values.push(t);
93
+ const text = stripHtml(d.image.alt);
94
+ const style = mergeStyles(baseStyle, d.image?.style, d.image?.computedStyle);
95
+ pushElement(text, { isImageAlt: true }, style, rowIndex, columnIndex, moduleIndex, verticalRatio);
68
96
  }
69
97
  if (d.table?.content?.rows) {
70
98
  for (const row of d.table.content.rows) {
71
99
  for (const cell of row.cells ?? []) {
72
100
  if (typeof cell.html === 'string') {
73
- const t = stripHtml(cell.html);
74
- if (t)
75
- values.push(t);
101
+ const text = stripHtml(cell.html);
102
+ const style = mergeStyles(baseStyle, d.table?.style, d.table?.computedStyle);
103
+ pushElement(text, { isTableCell: true }, style, rowIndex, columnIndex, moduleIndex, verticalRatio);
76
104
  }
77
105
  }
78
106
  }
79
107
  }
80
108
  };
81
- for (const row of json.page?.rows ?? []) {
109
+ const rows = json.page?.rows ?? [];
110
+ rows.forEach((row, rowIndex) => {
82
111
  if (!isVisibleForDevice(row.content?.computedStyle))
83
- continue;
84
- for (const column of row.columns ?? []) {
85
- for (const module of column.modules ?? []) {
112
+ return;
113
+ const totalRows = rows.length;
114
+ row.columns?.forEach((column, columnIndex) => {
115
+ column.modules?.forEach((module, moduleIndex) => {
86
116
  if (!isVisibleForDevice(module.descriptor?.computedStyle))
87
- continue;
88
- extractTextFromModule(module);
89
- }
90
- }
91
- }
92
- return device == null ? Array.from(new Set(values)) : values;
117
+ return;
118
+ extractTextFromModule(module, rowIndex, columnIndex, moduleIndex, totalRows);
119
+ });
120
+ });
121
+ });
122
+ return elements;
93
123
  };
94
124
  exports.extractAllTextFromEntityJson = extractAllTextFromEntityJson;
95
125
  exports.STUDIO_SETTINGS_WIDTH_PATH = {
@@ -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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"}