diff --git a/README.md b/README.md
index d7f19ce1..ae50bd96 100755
--- a/README.md
+++ b/README.md
@@ -335,11 +335,11 @@ let yourFormLayout = [
]
```
-To set messages for the entire form, add them to the form options, inside the defautWidgetOptions validationMessages object, like this:
+To set messages for the entire form, add them to the form options, inside the defaultWidgetOptions validationMessages object, like this:
```javascript
let yourFormOptions = {
- defautWidgetOptions: {
+ defaultWidgetOptions: {
validationMessages: {
// Put your error messages for the entire form here
}
diff --git a/src/demo/app/demo.component.html b/src/demo/app/demo.component.html
index 637159f1..70c55578 100755
--- a/src/demo/app/demo.component.html
+++ b/src/demo/app/demo.component.html
@@ -112,7 +112,7 @@
(default = only add if no layout is defined)
-
+
Show inline fedback?
(default = false)
diff --git a/src/demo/app/demo.component.ts b/src/demo/app/demo.component.ts
index b21d1347..d63786c6 100755
--- a/src/demo/app/demo.component.ts
+++ b/src/demo/app/demo.component.ts
@@ -63,7 +63,7 @@ export class DemoComponent implements OnInit {
loadExternalAssets: true, // Load external css and JavaScript for frameworks
returnEmptyFields: false, // Don't return values for empty input fields
setSchemaDefaults: true, // Always use schema defaults for empty fields
- defautWidgetOptions: { feedback: true }, // Show inline feedback icons
+ defaultWidgetOptions: { feedback: true }, // Show inline feedback icons
};
liveFormData: any = {};
formValidationErrors: any;
@@ -245,8 +245,8 @@ export class DemoComponent implements OnInit {
toggleFormOption(option: string) {
if (option === 'feedback') {
- this.jsonFormOptions.defautWidgetOptions.feedback =
- !this.jsonFormOptions.defautWidgetOptions.feedback;
+ this.jsonFormOptions.defaultWidgetOptions.feedback =
+ !this.jsonFormOptions.defaultWidgetOptions.feedback;
} else {
this.jsonFormOptions[option] = !this.jsonFormOptions[option];
}
diff --git a/src/lib/src/json-schema-form.service.ts b/src/lib/src/json-schema-form.service.ts
index 372f51c2..ca4d6514 100755
--- a/src/lib/src/json-schema-form.service.ts
+++ b/src/lib/src/json-schema-form.service.ts
@@ -100,8 +100,8 @@ export class JsonSchemaFormService {
// false = only validate fields after they are touched by user
// 'auto' = validate fields with values immediately, empty fields after they are touched
widgets: {}, // Any custom widgets to load
- defautWidgetOptions: { // Default options for form control widgets
- listItems: 1, // Number of list items to initially add to arrays with no default value
+ defaultWidgetOptions: { // Default options for form control widgets
+ listItems: 0, // Number of list items to initially add to arrays with no default value
addable: true, // Allow adding items to an array or $ref point?
orderable: true, // Allow reordering items within an array?
removable: true, // Allow removing items from an array or $ref point?
@@ -127,7 +127,7 @@ export class JsonSchemaFormService {
this.language = language;
const validationMessages = language.slice(0, 2) === 'fr' ?
frValidationMessages : enValidationMessages;
- this.defaultFormOptions.defautWidgetOptions.validationMessages =
+ this.defaultFormOptions.defaultWidgetOptions.validationMessages =
_.cloneDeep(validationMessages);
}
@@ -244,19 +244,19 @@ export class JsonSchemaFormService {
setOptions(newOptions: any) {
if (isObject(newOptions)) {
const addOptions = _.cloneDeep(newOptions);
- // Backward compatibility for 'defaultOptions' (renamed 'defautWidgetOptions')
+ // Backward compatibility for 'defaultOptions' (renamed 'defaultWidgetOptions')
if (isObject(addOptions.defaultOptions)) {
- Object.assign(this.formOptions.defautWidgetOptions, addOptions.defaultOptions);
+ Object.assign(this.formOptions.defaultWidgetOptions, addOptions.defaultOptions);
delete addOptions.defaultOptions;
}
- if (isObject(addOptions.defautWidgetOptions)) {
- Object.assign(this.formOptions.defautWidgetOptions, addOptions.defautWidgetOptions);
- delete addOptions.defautWidgetOptions;
+ if (isObject(addOptions.defaultWidgetOptions)) {
+ Object.assign(this.formOptions.defaultWidgetOptions, addOptions.defaultWidgetOptions);
+ delete addOptions.defaultWidgetOptions;
}
Object.assign(this.formOptions, addOptions);
// convert disableErrorState / disableSuccessState to enable...
- const globalDefaults = this.formOptions.defautWidgetOptions;
+ const globalDefaults = this.formOptions.defaultWidgetOptions;
['ErrorState', 'SuccessState']
.filter(suffix => hasOwn(globalDefaults, 'disable' + suffix))
.forEach(suffix => {
diff --git a/src/lib/src/shared/json-schema.functions.ts b/src/lib/src/shared/json-schema.functions.ts
index 7ec27d9c..37aa9f4e 100755
--- a/src/lib/src/shared/json-schema.functions.ts
+++ b/src/lib/src/shared/json-schema.functions.ts
@@ -411,7 +411,7 @@ export function updateInputOptions(layoutNode, schema, jsf) {
// Set all option values in layoutNode.options
let newOptions: any = { };
const fixUiKeys = key => key.slice(0, 3).toLowerCase() === 'ui:' ? key.slice(3) : key;
- mergeFilteredObject(newOptions, jsf.formOptions.defautWidgetOptions, [], fixUiKeys);
+ mergeFilteredObject(newOptions, jsf.formOptions.defaultWidgetOptions, [], fixUiKeys);
[ [ JsonPointer.get(schema, '/ui:widget/options'), [] ],
[ JsonPointer.get(schema, '/ui:widget'), [] ],
[ schema, [
diff --git a/src/lib/src/shared/layout.functions.ts b/src/lib/src/shared/layout.functions.ts
index 7b6311b3..88044c5e 100755
--- a/src/lib/src/shared/layout.functions.ts
+++ b/src/lib/src/shared/layout.functions.ts
@@ -225,11 +225,6 @@ export function buildLayout(jsf, widgetLibrary) {
) {
newNode.options.listItems =
newNode.options.maxItems - newNode.options.tupleItems;
- } else if (newNode.options.minItems >
- newNode.options.tupleItems + newNode.options.listItems
- ) {
- newNode.options.listItems =
- newNode.options.minItems - newNode.options.tupleItems;
}
if (!nodeDataMap.has('maxItems')) {
nodeDataMap.set('maxItems', newNode.options.maxItems);
@@ -454,7 +449,7 @@ export function buildLayout(jsf, widgetLibrary) {
dataType: 'object',
items: fullLayout,
name: '',
- options: _.cloneDeep(jsf.formOptions.defautWidgetOptions),
+ options: _.cloneDeep(jsf.formOptions.defaultWidgetOptions),
recursiveReference: true,
required: false,
type: 'section',
@@ -599,7 +594,9 @@ export function buildLayoutFromSchema(
if (!newNode.options.minItems && isInputRequired(jsf.schema, schemaPointer)) {
newNode.options.minItems = 1;
}
- if (!hasOwn(newNode.options, 'listItems')) { newNode.options.listItems = 1; }
+ if (!hasOwn(newNode.options, 'listItems')) {
+ newNode.options.listItems = jsf.formOptions.defaultWidgetOptions.listItems;
+ }
newNode.options.tupleItems = isArray(schema.items) ? schema.items.length : 0;
if (newNode.options.maxItems <= newNode.options.tupleItems) {
newNode.options.tupleItems = newNode.options.maxItems;
@@ -608,10 +605,6 @@ export function buildLayoutFromSchema(
newNode.options.tupleItems + newNode.options.listItems
) {
newNode.options.listItems = newNode.options.maxItems - newNode.options.tupleItems;
- } else if (newNode.options.minItems >
- newNode.options.tupleItems + newNode.options.listItems
- ) {
- newNode.options.listItems = newNode.options.minItems - newNode.options.tupleItems;
}
if (!nodeDataMap.has('maxItems')) {
nodeDataMap.set('maxItems', newNode.options.maxItems);