UNPKG

angular2-json-schema-form

Version:
636 lines 32.5 kB
"use strict"; var _ = require("lodash"); var validator_functions_1 = require("./validator.functions"); var utility_functions_1 = require("./utility.functions"); var jsonpointer_functions_1 = require("./jsonpointer.functions"); var json_schema_functions_1 = require("./json-schema.functions"); var form_group_functions_1 = require("./form-group.functions"); function buildLayout(jsf, widgetLibrary) { var hasSubmitButton = !jsonpointer_functions_1.JsonPointer.get(jsf, '/globalOptions/addSubmit'); var formLayout = mapLayout(jsf.layout, function (layoutItem, index, layoutPointer) { var currentIndex = index; var newNode = {}; if (validator_functions_1.isObject(layoutItem)) { newNode = layoutItem; } else if (jsonpointer_functions_1.JsonPointer.isJsonPointer(layoutItem)) { newNode.dataPointer = layoutItem; } else if (validator_functions_1.isString(layoutItem)) { newNode.key = layoutItem; } else { console.error('buildLayout error: Form layout element not recognized:'); console.error(layoutItem); return null; } Object.assign(newNode, { _id: _.uniqueId(), layoutPointer: layoutPointer.replace(/\/\d+/g, '/-'), options: {}, }); var itemSchema = null; if (!utility_functions_1.hasOwn(newNode, 'dataPointer')) { if (utility_functions_1.hasOwn(newNode, 'key')) { if (newNode.key === '*') { newNode.dataPointer = newNode.key; } else if (jsonpointer_functions_1.JsonPointer.isJsonPointer(newNode.key)) { newNode.dataPointer = jsonpointer_functions_1.JsonPointer.compile(newNode.key); } else { newNode.dataPointer = jsonpointer_functions_1.JsonPointer.compile(jsonpointer_functions_1.JsonPointer.parseObjectPath(newNode.key), '-'); } delete newNode.key; } else if (utility_functions_1.hasOwn(newNode, 'type') && newNode.type.slice(-5) === 'array') { var findDataPointer_1 = function (items) { if (items === null || typeof items !== 'object') return; if (utility_functions_1.hasOwn(items, 'dataPointer')) return items.dataPointer; if (validator_functions_1.isArray(items.items)) { for (var _i = 0, _a = items.items; _i < _a.length; _i++) { var item = _a[_i]; if (utility_functions_1.hasOwn(item, 'dataPointer') && item.dataPointer.indexOf('/-') !== -1) { return item.dataPointer; } if (utility_functions_1.hasOwn(item, 'items')) { var searchItem = findDataPointer_1(item); if (searchItem) return searchItem; } } } }; var childDataPointer = findDataPointer_1(newNode); if (childDataPointer) { newNode.dataPointer = childDataPointer.slice(0, childDataPointer.lastIndexOf('/-')); } } } if (utility_functions_1.hasOwn(newNode, 'dataPointer')) { if (newNode.dataPointer === '*') { return buildLayoutFromSchema(jsf, widgetLibrary, newNode.layoutPointer.slice(0, -2)); } newNode.dataPointer = jsonpointer_functions_1.JsonPointer.toGenericPointer(newNode.dataPointer, jsf.arrayMap); var LastKey = jsonpointer_functions_1.JsonPointer.toKey(newNode.dataPointer); if (validator_functions_1.isString(LastKey) && LastKey !== '-') newNode.name = LastKey; if (!jsf.dataMap.has(newNode.dataPointer)) { jsf.dataMap.set(newNode.dataPointer, new Map); } else if (jsf.dataMap.get(newNode.dataPointer).has('schemaPointer')) { itemSchema = jsonpointer_functions_1.JsonPointer.get(jsf.schema, jsf.dataMap.get(newNode.dataPointer).get('schemaPointer')); } else { itemSchema = json_schema_functions_1.getFromSchema(jsf.schema, newNode.dataPointer); } if (itemSchema) { if (!utility_functions_1.hasOwn(newNode, 'type')) { newNode.type = json_schema_functions_1.getInputType(itemSchema, newNode); } else if (!widgetLibrary.hasWidget(newNode.type)) { var oldWidgetType = newNode.type; newNode.type = json_schema_functions_1.getInputType(itemSchema, newNode); console.error('error: widget type "' + oldWidgetType + '" not found in library. Replacing with "' + newNode.type + '".'); } else { newNode.type = json_schema_functions_1.checkInlineType(newNode.type, itemSchema, newNode); } newNode.dataType = itemSchema.type; json_schema_functions_1.updateInputOptions(newNode, itemSchema, jsf); if (newNode.type === 'checkboxes' && utility_functions_1.hasOwn(itemSchema, 'items')) { json_schema_functions_1.updateInputOptions(newNode, itemSchema.items, jsf); } else if (itemSchema.type === 'array' && utility_functions_1.hasOwn(itemSchema, 'items')) { if (validator_functions_1.isArray(itemSchema.items)) { newNode.tupleItems = itemSchema.items.length; if (utility_functions_1.hasOwn(itemSchema, 'additionalItems')) { newNode.listItems = utility_functions_1.hasOwn(itemSchema, 'maxItems') ? itemSchema.maxItems - itemSchema.items.length : true; } else { newNode.listItems = false; } } else { newNode.tupleItems = false; newNode.listItems = itemSchema.maxItems || true; } } if (!newNode.options.title && newNode.options.legend) { newNode.options.title = newNode.options.legend; } else if (!newNode.options.title) { newNode.options.title = utility_functions_1.toTitleCase(newNode.name.replace(/_/g, ' ')); } if (json_schema_functions_1.isInputRequired(jsf.schema, newNode.dataPointer)) { newNode.options.required = true; jsf.fieldsRequired = true; } } else { json_schema_functions_1.updateInputOptions(newNode, {}, jsf); } newNode.widget = widgetLibrary.getWidget(newNode.type); jsf.dataMap.get(newNode.dataPointer).set('inputType', newNode.type); jsf.dataMap.get(newNode.dataPointer).set('widget', newNode.widget); if (newNode.dataType === 'array' && utility_functions_1.hasOwn(newNode, 'items')) { if (newNode.options.required && !newNode.minItems) newNode.minItems = 1; var arrayPointer = newNode.dataPointer + '/-'; if (!jsf.dataMap.has(arrayPointer)) { jsf.dataMap.set(arrayPointer, new Map); } jsf.dataMap.get(arrayPointer).set('inputType', 'section'); if (newNode.items.length > 1) { var arrayItemGroup = []; var arrayItemGroupTemplate = []; var newIndex = 0; for (var i = newNode.items.length - 1, l = 0; i >= l; i--) { var subItem = newNode.items[i]; if (utility_functions_1.hasOwn(subItem, 'dataPointer') && subItem.dataPointer.slice(0, arrayPointer.length) === arrayPointer) { var arrayItem = newNode.items.splice(i, 1)[0]; var arrayItemTemplate = mapLayout([arrayItem], function (templateItem) { templateItem.layoutPointer = templateItem.layoutPointer .replace(newNode.layoutPointer, newNode.layoutPointer + '/items/-'); return templateItem; })[0]; arrayItemGroupTemplate.unshift(arrayItemTemplate); arrayItem.dataPointer = newNode.dataPointer + '/-' + arrayItem.dataPointer.slice(arrayPointer.length); arrayItem.layoutPointer = newNode.layoutPointer + '/items/-/items/-'; arrayItemGroup.unshift(arrayItem); newIndex++; } else { subItem.arrayItem = true; subItem.arrayItemType = 'list'; subItem.removable = newNode.options.removable || !newNode.options.minItems; } } if (arrayItemGroup.length) { newNode.items.push({ arrayItem: true, items: arrayItemGroup, layoutPointer: newNode.layoutPointer + '/items/-', options: { arrayItemType: newNode.tupleItems > newNode.items.length ? 'tuple' : 'list', removable: newNode.options.removable !== false && (newNode.options.minItems || 0) <= newNode.items.length, }, dataPointer: newNode.dataPointer + '/-', type: 'fieldset', widget: widgetLibrary.getWidget('fieldset'), }); } } else { newNode.items[0].arrayItem = true; if (!newNode.items[0].dataPointer) { newNode.items[0].dataPointer = jsonpointer_functions_1.JsonPointer.toGenericPointer(arrayPointer, jsf.arrayMap); } if (newNode.options.minItems) { newNode.items[0].options.removable = false; } else if (!jsonpointer_functions_1.JsonPointer.has(newNode, '/items/0/options/removable')) { newNode.items[0].options.removable = true; } newNode.items[0].options.arrayItemType = newNode.tupleItems ? 'tuple' : 'list'; } if (newNode.options.addable !== false) { jsf.layoutRefLibrary['#' + arrayPointer] = _.cloneDeep(newNode.items[newNode.items.length - 1]); var initialNodeData = jsonpointer_functions_1.JsonPointer.get(jsf.initialValues, newNode.dataPointer); if (validator_functions_1.isArray(initialNodeData) && initialNodeData.length > newNode.items.length) { for (var i = newNode.items.length, l = initialNodeData.length; i < l; i++) { newNode.items .push(_.cloneDeep(jsf.layoutRefLibrary['#' + arrayPointer])); } } var buttonText = 'Add'; if (newNode.options.title) { buttonText += ' ' + newNode.options.title; } else if (newNode.name) { buttonText += ' ' + utility_functions_1.toTitleCase(newNode.name.replace(/_/g, ' ')); } else { var parentSchema = json_schema_functions_1.getFromSchema(jsf.schema, newNode.dataPointer, true); if (utility_functions_1.hasOwn(parentSchema, 'title')) { buttonText += ' to ' + parentSchema.title; } } var dataPointer = jsonpointer_functions_1.JsonPointer.toGenericPointer(arrayPointer, jsf.arrayMap); var newNodeRef = { arrayItem: true, dataPointer: dataPointer, layoutPointer: newNode.layoutPointer + '/items/-', listItems: newNode.listItems, options: { arrayItemType: 'list', removable: !!newNode.options.removable, title: buttonText, }, tupleItems: newNode.tupleItems, type: '$ref', widget: widgetLibrary.getWidget('$ref'), $ref: '#' + dataPointer, }; if (validator_functions_1.isDefined(newNode.options.maxItems)) { newNodeRef.options.maxItems = newNode.options.maxItems; } if (validator_functions_1.isString(jsonpointer_functions_1.JsonPointer.get(newNode, '/style/add'))) { newNodeRef.options.fieldStyle = newNode.style.add; delete newNode.style.add; if (validator_functions_1.isEmpty(newNode.style)) delete newNode.style; } newNode.items.push(newNodeRef); } } else { newNode.arrayItem = false; } } else if (utility_functions_1.hasOwn(newNode, 'type')) { newNode.arrayItem = false; newNode.widget = widgetLibrary.getWidget(newNode.type); json_schema_functions_1.updateInputOptions(newNode, {}, jsf); } if (newNode.type === 'submit') hasSubmitButton = true; return newNode; }); if (!hasSubmitButton) { formLayout.push({ options: { title: 'Submit', }, type: 'submit', widget: widgetLibrary.getWidget('submit'), }); } return formLayout; } exports.buildLayout = buildLayout; function buildLayoutFromSchema(jsf, widgetLibrary, layoutPointer, schemaPointer, dataPointer, arrayItem, arrayItemType, removable, forRefLibrary) { if (layoutPointer === void 0) { layoutPointer = ''; } if (schemaPointer === void 0) { schemaPointer = ''; } if (dataPointer === void 0) { dataPointer = ''; } if (arrayItem === void 0) { arrayItem = false; } if (arrayItemType === void 0) { arrayItemType = null; } if (removable === void 0) { removable = null; } if (forRefLibrary === void 0) { forRefLibrary = false; } var schema = jsonpointer_functions_1.JsonPointer.get(jsf.schema, schemaPointer); if (!utility_functions_1.hasOwn(schema, 'type') && !utility_functions_1.hasOwn(schema, 'x-schema-form') && !utility_functions_1.hasOwn(schema, '$ref')) return null; var newNodeType = json_schema_functions_1.getInputType(schema); var newNode = { _id: _.uniqueId(), arrayItem: arrayItem, dataPointer: jsonpointer_functions_1.JsonPointer.toGenericPointer(dataPointer, jsf.arrayMap), dataType: schema.type || (utility_functions_1.hasOwn(schema, '$ref') ? '$ref' : null), layoutPointer: layoutPointer.replace(/\/\d+/g, '/-') || '/-', options: {}, type: newNodeType, widget: widgetLibrary.getWidget(newNodeType), }; var lastDataKey = jsonpointer_functions_1.JsonPointer.toKey(newNode.dataPointer); if (lastDataKey !== '-') newNode.name = lastDataKey; if (newNode.arrayItem) { newNode.options.arrayItemType = arrayItemType; newNode.options.removable = removable; } if (dataPointer !== '') { if (!jsf.dataMap.has(newNode.dataPointer)) { jsf.dataMap.set(newNode.dataPointer, new Map); } jsf.dataMap.get(newNode.dataPointer).set('schemaPointer', schemaPointer); jsf.dataMap.get(newNode.dataPointer).set('inputType', newNode.type); jsf.dataMap.get(newNode.dataPointer).set('widget', newNode.widget); } json_schema_functions_1.updateInputOptions(newNode, schema, jsf); if (!newNode.options.title && newNode.options.legend) { newNode.options.title = newNode.options.legend; } else if (!newNode.options.title && newNode.name) { newNode.options.title = utility_functions_1.toTitleCase(newNode.name.replace(/_/g, ' ')); } if (newNode.dataType === 'object') { var newFieldset = []; var newKeys = []; if (validator_functions_1.isObject(schema.properties)) { newKeys = validator_functions_1.isArray(schema.properties['ui:order']) ? schema['properties']['ui:order'] : Object.keys(schema['properties']); } else if (utility_functions_1.hasOwn(schema, 'additionalProperties')) { return null; } for (var _i = 0, newKeys_1 = newKeys; _i < newKeys_1.length; _i++) { var key = newKeys_1[_i]; if (utility_functions_1.hasOwn(schema.properties, key)) { var newLayoutPointer = void 0; if (newNode.layoutPointer === '' && !forRefLibrary) { newLayoutPointer = '/-'; } else { newLayoutPointer = newNode.layoutPointer + '/items/-'; } var innerItem = buildLayoutFromSchema(jsf, widgetLibrary, newLayoutPointer, schemaPointer + '/properties/' + key, dataPointer + '/' + key, false, null, null, forRefLibrary); if (innerItem) { if (json_schema_functions_1.isInputRequired(schema, '/' + key)) { innerItem.options.required = true; jsf.fieldsRequired = true; } newFieldset.push(innerItem); } } } newNode.items = newFieldset; } else if (newNode.dataType === 'array') { newNode.items = []; var templateArray = []; if (!forRefLibrary) { var templateControl = form_group_functions_1.getControl(jsf.formGroupTemplate, dataPointer); if (utility_functions_1.hasOwn(templateControl, 'controls')) { templateArray = templateControl['controls']; } } if (!newNode.minItems && json_schema_functions_1.isInputRequired(jsf.schema, schemaPointer)) { newNode.minItems = 1; } var minItems_1 = newNode.minItems || 0; var maxItems = newNode.maxItems || 1000000; if (validator_functions_1.isDefined(newNode.options.removable)) { removable = newNode.options.removable; } else if (!validator_functions_1.isDefined(removable)) { removable = true; } var additionalItems = null; if (validator_functions_1.isArray(schema.items)) { newNode.tupleItems = schema.items.length; if (utility_functions_1.hasOwn(schema, 'additionalItems')) { newNode.listItems = utility_functions_1.hasOwn(schema, 'maxItems') ? schema.maxItems - schema.items.length : true; } else { newNode.listItems = false; } newNode.items = _.filter(_.map(schema.items, function (item, i) { return buildLayoutFromSchema(jsf, widgetLibrary, newNode.layoutPointer + '/items/-', schemaPointer + '/items/' + i, dataPointer + '/' + i, true, 'tuple', removable && i >= minItems_1, forRefLibrary); })); if (newNode.items.length < maxItems && utility_functions_1.hasOwn(schema, 'additionalItems') && validator_functions_1.isObject(schema.additionalItems)) { if (newNode.items.length < templateArray.length) { for (var i = newNode.items.length, l = templateArray.length; i < l; i++) { newNode.items.push(buildLayoutFromSchema(jsf, widgetLibrary, newNode.layoutPointer + '/items/-', schemaPointer + '/additionalItems', dataPointer + '/' + i, true, 'list', removable && i >= minItems_1, forRefLibrary)); } } else if (newNode.items.length > templateArray.length) { for (var i = templateArray.length, l = newNode.items.length; i < l; i++) { templateArray.push(form_group_functions_1.buildFormGroupTemplate(jsf, null, false, schemaPointer + '/additionalItems', dataPointer + '/' + i, jsonpointer_functions_1.JsonPointer.toControlPointer(jsf.formGroupTemplate, dataPointer + '/' + i))); } } if (newNode.items.length < maxItems && newNode.options.addable !== false && jsonpointer_functions_1.JsonPointer.get(newNode.items[newNode.items.length - 1], '/type') !== '$ref') { additionalItems = buildLayoutFromSchema(jsf, widgetLibrary, newNode.layoutPointer + '/items/-', schemaPointer + '/additionalItems', dataPointer + '/-', true, 'list', removable, forRefLibrary); } } } else { newNode.tupleItems = false; newNode.listItems = schema.maxItems || true; for (var i = 0, l = Math.max(templateArray.length, minItems_1, 1); i < l; i++) { newNode.items.push(buildLayoutFromSchema(jsf, widgetLibrary, newNode.layoutPointer + '/items/-', schemaPointer + '/items', dataPointer + '/' + i, true, 'list', removable && i >= minItems_1, forRefLibrary)); } if (newNode.items.length < maxItems && newNode.options.addable !== false && jsonpointer_functions_1.JsonPointer.get(newNode.items[newNode.items.length - 1], '/type') !== '$ref') { additionalItems = buildLayoutFromSchema(jsf, widgetLibrary, newNode.layoutPointer + '/items/-', schemaPointer + '/items', dataPointer + '/-', true, 'list', removable, forRefLibrary); } } if (additionalItems) { jsf.layoutRefLibrary['#' + dataPointer + '/-'] = additionalItems; delete jsf.layoutRefLibrary['#' + dataPointer + '/-']['key']; delete jsf.layoutRefLibrary['#' + dataPointer + '/-']['name']; var buttonText = 'Add '; if (additionalItems.options.title) { buttonText += additionalItems.options.title; } else if (schema.title) { buttonText += 'to ' + schema.title; } else { buttonText += 'to ' + utility_functions_1.toTitleCase(jsonpointer_functions_1.JsonPointer.toKey(dataPointer).replace(/_/g, ' ')); } var newNodeRef = { arrayItem: true, dataPointer: dataPointer + '/-', layoutPointer: newNode.layoutPointer + '/items/-', listItems: newNode.listItems, options: { arrayItemType: 'list', removable: false, title: buttonText, }, tupleItems: newNode.tupleItems, type: '$ref', widget: widgetLibrary.getWidget('$ref'), $ref: '#' + dataPointer + '/-', }; if (validator_functions_1.isDefined(newNode.options.maxItems)) { newNodeRef.options.maxItems = newNode.options.maxItems; } newNode.items.push(newNodeRef); } else if (jsonpointer_functions_1.JsonPointer.get(newNode.items[newNode.items.length - 1], '/type') === '$ref') { Object.assign(newNode.items[newNode.items.length - 1], { listItems: newNode.listItems, tupleItems: newNode.tupleItems, }); if (validator_functions_1.isNumber(jsonpointer_functions_1.JsonPointer.get(jsf.schema, schemaPointer, 0, -1).maxItems)) { newNode.items[newNode.items.length - 1].options.maxItems = jsonpointer_functions_1.JsonPointer.get(jsf.schema, schemaPointer, 0, -1).maxItems; } } } else if (newNode.dataType === '$ref') { var buttonText = 'Add'; if (newNode.options.title) { buttonText += ' ' + newNode.options.title; } else if (newNode.name) { buttonText += ' ' + utility_functions_1.toTitleCase(newNode.name.replace(/_/g, ' ')); } else if (utility_functions_1.hasOwn(jsonpointer_functions_1.JsonPointer.get(jsf.schema, schemaPointer, 0, -1), 'title')) { buttonText += ' to ' + jsonpointer_functions_1.JsonPointer.get(jsf.schema, schemaPointer, 0, -1).title; } Object.assign(newNode, { circularReference: true, widget: widgetLibrary.getWidget('$ref'), $ref: schema.$ref, }); Object.assign(newNode.options, { removable: false, title: buttonText, }); if (validator_functions_1.isNumber(jsonpointer_functions_1.JsonPointer.get(jsf.schema, schemaPointer, 0, -1).maxItems)) { newNode.options.maxItems = jsonpointer_functions_1.JsonPointer.get(jsf.schema, schemaPointer, 0, -1).maxItems; } if (!forRefLibrary) { var schemaRef = jsonpointer_functions_1.JsonPointer.compile(schema.$ref); if (jsonpointer_functions_1.JsonPointer.isSubPointer(schemaRef, newNode.dataPointer)) { jsf.dataCircularRefMap.set(newNode.dataPointer, schemaRef); } else { jsf.dataCircularRefMap.set(schema.$ref, newNode.dataPointer); } } else if (jsf.dataCircularRefMap.has(schema.$ref) && !jsf.dataCircularRefMap.has(jsf.dataCircularRefMap.get(schema.$ref))) { if (newNode.dataPointer === jsf.dataCircularRefMap .get(schema.$ref).slice(-newNode.dataPointer.length)) { jsf.dataCircularRefMap.set(jsf.dataCircularRefMap.get(schema.$ref), jsf.dataCircularRefMap.get(schema.$ref).slice(0, -newNode.dataPointer.length)); } else { jsf.dataCircularRefMap.set(jsf.dataCircularRefMap.get(schema.ref) + newNode.dataPointer, jsf.dataCircularRefMap.get(schema.$ref)); } } if (!utility_functions_1.hasOwn(jsf.layoutRefLibrary, schema.$ref)) { jsf.layoutRefLibrary[schema.$ref] = null; jsf.layoutRefLibrary[schema.$ref] = buildLayoutFromSchema(jsf, widgetLibrary, '', jsonpointer_functions_1.JsonPointer.compile(schema.$ref), '', newNode.arrayItem, newNode.arrayItemType, true, true); } } return newNode; } exports.buildLayoutFromSchema = buildLayoutFromSchema; function mapLayout(layout, fn, layoutPointer, rootLayout) { if (layoutPointer === void 0) { layoutPointer = ''; } if (rootLayout === void 0) { rootLayout = layout; } var indexPad = 0; var newLayout = []; utility_functions_1.forEach(layout, function (item, index) { var realIndex = +index + indexPad; var newLayoutPointer = layoutPointer + '/' + realIndex; var newNode = utility_functions_1.copy(item); var itemsArray = []; if (validator_functions_1.isObject(item)) { if (utility_functions_1.hasOwn(item, 'items')) { itemsArray = validator_functions_1.isArray(item.items) ? item.items : [item.items]; } else if (utility_functions_1.hasOwn(item, 'tabs')) { itemsArray = validator_functions_1.isArray(item.tabs) ? item.tabs : [item.tabs]; } } if (itemsArray.length) { newNode.items = mapLayout(itemsArray, fn, newLayoutPointer + '/items', rootLayout); } newNode = fn(newNode, realIndex, newLayoutPointer, rootLayout); if (!validator_functions_1.isDefined(newNode)) { indexPad--; } else { if (validator_functions_1.isArray(newNode)) indexPad += newNode.length - 1; newLayout = newLayout.concat(newNode); } }); return newLayout; } exports.mapLayout = mapLayout; ; function buildTitleMap(titleMap, enumList, fieldRequired) { if (fieldRequired === void 0) { fieldRequired = true; } var newTitleMap = []; var hasEmptyValue = false; if (titleMap) { if (validator_functions_1.isArray(titleMap)) { if (enumList) { for (var _i = 0, _a = Object.keys(titleMap); _i < _a.length; _i++) { var i = _a[_i]; if (validator_functions_1.isObject(titleMap[i])) { var value = titleMap[i].value; if (enumList.indexOf(value) !== -1) { var name_1 = titleMap[i].name; newTitleMap.push({ name: name_1, value: value }); if (!value) hasEmptyValue = true; } } else if (validator_functions_1.isString(titleMap[i])) { if (i < enumList.length) { var name_2 = titleMap[i]; var value = enumList[i]; newTitleMap.push({ name: name_2, value: value }); if (!value) hasEmptyValue = true; } } } } else { newTitleMap = titleMap; if (!fieldRequired) hasEmptyValue = !!newTitleMap.filter(function (i) { return !i.value; }).length; } } else if (enumList) { for (var _b = 0, _c = Object.keys(enumList); _b < _c.length; _b++) { var i = _c[_b]; var value = enumList[i]; if (utility_functions_1.hasOwn(titleMap, value)) { var name_3 = titleMap[value]; newTitleMap.push({ name: name_3, value: value }); if (!value) hasEmptyValue = true; } } } else { for (var _d = 0, _e = Object.keys(titleMap); _d < _e.length; _d++) { var value = _e[_d]; var name_4 = titleMap[value]; newTitleMap.push({ name: name_4, value: value }); if (!value) hasEmptyValue = true; } } } else if (enumList) { for (var _f = 0, _g = Object.keys(enumList); _f < _g.length; _f++) { var i = _g[_f]; var name_5 = enumList[i]; var value = enumList[i]; newTitleMap.push({ name: name_5, value: value }); if (!value) hasEmptyValue = true; } } else { newTitleMap = [{ name: 'True', value: true }, { name: 'False', value: false }]; } if (!fieldRequired && !hasEmptyValue) { newTitleMap.unshift({ name: '', value: '' }); } return newTitleMap; } exports.buildTitleMap = buildTitleMap; //# sourceMappingURL=layout.functions.js.map