@octaviaflow/core 3.1.0-beta.104 → 3.1.0-beta.106
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ExpressionField/ExpressionField.d.ts.map +1 -1
- package/dist/index.cjs +60 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +60 -16
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpressionField.d.ts","sourceRoot":"","sources":["../../../src/components/ExpressionField/ExpressionField.tsx"],"names":[],"mappings":"AA2BA,OAAO,EAML,KAAK,aAAa,EAIlB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAaf,6EAA6E;AAC7E,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;CAChC;AAED,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACrD;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,CAAC;IAC1D;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWzD;AAyBD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAiBpE;AAuBD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,UAAU,EACV,QAAgB,EAChB,IAAQ,EACR,EAAE,EACF,SAAS,EACT,KAAK,EACL,YAAY,EACZ,WAAW,EACX,cAAsB,EACtB,YAAY,EAAE,SAAS,GACxB,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"ExpressionField.d.ts","sourceRoot":"","sources":["../../../src/components/ExpressionField/ExpressionField.tsx"],"names":[],"mappings":"AA2BA,OAAO,EAML,KAAK,aAAa,EAIlB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAaf,6EAA6E;AAC7E,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;CAChC;AAED,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACrD;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,CAAC;IAC1D;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWzD;AAyBD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAiBpE;AAuBD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,UAAU,EACV,QAAgB,EAChB,IAAQ,EACR,EAAE,EACF,SAAS,EACT,KAAK,EACL,YAAY,EACZ,WAAW,EACX,cAAsB,EACtB,YAAY,EAAE,SAAS,GACxB,EAAE,oBAAoB,2CAsatB;AA6OD,eAAe,eAAe,CAAC"}
|
package/dist/index.cjs
CHANGED
|
@@ -41593,13 +41593,19 @@ function ExpressionField({
|
|
|
41593
41593
|
const fieldId = id ?? generatedId;
|
|
41594
41594
|
const helperId = `${fieldId}-helper`;
|
|
41595
41595
|
const [editing, setEditing] = (0, import_react188.useState)(null);
|
|
41596
|
+
const resolveLabelRef = (0, import_react188.useRef)(resolveLabel);
|
|
41597
|
+
const resolveCallRef = (0, import_react188.useRef)(resolveCall);
|
|
41598
|
+
const pillEveryTokenRef = (0, import_react188.useRef)(pillEveryToken);
|
|
41599
|
+
resolveLabelRef.current = resolveLabel;
|
|
41600
|
+
resolveCallRef.current = resolveCall;
|
|
41601
|
+
pillEveryTokenRef.current = pillEveryToken;
|
|
41596
41602
|
const labelFor = (0, import_react188.useCallback)(
|
|
41597
|
-
(token) =>
|
|
41598
|
-
[
|
|
41603
|
+
(token) => resolveLabelRef.current?.(token) ?? shortReferenceLabel(token),
|
|
41604
|
+
[]
|
|
41599
41605
|
);
|
|
41600
41606
|
const callLabel = (0, import_react188.useCallback)(
|
|
41601
|
-
(name) =>
|
|
41602
|
-
[
|
|
41607
|
+
(name) => resolveCallRef.current?.(name)?.label ?? (name.startsWith("user.") ? name.slice(5) : name),
|
|
41608
|
+
[]
|
|
41603
41609
|
);
|
|
41604
41610
|
const chipText = (0, import_react188.useCallback)(
|
|
41605
41611
|
(name, args) => {
|
|
@@ -41622,8 +41628,18 @@ function ExpressionField({
|
|
|
41622
41628
|
} else {
|
|
41623
41629
|
el.className = CHIP;
|
|
41624
41630
|
el.setAttribute("data-call", segment.name);
|
|
41625
|
-
el.textContent = chipText(segment.name, segment.args);
|
|
41626
41631
|
el.title = segment.raw;
|
|
41632
|
+
const text = document.createElement("span");
|
|
41633
|
+
text.className = "ods-expression-field__chip-text";
|
|
41634
|
+
text.textContent = chipText(segment.name, segment.args);
|
|
41635
|
+
el.appendChild(text);
|
|
41636
|
+
const open = document.createElement("span");
|
|
41637
|
+
open.className = "ods-expression-field__chip-open";
|
|
41638
|
+
open.setAttribute("data-open", "true");
|
|
41639
|
+
open.setAttribute("role", "button");
|
|
41640
|
+
open.setAttribute("aria-label", "Edit arguments");
|
|
41641
|
+
open.textContent = "\u2304";
|
|
41642
|
+
el.appendChild(open);
|
|
41627
41643
|
}
|
|
41628
41644
|
return el;
|
|
41629
41645
|
},
|
|
@@ -41635,7 +41651,7 @@ function ExpressionField({
|
|
|
41635
41651
|
if (!el) return;
|
|
41636
41652
|
el.innerHTML = "";
|
|
41637
41653
|
if (!raw) return;
|
|
41638
|
-
for (const segment of parseExpression(raw,
|
|
41654
|
+
for (const segment of parseExpression(raw, pillEveryTokenRef.current)) {
|
|
41639
41655
|
if (segment.kind === "text") {
|
|
41640
41656
|
el.appendChild(document.createTextNode(segment.raw));
|
|
41641
41657
|
continue;
|
|
@@ -41647,7 +41663,7 @@ function ExpressionField({
|
|
|
41647
41663
|
}
|
|
41648
41664
|
}
|
|
41649
41665
|
},
|
|
41650
|
-
[
|
|
41666
|
+
[makeToken]
|
|
41651
41667
|
);
|
|
41652
41668
|
(0, import_react188.useEffect)(() => {
|
|
41653
41669
|
if (fromSelf.current) {
|
|
@@ -41748,7 +41764,9 @@ function ExpressionField({
|
|
|
41748
41764
|
const call = parseCall(raw);
|
|
41749
41765
|
if (!call) return;
|
|
41750
41766
|
editing.el.setAttribute("data-value", raw);
|
|
41751
|
-
editing.el.
|
|
41767
|
+
const text = editing.el.querySelector(".ods-expression-field__chip-text");
|
|
41768
|
+
if (text) text.textContent = chipText(call.name, call.args);
|
|
41769
|
+
else editing.el.textContent = chipText(call.name, call.args);
|
|
41752
41770
|
editing.el.title = raw;
|
|
41753
41771
|
setEditing(null);
|
|
41754
41772
|
commit();
|
|
@@ -41756,14 +41774,19 @@ function ExpressionField({
|
|
|
41756
41774
|
},
|
|
41757
41775
|
[editing, chipText, commit]
|
|
41758
41776
|
);
|
|
41777
|
+
const handleMouseDown = (0, import_react188.useCallback)((e) => {
|
|
41778
|
+
const token = e.target.closest(`.${PILL}, .${CHIP}`);
|
|
41779
|
+
if (token) e.preventDefault();
|
|
41780
|
+
}, []);
|
|
41759
41781
|
const handleClick = (0, import_react188.useCallback)(
|
|
41760
41782
|
(e) => {
|
|
41761
|
-
const
|
|
41783
|
+
const node = e.target;
|
|
41784
|
+
const target = node.closest(`.${PILL}, .${CHIP}`);
|
|
41762
41785
|
if (!target) return;
|
|
41763
|
-
|
|
41764
|
-
|
|
41765
|
-
|
|
41766
|
-
|
|
41786
|
+
const chipEl = target;
|
|
41787
|
+
const wantsEditor = chipEl.classList.contains(CHIP) && (!!node.closest("[data-open]") || e.detail >= 2);
|
|
41788
|
+
selectToken(chipEl);
|
|
41789
|
+
if (!disabled && wantsEditor) openEditor(chipEl);
|
|
41767
41790
|
},
|
|
41768
41791
|
[disabled, openEditor, selectToken]
|
|
41769
41792
|
);
|
|
@@ -41869,6 +41892,7 @@ function ExpressionField({
|
|
|
41869
41892
|
style: { minHeight: `${Math.max(1, rows) * 1.5 + 1}rem` },
|
|
41870
41893
|
onInput: commit,
|
|
41871
41894
|
onBlur: handleBlur,
|
|
41895
|
+
onMouseDown: handleMouseDown,
|
|
41872
41896
|
onClick: handleClick,
|
|
41873
41897
|
onKeyDown: handleKeyDown,
|
|
41874
41898
|
onCopy: handleCopy,
|
|
@@ -41925,6 +41949,13 @@ function CallEditor({
|
|
|
41925
41949
|
if (at) crumbs.push({ label: nameOf(at.name), path: path.slice(0, i) });
|
|
41926
41950
|
}
|
|
41927
41951
|
const setArg = (index, next) => setDraft((d) => replaceArgument(d, [...path, index], next));
|
|
41952
|
+
const removeArg = (index) => setDraft((d) => {
|
|
41953
|
+
const at = callAt(d, path);
|
|
41954
|
+
if (!at) return d;
|
|
41955
|
+
const next = at.args.filter((_, i) => i !== index);
|
|
41956
|
+
const rebuilt = path.length === 0 ? formatCall(at.name, next) : `${at.name}(${next.join(", ")})`;
|
|
41957
|
+
return path.length === 0 ? rebuilt : replaceArgument(d, path, rebuilt);
|
|
41958
|
+
});
|
|
41928
41959
|
const dropInto = (index) => (e) => {
|
|
41929
41960
|
const dropped = e.dataTransfer.getData("application/x-fx-insert");
|
|
41930
41961
|
if (!dropped) return;
|
|
@@ -41984,7 +42015,20 @@ function CallEditor({
|
|
|
41984
42015
|
return (
|
|
41985
42016
|
// eslint-disable-next-line react/no-array-index-key
|
|
41986
42017
|
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "ods-expression-field__editor-row", children: [
|
|
41987
|
-
/* @__PURE__ */ (0, import_jsx_runtime174.
|
|
42018
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("span", { className: "ods-expression-field__editor-row-head", children: [
|
|
42019
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { id: `arg-${index}-label`, children: rowLabel }),
|
|
42020
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
42021
|
+
"button",
|
|
42022
|
+
{
|
|
42023
|
+
type: "button",
|
|
42024
|
+
className: "ods-expression-field__editor-remove",
|
|
42025
|
+
"aria-label": `Remove ${rowLabel}`,
|
|
42026
|
+
title: "Remove this argument",
|
|
42027
|
+
onClick: () => removeArg(index),
|
|
42028
|
+
children: "\u2715"
|
|
42029
|
+
}
|
|
42030
|
+
)
|
|
42031
|
+
] }),
|
|
41988
42032
|
nested ? /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)(
|
|
41989
42033
|
"div",
|
|
41990
42034
|
{
|
|
@@ -42047,14 +42091,14 @@ function CallEditor({
|
|
|
42047
42091
|
"button",
|
|
42048
42092
|
{
|
|
42049
42093
|
type: "button",
|
|
42050
|
-
className: "ods-expression-field__editor-
|
|
42094
|
+
className: "ods-expression-field__editor-add",
|
|
42051
42095
|
onClick: () => setDraft((d) => {
|
|
42052
42096
|
const at = callAt(d, path);
|
|
42053
42097
|
if (!at) return d;
|
|
42054
42098
|
const next = [...at.args, '""'];
|
|
42055
42099
|
return path.length === 0 ? formatCall(at.name, next) : replaceArgument(d, path, `${at.name}(${next.join(", ")})`);
|
|
42056
42100
|
}),
|
|
42057
|
-
children: "+ argument"
|
|
42101
|
+
children: "+ Add argument"
|
|
42058
42102
|
}
|
|
42059
42103
|
)
|
|
42060
42104
|
] }),
|