UNPKG

form-studio

Version:

A tool that helps design, create and manage form / survey / questionnaire through simple JSON configurations.

47 lines (46 loc) 1.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sanitizeConfigs = void 0; const sanitizeConfigs = (configs) => ({ groups: configs.groups ? sanitizeGroupConfigs(undefined, configs.groups) : [], questions: configs.questions ? sanitizeQuestionConfigs(undefined, configs.questions) : [] }); exports.sanitizeConfigs = sanitizeConfigs; const sanitizeGroupConfigs = (parentGroupId, groups) => groups.map((group, i) => { const id = group.id ?? (parentGroupId ? `${parentGroupId}_g${i}` : `g${i}`); return { id, defaultDisabled: !!group.defaultDisabled, enabledOnSelected: group.enabledOnSelected, disabledOnSelected: group.disabledOnSelected, custom: group.custom, groups: group.groups ? sanitizeGroupConfigs(id, group.groups) : [], questions: group.questions ? sanitizeQuestionConfigs(id, group.questions) : [] }; }); const sanitizeQuestionConfigs = (groupId, questions) => questions.map((question, i) => { const id = question.id ?? (groupId ? `${groupId}_q${i}` : `q${i}`); return { id, defaultDisabled: !!question.defaultDisabled, enabledOnSelected: question.enabledOnSelected, disabledOnSelected: question.disabledOnSelected, custom: question.custom, type: question.type, choices: question.type !== 'any' ? sanitizeChoiceConfigs(id, question.choices ?? []) : [], validators: question.validators ?? [], defaultAnswer: question.defaultAnswer }; }); const sanitizeChoiceConfigs = (questionId, choices) => choices.map((choice, i) => { const id = choice.id ?? `${questionId}_c${i}`; return { id, defaultDisabled: !!choice.defaultDisabled, enabledOnSelected: choice.enabledOnSelected, disabledOnSelected: choice.disabledOnSelected, custom: choice.custom, value: choice.value ?? id, onSelected: choice.onSelected }; });