markdown-flow-ui 0.2.36-dev.1 → 0.3.0
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/README.md +12 -12
- package/dist/_virtual/index.es4.js +5 -5
- package/dist/_virtual/index.es5.js +5 -5
- package/dist/_virtual/index4.cjs +1 -1
- package/dist/_virtual/index5.cjs +1 -1
- package/dist/_virtual/variable-marker.cjs +2 -0
- package/dist/_virtual/variable-marker.cjs.map +1 -0
- package/dist/_virtual/variable-marker.es.js +5 -0
- package/dist/_virtual/variable-marker.es.js.map +1 -0
- package/dist/components/ContentRender/ContentRender.cjs +2 -2
- package/dist/components/ContentRender/ContentRender.cjs.map +1 -1
- package/dist/components/ContentRender/ContentRender.es.js +206 -205
- package/dist/components/ContentRender/ContentRender.es.js.map +1 -1
- package/dist/components/ContentRender/utils/inline-code-ranges.cjs +9 -9
- package/dist/components/ContentRender/utils/inline-code-ranges.cjs.map +1 -1
- package/dist/components/ContentRender/utils/inline-code-ranges.d.ts +3 -0
- package/dist/components/ContentRender/utils/inline-code-ranges.es.js +185 -161
- package/dist/components/ContentRender/utils/inline-code-ranges.es.js.map +1 -1
- package/dist/components/ContentRender/utils/mermaid-parse.cjs +4 -4
- package/dist/components/ContentRender/utils/mermaid-parse.cjs.map +1 -1
- package/dist/components/ContentRender/utils/mermaid-parse.es.js +53 -48
- package/dist/components/ContentRender/utils/mermaid-parse.es.js.map +1 -1
- package/dist/components/ContentRender/utils/split-content.cjs +6 -6
- package/dist/components/ContentRender/utils/split-content.cjs.map +1 -1
- package/dist/components/ContentRender/utils/split-content.d.ts +1 -0
- package/dist/components/ContentRender/utils/split-content.es.js +361 -313
- package/dist/components/ContentRender/utils/split-content.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.es.js +278 -283
- package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/VariableSelect.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/components/VariableSelect.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/VariableSelect.es.js +57 -58
- package/dist/components/MarkdownFlowEditor/components/VariableSelect.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.d.ts +1 -1
- package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.es.js +1 -1
- package/dist/components/MarkdownFlowEditor/locales/de-DE.json.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/locales/de-DE.json.d.ts +1 -1
- package/dist/components/MarkdownFlowEditor/locales/de-DE.json.es.js +19 -19
- package/dist/components/MarkdownFlowEditor/locales/en-US.json.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/locales/en-US.json.d.ts +1 -1
- package/dist/components/MarkdownFlowEditor/locales/en-US.json.es.js +5 -5
- package/dist/components/MarkdownFlowEditor/locales/es-ES.json.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/locales/es-ES.json.d.ts +1 -1
- package/dist/components/MarkdownFlowEditor/locales/es-ES.json.es.js +1 -1
- package/dist/components/MarkdownFlowEditor/locales/fil-PH.json.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/locales/fil-PH.json.d.ts +1 -1
- package/dist/components/MarkdownFlowEditor/locales/fil-PH.json.es.js +15 -15
- package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.d.ts +1 -1
- package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.es.js +13 -13
- package/dist/components/MarkdownFlowEditor/locales/ja-JP.json.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/locales/ja-JP.json.d.ts +1 -1
- package/dist/components/MarkdownFlowEditor/locales/ja-JP.json.es.js +1 -1
- package/dist/components/MarkdownFlowEditor/locales/th-TH.json.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/locales/th-TH.json.d.ts +1 -1
- package/dist/components/MarkdownFlowEditor/locales/th-TH.json.es.js +1 -1
- package/dist/components/MarkdownFlowEditor/locales/ur-PK.json.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/locales/ur-PK.json.d.ts +1 -1
- package/dist/components/MarkdownFlowEditor/locales/ur-PK.json.es.js +1 -1
- package/dist/components/MarkdownFlowEditor/locales/vi-VN.json.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/locales/vi-VN.json.d.ts +1 -1
- package/dist/components/MarkdownFlowEditor/locales/vi-VN.json.es.js +15 -15
- package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.d.ts +1 -1
- package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.es.js +1 -1
- package/dist/components/MarkdownFlowEditor/plugins/SyntaxHighlighter.cjs +3 -3
- package/dist/components/MarkdownFlowEditor/plugins/SyntaxHighlighter.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/plugins/SyntaxHighlighter.es.js +177 -176
- package/dist/components/MarkdownFlowEditor/plugins/SyntaxHighlighter.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/plugins/VariablePlaceholder.cjs +2 -1
- package/dist/components/MarkdownFlowEditor/plugins/VariablePlaceholder.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/plugins/VariablePlaceholder.d.ts +3 -1
- package/dist/components/MarkdownFlowEditor/plugins/VariablePlaceholder.es.js +38 -55
- package/dist/components/MarkdownFlowEditor/plugins/VariablePlaceholder.es.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/utils.cjs +1 -1
- package/dist/components/MarkdownFlowEditor/utils.cjs.map +1 -1
- package/dist/components/MarkdownFlowEditor/utils.d.ts +2 -2
- package/dist/components/MarkdownFlowEditor/utils.es.js +34 -31
- package/dist/components/MarkdownFlowEditor/utils.es.js.map +1 -1
- package/dist/components/ui/inputGroup/textarea.cjs +1 -1
- package/dist/components/ui/inputGroup/textarea.es.js +1 -1
- package/dist/lib/interaction-defaults.cjs +1 -1
- package/dist/lib/interaction-defaults.cjs.map +1 -1
- package/dist/lib/interaction-defaults.es.js +124 -133
- package/dist/lib/interaction-defaults.es.js.map +1 -1
- package/dist/lib/interaction-defaults.failure.test.d.ts +1 -0
- package/dist/node_modules/rc-input/es/BaseInput.cjs +1 -1
- package/dist/node_modules/rc-input/es/BaseInput.es.js +1 -1
- package/dist/node_modules/rc-textarea/es/ResizableTextArea.cjs +1 -1
- package/dist/node_modules/rc-textarea/es/ResizableTextArea.es.js +1 -1
- package/dist/node_modules/rc-textarea/es/TextArea.cjs +1 -1
- package/dist/node_modules/rc-textarea/es/TextArea.es.js +1 -1
- package/dist/node_modules/rc-textarea/es/index.cjs +1 -1
- package/dist/node_modules/rc-textarea/es/index.es.js +1 -1
- package/dist/node_modules/remark-flow/dist/escaping.cjs +2 -2
- package/dist/node_modules/remark-flow/dist/escaping.cjs.map +1 -1
- package/dist/node_modules/remark-flow/dist/escaping.es.js +128 -63
- package/dist/node_modules/remark-flow/dist/escaping.es.js.map +1 -1
- package/dist/node_modules/remark-flow/dist/index.cjs +1 -1
- package/dist/node_modules/remark-flow/dist/index.cjs.map +1 -1
- package/dist/node_modules/remark-flow/dist/index.es.js +49 -37
- package/dist/node_modules/remark-flow/dist/index.es.js.map +1 -1
- package/dist/node_modules/remark-flow/dist/interaction-parser.cjs +1 -1
- package/dist/node_modules/remark-flow/dist/interaction-parser.cjs.map +1 -1
- package/dist/node_modules/remark-flow/dist/interaction-parser.es.js +260 -255
- package/dist/node_modules/remark-flow/dist/interaction-parser.es.js.map +1 -1
- package/dist/node_modules/remark-flow/dist/interaction-plugin-core.cjs +1 -1
- package/dist/node_modules/remark-flow/dist/interaction-plugin-core.cjs.map +1 -1
- package/dist/node_modules/remark-flow/dist/interaction-plugin-core.es.js +71 -42
- package/dist/node_modules/remark-flow/dist/interaction-plugin-core.es.js.map +1 -1
- package/dist/node_modules/remark-flow/dist/interaction-syntax.cjs +1 -1
- package/dist/node_modules/remark-flow/dist/interaction-syntax.cjs.map +1 -1
- package/dist/node_modules/remark-flow/dist/interaction-syntax.es.js +501 -46
- package/dist/node_modules/remark-flow/dist/interaction-syntax.es.js.map +1 -1
- package/dist/node_modules/remark-flow/dist/variable-marker.cjs +2 -0
- package/dist/node_modules/remark-flow/dist/variable-marker.cjs.map +1 -0
- package/dist/node_modules/remark-flow/dist/variable-marker.es.js +77 -0
- package/dist/node_modules/remark-flow/dist/variable-marker.es.js.map +1 -0
- package/dist/node_modules/remark-flow/dist/variable-name.cjs +14 -1
- package/dist/node_modules/remark-flow/dist/variable-name.cjs.map +1 -1
- package/dist/node_modules/remark-flow/dist/variable-name.es.js +742 -25
- package/dist/node_modules/remark-flow/dist/variable-name.es.js.map +1 -1
- package/dist/node_modules/unified/lib/index.cjs +1 -1
- package/dist/node_modules/unified/lib/index.es.js +1 -1
- package/package.json +2 -2
|
@@ -1,196 +1,187 @@
|
|
|
1
|
-
import { d } from "../_virtual/index.es.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
if (
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return null;
|
|
13
|
-
const u = [], i = [];
|
|
14
|
-
let c;
|
|
15
|
-
return o.forEach((a) => {
|
|
16
|
-
if (a.startsWith("...")) {
|
|
17
|
-
const m = a.replace(/^\.\.\./, "").trim();
|
|
18
|
-
m && (c = m);
|
|
19
|
-
return;
|
|
1
|
+
import { d as u } from "../_virtual/index.es.js";
|
|
2
|
+
import { getMarkdownSourceAnalysis as b } from "../components/ContentRender/utils/inline-code-ranges.es.js";
|
|
3
|
+
const p = u.createInteractionParser(), T = /<custom-variable\b/i, x = new RegExp(
|
|
4
|
+
`\\?\\[(${u.INTERACTION_CONTENT_SOURCE})\\](?!\\()`
|
|
5
|
+
), V = /^[\[{]/, h = (t) => {
|
|
6
|
+
if (t.type === "flowInteraction" && "value" in t)
|
|
7
|
+
return typeof t.value == "string" ? t.value : null;
|
|
8
|
+
if (t.children)
|
|
9
|
+
for (const e of t.children) {
|
|
10
|
+
const r = h(e);
|
|
11
|
+
if (r !== null) return r;
|
|
20
12
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
variableName: s,
|
|
24
|
-
buttonTexts: u.length ? u : void 0,
|
|
25
|
-
buttonValues: i.length ? i : void 0,
|
|
26
|
-
placeholder: c,
|
|
27
|
-
isMultiSelect: r
|
|
28
|
-
};
|
|
29
|
-
}, E = (t) => {
|
|
13
|
+
return null;
|
|
14
|
+
}, I = (t) => {
|
|
30
15
|
if (!t)
|
|
31
16
|
return null;
|
|
32
17
|
try {
|
|
33
|
-
|
|
34
|
-
|
|
18
|
+
const e = h(b(t).tree) ?? (T.test(t) ? t : null);
|
|
19
|
+
return e === null || p.parse(e).error ? null : p.parseToRemarkFormat(
|
|
20
|
+
e
|
|
35
21
|
);
|
|
36
|
-
} catch (
|
|
37
|
-
console.warn("Failed to parse interaction block",
|
|
22
|
+
} catch (e) {
|
|
23
|
+
console.warn("Failed to parse interaction block", e);
|
|
38
24
|
}
|
|
39
|
-
return
|
|
40
|
-
},
|
|
25
|
+
return null;
|
|
26
|
+
}, g = (t, e) => {
|
|
41
27
|
if (!t)
|
|
42
28
|
return null;
|
|
43
|
-
const
|
|
29
|
+
const r = u.trimVariablePadding(t), n = e.buttonValues || [], i = e.buttonTexts || [], l = n.indexOf(r);
|
|
44
30
|
if (l > -1)
|
|
45
31
|
return {
|
|
46
|
-
value:
|
|
47
|
-
display:
|
|
32
|
+
value: n[l],
|
|
33
|
+
display: i[l]
|
|
48
34
|
};
|
|
49
|
-
const
|
|
50
|
-
return
|
|
51
|
-
value:
|
|
52
|
-
display:
|
|
35
|
+
const s = i.indexOf(r);
|
|
36
|
+
return s > -1 ? {
|
|
37
|
+
value: n[s] || i[s],
|
|
38
|
+
display: i[s]
|
|
53
39
|
} : null;
|
|
54
|
-
},
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
40
|
+
}, v = (t) => t.split(/[,,\n]/).map((e) => u.trimVariablePadding(e)).filter(Boolean), d = (t) => {
|
|
41
|
+
let e = 0;
|
|
42
|
+
for (; e < t.length && (t[e] === "," || t[e] === "," || u.trimVariablePadding(t[e]) === ""); )
|
|
43
|
+
e += 1;
|
|
44
|
+
return t.slice(e);
|
|
45
|
+
}, P = (t) => {
|
|
46
|
+
const e = t.buttonValues || [], r = t.buttonTexts || [], n = [], i = /* @__PURE__ */ new Set();
|
|
47
|
+
return e.forEach((l, s) => {
|
|
48
|
+
const a = u.trimVariablePadding(`${l ?? ""}`), o = u.trimVariablePadding(`${r[s] ?? ""}`);
|
|
49
|
+
[a, o].forEach((c) => {
|
|
59
50
|
if (!c)
|
|
60
51
|
return;
|
|
61
|
-
const
|
|
62
|
-
|
|
52
|
+
const f = `${c}::${a || c}`;
|
|
53
|
+
i.has(f) || (i.add(f), n.push({
|
|
63
54
|
token: c,
|
|
64
|
-
value:
|
|
55
|
+
value: a || c
|
|
65
56
|
}));
|
|
66
57
|
});
|
|
67
|
-
}),
|
|
68
|
-
(l,
|
|
58
|
+
}), n.sort(
|
|
59
|
+
(l, s) => s.token.length - l.token.length
|
|
69
60
|
);
|
|
70
|
-
},
|
|
71
|
-
const
|
|
72
|
-
for (const
|
|
73
|
-
if (!
|
|
61
|
+
}, E = (t, e) => {
|
|
62
|
+
const r = d(t), n = P(e);
|
|
63
|
+
for (const i of n) {
|
|
64
|
+
if (!r.startsWith(i.token))
|
|
74
65
|
continue;
|
|
75
|
-
const l =
|
|
76
|
-
if (!(l &&
|
|
77
|
-
return
|
|
66
|
+
const l = r[i.token.length];
|
|
67
|
+
if (!(l && l !== "," && l !== "," && u.trimVariablePadding(l) !== ""))
|
|
68
|
+
return i;
|
|
78
69
|
}
|
|
79
70
|
return null;
|
|
80
|
-
},
|
|
81
|
-
const
|
|
82
|
-
if (!
|
|
71
|
+
}, S = (t, e) => {
|
|
72
|
+
const r = v(t);
|
|
73
|
+
if (!r.length)
|
|
83
74
|
return {};
|
|
84
|
-
const
|
|
85
|
-
return
|
|
86
|
-
const
|
|
87
|
-
if (
|
|
88
|
-
|
|
75
|
+
const n = [], i = [];
|
|
76
|
+
return r.forEach((l) => {
|
|
77
|
+
const s = g(l, e);
|
|
78
|
+
if (s) {
|
|
79
|
+
n.push(s.value);
|
|
89
80
|
return;
|
|
90
81
|
}
|
|
91
|
-
if (
|
|
92
|
-
|
|
82
|
+
if (e.placeholder) {
|
|
83
|
+
i.push(l);
|
|
93
84
|
return;
|
|
94
85
|
}
|
|
95
|
-
|
|
86
|
+
n.push(l);
|
|
96
87
|
}), {
|
|
97
|
-
selectedValues:
|
|
98
|
-
inputText:
|
|
88
|
+
selectedValues: n.length ? n : void 0,
|
|
89
|
+
inputText: i.length ? i.join(", ") : void 0
|
|
99
90
|
};
|
|
100
|
-
},
|
|
101
|
-
const
|
|
102
|
-
let
|
|
103
|
-
for (;
|
|
104
|
-
const l =
|
|
91
|
+
}, R = (t, e) => {
|
|
92
|
+
const r = [];
|
|
93
|
+
let n = u.trimVariablePadding(t);
|
|
94
|
+
for (; n; ) {
|
|
95
|
+
const l = E(n, e);
|
|
105
96
|
if (!l)
|
|
106
97
|
break;
|
|
107
|
-
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
98
|
+
r.push(l.value);
|
|
99
|
+
const s = d(n);
|
|
100
|
+
n = d(
|
|
101
|
+
s.slice(l.token.length)
|
|
111
102
|
);
|
|
112
103
|
}
|
|
113
|
-
if (
|
|
104
|
+
if (r.length > 0)
|
|
114
105
|
return {
|
|
115
|
-
selectedValues:
|
|
116
|
-
inputText:
|
|
106
|
+
selectedValues: r,
|
|
107
|
+
inputText: e.placeholder && n.trim() ? n.trim() : void 0
|
|
117
108
|
};
|
|
118
|
-
const
|
|
119
|
-
return
|
|
109
|
+
const i = S(t, e);
|
|
110
|
+
return i.selectedValues?.length ? i : e.placeholder ? {
|
|
120
111
|
inputText: t.trim()
|
|
121
|
-
} :
|
|
122
|
-
},
|
|
112
|
+
} : i;
|
|
113
|
+
}, A = (t) => {
|
|
123
114
|
if (!t || Array.isArray(t))
|
|
124
115
|
return null;
|
|
125
|
-
const
|
|
126
|
-
return !
|
|
127
|
-
buttonText:
|
|
128
|
-
inputText:
|
|
129
|
-
selectedValues:
|
|
116
|
+
const e = Array.isArray(t.selectedValues) ? t.selectedValues.map((i) => u.trimVariablePadding(`${i ?? ""}`)).filter(Boolean) : void 0, r = u.trimVariablePadding(`${t.buttonText ?? ""}`), n = typeof t.inputText == "string" ? t.inputText : void 0;
|
|
117
|
+
return !e?.length && !r && !n ? null : {
|
|
118
|
+
buttonText: r || void 0,
|
|
119
|
+
inputText: n,
|
|
120
|
+
selectedValues: e?.length ? e : void 0
|
|
130
121
|
};
|
|
131
122
|
}, D = (t) => {
|
|
132
|
-
if (!t || !
|
|
123
|
+
if (!t || !V.test(u.trimVariablePadding(t)))
|
|
133
124
|
return null;
|
|
134
125
|
try {
|
|
135
|
-
const
|
|
136
|
-
return
|
|
126
|
+
const e = JSON.parse(t);
|
|
127
|
+
return A(e);
|
|
137
128
|
} catch {
|
|
138
129
|
return null;
|
|
139
130
|
}
|
|
140
|
-
},
|
|
131
|
+
}, N = (t) => !!(t && (T.test(t) || x.test(t))), m = (t, e, r, n) => n?.resolveDefaultValues?.({
|
|
141
132
|
content: t,
|
|
142
|
-
rawValue:
|
|
143
|
-
interactionInfo:
|
|
144
|
-
}) ?? null,
|
|
145
|
-
const
|
|
146
|
-
if (!
|
|
133
|
+
rawValue: e,
|
|
134
|
+
interactionInfo: r
|
|
135
|
+
}) ?? null, O = (t, e, r) => {
|
|
136
|
+
const n = e == null ? void 0 : u.trimVariablePadding(e.toString());
|
|
137
|
+
if (!n)
|
|
147
138
|
return {};
|
|
148
|
-
const
|
|
149
|
-
if (
|
|
150
|
-
return
|
|
151
|
-
const l =
|
|
139
|
+
const i = D(n);
|
|
140
|
+
if (i)
|
|
141
|
+
return i;
|
|
142
|
+
const l = m(
|
|
152
143
|
t,
|
|
153
|
-
|
|
144
|
+
n,
|
|
154
145
|
null,
|
|
155
|
-
|
|
146
|
+
r
|
|
156
147
|
);
|
|
157
148
|
if (l)
|
|
158
149
|
return l;
|
|
159
|
-
if (!
|
|
150
|
+
if (!N(t))
|
|
160
151
|
return {
|
|
161
|
-
buttonText:
|
|
162
|
-
inputText:
|
|
152
|
+
buttonText: n,
|
|
153
|
+
inputText: n
|
|
163
154
|
};
|
|
164
|
-
const
|
|
155
|
+
const s = I(t), a = m(
|
|
165
156
|
t,
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
157
|
+
n,
|
|
158
|
+
s,
|
|
159
|
+
r
|
|
169
160
|
);
|
|
170
|
-
if (
|
|
171
|
-
return
|
|
172
|
-
if (!
|
|
161
|
+
if (a)
|
|
162
|
+
return a;
|
|
163
|
+
if (!s)
|
|
173
164
|
return {
|
|
174
|
-
buttonText:
|
|
175
|
-
inputText:
|
|
165
|
+
buttonText: n,
|
|
166
|
+
inputText: n
|
|
176
167
|
};
|
|
177
|
-
if (
|
|
178
|
-
return
|
|
179
|
-
const
|
|
180
|
-
return
|
|
181
|
-
buttonText:
|
|
182
|
-
} :
|
|
183
|
-
inputText:
|
|
168
|
+
if (s.isMultiSelect)
|
|
169
|
+
return R(n, s);
|
|
170
|
+
const o = g(n, s);
|
|
171
|
+
return o ? {
|
|
172
|
+
buttonText: o.value || o.display || n
|
|
173
|
+
} : s.placeholder ? {
|
|
174
|
+
inputText: n
|
|
184
175
|
} : {
|
|
185
|
-
buttonText:
|
|
186
|
-
inputText:
|
|
176
|
+
buttonText: n,
|
|
177
|
+
inputText: n
|
|
187
178
|
};
|
|
188
|
-
},
|
|
189
|
-
const
|
|
190
|
-
return
|
|
179
|
+
}, y = (t, e, r) => {
|
|
180
|
+
const n = O(t, e, r);
|
|
181
|
+
return n.selectedValues ? n.selectedValues : e ? e.split(",").map((i) => u.trimVariablePadding(i)).filter(Boolean) : void 0;
|
|
191
182
|
};
|
|
192
183
|
export {
|
|
193
|
-
|
|
194
|
-
|
|
184
|
+
y as getInteractionDefaultSelectedValues,
|
|
185
|
+
O as getInteractionDefaultValues
|
|
195
186
|
};
|
|
196
187
|
//# sourceMappingURL=interaction-defaults.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction-defaults.es.js","sources":["../../src/lib/interaction-defaults.ts"],"sourcesContent":["import {\n createInteractionParser,\n createVariableExpressionRegex,\n normalizeVariableName,\n INTERACTION_CONTENT_SOURCE,\n} from \"remark-flow\";\n\nexport interface InteractionParseResult {\n buttonTexts?: string[];\n buttonValues?: string[];\n placeholder?: string;\n variableName?: string;\n isMultiSelect?: boolean;\n}\n\nexport interface InteractionDefaultValues {\n buttonText?: string;\n inputText?: string;\n selectedValues?: string[];\n}\n\nexport interface InteractionDefaultResolverParams {\n content?: string | null;\n rawValue?: string | null;\n interactionInfo?: InteractionParseResult | null;\n}\n\nexport type InteractionDefaultResolver = (\n params: InteractionDefaultResolverParams\n) => InteractionDefaultValues | null | undefined;\n\nexport interface InteractionDefaultValueOptions {\n resolveDefaultValues?: InteractionDefaultResolver;\n}\n\ninterface StructuredInteractionPayload {\n buttonText?: unknown;\n inputText?: unknown;\n selectedValues?: unknown;\n}\n\nconst interactionParser = createInteractionParser();\nconst INTERACTION_TAG_PATTERN = /<custom-variable\\b/i;\n// Same definition of where an interaction ends as the parser uses, so an option carrying a\n// `\\]` is read whole instead of being cut at its first bracket. A variable assignment is optional.\nconst INTERACTION_SHORTCODE_PATTERN = new RegExp(\n `\\\\?\\\\[(?:%${createVariableExpressionRegex().source})?(${INTERACTION_CONTENT_SOURCE})\\\\]`\n);\nconst JSON_LIKE_VALUE_PATTERN = /^[\\[{]/;\nconst INTERACTION_VALUE_SEPARATOR_PATTERN = /^[\\s,,\\n]+/;\n\ninterface InteractionOptionCandidate {\n token: string;\n value: string;\n}\n\nconst parseInteractionShortcode = (\n content?: string | null\n): InteractionParseResult | null => {\n if (!content) {\n return null;\n }\n\n const matched = content.match(INTERACTION_SHORTCODE_PATTERN);\n const variableName = matched?.[1]\n ? (normalizeVariableName(matched[1]) ?? undefined)\n : undefined;\n const interactionBody = matched?.[2]?.trim();\n\n if (!interactionBody) {\n return null;\n }\n\n const isMultiSelect = interactionBody.includes(\"||\");\n const separator = isMultiSelect ? \"||\" : \"|\";\n const rawOptions = interactionBody\n .split(separator)\n .map((item) => item.trim())\n .filter(Boolean);\n\n if (!rawOptions.length) {\n return null;\n }\n\n const buttonTexts: string[] = [];\n const buttonValues: string[] = [];\n let placeholder: string | undefined;\n\n rawOptions.forEach((option) => {\n if (option.startsWith(\"...\")) {\n const normalizedPlaceholder = option.replace(/^\\.\\.\\./, \"\").trim();\n if (normalizedPlaceholder) {\n placeholder = normalizedPlaceholder;\n }\n return;\n }\n\n buttonTexts.push(option);\n buttonValues.push(option);\n });\n\n return {\n variableName,\n buttonTexts: buttonTexts.length ? buttonTexts : undefined,\n buttonValues: buttonValues.length ? buttonValues : undefined,\n placeholder,\n isMultiSelect,\n };\n};\n\nconst parseInteractionBlock = (\n content?: string | null\n): InteractionParseResult | null => {\n if (!content) {\n return null;\n }\n\n try {\n return interactionParser.parseToRemarkFormat(\n content\n ) as InteractionParseResult;\n } catch (error) {\n console.warn(\"Failed to parse interaction block\", error);\n }\n\n return parseInteractionShortcode(content);\n};\n\nconst normalizeButtonValue = (\n token: string,\n info: InteractionParseResult\n): { value: string; display?: string } | null => {\n if (!token) {\n return null;\n }\n\n const cleaned = token.trim();\n const buttonValues = info.buttonValues || [];\n const buttonTexts = info.buttonTexts || [];\n const valueIndex = buttonValues.indexOf(cleaned);\n\n if (valueIndex > -1) {\n return {\n value: buttonValues[valueIndex],\n display: buttonTexts[valueIndex],\n };\n }\n\n const textIndex = buttonTexts.indexOf(cleaned);\n\n if (textIndex > -1) {\n return {\n value: buttonValues[textIndex] || buttonTexts[textIndex],\n display: buttonTexts[textIndex],\n };\n }\n\n return null;\n};\n\nconst splitPresetValues = (raw: string) => {\n return raw\n .split(/[,,\\n]/)\n .map((item) => item.trim())\n .filter(Boolean);\n};\n\nconst trimLeadingInteractionSeparators = (raw: string) =>\n raw.replace(INTERACTION_VALUE_SEPARATOR_PATTERN, \"\");\n\nconst buildInteractionOptionCandidates = (\n info: InteractionParseResult\n): InteractionOptionCandidate[] => {\n const buttonValues = info.buttonValues || [];\n const buttonTexts = info.buttonTexts || [];\n const candidates: InteractionOptionCandidate[] = [];\n const seenCandidates = new Set<string>();\n\n buttonValues.forEach((buttonValue, index) => {\n const normalizedValue = `${buttonValue ?? \"\"}`.trim();\n const normalizedText = `${buttonTexts[index] ?? \"\"}`.trim();\n\n [normalizedValue, normalizedText].forEach((token) => {\n if (!token) {\n return;\n }\n\n const candidateKey = `${token}::${normalizedValue || token}`;\n if (seenCandidates.has(candidateKey)) {\n return;\n }\n\n seenCandidates.add(candidateKey);\n candidates.push({\n token,\n value: normalizedValue || token,\n });\n });\n });\n\n return candidates.sort(\n (left, right) => right.token.length - left.token.length\n );\n};\n\nconst matchInteractionOptionPrefix = (\n raw: string,\n info: InteractionParseResult\n): InteractionOptionCandidate | null => {\n const normalizedRaw = trimLeadingInteractionSeparators(raw);\n const candidates = buildInteractionOptionCandidates(info);\n\n for (const candidate of candidates) {\n if (!normalizedRaw.startsWith(candidate.token)) {\n continue;\n }\n\n const trailingChar = normalizedRaw[candidate.token.length];\n if (trailingChar && !/[\\s,,\\n]/.test(trailingChar)) {\n continue;\n }\n\n return candidate;\n }\n\n return null;\n};\n\nconst resolveMultiSelectFallbackDefaults = (\n raw: string,\n info: InteractionParseResult\n): InteractionDefaultValues => {\n const tokens = splitPresetValues(raw);\n\n if (!tokens.length) {\n return {};\n }\n\n const selectedValues: string[] = [];\n const customInputs: string[] = [];\n\n tokens.forEach((token) => {\n const mapped = normalizeButtonValue(token, info);\n\n if (mapped) {\n selectedValues.push(mapped.value);\n return;\n }\n\n if (info.placeholder) {\n customInputs.push(token);\n return;\n }\n\n selectedValues.push(token);\n });\n\n return {\n selectedValues: selectedValues.length ? selectedValues : undefined,\n inputText: customInputs.length ? customInputs.join(\", \") : undefined,\n };\n};\n\nconst resolveMultiSelectInteractionDefaults = (\n raw: string,\n info: InteractionParseResult\n): InteractionDefaultValues => {\n const selectedValues: string[] = [];\n let remainingRaw = raw.trim();\n\n // Prefer option-aware prefix matching before delimiter splitting so\n // option labels that contain commas can still round-trip correctly.\n while (remainingRaw) {\n const matchedCandidate = matchInteractionOptionPrefix(remainingRaw, info);\n\n if (!matchedCandidate) {\n break;\n }\n\n selectedValues.push(matchedCandidate.value);\n const normalizedRemainingRaw =\n trimLeadingInteractionSeparators(remainingRaw);\n remainingRaw = trimLeadingInteractionSeparators(\n normalizedRemainingRaw.slice(matchedCandidate.token.length)\n );\n }\n\n if (selectedValues.length > 0) {\n return {\n selectedValues,\n inputText:\n info.placeholder && remainingRaw.trim()\n ? remainingRaw.trim()\n : undefined,\n };\n }\n\n const fallbackDefaults = resolveMultiSelectFallbackDefaults(raw, info);\n\n if (fallbackDefaults.selectedValues?.length) {\n return fallbackDefaults;\n }\n\n if (info.placeholder) {\n return {\n inputText: raw.trim(),\n };\n }\n\n return fallbackDefaults;\n};\n\nconst normalizeStructuredInteractionDefaults = (\n payload?: StructuredInteractionPayload | null\n): InteractionDefaultValues | null => {\n if (!payload || Array.isArray(payload)) {\n return null;\n }\n\n const selectedValues = Array.isArray(payload.selectedValues)\n ? payload.selectedValues\n .map((item) => `${item ?? \"\"}`.trim())\n .filter(Boolean)\n : undefined;\n const buttonText = `${payload.buttonText ?? \"\"}`.trim();\n const inputText =\n typeof payload.inputText === \"string\" ? payload.inputText : undefined;\n\n if (!selectedValues?.length && !buttonText && !inputText) {\n return null;\n }\n\n return {\n buttonText: buttonText || undefined,\n inputText,\n selectedValues: selectedValues?.length ? selectedValues : undefined,\n };\n};\n\nconst parseStructuredInteractionDefaults = (rawValue?: string | null) => {\n if (!rawValue) {\n return null;\n }\n\n if (!JSON_LIKE_VALUE_PATTERN.test(rawValue.trim())) {\n return null;\n }\n\n try {\n const parsed = JSON.parse(rawValue) as StructuredInteractionPayload;\n return normalizeStructuredInteractionDefaults(parsed);\n } catch {\n return null;\n }\n};\n\nconst hasPotentialInteractionBlock = (content?: string | null) =>\n Boolean(\n content &&\n (INTERACTION_TAG_PATTERN.test(content) ||\n INTERACTION_SHORTCODE_PATTERN.test(content))\n );\n\nconst resolveCustomInteractionDefaults = (\n content?: string | null,\n rawValue?: string | null,\n interactionInfo?: InteractionParseResult | null,\n options?: InteractionDefaultValueOptions\n) => {\n return (\n options?.resolveDefaultValues?.({\n content,\n rawValue,\n interactionInfo,\n }) ?? null\n );\n};\n\nexport const getInteractionDefaultValues = (\n content?: string | null,\n rawValue?: string | null,\n options?: InteractionDefaultValueOptions\n): InteractionDefaultValues => {\n const normalized = rawValue?.toString().trim();\n\n if (!normalized) {\n return {};\n }\n\n const structuredDefaults = parseStructuredInteractionDefaults(normalized);\n\n if (structuredDefaults) {\n return structuredDefaults;\n }\n\n const customDefaults = resolveCustomInteractionDefaults(\n content,\n normalized,\n null,\n options\n );\n\n if (customDefaults) {\n return customDefaults;\n }\n\n if (!hasPotentialInteractionBlock(content)) {\n return {\n buttonText: normalized,\n inputText: normalized,\n };\n }\n\n const interactionInfo = parseInteractionBlock(content);\n const customDefaultsWithInteraction = resolveCustomInteractionDefaults(\n content,\n normalized,\n interactionInfo,\n options\n );\n\n if (customDefaultsWithInteraction) {\n return customDefaultsWithInteraction;\n }\n\n if (!interactionInfo) {\n return {\n buttonText: normalized,\n inputText: normalized,\n };\n }\n\n if (interactionInfo.isMultiSelect) {\n return resolveMultiSelectInteractionDefaults(normalized, interactionInfo);\n }\n\n const mapped = normalizeButtonValue(normalized, interactionInfo);\n\n if (mapped) {\n return {\n buttonText: mapped.value || mapped.display || normalized,\n };\n }\n\n if (interactionInfo.placeholder) {\n return {\n inputText: normalized,\n };\n }\n\n return {\n buttonText: normalized,\n inputText: normalized,\n };\n};\n\nexport const getInteractionDefaultSelectedValues = (\n content?: string | null,\n rawValue?: string | null,\n options?: InteractionDefaultValueOptions\n) => {\n const defaults = getInteractionDefaultValues(content, rawValue, options);\n\n if (defaults.selectedValues) {\n return defaults.selectedValues;\n }\n\n return rawValue\n ? rawValue\n .split(\",\")\n .map((value) => value.trim())\n .filter(Boolean)\n : undefined;\n};\n"],"names":["interactionParser","createInteractionParser","INTERACTION_TAG_PATTERN","INTERACTION_SHORTCODE_PATTERN","createVariableExpressionRegex","INTERACTION_CONTENT_SOURCE","JSON_LIKE_VALUE_PATTERN","INTERACTION_VALUE_SEPARATOR_PATTERN","parseInteractionShortcode","content","matched","variableName","normalizeVariableName","interactionBody","isMultiSelect","separator","rawOptions","item","buttonTexts","buttonValues","placeholder","option","normalizedPlaceholder","parseInteractionBlock","error","normalizeButtonValue","token","info","cleaned","valueIndex","textIndex","splitPresetValues","raw","trimLeadingInteractionSeparators","buildInteractionOptionCandidates","candidates","seenCandidates","buttonValue","index","normalizedValue","normalizedText","candidateKey","left","right","matchInteractionOptionPrefix","normalizedRaw","candidate","trailingChar","resolveMultiSelectFallbackDefaults","tokens","selectedValues","customInputs","mapped","resolveMultiSelectInteractionDefaults","remainingRaw","matchedCandidate","normalizedRemainingRaw","fallbackDefaults","normalizeStructuredInteractionDefaults","payload","buttonText","inputText","parseStructuredInteractionDefaults","rawValue","parsed","hasPotentialInteractionBlock","resolveCustomInteractionDefaults","interactionInfo","options","getInteractionDefaultValues","normalized","structuredDefaults","customDefaults","customDefaultsWithInteraction","getInteractionDefaultSelectedValues","defaults","value"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interaction-defaults.es.js","sources":["../../src/lib/interaction-defaults.ts"],"sourcesContent":["import {\n createInteractionParser,\n trimVariablePadding,\n INTERACTION_CONTENT_SOURCE,\n} from \"remark-flow\";\nimport type { Node } from \"unist\";\nimport { getMarkdownSourceAnalysis } from \"../components/ContentRender/utils/inline-code-ranges\";\n\nexport interface InteractionParseResult {\n buttonTexts?: string[];\n buttonValues?: string[];\n placeholder?: string;\n variableName?: string;\n isMultiSelect?: boolean;\n}\n\nexport interface InteractionDefaultValues {\n buttonText?: string;\n inputText?: string;\n selectedValues?: string[];\n}\n\nexport interface InteractionDefaultResolverParams {\n content?: string | null;\n rawValue?: string | null;\n interactionInfo?: InteractionParseResult | null;\n}\n\nexport type InteractionDefaultResolver = (\n params: InteractionDefaultResolverParams\n) => InteractionDefaultValues | null | undefined;\n\nexport interface InteractionDefaultValueOptions {\n resolveDefaultValues?: InteractionDefaultResolver;\n}\n\ninterface StructuredInteractionPayload {\n buttonText?: unknown;\n inputText?: unknown;\n selectedValues?: unknown;\n}\n\nconst interactionParser = createInteractionParser();\nconst INTERACTION_TAG_PATTERN = /<custom-variable\\b/i;\n// Same definition of where an interaction ends as the parser uses, so an option carrying a\n// `\\]` is read whole instead of being cut at its first bracket. A variable assignment is optional.\nconst INTERACTION_SHORTCODE_PATTERN = new RegExp(\n `\\\\?\\\\[(${INTERACTION_CONTENT_SOURCE})\\\\](?!\\\\()`\n);\nconst JSON_LIKE_VALUE_PATTERN = /^[\\[{]/;\n\ninterface InteractionOptionCandidate {\n token: string;\n value: string;\n}\n\nconst findInteractionSource = (\n node: Node & { value?: unknown; children?: readonly Node[] }\n): string | null => {\n if (node.type === \"flowInteraction\" && \"value\" in node)\n return typeof node.value === \"string\" ? node.value : null;\n if (node.children) {\n for (const child of node.children) {\n const source = findInteractionSource(child);\n if (source !== null) return source;\n }\n }\n return null;\n};\n\nconst parseInteractionBlock = (\n content?: string | null\n): InteractionParseResult | null => {\n if (!content) {\n return null;\n }\n\n try {\n // Read a grammar-owned interaction, so a syntax example cannot supply its key\n // or swallow a later real control. Keep the existing serialized-tag path.\n const source =\n findInteractionSource(getMarkdownSourceAnalysis(content).tree) ??\n (INTERACTION_TAG_PATTERN.test(content) ? content : null);\n if (source === null) return null;\n // The compatibility formatter turns invalid source into a text-input placeholder.\n // Defaults must retain plain replay behavior instead of inventing an interaction.\n if (interactionParser.parse(source).error) return null;\n return interactionParser.parseToRemarkFormat(\n source\n ) as InteractionParseResult;\n } catch (error) {\n console.warn(\"Failed to parse interaction block\", error);\n }\n\n return null;\n};\n\nconst normalizeButtonValue = (\n token: string,\n info: InteractionParseResult\n): { value: string; display?: string } | null => {\n if (!token) {\n return null;\n }\n\n const cleaned = trimVariablePadding(token);\n const buttonValues = info.buttonValues || [];\n const buttonTexts = info.buttonTexts || [];\n const valueIndex = buttonValues.indexOf(cleaned);\n\n if (valueIndex > -1) {\n return {\n value: buttonValues[valueIndex],\n display: buttonTexts[valueIndex],\n };\n }\n\n const textIndex = buttonTexts.indexOf(cleaned);\n\n if (textIndex > -1) {\n return {\n value: buttonValues[textIndex] || buttonTexts[textIndex],\n display: buttonTexts[textIndex],\n };\n }\n\n return null;\n};\n\nconst splitPresetValues = (raw: string) => {\n return raw\n .split(/[,,\\n]/)\n .map((item) => trimVariablePadding(item))\n .filter(Boolean);\n};\n\nconst trimLeadingInteractionSeparators = (raw: string) => {\n let index = 0;\n while (\n index < raw.length &&\n (raw[index] === \",\" ||\n raw[index] === \",\" ||\n trimVariablePadding(raw[index]) === \"\")\n )\n index += 1;\n return raw.slice(index);\n};\n\nconst buildInteractionOptionCandidates = (\n info: InteractionParseResult\n): InteractionOptionCandidate[] => {\n const buttonValues = info.buttonValues || [];\n const buttonTexts = info.buttonTexts || [];\n const candidates: InteractionOptionCandidate[] = [];\n const seenCandidates = new Set<string>();\n\n buttonValues.forEach((buttonValue, index) => {\n const normalizedValue = trimVariablePadding(`${buttonValue ?? \"\"}`);\n const normalizedText = trimVariablePadding(`${buttonTexts[index] ?? \"\"}`);\n\n [normalizedValue, normalizedText].forEach((token) => {\n if (!token) {\n return;\n }\n\n const candidateKey = `${token}::${normalizedValue || token}`;\n if (seenCandidates.has(candidateKey)) {\n return;\n }\n\n seenCandidates.add(candidateKey);\n candidates.push({\n token,\n value: normalizedValue || token,\n });\n });\n });\n\n return candidates.sort(\n (left, right) => right.token.length - left.token.length\n );\n};\n\nconst matchInteractionOptionPrefix = (\n raw: string,\n info: InteractionParseResult\n): InteractionOptionCandidate | null => {\n const normalizedRaw = trimLeadingInteractionSeparators(raw);\n const candidates = buildInteractionOptionCandidates(info);\n\n for (const candidate of candidates) {\n if (!normalizedRaw.startsWith(candidate.token)) {\n continue;\n }\n\n const trailingChar = normalizedRaw[candidate.token.length];\n if (\n trailingChar &&\n trailingChar !== \",\" &&\n trailingChar !== \",\" &&\n trimVariablePadding(trailingChar) !== \"\"\n ) {\n continue;\n }\n\n return candidate;\n }\n\n return null;\n};\n\nconst resolveMultiSelectFallbackDefaults = (\n raw: string,\n info: InteractionParseResult\n): InteractionDefaultValues => {\n const tokens = splitPresetValues(raw);\n\n if (!tokens.length) {\n return {};\n }\n\n const selectedValues: string[] = [];\n const customInputs: string[] = [];\n\n tokens.forEach((token) => {\n const mapped = normalizeButtonValue(token, info);\n\n if (mapped) {\n selectedValues.push(mapped.value);\n return;\n }\n\n if (info.placeholder) {\n customInputs.push(token);\n return;\n }\n\n selectedValues.push(token);\n });\n\n return {\n selectedValues: selectedValues.length ? selectedValues : undefined,\n inputText: customInputs.length ? customInputs.join(\", \") : undefined,\n };\n};\n\nconst resolveMultiSelectInteractionDefaults = (\n raw: string,\n info: InteractionParseResult\n): InteractionDefaultValues => {\n const selectedValues: string[] = [];\n let remainingRaw = trimVariablePadding(raw);\n\n // Prefer option-aware prefix matching before delimiter splitting so\n // option labels that contain commas can still round-trip correctly.\n while (remainingRaw) {\n const matchedCandidate = matchInteractionOptionPrefix(remainingRaw, info);\n\n if (!matchedCandidate) {\n break;\n }\n\n selectedValues.push(matchedCandidate.value);\n const normalizedRemainingRaw =\n trimLeadingInteractionSeparators(remainingRaw);\n remainingRaw = trimLeadingInteractionSeparators(\n normalizedRemainingRaw.slice(matchedCandidate.token.length)\n );\n }\n\n if (selectedValues.length > 0) {\n return {\n selectedValues,\n inputText:\n info.placeholder && remainingRaw.trim()\n ? remainingRaw.trim()\n : undefined,\n };\n }\n\n const fallbackDefaults = resolveMultiSelectFallbackDefaults(raw, info);\n\n if (fallbackDefaults.selectedValues?.length) {\n return fallbackDefaults;\n }\n\n if (info.placeholder) {\n return {\n inputText: raw.trim(),\n };\n }\n\n return fallbackDefaults;\n};\n\nconst normalizeStructuredInteractionDefaults = (\n payload?: StructuredInteractionPayload | null\n): InteractionDefaultValues | null => {\n if (!payload || Array.isArray(payload)) {\n return null;\n }\n\n const selectedValues = Array.isArray(payload.selectedValues)\n ? payload.selectedValues\n .map((item) => trimVariablePadding(`${item ?? \"\"}`))\n .filter(Boolean)\n : undefined;\n const buttonText = trimVariablePadding(`${payload.buttonText ?? \"\"}`);\n const inputText =\n typeof payload.inputText === \"string\" ? payload.inputText : undefined;\n\n if (!selectedValues?.length && !buttonText && !inputText) {\n return null;\n }\n\n return {\n buttonText: buttonText || undefined,\n inputText,\n selectedValues: selectedValues?.length ? selectedValues : undefined,\n };\n};\n\nconst parseStructuredInteractionDefaults = (rawValue?: string | null) => {\n if (!rawValue) {\n return null;\n }\n\n if (!JSON_LIKE_VALUE_PATTERN.test(trimVariablePadding(rawValue))) {\n return null;\n }\n\n try {\n const parsed = JSON.parse(rawValue) as StructuredInteractionPayload;\n return normalizeStructuredInteractionDefaults(parsed);\n } catch {\n return null;\n }\n};\n\nconst hasPotentialInteractionBlock = (content?: string | null) =>\n Boolean(\n content &&\n (INTERACTION_TAG_PATTERN.test(content) ||\n INTERACTION_SHORTCODE_PATTERN.test(content))\n );\n\nconst resolveCustomInteractionDefaults = (\n content?: string | null,\n rawValue?: string | null,\n interactionInfo?: InteractionParseResult | null,\n options?: InteractionDefaultValueOptions\n) => {\n return (\n options?.resolveDefaultValues?.({\n content,\n rawValue,\n interactionInfo,\n }) ?? null\n );\n};\n\nexport const getInteractionDefaultValues = (\n content?: string | null,\n rawValue?: string | null,\n options?: InteractionDefaultValueOptions\n): InteractionDefaultValues => {\n const normalized =\n rawValue === null || rawValue === undefined\n ? undefined\n : trimVariablePadding(rawValue.toString());\n\n if (!normalized) {\n return {};\n }\n\n const structuredDefaults = parseStructuredInteractionDefaults(normalized);\n\n if (structuredDefaults) {\n return structuredDefaults;\n }\n\n const customDefaults = resolveCustomInteractionDefaults(\n content,\n normalized,\n null,\n options\n );\n\n if (customDefaults) {\n return customDefaults;\n }\n\n if (!hasPotentialInteractionBlock(content)) {\n return {\n buttonText: normalized,\n inputText: normalized,\n };\n }\n\n const interactionInfo = parseInteractionBlock(content);\n const customDefaultsWithInteraction = resolveCustomInteractionDefaults(\n content,\n normalized,\n interactionInfo,\n options\n );\n\n if (customDefaultsWithInteraction) {\n return customDefaultsWithInteraction;\n }\n\n if (!interactionInfo) {\n return {\n buttonText: normalized,\n inputText: normalized,\n };\n }\n\n if (interactionInfo.isMultiSelect) {\n return resolveMultiSelectInteractionDefaults(normalized, interactionInfo);\n }\n\n const mapped = normalizeButtonValue(normalized, interactionInfo);\n\n if (mapped) {\n return {\n buttonText: mapped.value || mapped.display || normalized,\n };\n }\n\n if (interactionInfo.placeholder) {\n return {\n inputText: normalized,\n };\n }\n\n return {\n buttonText: normalized,\n inputText: normalized,\n };\n};\n\nexport const getInteractionDefaultSelectedValues = (\n content?: string | null,\n rawValue?: string | null,\n options?: InteractionDefaultValueOptions\n) => {\n const defaults = getInteractionDefaultValues(content, rawValue, options);\n\n if (defaults.selectedValues) {\n return defaults.selectedValues;\n }\n\n return rawValue\n ? rawValue\n .split(\",\")\n .map((value) => trimVariablePadding(value))\n .filter(Boolean)\n : undefined;\n};\n"],"names":["interactionParser","createInteractionParser","INTERACTION_TAG_PATTERN","INTERACTION_SHORTCODE_PATTERN","INTERACTION_CONTENT_SOURCE","JSON_LIKE_VALUE_PATTERN","findInteractionSource","node","child","source","parseInteractionBlock","content","getMarkdownSourceAnalysis","error","normalizeButtonValue","token","info","cleaned","trimVariablePadding","buttonValues","buttonTexts","valueIndex","textIndex","splitPresetValues","raw","item","trimLeadingInteractionSeparators","index","buildInteractionOptionCandidates","candidates","seenCandidates","buttonValue","normalizedValue","normalizedText","candidateKey","left","right","matchInteractionOptionPrefix","normalizedRaw","candidate","trailingChar","resolveMultiSelectFallbackDefaults","tokens","selectedValues","customInputs","mapped","resolveMultiSelectInteractionDefaults","remainingRaw","matchedCandidate","normalizedRemainingRaw","fallbackDefaults","normalizeStructuredInteractionDefaults","payload","buttonText","inputText","parseStructuredInteractionDefaults","rawValue","parsed","hasPotentialInteractionBlock","resolveCustomInteractionDefaults","interactionInfo","options","getInteractionDefaultValues","normalized","structuredDefaults","customDefaults","customDefaultsWithInteraction","getInteractionDefaultSelectedValues","defaults","value"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const H=require("../../@babel/runtime/helpers/esm/objectSpread2.cjs"),te=require("../../@babel/runtime/helpers/esm/extends.cjs"),i=require("../../@babel/runtime/helpers/esm/defineProperty.cjs"),oe=require("../../@babel/runtime/helpers/esm/typeof.cjs"),u=require("../../../_virtual/
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const H=require("../../@babel/runtime/helpers/esm/objectSpread2.cjs"),te=require("../../@babel/runtime/helpers/esm/extends.cjs"),i=require("../../@babel/runtime/helpers/esm/defineProperty.cjs"),oe=require("../../@babel/runtime/helpers/esm/typeof.cjs"),u=require("../../../_virtual/index5.cjs"),n=require("react"),T=require("./utils/commonUtils.cjs");var de=n.forwardRef(function(e,U){var p,x,y,$=e.inputElement,N=e.children,r=e.prefixCls,k=e.prefix,f=e.suffix,C=e.addonBefore,W=e.addonAfter,z=e.className,J=e.style,m=e.disabled,I=e.readOnly,K=e.focused,E=e.triggerFocus,d=e.allowClear,b=e.value,h=e.handleReset,L=e.hidden,t=e.classes,a=e.classNames,g=e.dataAttrs,o=e.styles,l=e.components,w=e.onClear,M=N??$,Q=l?.affixWrapper||"span",V=l?.groupWrapper||"span",X=l?.wrapper||"span",S=l?.groupAddon||"span",A=n.useRef(null),Y=function(s){var q;(q=A.current)!==null&&q!==void 0&&q.contains(s.target)&&E?.()},j=T.hasPrefixSuffix(e),c=n.cloneElement(M,{value:b,className:u.default((p=M.props)===null||p===void 0?void 0:p.className,!j&&a?.variant)||null}),B=n.useRef(null);if(n.useImperativeHandle(U,function(){return{nativeElement:B.current||A.current}}),j){var D=null;if(d){var Z=!m&&!I&&b,R="".concat(r,"-clear-icon"),P=oe.default(d)==="object"&&d!==null&&d!==void 0&&d.clearIcon?d.clearIcon:"✖";D=n.createElement("button",{type:"button",tabIndex:-1,onClick:function(s){h?.(s),w?.()},onMouseDown:function(s){return s.preventDefault()},className:u.default(R,i.default(i.default({},"".concat(R,"-hidden"),!Z),"".concat(R,"-has-suffix"),!!f))},P)}var v="".concat(r,"-affix-wrapper"),ee=u.default(v,i.default(i.default(i.default(i.default(i.default({},"".concat(r,"-disabled"),m),"".concat(v,"-disabled"),m),"".concat(v,"-focused"),K),"".concat(v,"-readonly"),I),"".concat(v,"-input-with-clear-btn"),f&&d&&b),t?.affixWrapper,a?.affixWrapper,a?.variant),ae=(f||d)&&n.createElement("span",{className:u.default("".concat(r,"-suffix"),a?.suffix),style:o?.suffix},D,f);c=n.createElement(Q,te.default({className:ee,style:o?.affixWrapper,onClick:Y},g?.affixWrapper,{ref:A}),k&&n.createElement("span",{className:u.default("".concat(r,"-prefix"),a?.prefix),style:o?.prefix},k),c,ae)}if(T.hasAddon(e)){var _="".concat(r,"-group"),O="".concat(_,"-addon"),F="".concat(_,"-wrapper"),ne=u.default("".concat(r,"-wrapper"),_,t?.wrapper,a?.wrapper),le=u.default(F,i.default({},"".concat(F,"-disabled"),m),t?.group,a?.groupWrapper);c=n.createElement(V,{className:le,ref:B},n.createElement(X,{className:ne},C&&n.createElement(S,{className:O},C),c,W&&n.createElement(S,{className:O},W)))}return n.cloneElement(c,{className:u.default((x=c.props)===null||x===void 0?void 0:x.className,z)||null,style:H.default(H.default({},(y=c.props)===null||y===void 0?void 0:y.style),J),hidden:L})});exports.default=de;
|
|
2
2
|
//# sourceMappingURL=BaseInput.cjs.map
|
|
@@ -2,7 +2,7 @@ import $ from "../../@babel/runtime/helpers/esm/objectSpread2.es.js";
|
|
|
2
2
|
import oe from "../../@babel/runtime/helpers/esm/extends.es.js";
|
|
3
3
|
import r from "../../@babel/runtime/helpers/esm/defineProperty.es.js";
|
|
4
4
|
import te from "../../@babel/runtime/helpers/esm/typeof.es.js";
|
|
5
|
-
import d from "../../../_virtual/index.
|
|
5
|
+
import d from "../../../_virtual/index.es5.js";
|
|
6
6
|
import l, { useRef as q, cloneElement as ie } from "react";
|
|
7
7
|
import { hasPrefixSuffix as re, hasAddon as de } from "./utils/commonUtils.es.js";
|
|
8
8
|
var xe = /* @__PURE__ */ l.forwardRef(function(e, z) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const Y=require("../../@babel/runtime/helpers/esm/extends.cjs"),F=require("../../@babel/runtime/helpers/esm/defineProperty.cjs"),N=require("../../@babel/runtime/helpers/esm/objectSpread2.cjs"),J=require("../../@babel/runtime/helpers/esm/typeof.cjs"),f=require("../../@babel/runtime/helpers/esm/slicedToArray.cjs"),K=require("../../@babel/runtime/helpers/esm/objectWithoutProperties.cjs"),Q=require("../../../_virtual/
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const Y=require("../../@babel/runtime/helpers/esm/extends.cjs"),F=require("../../@babel/runtime/helpers/esm/defineProperty.cjs"),N=require("../../@babel/runtime/helpers/esm/objectSpread2.cjs"),J=require("../../@babel/runtime/helpers/esm/typeof.cjs"),f=require("../../@babel/runtime/helpers/esm/slicedToArray.cjs"),K=require("../../@babel/runtime/helpers/esm/objectWithoutProperties.cjs"),Q=require("../../../_virtual/index5.cjs"),ee=require("../../rc-resize-observer/es/index.cjs"),j=require("../../rc-util/es/hooks/useLayoutEffect.cjs"),te=require("../../rc-util/es/hooks/useMergedState.cjs"),w=require("../../rc-util/es/raf.cjs"),ae=require("react"),re=require("./calculateNodeHeight.cjs");function ne(n){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const e in n)if(e!=="default"){const s=Object.getOwnPropertyDescriptor(n,e);Object.defineProperty(o,e,s.get?s:{enumerable:!0,get:()=>n[e]})}}return o.default=n,Object.freeze(o)}const t=ne(ae);var ue=["prefixCls","defaultValue","value","autoSize","onResize","className","style","disabled","onChange","onInternalAutoSize"],g=0,m=1,_=2,le=t.forwardRef(function(n,o){var e=n,s=e.prefixCls,O=e.defaultValue,p=e.value,a=e.autoSize,i=e.onResize,T=e.className,$=e.style,b=e.disabled,c=e.onChange,d=e.onInternalAutoSize,P=K.default(e,ue),V=te.default(O,{value:p,postState:function(r){return r??""}}),y=f.default(V,2),D=y[0],Z=y[1],H=function(r){Z(r.target.value),c?.(r)},S=t.useRef();t.useImperativeHandle(o,function(){return{textArea:S.current}});var L=t.useMemo(function(){return a&&J.default(a)==="object"?[a.minRows,a.maxRows]:[]},[a]),E=f.default(L,2),q=E[0],x=E[1],R=!!a,k=t.useState(_),A=f.default(k,2),u=A[0],v=A[1],B=t.useState(),I=f.default(B,2),G=I[0],U=I[1],M=function(){v(g),process.env.NODE_ENV==="test"&&d?.()};j.default(function(){R&&M()},[p,q,x,R]),j.default(function(){if(u===g)v(m);else if(u===m){var l=re.default(S.current,!1,q,x);v(_),U(l)}},[u]);var h=t.useRef(),C=function(){w.default.cancel(h.current)},W=function(r){u===_&&(i?.(r),a&&(C(),h.current=w.default(function(){M()})))};t.useEffect(function(){return C},[]);var X=R?G:null,z=N.default(N.default({},$),X);return(u===g||u===m)&&(z.overflowY="hidden",z.overflowX="hidden"),t.createElement(ee.default,{onResize:W,disabled:!(a||i)},t.createElement("textarea",Y.default({},P,{ref:S,style:z,className:Q.default(s,T,F.default({},"".concat(s,"-disabled"),b)),disabled:b,value:D,onChange:H})))});exports.default=le;
|
|
2
2
|
//# sourceMappingURL=ResizableTextArea.cjs.map
|
|
@@ -4,7 +4,7 @@ import w from "../../@babel/runtime/helpers/esm/objectSpread2.es.js";
|
|
|
4
4
|
import J from "../../@babel/runtime/helpers/esm/typeof.es.js";
|
|
5
5
|
import s from "../../@babel/runtime/helpers/esm/slicedToArray.es.js";
|
|
6
6
|
import K from "../../@babel/runtime/helpers/esm/objectWithoutProperties.es.js";
|
|
7
|
-
import Q from "../../../_virtual/index.
|
|
7
|
+
import Q from "../../../_virtual/index.es5.js";
|
|
8
8
|
import ee from "../../rc-resize-observer/es/index.es.js";
|
|
9
9
|
import M from "../../rc-util/es/hooks/useLayoutEffect.es.js";
|
|
10
10
|
import te from "../../rc-util/es/hooks/useMergedState.es.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const be=require("../../@babel/runtime/helpers/esm/extends.cjs"),X=require("../../@babel/runtime/helpers/esm/defineProperty.cjs"),d=require("../../@babel/runtime/helpers/esm/objectSpread2.cjs"),ze=require("../../@babel/runtime/helpers/esm/toConsumableArray.cjs"),x=require("../../@babel/runtime/helpers/esm/slicedToArray.cjs"),qe=require("../../@babel/runtime/helpers/esm/objectWithoutProperties.cjs"),g=require("../../../_virtual/
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const be=require("../../@babel/runtime/helpers/esm/extends.cjs"),X=require("../../@babel/runtime/helpers/esm/defineProperty.cjs"),d=require("../../@babel/runtime/helpers/esm/objectSpread2.cjs"),ze=require("../../@babel/runtime/helpers/esm/toConsumableArray.cjs"),x=require("../../@babel/runtime/helpers/esm/slicedToArray.cjs"),qe=require("../../@babel/runtime/helpers/esm/objectWithoutProperties.cjs"),g=require("../../../_virtual/index5.cjs"),Te=require("../../rc-input/es/BaseInput.cjs"),Ae=require("../../rc-util/es/hooks/useMergedState.cjs"),n=require("react"),Fe=require("../../rc-input/es/hooks/useCount.cjs"),Y=require("../../rc-input/es/utils/commonUtils.cjs"),Ne=require("./ResizableTextArea.cjs");var Oe=["defaultValue","value","onFocus","onBlur","onChange","allowClear","maxLength","onCompositionStart","onCompositionEnd","suffix","prefixCls","showCount","count","className","style","disabled","hidden","classNames","styles","onResize","onClear","onPressEnter","readOnly","autoSize","onKeyDown"],$e=n.forwardRef(function(t,Z){var C,B=t.defaultValue,_=t.value,p=t.onFocus,y=t.onBlur,L=t.onChange,R=t.allowClear,M=t.maxLength,S=t.onCompositionStart,w=t.onCompositionEnd,ee=t.suffix,P=t.prefixCls,s=P===void 0?"rc-textarea":P,E=t.showCount,te=t.count,ae=t.className,v=t.style,m=t.disabled,ne=t.hidden,l=t.classNames,i=t.styles,b=t.onResize,oe=t.onClear,D=t.onPressEnter,K=t.readOnly,V=t.autoSize,z=t.onKeyDown,le=qe.default(t,Oe),re=Ae.default(B,{value:_,defaultValue:B}),W=x.default(re,2),q=W[0],j=W[1],T=q==null?"":String(q),ue=n.useState(!1),k=x.default(ue,2),se=k[0],A=k[1],F=n.useRef(!1),ie=n.useState(null),H=x.default(ie,2),de=H[0],ce=H[1],U=n.useRef(null),N=n.useRef(null),r=function(){var e;return(e=N.current)===null||e===void 0?void 0:e.textArea},G=function(){r().focus()};n.useImperativeHandle(Z,function(){var a;return{resizableTextArea:N.current,focus:G,blur:function(){r().blur()},nativeElement:((a=U.current)===null||a===void 0?void 0:a.nativeElement)||r()}}),n.useEffect(function(){A(function(a){return!m&&a})},[m]);var fe=n.useState(null),J=x.default(fe,2),O=J[0],ve=J[1];n.useEffect(function(){if(O){var a;(a=r()).setSelectionRange.apply(a,ze.default(O))}},[O]);var o=Fe.default(te,E),c=(C=o.max)!==null&&C!==void 0?C:M,me=Number(c)>0,$=o.strategy(T),he=!!c&&$>c,Q=function(e,u){var h=u;!F.current&&o.exceedFormatter&&o.max&&o.strategy(u)>o.max&&(h=o.exceedFormatter(u,{max:o.max}),u!==h&&ve([r().selectionStart||0,r().selectionEnd||0])),j(h),Y.resolveOnChange(e.currentTarget,e,L,h)},xe=function(e){F.current=!0,S?.(e)},ge=function(e){F.current=!1,Q(e,e.currentTarget.value),w?.(e)},Ce=function(e){Q(e,e.target.value)},pe=function(e){e.key==="Enter"&&D&&D(e),z?.(e)},ye=function(e){A(!0),p?.(e)},Re=function(e){A(!1),y?.(e)},Se=function(e){j(""),G(),Y.resolveOnChange(r(),e,L)},I=ee,f;o.show&&(o.showFormatter?f=o.showFormatter({value:T,count:$,maxLength:c}):f="".concat($).concat(me?" / ".concat(c):""),I=n.createElement(n.Fragment,null,I,n.createElement("span",{className:g.default("".concat(s,"-data-count"),l?.count),style:i?.count},f)));var we=function(e){var u;b?.(e),(u=r())!==null&&u!==void 0&&u.style.height&&ce(!0)},Ee=!V&&!E&&!R;return n.createElement(Te.default,{ref:U,value:T,allowClear:R,handleReset:Se,suffix:I,prefixCls:s,classNames:d.default(d.default({},l),{},{affixWrapper:g.default(l?.affixWrapper,X.default(X.default({},"".concat(s,"-show-count"),E),"".concat(s,"-textarea-allow-clear"),R))}),disabled:m,focused:se,className:g.default(ae,he&&"".concat(s,"-out-of-range")),style:d.default(d.default({},v),de&&!Ee?{height:"auto"}:{}),dataAttrs:{affixWrapper:{"data-count":typeof f=="string"?f:void 0}},hidden:ne,readOnly:K,onClear:oe},n.createElement(Ne.default,be.default({},le,{autoSize:V,maxLength:M,onKeyDown:pe,onChange:Ce,onFocus:ye,onBlur:Re,onCompositionStart:xe,onCompositionEnd:ge,className:g.default(l?.textarea),style:d.default(d.default({},i?.textarea),{},{resize:v?.resize}),disabled:m,prefixCls:s,onResize:we,ref:N,readOnly:K})))});exports.default=$e;
|
|
2
2
|
//# sourceMappingURL=TextArea.cjs.map
|
|
@@ -4,7 +4,7 @@ import d from "../../@babel/runtime/helpers/esm/objectSpread2.es.js";
|
|
|
4
4
|
import Ae from "../../@babel/runtime/helpers/esm/toConsumableArray.es.js";
|
|
5
5
|
import x from "../../@babel/runtime/helpers/esm/slicedToArray.es.js";
|
|
6
6
|
import Fe from "../../@babel/runtime/helpers/esm/objectWithoutProperties.es.js";
|
|
7
|
-
import h from "../../../_virtual/index.
|
|
7
|
+
import h from "../../../_virtual/index.es5.js";
|
|
8
8
|
import Ne from "../../rc-input/es/BaseInput.es.js";
|
|
9
9
|
import Te from "../../rc-util/es/hooks/useMergedState.es.js";
|
|
10
10
|
import o, { useRef as Y, useImperativeHandle as $e, useEffect as Ie } from "react";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./TextArea.cjs");require("../../../_virtual/
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./TextArea.cjs");require("../../../_virtual/index5.cjs");require("../../rc-resize-observer/es/index.cjs");require("../../rc-util/es/hooks/useLayoutEffect.cjs");require("react");require("../../rc-util/es/raf.cjs");exports.default=e.default;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
2
|
-
`,1)[0],c=(0,
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../../_virtual/escaping.cjs"),A=require("./variable-marker.cjs");var o;function U(){return o||(o=1,(function(l){Object.defineProperty(l,"__esModule",{value:!0}),l.readDocumentInteraction=l.readInteraction=l.INTERACTION_CONTENT_SOURCE=l.splitOnEllipsis=l.splitOnSingleUnescapedPipe=l.splitUnescaped=l.findUnescaped=l.unescapeInteractionText=l.escapeInteractionText=l.isEscape=l.ESCAPABLE=void 0;const u=A.__require(),r=(n,i)=>n.startsWith("{{",i)?(0,u.readVariableMarker)(n,i)?.end??n.length:null;l.ESCAPABLE="|/.]";const f=(n,i)=>i+1<n.length&&n[i]==="\\"&&l.ESCAPABLE.includes(n[i+1]);l.isEscape=f;const E=n=>{let i="",c=0;for(;c<n.length;){const e=r(n,c);if(e!==null){i+=n.slice(c,e),c=e;continue}const s=n[c];if(s==="."){let a=0;for(;n[c+a]===".";)a+=1;i+=a>=3?"\\.".repeat(a):".".repeat(a),c+=a;continue}l.ESCAPABLE.includes(s)&&(i+="\\"),i+=s,c+=1}return i};l.escapeInteractionText=E;const h=n=>{let i="",c=0;for(;c<n.length;){const e=r(n,c);if(e!==null){i+=n.slice(c,e),c=e;continue}if((0,l.isEscape)(n,c)){i+=n[c+1],c+=2;continue}i+=n[c],c+=1}return i};l.unescapeInteractionText=h;const p=(n,i,c=0)=>{let e=c;for(;e<n.length;){const s=r(n,e);if(s!==null){e=s;continue}if((0,l.isEscape)(n,e)){e+=2;continue}if(n.startsWith(i,e))return e;e+=1}return-1};l.findUnescaped=p;const _=(n,i)=>{const c=[];let e=0;for(;;){const s=(0,l.findUnescaped)(n,i,e);if(s<0)return c.push(n.slice(e)),c;c.push(n.slice(e,s)),e=s+i.length}};l.splitUnescaped=_;const I=n=>{const i=[];let c=0,e=0;for(;e<n.length;){const s=r(n,e);if(s!==null){e=s;continue}if((0,l.isEscape)(n,e)){e+=2;continue}if(n[e]==="|"){if(n.startsWith("||",e)){e+=2;continue}if(e>0&&n[e-1]==="|"&&!(0,l.isEscape)(n,e-1)){e+=1;continue}i.push(n.slice(c,e)),c=e+1}e+=1}return i.push(n.slice(c)),i};l.splitOnSingleUnescapedPipe=I;const g=n=>{const i=n.split(`
|
|
2
|
+
`,1)[0],c=(0,l.findUnescaped)(i,"...");return c<0?null:[i.slice(0,c),i.slice(c+3)]};l.splitOnEllipsis=g,l.INTERACTION_CONTENT_SOURCE=`(?:${u.RAW_VARIABLE_MARKER_SOURCE}|\\\\[|/.\\]]|\\\\(?![|/.\\]])|\\{(?!\\{)|[^\\]\\\\{])*`;const d=(n,i,c)=>{if(!n.startsWith("?[",i))return null;let e=i+2;for(;e<n.length;){if(n.startsWith("{{",e)){const s=(0,u.readVariableMarker)(n,e);if(!s)break;e=s.end;continue}if(c?.(e))return{start:i,end:e,content:n.slice(i+2,e),complete:!1};if((0,l.isEscape)(n,e)){e+=2;continue}if(n[e]==="]")return n[e+1]==="("?null:{start:i,end:e+1,content:n.slice(i+2,e),complete:!0};e+=1}return{start:i,end:n.length,content:n.slice(i+2),complete:!1}},O=(n,i=0)=>d(n,i);l.readInteraction=O;const T=(n,i,c)=>d(n,i,c);l.readDocumentInteraction=T})(t.__exports)),t.__exports}exports.__require=U;
|
|
3
3
|
//# sourceMappingURL=escaping.cjs.map
|