@focuson/form_components
Version:
Components that can be used by @focuson/forms
25 lines (24 loc) • 1.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BooleanYNTransformer = exports.BooleanTransformer = exports.NumberTransformer = exports.StringTransformer = exports.isCheckboxProps = exports.isStringProps = exports.defaultInputSelectFn = void 0;
const labelAndInput_1 = require("./labelAndInput");
const state_1 = require("@focuson/state");
const defaultInputSelectFn = (state, id, value, parentState, onChange, changesCanExecute) => {
const changeTxs = changesCanExecute ? (0, labelAndInput_1.makeInputChangeTxs)(id, parentState, onChange) : [];
return state.massTransform((0, state_1.reasonFor)('Input', 'onChange', id))([state.optional, () => value], ...changeTxs);
};
exports.defaultInputSelectFn = defaultInputSelectFn;
function isStringProps(p) {
const a = p;
return a.type;
}
exports.isStringProps = isStringProps;
function isCheckboxProps(p) {
const a = p;
return a.checkbox;
}
exports.isCheckboxProps = isCheckboxProps;
exports.StringTransformer = { transformer: s => s, type: 'text', default: '', selectFn: exports.defaultInputSelectFn };
exports.NumberTransformer = { transformer: s => Number(s), type: 'number', default: undefined, selectFn: exports.defaultInputSelectFn };
exports.BooleanTransformer = { transformer: s => s === true, default: false, checkbox: b => !!b, selectFn: exports.defaultInputSelectFn };
exports.BooleanYNTransformer = { transformer: s => s ? 'Y' : 'N', default: 'N', checkbox: b => b === 'Y', selectFn: exports.defaultInputSelectFn };