@indec/form-builder
Version:
Form builder
142 lines (141 loc) • 4.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _questionActions = _interopRequireDefault(require("../constants/questionActions"));
var _questionTypes = _interopRequireDefault(require("../constants/questionTypes"));
var _getNavigation = _interopRequireDefault(require("./getNavigation"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
var isNumericOrCurrency = function isNumericOrCurrency(type) {
return [_questionTypes["default"].NUMERIC_FIELD, _questionTypes["default"].CURRENCY].includes(type);
};
var getQuestionProps = function getQuestionProps(_ref) {
var sectionIndex = _ref.sectionIndex,
section = _ref.section,
question = _ref.question,
values = _ref.values,
disabled = _ref.disabled,
warnings = _ref.warnings,
initialValues = _ref.initialValues,
sections = _ref.sections;
var number = question.number,
label = question.label,
multiple = question.multiple,
subQuestions = question.subQuestions,
type = question.type,
placeholder = question.placeholder,
name = question.name,
options = question.options,
metadata = question.metadata,
_question$navigation = question.navigation,
navigation = _question$navigation === void 0 ? [] : _question$navigation,
introduction = question.introduction,
_question$multiline = question.multiline,
multiline = _question$multiline === void 0 ? false : _question$multiline,
disabledByDefault = question.disabled;
var questionName = section ? "".concat(section.name, ".").concat(sectionIndex, ".").concat(name, ".answer") : '';
var jump = section ? (0, _getNavigation["default"])({
navigation: navigation,
answers: values,
section: section,
initialValues: initialValues,
sections: sections
}) : '';
var show = Object.prototype.hasOwnProperty.call(question, 'hide') ? false : (jump === null || jump === void 0 ? void 0 : jump.action) !== _questionActions["default"].HIDE;
var isDisabled = (jump === null || jump === void 0 ? void 0 : jump.action) === _questionActions["default"].DISABLE || disabled;
var props;
switch (type) {
case _questionTypes["default"].NUMERIC_FIELD:
case _questionTypes["default"].TEXT_FIELD:
case _questionTypes["default"].CURRENCY:
props = {
label: {
text: label,
number: number,
introduction: introduction
},
placeholder: !placeholder && isNumericOrCurrency(type) ? 'Ingrese Valor' : placeholder,
name: questionName,
type: [_questionTypes["default"].TEXT_FIELD, _questionTypes["default"].CURRENCY].includes(type) ? 'text' : 'number',
disabled: disabledByDefault || isDisabled,
warnings: warnings,
isMultiple: multiple,
values: values[name],
subQuestions: subQuestions,
show: show,
multiline: type === _questionTypes["default"].TEXT_FIELD ? multiline : false
};
break;
case _questionTypes["default"].DROPDOWN:
props = {
label: {
text: label,
number: number,
introduction: introduction
},
placeholder: placeholder,
name: questionName,
options: options,
disabled: disabledByDefault || isDisabled,
isMultiple: multiple,
warnings: warnings,
values: values[name],
subQuestions: subQuestions,
show: show
};
break;
case _questionTypes["default"].RADIO:
case _questionTypes["default"].CHECKBOX:
case _questionTypes["default"].RADIO_TABLE:
props = {
label: {
text: label,
number: number,
introduction: introduction
},
name: questionName,
options: options,
disabled: disabledByDefault || isDisabled,
isMultiple: multiple,
warnings: warnings,
values: values[name],
subQuestions: subQuestions,
show: show
};
break;
case _questionTypes["default"].DATE:
props = {
label: {
text: label,
number: number,
introduction: introduction
},
placeholder: placeholder,
name: questionName,
disabled: disabledByDefault || isDisabled,
isMultiple: multiple,
metadata: metadata,
warnings: warnings,
values: values[name],
subQuestions: subQuestions,
show: show
};
break;
case _questionTypes["default"].MESSAGE:
props = {
message: label,
show: show
};
break;
default:
return props;
}
return {
props: props,
questionName: questionName,
jump: jump,
questionType: type
};
};
var _default = exports["default"] = getQuestionProps;