Web2PrintModifierAttributeController
You get this controller when useAttribute(...) resolves a Web2Print modifier attribute. A modifier attribute adjusts a single print property (opacity, a left/right position, a border width, or a boolean flag like flip_x) and is backed by value entities that you select by their cid.
import { useAttribute } from "@expivi/product-configurator";
const attribute = useAttribute(configurator, attributeCid);
Reading the modifier type and selecting a value
Use the type helpers to decide how to render the control, then apply a value entity with setValue(cid).
const type = attribute.getAttributeModifierType();
if (attribute.isFloatType(type)) {
// Render a slider for opacity / left / right / border_width
} else if (attribute.isBooleanType(type)) {
// Render a toggle for flip_x / flip_y / visible
}
// Apply a value entity
const value = attribute.allValues[0];
attribute.setValue(value.cid);
API
getAttributeModifierType(): string
Returns the modifier type from the attribute settings, defaulting to "opacity" when none is set.
attribute.getAttributeModifierType(); // e.g. "opacity"
isFloatType(type?: string): boolean
Returns true when the modifier is float-based (opacity, left, right, border_width). Uses the passed type, or the attribute's own type when omitted.
isBooleanType(type?: string): boolean
Returns true when the modifier is boolean-based (flip_x, flip_y, visible). Uses the passed type, or the attribute's own type when omitted.
setValue(cid) selects the modifier value entity whose cid matches and stores its config.value. For all other members, see the Common Attribute API.