@vnmfify/core
Version:
```shell npm i @vnmfify/core -S ```
137 lines (128 loc) • 4.59 kB
JavaScript
import { Input as VnmfInput, Switch as VnmfSwitch, Textarea as VnmfTextarea } from "@vnxjs/components";
import { cloneElement } from "react";
import Checkbox from "../../checkbox";
import Input from "../../input";
import Radio from "../../radio";
import Rate from "../../rate";
import Slider from "../../slider";
import Stepper from "../../stepper";
import Switch from "../../switch";
import Textarea from "../../textarea";
import Uploader from "../../uploader";
import { registerFormControlHandler } from "./form-control-handler";
registerFormControlHandler(new class {
doControlRender(element, controller) {
var {
name,
value,
validateStatus,
onBlur: onDelegatingBlur,
onChange: onDelegatingChange
} = controller;
var {
props: elementProps
} = element;
var {
name: nameProp,
value: valueProp,
color,
onBlur: _onBlur,
onInput: _onInput
} = elementProps;
return /*#__PURE__*/cloneElement(element, {
name: nameProp !== null && nameProp !== void 0 ? nameProp : name,
value: valueProp !== null && valueProp !== void 0 ? valueProp : value,
color: color !== null && color !== void 0 ? color : validateStatus === "invalid" ? "danger" : undefined,
onInput: e => {
_onInput === null || _onInput === void 0 ? void 0 : _onInput(e);
onDelegatingChange === null || onDelegatingChange === void 0 ? void 0 : onDelegatingChange(e.detail.value);
},
onBlur: e => {
_onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(e);
onDelegatingBlur === null || onDelegatingBlur === void 0 ? void 0 : onDelegatingBlur(e.detail.value);
}
});
}
supportsControlType(elementType) {
return elementType === VnmfInput || elementType === VnmfTextarea || elementType === Input || elementType === Textarea;
}
}());
registerFormControlHandler(new class {
doControlRender(element, controller) {
var {
name,
value,
onChange: onDelegatingChange
} = controller;
var {
props: elementProps
} = element;
var {
name: nameProp,
checked: checkedProp,
onChange: _onChange
} = elementProps;
return /*#__PURE__*/cloneElement(element, {
name: nameProp !== null && nameProp !== void 0 ? nameProp : name,
checked: checkedProp !== null && checkedProp !== void 0 ? checkedProp : value,
onChange: e => {
_onChange === null || _onChange === void 0 ? void 0 : _onChange(e);
onDelegatingChange === null || onDelegatingChange === void 0 ? void 0 : onDelegatingChange(e.detail.value);
}
});
}
supportsControlType(elementType) {
return elementType === VnmfSwitch;
}
}());
registerFormControlHandler(new class {
doControlRender(element, controller) {
var {
value,
onChange: onDelegatingChange
} = controller;
var {
props: elementProps
} = element;
var {
checked: checkedProp,
onChange: _onChange2
} = elementProps;
return /*#__PURE__*/cloneElement(element, {
checked: checkedProp !== null && checkedProp !== void 0 ? checkedProp : value,
onChange: checked => {
_onChange2 === null || _onChange2 === void 0 ? void 0 : _onChange2(checked);
onDelegatingChange === null || onDelegatingChange === void 0 ? void 0 : onDelegatingChange(checked);
}
});
}
supportsControlType(elementType) {
return elementType === Checkbox || elementType === Switch;
}
}());
registerFormControlHandler(new class {
doControlRender(element, controller) {
var {
value,
onChange: onDelegatingChange
} = controller;
var {
props: elementProps
} = element;
var {
value: valueProp,
onChange: _onChange3
} = elementProps;
return /*#__PURE__*/cloneElement(element, {
value: valueProp !== null && valueProp !== void 0 ? valueProp : value,
onChange: nextValue => {
_onChange3 === null || _onChange3 === void 0 ? void 0 : _onChange3(nextValue);
onDelegatingChange === null || onDelegatingChange === void 0 ? void 0 : onDelegatingChange(nextValue);
}
});
}
supportsControlType(elementType) {
return elementType === Checkbox.Group || elementType === Radio.Group || elementType === Rate || elementType === Slider || elementType === Stepper || elementType === Uploader;
}
}());
//# sourceMappingURL=form-control-handlers.js.map