UNPKG

@focuson/form_components

Version:

Components that can be used by @focuson/forms

25 lines (24 loc) 1.53 kB
"use strict"; 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 };