alinea
Version:
[](https://npmjs.org/package/alinea) [](https://packagephobia.com/result?p=alinea)
56 lines (54 loc) • 1.09 kB
JavaScript
import "../../chunks/chunk-U5RRZUYZ.js";
// src/core/shape/ScalarShape.ts
var ScalarShape = class {
constructor(label, initialValue) {
this.label = label;
this.initialValue = initialValue;
}
innerTypes() {
return [];
}
create() {
return this.initialValue;
}
typeOfChild(yValue, child) {
throw new Error(`No children in scalar values`);
}
toY(value) {
return value;
}
fromY(yValue) {
return yValue;
}
applyY(value, parent, key) {
const current = parent.get(key);
if (current !== value)
parent.set(key, value);
}
init(parent, key) {
if (!parent.has(key))
parent.set(key, this.toY(this.create()));
}
watch(parent, key) {
return (fun) => {
function w(event) {
if (event.keysChanged.has(key))
fun();
}
parent.observe(w);
return () => parent.unobserve(w);
};
}
mutator(parent, key, readOnly) {
return (value) => {
if (readOnly)
return;
parent.set(key, value);
};
}
async applyLinks() {
}
};
export {
ScalarShape
};