@baishuyun/ai-feat-utils 2.0.6 → 2.0.8

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.
@@ -1,4 +1,4 @@
1
- const c = (e) => {
1
+ const s = (e) => {
2
2
  if ((e == null ? void 0 : e.type) !== "text" || !e.providerMetadata || !e.providerMetadata.raw || !e.providerMetadata.raw.data)
3
3
  return null;
4
4
  if (typeof e.providerMetadata.raw.data != "string")
@@ -13,16 +13,16 @@ const c = (e) => {
13
13
  }, S = (e) => {
14
14
  if ((e == null ? void 0 : e.type) === "error")
15
15
  return !0;
16
- const t = c(e);
16
+ const t = s(e);
17
17
  return (t == null ? void 0 : t.type) === "agent-error";
18
18
  }, R = (e) => {
19
- const t = c(e);
19
+ const t = s(e);
20
20
  return (t == null ? void 0 : t.type) === "agent-fake-msg";
21
21
  }, T = (e) => (e == null ? void 0 : e.type) === "file", D = (e) => {
22
- const t = c(e);
22
+ const t = s(e);
23
23
  return (t == null ? void 0 : t.type) === "query-stream-parsed-info";
24
24
  }, O = (e) => {
25
- const t = c(e);
25
+ const t = s(e);
26
26
  if ((t == null ? void 0 : t.type) !== "query-stream-parsed-info")
27
27
  return null;
28
28
  const r = t.result;
@@ -32,30 +32,30 @@ const c = (e) => {
32
32
  } catch (n) {
33
33
  return console.error("invalid query result data"), null;
34
34
  }
35
- }, F = (e) => {
35
+ }, I = (e) => {
36
36
  if (!Array.isArray(e))
37
37
  return !1;
38
38
  for (const t of e)
39
39
  if ((t == null ? void 0 : t.type) === "file")
40
40
  return !0;
41
41
  return !1;
42
- }, I = (e) => {
43
- const t = c(e);
42
+ }, F = (e) => {
43
+ const t = s(e);
44
44
  return (t == null ? void 0 : t.type) === "agent-loading";
45
45
  }, B = (e) => {
46
- const t = c(e);
46
+ const t = s(e);
47
47
  return (t == null ? void 0 : t.type) !== "agent-loading" ? "" : (t == null ? void 0 : t.label) || "加载中";
48
48
  }, L = (e) => {
49
49
  if (!S(e))
50
50
  return "";
51
51
  if (e != null && e.errorText)
52
52
  return e.errorText;
53
- const t = c(e);
53
+ const t = s(e);
54
54
  return (t == null ? void 0 : t.error) || "未知错误";
55
55
  }, W = (e) => {
56
56
  if (e != null && e.errorText)
57
57
  return e.errorText;
58
- const t = c(e);
58
+ const t = s(e);
59
59
  return (t == null ? void 0 : t.error) || "未知错误";
60
60
  }, g = "data-shadow-slot-injected", U = (e, t) => {
61
61
  if (e.querySelector(`[${g}]`)) return;
@@ -88,10 +88,10 @@ const G = (e) => w(e) ? e.join(", ") : q(e) ? e.map((r) => r.value).join(", ") :
88
88
  "checkboxgroup",
89
89
  "number"
90
90
  ]), j = (e) => Array.isArray(e) ? e.filter((t) => t.widget ? C.has(t.widget.type) : !1) : [], J = (e) => (t) => {
91
- const r = c(t);
91
+ const r = s(t);
92
92
  return (r == null ? void 0 : r.type) === e;
93
93
  }, H = (e) => (t) => {
94
- const r = c(t);
94
+ const r = s(t);
95
95
  return (r == null ? void 0 : r.type) !== e ? null : (r == null ? void 0 : r.field) || null;
96
96
  }, Q = (e) => (t) => Array.isArray(t) && t.length > 0 ? t.filter(e) : e(t) ? [t] : [], $ = (e) => {
97
97
  try {
@@ -235,13 +235,13 @@ function k(e, t) {
235
235
  const n = Array.isArray(e) ? e.map(String) : [];
236
236
  return r.every((a) => n.includes(a));
237
237
  }
238
- function x(e, t) {
238
+ function P(e, t) {
239
239
  const r = b(t);
240
240
  if (!r) return !1;
241
241
  const n = Number(e);
242
242
  return !(isNaN(n) || r.min !== void 0 && r.min !== null && n < Number(r.min) || r.max !== void 0 && r.max !== null && n > Number(r.max));
243
243
  }
244
- function P(e, t) {
244
+ function x(e, t) {
245
245
  var o;
246
246
  const r = (o = e.field.widget) == null ? void 0 : o.widgetName;
247
247
  if (!r) return !1;
@@ -274,7 +274,7 @@ function P(e, t) {
274
274
  case "all":
275
275
  return k(n, i);
276
276
  case "range":
277
- return x(n, i);
277
+ return P(n, i);
278
278
  default:
279
279
  return !1;
280
280
  }
@@ -286,10 +286,10 @@ function V(e, t) {
286
286
  if (!r) return !0;
287
287
  const { items: n, quantifier: a } = r;
288
288
  if (!n || n.length === 0) return !0;
289
- const i = n.map((o) => P(o, t));
289
+ const i = n.map((o) => x(o, t));
290
290
  return a === "any" ? i.some((o) => o) : i.every((o) => o);
291
291
  }
292
- const E = {
292
+ const ee = (e, t) => e === null || t === null ? !1 : e.formId ? t.type === "form" && t.params.formId === e.formId : e.appId ? t.type === "app" && t.params.appId === e.appId : t.type === "global", E = {
293
293
  eq: "eq",
294
294
  neq: "ne",
295
295
  gt: "gt",
@@ -320,13 +320,13 @@ const E = {
320
320
  not_empty: "not_empty",
321
321
  range: "range"
322
322
  };
323
- function ee(e) {
323
+ function te(e) {
324
324
  const t = e.quantifier === "any" ? "or" : "and", r = e.items.map((n) => {
325
- var o, l, s, u, f, p;
325
+ var o, l, c, u, f, p;
326
326
  const a = (o = E[n.operator]) != null ? o : "eq";
327
327
  let i;
328
328
  return n.operator === "range" && d(n.value) ? i = [n.value.min, n.value.max] : Array.isArray(n.value) ? i = n.value : i = [n.value], {
329
- field: (u = (s = (l = n.field) == null ? void 0 : l.widget) == null ? void 0 : s.widgetName) != null ? u : "",
329
+ field: (u = (c = (l = n.field) == null ? void 0 : l.widget) == null ? void 0 : c.widgetName) != null ? u : "",
330
330
  method: a,
331
331
  value: i,
332
332
  type: (p = (f = n.field) == null ? void 0 : f.widget) == null ? void 0 : p.type
@@ -334,10 +334,10 @@ function ee(e) {
334
334
  });
335
335
  return JSON.stringify({ rel: t, cond: r });
336
336
  }
337
- function te(e) {
337
+ function ne(e) {
338
338
  const t = JSON.parse(e), r = t.rel === "or" ? "any" : "all", n = t.cond.map((a, i) => {
339
- var s, u;
340
- const o = (s = N[a.method]) != null ? s : "eq";
339
+ var c, u;
340
+ const o = (c = N[a.method]) != null ? c : "eq";
341
341
  let l = a.value;
342
342
  return o === "range" ? l = { min: a.value[0], max: a.value[1] } : ["eq", "neq", "contains", "not_contains", "gt", "gte", "lt", "lte"].includes(o) && (l = a.value[0]), {
343
343
  id: `${a.field}_${i}`,
@@ -355,7 +355,7 @@ function te(e) {
355
355
  });
356
356
  return { targetName: "", quantifier: r, items: n };
357
357
  }
358
- function ne(e, t, r = 1) {
358
+ function re(e, t, r = 1) {
359
359
  const n = [], a = [];
360
360
  for (const i of e)
361
361
  t(i) ? a.push(i) : (a.length > 0 && (n.push(a.length >= r ? [...a] : a[0]), a.length = 0), n.push(i));
@@ -761,11 +761,11 @@ const M = {
761
761
  Automation1: "ea95",
762
762
  Avatar: "ea96"
763
763
  };
764
- function re(e) {
764
+ function ae(e) {
765
765
  const t = M[e];
766
766
  return t ? `&#x${t};` : void 0;
767
767
  }
768
- const ae = (e, t, r) => {
768
+ const ie = (e, t, r) => {
769
769
  if (!r)
770
770
  return {
771
771
  translated: ""
@@ -775,15 +775,15 @@ const ae = (e, t, r) => {
775
775
  if (o.widget.type === "subform" && o.widget.items) {
776
776
  for (const l of o.widget.items)
777
777
  if ("widget" in l && !("options" in l)) {
778
- const s = `${o.widget.widgetName}.${l.widget.widgetName}`;
779
- n.set(s, l.label);
778
+ const c = `${o.widget.widgetName}.${l.widget.widgetName}`;
779
+ n.set(c, l.label);
780
780
  }
781
781
  }
782
782
  const a = [], i = e.replace(
783
783
  /\$\{(_widget_\d+(?:\._widget_\d+)?)\}/g,
784
784
  (o, l) => {
785
- const { translated: s, meta: u } = r(l);
786
- return u && a.push(u), s;
785
+ const { translated: c, meta: u } = r(l);
786
+ return u && a.push(u), c;
787
787
  }
788
788
  );
789
789
  return {
@@ -800,28 +800,29 @@ export {
800
800
  j as GetSafeFormStructure,
801
801
  S as IsErrorPart,
802
802
  R as IsFakeMsgPart,
803
- F as IsFileGroupPart,
803
+ I as IsFileGroupPart,
804
804
  T as IsFilePart,
805
- I as IsLoadingPart,
805
+ F as IsLoadingPart,
806
806
  D as IsQueryResultPart,
807
807
  K as OPERATOR_LABEL_MAP,
808
808
  C as WHITE_LIST_FIELDS_SET,
809
- te as bsConditionParse2Condition,
810
- ee as conditionStringify2bsCondition,
809
+ ne as bsConditionParse2Condition,
810
+ te as conditionStringify2bsCondition,
811
811
  Q as createFieldPartsExtractor,
812
812
  H as createGetFieldJsonInfo,
813
813
  J as createPartTypeChecker,
814
- c as extractTextPartMeta,
814
+ s as extractTextPartMeta,
815
815
  A as flatArr,
816
816
  X as getAvailableOperators,
817
817
  Z as getDefaultOperator,
818
- re as getIconUnicode,
818
+ ae as getIconUnicode,
819
819
  W as getMetaErrorMsg,
820
820
  z as imageUrlToBase64,
821
821
  U as injectHostStylesIntoShadow,
822
+ ee as isCtxMatch,
822
823
  V as isHelperCondMet,
823
- ne as mergeConsecutiveTargets,
824
- ae as promptParser,
824
+ re as mergeConsecutiveTargets,
825
+ ie as promptParser,
825
826
  $ as safeParseJson,
826
827
  G as valueNormalizer
827
828
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ai-feat-utils.js","sources":["../src/text-part.ts","../src/part.ts","../src/dom.ts","../src/value-normalizer.ts","../src/form-structure.ts","../src/field-json.ts","../src/constants.ts","../src/attachment.ts","../src/condition.ts","../src/array.ts","../src/iconfont.ts","../src/prompt-parser.ts"],"sourcesContent":["export const extractTextPartMeta = (part: any) => {\n if (part?.type !== 'text') {\n return null;\n }\n\n if (!part.providerMetadata) {\n return null;\n }\n\n if (!part.providerMetadata.raw || !part.providerMetadata.raw.data) {\n return null;\n }\n\n if (typeof part.providerMetadata.raw.data !== 'string') {\n return part.providerMetadata.raw.data;\n }\n\n let payload;\n try {\n payload = JSON.parse(part.providerMetadata.raw.data);\n } catch (e) {\n console.error('invalid raw data');\n }\n\n return payload || part.providerMetadata.raw.data;\n};\n","import { IQueryResult } from '@baishuyun/types';\nimport { extractTextPartMeta } from './text-part';\n\nexport const IsErrorPart = (part: any): boolean => {\n if (part?.type === 'error') {\n return true;\n }\n\n const payload = extractTextPartMeta(part);\n return payload?.type === 'agent-error';\n};\n\nexport const IsFakeMsgPart = (part: any): boolean => {\n const payload = extractTextPartMeta(part);\n return payload?.type === 'agent-fake-msg';\n};\n\nexport const IsFilePart = (part: any): boolean => {\n return part?.type === 'file';\n};\n\nexport const IsQueryResultPart = (part: any): boolean => {\n const payload = extractTextPartMeta(part);\n return payload?.type === 'query-stream-parsed-info';\n};\n\nexport const GetQueryResult = (part: any): IQueryResult | null => {\n const payload = extractTextPartMeta(part);\n if (payload?.type !== 'query-stream-parsed-info') {\n return null;\n }\n\n const result = payload.result;\n console.log('query result raw data:', result);\n try {\n return JSON.parse(result);\n } catch (e) {\n console.error('invalid query result data');\n return null;\n }\n};\n\nexport const IsFileGroupPart = (part: any) => {\n if (!Array.isArray(part)) {\n return false;\n }\n\n // any one is file part\n for (const p of part) {\n if (p?.type === 'file') {\n return true;\n }\n }\n\n return false;\n};\n\nexport const IsLoadingPart = (part: any): boolean => {\n const payload = extractTextPartMeta(part);\n return payload?.type === 'agent-loading';\n};\n\nexport const GetLoadingMsg = (part: any): string => {\n const payload = extractTextPartMeta(part);\n if (payload?.type !== 'agent-loading') {\n return '';\n }\n\n return payload?.label || '加载中';\n};\n\nexport const GetPartErrMsg = (part: any): string => {\n if (!IsErrorPart(part)) {\n return '';\n }\n\n if (part?.errorText) {\n return part.errorText;\n }\n\n const payload = extractTextPartMeta(part);\n return payload?.error || '未知错误';\n};\n\nexport const getMetaErrorMsg = (part: any): string => {\n if (part?.errorText) {\n return part.errorText;\n }\n\n const payload = extractTextPartMeta(part);\n return payload?.error || '未知错误';\n};\n","const STYLE_INJECTED_ATTR = 'data-shadow-slot-injected';\n\nexport const injectHostStylesIntoShadow = (shadowRoot: ShadowRoot, hostElement: HTMLElement) => {\n if (shadowRoot.querySelector(`[${STYLE_INJECTED_ATTR}]`)) return;\n\n const cloneAndMark = (el: Element) => {\n const cloned = el.cloneNode(true) as HTMLElement;\n cloned.setAttribute(STYLE_INJECTED_ATTR, '');\n shadowRoot.appendChild(cloned);\n };\n\n // Copy <style> and <link rel=\"stylesheet\"> from document.head\n document.head.querySelectorAll('style').forEach(cloneAndMark);\n document.head.querySelectorAll('link[rel=\"stylesheet\"]').forEach(cloneAndMark);\n\n // Walk up through ancestor shadow roots and copy their <style> and <link> elements\n let node: Node | null = hostElement.parentNode;\n while (node) {\n if (node instanceof ShadowRoot) {\n node.querySelectorAll('style').forEach(cloneAndMark);\n node.querySelectorAll('link[rel=\"stylesheet\"]').forEach(cloneAndMark);\n }\n node = node.parentNode;\n }\n};\n","function isStringArray(value: unknown): value is string[] {\n if (!Array.isArray(value)) {\n return false;\n }\n\n return value.every((item) => typeof item === 'string');\n}\n\nfunction isOptionArray(value: unknown): value is Array<{ label: string; value: string }> {\n if (!Array.isArray(value)) {\n return false;\n }\n\n return value.every(\n (item) =>\n typeof item === 'object' &&\n item !== null &&\n 'label' in item &&\n 'value' in item &&\n typeof (item as any).label === 'string' &&\n typeof (item as any).value === 'string'\n );\n}\n\nexport const valueNormalizer = (value: string | string[]): string => {\n if (isStringArray(value)) {\n return value.join(', ');\n }\n\n if (isOptionArray(value)) {\n const values = value.map((item) => item.value);\n return values.join(', ');\n }\n\n return value;\n};\n","import { FieldType, IField } from '@baishuyun/types';\n\nexport const WHITE_LIST_FIELDS_SET = new Set<FieldType>([\n 'password',\n 'textarea',\n 'datetime',\n 'text',\n 'radiogroup',\n 'radio',\n 'combo',\n 'combocheck',\n 'checkboxgroup',\n 'number',\n]);\n\nexport const GetSafeFormStructure = (formStructure: Array<IField>) => {\n if (!Array.isArray(formStructure)) {\n return [];\n }\n\n return formStructure.filter((f) => {\n if (!f.widget) {\n return false;\n }\n\n return WHITE_LIST_FIELDS_SET.has(f.widget.type);\n });\n};\n","import { IFilledField } from '@baishuyun/types';\nimport { extractTextPartMeta } from './text-part';\n\nexport const createPartTypeChecker =\n (type: string) =>\n (part: any): boolean => {\n const payload = extractTextPartMeta(part);\n return payload?.type === type;\n };\n\nexport const createGetFieldJsonInfo =\n (type: string) =>\n (part: any): IFilledField | null => {\n const payload = extractTextPartMeta(part);\n if (payload?.type !== type) {\n return null;\n }\n return payload?.field || null;\n };\n\nexport const createFieldPartsExtractor =\n (isTarget: (part: any) => boolean) =>\n (part: any): any[] => {\n if (Array.isArray(part) && part.length > 0) return part.filter(isTarget);\n if (isTarget(part)) return [part];\n return [];\n };\n\nexport const safeParseJson = (jsonString: string): any | null => {\n try {\n return JSON.parse(jsonString);\n } catch (e) {\n console.error('Failed to parse JSON:', e);\n return null;\n }\n};\n","export const DATA_COUNT_PER_BATCH = 10;\n","export const imageUrlToBase64 = (url: string, mediaType = 'image/png'): Promise<string> =>\n new Promise((resolve) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => {\n const canvas = document.createElement('canvas');\n canvas.width = img.naturalWidth;\n canvas.height = img.naturalHeight;\n canvas.getContext('2d')!.drawImage(img, 0, 0);\n resolve(canvas.toDataURL(mediaType));\n };\n img.onerror = () => resolve(url);\n img.src = url;\n });\n","import type {\n FieldType,\n IAgentHelper,\n IFormValues,\n IConditionItem,\n relationalOperator,\n ICondition,\n IBsCondition,\n IBsCondItem,\n} from '@baishuyun/types';\n\nexport const OPERATOR_LABEL_MAP: Record<relationalOperator, string> = {\n eq: '等于',\n neq: '不等于',\n gt: '大于',\n lt: '小于',\n gte: '大于等于',\n lte: '小于等于',\n contains: '包含',\n not_contains: '不包含',\n in: '等于任意',\n nin: '不等于任意',\n all: '包含所有',\n empty: '为空',\n not_empty: '不为空',\n range: '范围',\n};\n\nexport const FIELD_TYPE_OPERATOR_MAP: Record<FieldType, relationalOperator[]> = {\n // Text-like: equality, fuzzy, empty checks\n text: ['eq', 'neq', 'in', 'nin', 'contains', 'not_contains', 'empty', 'not_empty'],\n password: ['eq', 'neq', 'contains', 'not_contains', 'empty', 'not_empty'],\n radiogroup: ['eq', 'neq', 'in', 'nin', 'empty', 'not_empty'],\n radio: ['eq', 'neq', 'empty', 'not_empty'],\n combo: ['eq', 'neq', 'in', 'nin', 'empty', 'not_empty'],\n sn: ['eq', 'neq', 'in', 'nin', 'contains', 'not_contains', 'empty', 'not_empty'],\n\n // Textarea: fuzzy matching\n textarea: ['contains', 'not_contains', 'empty', 'not_empty'],\n\n // Number: comparison operators\n number: ['eq', 'neq', 'gt', 'gte', 'lt', 'lte', 'range', 'empty', 'not_empty'],\n\n // DateTime: comparison operators\n datetime: ['eq', 'neq', 'gte', 'lte', 'range', 'empty', 'not_empty'],\n\n // Multi-select: membership, intersection\n checkboxgroup: ['in', 'all', 'eq', 'empty', 'not_empty'],\n combocheck: ['in', 'all', 'eq', 'empty', 'not_empty'],\n\n // User/Dept: equality and membership\n user: ['eq', 'neq', 'in', 'nin', 'empty', 'not_empty'],\n dept: ['eq', 'neq', 'in', 'nin', 'empty', 'not_empty'],\n\n // Groups: membership, intersection, empty\n usergroup: ['in', 'all', 'eq', 'empty', 'not_empty'],\n deptgroup: ['in', 'all', 'eq', 'empty', 'not_empty'],\n\n // Address/Location: intersection\n address: ['in', 'nin', 'empty', 'not_empty'],\n location: ['in', 'nin', 'empty', 'not_empty'],\n\n // Files: empty checks\n upload: ['empty', 'not_empty'],\n image: ['empty', 'not_empty'],\n signature: ['empty', 'not_empty'],\n\n // Flow state\n flowState: ['eq', 'neq', 'empty'],\n flowstate: ['eq', 'neq', 'empty'],\n\n // Link data: combo-like\n linkdata: ['eq', 'neq', 'in', 'nin', 'empty', 'not_empty'],\n linkquery: ['eq', 'neq', 'in', 'nin', 'empty', 'not_empty'],\n dataload: ['eq', 'neq', 'in', 'nin', 'empty', 'not_empty'],\n\n // Formula\n formula: ['eq', 'neq', 'empty', 'not_empty'],\n\n // Display-only: no meaningful operators\n separator: [],\n button: [],\n subform: [],\n unknown: [],\n};\n\nconst DEFAULT_OPERATOR_MAP: Partial<Record<FieldType, relationalOperator>> = {\n text: 'eq',\n password: 'eq',\n radiogroup: 'eq',\n radio: 'eq',\n combo: 'eq',\n sn: 'eq',\n textarea: 'contains',\n number: 'range',\n datetime: 'range',\n checkboxgroup: 'all',\n combocheck: 'all',\n user: 'eq',\n dept: 'eq',\n usergroup: 'all',\n deptgroup: 'all',\n address: 'all',\n location: 'all',\n upload: 'not_empty',\n image: 'not_empty',\n signature: 'not_empty',\n flowState: 'eq',\n flowstate: 'eq',\n linkdata: 'eq',\n linkquery: 'eq',\n dataload: 'eq',\n formula: 'eq',\n};\n\nexport function getAvailableOperators(fieldType?: FieldType): relationalOperator[] {\n if (!fieldType) return [];\n return FIELD_TYPE_OPERATOR_MAP[fieldType] ?? [];\n}\n\nexport function getDefaultOperator(fieldType?: FieldType): relationalOperator {\n if (!fieldType) return 'eq';\n return DEFAULT_OPERATOR_MAP[fieldType] ?? 'eq';\n}\n\n// ── Helpers ────────────────────────────────────────────────────────────────\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> | null {\n return isRecord(value) ? value : null;\n}\n\nfunction isEmpty(value: unknown): boolean {\n if (value === null || value === undefined) return true;\n if (value === '') return true;\n if (Array.isArray(value) && value.length === 0) return true;\n return false;\n}\n\nfunction isEqual(a: unknown, b: unknown): boolean {\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false;\n const sa = a.map(String).sort();\n const sb = b.map(String).sort();\n return sa.every((v, i) => v === sb[i]);\n }\n if (isRecord(a) && isRecord(b)) {\n const ka = Object.keys(a);\n const kb = Object.keys(b);\n if (ka.length !== kb.length) return false;\n return ka.every((k) => String(a[k]) === String(b[k]));\n }\n return String(a) === String(b);\n}\n\nfunction evaluateIn(formValue: unknown, condValue: unknown): boolean {\n if (isRecord(condValue)) {\n const fv = asRecord(formValue);\n if (!fv) return false;\n if (condValue.province !== undefined && String(fv.province) !== String(condValue.province))\n return false;\n if (condValue.city !== undefined && String(fv.city) !== String(condValue.city)) return false;\n if (condValue.district !== undefined && String(fv.district) !== String(condValue.district))\n return false;\n return true;\n }\n const cv = Array.isArray(condValue) ? condValue.map(String) : [];\n if (Array.isArray(formValue)) {\n return formValue.some((v) => cv.includes(String(v)));\n }\n return cv.includes(String(formValue));\n}\n\nfunction evaluateAll(formValue: unknown, condValue: unknown): boolean {\n const cv = Array.isArray(condValue) ? condValue.map(String) : [];\n if (cv.length === 0) return false;\n const fv = Array.isArray(formValue) ? formValue.map(String) : [];\n return cv.every((v) => fv.includes(v));\n}\n\nfunction evaluateRange(formValue: unknown, condValue: unknown): boolean {\n const range = asRecord(condValue);\n if (!range) return false;\n const fv = Number(formValue);\n if (isNaN(fv)) return false;\n if (range.min !== undefined && range.min !== null && fv < Number(range.min)) return false;\n if (range.max !== undefined && range.max !== null && fv > Number(range.max)) return false;\n return true;\n}\n\n// ── Item evaluator ─────────────────────────────────────────────────────────\n\nfunction evaluateConditionItem(item: IConditionItem, formValues: IFormValues): boolean {\n const widgetName = item.field.widget?.widgetName;\n if (!widgetName) return false;\n\n const formValue = formValues[widgetName];\n const { operator, value: condValue } = item;\n\n switch (operator) {\n case 'empty':\n return isEmpty(formValue);\n case 'not_empty':\n return !isEmpty(formValue);\n case 'eq':\n return isEqual(formValue, condValue);\n case 'neq':\n return !isEqual(formValue, condValue);\n case 'contains':\n return String(formValue).includes(String(condValue));\n case 'not_contains':\n return !String(formValue).includes(String(condValue));\n case 'gt':\n return Number(formValue) > Number(condValue);\n case 'gte':\n return Number(formValue) >= Number(condValue);\n case 'lt':\n return Number(formValue) < Number(condValue);\n case 'lte':\n return Number(formValue) <= Number(condValue);\n case 'in':\n return evaluateIn(formValue, condValue);\n case 'nin':\n return !evaluateIn(formValue, condValue);\n case 'all':\n return evaluateAll(formValue, condValue);\n case 'range':\n return evaluateRange(formValue, condValue);\n default:\n return false;\n }\n}\n\n// ── Public API ─────────────────────────────────────────────────────────────\n\nexport function isHelperCondMet(helper: IAgentHelper, formValues: IFormValues): boolean {\n if (!helper.enabled) {\n return false;\n }\n\n const condition = helper.triggerCondition;\n if (!condition) return true;\n\n const { items, quantifier } = condition;\n if (!items || items.length === 0) return true;\n\n const results = items.map((item) => evaluateConditionItem(item, formValues));\n\n return quantifier === 'any' ? results.some((r) => r) : results.every((r) => r);\n}\n\n// ── Operator ↔ Bsy method maps ──────────────────────────────────────────────\n\nconst OPERATOR_TO_BS_METHOD: Record<string, string> = {\n eq: 'eq',\n neq: 'ne',\n gt: 'gt',\n gte: 'gte',\n lt: 'lt',\n lte: 'lte',\n contains: 'like',\n not_contains: 'unlike',\n in: 'in',\n nin: 'nin',\n all: 'all',\n empty: 'empty',\n not_empty: 'not_empty',\n range: 'range',\n};\n\nconst BS_METHOD_TO_OPERATOR: Record<string, relationalOperator> = {\n eq: 'eq',\n ne: 'neq',\n gt: 'gt',\n gte: 'gte',\n lt: 'lt',\n lte: 'lte',\n like: 'contains',\n unlike: 'not_contains',\n in: 'in',\n nin: 'nin',\n all: 'all',\n empty: 'empty',\n not_empty: 'not_empty',\n range: 'range',\n};\n\n// ── Public serialization API ────────────────────────────────────────────────\n\nexport function conditionStringify2bsCondition(cond: ICondition): string {\n const rel = cond.quantifier === 'any' ? 'or' : 'and';\n const bsCondItems: IBsCondItem[] = cond.items.map((item) => {\n const method = OPERATOR_TO_BS_METHOD[item.operator] ?? 'eq';\n let value: unknown[];\n if (item.operator === 'range' && isRecord(item.value)) {\n value = [item.value.min, item.value.max];\n } else if (Array.isArray(item.value)) {\n value = item.value;\n } else {\n value = [item.value];\n }\n return {\n field: item.field?.widget?.widgetName ?? '',\n method,\n value,\n type: item.field?.widget?.type,\n };\n });\n return JSON.stringify({ rel, cond: bsCondItems });\n}\n\nexport function bsConditionParse2Condition(str: string): ICondition {\n const bsCond: IBsCondition = JSON.parse(str);\n const quantifier: ICondition['quantifier'] = bsCond.rel === 'or' ? 'any' : 'all';\n const items: IConditionItem[] = bsCond.cond.map((bsItem, index) => {\n const operator = BS_METHOD_TO_OPERATOR[bsItem.method] ?? 'eq';\n let value: unknown = bsItem.value;\n if (operator === 'range') {\n value = { min: bsItem.value[0], max: bsItem.value[1] };\n } else if (\n ['eq', 'neq', 'contains', 'not_contains', 'gt', 'gte', 'lt', 'lte'].includes(operator)\n ) {\n value = bsItem.value[0];\n }\n return {\n id: `${bsItem.field}_${index}`,\n field: {\n label: bsItem.field,\n widget: {\n widgetName: bsItem.field,\n type: (bsItem.type as FieldType) ?? 'unknown',\n value: undefined,\n },\n },\n operator,\n value,\n };\n });\n return { targetName: '', quantifier, items };\n}\n","export function mergeConsecutiveTargets<T>(\n arr: T[],\n isTarget: (item: T) => boolean,\n minWidth = 1\n): (T | T[])[] {\n // 存储最终结果\n const result: (T | T[])[] = [];\n // 临时收集连续的目标元素\n const temp: T[] = [];\n\n // 遍历原始数组\n for (const item of arr) {\n if (isTarget(item)) {\n // 是目标元素,加入临时数组\n temp.push(item);\n } else {\n // 不是目标元素:先处理临时数组(内联原辅助函数逻辑)\n if (temp.length > 0) {\n // 连续≥ minWidth 个目标元素 → 合并为子数组\n result.push(temp.length >= minWidth ? [...temp] : temp[0]);\n temp.length = 0; // 清空临时数组\n }\n // 将当前非目标元素加入结果\n result.push(item);\n }\n }\n\n // 处理遍历结束后剩余的临时数组(末尾可能全是目标元素)\n if (temp.length > 0) {\n result.push(temp.length >= 2 ? [...temp] : temp[0]);\n }\n\n return result;\n}\n\nexport function flatArr(arr: Array<unknown>): Array<unknown> {\n const result: Array<unknown> = [];\n for (const item of arr) {\n if (Array.isArray(item)) {\n // 递归展开子数组,并把展开后的元素合并到结果中\n result.push(...flatArr(item));\n } else {\n result.push(item);\n }\n }\n return result;\n}\n","/**\n * Mapping from icon font_class name to unicode hex string.\n * Generated from apps/web/public/iconfont.json\n */\nconst ICON_UNICODE_MAP: Record<string, string> = {\n projectdevelopment: 'e914',\n resourcelibrary: 'e915',\n Plugin2: 'e90e',\n Plugin: 'e90f',\n JSON: 'e910',\n Dropdown: 'e911',\n Batchprocessing: 'e912',\n 'Image-text': 'e916',\n Newaddition: 'e917',\n reportforms: 'e918',\n AddFola: 'e919',\n delete: 'e91a',\n AddImage: 'e91b',\n Send: 'e91c',\n text: 'e91d',\n image: 'e91e',\n Star1: 'e91f',\n Ellipse: 'e920',\n 'Ellipse-Copy': 'e921',\n Shape: 'e922',\n 'Shape-Copy': 'e923',\n 'right-line': 'e924',\n 'right-arrow': 'e925',\n 'double-right-arrow': 'e926',\n ellipse: 'e927',\n Rectangle: 'e928',\n 'Rectangle-Copy': 'e929',\n 'Rectangle-Copy-2': 'e92a',\n CombinedShape: 'e92b',\n Line: 'e92c',\n time: 'e92d',\n calendar: 'e92e',\n richsinglelinetext: 'e92f',\n singlelinetext: 'e930',\n multilinetext: 'e931',\n number: 'e932',\n RichText: 'e933',\n image1: 'e934',\n Attachment: 'e935',\n Phone: 'e936',\n Email: 'e937',\n date: 'e938',\n 'Multiple-choice': 'e939',\n Checkbox: 'e93a',\n 'Drop-down': 'e93b',\n positioning: 'e93c',\n Description: 'e93d',\n AutoNumber: 'e93e',\n Address: 'e93f',\n Staff: 'e940',\n Department: 'e941',\n Switch: 'e942',\n Slider: 'e943',\n Currentdate: 'e944',\n Grade: 'e945',\n Barcode: 'e946',\n Subtable: 'e947',\n associatedtable: 'e948',\n Associatedapplication: 'e949',\n Referencefield: 'e94a',\n Uppercasing: 'e94b',\n nodata: 'e94c',\n 'X-mark': 'e94d',\n Copy: 'e94e',\n Correct: 'e94f',\n Save: 'e950',\n Printer: 'e951',\n search: 'e952',\n filter: 'e953',\n Export: 'e954',\n Import: 'e955',\n Customprint: 'e956',\n refresh: 'e957',\n Helpcenter: 'e958',\n Tutorial: 'e959',\n Release: 'e95a',\n more: 'e95b',\n Setup: 'e95c',\n sort: 'e95d',\n Back: 'e95e',\n show: 'e95f',\n hide: 'e960',\n Preview: 'e961',\n Click: 'e962',\n Allcheck: 'e963',\n Cancelcheck: 'e964',\n Likespot: 'e965',\n Favoritespot: 'e966',\n Followspot: 'e967',\n Commentspot: 'e968',\n At: 'e969',\n Pin: 'e96a',\n edit: 'e96b',\n Top: 'e96c',\n Movein: 'e96d',\n Moveout: 'e96e',\n Forward: 'e96f',\n Revoke: 'e970',\n Return: 'e971',\n Link: 'e972',\n Unlink: 'e973',\n Download: 'e974',\n Upload: 'e975',\n Download2: 'e976',\n Upload2: 'e977',\n Comment: 'e978',\n Remind: 'e979',\n Notice: 'e97a',\n Permission: 'e97b',\n SMS: 'e97c',\n QRcode: 'e97d',\n Website: 'e97e',\n Monitoring: 'e97f',\n Api: 'e980',\n Webhook: 'e981',\n Synchronous: 'e982',\n Automation: 'e983',\n Trigger: 'e984',\n Condition: 'e985',\n Success: 'e986',\n Failure: 'e987',\n countdown: 'e988',\n Waiting: 'e989',\n Flow: 'e98a',\n Connection: 'e98b',\n Dashboard: 'e98c',\n chart: 'e98d',\n Piechart: 'e98e',\n BarChart: 'e98f',\n DoubleBarChart: 'e991',\n StackedBarChart: 'e992',\n PercentageStackedBarChart: 'e993',\n LineChart: 'e994',\n areachart: 'e990',\n combinationchart: 'e995',\n Scatterplot: 'e996',\n FunnelChart: 'e997',\n wordcloud: 'e998',\n RadarChart: 'e999',\n PivotTable: 'e99a',\n NumberChart: 'e99b',\n map: 'e99c',\n Timeline: 'e99d',\n Album: 'e99e',\n Kanban: 'e99f',\n Ganttchart: 'e9a0',\n Circle: 'e9a8',\n linesurface: 'e9a1',\n IconStyle: 'e9a2',\n Backgroundcolor: 'e9a3',\n DeleteDe: 'e9a4',\n AlignLeft: 'e9a5',\n AlignCenter: 'e9a6',\n AlignRight: 'e9a7',\n Column: 'e9a9',\n Component: 'e9aa',\n Customcomponent: 'e9ab',\n Title: 'e9ac',\n RichText1: 'e9ad',\n Carousel: 'e9ae',\n PageTab: 'e9af',\n Buriedpoint: 'e9b0',\n Container: 'e9b1',\n QuickStart: 'e9b2',\n Group: 'e9b3',\n Ungroup: 'e9b4',\n Front: 'e9b5',\n Back1: 'e9b6',\n Lock: 'e9b7',\n Unlock: 'e9b8',\n Association: 'e9b9',\n CancelAssociation: 'e9ba',\n Quotation: 'e9bb',\n ViewSet: 'e9bc',\n AutoScale: 'e9bd',\n waterfall: 'e9be',\n watermark: 'e9bf',\n history: 'e9c0',\n Setting: 'e9c1',\n Draftbox: 'e9c2',\n SQL: 'e9c3',\n Workflow: 'e9c4',\n Workflow2: 'e9c5',\n Addone: 'e9c6',\n Formula: 'e9c7',\n Dictionary: 'e9c8',\n statistical: 'e9c9',\n Recycle: 'e9ca',\n Mistake: 'e9cb',\n Tag: 'e9cc',\n Pendingapproval: 'e9cd',\n MyApplication: 'e9ce',\n ApplicationApproval: 'e9cf',\n Initiatedbyme: 'e9d0',\n Copiedtome: 'e9d1',\n Approvalnode: 'e9d2',\n Fillnode: 'e9d3',\n cc: 'e9d4',\n Image1: 'e9d5',\n Open: 'e9d6',\n Color: 'e9d7',\n Right: 'e9d8',\n Backward: 'e9d9',\n dataanalysis: 'e9da',\n Filter2: 'e9db',\n Freefilter: 'e9dc',\n Conditionfilter: 'e9dd',\n Quickfilter: 'e9de',\n Export1: 'e9df',\n Attachmentpreview: 'e9e0',\n BulkEdit: 'e9e1',\n Calculationrows: 'e9e2',\n SingleSelect: 'e9e3',\n dataview: 'e9e4',\n Dataid: 'e9e5',\n Divide: 'e9e6',\n Progress: 'e9e7',\n Star: 'e9e8',\n Contacts: 'e9e9',\n Activity: 'e9ea',\n Minus: 'e9eb',\n Plussign: 'e9ec',\n 'Plussign-Copy': 'e9ed',\n Increased: 'e9ee',\n Decline: 'e9ef',\n indeterminate: 'e9f0',\n Decline1: 'e9f1',\n personal: 'e9f2',\n Warning: 'e9f3',\n Warning2: 'e9f4',\n Prompt: 'e9f5',\n info: 'e9f6',\n Cancel: 'e9f7',\n question1: 'e9f8',\n Question: 'e9f9',\n exclamation: 'e9fa',\n Warning1: 'e9fb',\n True: 'e9fc',\n Suspended: 'e9fd',\n Suspended1: 'e9fe',\n Suspended2: 'e9ff',\n Error: 'ea00',\n CombinedShape2: 'ea01',\n Delete1: 'ea02',\n Circle1: 'ea03',\n Decline2: 'ea04',\n Decline3: 'ea05',\n add: 'ea06',\n Addto: 'ea07',\n Reduce: 'ea08',\n Subtract: 'ea09',\n Addition: 'ea0a',\n Multiplication: 'ea0b',\n Division: 'ea0c',\n Bracket: 'ea0d',\n Reduce1: 'ea0e',\n Search: 'ea0f',\n Favorites: 'ea10',\n Annotation: 'ea11',\n Application: 'ea12',\n Application2: 'ea13',\n Applicationsview: 'ea14',\n Publish: 'ea15',\n Deploy: 'ea16',\n Sidetoplowerside: 'ea17',\n Narrow: 'ea18',\n Backtothenavigation: 'ea19',\n Forwardtothenavigation: 'ea1a',\n Return1: 'ea1b',\n Transfer: 'ea1c',\n Log: 'ea1d',\n table: 'ea1e',\n Form: 'ea1f',\n Openfield: 'ea20',\n Closefield: 'ea21',\n Receive: 'ea22',\n Fill: 'ea23',\n Fill1: 'ea24',\n fillet: 'ea25',\n rightangle: 'ea26',\n round: 'ea27',\n Send1: 'ea28',\n Map: 'ea29',\n Upward: 'ea2a',\n Move: 'ea2b',\n Downward: 'ea2c',\n drag: 'ea2d',\n TextIcon: 'ea2e',\n Narrow1: 'ea2f',\n Enlarge: 'ea30',\n Enlarge2: 'ea31',\n Cancel1: 'ea32',\n Retract: 'ea33',\n Expand: 'ea34',\n Retract1: 'ea35',\n Expand1: 'ea36',\n Retract2: 'ea37',\n Expand2: 'ea38',\n Switch1: 'ea39',\n Fullscreen: 'ea3a',\n Offscreen: 'ea3b',\n Notvisible: 'ea3c',\n Visible: 'ea3d',\n Adjust: 'ea3e',\n PC: 'ea3f',\n Mobile: 'ea40',\n Pad: 'ea41',\n Scanthecode: 'ea42',\n Scan: 'ea43',\n Screenshot: 'ea44',\n Rotation: 'ea45',\n voice: 'ea46',\n Video: 'ea47',\n Location: 'ea48',\n Clock: 'ea49',\n Print: 'ea4a',\n Member: 'ea4b',\n WorkWeChat: 'ea4c',\n DingTalk: 'ea4d',\n EnterpriseWeChat2: 'ea4e',\n Groupmanagement: 'ea4f',\n Feishu: 'ea50',\n Stationletter: 'ea51',\n Email1: 'ea52',\n WeChat: 'ea53',\n ServiceAccount: 'ea54',\n Subscribed: 'ea55',\n Dingtalk: 'ea56',\n Information: 'ea57',\n Assistant: 'ea58',\n ai: 'ea59',\n Inquireabout: 'ea5a',\n IFrame: 'ea5b',\n Integratio: 'ea5c',\n close: 'ea5d',\n Close: 'ea5e',\n Addgroup: 'ea5f',\n deletegroup: 'ea60',\n Relateddata: 'ea61',\n Enlarge1: 'ea62',\n Narrow2: 'ea63',\n 'map-search': 'ea64',\n Corner: 'ea65',\n text1: 'ea66',\n Onlinemap: 'ea67',\n Maptile: 'ea68',\n Dataexport: 'ea69',\n Word: 'ea6a',\n Excel: 'ea6b',\n PPT: 'ea6c',\n PDF: 'ea6d',\n Video1: 'ea6e',\n Audio: 'ea6f',\n Txt: 'ea70',\n Zip: 'ea71',\n file: 'ea72',\n richtext: 'ea73',\n Onlinemap1: 'ea74',\n Maptile1: 'ea75',\n Ai2: 'ea76',\n Guide: 'ea77',\n Button: 'ea78',\n Menus: 'ea79',\n 'richtext-Copy': 'ea7a',\n 'richtext-Copy-2': 'ea7b',\n 'richtext-Copy-3': 'ea7c',\n 'richtext-Copy-4': 'ea7d',\n Split: 'ea7e',\n AI: 'ea7f',\n Form1: 'ea80',\n Fields: 'ea81',\n Project: 'ea82',\n More1: 'ea83',\n Notstarted: 'ea84',\n Inprocess: 'ea85',\n Completed: 'ea86',\n Completed1: 'ea87',\n More2: 'ea88',\n AIoffice: 'ea89',\n statistics: 'ea8a',\n Expand3: 'ea8b',\n list: 'ea8c',\n 'list-Copy': 'ea8d',\n Grid: 'ea8e',\n Calendar: 'ea8f',\n Schedule: 'ea90',\n tableview: 'ea91',\n Gallery: 'ea92',\n Copy1: 'ea93',\n Mailbox: 'ea94',\n Automation1: 'ea95',\n Avatar: 'ea96',\n};\n\n/**\n * Look up the unicode hex string for an icon by its font_class name.\n * Returns undefined if the icon name is not found.\n *\n * @param name - The icon font_class name (e.g. \"search\", \"edit\", \"ai\")\n * @returns The unicode hex string (e.g. \"e952\"), or undefined\n *\n * @example\n * getIconUnicode(\"search\") // \"e952\"\n * getIconUnicode(\"ai\") // \"ea59\"\n */\nexport function getIconUnicode(name: string): string | undefined {\n const code = ICON_UNICODE_MAP[name];\n return code ? `&#x${code};` : undefined;\n}\n","import { IField, IValueFormHuman } from '@baishuyun/types';\nimport { flatArr } from './array';\n\n// input eg: '${_widget_1782471976291} ${_widget_1782471978145} ahahah'\n// output: '供应商名称 备注 ahahah'\nexport const promptParser = (\n originStrWithFieldNameTpl: string,\n formStructure: Array<IField>,\n widgetValueGetter: (name: string) => IValueFormHuman\n): IValueFormHuman => {\n if (!widgetValueGetter) {\n return {\n translated: '',\n };\n }\n\n const widgetMap = new Map(formStructure.map((f) => [f.widget.widgetName, f.label]));\n\n for (const field of formStructure) {\n if (field.widget.type === 'subform' && field.widget.items) {\n for (const item of field.widget.items) {\n if ('widget' in item && !('options' in item)) {\n const key = `${field.widget.widgetName}.${item.widget.widgetName}`;\n widgetMap.set(key, item.label);\n }\n }\n }\n }\n\n const metaPart: Array<unknown> = [];\n\n const stringPart = originStrWithFieldNameTpl.replace(\n /\\$\\{(_widget_\\d+(?:\\._widget_\\d+)?)\\}/g,\n (_, widgetName) => {\n const { translated, meta } = widgetValueGetter(widgetName);\n\n if (meta) {\n metaPart.push(meta);\n }\n\n return translated;\n }\n );\n\n return {\n meta: metaPart.length ? flatArr(metaPart) : null,\n translated: (stringPart ?? '').trim(),\n };\n};\n"],"names":["extractTextPartMeta","part","payload","e","IsErrorPart","IsFakeMsgPart","IsFilePart","IsQueryResultPart","GetQueryResult","result","IsFileGroupPart","p","IsLoadingPart","GetLoadingMsg","GetPartErrMsg","getMetaErrorMsg","STYLE_INJECTED_ATTR","injectHostStylesIntoShadow","shadowRoot","hostElement","cloneAndMark","el","cloned","node","isStringArray","value","item","isOptionArray","valueNormalizer","WHITE_LIST_FIELDS_SET","GetSafeFormStructure","formStructure","f","createPartTypeChecker","type","createGetFieldJsonInfo","createFieldPartsExtractor","isTarget","safeParseJson","jsonString","DATA_COUNT_PER_BATCH","imageUrlToBase64","url","mediaType","resolve","img","canvas","OPERATOR_LABEL_MAP","FIELD_TYPE_OPERATOR_MAP","DEFAULT_OPERATOR_MAP","getAvailableOperators","fieldType","_a","getDefaultOperator","isRecord","asRecord","isEmpty","isEqual","a","b","sa","sb","v","ka","kb","k","evaluateIn","formValue","condValue","fv","cv","evaluateAll","evaluateRange","range","evaluateConditionItem","formValues","widgetName","operator","isHelperCondMet","helper","condition","items","quantifier","results","r","OPERATOR_TO_BS_METHOD","BS_METHOD_TO_OPERATOR","conditionStringify2bsCondition","cond","rel","bsCondItems","_b","_c","_d","_e","_f","method","bsConditionParse2Condition","str","bsCond","bsItem","index","mergeConsecutiveTargets","arr","minWidth","temp","flatArr","ICON_UNICODE_MAP","getIconUnicode","name","code","promptParser","originStrWithFieldNameTpl","widgetValueGetter","widgetMap","field","key","metaPart","stringPart","_","translated","meta"],"mappings":"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"}
1
+ {"version":3,"file":"ai-feat-utils.js","sources":["../src/text-part.ts","../src/part.ts","../src/dom.ts","../src/value-normalizer.ts","../src/form-structure.ts","../src/field-json.ts","../src/constants.ts","../src/attachment.ts","../src/condition.ts","../src/array.ts","../src/iconfont.ts","../src/prompt-parser.ts"],"sourcesContent":["export const extractTextPartMeta = (part: any) => {\n if (part?.type !== 'text') {\n return null;\n }\n\n if (!part.providerMetadata) {\n return null;\n }\n\n if (!part.providerMetadata.raw || !part.providerMetadata.raw.data) {\n return null;\n }\n\n if (typeof part.providerMetadata.raw.data !== 'string') {\n return part.providerMetadata.raw.data;\n }\n\n let payload;\n try {\n payload = JSON.parse(part.providerMetadata.raw.data);\n } catch (e) {\n console.error('invalid raw data');\n }\n\n return payload || part.providerMetadata.raw.data;\n};\n","import { IQueryResult } from '@baishuyun/types';\nimport { extractTextPartMeta } from './text-part';\n\nexport const IsErrorPart = (part: any): boolean => {\n if (part?.type === 'error') {\n return true;\n }\n\n const payload = extractTextPartMeta(part);\n return payload?.type === 'agent-error';\n};\n\nexport const IsFakeMsgPart = (part: any): boolean => {\n const payload = extractTextPartMeta(part);\n return payload?.type === 'agent-fake-msg';\n};\n\nexport const IsFilePart = (part: any): boolean => {\n return part?.type === 'file';\n};\n\nexport const IsQueryResultPart = (part: any): boolean => {\n const payload = extractTextPartMeta(part);\n return payload?.type === 'query-stream-parsed-info';\n};\n\nexport const GetQueryResult = (part: any): IQueryResult | null => {\n const payload = extractTextPartMeta(part);\n if (payload?.type !== 'query-stream-parsed-info') {\n return null;\n }\n\n const result = payload.result;\n console.log('query result raw data:', result);\n try {\n return JSON.parse(result);\n } catch (e) {\n console.error('invalid query result data');\n return null;\n }\n};\n\nexport const IsFileGroupPart = (part: any) => {\n if (!Array.isArray(part)) {\n return false;\n }\n\n // any one is file part\n for (const p of part) {\n if (p?.type === 'file') {\n return true;\n }\n }\n\n return false;\n};\n\nexport const IsLoadingPart = (part: any): boolean => {\n const payload = extractTextPartMeta(part);\n return payload?.type === 'agent-loading';\n};\n\nexport const GetLoadingMsg = (part: any): string => {\n const payload = extractTextPartMeta(part);\n if (payload?.type !== 'agent-loading') {\n return '';\n }\n\n return payload?.label || '加载中';\n};\n\nexport const GetPartErrMsg = (part: any): string => {\n if (!IsErrorPart(part)) {\n return '';\n }\n\n if (part?.errorText) {\n return part.errorText;\n }\n\n const payload = extractTextPartMeta(part);\n return payload?.error || '未知错误';\n};\n\nexport const getMetaErrorMsg = (part: any): string => {\n if (part?.errorText) {\n return part.errorText;\n }\n\n const payload = extractTextPartMeta(part);\n return payload?.error || '未知错误';\n};\n","const STYLE_INJECTED_ATTR = 'data-shadow-slot-injected';\n\nexport const injectHostStylesIntoShadow = (shadowRoot: ShadowRoot, hostElement: HTMLElement) => {\n if (shadowRoot.querySelector(`[${STYLE_INJECTED_ATTR}]`)) return;\n\n const cloneAndMark = (el: Element) => {\n const cloned = el.cloneNode(true) as HTMLElement;\n cloned.setAttribute(STYLE_INJECTED_ATTR, '');\n shadowRoot.appendChild(cloned);\n };\n\n // Copy <style> and <link rel=\"stylesheet\"> from document.head\n document.head.querySelectorAll('style').forEach(cloneAndMark);\n document.head.querySelectorAll('link[rel=\"stylesheet\"]').forEach(cloneAndMark);\n\n // Walk up through ancestor shadow roots and copy their <style> and <link> elements\n let node: Node | null = hostElement.parentNode;\n while (node) {\n if (node instanceof ShadowRoot) {\n node.querySelectorAll('style').forEach(cloneAndMark);\n node.querySelectorAll('link[rel=\"stylesheet\"]').forEach(cloneAndMark);\n }\n node = node.parentNode;\n }\n};\n","function isStringArray(value: unknown): value is string[] {\n if (!Array.isArray(value)) {\n return false;\n }\n\n return value.every((item) => typeof item === 'string');\n}\n\nfunction isOptionArray(value: unknown): value is Array<{ label: string; value: string }> {\n if (!Array.isArray(value)) {\n return false;\n }\n\n return value.every(\n (item) =>\n typeof item === 'object' &&\n item !== null &&\n 'label' in item &&\n 'value' in item &&\n typeof (item as any).label === 'string' &&\n typeof (item as any).value === 'string'\n );\n}\n\nexport const valueNormalizer = (value: string | string[]): string => {\n if (isStringArray(value)) {\n return value.join(', ');\n }\n\n if (isOptionArray(value)) {\n const values = value.map((item) => item.value);\n return values.join(', ');\n }\n\n return value;\n};\n","import { FieldType, IField } from '@baishuyun/types';\n\nexport const WHITE_LIST_FIELDS_SET = new Set<FieldType>([\n 'password',\n 'textarea',\n 'datetime',\n 'text',\n 'radiogroup',\n 'radio',\n 'combo',\n 'combocheck',\n 'checkboxgroup',\n 'number',\n]);\n\nexport const GetSafeFormStructure = (formStructure: Array<IField>) => {\n if (!Array.isArray(formStructure)) {\n return [];\n }\n\n return formStructure.filter((f) => {\n if (!f.widget) {\n return false;\n }\n\n return WHITE_LIST_FIELDS_SET.has(f.widget.type);\n });\n};\n","import { IFilledField } from '@baishuyun/types';\nimport { extractTextPartMeta } from './text-part';\n\nexport const createPartTypeChecker =\n (type: string) =>\n (part: any): boolean => {\n const payload = extractTextPartMeta(part);\n return payload?.type === type;\n };\n\nexport const createGetFieldJsonInfo =\n (type: string) =>\n (part: any): IFilledField | null => {\n const payload = extractTextPartMeta(part);\n if (payload?.type !== type) {\n return null;\n }\n return payload?.field || null;\n };\n\nexport const createFieldPartsExtractor =\n (isTarget: (part: any) => boolean) =>\n (part: any): any[] => {\n if (Array.isArray(part) && part.length > 0) return part.filter(isTarget);\n if (isTarget(part)) return [part];\n return [];\n };\n\nexport const safeParseJson = (jsonString: string): any | null => {\n try {\n return JSON.parse(jsonString);\n } catch (e) {\n console.error('Failed to parse JSON:', e);\n return null;\n }\n};\n","export const DATA_COUNT_PER_BATCH = 10;\n","export const imageUrlToBase64 = (url: string, mediaType = 'image/png'): Promise<string> =>\n new Promise((resolve) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => {\n const canvas = document.createElement('canvas');\n canvas.width = img.naturalWidth;\n canvas.height = img.naturalHeight;\n canvas.getContext('2d')!.drawImage(img, 0, 0);\n resolve(canvas.toDataURL(mediaType));\n };\n img.onerror = () => resolve(url);\n img.src = url;\n });\n","import type {\n FieldType,\n IAgentHelper,\n IFormValues,\n IConditionItem,\n relationalOperator,\n ICondition,\n IBsCondition,\n IBsCondItem,\n ICtxDetail,\n} from '@baishuyun/types';\n\nexport const OPERATOR_LABEL_MAP: Record<relationalOperator, string> = {\n eq: '等于',\n neq: '不等于',\n gt: '大于',\n lt: '小于',\n gte: '大于等于',\n lte: '小于等于',\n contains: '包含',\n not_contains: '不包含',\n in: '等于任意',\n nin: '不等于任意',\n all: '包含所有',\n empty: '为空',\n not_empty: '不为空',\n range: '范围',\n};\n\nexport const FIELD_TYPE_OPERATOR_MAP: Record<FieldType, relationalOperator[]> = {\n // Text-like: equality, fuzzy, empty checks\n text: ['eq', 'neq', 'in', 'nin', 'contains', 'not_contains', 'empty', 'not_empty'],\n password: ['eq', 'neq', 'contains', 'not_contains', 'empty', 'not_empty'],\n radiogroup: ['eq', 'neq', 'in', 'nin', 'empty', 'not_empty'],\n radio: ['eq', 'neq', 'empty', 'not_empty'],\n combo: ['eq', 'neq', 'in', 'nin', 'empty', 'not_empty'],\n sn: ['eq', 'neq', 'in', 'nin', 'contains', 'not_contains', 'empty', 'not_empty'],\n\n // Textarea: fuzzy matching\n textarea: ['contains', 'not_contains', 'empty', 'not_empty'],\n\n // Number: comparison operators\n number: ['eq', 'neq', 'gt', 'gte', 'lt', 'lte', 'range', 'empty', 'not_empty'],\n\n // DateTime: comparison operators\n datetime: ['eq', 'neq', 'gte', 'lte', 'range', 'empty', 'not_empty'],\n\n // Multi-select: membership, intersection\n checkboxgroup: ['in', 'all', 'eq', 'empty', 'not_empty'],\n combocheck: ['in', 'all', 'eq', 'empty', 'not_empty'],\n\n // User/Dept: equality and membership\n user: ['eq', 'neq', 'in', 'nin', 'empty', 'not_empty'],\n dept: ['eq', 'neq', 'in', 'nin', 'empty', 'not_empty'],\n\n // Groups: membership, intersection, empty\n usergroup: ['in', 'all', 'eq', 'empty', 'not_empty'],\n deptgroup: ['in', 'all', 'eq', 'empty', 'not_empty'],\n\n // Address/Location: intersection\n address: ['in', 'nin', 'empty', 'not_empty'],\n location: ['in', 'nin', 'empty', 'not_empty'],\n\n // Files: empty checks\n upload: ['empty', 'not_empty'],\n image: ['empty', 'not_empty'],\n signature: ['empty', 'not_empty'],\n\n // Flow state\n flowState: ['eq', 'neq', 'empty'],\n flowstate: ['eq', 'neq', 'empty'],\n\n // Link data: combo-like\n linkdata: ['eq', 'neq', 'in', 'nin', 'empty', 'not_empty'],\n linkquery: ['eq', 'neq', 'in', 'nin', 'empty', 'not_empty'],\n dataload: ['eq', 'neq', 'in', 'nin', 'empty', 'not_empty'],\n\n // Formula\n formula: ['eq', 'neq', 'empty', 'not_empty'],\n\n // Display-only: no meaningful operators\n separator: [],\n button: [],\n subform: [],\n unknown: [],\n};\n\nconst DEFAULT_OPERATOR_MAP: Partial<Record<FieldType, relationalOperator>> = {\n text: 'eq',\n password: 'eq',\n radiogroup: 'eq',\n radio: 'eq',\n combo: 'eq',\n sn: 'eq',\n textarea: 'contains',\n number: 'range',\n datetime: 'range',\n checkboxgroup: 'all',\n combocheck: 'all',\n user: 'eq',\n dept: 'eq',\n usergroup: 'all',\n deptgroup: 'all',\n address: 'all',\n location: 'all',\n upload: 'not_empty',\n image: 'not_empty',\n signature: 'not_empty',\n flowState: 'eq',\n flowstate: 'eq',\n linkdata: 'eq',\n linkquery: 'eq',\n dataload: 'eq',\n formula: 'eq',\n};\n\nexport function getAvailableOperators(fieldType?: FieldType): relationalOperator[] {\n if (!fieldType) return [];\n return FIELD_TYPE_OPERATOR_MAP[fieldType] ?? [];\n}\n\nexport function getDefaultOperator(fieldType?: FieldType): relationalOperator {\n if (!fieldType) return 'eq';\n return DEFAULT_OPERATOR_MAP[fieldType] ?? 'eq';\n}\n\n// ── Helpers ────────────────────────────────────────────────────────────────\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> | null {\n return isRecord(value) ? value : null;\n}\n\nfunction isEmpty(value: unknown): boolean {\n if (value === null || value === undefined) return true;\n if (value === '') return true;\n if (Array.isArray(value) && value.length === 0) return true;\n return false;\n}\n\nfunction isEqual(a: unknown, b: unknown): boolean {\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false;\n const sa = a.map(String).sort();\n const sb = b.map(String).sort();\n return sa.every((v, i) => v === sb[i]);\n }\n if (isRecord(a) && isRecord(b)) {\n const ka = Object.keys(a);\n const kb = Object.keys(b);\n if (ka.length !== kb.length) return false;\n return ka.every((k) => String(a[k]) === String(b[k]));\n }\n return String(a) === String(b);\n}\n\nfunction evaluateIn(formValue: unknown, condValue: unknown): boolean {\n if (isRecord(condValue)) {\n const fv = asRecord(formValue);\n if (!fv) return false;\n if (condValue.province !== undefined && String(fv.province) !== String(condValue.province))\n return false;\n if (condValue.city !== undefined && String(fv.city) !== String(condValue.city)) return false;\n if (condValue.district !== undefined && String(fv.district) !== String(condValue.district))\n return false;\n return true;\n }\n const cv = Array.isArray(condValue) ? condValue.map(String) : [];\n if (Array.isArray(formValue)) {\n return formValue.some((v) => cv.includes(String(v)));\n }\n return cv.includes(String(formValue));\n}\n\nfunction evaluateAll(formValue: unknown, condValue: unknown): boolean {\n const cv = Array.isArray(condValue) ? condValue.map(String) : [];\n if (cv.length === 0) return false;\n const fv = Array.isArray(formValue) ? formValue.map(String) : [];\n return cv.every((v) => fv.includes(v));\n}\n\nfunction evaluateRange(formValue: unknown, condValue: unknown): boolean {\n const range = asRecord(condValue);\n if (!range) return false;\n const fv = Number(formValue);\n if (isNaN(fv)) return false;\n if (range.min !== undefined && range.min !== null && fv < Number(range.min)) return false;\n if (range.max !== undefined && range.max !== null && fv > Number(range.max)) return false;\n return true;\n}\n\n// ── Item evaluator ─────────────────────────────────────────────────────────\n\nfunction evaluateConditionItem(item: IConditionItem, formValues: IFormValues): boolean {\n const widgetName = item.field.widget?.widgetName;\n if (!widgetName) return false;\n\n const formValue = formValues[widgetName];\n const { operator, value: condValue } = item;\n\n switch (operator) {\n case 'empty':\n return isEmpty(formValue);\n case 'not_empty':\n return !isEmpty(formValue);\n case 'eq':\n return isEqual(formValue, condValue);\n case 'neq':\n return !isEqual(formValue, condValue);\n case 'contains':\n return String(formValue).includes(String(condValue));\n case 'not_contains':\n return !String(formValue).includes(String(condValue));\n case 'gt':\n return Number(formValue) > Number(condValue);\n case 'gte':\n return Number(formValue) >= Number(condValue);\n case 'lt':\n return Number(formValue) < Number(condValue);\n case 'lte':\n return Number(formValue) <= Number(condValue);\n case 'in':\n return evaluateIn(formValue, condValue);\n case 'nin':\n return !evaluateIn(formValue, condValue);\n case 'all':\n return evaluateAll(formValue, condValue);\n case 'range':\n return evaluateRange(formValue, condValue);\n default:\n return false;\n }\n}\n\n// ── Public API ─────────────────────────────────────────────────────────────\n\nexport function isHelperCondMet(helper: IAgentHelper, formValues: IFormValues): boolean {\n if (!helper.enabled) {\n return false;\n }\n\n const condition = helper.triggerCondition;\n if (!condition) return true;\n\n const { items, quantifier } = condition;\n if (!items || items.length === 0) return true;\n\n const results = items.map((item) => evaluateConditionItem(item, formValues));\n\n return quantifier === 'any' ? results.some((r) => r) : results.every((r) => r);\n}\n\nexport const isCtxMatch = (helper: IAgentHelper | null, ctx: ICtxDetail | null): boolean => {\n if (helper === null) {\n return false;\n }\n\n if (ctx === null) {\n return false;\n }\n\n if (helper.formId) {\n return ctx.type === 'form' && ctx.params.formId === helper.formId;\n }\n\n if (helper.appId) {\n return ctx.type === 'app' && ctx.params.appId === helper.appId;\n }\n\n return ctx.type === 'global';\n};\n\n// ── Operator ↔ Bsy method maps ──────────────────────────────────────────────\n\nconst OPERATOR_TO_BS_METHOD: Record<string, string> = {\n eq: 'eq',\n neq: 'ne',\n gt: 'gt',\n gte: 'gte',\n lt: 'lt',\n lte: 'lte',\n contains: 'like',\n not_contains: 'unlike',\n in: 'in',\n nin: 'nin',\n all: 'all',\n empty: 'empty',\n not_empty: 'not_empty',\n range: 'range',\n};\n\nconst BS_METHOD_TO_OPERATOR: Record<string, relationalOperator> = {\n eq: 'eq',\n ne: 'neq',\n gt: 'gt',\n gte: 'gte',\n lt: 'lt',\n lte: 'lte',\n like: 'contains',\n unlike: 'not_contains',\n in: 'in',\n nin: 'nin',\n all: 'all',\n empty: 'empty',\n not_empty: 'not_empty',\n range: 'range',\n};\n\n// ── Public serialization API ────────────────────────────────────────────────\n\nexport function conditionStringify2bsCondition(cond: ICondition): string {\n const rel = cond.quantifier === 'any' ? 'or' : 'and';\n const bsCondItems: IBsCondItem[] = cond.items.map((item) => {\n const method = OPERATOR_TO_BS_METHOD[item.operator] ?? 'eq';\n let value: unknown[];\n if (item.operator === 'range' && isRecord(item.value)) {\n value = [item.value.min, item.value.max];\n } else if (Array.isArray(item.value)) {\n value = item.value;\n } else {\n value = [item.value];\n }\n return {\n field: item.field?.widget?.widgetName ?? '',\n method,\n value,\n type: item.field?.widget?.type,\n };\n });\n return JSON.stringify({ rel, cond: bsCondItems });\n}\n\nexport function bsConditionParse2Condition(str: string): ICondition {\n const bsCond: IBsCondition = JSON.parse(str);\n const quantifier: ICondition['quantifier'] = bsCond.rel === 'or' ? 'any' : 'all';\n const items: IConditionItem[] = bsCond.cond.map((bsItem, index) => {\n const operator = BS_METHOD_TO_OPERATOR[bsItem.method] ?? 'eq';\n let value: unknown = bsItem.value;\n if (operator === 'range') {\n value = { min: bsItem.value[0], max: bsItem.value[1] };\n } else if (\n ['eq', 'neq', 'contains', 'not_contains', 'gt', 'gte', 'lt', 'lte'].includes(operator)\n ) {\n value = bsItem.value[0];\n }\n return {\n id: `${bsItem.field}_${index}`,\n field: {\n label: bsItem.field,\n widget: {\n widgetName: bsItem.field,\n type: (bsItem.type as FieldType) ?? 'unknown',\n value: undefined,\n },\n },\n operator,\n value,\n };\n });\n return { targetName: '', quantifier, items };\n}\n","export function mergeConsecutiveTargets<T>(\n arr: T[],\n isTarget: (item: T) => boolean,\n minWidth = 1\n): (T | T[])[] {\n // 存储最终结果\n const result: (T | T[])[] = [];\n // 临时收集连续的目标元素\n const temp: T[] = [];\n\n // 遍历原始数组\n for (const item of arr) {\n if (isTarget(item)) {\n // 是目标元素,加入临时数组\n temp.push(item);\n } else {\n // 不是目标元素:先处理临时数组(内联原辅助函数逻辑)\n if (temp.length > 0) {\n // 连续≥ minWidth 个目标元素 → 合并为子数组\n result.push(temp.length >= minWidth ? [...temp] : temp[0]);\n temp.length = 0; // 清空临时数组\n }\n // 将当前非目标元素加入结果\n result.push(item);\n }\n }\n\n // 处理遍历结束后剩余的临时数组(末尾可能全是目标元素)\n if (temp.length > 0) {\n result.push(temp.length >= 2 ? [...temp] : temp[0]);\n }\n\n return result;\n}\n\nexport function flatArr(arr: Array<unknown>): Array<unknown> {\n const result: Array<unknown> = [];\n for (const item of arr) {\n if (Array.isArray(item)) {\n // 递归展开子数组,并把展开后的元素合并到结果中\n result.push(...flatArr(item));\n } else {\n result.push(item);\n }\n }\n return result;\n}\n","/**\n * Mapping from icon font_class name to unicode hex string.\n * Generated from apps/web/public/iconfont.json\n */\nconst ICON_UNICODE_MAP: Record<string, string> = {\n projectdevelopment: 'e914',\n resourcelibrary: 'e915',\n Plugin2: 'e90e',\n Plugin: 'e90f',\n JSON: 'e910',\n Dropdown: 'e911',\n Batchprocessing: 'e912',\n 'Image-text': 'e916',\n Newaddition: 'e917',\n reportforms: 'e918',\n AddFola: 'e919',\n delete: 'e91a',\n AddImage: 'e91b',\n Send: 'e91c',\n text: 'e91d',\n image: 'e91e',\n Star1: 'e91f',\n Ellipse: 'e920',\n 'Ellipse-Copy': 'e921',\n Shape: 'e922',\n 'Shape-Copy': 'e923',\n 'right-line': 'e924',\n 'right-arrow': 'e925',\n 'double-right-arrow': 'e926',\n ellipse: 'e927',\n Rectangle: 'e928',\n 'Rectangle-Copy': 'e929',\n 'Rectangle-Copy-2': 'e92a',\n CombinedShape: 'e92b',\n Line: 'e92c',\n time: 'e92d',\n calendar: 'e92e',\n richsinglelinetext: 'e92f',\n singlelinetext: 'e930',\n multilinetext: 'e931',\n number: 'e932',\n RichText: 'e933',\n image1: 'e934',\n Attachment: 'e935',\n Phone: 'e936',\n Email: 'e937',\n date: 'e938',\n 'Multiple-choice': 'e939',\n Checkbox: 'e93a',\n 'Drop-down': 'e93b',\n positioning: 'e93c',\n Description: 'e93d',\n AutoNumber: 'e93e',\n Address: 'e93f',\n Staff: 'e940',\n Department: 'e941',\n Switch: 'e942',\n Slider: 'e943',\n Currentdate: 'e944',\n Grade: 'e945',\n Barcode: 'e946',\n Subtable: 'e947',\n associatedtable: 'e948',\n Associatedapplication: 'e949',\n Referencefield: 'e94a',\n Uppercasing: 'e94b',\n nodata: 'e94c',\n 'X-mark': 'e94d',\n Copy: 'e94e',\n Correct: 'e94f',\n Save: 'e950',\n Printer: 'e951',\n search: 'e952',\n filter: 'e953',\n Export: 'e954',\n Import: 'e955',\n Customprint: 'e956',\n refresh: 'e957',\n Helpcenter: 'e958',\n Tutorial: 'e959',\n Release: 'e95a',\n more: 'e95b',\n Setup: 'e95c',\n sort: 'e95d',\n Back: 'e95e',\n show: 'e95f',\n hide: 'e960',\n Preview: 'e961',\n Click: 'e962',\n Allcheck: 'e963',\n Cancelcheck: 'e964',\n Likespot: 'e965',\n Favoritespot: 'e966',\n Followspot: 'e967',\n Commentspot: 'e968',\n At: 'e969',\n Pin: 'e96a',\n edit: 'e96b',\n Top: 'e96c',\n Movein: 'e96d',\n Moveout: 'e96e',\n Forward: 'e96f',\n Revoke: 'e970',\n Return: 'e971',\n Link: 'e972',\n Unlink: 'e973',\n Download: 'e974',\n Upload: 'e975',\n Download2: 'e976',\n Upload2: 'e977',\n Comment: 'e978',\n Remind: 'e979',\n Notice: 'e97a',\n Permission: 'e97b',\n SMS: 'e97c',\n QRcode: 'e97d',\n Website: 'e97e',\n Monitoring: 'e97f',\n Api: 'e980',\n Webhook: 'e981',\n Synchronous: 'e982',\n Automation: 'e983',\n Trigger: 'e984',\n Condition: 'e985',\n Success: 'e986',\n Failure: 'e987',\n countdown: 'e988',\n Waiting: 'e989',\n Flow: 'e98a',\n Connection: 'e98b',\n Dashboard: 'e98c',\n chart: 'e98d',\n Piechart: 'e98e',\n BarChart: 'e98f',\n DoubleBarChart: 'e991',\n StackedBarChart: 'e992',\n PercentageStackedBarChart: 'e993',\n LineChart: 'e994',\n areachart: 'e990',\n combinationchart: 'e995',\n Scatterplot: 'e996',\n FunnelChart: 'e997',\n wordcloud: 'e998',\n RadarChart: 'e999',\n PivotTable: 'e99a',\n NumberChart: 'e99b',\n map: 'e99c',\n Timeline: 'e99d',\n Album: 'e99e',\n Kanban: 'e99f',\n Ganttchart: 'e9a0',\n Circle: 'e9a8',\n linesurface: 'e9a1',\n IconStyle: 'e9a2',\n Backgroundcolor: 'e9a3',\n DeleteDe: 'e9a4',\n AlignLeft: 'e9a5',\n AlignCenter: 'e9a6',\n AlignRight: 'e9a7',\n Column: 'e9a9',\n Component: 'e9aa',\n Customcomponent: 'e9ab',\n Title: 'e9ac',\n RichText1: 'e9ad',\n Carousel: 'e9ae',\n PageTab: 'e9af',\n Buriedpoint: 'e9b0',\n Container: 'e9b1',\n QuickStart: 'e9b2',\n Group: 'e9b3',\n Ungroup: 'e9b4',\n Front: 'e9b5',\n Back1: 'e9b6',\n Lock: 'e9b7',\n Unlock: 'e9b8',\n Association: 'e9b9',\n CancelAssociation: 'e9ba',\n Quotation: 'e9bb',\n ViewSet: 'e9bc',\n AutoScale: 'e9bd',\n waterfall: 'e9be',\n watermark: 'e9bf',\n history: 'e9c0',\n Setting: 'e9c1',\n Draftbox: 'e9c2',\n SQL: 'e9c3',\n Workflow: 'e9c4',\n Workflow2: 'e9c5',\n Addone: 'e9c6',\n Formula: 'e9c7',\n Dictionary: 'e9c8',\n statistical: 'e9c9',\n Recycle: 'e9ca',\n Mistake: 'e9cb',\n Tag: 'e9cc',\n Pendingapproval: 'e9cd',\n MyApplication: 'e9ce',\n ApplicationApproval: 'e9cf',\n Initiatedbyme: 'e9d0',\n Copiedtome: 'e9d1',\n Approvalnode: 'e9d2',\n Fillnode: 'e9d3',\n cc: 'e9d4',\n Image1: 'e9d5',\n Open: 'e9d6',\n Color: 'e9d7',\n Right: 'e9d8',\n Backward: 'e9d9',\n dataanalysis: 'e9da',\n Filter2: 'e9db',\n Freefilter: 'e9dc',\n Conditionfilter: 'e9dd',\n Quickfilter: 'e9de',\n Export1: 'e9df',\n Attachmentpreview: 'e9e0',\n BulkEdit: 'e9e1',\n Calculationrows: 'e9e2',\n SingleSelect: 'e9e3',\n dataview: 'e9e4',\n Dataid: 'e9e5',\n Divide: 'e9e6',\n Progress: 'e9e7',\n Star: 'e9e8',\n Contacts: 'e9e9',\n Activity: 'e9ea',\n Minus: 'e9eb',\n Plussign: 'e9ec',\n 'Plussign-Copy': 'e9ed',\n Increased: 'e9ee',\n Decline: 'e9ef',\n indeterminate: 'e9f0',\n Decline1: 'e9f1',\n personal: 'e9f2',\n Warning: 'e9f3',\n Warning2: 'e9f4',\n Prompt: 'e9f5',\n info: 'e9f6',\n Cancel: 'e9f7',\n question1: 'e9f8',\n Question: 'e9f9',\n exclamation: 'e9fa',\n Warning1: 'e9fb',\n True: 'e9fc',\n Suspended: 'e9fd',\n Suspended1: 'e9fe',\n Suspended2: 'e9ff',\n Error: 'ea00',\n CombinedShape2: 'ea01',\n Delete1: 'ea02',\n Circle1: 'ea03',\n Decline2: 'ea04',\n Decline3: 'ea05',\n add: 'ea06',\n Addto: 'ea07',\n Reduce: 'ea08',\n Subtract: 'ea09',\n Addition: 'ea0a',\n Multiplication: 'ea0b',\n Division: 'ea0c',\n Bracket: 'ea0d',\n Reduce1: 'ea0e',\n Search: 'ea0f',\n Favorites: 'ea10',\n Annotation: 'ea11',\n Application: 'ea12',\n Application2: 'ea13',\n Applicationsview: 'ea14',\n Publish: 'ea15',\n Deploy: 'ea16',\n Sidetoplowerside: 'ea17',\n Narrow: 'ea18',\n Backtothenavigation: 'ea19',\n Forwardtothenavigation: 'ea1a',\n Return1: 'ea1b',\n Transfer: 'ea1c',\n Log: 'ea1d',\n table: 'ea1e',\n Form: 'ea1f',\n Openfield: 'ea20',\n Closefield: 'ea21',\n Receive: 'ea22',\n Fill: 'ea23',\n Fill1: 'ea24',\n fillet: 'ea25',\n rightangle: 'ea26',\n round: 'ea27',\n Send1: 'ea28',\n Map: 'ea29',\n Upward: 'ea2a',\n Move: 'ea2b',\n Downward: 'ea2c',\n drag: 'ea2d',\n TextIcon: 'ea2e',\n Narrow1: 'ea2f',\n Enlarge: 'ea30',\n Enlarge2: 'ea31',\n Cancel1: 'ea32',\n Retract: 'ea33',\n Expand: 'ea34',\n Retract1: 'ea35',\n Expand1: 'ea36',\n Retract2: 'ea37',\n Expand2: 'ea38',\n Switch1: 'ea39',\n Fullscreen: 'ea3a',\n Offscreen: 'ea3b',\n Notvisible: 'ea3c',\n Visible: 'ea3d',\n Adjust: 'ea3e',\n PC: 'ea3f',\n Mobile: 'ea40',\n Pad: 'ea41',\n Scanthecode: 'ea42',\n Scan: 'ea43',\n Screenshot: 'ea44',\n Rotation: 'ea45',\n voice: 'ea46',\n Video: 'ea47',\n Location: 'ea48',\n Clock: 'ea49',\n Print: 'ea4a',\n Member: 'ea4b',\n WorkWeChat: 'ea4c',\n DingTalk: 'ea4d',\n EnterpriseWeChat2: 'ea4e',\n Groupmanagement: 'ea4f',\n Feishu: 'ea50',\n Stationletter: 'ea51',\n Email1: 'ea52',\n WeChat: 'ea53',\n ServiceAccount: 'ea54',\n Subscribed: 'ea55',\n Dingtalk: 'ea56',\n Information: 'ea57',\n Assistant: 'ea58',\n ai: 'ea59',\n Inquireabout: 'ea5a',\n IFrame: 'ea5b',\n Integratio: 'ea5c',\n close: 'ea5d',\n Close: 'ea5e',\n Addgroup: 'ea5f',\n deletegroup: 'ea60',\n Relateddata: 'ea61',\n Enlarge1: 'ea62',\n Narrow2: 'ea63',\n 'map-search': 'ea64',\n Corner: 'ea65',\n text1: 'ea66',\n Onlinemap: 'ea67',\n Maptile: 'ea68',\n Dataexport: 'ea69',\n Word: 'ea6a',\n Excel: 'ea6b',\n PPT: 'ea6c',\n PDF: 'ea6d',\n Video1: 'ea6e',\n Audio: 'ea6f',\n Txt: 'ea70',\n Zip: 'ea71',\n file: 'ea72',\n richtext: 'ea73',\n Onlinemap1: 'ea74',\n Maptile1: 'ea75',\n Ai2: 'ea76',\n Guide: 'ea77',\n Button: 'ea78',\n Menus: 'ea79',\n 'richtext-Copy': 'ea7a',\n 'richtext-Copy-2': 'ea7b',\n 'richtext-Copy-3': 'ea7c',\n 'richtext-Copy-4': 'ea7d',\n Split: 'ea7e',\n AI: 'ea7f',\n Form1: 'ea80',\n Fields: 'ea81',\n Project: 'ea82',\n More1: 'ea83',\n Notstarted: 'ea84',\n Inprocess: 'ea85',\n Completed: 'ea86',\n Completed1: 'ea87',\n More2: 'ea88',\n AIoffice: 'ea89',\n statistics: 'ea8a',\n Expand3: 'ea8b',\n list: 'ea8c',\n 'list-Copy': 'ea8d',\n Grid: 'ea8e',\n Calendar: 'ea8f',\n Schedule: 'ea90',\n tableview: 'ea91',\n Gallery: 'ea92',\n Copy1: 'ea93',\n Mailbox: 'ea94',\n Automation1: 'ea95',\n Avatar: 'ea96',\n};\n\n/**\n * Look up the unicode hex string for an icon by its font_class name.\n * Returns undefined if the icon name is not found.\n *\n * @param name - The icon font_class name (e.g. \"search\", \"edit\", \"ai\")\n * @returns The unicode hex string (e.g. \"e952\"), or undefined\n *\n * @example\n * getIconUnicode(\"search\") // \"e952\"\n * getIconUnicode(\"ai\") // \"ea59\"\n */\nexport function getIconUnicode(name: string): string | undefined {\n const code = ICON_UNICODE_MAP[name];\n return code ? `&#x${code};` : undefined;\n}\n","import { IField, IValueFormHuman } from '@baishuyun/types';\nimport { flatArr } from './array';\n\n// input eg: '${_widget_1782471976291} ${_widget_1782471978145} ahahah'\n// output: '供应商名称 备注 ahahah'\nexport const promptParser = (\n originStrWithFieldNameTpl: string,\n formStructure: Array<IField>,\n widgetValueGetter: (name: string) => IValueFormHuman\n): IValueFormHuman => {\n if (!widgetValueGetter) {\n return {\n translated: '',\n };\n }\n\n const widgetMap = new Map(formStructure.map((f) => [f.widget.widgetName, f.label]));\n\n for (const field of formStructure) {\n if (field.widget.type === 'subform' && field.widget.items) {\n for (const item of field.widget.items) {\n if ('widget' in item && !('options' in item)) {\n const key = `${field.widget.widgetName}.${item.widget.widgetName}`;\n widgetMap.set(key, item.label);\n }\n }\n }\n }\n\n const metaPart: Array<unknown> = [];\n\n const stringPart = originStrWithFieldNameTpl.replace(\n /\\$\\{(_widget_\\d+(?:\\._widget_\\d+)?)\\}/g,\n (_, widgetName) => {\n const { translated, meta } = widgetValueGetter(widgetName);\n\n if (meta) {\n metaPart.push(meta);\n }\n\n return translated;\n }\n );\n\n return {\n meta: metaPart.length ? flatArr(metaPart) : null,\n translated: (stringPart ?? '').trim(),\n };\n};\n"],"names":["extractTextPartMeta","part","payload","e","IsErrorPart","IsFakeMsgPart","IsFilePart","IsQueryResultPart","GetQueryResult","result","IsFileGroupPart","p","IsLoadingPart","GetLoadingMsg","GetPartErrMsg","getMetaErrorMsg","STYLE_INJECTED_ATTR","injectHostStylesIntoShadow","shadowRoot","hostElement","cloneAndMark","el","cloned","node","isStringArray","value","item","isOptionArray","valueNormalizer","WHITE_LIST_FIELDS_SET","GetSafeFormStructure","formStructure","f","createPartTypeChecker","type","createGetFieldJsonInfo","createFieldPartsExtractor","isTarget","safeParseJson","jsonString","DATA_COUNT_PER_BATCH","imageUrlToBase64","url","mediaType","resolve","img","canvas","OPERATOR_LABEL_MAP","FIELD_TYPE_OPERATOR_MAP","DEFAULT_OPERATOR_MAP","getAvailableOperators","fieldType","_a","getDefaultOperator","isRecord","asRecord","isEmpty","isEqual","a","b","sa","sb","v","ka","kb","k","evaluateIn","formValue","condValue","fv","cv","evaluateAll","evaluateRange","range","evaluateConditionItem","formValues","widgetName","operator","isHelperCondMet","helper","condition","items","quantifier","results","r","isCtxMatch","ctx","OPERATOR_TO_BS_METHOD","BS_METHOD_TO_OPERATOR","conditionStringify2bsCondition","cond","rel","bsCondItems","_b","_c","_d","_e","_f","method","bsConditionParse2Condition","str","bsCond","bsItem","index","mergeConsecutiveTargets","arr","minWidth","temp","flatArr","ICON_UNICODE_MAP","getIconUnicode","name","code","promptParser","originStrWithFieldNameTpl","widgetValueGetter","widgetMap","field","key","metaPart","stringPart","_","translated","meta"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function mergeConsecutiveTargets<T>(arr: T[], isTarget: (item: T) => boolean, minWidth?: number): (T | T[])[];
2
+ export declare function flatArr(arr: Array<unknown>): Array<unknown>;
3
+ //# sourceMappingURL=array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../src/array.ts"],"names":[],"mappings":"AAAA,wBAAgB,uBAAuB,CAAC,CAAC,EACvC,GAAG,EAAE,CAAC,EAAE,EACR,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,EAC9B,QAAQ,SAAI,GACX,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CA6Bb;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAW3D"}
@@ -0,0 +1,2 @@
1
+ export declare const imageUrlToBase64: (url: string, mediaType?: string) => Promise<string>;
2
+ //# sourceMappingURL=attachment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../src/attachment.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,EAAE,kBAAuB,KAAG,OAAO,CAAC,MAAM,CAalF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { FieldType, IAgentHelper, IFormValues, relationalOperator, ICondition, ICtxDetail } from '@baishuyun/types';
2
+ export declare const OPERATOR_LABEL_MAP: Record<relationalOperator, string>;
3
+ export declare const FIELD_TYPE_OPERATOR_MAP: Record<FieldType, relationalOperator[]>;
4
+ export declare function getAvailableOperators(fieldType?: FieldType): relationalOperator[];
5
+ export declare function getDefaultOperator(fieldType?: FieldType): relationalOperator;
6
+ export declare function isHelperCondMet(helper: IAgentHelper, formValues: IFormValues): boolean;
7
+ export declare const isCtxMatch: (helper: IAgentHelper | null, ctx: ICtxDetail | null) => boolean;
8
+ export declare function conditionStringify2bsCondition(cond: ICondition): string;
9
+ export declare function bsConditionParse2Condition(str: string): ICondition;
10
+ //# sourceMappingURL=condition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../src/condition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EAEX,kBAAkB,EAClB,UAAU,EAGV,UAAU,EACX,MAAM,kBAAkB,CAAC;AAE1B,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAejE,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,SAAS,EAAE,kBAAkB,EAAE,CAwD3E,CAAC;AA+BF,wBAAgB,qBAAqB,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,kBAAkB,EAAE,CAGjF;AAED,wBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,kBAAkB,CAG5E;AAmHD,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,GAAG,OAAO,CActF;AAED,eAAO,MAAM,UAAU,GAAI,QAAQ,YAAY,GAAG,IAAI,EAAE,KAAK,UAAU,GAAG,IAAI,KAAG,OAkBhF,CAAC;AAwCF,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAoBvE;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CA4BlE"}
@@ -0,0 +1,2 @@
1
+ export declare const DATA_COUNT_PER_BATCH = 10;
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,KAAK,CAAC"}
package/dist/dom.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare const injectHostStylesIntoShadow: (shadowRoot: ShadowRoot, hostElement: HTMLElement) => void;
2
+ //# sourceMappingURL=dom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,0BAA0B,GAAI,YAAY,UAAU,EAAE,aAAa,WAAW,SAsB1F,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { IFilledField } from '@baishuyun/types';
2
+ export declare const createPartTypeChecker: (type: string) => (part: any) => boolean;
3
+ export declare const createGetFieldJsonInfo: (type: string) => (part: any) => IFilledField | null;
4
+ export declare const createFieldPartsExtractor: (isTarget: (part: any) => boolean) => (part: any) => any[];
5
+ export declare const safeParseJson: (jsonString: string) => any | null;
6
+ //# sourceMappingURL=field-json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-json.d.ts","sourceRoot":"","sources":["../src/field-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,eAAO,MAAM,qBAAqB,GAC/B,MAAM,MAAM,MACZ,MAAM,GAAG,KAAG,OAGZ,CAAC;AAEJ,eAAO,MAAM,sBAAsB,GAChC,MAAM,MAAM,MACZ,MAAM,GAAG,KAAG,YAAY,GAAG,IAM3B,CAAC;AAEJ,eAAO,MAAM,yBAAyB,GACnC,UAAU,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,MAChC,MAAM,GAAG,KAAG,GAAG,EAIf,CAAC;AAEJ,eAAO,MAAM,aAAa,GAAI,YAAY,MAAM,KAAG,GAAG,GAAG,IAOxD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { FieldType, IField } from '@baishuyun/types';
2
+ export declare const WHITE_LIST_FIELDS_SET: Set<FieldType>;
3
+ export declare const GetSafeFormStructure: (formStructure: Array<IField>) => IField[];
4
+ //# sourceMappingURL=form-structure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-structure.d.ts","sourceRoot":"","sources":["../src/form-structure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAErD,eAAO,MAAM,qBAAqB,gBAWhC,CAAC;AAEH,eAAO,MAAM,oBAAoB,GAAI,eAAe,KAAK,CAAC,MAAM,CAAC,aAYhE,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Look up the unicode hex string for an icon by its font_class name.
3
+ * Returns undefined if the icon name is not found.
4
+ *
5
+ * @param name - The icon font_class name (e.g. "search", "edit", "ai")
6
+ * @returns The unicode hex string (e.g. "e952"), or undefined
7
+ *
8
+ * @example
9
+ * getIconUnicode("search") // "e952"
10
+ * getIconUnicode("ai") // "ea59"
11
+ */
12
+ export declare function getIconUnicode(name: string): string | undefined;
13
+ //# sourceMappingURL=iconfont.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iconfont.d.ts","sourceRoot":"","sources":["../src/iconfont.ts"],"names":[],"mappings":"AA+YA;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG/D"}
@@ -0,0 +1,13 @@
1
+ export { extractTextPartMeta } from './text-part';
2
+ export * from './part';
3
+ export { injectHostStylesIntoShadow } from './dom';
4
+ export { valueNormalizer } from './value-normalizer';
5
+ export { GetSafeFormStructure, WHITE_LIST_FIELDS_SET } from './form-structure';
6
+ export { createPartTypeChecker, createGetFieldJsonInfo, createFieldPartsExtractor, safeParseJson, } from './field-json';
7
+ export { DATA_COUNT_PER_BATCH } from './constants';
8
+ export { imageUrlToBase64 } from './attachment';
9
+ export { OPERATOR_LABEL_MAP, FIELD_TYPE_OPERATOR_MAP, getAvailableOperators, getDefaultOperator, isHelperCondMet, isCtxMatch, conditionStringify2bsCondition, bsConditionParse2Condition, } from './condition';
10
+ export * from './array';
11
+ export { getIconUnicode } from './iconfont';
12
+ export { promptParser } from './prompt-parser';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,cAAc,QAAQ,CAAC;AAEvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAErB,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/part.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ import { IQueryResult } from '@baishuyun/types';
2
+ export declare const IsErrorPart: (part: any) => boolean;
3
+ export declare const IsFakeMsgPart: (part: any) => boolean;
4
+ export declare const IsFilePart: (part: any) => boolean;
5
+ export declare const IsQueryResultPart: (part: any) => boolean;
6
+ export declare const GetQueryResult: (part: any) => IQueryResult | null;
7
+ export declare const IsFileGroupPart: (part: any) => boolean;
8
+ export declare const IsLoadingPart: (part: any) => boolean;
9
+ export declare const GetLoadingMsg: (part: any) => string;
10
+ export declare const GetPartErrMsg: (part: any) => string;
11
+ export declare const getMetaErrorMsg: (part: any) => string;
12
+ //# sourceMappingURL=part.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"part.d.ts","sourceRoot":"","sources":["../src/part.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,eAAO,MAAM,WAAW,GAAI,MAAM,GAAG,KAAG,OAOvC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,GAAG,KAAG,OAGzC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,GAAG,KAAG,OAEtC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,MAAM,GAAG,KAAG,OAG7C,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,MAAM,GAAG,KAAG,YAAY,GAAG,IAczD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,MAAM,GAAG,YAaxC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,GAAG,KAAG,OAGzC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,GAAG,KAAG,MAOzC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,GAAG,KAAG,MAWzC,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,MAAM,GAAG,KAAG,MAO3C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { IField, IValueFormHuman } from '@baishuyun/types';
2
+ export declare const promptParser: (originStrWithFieldNameTpl: string, formStructure: Array<IField>, widgetValueGetter: (name: string) => IValueFormHuman) => IValueFormHuman;
3
+ //# sourceMappingURL=prompt-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-parser.d.ts","sourceRoot":"","sources":["../src/prompt-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAK3D,eAAO,MAAM,YAAY,GACvB,2BAA2B,MAAM,EACjC,eAAe,KAAK,CAAC,MAAM,CAAC,EAC5B,mBAAmB,CAAC,IAAI,EAAE,MAAM,KAAK,eAAe,KACnD,eAuCF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const extractTextPartMeta: (part: any) => any;
2
+ //# sourceMappingURL=text-part.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-part.d.ts","sourceRoot":"","sources":["../src/text-part.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,GAAI,MAAM,GAAG,QAyB5C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const valueNormalizer: (value: string | string[]) => string;
2
+ //# sourceMappingURL=value-normalizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value-normalizer.d.ts","sourceRoot":"","sources":["../src/value-normalizer.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,GAAG,MAAM,EAAE,KAAG,MAW1D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@baishuyun/ai-feat-utils",
3
- "version": "2.0.6",
3
+ "version": "2.0.8",
4
4
  "description": "Shared utility functions for AI feature plugins",
5
5
  "type": "module",
6
6
  "main": "dist/ai-feat-utils.js",
@@ -16,14 +16,14 @@
16
16
  "dist/**/*"
17
17
  ],
18
18
  "dependencies": {
19
- "@baishuyun/types": "3.0.6"
19
+ "@baishuyun/types": "3.0.8"
20
20
  },
21
21
  "devDependencies": {
22
22
  "rimraf": "^6.1.2",
23
23
  "typescript": "^5.5.0",
24
24
  "vite": "^5.1.4",
25
25
  "vite-plugin-dts": "^4.5.4",
26
- "@baishuyun/typescript-config": "2.0.6"
26
+ "@baishuyun/typescript-config": "2.0.8"
27
27
  },
28
28
  "keywords": [],
29
29
  "author": "",