alinea
Version:
[](https://npmjs.org/package/alinea) [](https://packagephobia.com/result?p=alinea)
50 lines (48 loc) • 1.23 kB
JavaScript
import "../chunks/chunk-U5RRZUYZ.js";
// src/core/Field.ts
var Field = class _Field {
static index = 0;
constructor(data) {
this[_Field.Data] = data;
this[_Field.Ref] = Symbol(`Field.${data.options.label}.${_Field.index++}`);
}
};
((Field2) => {
Field2.Data = Symbol.for("@alinea/Field.Data");
Field2.Ref = Symbol.for("@alinea/Field.Self");
function provideView(view2, factory) {
return (...args) => new Field2({ ...factory(...args)[Field2.Data], view: view2 });
}
Field2.provideView = provideView;
function ref(field) {
return field[Field2.Ref];
}
Field2.ref = ref;
function shape(field) {
return field[Field2.Data].shape;
}
Field2.shape = shape;
function hint(field) {
return field[Field2.Data].hint;
}
Field2.hint = hint;
function label(field) {
return field[Field2.Data].options.label;
}
Field2.label = label;
function view(field) {
return field[Field2.Data].view;
}
Field2.view = view;
function options(field) {
return field[Field2.Data].options;
}
Field2.options = options;
function isField(value) {
return value && Boolean(value[Field2.Data]);
}
Field2.isField = isField;
})(Field || (Field = {}));
export {
Field
};