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