@wildwinter/expr-editor 0.6.0 → 0.7.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/dist/index.cjs +18 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +18 -20
- package/dist/index.js.map +1 -1
- package/dist/styles.css +26 -0
- package/dist/styles.css.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -458,6 +458,14 @@ function renderNode(node, path, ctx, parentOp, side) {
|
|
|
458
458
|
}
|
|
459
459
|
}
|
|
460
460
|
}
|
|
461
|
+
function signToggle(current, onPick) {
|
|
462
|
+
const row = el("div", "exed-sign");
|
|
463
|
+
["+", "-"].forEach((s) => {
|
|
464
|
+
const cls = `exed-signbtn${s === current ? s === "+" ? " sel-pos" : " sel-neg" : ""}`;
|
|
465
|
+
row.append(button(cls, s === "+" ? "+ set" : "\u2212 unset", () => onPick(s)));
|
|
466
|
+
});
|
|
467
|
+
return row;
|
|
468
|
+
}
|
|
461
469
|
var deleteOrUnwrapNot = (ctx, path, node) => (
|
|
462
470
|
// clicking the NOT pill strips it (keeps the operand)
|
|
463
471
|
setNodeAt(ctx.getAst(), path, node.operand)
|
|
@@ -547,14 +555,10 @@ function flagEditor(ctx, path, node, anchor) {
|
|
|
547
555
|
ctx.openPopover(anchor, (close) => {
|
|
548
556
|
const wrap = el("div", "exed-menu");
|
|
549
557
|
wrap.append(el("div", "exed-menu-head", ["Flag set?"]));
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
close();
|
|
555
|
-
}));
|
|
556
|
-
}
|
|
557
|
-
wrap.append(signRow);
|
|
558
|
+
wrap.append(signToggle(node.sign, (s) => {
|
|
559
|
+
replace(ctx, path, flagDelta(s, node.name));
|
|
560
|
+
close();
|
|
561
|
+
}));
|
|
558
562
|
const names = (entry?.enumValues ?? []).filter((n) => !used.includes(n));
|
|
559
563
|
if (names.length) {
|
|
560
564
|
wrap.append(el("div", "exed-menu-head", ["Flag"]));
|
|
@@ -1164,21 +1168,15 @@ function mountExpressionEditor(host, opts) {
|
|
|
1164
1168
|
let sign = "+";
|
|
1165
1169
|
const wrap = el("div", "exed-menu");
|
|
1166
1170
|
wrap.append(el("div", "exed-menu-head", ["Add flag"]));
|
|
1167
|
-
const
|
|
1171
|
+
const signHost = el("div");
|
|
1168
1172
|
const drawSign = () => {
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
}),
|
|
1174
|
-
button(`exed-opt${sign === "-" ? " sel" : ""}`, "\u2212 unset", () => {
|
|
1175
|
-
sign = "-";
|
|
1176
|
-
drawSign();
|
|
1177
|
-
})
|
|
1178
|
-
);
|
|
1173
|
+
signHost.replaceChildren(signToggle(sign, (s) => {
|
|
1174
|
+
sign = s;
|
|
1175
|
+
drawSign();
|
|
1176
|
+
}));
|
|
1179
1177
|
};
|
|
1180
1178
|
drawSign();
|
|
1181
|
-
wrap.append(
|
|
1179
|
+
wrap.append(signHost);
|
|
1182
1180
|
const commit = (name) => {
|
|
1183
1181
|
const delta = flagDelta(sign, name);
|
|
1184
1182
|
emit(toSrc(call ? { ...call, args: [...call.args, delta] } : callNode("set_flags", [parseRef(opts.flagValue.target), delta])));
|