UNPKG

label-studio

Version:

Data Labeling Tool that is backend agnostic and can be embedded into your applications

48 lines (39 loc) 1.31 kB
import React from "react"; import { observer } from "mobx-react"; import { types } from "mobx-state-tree"; import LabelMixin from "../../mixins/LabelMixin"; import Registry from "../../core/Registry"; import SelectedModelMixin from "../../mixins/SelectedModel"; import Types from "../../core/Types"; import { BrushModel } from "./Brush"; import { HtxLabels, LabelsModel } from "./Labels"; import { guidGenerator } from "../../core/Helpers"; const TagAttrs = types.model({ name: types.maybeNull(types.string), toname: types.maybeNull(types.string), }); const ModelAttrs = types.model("BrushLabelsModel", { id: types.optional(types.identifier, guidGenerator), pid: types.optional(types.string, guidGenerator), type: "brushlabels", children: Types.unionArray(["labels", "label", "choice"]), }); const Model = LabelMixin.props({ _type: "brushlabels" }).views(self => ({ get shouldBeUnselected() { return self.choice === "single"; }, })); const BrushLabelsModel = types.compose( "BrushLabelsModel", LabelsModel, ModelAttrs, BrushModel, TagAttrs, Model, SelectedModelMixin, ); const HtxBrushLabels = observer(({ item }) => { return <HtxLabels item={item} />; }); Registry.addTag("brushlabels", BrushLabelsModel, HtxBrushLabels); export { HtxBrushLabels, BrushLabelsModel };