\$<\/div>.*input/,
+ done,
+ );
+ });
+
+ it('Should set the suffix of the input', function (done) {
+ Harness.testBuilderProperty(
+ 'suffix',
+ '',
+ 'USD',
+ /div class="input-group">.*input.*
USD<\/div>/,
+ done,
+ );
+ });
+
+ it('Should set the custom css class of the input', function (done) {
+ Harness.testBuilderProperty(
+ 'customClass',
+ '',
+ 'custom-text-field',
+ null,
+ () => {
+ assert(
+ builder.preview.hasClass(
+ builder.preview.element,
+ 'custom-text-field',
+ ),
+ 'Preview should have this custom class',
+ );
+ done();
+ },
+ );
+ });
+
+ it('Should set the tab index of the input element', function (done) {
+ Harness.testBuilderProperty('tabindex', '', 10, null, () => {
+ assert.equal(builder.preview.inputs[0].tabIndex, 10);
+ done();
+ });
+ });
+
+ it('Should allow you to set the multiple flag', function (done) {
+ Harness.testBuilderProperty('multiple', false, true, null, () => {
+ done();
+ });
});
- });
});
diff --git a/src/components/textfield/TextField.form.js b/src/components/textfield/TextField.form.js
index 50c8c4738e..4b0441ae5c 100644
--- a/src/components/textfield/TextField.form.js
+++ b/src/components/textfield/TextField.form.js
@@ -4,19 +4,22 @@ import TextFieldEditData from './editForm/TextField.edit.data';
import TextFieldEditDisplay from './editForm/TextField.edit.display';
import TextFieldEditValidation from './editForm/TextField.edit.validation';
-export default function(...extend) {
- return Components.baseEditForm([
- {
- key: 'display',
- components: TextFieldEditDisplay
- },
- {
- key: 'data',
- components: TextFieldEditData
- },
- {
- key: 'validation',
- components: TextFieldEditValidation
- },
- ], ...extend);
+export default function (...extend) {
+ return Components.baseEditForm(
+ [
+ {
+ key: 'display',
+ components: TextFieldEditDisplay,
+ },
+ {
+ key: 'data',
+ components: TextFieldEditData,
+ },
+ {
+ key: 'validation',
+ components: TextFieldEditValidation,
+ },
+ ],
+ ...extend,
+ );
}
diff --git a/src/components/textfield/TextField.js b/src/components/textfield/TextField.js
index f795ccc9ec..0b1440db26 100644
--- a/src/components/textfield/TextField.js
+++ b/src/components/textfield/TextField.js
@@ -5,328 +5,377 @@ import * as FormioUtils from '../../utils/utils';
import _ from 'lodash';
export default class TextFieldComponent extends Input {
- static schema(...extend) {
- return Input.schema({
- label: 'Text Field',
- key: 'textField',
- type: 'textfield',
- mask: false,
- inputType: 'text',
- inputFormat: 'plain',
- inputMask: '',
- displayMask: '',
- tableView: true,
- spellcheck: true,
- truncateMultipleSpaces: false,
- validate: {
- minLength: '',
- maxLength: '',
- pattern: ''
- }
- }, ...extend);
- }
-
- static get builderInfo() {
- return {
- title: 'Text Field',
- icon: 'terminal',
- group: 'basic',
- documentation: '/userguide/form-building/form-components#text-field',
- weight: 0,
- schema: TextFieldComponent.schema()
- };
- }
-
- static get serverConditionSettings() {
- return TextFieldComponent.conditionOperatorsSettings;
- }
-
- static get conditionOperatorsSettings() {
- return {
- ...super.conditionOperatorsSettings,
- operators: [...super.conditionOperatorsSettings.operators, 'includes', 'notIncludes', 'endsWith', 'startsWith'],
- valueComponent(classComp) {
+ static schema(...extend) {
+ return Input.schema(
+ {
+ label: 'Text Field',
+ key: 'textField',
+ type: 'textfield',
+ mask: false,
+ inputType: 'text',
+ inputFormat: 'plain',
+ inputMask: '',
+ displayMask: '',
+ tableView: true,
+ spellcheck: true,
+ truncateMultipleSpaces: false,
+ validate: {
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ },
+ },
+ ...extend,
+ );
+ }
+
+ static get builderInfo() {
return {
- ...classComp,
- type: 'textfield',
+ title: 'Text Field',
+ icon: 'terminal',
+ group: 'basic',
+ documentation:
+ '/userguide/form-building/form-components#text-field',
+ weight: 0,
+ schema: TextFieldComponent.schema(),
};
- }
- };
- }
-
- static savedValueTypes(schema) {
- return FormioUtils.getComponentSavedTypes(schema) || [FormioUtils.componentValueTypes.string];
- }
-
- get defaultSchema() {
- return TextFieldComponent.schema();
- }
-
- get inputInfo() {
- const info = super.inputInfo;
- info.type = 'input';
-
- if (Object.prototype.hasOwnProperty.call(this.component, 'spellcheck')) {
- info.attr.spellcheck = this.component.spellcheck;
}
- if (this.component.mask) {
- info.attr.type = 'password';
- }
- else {
- info.attr.type = (this.component.inputType === 'password') ? 'password' : 'text';
+ static get serverConditionSettings() {
+ return TextFieldComponent.conditionOperatorsSettings;
}
- info.changeEvent = (this.component.applyMaskOn === 'blur') ? 'blur' : 'input';
- return info;
- }
-
- get emptyValue() {
- return '';
- }
-
- constructor(component, options, data) {
- super(component, options, data);
-
- const timezone = (this.component.widget?.timezone || this.options.timezone);
- const displayInTimezone = (this.component.widget?.displayInTimezone || 'viewer');
-
- if (this.component.widget?.type === 'calendar') {
- this.component.widget = {
- ...this.component.widget,
- readOnly: this.options.readOnly,
- timezone,
- displayInTimezone,
- locale: this.component.widget.locale || this.options.language,
- saveAs: 'text'
- };
- }
- }
-
- attach(element) {
- this.loadRefs(element, {
- valueMaskInput: 'single',
- });
- return super.attach(element);
- }
-
- /**
- * Returns the mask value object.
- *
- * @param value
- * @param flags
- * @return {*}
- */
- maskValue(value, flags = {}) {
- // Convert it into the correct format.
- if (!value || (typeof value !== 'object')) {
- value = {
- value,
- maskName: this.component.inputMasks[0].label
- };
+
+ static get conditionOperatorsSettings() {
+ return {
+ ...super.conditionOperatorsSettings,
+ operators: [
+ ...super.conditionOperatorsSettings.operators,
+ 'includes',
+ 'notIncludes',
+ 'endsWith',
+ 'startsWith',
+ ],
+ valueComponent(classComp) {
+ return {
+ ...classComp,
+ type: 'textfield',
+ };
+ },
+ };
}
- // If no value is provided, then set the defaultValue.
- if (!value.value) {
- const defaultValue = flags.noDefault ? this.emptyValue : this.defaultValue;
- value.value = Array.isArray(defaultValue) ? defaultValue[0] : defaultValue;
+ static savedValueTypes(schema) {
+ return (
+ FormioUtils.getComponentSavedTypes(schema) || [
+ FormioUtils.componentValueTypes.string,
+ ]
+ );
}
- return value;
- }
-
- /**
- * Normalize the value set in the data object.
- *
- * @param value
- * @param flags
- * @return {*}
- */
- normalizeValue(value, flags = {}) {
- if (!this.isMultipleMasksField) {
- return super.normalizeValue(value);
+ get defaultSchema() {
+ return TextFieldComponent.schema();
}
- if (Array.isArray(value)) {
- return super.normalizeValue(value.map((val) => this.maskValue(val, flags)));
+
+ get inputInfo() {
+ const info = super.inputInfo;
+ info.type = 'input';
+
+ if (
+ Object.prototype.hasOwnProperty.call(this.component, 'spellcheck')
+ ) {
+ info.attr.spellcheck = this.component.spellcheck;
+ }
+
+ if (this.component.mask) {
+ info.attr.type = 'password';
+ } else {
+ info.attr.type =
+ this.component.inputType === 'password' ? 'password' : 'text';
+ }
+ info.changeEvent =
+ this.component.applyMaskOn === 'blur' ? 'blur' : 'input';
+ return info;
}
- return super.normalizeValue(this.maskValue(value, flags));
- }
-
- /**
- * Sets the value at this index.
- *
- * @param index
- * @param value
- * @param flags
- */
- setValueAt(index, value, flags = {}) {
- if (!this.isMultipleMasksField) {
- return super.setValueAt(index, value, flags);
+
+ get emptyValue() {
+ return '';
}
- value = this.maskValue(value, flags);
- const textValue = value.value || '';
- const textInput = this.refs.mask ? this.refs.mask[index] : null;
- const maskInput = this.refs.select ? this.refs.select[index]: null;
- const mask = this.getMaskPattern(value.maskName);
- if (textInput && maskInput && mask) {
- if (textInput.inputmask) {
- this.setInputMask(textInput, mask);
- textInput.inputmask.setValue(textValue);
- }
- else {
- const placeholderChar = this.placeholderChar;
- textInput.value = conformToMask(textValue, FormioUtils.getInputMask(mask), { placeholderChar }).conformedValue;
- }
- maskInput.value = value.maskName;
+
+ constructor(component, options, data) {
+ super(component, options, data);
+
+ const timezone =
+ this.component.widget?.timezone || this.options.timezone;
+ const displayInTimezone =
+ this.component.widget?.displayInTimezone || 'viewer';
+
+ if (this.component.widget?.type === 'calendar') {
+ this.component.widget = {
+ ...this.component.widget,
+ readOnly: this.options.readOnly,
+ timezone,
+ displayInTimezone,
+ locale: this.component.widget.locale || this.options.language,
+ saveAs: 'text',
+ };
+ }
}
- else {
- return super.setValueAt(index, textValue, flags);
+
+ attach(element) {
+ this.loadRefs(element, {
+ valueMaskInput: 'single',
+ });
+ return super.attach(element);
}
- }
-
- unmaskValue(value, format = this.component.displayMask) {
- const mask = FormioUtils.getInputMask(format, this.placeholderChar);
-
- return FormioUtils.unmaskValue(value, mask, this.placeholderChar);
- }
-
- /**
- * Returns the value at this index.
- *
- * @param index
- * @return {*}
- */
- getValueAt(index) {
- if (!this.isMultipleMasksField) {
- const value = super.getValueAt(index);
- const valueMask = this.component.inputMask;
- const displayMask = this.component.displayMask;
-
- // If the input has only the valueMask or the displayMask is the same as the valueMask,
- // just return the value which is already formatted
- if (valueMask && !displayMask || displayMask === valueMask) {
- return value;
- }
- // If there is only the displayMask, return the raw (unmasked) value
- if (displayMask && !valueMask) {
- return this.unmaskValue(value, displayMask);
- }
+ /**
+ * Returns the mask value object.
+ *
+ * @param value
+ * @param flags
+ * @return {*}
+ */
+ maskValue(value, flags = {}) {
+ // Convert it into the correct format.
+ if (!value || typeof value !== 'object') {
+ value = {
+ value,
+ maskName: this.component.inputMasks[0].label,
+ };
+ }
- if (displayMask && displayMask !== valueMask) {
- return Inputmask.format(Inputmask.unmask(value, displayMask), valueMask);
- }
+ // If no value is provided, then set the defaultValue.
+ if (!value.value) {
+ const defaultValue = flags.noDefault
+ ? this.emptyValue
+ : this.defaultValue;
+ value.value = Array.isArray(defaultValue)
+ ? defaultValue[0]
+ : defaultValue;
+ }
- if (this.refs.valueMaskInput?.mask && this.refs.valueMaskInput.mask.textMaskInputElement) {
- this.refs.valueMaskInput.mask.textMaskInputElement.update(value);
- return this.refs.valueMaskInput?.value;
- }
+ return value;
+ }
- return value;
+ /**
+ * Normalize the value set in the data object.
+ *
+ * @param value
+ * @param flags
+ * @return {*}
+ */
+ normalizeValue(value, flags = {}) {
+ if (!this.isMultipleMasksField) {
+ return super.normalizeValue(value);
+ }
+ if (Array.isArray(value)) {
+ return super.normalizeValue(
+ value.map((val) => this.maskValue(val, flags)),
+ );
+ }
+ return super.normalizeValue(this.maskValue(value, flags));
}
- const textInput = this.refs.mask ? this.refs.mask[index] : null;
- const maskInput = this.refs.select ? this.refs.select[index]: null;
- return {
- value: textInput ? textInput.value : undefined,
- maskName: maskInput ? maskInput.value : undefined
- };
- }
- checkInputMaskValue(inputMask) {
- let valid = true;
- const maskValues = _.values(inputMask.split('').reduce((acc, el, i, mask) => {
- if (el === '{' || el === '}') {
- if (mask[i+1] === '{' || mask[i+1] === '}') {
- valid = false;
+
+ /**
+ * Sets the value at this index.
+ *
+ * @param index
+ * @param value
+ * @param flags
+ */
+ setValueAt(index, value, flags = {}) {
+ if (!this.isMultipleMasksField) {
+ return super.setValueAt(index, value, flags);
+ }
+ value = this.maskValue(value, flags);
+ const textValue = value.value || '';
+ const textInput = this.refs.mask ? this.refs.mask[index] : null;
+ const maskInput = this.refs.select ? this.refs.select[index] : null;
+ const mask = this.getMaskPattern(value.maskName);
+ if (textInput && maskInput && mask) {
+ if (textInput.inputmask) {
+ this.setInputMask(textInput, mask);
+ textInput.inputmask.setValue(textValue);
+ } else {
+ const placeholderChar = this.placeholderChar;
+ textInput.value = conformToMask(
+ textValue,
+ FormioUtils.getInputMask(mask),
+ { placeholderChar },
+ ).conformedValue;
+ }
+ maskInput.value = value.maskName;
+ } else {
+ return super.setValueAt(index, textValue, flags);
}
- acc[el] = (acc[el] ?? 0) + 1;
- }
- return acc;
- },{}));
- if (maskValues[0] !== maskValues[1]) {
- valid = false;
}
- return valid;
- }
- setInputMask(input, inputMask, usePlaceholder) {
- if (this.type !== 'textfield') {
- super.setInputMask(input, inputMask, usePlaceholder);
- return;
+ unmaskValue(value, format = this.component.displayMask) {
+ const mask = FormioUtils.getInputMask(format, this.placeholderChar);
+
+ return FormioUtils.unmaskValue(value, mask, this.placeholderChar);
}
- inputMask = inputMask || this.component.displayMask || this.component.inputMask;
- const mask = FormioUtils.getInputMask(inputMask, this.placeholderChar);
- this.defaultMask = mask;
+ /**
+ * Returns the value at this index.
+ *
+ * @param index
+ * @return {*}
+ */
+ getValueAt(index) {
+ if (!this.isMultipleMasksField) {
+ const value = super.getValueAt(index);
+ const valueMask = this.component.inputMask;
+ const displayMask = this.component.displayMask;
+
+ // If the input has only the valueMask or the displayMask is the same as the valueMask,
+ // just return the value which is already formatted
+ if ((valueMask && !displayMask) || displayMask === valueMask) {
+ return value;
+ }
+
+ // If there is only the displayMask, return the raw (unmasked) value
+ if (displayMask && !valueMask) {
+ return this.unmaskValue(value, displayMask);
+ }
+
+ if (displayMask && displayMask !== valueMask) {
+ return Inputmask.format(
+ Inputmask.unmask(value, displayMask),
+ valueMask,
+ );
+ }
+
+ if (
+ this.refs.valueMaskInput?.mask &&
+ this.refs.valueMaskInput.mask.textMaskInputElement
+ ) {
+ this.refs.valueMaskInput.mask.textMaskInputElement.update(
+ value,
+ );
+ return this.refs.valueMaskInput?.value;
+ }
+
+ return value;
+ }
+ const textInput = this.refs.mask ? this.refs.mask[index] : null;
+ const maskInput = this.refs.select ? this.refs.select[index] : null;
+ return {
+ value: textInput ? textInput.value : undefined,
+ maskName: maskInput ? maskInput.value : undefined,
+ };
+ }
+ checkInputMaskValue(inputMask) {
+ let valid = true;
+ const maskValues = _.values(
+ inputMask.split('').reduce((acc, el, i, mask) => {
+ if (el === '{' || el === '}') {
+ if (mask[i + 1] === '{' || mask[i + 1] === '}') {
+ valid = false;
+ }
+ acc[el] = (acc[el] ?? 0) + 1;
+ }
+ return acc;
+ }, {}),
+ );
+ if (maskValues[0] !== maskValues[1]) {
+ valid = false;
+ }
+ return valid;
+ }
- if (input && inputMask) {
- try {
- //remove previous mask
- if (input.mask) {
- input.mask.remove();
+ setInputMask(input, inputMask, usePlaceholder) {
+ if (this.type !== 'textfield') {
+ super.setInputMask(input, inputMask, usePlaceholder);
+ return;
}
- if (this.checkInputMaskValue(inputMask)) {
- input.mask = new Inputmask(inputMask, {
- clearMaskOnLostFocus: !!this.component.placeholder,
- showMaskOnHover: !this.component.placeholder,
- placeholder: this.placeholderChar || '',
- }).mask(input);
+
+ inputMask =
+ inputMask || this.component.displayMask || this.component.inputMask;
+ const mask = FormioUtils.getInputMask(inputMask, this.placeholderChar);
+ this.defaultMask = mask;
+
+ if (input && inputMask) {
+ try {
+ //remove previous mask
+ if (input.mask) {
+ input.mask.remove();
+ }
+ if (this.checkInputMaskValue(inputMask)) {
+ input.mask = new Inputmask(inputMask, {
+ clearMaskOnLostFocus: !!this.component.placeholder,
+ showMaskOnHover: !this.component.placeholder,
+ placeholder: this.placeholderChar || '',
+ }).mask(input);
+ }
+ } catch (e) {
+ console.warn(e);
+ }
+ if (mask.numeric) {
+ input.setAttribute('pattern', '\\d*');
+ }
+
+ if (this.component.placeholder) {
+ input.setAttribute('placeholder', this.component.placeholder);
+ }
}
- }
- catch (e) {
- console.warn(e);
- }
- if (mask.numeric) {
- input.setAttribute('pattern', '\\d*');
- }
-
- if (this.component.placeholder) {
- input.setAttribute('placeholder', this.component.placeholder);
- }
}
- }
-
- isHtmlRenderMode() {
- return super.isHtmlRenderMode() ||
- ((this.options.readOnly || this.disabled) &&
- this.component.inputFormat === 'html' &&
- this.type === 'textfield');
- }
-
- isEmpty(value = this.dataValue) {
- if (!this.isMultipleMasksField) {
- return super.isEmpty((value || '').toString().trim());
+
+ isHtmlRenderMode() {
+ return (
+ super.isHtmlRenderMode() ||
+ ((this.options.readOnly || this.disabled) &&
+ this.component.inputFormat === 'html' &&
+ this.type === 'textfield')
+ );
}
- return super.isEmpty(value) || (this.component.multiple ? value.length === 0 : (!value.maskName || !value.value));
- }
- truncateMultipleSpaces(value) {
- if (value) {
- return value.trim().replace(/\s{2,}/g, ' ');
+ isEmpty(value = this.dataValue) {
+ if (!this.isMultipleMasksField) {
+ return super.isEmpty((value || '').toString().trim());
+ }
+ return (
+ super.isEmpty(value) ||
+ (this.component.multiple
+ ? value.length === 0
+ : !value.maskName || !value.value)
+ );
+ }
+
+ truncateMultipleSpaces(value) {
+ if (value) {
+ return value.trim().replace(/\s{2,}/g, ' ');
+ }
+ return value;
}
- return value;
- }
- get validationValue() {
- const value = super.validationValue;
- if (value && this.component.truncateMultipleSpaces) {
- return this.truncateMultipleSpaces(value);
+ get validationValue() {
+ const value = super.validationValue;
+ if (value && this.component.truncateMultipleSpaces) {
+ return this.truncateMultipleSpaces(value);
+ }
+ return value;
}
- return value;
- }
- beforeSubmit() {
- let value = this.dataValue;
+ beforeSubmit() {
+ let value = this.dataValue;
- if (!this.component.truncateMultipleSpaces || !value) {
- return Promise.resolve(value);
+ if (!this.component.truncateMultipleSpaces || !value) {
+ return Promise.resolve(value);
+ }
+ value = this.truncateMultipleSpaces(value);
+ this.dataValue = value;
+ return Promise.resolve(value).then(() => super.beforeSubmit());
}
- value = this.truncateMultipleSpaces(value);
- this.dataValue = value;
- return Promise.resolve(value).then(() => super.beforeSubmit());
- }
-
- getValueAsString(value, options) {
- if (options?.email && this.visible && !this.skipInEmail && _.isObject(value)) {
- const result = (`
+
+ getValueAsString(value, options) {
+ if (
+ options?.email &&
+ this.visible &&
+ !this.skipInEmail &&
+ _.isObject(value)
+ ) {
+ const result = `
@@ -335,14 +384,18 @@ export default class TextFieldComponent extends Input {
- `);
+ `;
- return result;
- }
+ return result;
+ }
- if (value && this.component.inputFormat === 'plain' && /<[^<>]+>/g.test(value)) {
- value = value.replaceAll('<','<').replaceAll('>', '>');
+ if (
+ value &&
+ this.component.inputFormat === 'plain' &&
+ /<[^<>]+>/g.test(value)
+ ) {
+ value = value.replaceAll('<', '<').replaceAll('>', '>');
+ }
+ return super.getValueAsString(value, options);
}
- return super.getValueAsString(value, options);
- }
}
diff --git a/src/components/textfield/TextField.unit.js b/src/components/textfield/TextField.unit.js
index 9f36d17ea1..ab7f489867 100644
--- a/src/components/textfield/TextField.unit.js
+++ b/src/components/textfield/TextField.unit.js
@@ -6,1464 +6,2107 @@ import { Formio } from './../../Formio';
import 'flatpickr';
import {
- comp1,
- comp2,
- comp4,
- comp5,
- comp6,
- withDisplayAndInputMasks,
- comp7,
+ comp1,
+ comp2,
+ comp4,
+ comp5,
+ comp6,
+ withDisplayAndInputMasks,
+ comp7,
} from './fixtures';
-describe('TextField Component', function() {
- it('Should create a new TextField', function() {
- const textField = new TextFieldComponent({
- label: 'First Name',
- key: 'firstName',
- input: true,
- type: 'textfield'
+describe('TextField Component', function () {
+ it('Should create a new TextField', function () {
+ const textField = new TextFieldComponent({
+ label: 'First Name',
+ key: 'firstName',
+ input: true,
+ type: 'textfield',
+ });
+
+ assert.equal(textField.component.key, 'firstName');
});
- assert.equal(textField.component.key, 'firstName');
- });
+ it('Should build a TextField component', function () {
+ return Harness.testCreate(TextFieldComponent, comp1).then(
+ (component) => {
+ Harness.testElements(component, 'input[type="text"]', 1);
+ },
+ );
+ });
- it('Should build a TextField component', function() {
- return Harness.testCreate(TextFieldComponent, comp1).then((component) => {
- Harness.testElements(component, 'input[type="text"]', 1);
+ it('Should disable multiple mask selector if component is disabled', function (done) {
+ Harness.testCreate(TextFieldComponent, comp4).then((component) => {
+ Harness.testElements(component, '[disabled]', 2);
+ done();
+ });
});
- });
- it('Should disable multiple mask selector if component is disabled', function(done) {
- Harness.testCreate(TextFieldComponent, comp4).then((component) => {
- Harness.testElements(component, '[disabled]', 2);
- done();
+ it('Should check mask and value in the textfield component in the email template', function (done) {
+ const formJson = {
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ allowMultipleMasks: true,
+ inputMasks: [
+ {
+ label: 'mask1',
+ mask: 'mask1',
+ },
+ ],
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ };
+ const element = document.createElement('div');
+ Formio.createForm(element, formJson)
+ .then((form) => {
+ form.setSubmission({
+ data: {
+ textField: {
+ value: 'mask1',
+ maskName: 'mask2',
+ },
+ },
+ });
+
+ const textField = form.getComponent('textField');
+
+ setTimeout(() => {
+ assert.equal(
+ textField.dataValue.value,
+ 'mask1',
+ 'Should check value',
+ );
+ assert.equal(
+ textField.dataValue.maskName,
+ 'mask2',
+ 'Should check maskName',
+ );
+ const toString = textField.getValueAsString(
+ textField.dataValue,
+ { email: true },
+ );
+ assert.ok(
+ toString.includes('table'),
+ 'Email template should render html table',
+ );
+ assert.ok(
+ toString.includes(textField.dataValue.maskName),
+ 'Email template should have Text Field mackName',
+ );
+ assert.ok(
+ toString.includes(textField.dataValue.value),
+ 'Email template should have Text Field value',
+ );
+ done();
+ }, 300);
+ })
+ .catch(done);
+ });
+
+ it('Should provide required validation', function () {
+ return Harness.testCreate(
+ TextFieldComponent,
+ _.merge({}, comp2, {
+ validate: { required: true },
+ }),
+ )
+ .then((component) => {
+ return Harness.testInvalid(
+ component,
+ '',
+ 'firstName',
+ 'First Name is required',
+ ).then(() => component);
+ })
+ .then((component) => {
+ return Harness.testValid(component, 'te').then(() => component);
+ });
});
- });
-
- it('Should check mask and value in the textfield component in the email template', function(done) {
- const formJson = {
- components: [{
- label: 'Text Field',
- tableView: true,
- allowMultipleMasks: true,
- inputMasks: [{
- label: 'mask1',
- mask: 'mask1'
- }],
- key: 'textField',
- type: 'textfield',
- input: true
- }]
- };
- const element = document.createElement('div');
- Formio.createForm(element, formJson)
- .then(form => {
- form.setSubmission({
- data: {
- textField: {
- value: 'mask1',
- maskName: 'mask2'
- }
- },
+
+ it('Should provide minWords validation', function () {
+ return Harness.testCreate(
+ TextFieldComponent,
+ _.merge({}, comp2, {
+ validate: { minWords: 2 },
+ }),
+ )
+ .then((component) => {
+ return Harness.testInvalid(
+ component,
+ 'test',
+ 'firstName',
+ 'First Name must have at least 2 words.',
+ ).then(() => component);
+ })
+ .then((component) => {
+ return Harness.testValid(component, 'te st').then(
+ () => component,
+ );
+ });
+ });
+
+ it('Should correctly calculate remaining words', function (done) {
+ Harness.testCreate(TextFieldComponent, comp5).then((component) => {
+ const inputEvent = new Event('input', {
+ bubbles: true,
+ cancelable: true,
+ });
+ const element = component.refs.input[0];
+
+ element.value = 'paper format A4';
+ element.dispatchEvent(inputEvent);
+
+ setTimeout(() => {
+ assert.equal(
+ component.refs.wordcount[0].textContent,
+ '2 words remaining.',
+ );
+
+ element.value = 'Hey, guys! We are here!!';
+ element.dispatchEvent(inputEvent);
+
+ setTimeout(() => {
+ assert.equal(
+ component.refs.wordcount[0].textContent,
+ '0 words remaining.',
+ );
+
+ element.value = ' Some test text 111 ';
+ element.dispatchEvent(inputEvent);
+
+ setTimeout(() => {
+ assert.equal(
+ component.refs.wordcount[0].textContent,
+ '1 words remaining.',
+ );
+
+ done();
+ }, 300);
+ }, 275);
+ }, 250);
});
+ });
- const textField = form.getComponent('textField');
-
- setTimeout(() => {
- assert.equal(textField.dataValue.value, 'mask1', 'Should check value');
- assert.equal(textField.dataValue.maskName, 'mask2', 'Should check maskName');
- const toString = textField.getValueAsString(textField.dataValue, { email: true });
- assert.ok(toString.includes('table'), 'Email template should render html table');
- assert.ok(toString.includes(textField.dataValue.maskName), 'Email template should have Text Field mackName');
- assert.ok(toString.includes(textField.dataValue.value), 'Email template should have Text Field value');
- done();
- }, 300);
- })
- .catch(done);
- });
-
- it('Should provide required validation', function() {
- return Harness.testCreate(TextFieldComponent, _.merge({}, comp2, {
- validate: { required: true }
- })).then((component) => {
- return Harness.testInvalid(component, '', 'firstName', 'First Name is required').then(() => component);
- }).then((component) => {
- return Harness.testValid(component, 'te').then(() => component);
+ it('Should provide maxWords validation', function () {
+ return Harness.testCreate(
+ TextFieldComponent,
+ _.merge({}, comp2, {
+ validate: { maxWords: 2 },
+ }),
+ )
+ .then((component) => {
+ return Harness.testInvalid(
+ component,
+ 'test test test',
+ 'firstName',
+ 'First Name must have no more than 2 words.',
+ ).then(() => component);
+ })
+ .then((component) => {
+ return Harness.testValid(component, 'te st').then(
+ () => component,
+ );
+ });
});
- });
-
- it('Should provide minWords validation', function() {
- return Harness.testCreate(TextFieldComponent, _.merge({}, comp2, {
- validate: { minWords: 2 }
- })).then((component) => {
- return Harness.testInvalid(component, 'test', 'firstName', 'First Name must have at least 2 words.').then(() => component);
- }).then((component) => {
- return Harness.testValid(component, 'te st').then(() => component);
+
+ it('Should provide minLength validation', function () {
+ return Harness.testCreate(
+ TextFieldComponent,
+ _.merge({}, comp2, {
+ validate: { minLength: 2 },
+ }),
+ )
+ .then((component) => {
+ return Harness.testInvalid(
+ component,
+ 't',
+ 'firstName',
+ 'First Name must have at least 2 characters.',
+ ).then(() => component);
+ })
+ .then((component) => {
+ return Harness.testValid(component, 'te').then(() => component);
+ });
});
- });
- it('Should correctly calculate remaining words', function(done) {
- Harness.testCreate(TextFieldComponent, comp5).then((component) => {
- const inputEvent = new Event('input', { bubbles: true, cancelable: true });
- const element = component.refs.input[0];
+ it('Should provide maxLength validation', function () {
+ return Harness.testCreate(
+ TextFieldComponent,
+ _.merge({}, comp2, {
+ validate: { maxLength: 5 },
+ }),
+ )
+ .then((component) => {
+ return Harness.testInvalid(
+ component,
+ 'testte',
+ 'firstName',
+ 'First Name must have no more than 5 characters.',
+ ).then(() => component);
+ })
+ .then((component) => {
+ return Harness.testValid(component, 'te').then(() => component);
+ });
+ });
- element.value = 'paper format A4';
- element.dispatchEvent(inputEvent);
+ it('Should provide custom validation', function () {
+ return Harness.testCreate(
+ TextFieldComponent,
+ _.merge({}, comp2, {
+ validate: {
+ custom: 'valid = (input !== "Joe") ? true : "You cannot be Joe"',
+ },
+ }),
+ )
+ .then((component) => {
+ return Harness.testInvalid(
+ component,
+ 'Joe',
+ 'firstName',
+ 'You cannot be Joe',
+ ).then(() => component);
+ })
+ .then((component) => {
+ return Harness.testValid(component, 'Tom').then(
+ () => component,
+ );
+ });
+ });
- setTimeout(()=>{
- assert.equal(component.refs.wordcount[0].textContent, '2 words remaining.');
+ it('Should provide one custom error message', function (done) {
+ const formJson = {
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ validate: {
+ pattern: '^[0-9]*$]',
+ customMessage: 'Custom Error Message',
+ minWords: 10,
+ },
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ };
+ const element = document.createElement('div');
+ Formio.createForm(element, formJson)
+ .then((form) => {
+ form.submission = {
+ data: {
+ textField: 'textField',
+ },
+ };
+ const textField = form.getComponent('textField');
+ setTimeout(() => {
+ assert.equal(
+ textField.refs.messageContainer.children.length,
+ 1,
+ );
+ assert.equal(
+ textField.refs.messageContainer.children[0].innerHTML,
+ 'Custom Error Message',
+ );
+ done();
+ }, 300);
+ })
+ .catch(done);
+ });
- element.value = 'Hey, guys! We are here!!';
- element.dispatchEvent(inputEvent);
+ it('Should provide json validation', function () {
+ return Harness.testCreate(
+ TextFieldComponent,
+ _.merge({}, comp2, {
+ validate: {
+ json: {
+ if: [
+ {
+ '===': [{ var: 'data.firstName' }, 'Joe'],
+ },
+ true,
+ 'You must be Joe',
+ ],
+ },
+ },
+ }),
+ )
+ .then((component) => {
+ return Harness.testInvalid(
+ component,
+ 'Tom',
+ 'firstName',
+ 'You must be Joe',
+ ).then(() => component);
+ })
+ .then((component) => {
+ return Harness.testValid(component, 'Joe').then(
+ () => component,
+ );
+ });
+ });
- setTimeout(()=>{
- assert.equal(component.refs.wordcount[0].textContent, '0 words remaining.');
+ it('Should provide number input mask only after blur event if applyMaskOn setting on blur', function (done) {
+ const form = _.cloneDeep(comp7);
+ const element = document.createElement('div');
+ form.components[0].inputMask = '99-99';
+ const value = 999;
+
+ Formio.createForm(element, form)
+ .then((form) => {
+ const component = form.getComponent('textField');
+ const changed = component.setValue(value);
+
+ if (value) {
+ assert.equal(changed, true, 'Should set value');
+ assert.equal(component.getValue(), value);
+ }
+
+ setTimeout(() => {
+ const textFieldInput =
+ component.element.querySelector('.form-control');
+ const event = new Event('blur');
+ textFieldInput.dispatchEvent(event);
+
+ setTimeout(() => {
+ assert.equal(component.getValue(), '99-9_');
+ done();
+ }, 200);
+ }, 200);
+ })
+ .catch(done);
+ });
- element.value = ' Some test text 111 ';
- element.dispatchEvent(inputEvent);
+ it('Should provide validation of number input mask only after blur event if applyMaskOn setting on blur', function (done) {
+ const form = _.cloneDeep(comp7);
+ const element = document.createElement('div');
+ form.components[0].inputMask = '99-99';
+ let value = 999;
+
+ Formio.createForm(element, form)
+ .then((form) => {
+ const component = form.getComponent('textField');
+ let changed = component.setValue(value);
+ const error = 'Text Field does not match the mask.';
+
+ if (value) {
+ assert.equal(changed, true, 'Should set value');
+ }
+
+ setTimeout(() => {
+ assert.equal(
+ !!component.error,
+ false,
+ 'Should not contain error',
+ );
+
+ const textFieldInput =
+ component.element.querySelector('.form-control');
+ const event = new Event('blur');
+ textFieldInput.dispatchEvent(event);
+
+ setTimeout(() => {
+ assert.equal(
+ !!component.error,
+ true,
+ 'Should contain error',
+ );
+ assert.equal(
+ component.error.message,
+ error,
+ 'Should contain error message',
+ );
+ assert.equal(
+ component.element.classList.contains('has-error'),
+ true,
+ 'Should contain error class',
+ );
+ assert.equal(
+ component.refs.messageContainer.textContent.trim(),
+ error,
+ 'Should show error',
+ );
+
+ value = 9999;
+ changed = component.setValue(value);
+
+ setTimeout(() => {
+ assert.equal(
+ !!component.error,
+ true,
+ 'Should contain error',
+ );
+ assert.equal(
+ component.error.message,
+ error,
+ 'Should contain error message',
+ );
+ assert.equal(
+ component.element.classList.contains(
+ 'has-error',
+ ),
+ true,
+ 'Should contain error class',
+ );
+ assert.equal(
+ component.refs.messageContainer.textContent.trim(),
+ error,
+ 'Should show error',
+ );
+
+ textFieldInput.dispatchEvent(event);
+
+ setTimeout(() => {
+ assert.equal(
+ !!component.error,
+ false,
+ 'Should not contain error',
+ );
+ done();
+ }, 300);
+ }, 300);
+ }, 300);
+ }, 300);
+ })
+ .catch(done);
+ });
- setTimeout(()=>{
- assert.equal(component.refs.wordcount[0].textContent, '1 words remaining.');
+ it('Should provide validation of number input mask after setting value', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].inputMask = '99/99-99.99:99,99';
+
+ const validValues = ['', '99/99-99.99:99,99'];
+
+ const invalidValues = [
+ '99/99-99.99:99,,99',
+ '99/99-99.99:99,9',
+ '9999-99.99:99,,99',
+ '99/99-99.99:9(9,9)9',
+ '99999999#999999999',
+ 'fffffff()f99/99-99.99:99,99',
+ '77ff7777ff7777ff7777',
+ '9/99-99.99999,99',
+ '9/99-9/9.9/9:99,9/9',
+ '99/99-a9.99:99,99',
+ '99/99---.99:99,99',
+ 'ddddddddddddddd',
+ '9/99-9/9.9/9:99,9/9ddd',
+ '9/99-99.99999,fffffff',
+ '99/_9-99.9f9:99,9g9',
+ 'A8/99-99.99:99,99',
+ ];
+
+ const testValidity = (values, valid, lastValue) => {
+ _.each(values, (value) => {
+ const element = document.createElement('div');
+
+ Formio.createForm(element, form)
+ .then((form) => {
+ form.setPristine(false);
+
+ const component = form.getComponent('textField');
+ const changed = component.setValue(value);
+ const error = 'Text Field does not match the mask.';
+
+ if (value) {
+ assert.equal(changed, true, 'Should set value');
+ }
+
+ setTimeout(() => {
+ if (valid) {
+ assert.equal(
+ !!component.error,
+ false,
+ 'Should not contain error',
+ );
+ } else {
+ assert.equal(
+ !!component.error,
+ true,
+ 'Should contain error',
+ );
+ assert.equal(
+ component.error.message,
+ error,
+ 'Should contain error message',
+ );
+ assert.equal(
+ component.element.classList.contains(
+ 'has-error',
+ ),
+ true,
+ 'Should contain error class',
+ );
+ assert.equal(
+ component.refs.messageContainer.textContent.trim(),
+ error,
+ 'Should show error',
+ );
+ }
+
+ if (_.isEqual(value, lastValue)) {
+ done();
+ }
+ }, 300);
+ })
+ .catch(done);
+ });
+ };
- done();
- }, 300);
- }, 275);
- }, 250);
+ testValidity(validValues, true);
+ testValidity(
+ invalidValues,
+ false,
+ invalidValues[invalidValues.length - 1],
+ );
});
- });
-
- it('Should provide maxWords validation', function() {
- return Harness.testCreate(TextFieldComponent, _.merge({}, comp2, {
- validate: { maxWords: 2 }
- })).then((component) => {
- return Harness.testInvalid(component, 'test test test', 'firstName', 'First Name must have no more than 2 words.').then(() => component);
- }).then((component) => {
- return Harness.testValid(component, 'te st').then(() => component);
+
+ it('Should allow inputing only numbers and format input according to input mask', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].inputMask = '99/99-99.99:99,99';
+
+ const values = [
+ '99/99-99.99:99,,99',
+ '9999-99.99:999,,99',
+ '99/99-99.99:9(9,9)9',
+ '99999999999999999',
+ 'ffffffff99/99-99.99:99,99',
+ '99ff999999ff999ff9',
+ '9/99-99.99999,999',
+ '9/99-9/9.9/9:999,9/9',
+ '99.99-a9.99:999,99',
+ '99/99---.99:9999,99',
+ '999999999999',
+ '99999-9/9.9/9:99,9/9ddd',
+ '9----99999-99.99999,fffffff',
+ '999-9kkkk9.99999f9:99,9g9',
+ 'A9/99-99.999:99,99',
+ ];
+
+ const testFormatting = (values, lastValue) => {
+ _.each(values, (value) => {
+ const element = document.createElement('div');
+
+ Formio.createForm(element, form)
+ .then((form) => {
+ form.setPristine(false);
+
+ const component = form.getComponent('textField');
+ const input = component.refs.input[0];
+ const inputEvent = new Event('input');
+ input.value = value;
+ input.dispatchEvent(inputEvent);
+
+ setTimeout(() => {
+ assert.equal(
+ !!component.error,
+ false,
+ 'Should not contain error',
+ );
+ assert.equal(
+ component.getValue(),
+ '99/99-99.99:99,99',
+ 'Should set and format value',
+ );
+
+ if (_.isEqual(value, lastValue)) {
+ done();
+ }
+ }, 300);
+ })
+ .catch(done);
+ });
+ };
+
+ testFormatting(values, values[values.length - 1]);
});
- });
-
- it('Should provide minLength validation', function() {
- return Harness.testCreate(TextFieldComponent, _.merge({}, comp2, {
- validate: { minLength: 2 }
- })).then((component) => {
- return Harness.testInvalid(component, 't', 'firstName', 'First Name must have at least 2 characters.').then(() => component);
- }).then((component) => {
- return Harness.testValid(component, 'te').then(() => component);
+
+ it('Should allow dynamic syntax for input mask', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].inputMask = 'aa-9{1,3}/9[99]';
+
+ const validValues = [
+ '',
+ 'bB-77/555',
+ 'bc-789/8',
+ 'De-7/8',
+ 'tr-81/888',
+ ];
+
+ const invalidValues = [
+ '123',
+ '12-hh/789',
+ 'dd-/893',
+ 'he-538/',
+ 'e1-77/790',
+ ];
+
+ const testValidity = (values, valid, lastValue) => {
+ _.each(values, (value) => {
+ const element = document.createElement('div');
+
+ Formio.createForm(element, form)
+ .then((form) => {
+ form.setPristine(false);
+
+ const component = form.getComponent('textField');
+ const changed = component.setValue(value);
+ const error = 'Text Field does not match the mask.';
+
+ if (value) {
+ assert.equal(changed, true, 'Should set value');
+ }
+
+ setTimeout(() => {
+ if (valid) {
+ assert.equal(
+ !!component.error,
+ false,
+ 'Should not contain error',
+ );
+ } else {
+ assert.equal(
+ !!component.error,
+ true,
+ 'Should contain error',
+ );
+ assert.equal(
+ component.error.message,
+ error,
+ 'Should contain error message',
+ );
+ assert.equal(
+ component.element.classList.contains(
+ 'has-error',
+ ),
+ true,
+ 'Should contain error class',
+ );
+ assert.equal(
+ component.refs.messageContainer.textContent.trim(),
+ error,
+ 'Should show error',
+ );
+ }
+
+ if (_.isEqual(value, lastValue)) {
+ done();
+ }
+ }, 300);
+ })
+ .catch(done);
+ });
+ };
+
+ testValidity(validValues, true);
+ testValidity(
+ invalidValues,
+ false,
+ invalidValues[invalidValues.length - 1],
+ );
});
- });
-
- it('Should provide maxLength validation', function() {
- return Harness.testCreate(TextFieldComponent, _.merge({}, comp2, {
- validate: { maxLength: 5 }
- })).then(component => {
- return Harness.testInvalid(component, 'testte', 'firstName', 'First Name must have no more than 5 characters.').then(() => component);
- }).then((component) => {
- return Harness.testValid(component, 'te').then(() => component);
+
+ it('Should provide validation for alphabetic input mask after setting value', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].inputMask = 'a/A/a-a:a.a,aa';
+
+ const validValues = ['', 'b/V/r-y:d.d,as', 'b/B/r-y:d.d,as'];
+
+ const invalidValues = [
+ 'b/b/r-y:d.d',
+ 'b/v/r-yCC:d.d,as',
+ 'rD/F/R-y:d.d,DE',
+ 'bv/Sr-y:d.d,as',
+ '555555555555555',
+ 'ssssEsssssssssssss',
+ 'b/v/Rr-y:d$.d,a',
+ '3/3/#r-y:d.d,as',
+ '3/3/6-6&&:d...d,as',
+ '5/5/5ee-55.5,5',
+ ];
+
+ const testValidity = (values, valid, lastValue) => {
+ _.each(values, (value) => {
+ const element = document.createElement('div');
+
+ Formio.createForm(element, form)
+ .then((form) => {
+ form.setPristine(false);
+
+ const component = form.getComponent('textField');
+ const changed = component.setValue(value);
+ const error = 'Text Field does not match the mask.';
+
+ if (value) {
+ assert.equal(changed, true, 'Should set value');
+ }
+
+ setTimeout(() => {
+ if (valid) {
+ assert.equal(
+ !!component.error,
+ false,
+ 'Should not contain error',
+ );
+ } else {
+ assert.equal(
+ !!component.error,
+ true,
+ 'Should contain error',
+ );
+ assert.equal(
+ component.error.message,
+ error,
+ 'Should contain error message',
+ );
+ assert.equal(
+ component.element.classList.contains(
+ 'has-error',
+ ),
+ true,
+ 'Should contain error class',
+ );
+ assert.equal(
+ component.refs.messageContainer.textContent.trim(),
+ error,
+ 'Should show error',
+ );
+ }
+
+ if (_.isEqual(value, lastValue)) {
+ done();
+ }
+ }, 300);
+ })
+ .catch(done);
+ });
+ };
+
+ testValidity(validValues, true);
+ testValidity(
+ invalidValues,
+ false,
+ invalidValues[invalidValues.length - 1],
+ );
});
- });
-
- it('Should provide custom validation', function() {
- return Harness.testCreate(TextFieldComponent, _.merge({}, comp2, {
- validate: {
- custom: 'valid = (input !== "Joe") ? true : "You cannot be Joe"'
- }
- })).then((component) => {
- return Harness.testInvalid(component, 'Joe', 'firstName', 'You cannot be Joe').then(() => component);
- }).then((component) => {
- return Harness.testValid(component, 'Tom').then(() => component);
+
+ it('Should allow inputing only letters and format input according to input mask', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].inputMask = 'a/a/a-a:a.a,aa';
+
+ const values = [
+ 'ssssSSSSSSS/sss-ss.s,ss',
+ 'ss/sSss-sSSs.s,ss',
+ 'ssSssssssSSSssssss',
+ 's/sS/sss-s5555:sss.--s,s',
+ '3/s3/Ss-s:ss.s,ssSsss',
+ 'ssSs3/3s/s6-s6:s...s,s',
+ 's5/5sSS/5s-5:sS---5.s5,s5sss',
+ ];
+
+ const testFormatting = (values, lastValue) => {
+ _.each(values, (value) => {
+ const element = document.createElement('div');
+
+ Formio.createForm(element, form)
+ .then((form) => {
+ form.setPristine(false);
+
+ const component = form.getComponent('textField');
+ const input = component.refs.input[0];
+ const inputEvent = new Event('input');
+ input.value = value;
+ input.dispatchEvent(inputEvent);
+
+ setTimeout(() => {
+ assert.equal(
+ !!component.error,
+ false,
+ 'Should not contain error',
+ );
+ assert.equal(
+ component.getValue().toLowerCase(),
+ 's/s/s-s:s.s,ss',
+ 'Should set and format value',
+ );
+
+ if (_.isEqual(value, lastValue)) {
+ done();
+ }
+ }, 300);
+ })
+ .catch(done);
+ });
+ };
+
+ testFormatting(values, values[values.length - 1]);
});
- });
-
- it('Should provide one custom error message', function(done) {
- const formJson = {
- components: [{
- label: 'Text Field',
- tableView: true,
- validate: {
- pattern: '^[0-9]*$]',
- customMessage: 'Custom Error Message',
- minWords: 10
- },
- key: 'textField',
- type: 'textfield',
- input: true
- }]
- };
- const element = document.createElement('div');
- Formio.createForm(element, formJson)
- .then(form => {
- form.submission = {
- data: {
- textField: 'textField'
- }
+
+ it('Should provide validation for alphanumeric input mask after setting value', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].inputMask = '**/***.*-*,**';
+
+ const validValues = [
+ '',
+ 'f4/D34.3-S,dd',
+ 'gg/ggg.g-g,gg',
+ 'DD/DDD.D-D,DD',
+ '55/555.5-5,55',
+ ];
+
+ const invalidValues = [
+ 'er432ff',
+ 'rD5/F/R-y:d',
+ '_=+dsds4',
+ 'sFFFFF--------2',
+ 'sd',
+ 'sf__df',
+ 'gg/ggg.g-g',
+ ];
+
+ const testValidity = (values, valid, lastValue) => {
+ _.each(values, (value) => {
+ const element = document.createElement('div');
+
+ Formio.createForm(element, form)
+ .then((form) => {
+ form.setPristine(false);
+
+ const component = form.getComponent('textField');
+ const changed = component.setValue(value);
+ const error = 'Text Field does not match the mask.';
+
+ if (value) {
+ assert.equal(changed, true, 'Should set value');
+ }
+
+ setTimeout(() => {
+ if (valid) {
+ assert.equal(
+ !!component.error,
+ false,
+ 'Should not contain error',
+ );
+ } else {
+ assert.equal(
+ !!component.error,
+ true,
+ 'Should contain error',
+ );
+ assert.equal(
+ component.error.message,
+ error,
+ 'Should contain error message',
+ );
+ assert.equal(
+ component.element.classList.contains(
+ 'has-error',
+ ),
+ true,
+ 'Should contain error class',
+ );
+ assert.equal(
+ component.refs.messageContainer.textContent.trim(),
+ error,
+ 'Should show error',
+ );
+ }
+
+ if (_.isEqual(value, lastValue)) {
+ done();
+ }
+ }, 300);
+ })
+ .catch(done);
+ });
};
- const textField = form.getComponent('textField');
- setTimeout(() => {
- assert.equal(textField.refs.messageContainer.children.length, 1);
- assert.equal(textField.refs.messageContainer.children[0].innerHTML, 'Custom Error Message');
- done();
- }, 300);
- })
- .catch(done);
- });
-
- it('Should provide json validation', function() {
- return Harness.testCreate(TextFieldComponent, _.merge({}, comp2, {
- validate: {
- json: {
- 'if': [
+
+ testValidity(validValues, true);
+ testValidity(
+ invalidValues,
+ false,
+ invalidValues[invalidValues.length - 1],
+ );
+ });
+
+ it('Should allow inputing only letters and digits and format input according to input mask', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].inputMask = '**/***.*-*,**';
+
+ const values = [
+ { value: 'ssssSSSSSSS/sss-ss.s,ss', expected: 'ss/ssS.S-S,SS' },
+ { value: 'ss/sSss-sSSs.s,ss', expected: 'ss/sSs.s-s,SS' },
+ { value: 'ssS666ssssssSSSssssss', expected: 'ss/S66.6-s,ss' },
+ { value: 's/sS/sss-s5555:sss.--s,s', expected: 'ss/Sss.s-s,55' },
+ { value: '3/s3/Ss-s:ss.s,ssSsss', expected: '3s/3Ss.s-s,ss' },
+ { value: 'ssSs3/3s/s6-s6:s...s,s', expected: 'ss/Ss3.3-s,s6' },
{
- '===': [
- { var: 'data.firstName' },
- 'Joe'
- ]
+ value: 's5/5sSS/5s-5:sS---5.s5,s5sss',
+ expected: 's5/5sS.S-5,s5',
},
- true,
- 'You must be Joe'
- ]
- }
- }
- })).then((component) => {
- return Harness.testInvalid(component, 'Tom', 'firstName', 'You must be Joe').then(() => component);
- }).then((component) => {
- return Harness.testValid(component, 'Joe').then(() => component);
+ ];
+
+ const testFormatting = (values, lastValue) => {
+ _.each(values, (value) => {
+ const element = document.createElement('div');
+
+ Formio.createForm(element, form)
+ .then((form) => {
+ form.setPristine(false);
+
+ const component = form.getComponent('textField');
+ const input = component.refs.input[0];
+ const inputEvent = new Event('input');
+ input.value = value.value;
+ input.dispatchEvent(inputEvent);
+
+ setTimeout(() => {
+ assert.equal(
+ !!component.error,
+ false,
+ 'Should not contain error',
+ );
+ assert.equal(
+ component.getValue(),
+ value.expected,
+ 'Should set and format value',
+ );
+
+ if (_.isEqual(value.value, lastValue)) {
+ done();
+ }
+ }, 300);
+ })
+ .catch(done);
+ });
+ };
+
+ testFormatting(values, values[values.length - 1].value);
});
- });
-
- it('Should provide number input mask only after blur event if applyMaskOn setting on blur', function(done) {
- const form = _.cloneDeep(comp7);
- const element = document.createElement('div');
- form.components[0].inputMask = '99-99';
- const value = 999;
-
- Formio.createForm(element, form).then(form => {
- const component = form.getComponent('textField');
- const changed = component.setValue(value);
-
- if (value) {
- assert.equal(changed, true, 'Should set value');
- assert.equal(component.getValue(), value);
- }
-
- setTimeout(() => {
- const textFieldInput = component.element.querySelector('.form-control');
- const event = new Event('blur');
- textFieldInput.dispatchEvent(event);
-
- setTimeout(() => {
- assert.equal(component.getValue(), '99-9_');
- done();
- }, 200);
- }, 200);
- }).catch(done);
- });
-
- it('Should provide validation of number input mask only after blur event if applyMaskOn setting on blur', function(done) {
- const form = _.cloneDeep(comp7);
- const element = document.createElement('div');
- form.components[0].inputMask = '99-99';
- let value = 999;
-
- Formio.createForm(element, form).then(form => {
- const component = form.getComponent('textField');
- let changed = component.setValue(value);
- const error = 'Text Field does not match the mask.';
-
- if (value) {
- assert.equal(changed, true, 'Should set value');
- }
-
- setTimeout(() => {
- assert.equal(!!component.error, false, 'Should not contain error');
-
- const textFieldInput = component.element.querySelector('.form-control');
- const event = new Event('blur');
- textFieldInput.dispatchEvent(event);
-
- setTimeout(() => {
- assert.equal(!!component.error, true, 'Should contain error');
- assert.equal(component.error.message, error, 'Should contain error message');
- assert.equal(component.element.classList.contains('has-error'), true, 'Should contain error class');
- assert.equal(component.refs.messageContainer.textContent.trim(), error, 'Should show error');
-
- value = 9999;
- changed = component.setValue(value);
-
- setTimeout(() => {
- assert.equal(!!component.error, true, 'Should contain error');
- assert.equal(component.error.message, error, 'Should contain error message');
- assert.equal(component.element.classList.contains('has-error'), true, 'Should contain error class');
- assert.equal(component.refs.messageContainer.textContent.trim(), error, 'Should show error');
-
- textFieldInput.dispatchEvent(event);
- setTimeout(() => {
- assert.equal(!!component.error, false, 'Should not contain error');
- done();
- }, 300);
- }, 300);
- }, 300);
- }, 300);
- }).catch(done);
- });
-
- it('Should provide validation of number input mask after setting value', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].inputMask = '99/99-99.99:99,99';
-
- const validValues = [
- '',
- '99/99-99.99:99,99',
- ];
-
- const invalidValues = [
- '99/99-99.99:99,,99',
- '99/99-99.99:99,9',
- '9999-99.99:99,,99',
- '99/99-99.99:9(9,9)9',
- '99999999#999999999',
- 'fffffff()f99/99-99.99:99,99',
- '77ff7777ff7777ff7777',
- '9/99-99.99999,99',
- '9/99-9/9.9/9:99,9/9',
- '99/99-a9.99:99,99',
- '99/99---.99:99,99',
- 'ddddddddddddddd',
- '9/99-9/9.9/9:99,9/9ddd',
- '9/99-99.99999,fffffff',
- '99/_9-99.9f9:99,9g9',
- 'A8/99-99.99:99,99',
- ];
-
- const testValidity = (values, valid, lastValue) => {
- _.each(values, (value) => {
- const element = document.createElement('div');
+ it('Should provide validation for mixed input mask after setting value', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].inputMask = '**/99-aa';
+
+ const validValues = [
+ '',
+ '4r/34-fg',
+ '46/34-yy',
+ 'ye/56-op',
+ 'We/56-op',
+ 'te/56-Dp',
+ ];
+
+ const invalidValues = [
+ 'te/E6-pp',
+ 'tdddde/E6-pp',
+ 'te/E6',
+ 'te/E6-p',
+ 'gdfgdfgdf',
+ '43543',
+ 'W',
+ ];
+
+ const testValidity = (values, valid, lastValue) => {
+ _.each(values, (value) => {
+ const element = document.createElement('div');
+
+ Formio.createForm(element, form)
+ .then((form) => {
+ form.setPristine(false);
+
+ const component = form.getComponent('textField');
+ const changed = component.setValue(value);
+ const error = 'Text Field does not match the mask.';
+
+ if (value) {
+ assert.equal(changed, true, 'Should set value');
+ }
+
+ setTimeout(() => {
+ if (valid) {
+ assert.equal(
+ !!component.error,
+ false,
+ 'Should not contain error',
+ );
+ } else {
+ assert.equal(
+ !!component.error,
+ true,
+ 'Should contain error',
+ );
+ assert.equal(
+ component.error.message,
+ error,
+ 'Should contain error message',
+ );
+ assert.equal(
+ component.element.classList.contains(
+ 'has-error',
+ ),
+ true,
+ 'Should contain error class',
+ );
+ assert.equal(
+ component.refs.messageContainer.textContent.trim(),
+ error,
+ 'Should show error',
+ );
+ }
+
+ if (_.isEqual(value, lastValue)) {
+ done();
+ }
+ }, 300);
+ })
+ .catch(done);
+ });
+ };
- Formio.createForm(element, form).then(form => {
- form.setPristine(false);
-
- const component = form.getComponent('textField');
- const changed = component.setValue(value);
- const error = 'Text Field does not match the mask.';
-
- if (value) {
- assert.equal(changed, true, 'Should set value');
- }
-
- setTimeout(() => {
- if (valid) {
- assert.equal(!!component.error, false, 'Should not contain error');
- }
- else {
- assert.equal(!!component.error, true, 'Should contain error');
- assert.equal(component.error.message, error, 'Should contain error message');
- assert.equal(component.element.classList.contains('has-error'), true, 'Should contain error class');
- assert.equal(component.refs.messageContainer.textContent.trim(), error, 'Should show error');
- }
-
- if (_.isEqual(value, lastValue)) {
- done();
- }
- }, 300);
- }).catch(done);
- });
- };
-
- testValidity(validValues, true);
- testValidity(invalidValues, false, invalidValues[invalidValues.length-1]);
- });
-
- it('Should allow inputing only numbers and format input according to input mask', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].inputMask = '99/99-99.99:99,99';
-
- const values = [
- '99/99-99.99:99,,99',
- '9999-99.99:999,,99',
- '99/99-99.99:9(9,9)9',
- '99999999999999999',
- 'ffffffff99/99-99.99:99,99',
- '99ff999999ff999ff9',
- '9/99-99.99999,999',
- '9/99-9/9.9/9:999,9/9',
- '99.99-a9.99:999,99',
- '99/99---.99:9999,99',
- '999999999999',
- '99999-9/9.9/9:99,9/9ddd',
- '9----99999-99.99999,fffffff',
- '999-9kkkk9.99999f9:99,9g9',
- 'A9/99-99.999:99,99',
- ];
-
- const testFormatting = (values, lastValue) => {
- _.each(values, (value) => {
- const element = document.createElement('div');
+ testValidity(validValues, true);
+ testValidity(
+ invalidValues,
+ false,
+ invalidValues[invalidValues.length - 1],
+ );
+ });
- Formio.createForm(element, form).then(form => {
- form.setPristine(false);
-
- const component = form.getComponent('textField');
- const input = component.refs.input[0];
- const inputEvent = new Event('input');
- input.value = value;
- input.dispatchEvent(inputEvent);
-
- setTimeout(() => {
- assert.equal(!!component.error, false, 'Should not contain error');
- assert.equal(component.getValue(), '99/99-99.99:99,99', 'Should set and format value');
-
- if (_.isEqual(value, lastValue)) {
- done();
- }
- }, 300);
- }).catch(done);
- });
- };
-
- testFormatting(values, values[values.length-1]);
- });
-
- it('Should allow dynamic syntax for input mask', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].inputMask = 'aa-9{1,3}/9[99]';
-
- const validValues = [
- '',
- 'bB-77/555',
- 'bc-789/8',
- 'De-7/8',
- 'tr-81/888'
- ];
-
- const invalidValues = [
- '123',
- '12-hh/789',
- 'dd-/893',
- 'he-538/',
- 'e1-77/790'
- ];
-
- const testValidity = (values, valid, lastValue) => {
- _.each(values, (value) => {
- const element = document.createElement('div');
+ it('Should allow inputing only letters and digits and format input according to mixed input mask', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].inputMask = '**/99-aa';
+
+ const values = [
+ { value: 'S67gf-+f34cfd', expected: 'S6/73-cf' },
+ { value: '56DDDfdsf23,DDdsf', expected: '56/23-DD' },
+ { value: '--fs344d.g234df', expected: 'fs/34-dg' },
+ { value: '000000000g234df', expected: '00/00-gd' },
+ ];
+
+ const testFormatting = (values, lastValue) => {
+ _.each(values, (value) => {
+ const element = document.createElement('div');
+
+ Formio.createForm(element, form)
+ .then((form) => {
+ form.setPristine(false);
+
+ const component = form.getComponent('textField');
+ const input = component.refs.input[0];
+ const inputEvent = new Event('input');
+ input.value = value.value;
+ input.dispatchEvent(inputEvent);
+
+ setTimeout(() => {
+ assert.equal(
+ !!component.error,
+ false,
+ 'Should not contain error',
+ );
+ assert.equal(
+ component.getValue(),
+ value.expected,
+ 'Should set and format value',
+ );
+
+ if (_.isEqual(value.value, lastValue)) {
+ done();
+ }
+ }, 300);
+ })
+ .catch(done);
+ });
+ };
- Formio.createForm(element, form).then(form => {
- form.setPristine(false);
-
- const component = form.getComponent('textField');
- const changed = component.setValue(value);
- const error = 'Text Field does not match the mask.';
-
- if (value) {
- assert.equal(changed, true, 'Should set value');
- }
-
- setTimeout(() => {
- if (valid) {
- assert.equal(!!component.error, false, 'Should not contain error');
- }
- else {
- assert.equal(!!component.error, true, 'Should contain error');
- assert.equal(component.error.message, error, 'Should contain error message');
- assert.equal(component.element.classList.contains('has-error'), true, 'Should contain error class');
- assert.equal(component.refs.messageContainer.textContent.trim(), error, 'Should show error');
- }
-
- if (_.isEqual(value, lastValue)) {
- done();
- }
- }, 300);
- }).catch(done);
- });
- };
-
- testValidity(validValues, true);
- testValidity(invalidValues, false, invalidValues[invalidValues.length-1]);
- });
-
- it('Should provide validation for alphabetic input mask after setting value', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].inputMask = 'a/A/a-a:a.a,aa';
-
- const validValues = [
- '',
- 'b/V/r-y:d.d,as',
- 'b/B/r-y:d.d,as',
- ];
-
- const invalidValues = [
- 'b/b/r-y:d.d',
- 'b/v/r-yCC:d.d,as',
- 'rD/F/R-y:d.d,DE',
- 'bv/Sr-y:d.d,as',
- '555555555555555',
- 'ssssEsssssssssssss',
- 'b/v/Rr-y:d$.d,a',
- '3/3/#r-y:d.d,as',
- '3/3/6-6&&:d...d,as',
- '5/5/5ee-55.5,5'
- ];
-
- const testValidity = (values, valid, lastValue) => {
- _.each(values, (value) => {
- const element = document.createElement('div');
+ testFormatting(values, values[values.length - 1].value);
+ });
- Formio.createForm(element, form).then(form => {
- form.setPristine(false);
-
- const component = form.getComponent('textField');
- const changed = component.setValue(value);
- const error = 'Text Field does not match the mask.';
-
- if (value) {
- assert.equal(changed, true, 'Should set value');
- }
-
- setTimeout(() => {
- if (valid) {
- assert.equal(!!component.error, false, 'Should not contain error');
- }
- else {
- assert.equal(!!component.error, true, 'Should contain error');
- assert.equal(component.error.message, error, 'Should contain error message');
- assert.equal(component.element.classList.contains('has-error'), true, 'Should contain error class');
- assert.equal(component.refs.messageContainer.textContent.trim(), error, 'Should show error');
- }
-
- if (_.isEqual(value, lastValue)) {
- done();
- }
- }, 300);
- }).catch(done);
- });
- };
-
- testValidity(validValues, true);
- testValidity(invalidValues, false, invalidValues[invalidValues.length-1]);
- });
-
- it('Should allow inputing only letters and format input according to input mask', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].inputMask = 'a/a/a-a:a.a,aa';
-
- const values = [
- 'ssssSSSSSSS/sss-ss.s,ss',
- 'ss/sSss-sSSs.s,ss',
- 'ssSssssssSSSssssss',
- 's/sS/sss-s5555:sss.--s,s',
- '3/s3/Ss-s:ss.s,ssSsss',
- 'ssSs3/3s/s6-s6:s...s,s',
- 's5/5sSS/5s-5:sS---5.s5,s5sss'
- ];
-
- const testFormatting = (values, lastValue) => {
- _.each(values, (value) => {
- const element = document.createElement('div');
+ it('Should allow multiple masks', function (done) {
+ const form = _.cloneDeep(comp6);
+ const tf = form.components[0];
+ tf.allowMultipleMasks = true;
+ tf.inputMasks = [
+ { label: 'number', mask: '99-99' },
+ { label: 'letter', mask: 'aa.aa' },
+ { label: 'any', mask: '**/**' },
+ ];
+
+ const masks = [
+ {
+ index: 0,
+ mask: 'number',
+ valueValid: ['33-33'],
+ valueInvalid: ['Bd'],
+ },
+ {
+ index: 1,
+ mask: 'letter',
+ valueValid: ['rr.dd'],
+ valueInvalid: ['Nr-22'],
+ },
+ {
+ index: 2,
+ mask: 'any',
+ valueValid: ['Dv/33'],
+ valueInvalid: ['4/4'],
+ },
+ ];
+
+ const testMask = (mask, valid, lastValue) => {
+ const values = valid ? mask.valueValid : mask.valueInvalid;
+
+ _.each(values, (value) => {
+ const element = document.createElement('div');
+
+ Formio.createForm(element, form)
+ .then((form) => {
+ form.setPristine(false);
+ const component = form.getComponent('textField');
+ const changed = component.setValue({
+ value: value,
+ maskName: mask.mask,
+ });
+ const error = 'Text Field does not match the mask.';
+
+ if (value) {
+ assert.equal(changed, true, 'Should set value');
+ }
+
+ setTimeout(() => {
+ assert.equal(
+ component.refs.select[0].options[mask.index]
+ .selected,
+ true,
+ 'Should select correct mask',
+ );
+ assert.equal(
+ component.getValue().maskName,
+ mask.mask,
+ 'Should apply correct mask',
+ );
+
+ if (valid) {
+ assert.equal(
+ !!component.error,
+ false,
+ 'Should not contain error',
+ );
+ } else {
+ assert.equal(
+ !!component.error,
+ true,
+ 'Should contain error',
+ );
+ assert.equal(
+ component.error.message,
+ error,
+ 'Should contain error message',
+ );
+ assert.equal(
+ component.element.classList.contains(
+ 'has-error',
+ ),
+ true,
+ 'Should contain error class',
+ );
+ assert.equal(
+ component.refs.messageContainer.textContent.trim(),
+ error,
+ 'Should show error',
+ );
+ }
+
+ if (_.isEqual(value, lastValue)) {
+ done();
+ }
+ }, 300);
+ })
+ .catch(done);
+ });
+ };
+
+ _.each(masks, (mask, index) => {
+ testMask(mask, true);
+ testMask(
+ mask,
+ false,
+ index === masks.length - 1
+ ? mask.valueInvalid[mask.valueInvalid.length - 1]
+ : undefined,
+ );
+ });
+ });
- Formio.createForm(element, form).then(form => {
- form.setPristine(false);
-
- const component = form.getComponent('textField');
- const input = component.refs.input[0];
- const inputEvent = new Event('input');
- input.value = value;
- input.dispatchEvent(inputEvent);
-
- setTimeout(() => {
- assert.equal(!!component.error, false, 'Should not contain error');
- assert.equal(component.getValue().toLowerCase(), 's/s/s-s:s.s,ss', 'Should set and format value');
-
- if (_.isEqual(value, lastValue)) {
- done();
- }
- }, 300);
- }).catch(done);
- });
- };
-
- testFormatting(values, values[values.length-1]);
- });
-
- it('Should provide validation for alphanumeric input mask after setting value', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].inputMask = '**/***.*-*,**';
-
- const validValues = [
- '',
- 'f4/D34.3-S,dd',
- 'gg/ggg.g-g,gg',
- 'DD/DDD.D-D,DD',
- '55/555.5-5,55',
- ];
-
- const invalidValues = [
- 'er432ff',
- 'rD5/F/R-y:d',
- '_=+dsds4',
- 'sFFFFF--------2',
- 'sd',
- 'sf__df',
- 'gg/ggg.g-g',
- ];
-
- const testValidity = (values, valid, lastValue) => {
- _.each(values, (value) => {
+ it('Should provide validation of number input mask with low dash and placeholder char after setting value', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].inputMask = '99_99/99';
+ form.components[0].inputMaskPlaceholderChar = '.';
+
+ const validValues = ['', '55_44/88'];
+
+ const invalidValues = ['99 99 99', '44_44_55', '55555555'];
+
+ const testValidity = (values, valid, lastValue) => {
+ _.each(values, (value) => {
+ const element = document.createElement('div');
+
+ Formio.createForm(element, form)
+ .then((form) => {
+ form.setPristine(false);
+
+ const component = form.getComponent('textField');
+ const input = component.refs.input[0];
+
+ assert.equal(
+ input.inputmask.undoValue,
+ '.._../..',
+ 'Should set placeholder using the char setting',
+ );
+
+ const changed = component.setValue(value);
+ const error = 'Text Field does not match the mask.';
+
+ if (value) {
+ assert.equal(changed, true, 'Should set value');
+ }
+
+ setTimeout(() => {
+ if (valid) {
+ assert.equal(
+ !!component.error,
+ false,
+ 'Should not contain error',
+ );
+ } else {
+ assert.equal(
+ !!component.error,
+ true,
+ 'Should contain error',
+ );
+ assert.equal(
+ component.error.message,
+ error,
+ 'Should contain error message',
+ );
+ assert.equal(
+ component.element.classList.contains(
+ 'has-error',
+ ),
+ true,
+ 'Should contain error class',
+ );
+ assert.equal(
+ component.refs.messageContainer.textContent.trim(),
+ error,
+ 'Should show error',
+ );
+ }
+
+ if (_.isEqual(value, lastValue)) {
+ done();
+ }
+ }, 300);
+ })
+ .catch(done);
+ });
+ };
+
+ testValidity(validValues, true);
+ testValidity(
+ invalidValues,
+ false,
+ invalidValues[invalidValues.length - 1],
+ );
+ });
+
+ it('Should format input according to input mask with low dash when placeholder char is set', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].inputMask = '99_99/99';
+ form.components[0].inputMaskPlaceholderChar = '.';
+
+ const values = [{ value: '4444444', expected: '44_44/44' }];
+
+ const testFormatting = (values, lastValue) => {
+ _.each(values, (value) => {
+ const element = document.createElement('div');
+
+ Formio.createForm(element, form)
+ .then((form) => {
+ form.setPristine(false);
+
+ const component = form.getComponent('textField');
+ const input = component.refs.input[0];
+ const inputEvent = new Event('input');
+ input.value = value.value;
+ input.dispatchEvent(inputEvent);
+
+ setTimeout(() => {
+ assert.equal(
+ !!component.error,
+ false,
+ 'Should not contain error',
+ );
+ assert.equal(
+ component.getValue(),
+ value.expected,
+ 'Should set and format value',
+ );
+
+ if (_.isEqual(value.value, lastValue)) {
+ done();
+ }
+ }, 300);
+ })
+ .catch(done);
+ });
+ };
+
+ testFormatting(values, values[values.length - 1].value);
+ });
+
+ it('Should correctly count characters if character counter is enabled', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].showCharCount = true;
const element = document.createElement('div');
- Formio.createForm(element, form).then(form => {
- form.setPristine(false);
-
- const component = form.getComponent('textField');
- const changed = component.setValue(value);
- const error = 'Text Field does not match the mask.';
-
- if (value) {
- assert.equal(changed, true, 'Should set value');
- }
-
- setTimeout(() => {
- if (valid) {
- assert.equal(!!component.error, false, 'Should not contain error');
- }
- else {
- assert.equal(!!component.error, true, 'Should contain error');
- assert.equal(component.error.message, error, 'Should contain error message');
- assert.equal(component.element.classList.contains('has-error'), true, 'Should contain error class');
- assert.equal(component.refs.messageContainer.textContent.trim(), error, 'Should show error');
- }
-
- if (_.isEqual(value, lastValue)) {
- done();
- }
- }, 300);
- }).catch(done);
- });
- };
-
- testValidity(validValues, true);
- testValidity(invalidValues, false, invalidValues[invalidValues.length-1]);
- });
-
- it('Should allow inputing only letters and digits and format input according to input mask', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].inputMask = '**/***.*-*,**';
-
- const values = [
- { value:'ssssSSSSSSS/sss-ss.s,ss', expected: 'ss/ssS.S-S,SS' },
- { value:'ss/sSss-sSSs.s,ss', expected: 'ss/sSs.s-s,SS' },
- { value:'ssS666ssssssSSSssssss', expected: 'ss/S66.6-s,ss' },
- { value:'s/sS/sss-s5555:sss.--s,s', expected: 'ss/Sss.s-s,55' },
- { value:'3/s3/Ss-s:ss.s,ssSsss', expected: '3s/3Ss.s-s,ss' },
- { value:'ssSs3/3s/s6-s6:s...s,s', expected: 'ss/Ss3.3-s,s6' },
- { value:'s5/5sSS/5s-5:sS---5.s5,s5sss', expected: 's5/5sS.S-5,s5' },
- ];
-
- const testFormatting = (values, lastValue) => {
- _.each(values, (value) => {
+ Formio.createForm(element, form)
+ .then((form) => {
+ const component = form.getComponent('textField');
+ const inputValue = (value) => {
+ const input = component.refs.input[0];
+ const inputEvent = new Event('input');
+ input.value = value;
+ input.dispatchEvent(inputEvent);
+ };
+
+ const checkValue = (value) => {
+ assert.equal(
+ component.dataValue,
+ value,
+ 'Should set value',
+ );
+ assert.equal(
+ parseInt(component.refs.charcount[0].textContent),
+ value.length,
+ 'Should show correct chars number',
+ );
+ assert.equal(
+ component.refs.charcount[0].textContent,
+ `${value.length} characters`,
+ 'Should show correct message',
+ );
+ };
+
+ let value = 'test Value (@#!-"]) _ 23.,5}/*&&';
+ inputValue(value);
+ setTimeout(() => {
+ checkValue(value);
+ value = '';
+ inputValue(value);
+
+ setTimeout(() => {
+ checkValue(value);
+ value = ' ';
+ inputValue(value);
+
+ setTimeout(() => {
+ checkValue(value);
+
+ done();
+ }, 200);
+ }, 200);
+ }, 200);
+ })
+ .catch(done);
+ });
+
+ it('Should format value to uppercase', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].case = 'uppercase';
const element = document.createElement('div');
- Formio.createForm(element, form).then(form => {
- form.setPristine(false);
-
- const component = form.getComponent('textField');
- const input = component.refs.input[0];
- const inputEvent = new Event('input');
- input.value = value.value;
- input.dispatchEvent(inputEvent);
-
- setTimeout(() => {
- assert.equal(!!component.error, false, 'Should not contain error');
- assert.equal(component.getValue(), value.expected, 'Should set and format value');
-
- if (_.isEqual(value.value, lastValue)) {
- done();
- }
- }, 300);
- }).catch(done);
- });
- };
-
- testFormatting(values, values[values.length-1].value);
- });
-
- it('Should provide validation for mixed input mask after setting value', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].inputMask = '**/99-aa';
-
- const validValues = [
- '',
- '4r/34-fg',
- '46/34-yy',
- 'ye/56-op',
- 'We/56-op',
- 'te/56-Dp',
- ];
-
- const invalidValues = [
- 'te/E6-pp',
- 'tdddde/E6-pp',
- 'te/E6',
- 'te/E6-p',
- 'gdfgdfgdf',
- '43543',
- 'W'
- ];
-
- const testValidity = (values, valid, lastValue) => {
- _.each(values, (value) => {
+ Formio.createForm(element, form)
+ .then((form) => {
+ const component = form.getComponent('textField');
+ const inputValue = (value) => {
+ const input = component.refs.input[0];
+ const inputEvent = new Event('input');
+ input.value = value;
+ input.dispatchEvent(inputEvent);
+ };
+
+ const checkValue = (value) => {
+ assert.equal(
+ component.dataValue,
+ value.toUpperCase(),
+ 'Should format value to uppercase',
+ );
+ assert.equal(
+ component.getValue(),
+ value.toUpperCase(),
+ 'Should format value to uppercase',
+ );
+ };
+
+ let value = 'SoMe Value';
+ inputValue(value);
+ setTimeout(() => {
+ checkValue(value);
+ value = 'test 1 value 1';
+ inputValue(value);
+
+ setTimeout(() => {
+ checkValue(value);
+ value = '';
+ inputValue(value);
+
+ setTimeout(() => {
+ checkValue(value);
+
+ done();
+ }, 100);
+ }, 100);
+ }, 100);
+ })
+ .catch(done);
+ });
+
+ it('Should format value to lowercase', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].case = 'lowercase';
const element = document.createElement('div');
- Formio.createForm(element, form).then(form => {
- form.setPristine(false);
-
- const component = form.getComponent('textField');
- const changed = component.setValue(value);
- const error = 'Text Field does not match the mask.';
-
- if (value) {
- assert.equal(changed, true, 'Should set value');
- }
-
- setTimeout(() => {
- if (valid) {
- assert.equal(!!component.error, false, 'Should not contain error');
- }
- else {
- assert.equal(!!component.error, true, 'Should contain error');
- assert.equal(component.error.message, error, 'Should contain error message');
- assert.equal(component.element.classList.contains('has-error'), true, 'Should contain error class');
- assert.equal(component.refs.messageContainer.textContent.trim(), error, 'Should show error');
- }
-
- if (_.isEqual(value, lastValue)) {
- done();
- }
- }, 300);
- }).catch(done);
- });
- };
-
- testValidity(validValues, true);
- testValidity(invalidValues, false, invalidValues[invalidValues.length-1]);
- });
-
- it('Should allow inputing only letters and digits and format input according to mixed input mask', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].inputMask = '**/99-aa';
-
- const values = [
- { value:'S67gf-+f34cfd', expected: 'S6/73-cf' },
- { value:'56DDDfdsf23,DDdsf', expected: '56/23-DD' },
- { value:'--fs344d.g234df', expected: 'fs/34-dg' },
- { value:'000000000g234df', expected: '00/00-gd' },
- ];
-
- const testFormatting = (values, lastValue) => {
- _.each(values, (value) => {
+ Formio.createForm(element, form)
+ .then((form) => {
+ const component = form.getComponent('textField');
+ const inputValue = (value) => {
+ const input = component.refs.input[0];
+ const inputEvent = new Event('input');
+ input.value = value;
+ input.dispatchEvent(inputEvent);
+ };
+
+ const checkValue = (value) => {
+ assert.equal(
+ component.dataValue,
+ value.toLowerCase(),
+ 'Should format value to lowercase (1)',
+ );
+ assert.equal(
+ component.getValue(),
+ value.toLowerCase(),
+ 'Should format value to lowercase (2)',
+ );
+ };
+
+ let value = 'SoMe Value';
+ inputValue(value);
+ setTimeout(() => {
+ checkValue(value);
+ value = 'TEST 1 VALUE (1)';
+ inputValue(value);
+
+ setTimeout(() => {
+ checkValue(value);
+ value = '';
+ inputValue(value);
+
+ setTimeout(() => {
+ checkValue(value);
+
+ done();
+ }, 100);
+ }, 100);
+ }, 100);
+ })
+ .catch(done);
+ });
+
+ it('Should render and open/close calendar on click', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].widget = {
+ allowInput: true,
+ altInput: true,
+ clickOpens: true,
+ dateFormat: 'dd-MM-yyyy',
+ enableDate: true,
+ enableTime: true,
+ format: 'dd-MM-yyyy',
+ hourIncrement: 1,
+ minuteIncrement: 5,
+ mode: 'single',
+ noCalendar: false,
+ saveAs: 'date',
+ time_24hr: false,
+ type: 'calendar',
+ useLocaleSettings: false,
+ };
const element = document.createElement('div');
- Formio.createForm(element, form).then(form => {
- form.setPristine(false);
-
- const component = form.getComponent('textField');
- const input = component.refs.input[0];
- const inputEvent = new Event('input');
- input.value = value.value;
- input.dispatchEvent(inputEvent);
-
- setTimeout(() => {
- assert.equal(!!component.error, false, 'Should not contain error');
- assert.equal(component.getValue(), value.expected, 'Should set and format value');
-
- if (_.isEqual(value.value, lastValue)) {
- done();
- }
- }, 300);
- }).catch(done);
- });
- };
-
- testFormatting(values, values[values.length-1].value);
- });
-
- it('Should allow multiple masks', function(done) {
- const form = _.cloneDeep(comp6);
- const tf = form.components[0];
- tf.allowMultipleMasks = true;
- tf.inputMasks = [
- { label: 'number', mask: '99-99' },
- { label: 'letter', mask: 'aa.aa' },
- { label: 'any', mask: '**/**' }
- ];
-
- const masks = [
- { index: 0, mask: 'number', valueValid:['33-33'], valueInvalid: ['Bd'] },
- { index: 1, mask: 'letter', valueValid:['rr.dd'], valueInvalid: ['Nr-22'] },
- { index: 2, mask: 'any', valueValid:['Dv/33'], valueInvalid: ['4/4'] },
- ];
-
- const testMask = (mask, valid, lastValue) => {
- const values = valid ? mask.valueValid : mask.valueInvalid;
-
- _.each(values, (value) => {
+ Formio.createForm(element, form)
+ .then((form) => {
+ const component = form.getComponent('textField');
+ const clickElem = (path) => {
+ const elem = _.get(component, path);
+ const clickEvent = new Event('click');
+ elem.dispatchEvent(clickEvent);
+ };
+ const checkCalendarState = (open) => {
+ const calendar = document.querySelector(
+ '.flatpickr-calendar',
+ );
+ assert.equal(
+ calendar.classList.contains('open'),
+ open,
+ `${
+ open
+ ? 'Should open calendar'
+ : 'Should close calendar'
+ }`,
+ );
+ };
+
+ assert.equal(
+ component.widget.settings.type,
+ 'calendar',
+ 'Should create calendar widget',
+ );
+ clickElem('refs.suffix[0]');
+
+ setTimeout(() => {
+ checkCalendarState(true);
+ clickElem('refs.suffix[0]');
+
+ setTimeout(() => {
+ checkCalendarState(false);
+ clickElem(
+ 'element.children[1].children[0].children[1]',
+ );
+
+ setTimeout(() => {
+ checkCalendarState(true);
+ clickElem('refs.suffix[0]');
+
+ setTimeout(() => {
+ checkCalendarState(false);
+ document.body.innerHTML = '';
+ done();
+ }, 300);
+ }, 300);
+ }, 300);
+ }, 300);
+ })
+ .catch(done);
+ });
+
+ it('Should set value into calendar', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].widget = {
+ allowInput: true,
+ altInput: true,
+ clickOpens: true,
+ dateFormat: 'dd-MM-yyyy',
+ enableDate: true,
+ enableTime: true,
+ format: 'dd-MM-yyyy',
+ hourIncrement: 1,
+ minuteIncrement: 5,
+ mode: 'single',
+ noCalendar: false,
+ saveAs: 'date',
+ time_24hr: false,
+ type: 'calendar',
+ useLocaleSettings: false,
+ };
const element = document.createElement('div');
- Formio.createForm(element, form).then(form => {
- form.setPristine(false);
- const component = form.getComponent('textField');
- const changed = component.setValue({ value: value, maskName: mask.mask });
- const error = 'Text Field does not match the mask.';
-
- if (value) {
- assert.equal(changed, true, 'Should set value');
- }
-
- setTimeout(() => {
- assert.equal(component.refs.select[0].options[mask.index].selected, true, 'Should select correct mask');
- assert.equal(component.getValue().maskName, mask.mask, 'Should apply correct mask');
-
- if (valid) {
- assert.equal(!!component.error, false, 'Should not contain error');
- }
- else {
- assert.equal(!!component.error, true, 'Should contain error');
- assert.equal(component.error.message, error, 'Should contain error message');
- assert.equal(component.element.classList.contains('has-error'), true, 'Should contain error class');
- assert.equal(component.refs.messageContainer.textContent.trim(), error, 'Should show error');
- }
-
- if (_.isEqual(value, lastValue)) {
- done();
- }
- }, 300);
- }).catch(done);
- });
- };
-
- _.each(masks, (mask, index) => {
- testMask(mask, true);
- testMask(mask, false, (index === masks.length - 1) ? mask.valueInvalid[mask.valueInvalid.length-1] : undefined);
+ Formio.createForm(element, form)
+ .then((form) => {
+ const component = form.getComponent('textField');
+ const clickElem = (path) => {
+ const elem = _.get(component, path);
+ const clickEvent = new Event('click');
+ elem.dispatchEvent(clickEvent);
+ };
+ const checkCalendarState = (open, selectedDay) => {
+ const calendar = document.querySelector(
+ '.flatpickr-calendar',
+ );
+ assert.equal(
+ calendar.classList.contains('open'),
+ open,
+ `${
+ open
+ ? 'Should open calendar'
+ : 'Should close calendar'
+ }`,
+ );
+ if (selectedDay) {
+ const day = calendar.querySelector(
+ '.flatpickr-day.selected',
+ ).textContent;
+ assert.equal(
+ day,
+ selectedDay,
+ 'Should select correct day',
+ );
+ }
+ };
+
+ const date = '16-03-2031';
+
+ component.setValue(date);
+
+ setTimeout(() => {
+ checkCalendarState(false);
+ const widget =
+ component.element.querySelector(
+ '.flatpickr-input',
+ ).widget;
+
+ assert.equal(
+ component.getValue(),
+ date,
+ 'Should set text field value',
+ );
+ assert.equal(
+ widget.calendar.input.value,
+ date,
+ 'Should set flatpickr value',
+ );
+ assert.equal(
+ widget.calendar.currentMonth,
+ 2,
+ 'Should set correct month',
+ );
+ assert.equal(
+ widget.calendar.currentYear,
+ 2031,
+ 'Should set correct year',
+ );
+
+ clickElem('refs.suffix[0]');
+
+ setTimeout(() => {
+ checkCalendarState(true);
+ clickElem('refs.suffix[0]');
+
+ setTimeout(() => {
+ checkCalendarState(false);
+ document.body.innerHTML = '';
+ done();
+ }, 300);
+ }, 300);
+ }, 300);
+ })
+ .catch(done);
});
- });
-
- it('Should provide validation of number input mask with low dash and placeholder char after setting value', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].inputMask = '99_99/99';
- form.components[0].inputMaskPlaceholderChar = '.';
-
- const validValues = [
- '',
- '55_44/88',
- ];
-
- const invalidValues = [
- '99 99 99',
- '44_44_55',
- '55555555',
- ];
-
- const testValidity = (values, valid, lastValue) => {
- _.each(values, (value) => {
+
+ it('Should allow manual input and set value on blur if calendar widget is enabled with allowed input', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].widget = {
+ allowInput: true,
+ altInput: true,
+ clickOpens: true,
+ dateFormat: 'dd-MM-yyyy',
+ enableDate: true,
+ enableTime: true,
+ format: 'dd-MM-yyyy',
+ hourIncrement: 1,
+ minuteIncrement: 5,
+ mode: 'single',
+ noCalendar: false,
+ saveAs: 'date',
+ time_24hr: false,
+ type: 'calendar',
+ useLocaleSettings: false,
+ };
const element = document.createElement('div');
- Formio.createForm(element, form).then(form => {
- form.setPristine(false);
-
- const component = form.getComponent('textField');
- const input = component.refs.input[0];
-
- assert.equal(input.inputmask.undoValue, '.._../..', 'Should set placeholder using the char setting');
-
- const changed = component.setValue(value);
- const error = 'Text Field does not match the mask.';
-
- if (value) {
- assert.equal(changed, true, 'Should set value');
- }
-
- setTimeout(() => {
- if (valid) {
- assert.equal(!!component.error, false, 'Should not contain error');
- }
- else {
- assert.equal(!!component.error, true, 'Should contain error');
- assert.equal(component.error.message, error, 'Should contain error message');
- assert.equal(component.element.classList.contains('has-error'), true, 'Should contain error class');
- assert.equal(component.refs.messageContainer.textContent.trim(), error, 'Should show error');
- }
-
- if (_.isEqual(value, lastValue)) {
- done();
- }
- }, 300);
- }).catch(done);
- });
- };
-
- testValidity(validValues, true);
- testValidity(invalidValues, false, invalidValues[invalidValues.length-1]);
- });
-
- it('Should format input according to input mask with low dash when placeholder char is set', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].inputMask = '99_99/99';
- form.components[0].inputMaskPlaceholderChar = '.';
-
- const values = [
- { value:'4444444', expected: '44_44/44' },
- ];
-
- const testFormatting = (values, lastValue) => {
- _.each(values, (value) => {
+ Formio.createForm(element, form)
+ .then((form) => {
+ const component = form.getComponent('textField');
+ const clickElem = (path, element) => {
+ const elem = element || _.get(component, path);
+ const clickEvent = new Event('click');
+ elem.dispatchEvent(clickEvent);
+ };
+ const checkCalendarState = (open, selectedDay) => {
+ const calendar = document.querySelector(
+ '.flatpickr-calendar',
+ );
+ assert.equal(
+ calendar.classList.contains('open'),
+ open,
+ `${
+ open
+ ? 'Should open calendar'
+ : 'Should close calendar'
+ }`,
+ );
+ if (selectedDay) {
+ const day = calendar.querySelector(
+ '.flatpickr-day.selected',
+ ).textContent;
+ assert.equal(
+ day,
+ selectedDay,
+ 'Should select correct day',
+ );
+ }
+ };
+
+ const triggerDateInputEvent = (eventName, value) => {
+ const dateInput = component.element.querySelector(
+ '.form-control.input',
+ );
+ const event = new Event(eventName);
+ if (eventName === 'input') {
+ dateInput.value = value;
+ }
+ dateInput.dispatchEvent(event);
+ };
+
+ triggerDateInputEvent('focus');
+
+ setTimeout(() => {
+ const date = '21-01-2001';
+ checkCalendarState(true);
+ triggerDateInputEvent('input', date);
+
+ setTimeout(() => {
+ checkCalendarState(true);
+ triggerDateInputEvent('blur');
+
+ setTimeout(() => {
+ checkCalendarState(true, 21);
+
+ assert.equal(
+ component.getValue(),
+ date,
+ 'Should set text field value',
+ );
+ const widget =
+ component.element.querySelector(
+ '.flatpickr-input',
+ ).widget;
+ assert.equal(
+ widget.calendar.input.value,
+ date,
+ 'Should set flatpickr value',
+ );
+ assert.equal(
+ widget.calendar.currentMonth,
+ 0,
+ 'Should set correct month',
+ );
+ assert.equal(
+ widget.calendar.currentYear,
+ 2001,
+ 'Should set correct year',
+ );
+
+ clickElem('refs.suffix[0]');
+
+ setTimeout(() => {
+ checkCalendarState(false);
+ assert.equal(
+ component.getValue(),
+ date,
+ 'Should save text field value',
+ );
+
+ document.body.innerHTML = '';
+ done();
+ }, 300);
+ }, 300);
+ }, 300);
+ }, 300);
+ })
+ .catch(done);
+ });
+
+ it('Should allow removing date value if calendar widget is enabled with allowed input', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].widget = {
+ allowInput: true,
+ altInput: true,
+ clickOpens: true,
+ dateFormat: 'dd-MM-yyyy',
+ enableDate: true,
+ enableTime: true,
+ format: 'dd-MM-yyyy',
+ hourIncrement: 1,
+ minuteIncrement: 5,
+ mode: 'single',
+ noCalendar: false,
+ saveAs: 'date',
+ time_24hr: false,
+ type: 'calendar',
+ useLocaleSettings: false,
+ };
const element = document.createElement('div');
- Formio.createForm(element, form).then(form => {
- form.setPristine(false);
-
- const component = form.getComponent('textField');
- const input = component.refs.input[0];
- const inputEvent = new Event('input');
- input.value = value.value;
- input.dispatchEvent(inputEvent);
-
- setTimeout(() => {
- assert.equal(!!component.error, false, 'Should not contain error');
- assert.equal(component.getValue(), value.expected, 'Should set and format value');
-
- if (_.isEqual(value.value, lastValue)) {
- done();
- }
- }, 300);
- }).catch(done);
- });
- };
-
- testFormatting(values, values[values.length-1].value);
- });
-
- it('Should correctly count characters if character counter is enabled', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].showCharCount = true;
- const element = document.createElement('div');
-
- Formio.createForm(element, form).then(form => {
- const component = form.getComponent('textField');
- const inputValue = (value) => {
- const input = component.refs.input[0];
- const inputEvent = new Event('input');
- input.value = value;
- input.dispatchEvent(inputEvent);
- };
-
- const checkValue = (value) => {
- assert.equal(component.dataValue, value, 'Should set value');
- assert.equal(parseInt(component.refs.charcount[0].textContent), value.length, 'Should show correct chars number');
- assert.equal(component.refs.charcount[0].textContent, `${value.length} characters`, 'Should show correct message');
- };
-
- let value = 'test Value (@#!-"]) _ 23.,5}/*&&';
- inputValue(value);
- setTimeout(() => {
- checkValue(value);
- value = '';
- inputValue(value);
-
- setTimeout(() => {
- checkValue(value);
- value = ' ';
- inputValue(value);
-
- setTimeout(() => {
- checkValue(value);
+ Formio.createForm(element, form)
+ .then((form) => {
+ const component = form.getComponent('textField');
+ const clickElem = (path, element) => {
+ const elem = element || _.get(component, path);
+ const clickEvent = new Event('click');
+ elem.dispatchEvent(clickEvent);
+ };
+
+ const checkCalendarState = (
+ open,
+ selectedDay,
+ noSelectedDay,
+ ) => {
+ const calendar = document.querySelector(
+ '.flatpickr-calendar',
+ );
+ assert.equal(
+ calendar.classList.contains('open'),
+ open,
+ `${
+ open
+ ? 'Should open calendar'
+ : 'Should close calendar'
+ }`,
+ );
+ if (selectedDay) {
+ const day = calendar.querySelector(
+ '.flatpickr-day.selected',
+ ).textContent;
+ assert.equal(
+ day,
+ selectedDay,
+ 'Should select correct day',
+ );
+ }
+ if (noSelectedDay) {
+ const day = calendar.querySelector(
+ '.flatpickr-day.selected',
+ );
+ assert.equal(
+ !!day,
+ false,
+ 'Should not contain selected day',
+ );
+ }
+ };
+
+ const triggerDateInputEvent = (eventName, value) => {
+ const dateInput = component.element.querySelector(
+ '.form-control.input',
+ );
+ const event = new Event(eventName);
+ if (eventName === 'input') {
+ dateInput.value = value;
+ }
+ dateInput.dispatchEvent(event);
+ };
+
+ let date = '12-03-2009';
+ component.setValue(date);
+ triggerDateInputEvent('focus');
+
+ setTimeout(() => {
+ assert.equal(
+ component.getValue(),
+ date,
+ 'Should set text field value',
+ );
+ date = '';
+ checkCalendarState(true);
+ triggerDateInputEvent('input', date);
+
+ setTimeout(() => {
+ checkCalendarState(true);
+ triggerDateInputEvent('blur');
+
+ setTimeout(() => {
+ checkCalendarState(true, '', true);
+
+ assert.equal(
+ component.getValue(),
+ date,
+ 'Should set text field value',
+ );
+ const widget =
+ component.element.querySelector(
+ '.flatpickr-input',
+ ).widget;
+ assert.equal(
+ widget.calendar.input.value,
+ date,
+ 'Should set flatpickr value',
+ );
+
+ clickElem('refs.suffix[0]');
+
+ setTimeout(() => {
+ checkCalendarState(false);
+ assert.equal(
+ component.getValue(),
+ date,
+ 'Should save text field value',
+ );
+ document.body.innerHTML = '';
+ done();
+ }, 300);
+ }, 300);
+ }, 300);
+ }, 300);
+ })
+ .catch(done);
+ });
- done();
- }, 200);
- }, 200);
- }, 200);
- }).catch(done);
- });
-
- it('Should format value to uppercase', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].case = 'uppercase';
- const element = document.createElement('div');
-
- Formio.createForm(element, form).then(form => {
- const component = form.getComponent('textField');
- const inputValue = (value) => {
- const input = component.refs.input[0];
- const inputEvent = new Event('input');
- input.value = value;
- input.dispatchEvent(inputEvent);
- };
-
- const checkValue = (value) => {
- assert.equal(component.dataValue, value.toUpperCase(), 'Should format value to uppercase');
- assert.equal(component.getValue(), value.toUpperCase(), 'Should format value to uppercase');
- };
-
- let value = 'SoMe Value';
- inputValue(value);
- setTimeout(() => {
- checkValue(value);
- value = 'test 1 value 1';
- inputValue(value);
-
- setTimeout(() => {
- checkValue(value);
- value = '';
- inputValue(value);
-
- setTimeout(() => {
- checkValue(value);
+ it('Test Display mask', function (done) {
+ const element = document.createElement('div');
- done();
- }, 100);
- }, 100);
- }, 100);
- }).catch(done);
- });
-
- it('Should format value to lowercase', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].case = 'lowercase';
- const element = document.createElement('div');
-
- Formio.createForm(element, form).then(form => {
- const component = form.getComponent('textField');
- const inputValue = (value) => {
- const input = component.refs.input[0];
- const inputEvent = new Event('input');
- input.value = value;
- input.dispatchEvent(inputEvent);
- };
-
- const checkValue = (value) => {
- assert.equal(component.dataValue, value.toLowerCase(), 'Should format value to lowercase (1)');
- assert.equal(component.getValue(), value.toLowerCase(), 'Should format value to lowercase (2)');
- };
-
- let value = 'SoMe Value';
- inputValue(value);
- setTimeout(() => {
- checkValue(value);
- value = 'TEST 1 VALUE (1)';
- inputValue(value);
-
- setTimeout(() => {
- checkValue(value);
- value = '';
- inputValue(value);
-
- setTimeout(() => {
- checkValue(value);
+ Formio.createForm(element, withDisplayAndInputMasks)
+ .then((form) => {
+ const textField = form.getComponent(['textField']);
+ const textFieldDisplayMask = form.getComponent([
+ 'textFieldDisplayMask',
+ ]);
+ const textFieldDisplayAndInputMasks = form.getComponent([
+ 'textFieldDisplayAndInputMasks',
+ ]);
+ const textFieldDisplayAndInputMasksReverse = form.getComponent([
+ 'textFieldDisplayAndInputMasksReverse',
+ ]);
+
+ Harness.dispatchEvent(
+ 'input',
+ form.element,
+ '[name="data[textField]"',
+ (input) => (input.value = '123123'),
+ );
+ Harness.dispatchEvent(
+ 'input',
+ form.element,
+ '[name="data[textFieldDisplayMask]"',
+ (input) => (input.value = '123123'),
+ );
+ Harness.dispatchEvent(
+ 'input',
+ form.element,
+ '[name="data[textFieldDisplayAndInputMasks]"',
+ (input) => (input.value = '123123'),
+ );
+ Harness.dispatchEvent(
+ 'input',
+ form.element,
+ '[name="data[textFieldDisplayAndInputMasksReverse]"',
+ (input) => (input.value = '123123'),
+ );
+
+ setTimeout(() => {
+ Harness.getInputValue(
+ textField,
+ 'data[textField]',
+ '123-123',
+ );
+ Harness.getInputValue(
+ textFieldDisplayMask,
+ 'data[textFieldDisplayMask]',
+ '123-123',
+ );
+ Harness.getInputValue(
+ textFieldDisplayAndInputMasks,
+ 'data[textFieldDisplayAndInputMasks]',
+ '+1(23)-123',
+ );
+ Harness.getInputValue(
+ textFieldDisplayAndInputMasksReverse,
+ 'data[textFieldDisplayAndInputMasksReverse]',
+ '123-123',
+ );
+
+ assert.equal(
+ textField.dataValue,
+ '123-123',
+ 'If only Input mask is set, it should affect both value and view',
+ );
+ assert.equal(
+ textFieldDisplayMask.dataValue,
+ '123123',
+ 'If only Display mask is set, it should affect only view',
+ );
+ assert.equal(
+ textFieldDisplayAndInputMasks.dataValue,
+ '123-123',
+ 'If both Input and Display masks are set, the Input mask should be applied to value',
+ );
+ assert.equal(
+ textFieldDisplayAndInputMasksReverse.dataValue,
+ '+1(23)-123',
+ 'If both Input and Display masks are set, the Input mask should be applied to value',
+ );
+ done();
+ }, 200);
+ })
+ .catch(done);
+ });
- done();
- }, 100);
- }, 100);
- }, 100);
- }).catch(done);
- });
-
- it('Should render and open/close calendar on click', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].widget = {
- allowInput: true,
- altInput: true,
- clickOpens: true,
- dateFormat: 'dd-MM-yyyy',
- enableDate: true,
- enableTime: true,
- format: 'dd-MM-yyyy',
- hourIncrement: 1,
- minuteIncrement: 5,
- mode: 'single',
- noCalendar: false,
- saveAs: 'date',
- 'time_24hr': false,
- type: 'calendar',
- useLocaleSettings: false,
- };
- const element = document.createElement('div');
-
- Formio.createForm(element, form).then(form => {
- const component = form.getComponent('textField');
- const clickElem = (path) => {
- const elem = _.get(component, path);
- const clickEvent = new Event('click');
- elem.dispatchEvent(clickEvent);
- };
- const checkCalendarState = (open) => {
- const calendar = document.querySelector('.flatpickr-calendar');
- assert.equal(calendar.classList.contains('open'), open, `${open ? 'Should open calendar' : 'Should close calendar'}`);
- };
-
- assert.equal(component.widget.settings.type, 'calendar', 'Should create calendar widget');
- clickElem('refs.suffix[0]');
-
- setTimeout(() => {
- checkCalendarState(true);
- clickElem('refs.suffix[0]');
-
- setTimeout(() => {
- checkCalendarState(false);
- clickElem('element.children[1].children[0].children[1]');
-
- setTimeout(() => {
- checkCalendarState(true);
- clickElem('refs.suffix[0]');
+ it('Should render HTML', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].inputFormat = 'html';
+ const element = document.createElement('div');
- setTimeout(() => {
- checkCalendarState(false);
- document.body.innerHTML = '';
- done();
- }, 300);
- }, 300);
- }, 300);
- }, 300);
- }).catch(done);
- });
-
- it('Should set value into calendar', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].widget = {
- allowInput: true,
- altInput: true,
- clickOpens: true,
- dateFormat: 'dd-MM-yyyy',
- enableDate: true,
- enableTime: true,
- format: 'dd-MM-yyyy',
- hourIncrement: 1,
- minuteIncrement: 5,
- mode: 'single',
- noCalendar: false,
- saveAs: 'date',
- 'time_24hr': false,
- type: 'calendar',
- useLocaleSettings: false,
- };
- const element = document.createElement('div');
-
- Formio.createForm(element, form).then(form => {
- const component = form.getComponent('textField');
- const clickElem = (path) => {
- const elem = _.get(component, path);
- const clickEvent = new Event('click');
- elem.dispatchEvent(clickEvent);
- };
- const checkCalendarState = (open, selectedDay) => {
- const calendar = document.querySelector('.flatpickr-calendar');
- assert.equal(calendar.classList.contains('open'), open, `${open ? 'Should open calendar' : 'Should close calendar'}`);
- if (selectedDay) {
- const day = calendar.querySelector('.flatpickr-day.selected').textContent;
- assert.equal(day, selectedDay, 'Should select correct day');
- }
- };
-
- const date = '16-03-2031';
-
- component.setValue(date);
-
- setTimeout(() => {
- checkCalendarState(false);
- const widget = component.element.querySelector('.flatpickr-input').widget;
-
- assert.equal(component.getValue(), date, 'Should set text field value');
- assert.equal(widget.calendar.input.value, date, 'Should set flatpickr value');
- assert.equal(widget.calendar.currentMonth, 2, 'Should set correct month');
- assert.equal(widget.calendar.currentYear, 2031, 'Should set correct year');
-
- clickElem('refs.suffix[0]');
-
- setTimeout(() => {
- checkCalendarState(true);
- clickElem('refs.suffix[0]');
-
- setTimeout(() => {
- checkCalendarState(false);
- document.body.innerHTML = '';
- done();
- }, 300);
- }, 300);
- }, 300);
- }).catch(done);
- });
-
- it('Should allow manual input and set value on blur if calendar widget is enabled with allowed input', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].widget = {
- allowInput: true,
- altInput: true,
- clickOpens: true,
- dateFormat: 'dd-MM-yyyy',
- enableDate: true,
- enableTime: true,
- format: 'dd-MM-yyyy',
- hourIncrement: 1,
- minuteIncrement: 5,
- mode: 'single',
- noCalendar: false,
- saveAs: 'date',
- 'time_24hr': false,
- type: 'calendar',
- useLocaleSettings: false,
- };
- const element = document.createElement('div');
-
- Formio.createForm(element, form).then(form => {
- const component = form.getComponent('textField');
- const clickElem = (path, element) => {
- const elem = element || _.get(component, path);
- const clickEvent = new Event('click');
- elem.dispatchEvent(clickEvent);
- };
- const checkCalendarState = (open, selectedDay) => {
- const calendar = document.querySelector('.flatpickr-calendar');
- assert.equal(calendar.classList.contains('open'), open, `${open ? 'Should open calendar' : 'Should close calendar'}`);
- if (selectedDay) {
- const day = calendar.querySelector('.flatpickr-day.selected').textContent;
- assert.equal(day, selectedDay, 'Should select correct day');
- }
- };
-
- const triggerDateInputEvent = (eventName, value) => {
- const dateInput = component.element.querySelector('.form-control.input');
- const event = new Event(eventName);
- if (eventName === 'input') {
- dateInput.value = value;
- }
- dateInput.dispatchEvent(event);
- };
-
- triggerDateInputEvent('focus');
-
- setTimeout(() => {
- const date = '21-01-2001';
- checkCalendarState(true);
- triggerDateInputEvent('input', date);
-
- setTimeout(() => {
- checkCalendarState(true);
- triggerDateInputEvent('blur');
-
- setTimeout(() => {
- checkCalendarState(true, 21);
-
- assert.equal(component.getValue(), date, 'Should set text field value');
- const widget = component.element.querySelector('.flatpickr-input').widget;
- assert.equal(widget.calendar.input.value, date, 'Should set flatpickr value');
- assert.equal(widget.calendar.currentMonth, 0, 'Should set correct month');
- assert.equal(widget.calendar.currentYear, 2001, 'Should set correct year');
-
- clickElem('refs.suffix[0]');
+ Formio.createForm(element, form, {
+ readOnly: true,
+ })
+ .then((form) => {
+ form.setSubmission({
+ data: {
+ textField: '
HTML! ',
+ },
+ });
+ setTimeout(() => {
+ const textField = form.getComponent('textField');
+ textField.loadRefs(element, {
+ value: 'multiple',
+ });
+ assert.equal(
+ textField.refs.value[0].innerHTML,
+ '
HTML! ',
+ );
+ done();
+ }, 300);
+ })
+ .catch(done);
+ });
- setTimeout(() => {
- checkCalendarState(false);
- assert.equal(component.getValue(), date, 'Should save text field value');
-
- document.body.innerHTML = '';
- done();
- }, 300);
- }, 300);
- }, 300);
- }, 300);
- }).catch(done);
- });
-
- it('Should allow removing date value if calendar widget is enabled with allowed input', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].widget = {
- allowInput: true,
- altInput: true,
- clickOpens: true,
- dateFormat: 'dd-MM-yyyy',
- enableDate: true,
- enableTime: true,
- format: 'dd-MM-yyyy',
- hourIncrement: 1,
- minuteIncrement: 5,
- mode: 'single',
- noCalendar: false,
- saveAs: 'date',
- 'time_24hr': false,
- type: 'calendar',
- useLocaleSettings: false,
- };
- const element = document.createElement('div');
-
- Formio.createForm(element, form).then(form => {
- const component = form.getComponent('textField');
- const clickElem = (path, element) => {
- const elem = element || _.get(component, path);
- const clickEvent = new Event('click');
- elem.dispatchEvent(clickEvent);
- };
-
- const checkCalendarState = (open, selectedDay, noSelectedDay) => {
- const calendar = document.querySelector('.flatpickr-calendar');
- assert.equal(calendar.classList.contains('open'), open, `${open ? 'Should open calendar' : 'Should close calendar'}`);
- if (selectedDay) {
- const day = calendar.querySelector('.flatpickr-day.selected').textContent;
- assert.equal(day, selectedDay, 'Should select correct day');
- }
- if (noSelectedDay) {
- const day = calendar.querySelector('.flatpickr-day.selected');
- assert.equal(!!day, false, 'Should not contain selected day');
- }
- };
-
- const triggerDateInputEvent = (eventName, value) => {
- const dateInput = component.element.querySelector('.form-control.input');
- const event = new Event(eventName);
- if (eventName === 'input') {
- dateInput.value = value;
- }
- dateInput.dispatchEvent(event);
- };
-
- let date = '12-03-2009';
- component.setValue(date);
- triggerDateInputEvent('focus');
-
- setTimeout(() => {
- assert.equal(component.getValue(), date, 'Should set text field value');
- date = '';
- checkCalendarState(true);
- triggerDateInputEvent('input', date);
-
- setTimeout(() => {
- checkCalendarState(true);
- triggerDateInputEvent('blur');
-
- setTimeout(() => {
- checkCalendarState(true, '', true);
-
- assert.equal(component.getValue(), date, 'Should set text field value');
- const widget = component.element.querySelector('.flatpickr-input').widget;
- assert.equal(widget.calendar.input.value, date, 'Should set flatpickr value');
-
- clickElem('refs.suffix[0]');
+ it('Should render plain text', function (done) {
+ const form = _.cloneDeep(comp6);
+ form.components[0].inputFormat = 'plain';
+ const element = document.createElement('div');
- setTimeout(() => {
- checkCalendarState(false);
- assert.equal(component.getValue(), date, 'Should save text field value');
- document.body.innerHTML = '';
- done();
- }, 300);
- }, 300);
- }, 300);
- }, 300);
- }).catch(done);
- });
-
- it('Test Display mask', function(done) {
- const element = document.createElement('div');
-
- Formio.createForm(element, withDisplayAndInputMasks).then(form => {
- const textField = form.getComponent(['textField']);
- const textFieldDisplayMask = form.getComponent(['textFieldDisplayMask']);
- const textFieldDisplayAndInputMasks = form.getComponent(['textFieldDisplayAndInputMasks']);
- const textFieldDisplayAndInputMasksReverse = form.getComponent(['textFieldDisplayAndInputMasksReverse']);
-
- Harness.dispatchEvent(
- 'input',
- form.element,
- '[name="data[textField]"',
- (input) => input.value = '123123',
- );
- Harness.dispatchEvent(
- 'input',
- form.element,
- '[name="data[textFieldDisplayMask]"',
- (input) => input.value = '123123',
- );
- Harness.dispatchEvent(
- 'input',
- form.element,
- '[name="data[textFieldDisplayAndInputMasks]"',
- (input) => input.value = '123123',
- );
- Harness.dispatchEvent(
- 'input',
- form.element,
- '[name="data[textFieldDisplayAndInputMasksReverse]"',
- (input) => input.value = '123123',
- );
-
- setTimeout(() => {
- Harness.getInputValue(textField, 'data[textField]', '123-123');
- Harness.getInputValue(textFieldDisplayMask, 'data[textFieldDisplayMask]', '123-123');
- Harness.getInputValue(textFieldDisplayAndInputMasks, 'data[textFieldDisplayAndInputMasks]', '+1(23)-123');
- Harness.getInputValue(textFieldDisplayAndInputMasksReverse, 'data[textFieldDisplayAndInputMasksReverse]', '123-123');
-
- assert.equal(
- textField.dataValue,
- '123-123',
- 'If only Input mask is set, it should affect both value and view',
- );
- assert.equal(
- textFieldDisplayMask.dataValue,
- '123123',
- 'If only Display mask is set, it should affect only view',
- );
- assert.equal(
- textFieldDisplayAndInputMasks.dataValue,
- '123-123',
- 'If both Input and Display masks are set, the Input mask should be applied to value',
- );
- assert.equal(
- textFieldDisplayAndInputMasksReverse.dataValue,
- '+1(23)-123',
- 'If both Input and Display masks are set, the Input mask should be applied to value',
- );
- done();
- }, 200);
- }).catch(done);
- });
-
- it('Should render HTML', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].inputFormat = 'html';
- const element = document.createElement('div');
-
- Formio.createForm(element, form, {
- readOnly: true
- }).then(form => {
- form.setSubmission({
- data: {
- textField: '
HTML! '
- }
- });
- setTimeout(() => {
- const textField = form.getComponent('textField');
- textField.loadRefs(element, {
- value: 'multiple'
- });
- assert.equal(textField.refs.value[0].innerHTML, '
HTML! ');
- done();
- }, 300);
- }).catch(done);
- });
-
- it('Should render plain text', function(done) {
- const form = _.cloneDeep(comp6);
- form.components[0].inputFormat = 'plain';
- const element = document.createElement('div');
-
- Formio.createForm(element, form, {
- readOnly: true
- }).then(form => {
- form.setSubmission({
- data: {
- textField: '
Plain! '
- }
- });
- setTimeout(() => {
- const textField = form.getComponent('textField');
- assert.equal(textField.refs.input[0].value, '
Plain! ');
- done();
- }, 300);
- }).catch(done);
- });
+ Formio.createForm(element, form, {
+ readOnly: true,
+ })
+ .then((form) => {
+ form.setSubmission({
+ data: {
+ textField: '
Plain! ',
+ },
+ });
+ setTimeout(() => {
+ const textField = form.getComponent('textField');
+ assert.equal(
+ textField.refs.input[0].value,
+ '
Plain! ',
+ );
+ done();
+ }, 300);
+ })
+ .catch(done);
+ });
});
diff --git a/src/components/textfield/editForm/TextField.edit.data.js b/src/components/textfield/editForm/TextField.edit.data.js
index 9ed4427abd..be122998fc 100644
--- a/src/components/textfield/editForm/TextField.edit.data.js
+++ b/src/components/textfield/editForm/TextField.edit.data.js
@@ -1,56 +1,59 @@
export default [
- {
- type: 'select',
- label: 'Input Format',
- key: 'inputFormat',
- weight: 105,
- placeholder: 'Input Format',
- tooltip: 'Force the output of this field to be sanitized in a specific format.',
- template: '
{{ item.label }} ',
- data: {
- values: [
- {
- value: 'plain',
- label: 'Plain'
+ {
+ type: 'select',
+ label: 'Input Format',
+ key: 'inputFormat',
+ weight: 105,
+ placeholder: 'Input Format',
+ tooltip:
+ 'Force the output of this field to be sanitized in a specific format.',
+ template: '
{{ item.label }} ',
+ data: {
+ values: [
+ {
+ value: 'plain',
+ label: 'Plain',
+ },
+ {
+ value: 'html',
+ label: 'HTML',
+ },
+ {
+ value: 'raw',
+ label: 'Raw (Insecure)',
+ },
+ ],
},
- {
- value: 'html',
- label: 'HTML'
- },{
- value: 'raw',
- label: 'Raw (Insecure)'
- }
- ]
+ defaultValue: 'plain',
+ input: true,
+ },
+ {
+ weight: 200,
+ type: 'radio',
+ label: 'Text Case',
+ key: 'case',
+ tooltip: 'When data is entered, you can change the case of the value.',
+ input: true,
+ values: [
+ {
+ value: 'mixed',
+ label: 'Mixed (Allow upper and lower case)',
+ },
+ {
+ value: 'uppercase',
+ label: 'Uppercase',
+ },
+ {
+ value: 'lowercase',
+ label: 'Lowercase',
+ },
+ ],
+ },
+ {
+ weight: 205,
+ type: 'checkbox',
+ input: true,
+ key: 'truncateMultipleSpaces',
+ label: 'Truncate Multiple Spaces',
},
- defaultValue: 'plain',
- input: true
- },
- {
- weight: 200,
- type: 'radio',
- label: 'Text Case',
- key: 'case',
- tooltip: 'When data is entered, you can change the case of the value.',
- input: true,
- values: [
- {
- value: 'mixed',
- label: 'Mixed (Allow upper and lower case)'
- },
- {
- value: 'uppercase',
- label: 'Uppercase'
- },{
- value: 'lowercase',
- label: 'Lowercase'
- }
- ]
- },
- {
- weight: 205,
- type: 'checkbox',
- input: true,
- key: 'truncateMultipleSpaces',
- label: 'Truncate Multiple Spaces',
- },
];
diff --git a/src/components/textfield/editForm/TextField.edit.display.js b/src/components/textfield/editForm/TextField.edit.display.js
index 9804113859..f48ff8e659 100644
--- a/src/components/textfield/editForm/TextField.edit.display.js
+++ b/src/components/textfield/editForm/TextField.edit.display.js
@@ -1,207 +1,217 @@
import Widgets from '../../../widgets';
import _ from 'lodash';
export default [
- {
- weight: 400,
- type: 'select',
- input: true,
- key: 'widget.type',
- label: 'Widget',
- placeholder: 'Select a widget',
- tooltip: 'The widget is the display UI used to input the value of the field.',
- defaultValue: 'input',
- onChange: (context) => {
- context.data.widget = _.pick(context.data.widget, 'type');
+ {
+ weight: 400,
+ type: 'select',
+ input: true,
+ key: 'widget.type',
+ label: 'Widget',
+ placeholder: 'Select a widget',
+ tooltip:
+ 'The widget is the display UI used to input the value of the field.',
+ defaultValue: 'input',
+ onChange: (context) => {
+ context.data.widget = _.pick(context.data.widget, 'type');
+ },
+ dataSrc: 'values',
+ data: {
+ values: [
+ { label: 'Input Field', value: 'input' },
+ { label: 'Calendar Picker', value: 'calendar' },
+ ],
+ },
+ conditional: {
+ json: { '===': [{ var: 'data.type' }, 'textfield'] },
+ },
},
- dataSrc: 'values',
- data: {
- values: [
- { label: 'Input Field', value: 'input' },
- { label: 'Calendar Picker', value: 'calendar' },
- ]
- },
- conditional: {
- json: { '===': [{ var: 'data.type' }, 'textfield'] }
- }
- },
- {
- weight: 405,
- type: 'textarea',
- key: 'widget',
- label: 'Widget Settings',
- refreshOn: 'wiget.type',
- clearOnHide: false,
- // Deleted clearOnHide and refreshOn to make possible to change exist widget settings.
- calculateValue: (context) => {
- const { calculatedValue } = context.instance;
- const { type } = context.data.widget;
+ {
+ weight: 405,
+ type: 'textarea',
+ key: 'widget',
+ label: 'Widget Settings',
+ refreshOn: 'wiget.type',
+ clearOnHide: false,
+ // Deleted clearOnHide and refreshOn to make possible to change exist widget settings.
+ calculateValue: (context) => {
+ const { calculatedValue } = context.instance;
+ const { type } = context.data.widget;
- if (
- _.isEmpty(_.omit(context.data.widget, 'type')) ||
- _.isEmpty(_.omit(calculatedValue, 'type'))
- ) {
- if (calculatedValue && !calculatedValue.type) {
- return context.data.widget;
- }
+ if (
+ _.isEmpty(_.omit(context.data.widget, 'type')) ||
+ _.isEmpty(_.omit(calculatedValue, 'type'))
+ ) {
+ if (calculatedValue && !calculatedValue.type) {
+ return context.data.widget;
+ }
- const existWidget = context.instance._currentForm.options.editComponent.widget;
- if (existWidget && !_.isEmpty(_.omit(existWidget, 'type')) && type === existWidget.type) {
- return _.omit(existWidget, 'language');
- }
- else if (type) {
- return _.omit(Widgets[type].defaultSettings, 'language');
- }
- }
- return context.data.widget;
+ const existWidget =
+ context.instance._currentForm.options.editComponent.widget;
+ if (
+ existWidget &&
+ !_.isEmpty(_.omit(existWidget, 'type')) &&
+ type === existWidget.type
+ ) {
+ return _.omit(existWidget, 'language');
+ } else if (type) {
+ return _.omit(Widgets[type].defaultSettings, 'language');
+ }
+ }
+ return context.data.widget;
+ },
+ input: true,
+ rows: 5,
+ editor: 'ace',
+ as: 'json',
+ conditional: {
+ json: { '!==': [{ var: 'data.widget.type' }, 'input'] },
+ },
+ },
+ {
+ weight: 410,
+ type: 'textfield',
+ input: true,
+ key: 'inputMask',
+ label: 'Input Mask',
+ tooltip:
+ "An input mask helps the user with input by ensuring a predefined format.
9: numeric
a: alphabetical
*: alphanumeric
Example telephone mask: (999) 999-9999
See the
jquery.inputmask documentation for more information.",
+ customConditional(context) {
+ return !context.data.allowMultipleMasks;
+ },
},
- input: true,
- rows: 5,
- editor: 'ace',
- as: 'json',
- conditional: {
- json: { '!==': [{ var: 'data.widget.type' }, 'input'] }
- }
- },
- {
- weight: 410,
- type: 'textfield',
- input: true,
- key: 'inputMask',
- label: 'Input Mask',
- tooltip: 'An input mask helps the user with input by ensuring a predefined format.
9: numeric
a: alphabetical
*: alphanumeric
Example telephone mask: (999) 999-9999
See the
jquery.inputmask documentation for more information.',
- customConditional(context) {
- return !context.data.allowMultipleMasks;
+ {
+ weight: 410,
+ type: 'textfield',
+ input: true,
+ key: 'displayMask',
+ label: 'Display Mask',
+ tooltip:
+ "A display mask helps to display the input in a readable way, this won't affect the value which will be saved (to affect both view and saved value, delete Display Mask and use Input Mask).
9: numeric
a: alphabetical
*: alphanumeric
Example telephone mask: (999) 999-9999
See the
jquery.inputmask documentation for more information.",
+ customConditional(context) {
+ return !context.data.allowMultipleMasks;
+ },
+ },
+ {
+ weight: 410,
+ type: 'select',
+ input: true,
+ key: 'applyMaskOn',
+ label: 'Apply Mask On',
+ tooltip: 'Select the type of applying mask.',
+ defaultValue: 'change',
+ dataSrc: 'values',
+ data: {
+ values: [
+ { label: 'Change', value: 'change' },
+ { label: 'Blur', value: 'blur' },
+ ],
+ },
+ customConditional(context) {
+ return !context.data.allowMultipleMasks;
+ },
},
- },
- {
- weight: 410,
- type: 'textfield',
- input: true,
- key: 'displayMask',
- label: 'Display Mask',
- tooltip: 'A display mask helps to display the input in a readable way, this won\'t affect the value which will be saved (to affect both view and saved value, delete Display Mask and use Input Mask).
9: numeric
a: alphabetical
*: alphanumeric
Example telephone mask: (999) 999-9999
See the
jquery.inputmask documentation for more information.',
- customConditional(context) {
- return !context.data.allowMultipleMasks;
+ {
+ weight: 411,
+ type: 'textfield',
+ input: true,
+ key: 'inputMaskPlaceholderChar',
+ label: 'Input Mask Placeholder Char',
+ tooltip:
+ 'You can specify a char which will be used as a placeholder in the field.
E.g., \u02cd
Make note that placeholder char will be replaced by a space if it is used inside the mask',
+ validation: {
+ maxLength: 1,
+ },
+ customConditional(context) {
+ return context.data.inputMask || context.data.displayMask;
+ },
},
- },
- {
- weight: 410,
- type: 'select',
- input: true,
- key: 'applyMaskOn',
- label: 'Apply Mask On',
- tooltip: 'Select the type of applying mask.',
- defaultValue: 'change',
- dataSrc: 'values',
- data: {
- values: [
- { label: 'Change', value: 'change' },
- { label: 'Blur', value: 'blur' },
- ],
+ {
+ weight: 413,
+ type: 'checkbox',
+ input: true,
+ key: 'allowMultipleMasks',
+ label: 'Allow Multiple Masks',
},
- customConditional(context) {
- return !context.data.allowMultipleMasks;
+ {
+ weight: 1350,
+ type: 'checkbox',
+ input: true,
+ key: 'spellcheck',
+ defaultValue: true,
+ label: 'Allow Spellcheck',
},
- },
- {
- weight: 411,
- type: 'textfield',
- input: true,
- key: 'inputMaskPlaceholderChar',
- label: 'Input Mask Placeholder Char',
- tooltip: 'You can specify a char which will be used as a placeholder in the field.
E.g., \u02cd
Make note that placeholder char will be replaced by a space if it is used inside the mask',
- validation: {
- maxLength: 1
+ {
+ weight: 417,
+ type: 'datagrid',
+ input: true,
+ key: 'inputMasks',
+ label: 'Input Masks',
+ customConditional(context) {
+ return context.data.allowMultipleMasks === true;
+ },
+ reorder: true,
+ components: [
+ {
+ type: 'textfield',
+ key: 'label',
+ label: 'Label',
+ input: true,
+ },
+ {
+ type: 'textfield',
+ key: 'mask',
+ label: 'Mask',
+ input: true,
+ },
+ ],
},
- customConditional(context) {
- return context.data.inputMask || context.data.displayMask;
- }
- },
- {
- weight: 413,
- type: 'checkbox',
- input: true,
- key: 'allowMultipleMasks',
- label: 'Allow Multiple Masks'
- },
- {
- weight: 1350,
- type: 'checkbox',
- input: true,
- key: 'spellcheck',
- defaultValue: true,
- label: 'Allow Spellcheck'
- },
- {
- weight: 417,
- type: 'datagrid',
- input: true,
- key: 'inputMasks',
- label: 'Input Masks',
- customConditional(context) {
- return context.data.allowMultipleMasks === true;
+ {
+ weight: 320,
+ type: 'textfield',
+ input: true,
+ key: 'prefix',
+ label: 'Prefix',
},
- reorder: true,
- components: [
- {
+ {
+ weight: 330,
type: 'textfield',
- key: 'label',
- label: 'Label',
- input: true
- },
- {
+ input: true,
+ key: 'suffix',
+ label: 'Suffix',
+ },
+ {
+ weight: 700,
type: 'textfield',
+ input: true,
+ key: 'autocomplete',
+ label: 'Autocomplete',
+ placeholder: 'on',
+ tooltip:
+ "Indicates whether input elements can by default have their values automatically completed by the browser. See the
MDN documentation on autocomplete for more information.",
+ },
+ {
+ weight: 1300,
+ type: 'checkbox',
+ label: 'Hide Input',
+ tooltip:
+ 'Hide the input in the browser. This does not encrypt on the server. Do not use for passwords.',
key: 'mask',
- label: 'Mask',
- input: true
- }
- ]
- },
- {
- weight: 320,
- type: 'textfield',
- input: true,
- key: 'prefix',
- label: 'Prefix'
- },
- {
- weight: 330,
- type: 'textfield',
- input: true,
- key: 'suffix',
- label: 'Suffix'
- },
- {
- weight: 700,
- type: 'textfield',
- input: true,
- key: 'autocomplete',
- label: 'Autocomplete',
- placeholder: 'on',
- tooltip: 'Indicates whether input elements can by default have their values automatically completed by the browser. See the
MDN documentation on autocomplete for more information.'
- },
- {
- weight: 1300,
- type: 'checkbox',
- label: 'Hide Input',
- tooltip: 'Hide the input in the browser. This does not encrypt on the server. Do not use for passwords.',
- key: 'mask',
- input: true
- },
- {
- weight: 1200,
- type: 'checkbox',
- label: 'Show Word Counter',
- tooltip: 'Show a live count of the number of words.',
- key: 'showWordCount',
- input: true
- },
- {
- weight: 1201,
- type: 'checkbox',
- label: 'Show Character Counter',
- tooltip: 'Show a live count of the number of characters.',
- key: 'showCharCount',
- input: true
- },
+ input: true,
+ },
+ {
+ weight: 1200,
+ type: 'checkbox',
+ label: 'Show Word Counter',
+ tooltip: 'Show a live count of the number of words.',
+ key: 'showWordCount',
+ input: true,
+ },
+ {
+ weight: 1201,
+ type: 'checkbox',
+ label: 'Show Character Counter',
+ tooltip: 'Show a live count of the number of characters.',
+ key: 'showCharCount',
+ input: true,
+ },
];
diff --git a/src/components/textfield/editForm/TextField.edit.validation.js b/src/components/textfield/editForm/TextField.edit.validation.js
index b9926d5aa5..a5af719780 100644
--- a/src/components/textfield/editForm/TextField.edit.validation.js
+++ b/src/components/textfield/editForm/TextField.edit.validation.js
@@ -1,47 +1,48 @@
export default [
- {
- weight: 110,
- key: 'validate.minLength',
- label: 'Minimum Length',
- placeholder: 'Minimum Length',
- type: 'number',
- tooltip: 'The minimum length requirement this field must meet.',
- input: true
- },
- {
- weight: 120,
- key: 'validate.maxLength',
- label: 'Maximum Length',
- placeholder: 'Maximum Length',
- type: 'number',
- tooltip: 'The maximum length requirement this field must meet.',
- input: true
- },
- {
- weight: 125,
- key: 'validate.minWords',
- label: 'Minimum Word Length',
- placeholder: 'Minimum Word Length',
- type: 'number',
- tooltip: 'The minimum amount of words that can be added to this field.',
- input: true
- },
- {
- weight: 126,
- key: 'validate.maxWords',
- label: 'Maximum Word Length',
- placeholder: 'Maximum Word Length',
- type: 'number',
- tooltip: 'The maximum amount of words that can be added to this field.',
- input: true
- },
- {
- weight: 130,
- key: 'validate.pattern',
- label: 'Regular Expression Pattern',
- placeholder: 'Regular Expression Pattern',
- type: 'textfield',
- tooltip: 'The regular expression pattern test that the field value must pass before the form can be submitted.',
- input: true
- }
+ {
+ weight: 110,
+ key: 'validate.minLength',
+ label: 'Minimum Length',
+ placeholder: 'Minimum Length',
+ type: 'number',
+ tooltip: 'The minimum length requirement this field must meet.',
+ input: true,
+ },
+ {
+ weight: 120,
+ key: 'validate.maxLength',
+ label: 'Maximum Length',
+ placeholder: 'Maximum Length',
+ type: 'number',
+ tooltip: 'The maximum length requirement this field must meet.',
+ input: true,
+ },
+ {
+ weight: 125,
+ key: 'validate.minWords',
+ label: 'Minimum Word Length',
+ placeholder: 'Minimum Word Length',
+ type: 'number',
+ tooltip: 'The minimum amount of words that can be added to this field.',
+ input: true,
+ },
+ {
+ weight: 126,
+ key: 'validate.maxWords',
+ label: 'Maximum Word Length',
+ placeholder: 'Maximum Word Length',
+ type: 'number',
+ tooltip: 'The maximum amount of words that can be added to this field.',
+ input: true,
+ },
+ {
+ weight: 130,
+ key: 'validate.pattern',
+ label: 'Regular Expression Pattern',
+ placeholder: 'Regular Expression Pattern',
+ type: 'textfield',
+ tooltip:
+ 'The regular expression pattern test that the field value must pass before the form can be submitted.',
+ input: true,
+ },
];
diff --git a/src/components/textfield/fixtures/comp-with-display-and-value-masks.js b/src/components/textfield/fixtures/comp-with-display-and-value-masks.js
index 4880fdf56e..81914233cf 100644
--- a/src/components/textfield/fixtures/comp-with-display-and-value-masks.js
+++ b/src/components/textfield/fixtures/comp-with-display-and-value-masks.js
@@ -1,46 +1,53 @@
export default {
- type: 'form',
- components: [
- {
- label: 'Text Field with Input Mask',
- tableView: true,
- key: 'textField',
- type: 'textfield',
- inputMask: '999-999',
- input: true
- },
- {
- label: 'Text Field with Display Mask',
- tableView: true,
- key: 'textFieldDisplayMask',
- type: 'textfield',
- displayMask: '999-999',
- input: true
- },
- {
- label: 'Text Field with Display and Input Masks',
- tableView: true,
- key: 'textFieldDisplayAndInputMasks',
- type: 'textfield',
- displayMask: '+9(99)-999',
- inputMask: '999-999',
- input: true
- },
- {
- label: 'Text Field with Display and Input Masks',
- tableView: true,
- key: 'textFieldDisplayAndInputMasksReverse',
- type: 'textfield',
- displayMask: '999-999',
- inputMask: '+9(99)-999',
- input: true
- },
- { type: 'button', label: 'Submit', key: 'submit', disableOnInvalid: true, input: true, tableView: false }
- ],
- revisions: '',
- _vid: 0,
- title: 'Value And Display Masks',
- display: 'form',
- name: 'valueAndDisplayMasks',
- path: 'valueanddisplaymasks',
+ type: 'form',
+ components: [
+ {
+ label: 'Text Field with Input Mask',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ inputMask: '999-999',
+ input: true,
+ },
+ {
+ label: 'Text Field with Display Mask',
+ tableView: true,
+ key: 'textFieldDisplayMask',
+ type: 'textfield',
+ displayMask: '999-999',
+ input: true,
+ },
+ {
+ label: 'Text Field with Display and Input Masks',
+ tableView: true,
+ key: 'textFieldDisplayAndInputMasks',
+ type: 'textfield',
+ displayMask: '+9(99)-999',
+ inputMask: '999-999',
+ input: true,
+ },
+ {
+ label: 'Text Field with Display and Input Masks',
+ tableView: true,
+ key: 'textFieldDisplayAndInputMasksReverse',
+ type: 'textfield',
+ displayMask: '999-999',
+ inputMask: '+9(99)-999',
+ input: true,
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'Value And Display Masks',
+ display: 'form',
+ name: 'valueAndDisplayMasks',
+ path: 'valueanddisplaymasks',
};
diff --git a/src/components/textfield/fixtures/comp1.js b/src/components/textfield/fixtures/comp1.js
index 3d9ac12943..0854e55cbb 100644
--- a/src/components/textfield/fixtures/comp1.js
+++ b/src/components/textfield/fixtures/comp1.js
@@ -1,33 +1,31 @@
export default {
- 'tags': [
-
- ],
- 'type': 'textfield',
- 'conditional': {
- 'eq': '',
- 'when': null,
- 'show': ''
- },
- 'validate': {
- 'customPrivate': false,
- 'custom': '',
- 'pattern': '',
- 'maxLength': '',
- 'minLength': '',
- 'required': false
- },
- 'persistent': true,
- 'unique': false,
- 'protected': false,
- 'defaultValue': '',
- 'multiple': false,
- 'suffix': '',
- 'prefix': '',
- 'placeholder': 'Enter your first name',
- 'key': 'firstName',
- 'label': 'First Name',
- 'inputMask': '',
- 'inputType': 'text',
- 'tableView': true,
- 'input': true
+ tags: [],
+ type: 'textfield',
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: '',
+ minLength: '',
+ required: false,
+ },
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: false,
+ suffix: '',
+ prefix: '',
+ placeholder: 'Enter your first name',
+ key: 'firstName',
+ label: 'First Name',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
};
diff --git a/src/components/textfield/fixtures/comp2.js b/src/components/textfield/fixtures/comp2.js
index d2031b1bcf..47403d802c 100644
--- a/src/components/textfield/fixtures/comp2.js
+++ b/src/components/textfield/fixtures/comp2.js
@@ -1,31 +1,31 @@
export default {
- 'tags': [],
- 'type': 'textfield',
- 'conditional': {
- 'eq': '',
- 'when': null,
- 'show': ''
- },
- 'validate': {
- 'customPrivate': false,
- 'custom': '',
- 'pattern': '',
- 'maxLength': 0,
- 'minLength': 0,
- 'required': false
- },
- 'persistent': true,
- 'unique': false,
- 'protected': false,
- 'defaultValue': '',
- 'multiple': false,
- 'suffix': '',
- 'prefix': '',
- 'placeholder': '',
- 'key': 'firstName',
- 'label': 'First Name',
- 'inputMask': '',
- 'inputType': 'text',
- 'tableView': true,
- 'input': true
+ tags: [],
+ type: 'textfield',
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: 0,
+ minLength: 0,
+ required: false,
+ },
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: false,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'firstName',
+ label: 'First Name',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
};
diff --git a/src/components/textfield/fixtures/comp3.js b/src/components/textfield/fixtures/comp3.js
index dc0c5d3f73..81d168d024 100644
--- a/src/components/textfield/fixtures/comp3.js
+++ b/src/components/textfield/fixtures/comp3.js
@@ -1,31 +1,31 @@
export default {
- 'tags': [],
- 'type': 'textfield',
- 'conditional': {
- 'eq': '',
- 'when': null,
- 'show': ''
- },
- 'validate': {
- 'customPrivate': false,
- 'custom': '',
- 'pattern': '',
- 'maxLength': 0,
- 'minLength': 0,
- 'required': false
- },
- 'persistent': true,
- 'unique': false,
- 'protected': false,
- 'defaultValue': '',
- 'multiple': true,
- 'suffix': '',
- 'prefix': '',
- 'placeholder': '',
- 'key': 'names',
- 'label': 'Names',
- 'inputMask': '',
- 'inputType': 'text',
- 'tableView': true,
- 'input': true
+ tags: [],
+ type: 'textfield',
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: 0,
+ minLength: 0,
+ required: false,
+ },
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: true,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'names',
+ label: 'Names',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
};
diff --git a/src/components/textfield/fixtures/comp4.js b/src/components/textfield/fixtures/comp4.js
index 4340b347c6..67c55eff17 100644
--- a/src/components/textfield/fixtures/comp4.js
+++ b/src/components/textfield/fixtures/comp4.js
@@ -1,25 +1,28 @@
export default {
- 'label': 'Text Field',
- 'allowMultipleMasks': true,
- 'spellcheck': true,
- 'tableView': true,
- 'calculateServer': false,
- 'key': 'textField1',
- 'type': 'textfield',
- 'data': {
- 'textField1': {
- 'value': '555',
- 'maskName': 'mask1'
+ label: 'Text Field',
+ allowMultipleMasks: true,
+ spellcheck: true,
+ tableView: true,
+ calculateServer: false,
+ key: 'textField1',
+ type: 'textfield',
+ data: {
+ textField1: {
+ value: '555',
+ maskName: 'mask1',
+ },
+ submit: true,
},
- 'submit': true,
- },
- 'inputMasks': [{
- 'label': 'mask1',
- 'mask': '999'
- }, {
- 'label': 'mask2',
- 'mask': 'aaa'
- }],
- 'input': true,
- 'disabled': true
+ inputMasks: [
+ {
+ label: 'mask1',
+ mask: '999',
+ },
+ {
+ label: 'mask2',
+ mask: 'aaa',
+ },
+ ],
+ input: true,
+ disabled: true,
};
diff --git a/src/components/textfield/fixtures/comp5.js b/src/components/textfield/fixtures/comp5.js
index e15b5effe0..41ef8770ba 100644
--- a/src/components/textfield/fixtures/comp5.js
+++ b/src/components/textfield/fixtures/comp5.js
@@ -1,11 +1,11 @@
export default {
- 'label': 'Text Field',
- 'showWordCount': true,
- 'tableView': true,
- 'validate': {
- 'maxWords': 5
- },
- 'key': 'textField',
- 'type': 'textfield',
- 'input': true
+ label: 'Text Field',
+ showWordCount: true,
+ tableView: true,
+ validate: {
+ maxWords: 5,
+ },
+ key: 'textField',
+ type: 'textfield',
+ input: true,
};
diff --git a/src/components/textfield/fixtures/comp6.js b/src/components/textfield/fixtures/comp6.js
index ee148f252b..8a52353bca 100644
--- a/src/components/textfield/fixtures/comp6.js
+++ b/src/components/textfield/fixtures/comp6.js
@@ -1,19 +1,26 @@
export default {
- type: 'form',
- components: [
- {
- label: 'Text Field',
- tableView: true,
- key: 'textField',
- type: 'textfield',
- input: true
- },
- { type: 'button', label: 'Submit', key: 'submit', disableOnInvalid: true, input: true, tableView: false }
- ],
- revisions: '',
- _vid: 0,
- title: 'input mask',
- display: 'form',
- name: 'inputMask',
- path: 'inputmask',
+ type: 'form',
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'input mask',
+ display: 'form',
+ name: 'inputMask',
+ path: 'inputmask',
};
diff --git a/src/components/textfield/fixtures/comp7.js b/src/components/textfield/fixtures/comp7.js
index 6011ff10e7..74322085c9 100644
--- a/src/components/textfield/fixtures/comp7.js
+++ b/src/components/textfield/fixtures/comp7.js
@@ -1,36 +1,36 @@
export default {
- _id: '62fa6dfa619cf2405b7d01d6',
- title: '5376',
- name: '5376',
- path: '5376',
- type: 'form',
- display: 'form',
- components: [
- {
- label: 'Text Field',
- inputMask: '99-99',
- applyMaskOn: 'blur',
- tableView: true,
- key: 'textField',
- type: 'textfield',
- input: true,
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false,
- },
- ],
- settings: {},
- properties: {},
- project: '61029d3b4c9d4e24e774bb15',
- controller: '',
- revisions: '',
- submissionRevisions: '',
- created: '2022-08-15T16:02:02.668Z',
- modified: '2022-11-04T10:20:50.111Z',
- machineName: 'dev-pvbwkiwgifflcai:5376',
+ _id: '62fa6dfa619cf2405b7d01d6',
+ title: '5376',
+ name: '5376',
+ path: '5376',
+ type: 'form',
+ display: 'form',
+ components: [
+ {
+ label: 'Text Field',
+ inputMask: '99-99',
+ applyMaskOn: 'blur',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ settings: {},
+ properties: {},
+ project: '61029d3b4c9d4e24e774bb15',
+ controller: '',
+ revisions: '',
+ submissionRevisions: '',
+ created: '2022-08-15T16:02:02.668Z',
+ modified: '2022-11-04T10:20:50.111Z',
+ machineName: 'dev-pvbwkiwgifflcai:5376',
};
diff --git a/src/components/textfield/fixtures/index.js b/src/components/textfield/fixtures/index.js
index b25ddfa82e..dd9a6d7151 100644
--- a/src/components/textfield/fixtures/index.js
+++ b/src/components/textfield/fixtures/index.js
@@ -6,4 +6,13 @@ import comp5 from './comp5';
import comp6 from './comp6';
import withDisplayAndInputMasks from './comp-with-display-and-value-masks';
import comp7 from './comp7';
-export { comp1, comp2, comp3, comp4, comp5, comp6, comp7, withDisplayAndInputMasks };
+export {
+ comp1,
+ comp2,
+ comp3,
+ comp4,
+ comp5,
+ comp6,
+ comp7,
+ withDisplayAndInputMasks,
+};
diff --git a/src/components/textfield/fixtures/values.js b/src/components/textfield/fixtures/values.js
index d1ca10ed49..c8f856ec6f 100644
--- a/src/components/textfield/fixtures/values.js
+++ b/src/components/textfield/fixtures/values.js
@@ -1,5 +1 @@
-export default [
- 'do',
- 're',
- 'me',
-];
+export default ['do', 're', 'me'];
diff --git a/src/components/time/Time.form.js b/src/components/time/Time.form.js
index b21d70c3b5..ae7660116f 100644
--- a/src/components/time/Time.form.js
+++ b/src/components/time/Time.form.js
@@ -3,15 +3,18 @@ import baseEditForm from '../_classes/component/Component.form';
import TimeEditData from './editForm/Time.edit.data';
import TimeEditDisplay from './editForm/Time.edit.display';
-export default function(...extend) {
- return baseEditForm([
- {
- key: 'data',
- components: TimeEditData,
- },
- {
- key: 'display',
- components: TimeEditDisplay,
- },
- ], ...extend);
+export default function (...extend) {
+ return baseEditForm(
+ [
+ {
+ key: 'data',
+ components: TimeEditData,
+ },
+ {
+ key: 'display',
+ components: TimeEditDisplay,
+ },
+ ],
+ ...extend,
+ );
}
diff --git a/src/components/time/Time.js b/src/components/time/Time.js
index 2ea0b44c34..50e4c520f9 100644
--- a/src/components/time/Time.js
+++ b/src/components/time/Time.js
@@ -5,179 +5,207 @@ import { getBrowserInfo } from '../../utils/utils';
const defaultDataFormat = 'HH:mm:ss';
export default class TimeComponent extends TextFieldComponent {
- static schema(...extend) {
- return TextFieldComponent.schema({
- type: 'time',
- label: 'Time',
- key: 'time',
- inputType: 'time',
- format: 'HH:mm',
- dataFormat: defaultDataFormat,
- }, ...extend);
- }
-
- static get serverConditionSettings() {
- return {
- ...super.serverConditionSettings,
- valueComponent(classComp) {
+ static schema(...extend) {
+ return TextFieldComponent.schema(
+ {
+ type: 'time',
+ label: 'Time',
+ key: 'time',
+ inputType: 'time',
+ format: 'HH:mm',
+ dataFormat: defaultDataFormat,
+ },
+ ...extend,
+ );
+ }
+
+ static get serverConditionSettings() {
return {
- ...classComp,
- type: 'time',
+ ...super.serverConditionSettings,
+ valueComponent(classComp) {
+ return {
+ ...classComp,
+ type: 'time',
+ };
+ },
};
- },
- };
- }
-
- constructor(component, options, data) {
- super(component, options, data);
- const { edge: isEdgeBrowser, version: edgeVersion } = getBrowserInfo();
- this.component.inputMask = this.getInputMaskFromFormat(this.component.format);
- this.component.inputType = isEdgeBrowser && edgeVersion <= 18
- ? 'text'
- : (this.component.inputType || 'time');
- this.rawData = this.component.multiple ? [] : this.emptyValue;
- }
-
- init() {
- super.init();
- if (this.component.inputType === 'text') {
- this.validators.push('time');
}
- }
-
- static get builderInfo() {
- return {
- title: 'Time',
- icon: 'clock-o',
- group: 'advanced',
- documentation: '/userguide/form-building/advanced-components#time-1',
- weight: 55,
- schema: TimeComponent.schema(),
- };
- }
-
- get dataFormat() {
- return this.component.dataFormat || defaultDataFormat;
- }
-
- get defaultSchema() {
- return TimeComponent.schema();
- }
- get defaultValue() {
- let value = super.defaultValue;
- if (this.component.multiple && Array.isArray(value)) {
- value = value.map(item => item ? this.getStringAsValue(item) : item);
+ constructor(component, options, data) {
+ super(component, options, data);
+ const { edge: isEdgeBrowser, version: edgeVersion } = getBrowserInfo();
+ this.component.inputMask = this.getInputMaskFromFormat(
+ this.component.format,
+ );
+ this.component.inputType =
+ isEdgeBrowser && edgeVersion <= 18
+ ? 'text'
+ : this.component.inputType || 'time';
+ this.rawData = this.component.multiple ? [] : this.emptyValue;
}
- else {
- if (value) {
- value = this.getStringAsValue(value);
- }
+
+ init() {
+ super.init();
+ if (this.component.inputType === 'text') {
+ this.validators.push('time');
+ }
}
- return value;
- }
- get validationValue() {
- if (Array.isArray(this.rawData) && !this.rawData.length || !this.rawData) {
- return this.dataValue;
+ static get builderInfo() {
+ return {
+ title: 'Time',
+ icon: 'clock-o',
+ group: 'advanced',
+ documentation:
+ '/userguide/form-building/advanced-components#time-1',
+ weight: 55,
+ schema: TimeComponent.schema(),
+ };
}
- return this.rawData;
- }
- get inputInfo() {
- const info = super.inputInfo;
- info.attr.type = this.component.inputType;
- return info;
- }
+ get dataFormat() {
+ return this.component.dataFormat || defaultDataFormat;
+ }
- get skipMaskValidation() {
- return true;
- }
+ get defaultSchema() {
+ return TimeComponent.schema();
+ }
- isNotCompleteInput(value) {
- return value.includes('_');
- }
+ get defaultValue() {
+ let value = super.defaultValue;
+ if (this.component.multiple && Array.isArray(value)) {
+ value = value.map((item) =>
+ item ? this.getStringAsValue(item) : item,
+ );
+ } else {
+ if (value) {
+ value = this.getStringAsValue(value);
+ }
+ }
+ return value;
+ }
- removeValue(index) {
- this.rawData = Array.isArray(this.rawData) ? [...this.rawData.slice(0, index), ...this.rawData.slice(index + 1)] : this.emptyValue;
- super.removeValue(index);
- }
+ get validationValue() {
+ if (
+ (Array.isArray(this.rawData) && !this.rawData.length) ||
+ !this.rawData
+ ) {
+ return this.dataValue;
+ }
+ return this.rawData;
+ }
- resetRawData(index) {
- if (index) {
- this.setRawValue(this.emptyValue, index);
+ get inputInfo() {
+ const info = super.inputInfo;
+ info.attr.type = this.component.inputType;
+ return info;
}
- else {
- this.rawData = [];
+
+ get skipMaskValidation() {
+ return true;
}
- }
- setRawValue(value, index) {
- if (Array.isArray(this.rawData)) {
- this.rawData[index] = value;
+ isNotCompleteInput(value) {
+ return value.includes('_');
}
- else {
- this.rawData = value;
+
+ removeValue(index) {
+ this.rawData = Array.isArray(this.rawData)
+ ? [
+ ...this.rawData.slice(0, index),
+ ...this.rawData.slice(index + 1),
+ ]
+ : this.emptyValue;
+ super.removeValue(index);
}
- }
- getRawValue(index) {
- if (index && Array.isArray(this.rawData)) {
- return this.rawData[index] || this.emptyValue;
+ resetRawData(index) {
+ if (index) {
+ this.setRawValue(this.emptyValue, index);
+ } else {
+ this.rawData = [];
+ }
}
- else {
- return this.rawData;
+
+ setRawValue(value, index) {
+ if (Array.isArray(this.rawData)) {
+ this.rawData[index] = value;
+ } else {
+ this.rawData = value;
+ }
}
- }
- getValueAt(index) {
- if (!this.refs.input.length || !this.refs.input[index]) {
- return this.emptyValue;
+ getRawValue(index) {
+ if (index && Array.isArray(this.rawData)) {
+ return this.rawData[index] || this.emptyValue;
+ } else {
+ return this.rawData;
+ }
}
- const { value } = this.refs.input[index];
+ getValueAt(index) {
+ if (!this.refs.input.length || !this.refs.input[index]) {
+ return this.emptyValue;
+ }
- if (!value) {
- this.resetRawData(index);
- return this.emptyValue;
- }
+ const { value } = this.refs.input[index];
- this.setRawValue(value, index);
- return this.getStringAsValue(value);
- }
+ if (!value) {
+ this.resetRawData(index);
+ return this.emptyValue;
+ }
- setValueAt(index, value) {
- this.setRawValue(value ? this.getValueAsString(value) : value, index);
- this.refs.input[index].value = this.getRawValue(index);
- }
+ this.setRawValue(value, index);
+ return this.getStringAsValue(value);
+ }
- getStringAsValue(view) {
- return view ? moment(view, this.component.format).format(this.component.dataFormat) : view;
- }
+ setValueAt(index, value) {
+ this.setRawValue(value ? this.getValueAsString(value) : value, index);
+ this.refs.input[index].value = this.getRawValue(index);
+ }
- getValueAsString(value) {
- if (Array.isArray(value) && this.component.multiple) {
- return value.map(item => moment(item, this.component.dataFormat).format(this.component.format)).join(', ');
+ getStringAsValue(view) {
+ return view
+ ? moment(view, this.component.format).format(
+ this.component.dataFormat,
+ )
+ : view;
}
- return (value ? moment(value, this.component.dataFormat).format(this.component.format) : value) || '';
- }
- getInputMaskFromFormat(format) {
- if (format === 'LT') {
- return '99:99 AA';
+ getValueAsString(value) {
+ if (Array.isArray(value) && this.component.multiple) {
+ return value
+ .map((item) =>
+ moment(item, this.component.dataFormat).format(
+ this.component.format,
+ ),
+ )
+ .join(', ');
+ }
+ return (
+ (value
+ ? moment(value, this.component.dataFormat).format(
+ this.component.format,
+ )
+ : value) || ''
+ );
}
- if (format === 'LTS') {
- return '99:99:99 AA';
+
+ getInputMaskFromFormat(format) {
+ if (format === 'LT') {
+ return '99:99 AA';
+ }
+ if (format === 'LTS') {
+ return '99:99:99 AA';
+ }
+ return format.replace(/[hHmMsSk]/g, '9').replace(/[aA]/, 'AA');
}
- return format.replace(/[hHmMsSk]/g, '9')
- .replace(/[aA]/, 'AA');
- }
- addFocusBlurEvents(element) {
- super.addFocusBlurEvents(element);
+ addFocusBlurEvents(element) {
+ super.addFocusBlurEvents(element);
- this.addEventListener(element, 'blur', () => {
- element.value = this.getValueAsString(element.value);
- });
- }
+ this.addEventListener(element, 'blur', () => {
+ element.value = this.getValueAsString(element.value);
+ });
+ }
}
diff --git a/src/components/time/Time.unit.js b/src/components/time/Time.unit.js
index 83bce3d3b2..ee77551e81 100644
--- a/src/components/time/Time.unit.js
+++ b/src/components/time/Time.unit.js
@@ -1,86 +1,103 @@
import Harness from '../../../test/harness';
import assert from 'power-assert';
import TimeComponent from './Time';
-import {
- comp1,
- comp2,
- comp3,
- timeForm2,
- timeForm,
-} from './fixtures';
+import { comp1, comp2, comp3, timeForm2, timeForm } from './fixtures';
import Webform from '../../Webform';
-describe('Time Component', function() {
- it('Should build a time component', function() {
- return Harness.testCreate(TimeComponent, comp1);
- });
+describe('Time Component', function () {
+ it('Should build a time component', function () {
+ return Harness.testCreate(TimeComponent, comp1);
+ });
- it('Should format value on blur', function(done) {
- const formElement = document.createElement('div');
- const form = new Webform(formElement);
- form.setForm(timeForm).then(() => {
- const component = form.components[0];
- const inputEvent = new Event('input', { bubbles: true, cancelable: true });
- const blurEvent = new Event('blur');
- const timeInput = component.element.querySelector('input[name="data[time]"]');
+ it('Should format value on blur', function (done) {
+ const formElement = document.createElement('div');
+ const form = new Webform(formElement);
+ form.setForm(timeForm)
+ .then(() => {
+ const component = form.components[0];
+ const inputEvent = new Event('input', {
+ bubbles: true,
+ cancelable: true,
+ });
+ const blurEvent = new Event('blur');
+ const timeInput = component.element.querySelector(
+ 'input[name="data[time]"]',
+ );
- timeInput.value = '10:0_ __';
- timeInput.dispatchEvent(inputEvent);
+ timeInput.value = '10:0_ __';
+ timeInput.dispatchEvent(inputEvent);
- setTimeout(() => {
- assert.equal(timeInput.value, '10:0_ __');
- assert.equal(component.dataValue, '10:00:00');
- timeInput.dispatchEvent(blurEvent);
+ setTimeout(() => {
+ assert.equal(timeInput.value, '10:0_ __');
+ assert.equal(component.dataValue, '10:00:00');
+ timeInput.dispatchEvent(blurEvent);
- setTimeout(() => {
- assert.equal(timeInput.value, '10:00 AM');
- done();
- }, 500);
- }, 250);
- })
- .catch(done);
- });
+ setTimeout(() => {
+ assert.equal(timeInput.value, '10:00 AM');
+ done();
+ }, 500);
+ }, 250);
+ })
+ .catch(done);
+ });
- it('Should not show error if value corresponds to the mask', function(done) {
- Harness.testCreate(TimeComponent, comp2).then((component) => {
- const inputEvent = new Event('input', { bubbles: true, cancelable: true });
- const timeInput = component.element.querySelector('input[name="data[time]"]');
- timeInput.value = '12:0_';
- timeInput.dispatchEvent(inputEvent);
+ it('Should not show error if value corresponds to the mask', function (done) {
+ Harness.testCreate(TimeComponent, comp2).then((component) => {
+ const inputEvent = new Event('input', {
+ bubbles: true,
+ cancelable: true,
+ });
+ const timeInput = component.element.querySelector(
+ 'input[name="data[time]"]',
+ );
+ timeInput.value = '12:0_';
+ timeInput.dispatchEvent(inputEvent);
- setTimeout(() => {
- timeInput.value = '12:00';
- timeInput.dispatchEvent(inputEvent);
+ setTimeout(() => {
+ timeInput.value = '12:00';
+ timeInput.dispatchEvent(inputEvent);
- setTimeout(() => {
- component.checkData(component.data);
+ setTimeout(() => {
+ component.checkData(component.data);
- setTimeout(() => {
- assert.equal(component.errors.length, 0);
- done();
- }, 700);
- }, 600);
- }, 500);
+ setTimeout(() => {
+ assert.equal(component.errors.length, 0);
+ done();
+ }, 700);
+ }, 600);
+ }, 500);
+ });
});
- });
- it('Should be invalid if time is not real', function(done) {
- const formElement = document.createElement('div');
- const form = new Webform(formElement);
- form.setForm(timeForm2).then(() => {
- const component = form.components[0];
- Harness.setInputValue(component, 'data[time]', '89:19');
- setTimeout(() => {
- assert.equal(component.error.message, 'Invalid time', 'Should have an error');
- done();
- }, 650);
- }).catch(done);
- });
+ it('Should be invalid if time is not real', function (done) {
+ const formElement = document.createElement('div');
+ const form = new Webform(formElement);
+ form.setForm(timeForm2)
+ .then(() => {
+ const component = form.components[0];
+ Harness.setInputValue(component, 'data[time]', '89:19');
+ setTimeout(() => {
+ assert.equal(
+ component.error.message,
+ 'Invalid time',
+ 'Should have an error',
+ );
+ done();
+ }, 650);
+ })
+ .catch(done);
+ });
- it('Should build another time component', function(done) {
- Harness.testCreate(TimeComponent, comp3).then((time) => {
- assert.deepEqual(time.dataValue, ['10:00:00', '11:00:00'], 'Should be set to default value');
- done();
- }).catch(done);
- });
+ it('Should build another time component', function (done) {
+ Harness.testCreate(TimeComponent, comp3)
+ .then((time) => {
+ assert.deepEqual(
+ time.dataValue,
+ ['10:00:00', '11:00:00'],
+ 'Should be set to default value',
+ );
+ done();
+ })
+ .catch(done);
+ });
});
diff --git a/src/components/time/editForm/Time.edit.data.js b/src/components/time/editForm/Time.edit.data.js
index 8285305574..abbfa1d59b 100644
--- a/src/components/time/editForm/Time.edit.data.js
+++ b/src/components/time/editForm/Time.edit.data.js
@@ -1,11 +1,11 @@
export default [
- {
- type: 'textfield',
- input: true,
- key: 'dataFormat',
- label: 'Data Format',
- placeholder: 'HH:mm:ss',
- tooltip: 'The moment.js format for saving the value of this field.',
- weight: 25,
- },
+ {
+ type: 'textfield',
+ input: true,
+ key: 'dataFormat',
+ label: 'Data Format',
+ placeholder: 'HH:mm:ss',
+ tooltip: 'The moment.js format for saving the value of this field.',
+ weight: 25,
+ },
];
diff --git a/src/components/time/editForm/Time.edit.display.js b/src/components/time/editForm/Time.edit.display.js
index 4a622866bd..571dd6e18b 100644
--- a/src/components/time/editForm/Time.edit.display.js
+++ b/src/components/time/editForm/Time.edit.display.js
@@ -1,40 +1,37 @@
export default [
- {
- type: 'select',
- input: true,
- weight: 40,
- tooltip: 'Select the type of widget you\'d like to use.',
- key: 'inputType',
- defaultValue: 'time',
- label: 'Input Type',
- dataSrc: 'values',
- data: {
- values: [
- { label: 'HTML5 Time Input', value: 'time' },
- { label: 'Text Input with Mask', value: 'text' },
- ],
+ {
+ type: 'select',
+ input: true,
+ weight: 40,
+ tooltip: "Select the type of widget you'd like to use.",
+ key: 'inputType',
+ defaultValue: 'time',
+ label: 'Input Type',
+ dataSrc: 'values',
+ data: {
+ values: [
+ { label: 'HTML5 Time Input', value: 'time' },
+ { label: 'Text Input with Mask', value: 'text' },
+ ],
+ },
},
- },
- {
- type: 'textfield',
- input: true,
- key: 'format',
- label: 'Format',
- placeholder: 'Format',
- tooltip: 'The moment.js format for showing the value of this field.',
- weight: 50,
- defaultValue: 'HH:mm',
- conditional: {
- json: {
- '===': [
- { var: 'data.inputType' },
- 'text',
- ],
- },
+ {
+ type: 'textfield',
+ input: true,
+ key: 'format',
+ label: 'Format',
+ placeholder: 'Format',
+ tooltip: 'The moment.js format for showing the value of this field.',
+ weight: 50,
+ defaultValue: 'HH:mm',
+ conditional: {
+ json: {
+ '===': [{ var: 'data.inputType' }, 'text'],
+ },
+ },
+ },
+ {
+ key: 'placeholder',
+ ignore: true,
},
- },
- {
- key: 'placeholder',
- ignore: true,
- }
];
diff --git a/src/components/time/fixtures/comp1.js b/src/components/time/fixtures/comp1.js
index 6a8db1417c..ab5cacfb49 100644
--- a/src/components/time/fixtures/comp1.js
+++ b/src/components/time/fixtures/comp1.js
@@ -1,24 +1,22 @@
export default {
- 'conditional': {
- 'eq': '',
- 'when': null,
- 'show': ''
- },
- 'tags': [
-
- ],
- 'type': 'time',
- 'persistent': true,
- 'unique': false,
- 'protected': false,
- 'format': 'HH:mm',
- 'defaultValue': '',
- 'suffix': '',
- 'prefix': '',
- 'placeholder': 'Enter a time',
- 'key': 'time',
- 'label': 'Time',
- 'inputType': 'time',
- 'tableView': true,
- 'input': true
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ tags: [],
+ type: 'time',
+ persistent: true,
+ unique: false,
+ protected: false,
+ format: 'HH:mm',
+ defaultValue: '',
+ suffix: '',
+ prefix: '',
+ placeholder: 'Enter a time',
+ key: 'time',
+ label: 'Time',
+ inputType: 'time',
+ tableView: true,
+ input: true,
};
diff --git a/src/components/time/fixtures/comp2.js b/src/components/time/fixtures/comp2.js
index 2ca2669c4b..e73ca4be8f 100644
--- a/src/components/time/fixtures/comp2.js
+++ b/src/components/time/fixtures/comp2.js
@@ -1,9 +1,9 @@
export default {
- label: 'Time',
- inputType: 'text',
- tableView: true,
- key: 'time',
- type: 'time',
- input: true,
- inputMask: '99:99',
+ label: 'Time',
+ inputType: 'text',
+ tableView: true,
+ key: 'time',
+ type: 'time',
+ input: true,
+ inputMask: '99:99',
};
diff --git a/src/components/time/fixtures/comp3.js b/src/components/time/fixtures/comp3.js
index 43865c36aa..ed4eb81f19 100644
--- a/src/components/time/fixtures/comp3.js
+++ b/src/components/time/fixtures/comp3.js
@@ -1,16 +1,13 @@
export default {
- label: 'Time',
- tableView: true,
- multiple: true,
- validate: {
- multiple: true
- },
- key: 'time',
- type: 'time',
- input: true,
- inputMask: '99:99',
- defaultValue: [
- '10:00:00',
- '11:00:00'
- ]
+ label: 'Time',
+ tableView: true,
+ multiple: true,
+ validate: {
+ multiple: true,
+ },
+ key: 'time',
+ type: 'time',
+ input: true,
+ inputMask: '99:99',
+ defaultValue: ['10:00:00', '11:00:00'],
};
diff --git a/src/components/time/fixtures/timeForm.js b/src/components/time/fixtures/timeForm.js
index 5d00989392..7f65469cad 100644
--- a/src/components/time/fixtures/timeForm.js
+++ b/src/components/time/fixtures/timeForm.js
@@ -1,50 +1,50 @@
export default {
- _id: '5ec5107f54969741745be8c2',
- type: 'form',
- tags: [],
- owner: '5e05a6b7549cdc2ece30c6b0',
- components: [
- {
- label: 'Time',
- inputType: 'text',
- tableView: true,
- validate: {
- required: true
- },
- key: 'time',
- type: 'time',
- format: 'HH:mm A',
- input: true,
- inputMask: '99:99 AA'
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false
- }
- ],
- controller: '',
- revisions: '',
- _vid: 0,
- title: 'time',
- display: 'form',
- access: [
- {
- roles: [
- '5e96e79ee1c3ad3178454100',
- '5e96e79ee1c3ad3178454101',
- '5e96e79ee1c3ad3178454102'
- ],
- type: 'read_all'
- }
- ],
- submissionAccess: [],
- settings: {},
- properties: {},
- name: 'time',
- path: 'time',
- project: '5e96e79ee1c3ad31784540ff'
+ _id: '5ec5107f54969741745be8c2',
+ type: 'form',
+ tags: [],
+ owner: '5e05a6b7549cdc2ece30c6b0',
+ components: [
+ {
+ label: 'Time',
+ inputType: 'text',
+ tableView: true,
+ validate: {
+ required: true,
+ },
+ key: 'time',
+ type: 'time',
+ format: 'HH:mm A',
+ input: true,
+ inputMask: '99:99 AA',
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ controller: '',
+ revisions: '',
+ _vid: 0,
+ title: 'time',
+ display: 'form',
+ access: [
+ {
+ roles: [
+ '5e96e79ee1c3ad3178454100',
+ '5e96e79ee1c3ad3178454101',
+ '5e96e79ee1c3ad3178454102',
+ ],
+ type: 'read_all',
+ },
+ ],
+ submissionAccess: [],
+ settings: {},
+ properties: {},
+ name: 'time',
+ path: 'time',
+ project: '5e96e79ee1c3ad31784540ff',
};
diff --git a/src/components/time/fixtures/timeForm2.js b/src/components/time/fixtures/timeForm2.js
index 9941023559..d4de192344 100644
--- a/src/components/time/fixtures/timeForm2.js
+++ b/src/components/time/fixtures/timeForm2.js
@@ -1,42 +1,42 @@
export default {
- '_id': '5ee08571a177ce44348f53e4',
- 'type': 'form',
- 'owner': '5e05a6b7549cdc2ece30c6b0',
- 'components': [
- {
- 'label': 'Time',
- 'inputType': 'text',
- 'tableView': true,
- 'key': 'time',
- 'type': 'time',
- 'input': true,
- 'inputMask': '99:99'
- },
- {
- 'label': 'Submit',
- 'showValidations': false,
- 'disableOnInvalid': true,
- 'tableView': false,
- 'key': 'submit',
- 'type': 'button',
- 'input': true
- }
- ],
- 'controller': '',
- 'revisions': '',
- '_vid': 0,
- 'title': 'timeInputMaskValidation',
- 'display': 'form',
- 'access': [
- {
- 'roles': [
- '5e96e79ee1c3ad3178454100',
- '5e96e79ee1c3ad3178454101',
- '5e96e79ee1c3ad3178454102'
- ],
- 'type': 'read_all'
- }
- ],
- 'name': 'timeInputMaskValidation',
- 'path': 'timeinputmaskvalidation'
+ _id: '5ee08571a177ce44348f53e4',
+ type: 'form',
+ owner: '5e05a6b7549cdc2ece30c6b0',
+ components: [
+ {
+ label: 'Time',
+ inputType: 'text',
+ tableView: true,
+ key: 'time',
+ type: 'time',
+ input: true,
+ inputMask: '99:99',
+ },
+ {
+ label: 'Submit',
+ showValidations: false,
+ disableOnInvalid: true,
+ tableView: false,
+ key: 'submit',
+ type: 'button',
+ input: true,
+ },
+ ],
+ controller: '',
+ revisions: '',
+ _vid: 0,
+ title: 'timeInputMaskValidation',
+ display: 'form',
+ access: [
+ {
+ roles: [
+ '5e96e79ee1c3ad3178454100',
+ '5e96e79ee1c3ad3178454101',
+ '5e96e79ee1c3ad3178454102',
+ ],
+ type: 'read_all',
+ },
+ ],
+ name: 'timeInputMaskValidation',
+ path: 'timeinputmaskvalidation',
};
diff --git a/src/components/time/fixtures/values.js b/src/components/time/fixtures/values.js
index e6142e6fa9..5f19ec58e3 100644
--- a/src/components/time/fixtures/values.js
+++ b/src/components/time/fixtures/values.js
@@ -1,5 +1 @@
-export default [
- '01:01:00',
- '13:14:00',
- '23:59:00',
-];
+export default ['01:01:00', '13:14:00', '23:59:00'];
diff --git a/src/components/unknown/Unknown.form.js b/src/components/unknown/Unknown.form.js
index d111ace1c4..ce580be0bb 100644
--- a/src/components/unknown/Unknown.form.js
+++ b/src/components/unknown/Unknown.form.js
@@ -1,19 +1,19 @@
import UnknownEditDisplay from './editForm/Unknown.edit.display';
-export default function() {
- return {
- components: [
- {
- type: 'tabs',
- key: 'tabs',
+export default function () {
+ return {
components: [
- {
- label: 'Custom',
- key: 'display',
- weight: 0,
- components: UnknownEditDisplay
- }
- ]
- }
- ]
- };
+ {
+ type: 'tabs',
+ key: 'tabs',
+ components: [
+ {
+ label: 'Custom',
+ key: 'display',
+ weight: 0,
+ components: UnknownEditDisplay,
+ },
+ ],
+ },
+ ],
+ };
}
diff --git a/src/components/unknown/Unknown.js b/src/components/unknown/Unknown.js
index 4c8ec12f5a..084723f1d1 100644
--- a/src/components/unknown/Unknown.js
+++ b/src/components/unknown/Unknown.js
@@ -1,27 +1,27 @@
import Component from '../_classes/component/Component';
export default class UnknownComponent extends Component {
- static schema() {
- return {
- type: 'custom',
- key: 'custom',
- protected: false,
- persistent: true
- };
- }
+ static schema() {
+ return {
+ type: 'custom',
+ key: 'custom',
+ protected: false,
+ persistent: true,
+ };
+ }
- static get builderInfo() {
- return {
- title: 'Custom',
- icon: 'cubes',
- group: 'premium',
- documentation: '/userguide/form-building/premium-components#custom',
- weight: 120,
- schema: UnknownComponent.schema()
- };
- }
+ static get builderInfo() {
+ return {
+ title: 'Custom',
+ icon: 'cubes',
+ group: 'premium',
+ documentation: '/userguide/form-building/premium-components#custom',
+ weight: 120,
+ schema: UnknownComponent.schema(),
+ };
+ }
- get defaultSchema() {
- return UnknownComponent.schema();
- }
+ get defaultSchema() {
+ return UnknownComponent.schema();
+ }
}
diff --git a/src/components/unknown/Unknown.unit.js b/src/components/unknown/Unknown.unit.js
index 17bf065a7a..a205f02507 100644
--- a/src/components/unknown/Unknown.unit.js
+++ b/src/components/unknown/Unknown.unit.js
@@ -1,14 +1,12 @@
import UnknownComponent from './Unknown';
-import {
- comp1
-} from './fixtures';
+import { comp1 } from './fixtures';
-describe('Custom Component', function() {
- it('Should build a Custom component in builder mode', function(done) {
- new UnknownComponent(comp1, {
- builder: true
+describe('Custom Component', function () {
+ it('Should build a Custom component in builder mode', function (done) {
+ new UnknownComponent(comp1, {
+ builder: true,
+ });
+ done();
});
- done();
- });
});
diff --git a/src/components/unknown/editForm/Unknown.edit.display.js b/src/components/unknown/editForm/Unknown.edit.display.js
index e6042d03b0..27e71a0263 100644
--- a/src/components/unknown/editForm/Unknown.edit.display.js
+++ b/src/components/unknown/editForm/Unknown.edit.display.js
@@ -1,25 +1,26 @@
export default [
- {
- key: 'customComponentDescription',
- label: 'Custom component description',
- input: false,
- tag: 'p',
- content: 'Custom components can be used to render special fields or widgets inside your app. ' +
- 'For information on how to display in an app, see ' +
- '
' +
- 'custom component documentation' +
- ' .',
- type: 'htmlelement',
- weight: 5
- },
- {
- type: 'textarea',
- as: 'json',
- editor: 'ace',
- weight: 10,
- input: true,
- key: 'componentJson',
- label: 'Custom Element JSON',
- tooltip: 'Enter the JSON for this custom element.'
- }
+ {
+ key: 'customComponentDescription',
+ label: 'Custom component description',
+ input: false,
+ tag: 'p',
+ content:
+ 'Custom components can be used to render special fields or widgets inside your app. ' +
+ 'For information on how to display in an app, see ' +
+ '
' +
+ 'custom component documentation' +
+ ' .',
+ type: 'htmlelement',
+ weight: 5,
+ },
+ {
+ type: 'textarea',
+ as: 'json',
+ editor: 'ace',
+ weight: 10,
+ input: true,
+ key: 'componentJson',
+ label: 'Custom Element JSON',
+ tooltip: 'Enter the JSON for this custom element.',
+ },
];
diff --git a/src/components/unknown/fixtures/comp1.js b/src/components/unknown/fixtures/comp1.js
index 7224bd0424..46b2914781 100644
--- a/src/components/unknown/fixtures/comp1.js
+++ b/src/components/unknown/fixtures/comp1.js
@@ -1,6 +1,6 @@
export default {
- 'label': 'My Own Custom Component',
- 'type': 'myOwnCustomType',
- 'input': true,
- 'key': 'custom2'
+ label: 'My Own Custom Component',
+ type: 'myOwnCustomType',
+ input: true,
+ key: 'custom2',
};
diff --git a/src/components/url/Url.form.js b/src/components/url/Url.form.js
index 4b772ba6a9..98489e2a76 100644
--- a/src/components/url/Url.form.js
+++ b/src/components/url/Url.form.js
@@ -4,19 +4,22 @@ import UrlEditDisplay from './editForm/Url.edit.display';
import UrlEditData from './editForm/Url.edit.data';
import UrlEditValidation from './editForm/Url.edit.validation';
-export default function(...extend) {
- return textEditForm([
- {
- key: 'display',
- components: UrlEditDisplay
- },
- {
- key: 'data',
- components: UrlEditData
- },
- {
- key: 'validation',
- components: UrlEditValidation
- },
- ], ...extend);
+export default function (...extend) {
+ return textEditForm(
+ [
+ {
+ key: 'display',
+ components: UrlEditDisplay,
+ },
+ {
+ key: 'data',
+ components: UrlEditData,
+ },
+ {
+ key: 'validation',
+ components: UrlEditValidation,
+ },
+ ],
+ ...extend,
+ );
}
diff --git a/src/components/url/Url.js b/src/components/url/Url.js
index 56a4908ed8..ab0e528969 100644
--- a/src/components/url/Url.js
+++ b/src/components/url/Url.js
@@ -1,38 +1,41 @@
import TextFieldComponent from '../textfield/TextField';
export default class UrlComponent extends TextFieldComponent {
- static schema(...extend) {
- return TextFieldComponent.schema({
- type: 'url',
- label: 'Url',
- key: 'url',
- inputType: 'url'
- }, ...extend);
- }
+ static schema(...extend) {
+ return TextFieldComponent.schema(
+ {
+ type: 'url',
+ label: 'Url',
+ key: 'url',
+ inputType: 'url',
+ },
+ ...extend,
+ );
+ }
- static get builderInfo() {
- return {
- title: 'Url',
- group: 'advanced',
- icon: 'link',
- documentation: '/userguide/form-building/advanced-components#url',
- weight: 20,
- schema: UrlComponent.schema()
- };
- }
+ static get builderInfo() {
+ return {
+ title: 'Url',
+ group: 'advanced',
+ icon: 'link',
+ documentation: '/userguide/form-building/advanced-components#url',
+ weight: 20,
+ schema: UrlComponent.schema(),
+ };
+ }
- constructor(component, options, data) {
- super(component, options, data);
- this.validators.push('url');
- }
+ constructor(component, options, data) {
+ super(component, options, data);
+ this.validators.push('url');
+ }
- get defaultSchema() {
- return UrlComponent.schema();
- }
+ get defaultSchema() {
+ return UrlComponent.schema();
+ }
- elementInfo() {
- const info = super.elementInfo();
- info.attr.type = this.component.mask ? 'password' : 'url';
- return info;
- }
+ elementInfo() {
+ const info = super.elementInfo();
+ info.attr.type = this.component.mask ? 'password' : 'url';
+ return info;
+ }
}
diff --git a/src/components/url/Url.unit.js b/src/components/url/Url.unit.js
index d5f47162b3..ee8ab7ae67 100644
--- a/src/components/url/Url.unit.js
+++ b/src/components/url/Url.unit.js
@@ -4,223 +4,288 @@ import { Formio } from './../../Formio';
import assert from 'power-assert';
import _ from 'lodash';
-import {
- comp1,
- comp2
-} from './fixtures';
-
-describe('Url Component', function() {
- it('Should build a url component', function(done) {
- Harness.testCreate(UrlComponent, comp1).then(() => {
- done();
+import { comp1, comp2 } from './fixtures';
+
+describe('Url Component', function () {
+ it('Should build a url component', function (done) {
+ Harness.testCreate(UrlComponent, comp1).then(() => {
+ done();
+ });
+ });
+
+ it('Should provide min/max length validation', function (done) {
+ const form = _.cloneDeep(comp2);
+ form.components[0].validate = { minLength: 6, maxLength: 10 };
+
+ const validValues = [
+ '',
+ 'www.hhh.by',
+ 'uuu.by',
+ 'TE2-t.est',
+ 'te2-t.est',
+ ];
+
+ const invalidMin = ['hh.jj', 'w.by'];
+
+ const invalidMax = ['Test-t.Test', 'test.test.test', 't-t-t-t-t.tt'];
+
+ const testValidity = (values, valid, message, lastValue) => {
+ _.each(values, (value) => {
+ const element = document.createElement('div');
+
+ Formio.createForm(element, form)
+ .then((form) => {
+ form.setPristine(false);
+
+ const component = form.getComponent('url');
+ const changed = component.setValue(value);
+ const error = message;
+
+ if (value) {
+ assert.equal(changed, true, 'Should set value');
+ }
+
+ setTimeout(() => {
+ if (valid) {
+ assert.equal(
+ !!component.error,
+ false,
+ 'Should not contain error',
+ );
+ } else {
+ assert.equal(
+ !!component.error,
+ true,
+ 'Should contain error',
+ );
+ assert.equal(
+ component.error.message,
+ error,
+ 'Should contain error message',
+ );
+ assert.equal(
+ component.element.classList.contains(
+ 'has-error',
+ ),
+ true,
+ 'Should contain error class',
+ );
+ assert.equal(
+ component.refs.messageContainer.textContent.trim(),
+ error,
+ 'Should show error',
+ );
+ }
+
+ if (_.isEqual(value, lastValue)) {
+ done();
+ }
+ }, 300);
+ })
+ .catch(done);
+ });
+ };
+
+ testValidity(validValues, true);
+ testValidity(invalidMin, false, 'Url must have at least 6 characters.');
+ testValidity(
+ invalidMax,
+ false,
+ 'Url must have no more than 10 characters.',
+ invalidMax[invalidMax.length - 1],
+ );
+ });
+
+ it('Should provide pattern validation', function (done) {
+ const form = _.cloneDeep(comp2);
+ form.components[0].validate = {
+ pattern:
+ '^(https?):\\/\\/(-\\.)?([^\\s\\/?\\.#-]+\\.?)+(\\/[^\\s]*)?$',
+ };
+
+ const validValues = [
+ 'https://someTest.com',
+ 'http://test.com',
+ 'http://userid@example.com:8080',
+ '',
+ ];
+
+ const invalidValues = ['www.test.com', 'test.hh', 'http://at--er.b.co'];
+
+ const testValidity = (values, valid, message, lastValue) => {
+ _.each(values, (value) => {
+ const element = document.createElement('div');
+
+ Formio.createForm(element, form)
+ .then((form) => {
+ form.setPristine(false);
+
+ const component = form.getComponent('url');
+ const changed = component.setValue(value);
+ const error = message;
+
+ if (value) {
+ assert.equal(changed, true, 'Should set value');
+ }
+
+ setTimeout(() => {
+ if (valid) {
+ assert.equal(
+ !!component.error,
+ false,
+ 'Should not contain error',
+ );
+ } else {
+ assert.equal(
+ !!component.error,
+ true,
+ 'Should contain error',
+ );
+ assert.equal(
+ component.error.message.trim(),
+ error,
+ 'Should contain error message',
+ );
+ assert.equal(
+ component.element.classList.contains(
+ 'has-error',
+ ),
+ true,
+ 'Should contain error class',
+ );
+ assert.equal(
+ component.refs.messageContainer.textContent.trim(),
+ error,
+ 'Should show error',
+ );
+ }
+
+ if (_.isEqual(value, lastValue)) {
+ done();
+ }
+ }, 300);
+ })
+ .catch(done);
+ });
+ };
+
+ testValidity(validValues, true);
+ testValidity(
+ invalidValues,
+ false,
+ 'Url does not match the pattern ^(https?):\\/\\/(-\\.)?([^\\s\\/?\\.#-]+\\.?)+(\\/[^\\s]*)?$',
+ invalidValues[invalidValues.length - 1],
+ );
+ });
+
+ it('Should provide url validation', function (done) {
+ const form = _.cloneDeep(comp2);
+
+ const validValues = [
+ '',
+ 'www.test.test',
+ 'https://www.test.test',
+ 'http://www.test.test',
+ 'email://test1111@test.to',
+ 'email://t-e-s-t@te-st.to',
+ 'te.S-T.test',
+ 'www.1111111.test',
+ ];
+
+ const invalidValues = [
+ ' ',
+ 'e.S-T.test.',
+ 'someText',
+ '.www.test.to',
+ 'htthhhhhps://www.test.test',
+ '://www.test.test',
+ ' www.test.test',
+ 'www.test.test ',
+ 'www.te st.test',
+ 'www.1111111.33',
+ 'www.rrrrrr.66h',
+ 'email://test111test.to',
+ 'http://',
+ 'http://.',
+ 'http://..',
+ 'http://../',
+ 'http://?',
+ 'http://??',
+ 'http://??/',
+ 'http://#',
+ 'http://##',
+ 'http://##/',
+ 'http://foo.bar?q=Spaces should be encoded',
+ '//',
+ '//a',
+ '///a',
+ '///',
+ 'http:///a',
+ ];
+
+ const testValidity = (values, valid, message, lastValue) => {
+ _.each(values, (value) => {
+ const element = document.createElement('div');
+
+ Formio.createForm(element, form)
+ .then((form) => {
+ form.setPristine(false);
+
+ const component = form.getComponent('url');
+ const changed = component.setValue(value);
+ const error = message;
+
+ if (value) {
+ assert.equal(changed, true, 'Should set value');
+ }
+
+ setTimeout(() => {
+ if (valid) {
+ assert.equal(
+ !!component.error,
+ false,
+ 'Should not contain error',
+ );
+ } else {
+ assert.equal(
+ !!component.error,
+ true,
+ 'Should contain error',
+ );
+ assert.equal(
+ component.error.message.trim(),
+ error,
+ 'Should contain error message',
+ );
+ assert.equal(
+ component.element.classList.contains(
+ 'has-error',
+ ),
+ true,
+ 'Should contain error class',
+ );
+ assert.equal(
+ component.refs.messageContainer.textContent.trim(),
+ error,
+ 'Should show error',
+ );
+ }
+
+ if (_.isEqual(value, lastValue)) {
+ done();
+ }
+ }, 300);
+ })
+ .catch(done);
+ });
+ };
+
+ testValidity(validValues, true);
+ testValidity(
+ invalidValues,
+ false,
+ 'Url must be a valid url.',
+ invalidValues[invalidValues.length - 1],
+ );
});
- });
-
- it('Should provide min/max length validation', function(done) {
- const form = _.cloneDeep(comp2);
- form.components[0].validate = { minLength: 6, maxLength: 10 };
-
- const validValues = [
- '',
- 'www.hhh.by',
- 'uuu.by',
- 'TE2-t.est',
- 'te2-t.est'
- ];
-
- const invalidMin = [
- 'hh.jj',
- 'w.by'
- ];
-
- const invalidMax = [
- 'Test-t.Test',
- 'test.test.test',
- 't-t-t-t-t.tt'
- ];
-
- const testValidity = (values, valid, message, lastValue) => {
- _.each(values, (value) => {
- const element = document.createElement('div');
-
- Formio.createForm(element, form).then(form => {
- form.setPristine(false);
-
- const component = form.getComponent('url');
- const changed = component.setValue(value);
- const error = message;
-
- if (value) {
- assert.equal(changed, true, 'Should set value');
- }
-
- setTimeout(() => {
- if (valid) {
- assert.equal(!!component.error, false, 'Should not contain error');
- }
- else {
- assert.equal(!!component.error, true, 'Should contain error');
- assert.equal(component.error.message, error, 'Should contain error message');
- assert.equal(component.element.classList.contains('has-error'), true, 'Should contain error class');
- assert.equal(component.refs.messageContainer.textContent.trim(), error, 'Should show error');
- }
-
- if (_.isEqual(value, lastValue)) {
- done();
- }
- }, 300);
- }).catch(done);
- });
- };
-
- testValidity(validValues, true);
- testValidity(invalidMin, false, 'Url must have at least 6 characters.');
- testValidity(invalidMax, false, 'Url must have no more than 10 characters.', invalidMax[invalidMax.length-1]);
- });
-
- it('Should provide pattern validation', function(done) {
- const form = _.cloneDeep(comp2);
- form.components[0].validate = { pattern: '^(https?):\\/\\/(-\\.)?([^\\s\\/?\\.#-]+\\.?)+(\\/[^\\s]*)?$' };
-
- const validValues = [
- 'https://someTest.com',
- 'http://test.com',
- 'http://userid@example.com:8080',
- ''
- ];
-
- const invalidValues = [
- 'www.test.com',
- 'test.hh',
- 'http://at--er.b.co'
- ];
-
- const testValidity = (values, valid, message, lastValue) => {
- _.each(values, (value) => {
- const element = document.createElement('div');
-
- Formio.createForm(element, form).then(form => {
- form.setPristine(false);
-
- const component = form.getComponent('url');
- const changed = component.setValue(value);
- const error = message;
-
- if (value) {
- assert.equal(changed, true, 'Should set value');
- }
-
- setTimeout(() => {
- if (valid) {
- assert.equal(!!component.error, false, 'Should not contain error');
- }
- else {
- assert.equal(!!component.error, true, 'Should contain error');
- assert.equal(component.error.message.trim(), error, 'Should contain error message');
- assert.equal(component.element.classList.contains('has-error'), true, 'Should contain error class');
- assert.equal(component.refs.messageContainer.textContent.trim(), error, 'Should show error');
- }
-
- if (_.isEqual(value, lastValue)) {
- done();
- }
- }, 300);
- }).catch(done);
- });
- };
-
- testValidity(validValues, true);
- testValidity(invalidValues,
- false,
- 'Url does not match the pattern ^(https?):\\/\\/(-\\.)?([^\\s\\/?\\.#-]+\\.?)+(\\/[^\\s]*)?$',
- invalidValues[invalidValues.length-1]
- );
- });
-
- it('Should provide url validation', function(done) {
- const form = _.cloneDeep(comp2);
-
- const validValues = [
- '',
- 'www.test.test',
- 'https://www.test.test',
- 'http://www.test.test',
- 'email://test1111@test.to',
- 'email://t-e-s-t@te-st.to',
- 'te.S-T.test',
- 'www.1111111.test'
- ];
-
- const invalidValues = [
- ' ',
- 'e.S-T.test.',
- 'someText',
- '.www.test.to',
- 'htthhhhhps://www.test.test',
- '://www.test.test',
- ' www.test.test',
- 'www.test.test ',
- 'www.te st.test',
- 'www.1111111.33',
- 'www.rrrrrr.66h',
- 'email://test111test.to',
- 'http://',
- 'http://.',
- 'http://..',
- 'http://../',
- 'http://?',
- 'http://??',
- 'http://??/',
- 'http://#',
- 'http://##',
- 'http://##/',
- 'http://foo.bar?q=Spaces should be encoded',
- '//',
- '//a',
- '///a',
- '///',
- 'http:///a'
- ];
-
- const testValidity = (values, valid, message, lastValue) => {
- _.each(values, (value) => {
- const element = document.createElement('div');
-
- Formio.createForm(element, form).then(form => {
- form.setPristine(false);
-
- const component = form.getComponent('url');
- const changed = component.setValue(value);
- const error = message;
-
- if (value) {
- assert.equal(changed, true, 'Should set value');
- }
-
- setTimeout(() => {
- if (valid) {
- assert.equal(!!component.error, false, 'Should not contain error');
- }
- else {
- assert.equal(!!component.error, true, 'Should contain error');
- assert.equal(component.error.message.trim(), error, 'Should contain error message');
- assert.equal(component.element.classList.contains('has-error'), true, 'Should contain error class');
- assert.equal(component.refs.messageContainer.textContent.trim(), error, 'Should show error');
- }
-
- if (_.isEqual(value, lastValue)) {
- done();
- }
- }, 300);
- }).catch(done);
- });
- };
-
- testValidity(validValues, true);
- testValidity(invalidValues,
- false,
- 'Url must be a valid url.',
- invalidValues[invalidValues.length-1]
- );
- });
});
diff --git a/src/components/url/editForm/Url.edit.data.js b/src/components/url/editForm/Url.edit.data.js
index 17004a3a19..1e6db916d5 100644
--- a/src/components/url/editForm/Url.edit.data.js
+++ b/src/components/url/editForm/Url.edit.data.js
@@ -1,6 +1,6 @@
export default [
- {
- key: 'case',
- ignore: true,
- },
+ {
+ key: 'case',
+ ignore: true,
+ },
];
diff --git a/src/components/url/editForm/Url.edit.display.js b/src/components/url/editForm/Url.edit.display.js
index 3310b2ac63..353f4c6633 100644
--- a/src/components/url/editForm/Url.edit.display.js
+++ b/src/components/url/editForm/Url.edit.display.js
@@ -1,18 +1,18 @@
export default [
- {
- key: 'inputMask',
- ignore: true
- },
- {
- key: 'allowMultipleMasks',
- ignore: true
- },
- {
- key: 'showWordCount',
- ignore: true,
- },
- {
- key: 'showCharCount',
- ignore: true,
- }
+ {
+ key: 'inputMask',
+ ignore: true,
+ },
+ {
+ key: 'allowMultipleMasks',
+ ignore: true,
+ },
+ {
+ key: 'showWordCount',
+ ignore: true,
+ },
+ {
+ key: 'showCharCount',
+ ignore: true,
+ },
];
diff --git a/src/components/url/editForm/Url.edit.validation.js b/src/components/url/editForm/Url.edit.validation.js
index 27ef9e7c3d..7070603394 100644
--- a/src/components/url/editForm/Url.edit.validation.js
+++ b/src/components/url/editForm/Url.edit.validation.js
@@ -1,10 +1,10 @@
export default [
- {
- key: 'validate.minWords',
- ignore: true,
- },
- {
- key: 'validate.maxWords',
- ignore: true
- },
+ {
+ key: 'validate.minWords',
+ ignore: true,
+ },
+ {
+ key: 'validate.maxWords',
+ ignore: true,
+ },
];
diff --git a/src/components/url/fixtures/comp1.js b/src/components/url/fixtures/comp1.js
index 7cc2b18f77..05057a409e 100644
--- a/src/components/url/fixtures/comp1.js
+++ b/src/components/url/fixtures/comp1.js
@@ -1,26 +1,24 @@
export default {
- 'conditional': {
- 'eq': '',
- 'when': null,
- 'show': ''
- },
- 'tags': [
-
- ],
- 'type': 'url',
- 'kickbox': {
- 'enabled': false
- },
- 'persistent': true,
- 'unique': false,
- 'protected': false,
- 'defaultValue': '',
- 'suffix': '',
- 'prefix': '',
- 'placeholder': 'Enter a URL',
- 'key': 'url',
- 'label': 'Url',
- 'inputType': 'url',
- 'tableView': true,
- 'input': true
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ tags: [],
+ type: 'url',
+ kickbox: {
+ enabled: false,
+ },
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ suffix: '',
+ prefix: '',
+ placeholder: 'Enter a URL',
+ key: 'url',
+ label: 'Url',
+ inputType: 'url',
+ tableView: true,
+ input: true,
};
diff --git a/src/components/url/fixtures/comp2.js b/src/components/url/fixtures/comp2.js
index 6d79d29ce5..0363e44390 100644
--- a/src/components/url/fixtures/comp2.js
+++ b/src/components/url/fixtures/comp2.js
@@ -1,21 +1,21 @@
export default {
- type: 'form',
- components: [
- { label: 'Url', tableView: true, key: 'url', type: 'url', input: true },
- {
- label: 'Submit',
- showValidations: false,
- tableView: false,
- key: 'submit',
- type: 'button',
- input: true
- }
- ],
- title: 'test11',
- display: 'form',
- controller: '',
- properties: {},
- settings: {},
- name: 'test11',
- path: 'test11',
+ type: 'form',
+ components: [
+ { label: 'Url', tableView: true, key: 'url', type: 'url', input: true },
+ {
+ label: 'Submit',
+ showValidations: false,
+ tableView: false,
+ key: 'submit',
+ type: 'button',
+ input: true,
+ },
+ ],
+ title: 'test11',
+ display: 'form',
+ controller: '',
+ properties: {},
+ settings: {},
+ name: 'test11',
+ path: 'test11',
};
diff --git a/src/components/url/fixtures/values.js b/src/components/url/fixtures/values.js
index ebaa3c3d4e..2b009bf521 100644
--- a/src/components/url/fixtures/values.js
+++ b/src/components/url/fixtures/values.js
@@ -1,4 +1 @@
-export default [
- 'https://www.google.com',
- 'https://www.apple.com',
-];
+export default ['https://www.google.com', 'https://www.apple.com'];
diff --git a/src/components/well/Well.form.js b/src/components/well/Well.form.js
index 1c7f876482..188dcfd52f 100644
--- a/src/components/well/Well.form.js
+++ b/src/components/well/Well.form.js
@@ -2,11 +2,14 @@ import nestedComponentForm from '../_classes/nested/NestedComponent.form';
import WellEditDisplay from './editForm/Well.edit.display';
-export default function(...extend) {
- return nestedComponentForm([
- {
- key: 'display',
- components: WellEditDisplay
- },
- ], ...extend);
+export default function (...extend) {
+ return nestedComponentForm(
+ [
+ {
+ key: 'display',
+ components: WellEditDisplay,
+ },
+ ],
+ ...extend,
+ );
}
diff --git a/src/components/well/Well.js b/src/components/well/Well.js
index c981995935..619f3d0600 100644
--- a/src/components/well/Well.js
+++ b/src/components/well/Well.js
@@ -1,46 +1,49 @@
import NestedComponent from '../_classes/nested/NestedComponent';
export default class WellComponent extends NestedComponent {
- static schema(...extend) {
- return NestedComponent.schema({
- type: 'well',
- key: 'well',
- input: false,
- persistent: false,
- components: []
- }, ...extend);
- }
+ static schema(...extend) {
+ return NestedComponent.schema(
+ {
+ type: 'well',
+ key: 'well',
+ input: false,
+ persistent: false,
+ components: [],
+ },
+ ...extend,
+ );
+ }
- static get builderInfo() {
- return {
- title: 'Well',
- icon: 'square-o',
- group: 'layout',
- documentation: '/userguide/form-building/layout-components#well',
- showPreview: false,
- weight: 60,
- schema: WellComponent.schema()
- };
- }
+ static get builderInfo() {
+ return {
+ title: 'Well',
+ icon: 'square-o',
+ group: 'layout',
+ documentation: '/userguide/form-building/layout-components#well',
+ showPreview: false,
+ weight: 60,
+ schema: WellComponent.schema(),
+ };
+ }
- static savedValueTypes() {
- return [];
- }
+ static savedValueTypes() {
+ return [];
+ }
- get defaultSchema() {
- return WellComponent.schema();
- }
+ get defaultSchema() {
+ return WellComponent.schema();
+ }
- get className() {
- return `${this.component.customClass}`;
- }
+ get className() {
+ return `${this.component.customClass}`;
+ }
- get templateName() {
- return 'well';
- }
+ get templateName() {
+ return 'well';
+ }
- constructor(...args) {
- super(...args);
- this.noField = true;
- }
+ constructor(...args) {
+ super(...args);
+ this.noField = true;
+ }
}
diff --git a/src/components/well/Well.unit.js b/src/components/well/Well.unit.js
index c4c7b8444c..28f05d433e 100644
--- a/src/components/well/Well.unit.js
+++ b/src/components/well/Well.unit.js
@@ -1,24 +1,22 @@
import Harness from '../../../test/harness';
import WellComponent from './Well';
-import {
- comp1
-} from './fixtures';
+import { comp1 } from './fixtures';
import { expect } from 'chai';
-describe('Well Component', function() {
- it('Should build a Well component', function() {
- return Harness.testCreate(WellComponent, comp1).then((component) => {
- Harness.testElements(component, 'input[type="text"]', 2);
+describe('Well Component', function () {
+ it('Should build a Well component', function () {
+ return Harness.testCreate(WellComponent, comp1).then((component) => {
+ Harness.testElements(component, 'input[type="text"]', 2);
+ });
});
- });
- it('Should skip validation on non-input nested components', function(done) {
- Harness.testCreate(WellComponent, comp1)
- .then(cmp => {
- expect(cmp.shouldSkipValidation()).to.be.true;
- done();
- }, done)
- .catch(done);
- });
+ it('Should skip validation on non-input nested components', function (done) {
+ Harness.testCreate(WellComponent, comp1)
+ .then((cmp) => {
+ expect(cmp.shouldSkipValidation()).to.be.true;
+ done();
+ }, done)
+ .catch(done);
+ });
});
diff --git a/src/components/well/editForm/Well.edit.display.js b/src/components/well/editForm/Well.edit.display.js
index ec0e46dba3..2994625332 100644
--- a/src/components/well/editForm/Well.edit.display.js
+++ b/src/components/well/editForm/Well.edit.display.js
@@ -1,48 +1,48 @@
export default [
- {
- key: 'labelPosition',
- ignore: true
- },
- {
- key: 'placeholder',
- ignore: true
- },
- {
- key: 'description',
- ignore: true
- },
- {
- key: 'autofocus',
- ignore: true
- },
- {
- key: 'tooltip',
- ignore: true
- },
- {
- key: 'tabindex',
- ignore: true
- },
- {
- key: 'tableView',
- ignore: true
- },
- {
- key: 'hideLabel',
- ignore: true
- },
- {
- weight: 0,
- type: 'textfield',
- input: true,
- key: 'label',
- label: 'Label',
- placeholder: 'Field Label',
- tooltip: 'The label for this field.',
- validate: {
- required: true
- },
- autofocus: true,
- overrideEditForm: true
- },
+ {
+ key: 'labelPosition',
+ ignore: true,
+ },
+ {
+ key: 'placeholder',
+ ignore: true,
+ },
+ {
+ key: 'description',
+ ignore: true,
+ },
+ {
+ key: 'autofocus',
+ ignore: true,
+ },
+ {
+ key: 'tooltip',
+ ignore: true,
+ },
+ {
+ key: 'tabindex',
+ ignore: true,
+ },
+ {
+ key: 'tableView',
+ ignore: true,
+ },
+ {
+ key: 'hideLabel',
+ ignore: true,
+ },
+ {
+ weight: 0,
+ type: 'textfield',
+ input: true,
+ key: 'label',
+ label: 'Label',
+ placeholder: 'Field Label',
+ tooltip: 'The label for this field.',
+ validate: {
+ required: true,
+ },
+ autofocus: true,
+ overrideEditForm: true,
+ },
];
diff --git a/src/components/well/fixtures/comp1.js b/src/components/well/fixtures/comp1.js
index bc6a9c2253..b901e70300 100644
--- a/src/components/well/fixtures/comp1.js
+++ b/src/components/well/fixtures/comp1.js
@@ -1,79 +1,75 @@
export default {
- 'conditional': {
- 'eq': '',
- 'when': null,
- 'show': ''
- },
- 'tags': [],
- 'type': 'well',
- 'components': [
- {
- 'tags': [
-
- ],
- 'type': 'textfield',
- 'conditional': {
- 'eq': '',
- 'when': null,
- 'show': ''
- },
- 'validate': {
- 'customPrivate': false,
- 'custom': '',
- 'pattern': '',
- 'maxLength': '',
- 'minLength': '',
- 'required': false
- },
- 'persistent': true,
- 'unique': false,
- 'protected': false,
- 'defaultValue': '',
- 'multiple': false,
- 'suffix': '',
- 'prefix': '',
- 'placeholder': '',
- 'key': 'firstName',
- 'label': 'First Name',
- 'inputMask': '',
- 'inputType': 'text',
- 'tableView': true,
- 'input': true
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
},
- {
- 'tags': [
-
- ],
- 'type': 'textfield',
- 'conditional': {
- 'eq': '',
- 'when': null,
- 'show': ''
- },
- 'validate': {
- 'customPrivate': false,
- 'custom': '',
- 'pattern': '',
- 'maxLength': '',
- 'minLength': '',
- 'required': false
- },
- 'persistent': true,
- 'unique': false,
- 'protected': false,
- 'defaultValue': '',
- 'multiple': false,
- 'suffix': '',
- 'prefix': '',
- 'placeholder': '',
- 'key': 'lastName',
- 'label': 'Last Name',
- 'inputMask': '',
- 'inputType': 'text',
- 'tableView': true,
- 'input': true
- }
- ],
- 'input': false,
- 'key': 'well1'
+ tags: [],
+ type: 'well',
+ components: [
+ {
+ tags: [],
+ type: 'textfield',
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: '',
+ minLength: '',
+ required: false,
+ },
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: false,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'firstName',
+ label: 'First Name',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
+ },
+ {
+ tags: [],
+ type: 'textfield',
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: '',
+ minLength: '',
+ required: false,
+ },
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: false,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'lastName',
+ label: 'Last Name',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
+ },
+ ],
+ input: false,
+ key: 'well1',
};
diff --git a/src/formio.embed.js b/src/formio.embed.js
index 0ee7363258..9e4290bf62 100644
--- a/src/formio.embed.js
+++ b/src/formio.embed.js
@@ -5,9 +5,7 @@ let thisScript = null;
let i = scripts.length;
const scriptName = config.scriptName || 'formio.embed.';
while (i--) {
- if (
- scripts[i].src && (scripts[i].src.indexOf(scriptName) !== -1)
- ) {
+ if (scripts[i].src && scripts[i].src.indexOf(scriptName) !== -1) {
thisScript = scripts[i];
break;
}
@@ -16,9 +14,13 @@ while (i--) {
if (thisScript) {
const query = {};
const queryString = thisScript.src.replace(/^[^?]+\??/, '');
- queryString.replace(/\?/g, '&').split('&').forEach((item) => {
- query[item.split('=')[0]] = item.split('=')[1] && decodeURIComponent(item.split('=')[1]);
- });
+ queryString
+ .replace(/\?/g, '&')
+ .split('&')
+ .forEach((item) => {
+ query[item.split('=')[0]] =
+ item.split('=')[1] && decodeURIComponent(item.split('=')[1]);
+ });
let scriptSrc = thisScript.src.replace(/^([^?]+).*/, '$1').split('/');
scriptSrc.pop();
@@ -26,28 +28,41 @@ if (thisScript) {
config.formioPath(scriptSrc);
}
scriptSrc = scriptSrc.join('/');
- Formio.config = Object.assign({
- script: query.script || (`${config.updatePath ? config.updatePath() : scriptSrc}/formio.form.min.js`),
- style: query.styles || (`${config.updatePath ? config.updatePath() : scriptSrc}/formio.form.min.css`),
- cdn: query.cdn,
- class: (query.class || 'formio-form-wrapper'),
- src: query.src,
- form: null,
- submission: null,
- project: query.project,
- base: query.base || 'https://api.form.io',
- submit: query.submit,
- includeLibs: (query.libs === 'true' || query.libs === '1'),
- template: query.template,
- debug: (query.debug === 'true' || query.debug === '1'),
- config: {},
- redirect: (query.return || query.redirect),
- embedCSS: (`${config.updatePath ? config.updatePath() : scriptSrc}/formio.embed.css`),
- success: query.success || 'Thank you for your submission!',
- before: null,
- after: null
- }, config);
- const form = (Formio.config.form || Formio.config.src);
+ Formio.config = Object.assign(
+ {
+ script:
+ query.script ||
+ `${
+ config.updatePath ? config.updatePath() : scriptSrc
+ }/formio.form.min.js`,
+ style:
+ query.styles ||
+ `${
+ config.updatePath ? config.updatePath() : scriptSrc
+ }/formio.form.min.css`,
+ cdn: query.cdn,
+ class: query.class || 'formio-form-wrapper',
+ src: query.src,
+ form: null,
+ submission: null,
+ project: query.project,
+ base: query.base || 'https://api.form.io',
+ submit: query.submit,
+ includeLibs: query.libs === 'true' || query.libs === '1',
+ template: query.template,
+ debug: query.debug === 'true' || query.debug === '1',
+ config: {},
+ redirect: query.return || query.redirect,
+ embedCSS: `${
+ config.updatePath ? config.updatePath() : scriptSrc
+ }/formio.embed.css`,
+ success: query.success || 'Thank you for your submission!',
+ before: null,
+ after: null,
+ },
+ config,
+ );
+ const form = Formio.config.form || Formio.config.src;
if (form) {
Formio.debug('Embedding Configuration', config);
if (Formio.config.addPremiumLib) {
@@ -58,46 +73,53 @@ if (thisScript) {
Formio.config.id = `formio-${Math.random().toString(36).substring(7)}`;
Formio.debug('Creating form element');
const element = Formio.createElement('div', {
- 'id': Formio.config.id,
- class: Formio.config.class
+ id: Formio.config.id,
+ class: Formio.config.class,
});
// insertAfter doesn't exist, but effect is identical.
- thisScript.parentNode.insertBefore(element, thisScript.parentNode.firstElementChild.nextSibling);
- Formio.createForm(element, form, Formio.config.config).then((instance) => {
- if (Formio.config.submit) {
- instance.nosubmit = true;
- }
-
- // Configure a redirect.
- instance.on('submit', (submission) => {
- Formio.debug("on('submit')", submission);
+ thisScript.parentNode.insertBefore(
+ element,
+ thisScript.parentNode.firstElementChild.nextSibling,
+ );
+ Formio.createForm(element, form, Formio.config.config).then(
+ (instance) => {
if (Formio.config.submit) {
- Formio.debug(`Sending submission to ${Formio.config.submit}`);
- const headers = {
- 'content-type': 'application/json'
- };
- const token = Formio.FormioClass.getToken();
- if (token) {
- headers['x-jwt-token'] = token;
- }
- Formio.FormioClass.fetch(Formio.config.submit, {
- body: JSON.stringify(submission),
- headers: headers,
- method: 'POST',
- mode: 'cors',
- })
- .then(resp => resp.json())
- .then(submission => Formio.submitDone(instance, submission));
- }
- else {
- Formio.submitDone(instance, submission);
+ instance.nosubmit = true;
}
- });
- });
+
+ // Configure a redirect.
+ instance.on('submit', (submission) => {
+ Formio.debug("on('submit')", submission);
+ if (Formio.config.submit) {
+ Formio.debug(
+ `Sending submission to ${Formio.config.submit}`,
+ );
+ const headers = {
+ 'content-type': 'application/json',
+ };
+ const token = Formio.FormioClass.getToken();
+ if (token) {
+ headers['x-jwt-token'] = token;
+ }
+ Formio.FormioClass.fetch(Formio.config.submit, {
+ body: JSON.stringify(submission),
+ headers: headers,
+ method: 'POST',
+ mode: 'cors',
+ })
+ .then((resp) => resp.json())
+ .then((submission) =>
+ Formio.submitDone(instance, submission),
+ );
+ } else {
+ Formio.submitDone(instance, submission);
+ }
+ });
+ },
+ );
}
-}
-else {
+} else {
// Show an error if the script cannot be found.
document.write('
Could not locate the Embedded form. ');
}
diff --git a/src/formio.form.js b/src/formio.form.js
index ace7982098..8cb87b7425 100644
--- a/src/formio.form.js
+++ b/src/formio.form.js
@@ -17,10 +17,12 @@ import Utils from './utils';
import Evaluator from './utils/Evaluator';
import Licenses from './licenses';
-Formio.loadModules = (path = `${Formio.getApiUrl() }/externalModules.js`, name = 'externalModules') => {
- Formio.requireLibrary(name, name, path, true)
- .then((modules) => {
- Formio.use(modules);
+Formio.loadModules = (
+ path = `${Formio.getApiUrl()}/externalModules.js`,
+ name = 'externalModules',
+) => {
+ Formio.requireLibrary(name, name, path, true).then((modules) => {
+ Formio.use(modules);
});
};
@@ -53,94 +55,97 @@ Formio.Components.setComponents(AllComponents);
* @returns
*/
export function registerModule(mod, defaultFn = null, options = {}) {
- // Sanity check.
- if (typeof mod !== 'object') {
- return;
- }
- for (const key of Object.keys(mod)) {
- const current = mod.framework || Formio.Templates.framework || 'bootstrap';
- switch (key) {
- case 'options':
- Formio.options = _.merge(Formio.options, mod.options);
- break;
- case 'templates':
- for (const framework of Object.keys(mod.templates)) {
- Formio.Templates.extendTemplate(framework, mod.templates[framework]);
- }
- if (mod.templates[current]) {
- Formio.Templates.current = mod.templates[current];
- }
- break;
- case 'components':
- Formio.Components.setComponents(mod.components);
- break;
- case 'framework':
- Formio.Templates.framework = mod.framework;
- break;
- case 'fetch':
- for (const name of Object.keys(mod.fetch)) {
- Formio.registerPlugin(mod.fetch[name], name);
- }
- break;
- case 'providers':
- for (const type of Object.keys(mod.providers)) {
- Formio.Providers.addProviders(type, mod.providers[type]);
- }
- break;
- case 'displays':
- Formio.Displays.addDisplays(mod.displays);
- break;
- case 'rules':
- Formio.Rules.addRules(mod.rules);
- break;
- case 'evaluator':
- Formio.Evaluator.registerEvaluator(mod.evaluator);
- break;
- case 'conjunctions':
- Formio.Conjunctions.addConjunctions(mod.conjunctions);
- break;
- case 'operators':
- Formio.Operators.addOperators(mod.operators);
- break;
- case 'quickRules':
- Formio.QuickRules.addQuickRules(mod.quickRules);
- break;
- case 'transformers':
- Formio.Transformers.addTransformers(mod.transformers);
- break;
- case 'valueSources':
- Formio.ValueSources.addValueSources(mod.valueSources);
- break;
- case 'library':
- options.license
- ? Formio.Licenses.addLicense(mod.library, options.license)
- : Formio.Licenses.removeLicense(mod.library);
- break;
- default:
- if (defaultFn) {
- if (!defaultFn(key, mod)) {
- console.warn('Unknown module option', key);
- }
- break;
+ // Sanity check.
+ if (typeof mod !== 'object') {
+ return;
+ }
+ for (const key of Object.keys(mod)) {
+ const current =
+ mod.framework || Formio.Templates.framework || 'bootstrap';
+ switch (key) {
+ case 'options':
+ Formio.options = _.merge(Formio.options, mod.options);
+ break;
+ case 'templates':
+ for (const framework of Object.keys(mod.templates)) {
+ Formio.Templates.extendTemplate(
+ framework,
+ mod.templates[framework],
+ );
+ }
+ if (mod.templates[current]) {
+ Formio.Templates.current = mod.templates[current];
+ }
+ break;
+ case 'components':
+ Formio.Components.setComponents(mod.components);
+ break;
+ case 'framework':
+ Formio.Templates.framework = mod.framework;
+ break;
+ case 'fetch':
+ for (const name of Object.keys(mod.fetch)) {
+ Formio.registerPlugin(mod.fetch[name], name);
+ }
+ break;
+ case 'providers':
+ for (const type of Object.keys(mod.providers)) {
+ Formio.Providers.addProviders(type, mod.providers[type]);
+ }
+ break;
+ case 'displays':
+ Formio.Displays.addDisplays(mod.displays);
+ break;
+ case 'rules':
+ Formio.Rules.addRules(mod.rules);
+ break;
+ case 'evaluator':
+ Formio.Evaluator.registerEvaluator(mod.evaluator);
+ break;
+ case 'conjunctions':
+ Formio.Conjunctions.addConjunctions(mod.conjunctions);
+ break;
+ case 'operators':
+ Formio.Operators.addOperators(mod.operators);
+ break;
+ case 'quickRules':
+ Formio.QuickRules.addQuickRules(mod.quickRules);
+ break;
+ case 'transformers':
+ Formio.Transformers.addTransformers(mod.transformers);
+ break;
+ case 'valueSources':
+ Formio.ValueSources.addValueSources(mod.valueSources);
+ break;
+ case 'library':
+ options.license
+ ? Formio.Licenses.addLicense(mod.library, options.license)
+ : Formio.Licenses.removeLicense(mod.library);
+ break;
+ default:
+ if (defaultFn) {
+ if (!defaultFn(key, mod)) {
+ console.warn('Unknown module option', key);
+ }
+ break;
+ }
+ console.log('Unknown module option', key);
}
- console.log('Unknown module option', key);
}
- }
}
export function useModule(defaultFn = null) {
- return (plugins, options = {}) => {
- plugins = _.isArray(plugins) ? plugins : [plugins];
+ return (plugins, options = {}) => {
+ plugins = _.isArray(plugins) ? plugins : [plugins];
- plugins.forEach((plugin) => {
- if (Array.isArray(plugin)) {
- plugin.forEach(p => registerModule(p, defaultFn, options));
- }
- else {
- registerModule(plugin, defaultFn, options);
- }
- });
- };
+ plugins.forEach((plugin) => {
+ if (Array.isArray(plugin)) {
+ plugin.forEach((p) => registerModule(p, defaultFn, options));
+ } else {
+ registerModule(plugin, defaultFn, options);
+ }
+ });
+ };
}
/**
@@ -152,4 +157,20 @@ export function useModule(defaultFn = null) {
Formio.use = useModule();
// Export the components.
-export { Components, Displays, Providers, Rules, Widgets, Templates, Conjunctions, Operators, QuickRules, Transformers, ValueSources, Utils, Form, Formio, Licenses };
+export {
+ Components,
+ Displays,
+ Providers,
+ Rules,
+ Widgets,
+ Templates,
+ Conjunctions,
+ Operators,
+ QuickRules,
+ Transformers,
+ ValueSources,
+ Utils,
+ Form,
+ Formio,
+ Licenses,
+};
diff --git a/src/i18n.js b/src/i18n.js
index ead24f9fae..8203ed9224 100644
--- a/src/i18n.js
+++ b/src/i18n.js
@@ -1,16 +1,14 @@
import enTranslation from './translations/en';
-import {
- fastCloneDeep
-} from './utils/utils';
+import { fastCloneDeep } from './utils/utils';
export default {
- lng: 'en',
- nsSeparator: '::',
- keySeparator: '.|.',
- pluralSeparator: '._.',
- contextSeparator: '._.',
- resources: {
- en: {
- translation: fastCloneDeep(enTranslation)
- }
- }
+ lng: 'en',
+ nsSeparator: '::',
+ keySeparator: '.|.',
+ pluralSeparator: '._.',
+ contextSeparator: '._.',
+ resources: {
+ en: {
+ translation: fastCloneDeep(enTranslation),
+ },
+ },
};
diff --git a/src/pdf.image.js b/src/pdf.image.js
index 1f0a85b083..776cb9b846 100644
--- a/src/pdf.image.js
+++ b/src/pdf.image.js
@@ -1,93 +1,94 @@
-module.exports = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6CAMAAAC/MqoPAAAAA3NCSVQICAjb4U/gAAAC9FBMVEX' +
- '///+HiYuGhomCg4aCgIF6eX12eHokJCQkICAgICAjHSOOj5KJi46DhYd1dnltb3EkICAgICAjHSOVl5qTlZeOj5KHiYt6eX0kICAjH' +
- 'SOZmp2Vl5qGhokkICDOz9G+vsCztbapq66cnqGbnZ6ZmZmTlZckICCbnZ6Zmp2Vl5qTlZeOj5KMioqGhomCg4aCgIGZmp2TlZeCgIG' +
- 'mqauho6aen6KcnqGmqaucnqGbnZ66u76cnqGZmp2Vl5rKISjS0dLR0NHOz9HMzMzHycrHxsfFxMXCwsPCw8W+vsCen6KbnZ7GISjCw' +
- 'sO+v8K+vsCpq66kpqmeoaObnZ7////7+/v5+vr39/j09fXz8/P88PHx8fL37+/u7+/r7O3r6+zp6uvn5+jj5+fz4+P44eLw4eHj5OX' +
- 'i4+Th4uPf4OLf3+Dc3t/b3N7a29z109TY2tvv1NXv0tPX2NrW19jU1tfS09XP0dLOz9Hrx8jxxMbnxsfMzMzkxMXHycrGx8nDxcfqu' +
- 'bvCw8XCwsPkuLrutbe/wcO+v8Lftre+vsC7vb+6u763ubu1t7riqqzeqquztbbqpqmxs7bZqKmvsbOtr7Kqra+pq67bnJ7gm56mqav' +
- 'XnJ3nl5ulp6qkpqmjpaeho6aeoaPbj5Gen6KcnqHXjpGbnZ7jiYzfio7SjpDdiYyZmp3LjI6ZmZnahoqVl5rXgoaTlZeSk5bSgIOPk' +
- 'ZPOf4Lgen6Oj5LLf4KLjY+Ji46HiYvVcnaGhonNcnWDhYfKcXSCg4bca3DFcXTBcHJ+gIJ9foHRZWl6fH7MZmbOZWnGZGd6eX12eHr' +
- 'BY2bZXGF1dnlydHa4YWNwcXTOV1vKVlvIVlrCVlnPUFW+VVnOTlS3VFe1VFbKS1HGSE3BR0y/R0y7R0zEREq2R0rSP0WzRkmtRUjBO' +
- 'kC4OT6zOD3OMDaqNzrBLTO2KzCzKzCuKi/KISiqKi6lKS2+ICa6HyW7Hya2HySuHiOyHiSrHiKnHSGiHCCeHB+aGx/MBOLyAAAA/HR' +
- 'STlMAERERERERERERESIiIiIiIiIiMzMzMzMzM0RERERVVVVVVVVVVVVmZmZmZmZmZmZ3d3eIiIiImZmZqqqqqrvMzMzMzMzMzMzMz' +
- 'MzM3d3d3e7u7v/////////////////////////////////////////////////////////////////////////////////////////' +
- '//////////////////////////////////////////////////////////////////////////////////////////////////////' +
- '/////////////////////////////////8PeNL3AAAACXBIWXMAAC37AAAt+wH8h0rnAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJ' +
- 'ld29ya3MgQ1M26LyyjAAAFydJREFUeJzt3Xl8FNd9AHD31K56LfSIaOumTY80aeK06R23TXq5xXV8ZIRhzWEkgkAHKICQZCwpQpZsS' +
- 'SsWRQdeR2hlCWEsXFkHyELmtMEkGBvnMKZ2iV1jW2COGAOSwPzT33tv5s2bY3fn+O2slg8//DFikeT97u94b2Zn5FtuuRk342bcjJt' +
- 'xM8zCl5nhaWRm+lJNJuHP8Psy/H6/z7uA/1oG/CvVfL+P/vJS7qP/uQx4wVOJh9f/93q6u6LRzs0dHZH29ra21taWluZwOBRqbGxsq' +
- 'K+vr6urra2trq6qqqqsrKyoqFhHo5TEWiFKtKE8TD6NfgF8ZUUlfJNq+G519Q2NoVA4/Lek2lJI931algO8HeCqvKGBwOsIvFqBV+j' +
- 'hJXHCFF+9Huj1hN7Scs/vQvZTJ/f9Ppe3mcjVlGsyrsv1mpI1mtDo6QtVyvHV1WBvDIWbW1pb2//G58tMjRwaLvAHXE7hIA9RuVzsc' +
- 'sqNGedsHquFf6t+rqd2kndOb2ttn/2p1OQ9w58ZCHxWlbeYyUnKNXAh4cxqEuwFMLVXVpFmh3pvbYP/Zvu9n/Olot+h3AOBzwtyqHX' +
- 'tgNOmXN/ignuVJmQ/56s9D98J0v5YQ2O4pa090gH2jtt/LQV2WNUCgT8Tqp3KhT7n802bcrXSGXqlPrif4tfwzFM7tHsdo3ds7oR+7' +
- '5j9W97LM3wzA1lfUOXNOvn6anFJ0zY5r3UTucznuVfLXrbXQrO3tEU6o13RFrDf9zmv6Zl+fyCQ9cWIblGLKdc2uVLnDFoEUUj/YcH' +
- '0K9XUq3hS8nUNlN7V0xMh9ujtHtMzCH3WbcqEExY1bbWLcqHS1XxTbKE2OF/Wi3aa9ua2SLS7t6+vmdpn/4rHdGj1rNuM8jrDhGO1b' +
- 'tbiWnUBDc4vLOJ6mnm54ysqIe3h1ki0p69/IBoi9s77ftNTuo/0+pc0s12zkREHnJpxNeGCusAYYvJXqZmneYe0h1ragT4wOBwO07x' +
- '3ednwQJ8RyPpyG5/tYpvHk2vhGm8+/DLo2cwX7CTtUPGbu58ZHB7tbpTt/+ApHQr+yyabVy6vUOVrqZzPNgM8XwiNvUi2r+ajvpSkv' +
- 'SHUGunqGxzZNdbYGGomNd915y84lPyT7fgvGv9H4qQY/2sS/6OLN+wE+5JtHE/skPb2aN/A6NjuzfXMHu2685ed0X863WMHdPwaJe+' +
- 'V1fWh1s6egZGx/WNkT89q/hvOhl2qZQljiEw71vAs7S2Rrn6gHwrV1Ss1/40/vkHprOPXMPv6hlBbtG8Y6J3Vtbzmez9/Q9KL2DIn2' +
- '6tqG1s6egZ37T88CgOf13zvX9yI9MJChqf2dRXV9c3tXf2j+w8fq2B2VvO9/3gD0gvYIs+mHaS9DgbdMyN7Dx8LgV2oedv2VMsSxhB' +
- 'd6Cke8r62tKIaBl3v8NihY22lFZqat2tPtSxhDOWzTQ7YSd4h7fXh9u6BXQePRdfK9rBi/7mk0rc+Ur5CglhS/t0D6oPl5UHyYPkjO' +
- '8+onyqJ8apT+rPL8xme2km314Zao/2jB48Okz9o7Hfastt9JiJnyQHjg8Gt6PTly/OVoqdpr25o6ewb2f/y6MrVJbrE3/mzHtElaaf' +
- 'JgyvOmH2qc/qy5QwPRb+SYKHimzt6h/ceHi2kf3Rsd0eXDpg8qNix6Iq9AGp+1Zq16yrrQpGewd2HDy8vFPKuHMz8TJLpK1hvQ30LD' +
- '5YrD34XlZ6Xl8cTDyVfUgrN3tY1MHbotWVGO+Tdcr87o8MHW4WSVx48s5F9dEr41FdZnIn3TePSly4V7atK1lasb4Q5N3bw2NJl+WL' +
- 'Nh2wewDum/5QxH9E+WE4/2qj7VDcBdNUOaYeKr25o7ezfdfDo4qUmee/s+vuk019lpa998JShDTDoon11Ccw5GPGj+4/maezqxs6i3' +
- 'Tld+FB4cIXa2Yh0Yif4goKiVWtKK+ubN5PVrfTBxeY1b82OTWcjYCsiPScnh9pJ4iHtK9eUVtSFI72wiy9d+GCMmv9zL+hB3YMHzCa' +
- 'AK/rixYtzeNHnFxStXltRG470wMK+doHOXsvtf5pUOmvrch3yVdNHXcR/E7pqLyhcvXZdbai9G+glDzB7vibv9AR91+8kk75VHeYik' +
- 'n64BJcuJ57Y8wtXlayrhoUd9jRr5j2gz7tc85HO+34jefQzS+hHB0zp+gnghv6gal8K9oKVQG8E+tih1XONdl7z9yXc2jilH1gRYxn' +
- 'T0yW1AxzSH2R4Nu2WFxSVlFbBnga2c6vu5/Z846ybncjujM5jpyd0NfF5y/OLYHVrIPSDRXPuN8k7r/lEb8S6o2/Uc5NAX7RokWAHI' +
- '4z4hpYobOeKskV7gaHm/y6J9I2aB4WPg/pPdUFfuJDYmT6HVPyqtRWwnesf3V8gZcfLe0fnZ5NFL39V+yD98A1VikN/eiGxL2J2kva' +
- 'CVSUVcMTeN7J3sRTDLuc9cu+v49PLyzdufUP/IP2QreuIW5qnFywkwe15+TDiyXZueDf59vFr/r6fR6fHfhB9I/v0Ao0d6EUl6+gR+' +
- '6hksBtqfraH9Efoh4bV3hWd4VnD5yyFOVdaRU7PbZYW5+eva2wMhRvAG2N9/2vv6OxEzRlk+gI179DsMOKh4rueGd61e//BQ4cOv/z' +
- 'y0WPHXvvhyGCkapVhT/uHXtF3qq2OSudFvzgnj+3nWjq6+gaGR3eN7d67d//Bg/ACHAX+D/f3hrQ1f+8veUM/w5Ju3Oi4pjM7r/iKO' +
- 'nJVTXdf/8DA4PDICH0FCJ/ojw2ExZqP2e6o9FNsd7skzqfapz+wYIGqJ/ZlkPbSitqGMNmyRbu6unt64SUYhAqgfEj+a0ej1WrN/1X' +
- 'y6extGYmffcWii/ZFpNthVwP26rpGcrlwa1s7bF6iXeAfGByh3Q/6Y0f7annN/3bS6UrsjPepTug6e07ecjhyJVeX0Fsj6A0C8ALAQ' +
- 'XpPX/+wrIfoq5Nr/p5f9Ii+M+6nOqKrerKpJfaCIjLMyDWUleT2EHJzCHv/hehHx0APsT9ay/JufiCDTd94Kv6nOqVzO6zfMOrgKLV' +
- 'oNb3OQrmAtpZcON3cGuns6u0nF5fthdg90sLsn0kanb37GoTd7alEn2o7np6no9PjOHL0St+Iki80KSV8qm9t3xzt6YehNwaxa6T7M' +
- 'Wr/VQS65/HUPAgBv5DNupyl7CxlAXkDFl4A+bq6Wnb1NL2YdGR0dHRksC9M7Leb3DiQalnCoHSG16xx9KxNHjs5Xyjr5WuIQ80UD6k' +
- 'fHhzo72sl9s8Y7amWJQwjfYG8r5NPWcnn54meXGvD8C1tHWzD09/f19MKQ7DFeMNIqmUJQ6aLNS93/IPCiVpa+iq+Xu75Poje7q52s' +
- 'H/FcGNgqmUJ46m584x5V+0MT96Vkt9/ZxdV1taHwjDto909PT3d0U5S83+kt6daljCemivaxYbX4vkb8DKetDzJfLQrGt0caWlovMe' +
- 'ns6daljCArtrnae2LBDt5eyJfGHhV6x8jN0hFNnd2bu5ob2tuaPxLnT3VsoRB6IqdpT5G3hV7kTLs6ayHHW4kEmlvaw3VN37Kn5mZd' +
- 'nSrdrnoKZ50/GNkO9NG77RuDtXf7ctwdVOkfBcEvZMhn7zfvywvj7wnlJNDT5WTs0iLFpFjaz6SaIvypz6Xxf3GmKP5TQ1b9uVC0bN' +
- '1Ltwi33raWP8VPwodXz5njvCbni7oE9g1Oxx6X2A4zG7Sabgr4PO7uAdapVM50OllD0y+2JWcoOXfyAcGvB27fFUpuTGQ3vNPb9G5I' +
- '+DLdJF2mZ4UOQ/2Z9GuKXtrNc8anh3VN9B7EO+YGYB2d01n1e5ezsucRHa27hWI0fFx1neh5ql9HT2gZfH1QMDnottlukmfO5SDcA6' +
- 'Xy3blJTD0vL1+Vw5pyA89gFh/dyCQmeGajjThNEnOzpbt/CVwmvd8rZ2cy6mqrqq6Owsq3nXBY8p5qmU7fwlwap7/5IPKu7MCM100u' +
- '0h3PeHEMs/WB1rNK7fAVwA94He+vHE6ptw85siDwHnNF9E7ghX8uq/j0DFmu1H+rW83NZXlavPu0L5csJew+8AJ3efPcElfhjLbtfL' +
- '5z5/9mMbz87md+W3bNXsbbr+L9LrPLR1twgkZl+EQJ+cLjzvOO5vz8m1ixA70Ge7p+PL5H3ysxrP6nndR8yv5DcF3kYLHoFuUz7Umz' +
- '37yYzFyXduFmlfseHTU2T7/rIb+uGHWm9vjnbPS13wJFh15tjdp5B+fzM6WYust4tWDGXo3dMl/4tCR5dkvaekfZ0tSHLudzU0+a3i' +
- 'w49BRJxwJeVlrkuv+cpmU2G48iNWfpVbshdR+BwodW17GxJLECv/y5SYJ345Hx5rtEBKb7z8C7VlGf1JKYI/Z74tinKxciUtH2rdLA' +
- 'v1HVK7QDXYLg97EzmYdGh1TLrEp9zyjg/zyjyXn9lhzHouO1+eSnGtzehy73TmPRMeVy3RS8Cep/JJKT2S3Puv+A4WOLBfoTC7SJR3' +
- 'dsR2LjjXb9XQm19Dj2G3N+X/HoVP5grhykwEXSy6POVjXy8zoSHYcOt5sZyEftwWlJibX0Z3YjTWPREfsc4FeJj3P5JeelKzarc95H' +
- 'DqyXHpcPlaVzsagY8y6f8OiY8oltoe//FITg5vQEexYdKzZzqKY0c+eVeiPG+juZx0SHW22y8F27pcV+aUyI921HYeON9vlOGmB7nb' +
- 'O49Ix+pzGS1r5paAZ3eWcR6WjyaUntfJLpnKXsw6TjieXvq2VfxCD7sr+r3h0lNkuxxKNXL+ZM6fbnXV4dKTZLscHovzS92PR3djR6' +
- 'BblengMufSShm7c0biys5rHoiP2OY3HRfmVptj0ePb4cx6Jji2XikX5FdNl3ao91qzDoaPLodkF+RXzZd2lHY+ONNuVeFakx5Vr6dZ' +
- 'nHRodbbbLUSzIX49Pdzjn/wWJjjfblTjJ5Vdir21u7Eh03D6n0cTlV+KsbRbsseY8Dj0Jcil4VpHHXdus2o2zDpeOKJek5znd5EQFg' +
- 'h2TjjTblchV5FfOxV/cTOhW+h2RjjXbeZy8ooSFZtfjE9vx6HizXYkfc7qltNu99ACNji+XrlyxmXbrcx6TngR5riqfPJeLY58rpB2' +
- 'JngS5VCbQJ/dY/CIbdhy6dblluCQ9KcgnJ52kPWa/00mHSceVS98X5ZNHrH6ZZTsi3Qh3JZc+EOWTk3GP2a3b1SmPR0ftc4igVj553' +
- 'PJXxu93bkejY8uVKafIJydq3Ns1qzsWHV0uTzlVPjFu/Wtj2eeKdiQ68oQj8bpOPjFh5QDOhG6wo9KTIJf0SZ+YsLidNeLN845PR5j' +
- 'tJMoM8omJLTa+PrH9n5NDd9nnEmt1qn6dyycmLO5rTO336+3odCQ5bXVKD57j8gmr21kTu7i+MTs2HUsuKfKfSFsm1LC8r9HbDXv5u' +
- 'dh0nD6XaKuzLh+SpHGVbn1fo6WbHcfg0tHk0OrygIMVrUmlT1lf4ET8HLNjOEw60myn8bpCJ5PtbS6fOm9jgVPtc8zsiHRMuaTI6Ra' +
- 'uTKVP2Vng4tu/hkzHmHAEqyzobKYfV+AQdha4uHY8OqZcGlLom+gfcwX6CZvfKma/o9Exq12SfqLs4orZn7dw+dSUrQVOHfOGvGPRc' +
- 'eVBJennlAfGuXzqtCO50Y5Ex5VLNUrS+WmpGpU+tc2R3GDHoSPLpT3KQYu6jB9X6RcsTzrdM9La8ehYE47EuHK4piJzz6t2i5PO8Iy' +
- '0djQ6pjxXkYsnZjap9Clr56qMdM2cx6IjwkGpHKJrjtTUkr962tKeLiZ9DiYdVS59T6Frspt7gdOvWpx0ce04dFy5xM/LaJO7icuvX' +
- 'i12b08K3aW8RpHrD1FPcPnVdy1+rzj2ZNBdyukultI36f4ieEGRWy75WPYkZd0tfVw5GWeo6jIuv3r1Ief27CT1ulu4VKzITd5z2KH' +
- 'SP3L03msy6a7lZGlj9CGTvzzB6Zbb3YhPzoR3L1fPyZgdogUvqPbnHNqT0+sI8lzl3PN5078uVunXNjiyJ2fCI8jVk5AxTrpv4PJrH' +
- '1lc3Y23BxH79KMfUeixNuo7OP3aR2TPU1yz7YU333zz4idvvvXWi9sffXi+RftXEekYcCk4EbfeSbygyK9de++F966x+ESN97/jNR1' +
- 'FnrDeIYLvcroaAv2T6++bZN6Ax6PjyNV6j3MKDuzX4smvX3/f5Kv0djQ6kpzXe+xrKHI3vPJR3JyT2J7YjkVHkqv1brafgVemZsdpk' +
- '2q/ppdf/zABPRuNjiVX691km5r7xAl1uMdP+vXr34ovB/s0o+cq8nf0fxPc8K66l9HLL8K69pYIv3794QRyLDqWXNqk0LXvqAY3vHJ' +
- 'VCGPOn4ORPv/FeHS9PDt7mtGV/bvmDdWyfReumskvCtV+8Qn4xPdV+XXd8maUT7OsFyvvqO7jD+VuOz111Sh/77maYPAVsdE/3P7N7' +
- 'ar8rYTyaUYfUujK5nzDiakpg/yjFzbIQ3Cb+YiDeDShfJrRz8vvqLKTcrk7Lqgn4/hR+nPiMctDF83lLyaWTy96k3IBARlyNSeEE7C' +
- 'K+wn9mhd8xUz+lqbTzeXTi65cQTAuBbecntLLX9lg+sbDQx8a6NqtnFE+/ej8AoIj+4Q3mZj7hLmbxnc+1MB/8M1E8ulX8EMKXQ831' +
- 'rkuHn3xokL/gW5BN5VPuzF33igH+ukdlk69PvzEdohH9UerMeTTbHFrMpPvs34DgFnElE+vLc3bBvnpTfaukrMjn070Mr18n73rhWz' +
- 'Kp88ePnePttxdJzyhfJpkncFV+RHXCU8snxZ0Ga7IL1gb6W7l04AeVK53x6v0xPLpQA9uOTch0neguK3IU01v4nAmv4CTcivy1NLLh' +
- 'PsbWLnrr6NIihz13RdHzy/3+IRebuvyV5fy1NGDQ5MGuc2Lnt3JU0ZvEm7hOr9Hplu+R92FPNX04uPqbXvntwT3yAu6B+u58D8BxXl' +
- '/3d6TCw6p92oCXMqVy93mbS0u5UiXFth6cmXjXE7gkrQHccZZhaNdUGLjuQW/p96fS+FSGeKMsyH3nF5zjsuPs9YOjk+h7ePsyD2my' +
- 'ymnl7orp1+G5HJH2MdZ73PP6XLKQX6Oj7QavHK3J/eUzm9emzjClzHlvo4dnsu9pO/hd3AJpxrfYXLD2+nY8jkGuXf0oHLX3uTbws5' +
- 'Ffq/hguVr//Dk3tFf53Jhnm2RG93yFZ+Ics/oe8zkTcq51yTLjX3uIb2J97lQ7Yr8HdfrmhO5R/TgOYUu7NOVu3jcN7ojuUd0Xu7qN' +
- 'WHK4drUVJLlpn3uGV1N+oTyUNn4FNaIcyj3hl7D5TKdnHlPtdwb+hYuJzftBWuOTHglj9XnXtPJ4drbx8eFk3EXkvyOYjy5pwUvnIZ' +
- 'k9HfcTrgE8Lhyjyb8uE4un4VM8noep8+9oxefM+b8fEp2r2og/YSShE+yeFwv35f0988TyL2ii28rkh+ntA/hvLObPveSDtF0hF0HO' +
- 'r6vCeNNRbdyL+kkysrcH5lbgVuQe01HC1d9zn7oWprSXcnlH+6N80PX0lGennT3fZ6udBx5GtITwC3L049uGZ5IfqPRLU44xB+mmo7' +
- 'ydKNj9Tnez4xOR3la0RPAbcrTiW4Zbk1+49BtTTgk+gyP6NhyQp/hjj4zkPWllMvt9rlMn+mG7icFf1s6ylnB+13Q/YHArKTTE8Ady' +
- 'ed9bVYg4HdOzyT0rC+mVm57tsv0LELPdEr3ZZBe/0JK6Q4mHP0fHX2V9HqGzyn9Fh9t9ltvvfVP0ivgGdNWdy6/xU8W9lnEnk548nS' +
- 'zZpFl3e+cnuHPDEDaqT2tIguSHsh0PuVI1jMg7ZD3tNLDs4WcB+C5u8j6LX5a8iTxhJ8eMYumnJS7G7lqT7twLQe6PyOT7GcDgZkzU' +
- 's2xEDPoM/X5MmE75pJO+p3+guynSfjlZ+wWTuywlSevYapJFoPUKWzeMeQ0oIDSJzI1O5n/B5/xAXbXPcU5AAAAAElFTkSuQmCC';
+module.exports =
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6CAMAAAC/MqoPAAAAA3NCSVQICAjb4U/gAAAC9FBMVEX' +
+ '///+HiYuGhomCg4aCgIF6eX12eHokJCQkICAgICAjHSOOj5KJi46DhYd1dnltb3EkICAgICAjHSOVl5qTlZeOj5KHiYt6eX0kICAjH' +
+ 'SOZmp2Vl5qGhokkICDOz9G+vsCztbapq66cnqGbnZ6ZmZmTlZckICCbnZ6Zmp2Vl5qTlZeOj5KMioqGhomCg4aCgIGZmp2TlZeCgIG' +
+ 'mqauho6aen6KcnqGmqaucnqGbnZ66u76cnqGZmp2Vl5rKISjS0dLR0NHOz9HMzMzHycrHxsfFxMXCwsPCw8W+vsCen6KbnZ7GISjCw' +
+ 'sO+v8K+vsCpq66kpqmeoaObnZ7////7+/v5+vr39/j09fXz8/P88PHx8fL37+/u7+/r7O3r6+zp6uvn5+jj5+fz4+P44eLw4eHj5OX' +
+ 'i4+Th4uPf4OLf3+Dc3t/b3N7a29z109TY2tvv1NXv0tPX2NrW19jU1tfS09XP0dLOz9Hrx8jxxMbnxsfMzMzkxMXHycrGx8nDxcfqu' +
+ 'bvCw8XCwsPkuLrutbe/wcO+v8Lftre+vsC7vb+6u763ubu1t7riqqzeqquztbbqpqmxs7bZqKmvsbOtr7Kqra+pq67bnJ7gm56mqav' +
+ 'XnJ3nl5ulp6qkpqmjpaeho6aeoaPbj5Gen6KcnqHXjpGbnZ7jiYzfio7SjpDdiYyZmp3LjI6ZmZnahoqVl5rXgoaTlZeSk5bSgIOPk' +
+ 'ZPOf4Lgen6Oj5LLf4KLjY+Ji46HiYvVcnaGhonNcnWDhYfKcXSCg4bca3DFcXTBcHJ+gIJ9foHRZWl6fH7MZmbOZWnGZGd6eX12eHr' +
+ 'BY2bZXGF1dnlydHa4YWNwcXTOV1vKVlvIVlrCVlnPUFW+VVnOTlS3VFe1VFbKS1HGSE3BR0y/R0y7R0zEREq2R0rSP0WzRkmtRUjBO' +
+ 'kC4OT6zOD3OMDaqNzrBLTO2KzCzKzCuKi/KISiqKi6lKS2+ICa6HyW7Hya2HySuHiOyHiSrHiKnHSGiHCCeHB+aGx/MBOLyAAAA/HR' +
+ 'STlMAERERERERERERESIiIiIiIiIiMzMzMzMzM0RERERVVVVVVVVVVVVmZmZmZmZmZmZ3d3eIiIiImZmZqqqqqrvMzMzMzMzMzMzMz' +
+ 'MzM3d3d3e7u7v/////////////////////////////////////////////////////////////////////////////////////////' +
+ '//////////////////////////////////////////////////////////////////////////////////////////////////////' +
+ '/////////////////////////////////8PeNL3AAAACXBIWXMAAC37AAAt+wH8h0rnAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJ' +
+ 'ld29ya3MgQ1M26LyyjAAAFydJREFUeJzt3Xl8FNd9AHD31K56LfSIaOumTY80aeK06R23TXq5xXV8ZIRhzWEkgkAHKICQZCwpQpZsS' +
+ 'SsWRQdeR2hlCWEsXFkHyELmtMEkGBvnMKZ2iV1jW2COGAOSwPzT33tv5s2bY3fn+O2slg8//DFikeT97u94b2Zn5FtuuRk342bcjJt' +
+ 'xM8zCl5nhaWRm+lJNJuHP8Psy/H6/z7uA/1oG/CvVfL+P/vJS7qP/uQx4wVOJh9f/93q6u6LRzs0dHZH29ra21taWluZwOBRqbGxsq' +
+ 'K+vr6urra2trq6qqqqsrKyoqFhHo5TEWiFKtKE8TD6NfgF8ZUUlfJNq+G519Q2NoVA4/Lek2lJI931algO8HeCqvKGBwOsIvFqBV+j' +
+ 'hJXHCFF+9Huj1hN7Scs/vQvZTJ/f9Ppe3mcjVlGsyrsv1mpI1mtDo6QtVyvHV1WBvDIWbW1pb2//G58tMjRwaLvAHXE7hIA9RuVzsc' +
+ 'sqNGedsHquFf6t+rqd2kndOb2ttn/2p1OQ9w58ZCHxWlbeYyUnKNXAh4cxqEuwFMLVXVpFmh3pvbYP/Zvu9n/Olot+h3AOBzwtyqHX' +
+ 'tgNOmXN/ignuVJmQ/56s9D98J0v5YQ2O4pa090gH2jtt/LQV2WNUCgT8Tqp3KhT7n802bcrXSGXqlPrif4tfwzFM7tHsdo3ds7oR+7' +
+ '5j9W97LM3wzA1lfUOXNOvn6anFJ0zY5r3UTucznuVfLXrbXQrO3tEU6o13RFrDf9zmv6Zl+fyCQ9cWIblGLKdc2uVLnDFoEUUj/YcH' +
+ '0K9XUq3hS8nUNlN7V0xMh9ujtHtMzCH3WbcqEExY1bbWLcqHS1XxTbKE2OF/Wi3aa9ua2SLS7t6+vmdpn/4rHdGj1rNuM8jrDhGO1b' +
+ 'tbiWnUBDc4vLOJ6mnm54ysqIe3h1ki0p69/IBoi9s77ftNTuo/0+pc0s12zkREHnJpxNeGCusAYYvJXqZmneYe0h1ragT4wOBwO07x' +
+ '3ednwQJ8RyPpyG5/tYpvHk2vhGm8+/DLo2cwX7CTtUPGbu58ZHB7tbpTt/+ApHQr+yyabVy6vUOVrqZzPNgM8XwiNvUi2r+ajvpSkv' +
+ 'SHUGunqGxzZNdbYGGomNd915y84lPyT7fgvGv9H4qQY/2sS/6OLN+wE+5JtHE/skPb2aN/A6NjuzfXMHu2685ed0X863WMHdPwaJe+' +
+ 'V1fWh1s6egZGx/WNkT89q/hvOhl2qZQljiEw71vAs7S2Rrn6gHwrV1Ss1/40/vkHprOPXMPv6hlBbtG8Y6J3Vtbzmez9/Q9KL2DIn2' +
+ '6tqG1s6egZ37T88CgOf13zvX9yI9MJChqf2dRXV9c3tXf2j+w8fq2B2VvO9/3gD0gvYIs+mHaS9DgbdMyN7Dx8LgV2oedv2VMsSxhB' +
+ 'd6Cke8r62tKIaBl3v8NihY22lFZqat2tPtSxhDOWzTQ7YSd4h7fXh9u6BXQePRdfK9rBi/7mk0rc+Ur5CglhS/t0D6oPl5UHyYPkjO' +
+ '8+onyqJ8apT+rPL8xme2km314Zao/2jB48Okz9o7Hfastt9JiJnyQHjg8Gt6PTly/OVoqdpr25o6ewb2f/y6MrVJbrE3/mzHtElaaf' +
+ 'JgyvOmH2qc/qy5QwPRb+SYKHimzt6h/ceHi2kf3Rsd0eXDpg8qNix6Iq9AGp+1Zq16yrrQpGewd2HDy8vFPKuHMz8TJLpK1hvQ30LD' +
+ '5YrD34XlZ6Xl8cTDyVfUgrN3tY1MHbotWVGO+Tdcr87o8MHW4WSVx48s5F9dEr41FdZnIn3TePSly4V7atK1lasb4Q5N3bw2NJl+WL' +
+ 'Nh2wewDum/5QxH9E+WE4/2qj7VDcBdNUOaYeKr25o7ezfdfDo4qUmee/s+vuk019lpa998JShDTDoon11Ccw5GPGj+4/maezqxs6i3' +
+ 'Tld+FB4cIXa2Yh0Yif4goKiVWtKK+ubN5PVrfTBxeY1b82OTWcjYCsiPScnh9pJ4iHtK9eUVtSFI72wiy9d+GCMmv9zL+hB3YMHzCa' +
+ 'AK/rixYtzeNHnFxStXltRG470wMK+doHOXsvtf5pUOmvrch3yVdNHXcR/E7pqLyhcvXZdbai9G+glDzB7vibv9AR91+8kk75VHeYik' +
+ 'n64BJcuJ57Y8wtXlayrhoUd9jRr5j2gz7tc85HO+34jefQzS+hHB0zp+gnghv6gal8K9oKVQG8E+tih1XONdl7z9yXc2jilH1gRYxn' +
+ 'T0yW1AxzSH2R4Nu2WFxSVlFbBnga2c6vu5/Z846ybncjujM5jpyd0NfF5y/OLYHVrIPSDRXPuN8k7r/lEb8S6o2/Uc5NAX7RokWAHI' +
+ '4z4hpYobOeKskV7gaHm/y6J9I2aB4WPg/pPdUFfuJDYmT6HVPyqtRWwnesf3V8gZcfLe0fnZ5NFL39V+yD98A1VikN/eiGxL2J2kva' +
+ 'CVSUVcMTeN7J3sRTDLuc9cu+v49PLyzdufUP/IP2QreuIW5qnFywkwe15+TDiyXZueDf59vFr/r6fR6fHfhB9I/v0Ao0d6EUl6+gR+' +
+ '6hksBtqfraH9Efoh4bV3hWd4VnD5yyFOVdaRU7PbZYW5+eva2wMhRvAG2N9/2vv6OxEzRlk+gI179DsMOKh4rueGd61e//BQ4cOv/z' +
+ 'y0WPHXvvhyGCkapVhT/uHXtF3qq2OSudFvzgnj+3nWjq6+gaGR3eN7d67d//Bg/ACHAX+D/f3hrQ1f+8veUM/w5Ju3Oi4pjM7r/iKO' +
+ 'nJVTXdf/8DA4PDICH0FCJ/ojw2ExZqP2e6o9FNsd7skzqfapz+wYIGqJ/ZlkPbSitqGMNmyRbu6unt64SUYhAqgfEj+a0ej1WrN/1X' +
+ 'y6extGYmffcWii/ZFpNthVwP26rpGcrlwa1s7bF6iXeAfGByh3Q/6Y0f7annN/3bS6UrsjPepTug6e07ecjhyJVeX0Fsj6A0C8ALAQ' +
+ 'XpPX/+wrIfoq5Nr/p5f9Ii+M+6nOqKrerKpJfaCIjLMyDWUleT2EHJzCHv/hehHx0APsT9ay/JufiCDTd94Kv6nOqVzO6zfMOrgKLV' +
+ 'oNb3OQrmAtpZcON3cGuns6u0nF5fthdg90sLsn0kanb37GoTd7alEn2o7np6no9PjOHL0St+Iki80KSV8qm9t3xzt6YehNwaxa6T7M' +
+ 'Wr/VQS65/HUPAgBv5DNupyl7CxlAXkDFl4A+bq6Wnb1NL2YdGR0dHRksC9M7Leb3DiQalnCoHSG16xx9KxNHjs5Xyjr5WuIQ80UD6k' +
+ 'fHhzo72sl9s8Y7amWJQwjfYG8r5NPWcnn54meXGvD8C1tHWzD09/f19MKQ7DFeMNIqmUJQ6aLNS93/IPCiVpa+iq+Xu75Poje7q52s' +
+ 'H/FcGNgqmUJ46m584x5V+0MT96Vkt9/ZxdV1taHwjDto909PT3d0U5S83+kt6daljCemivaxYbX4vkb8DKetDzJfLQrGt0caWlovMe' +
+ 'ns6daljCArtrnae2LBDt5eyJfGHhV6x8jN0hFNnd2bu5ob2tuaPxLnT3VsoRB6IqdpT5G3hV7kTLs6ayHHW4kEmlvaw3VN37Kn5mZd' +
+ 'nSrdrnoKZ50/GNkO9NG77RuDtXf7ctwdVOkfBcEvZMhn7zfvywvj7wnlJNDT5WTs0iLFpFjaz6SaIvypz6Xxf3GmKP5TQ1b9uVC0bN' +
+ '1Ltwi33raWP8VPwodXz5njvCbni7oE9g1Oxx6X2A4zG7Sabgr4PO7uAdapVM50OllD0y+2JWcoOXfyAcGvB27fFUpuTGQ3vNPb9G5I' +
+ '+DLdJF2mZ4UOQ/2Z9GuKXtrNc8anh3VN9B7EO+YGYB2d01n1e5ezsucRHa27hWI0fFx1neh5ql9HT2gZfH1QMDnottlukmfO5SDcA6' +
+ 'Xy3blJTD0vL1+Vw5pyA89gFh/dyCQmeGajjThNEnOzpbt/CVwmvd8rZ2cy6mqrqq6Owsq3nXBY8p5qmU7fwlwap7/5IPKu7MCM100u' +
+ '0h3PeHEMs/WB1rNK7fAVwA94He+vHE6ptw85siDwHnNF9E7ghX8uq/j0DFmu1H+rW83NZXlavPu0L5csJew+8AJ3efPcElfhjLbtfL' +
+ '5z5/9mMbz87md+W3bNXsbbr+L9LrPLR1twgkZl+EQJ+cLjzvOO5vz8m1ixA70Ge7p+PL5H3ysxrP6nndR8yv5DcF3kYLHoFuUz7Umz' +
+ '37yYzFyXduFmlfseHTU2T7/rIb+uGHWm9vjnbPS13wJFh15tjdp5B+fzM6WYust4tWDGXo3dMl/4tCR5dkvaekfZ0tSHLudzU0+a3i' +
+ 'w49BRJxwJeVlrkuv+cpmU2G48iNWfpVbshdR+BwodW17GxJLECv/y5SYJ345Hx5rtEBKb7z8C7VlGf1JKYI/Z74tinKxciUtH2rdLA' +
+ 'v1HVK7QDXYLg97EzmYdGh1TLrEp9zyjg/zyjyXn9lhzHouO1+eSnGtzehy73TmPRMeVy3RS8Cep/JJKT2S3Puv+A4WOLBfoTC7SJR3' +
+ 'dsR2LjjXb9XQm19Dj2G3N+X/HoVP5grhykwEXSy6POVjXy8zoSHYcOt5sZyEftwWlJibX0Z3YjTWPREfsc4FeJj3P5JeelKzarc95H' +
+ 'DqyXHpcPlaVzsagY8y6f8OiY8oltoe//FITg5vQEexYdKzZzqKY0c+eVeiPG+juZx0SHW22y8F27pcV+aUyI921HYeON9vlOGmB7nb' +
+ 'O49Ix+pzGS1r5paAZ3eWcR6WjyaUntfJLpnKXsw6TjieXvq2VfxCD7sr+r3h0lNkuxxKNXL+ZM6fbnXV4dKTZLscHovzS92PR3djR6' +
+ 'BblengMufSShm7c0biys5rHoiP2OY3HRfmVptj0ePb4cx6Jji2XikX5FdNl3ao91qzDoaPLodkF+RXzZd2lHY+ONNuVeFakx5Vr6dZ' +
+ 'nHRodbbbLUSzIX49Pdzjn/wWJjjfblTjJ5Vdir21u7Eh03D6n0cTlV+KsbRbsseY8Dj0Jcil4VpHHXdus2o2zDpeOKJek5znd5EQFg' +
+ 'h2TjjTblchV5FfOxV/cTOhW+h2RjjXbeZy8ooSFZtfjE9vx6HizXYkfc7qltNu99ACNji+XrlyxmXbrcx6TngR5riqfPJeLY58rpB2' +
+ 'JngS5VCbQJ/dY/CIbdhy6dblluCQ9KcgnJ52kPWa/00mHSceVS98X5ZNHrH6ZZTsi3Qh3JZc+EOWTk3GP2a3b1SmPR0ftc4igVj553' +
+ 'PJXxu93bkejY8uVKafIJydq3Ns1qzsWHV0uTzlVPjFu/Wtj2eeKdiQ68oQj8bpOPjFh5QDOhG6wo9KTIJf0SZ+YsLidNeLN845PR5j' +
+ 'tJMoM8omJLTa+PrH9n5NDd9nnEmt1qn6dyycmLO5rTO336+3odCQ5bXVKD57j8gmr21kTu7i+MTs2HUsuKfKfSFsm1LC8r9HbDXv5u' +
+ 'dh0nD6XaKuzLh+SpHGVbn1fo6WbHcfg0tHk0OrygIMVrUmlT1lf4ET8HLNjOEw60myn8bpCJ5PtbS6fOm9jgVPtc8zsiHRMuaTI6Ra' +
+ 'uTKVP2Vng4tu/hkzHmHAEqyzobKYfV+AQdha4uHY8OqZcGlLom+gfcwX6CZvfKma/o9Exq12SfqLs4orZn7dw+dSUrQVOHfOGvGPRc' +
+ 'eVBJennlAfGuXzqtCO50Y5Ex5VLNUrS+WmpGpU+tc2R3GDHoSPLpT3KQYu6jB9X6RcsTzrdM9La8ehYE47EuHK4piJzz6t2i5PO8Iy' +
+ '0djQ6pjxXkYsnZjap9Clr56qMdM2cx6IjwkGpHKJrjtTUkr962tKeLiZ9DiYdVS59T6Frspt7gdOvWpx0ce04dFy5xM/LaJO7icuvX' +
+ 'i12b08K3aW8RpHrD1FPcPnVdy1+rzj2ZNBdyukultI36f4ieEGRWy75WPYkZd0tfVw5GWeo6jIuv3r1Ief27CT1ulu4VKzITd5z2KH' +
+ 'SP3L03msy6a7lZGlj9CGTvzzB6Zbb3YhPzoR3L1fPyZgdogUvqPbnHNqT0+sI8lzl3PN5078uVunXNjiyJ2fCI8jVk5AxTrpv4PJrH' +
+ '1lc3Y23BxH79KMfUeixNuo7OP3aR2TPU1yz7YU333zz4idvvvXWi9sffXi+RftXEekYcCk4EbfeSbygyK9de++F966x+ESN97/jNR1' +
+ 'FnrDeIYLvcroaAv2T6++bZN6Ax6PjyNV6j3MKDuzX4smvX3/f5Kv0djQ6kpzXe+xrKHI3vPJR3JyT2J7YjkVHkqv1brafgVemZsdpk' +
+ '2q/ppdf/zABPRuNjiVX691km5r7xAl1uMdP+vXr34ovB/s0o+cq8nf0fxPc8K66l9HLL8K69pYIv3794QRyLDqWXNqk0LXvqAY3vHJ' +
+ 'VCGPOn4ORPv/FeHS9PDt7mtGV/bvmDdWyfReumskvCtV+8Qn4xPdV+XXd8maUT7OsFyvvqO7jD+VuOz111Sh/77maYPAVsdE/3P7N7' +
+ 'ar8rYTyaUYfUujK5nzDiakpg/yjFzbIQ3Cb+YiDeDShfJrRz8vvqLKTcrk7Lqgn4/hR+nPiMctDF83lLyaWTy96k3IBARlyNSeEE7C' +
+ 'K+wn9mhd8xUz+lqbTzeXTi65cQTAuBbecntLLX9lg+sbDQx8a6NqtnFE+/ej8AoIj+4Q3mZj7hLmbxnc+1MB/8M1E8ulX8EMKXQ831' +
+ 'rkuHn3xokL/gW5BN5VPuzF33igH+ukdlk69PvzEdohH9UerMeTTbHFrMpPvs34DgFnElE+vLc3bBvnpTfaukrMjn070Mr18n73rhWz' +
+ 'Kp88ePnePttxdJzyhfJpkncFV+RHXCU8snxZ0Ga7IL1gb6W7l04AeVK53x6v0xPLpQA9uOTch0neguK3IU01v4nAmv4CTcivy1NLLh' +
+ 'PsbWLnrr6NIihz13RdHzy/3+IRebuvyV5fy1NGDQ5MGuc2Lnt3JU0ZvEm7hOr9Hplu+R92FPNX04uPqbXvntwT3yAu6B+u58D8BxXl' +
+ '/3d6TCw6p92oCXMqVy93mbS0u5UiXFth6cmXjXE7gkrQHccZZhaNdUGLjuQW/p96fS+FSGeKMsyH3nF5zjsuPs9YOjk+h7ePsyD2my' +
+ 'ymnl7orp1+G5HJH2MdZ73PP6XLKQX6Oj7QavHK3J/eUzm9emzjClzHlvo4dnsu9pO/hd3AJpxrfYXLD2+nY8jkGuXf0oHLX3uTbws5' +
+ 'Ffq/hguVr//Dk3tFf53Jhnm2RG93yFZ+Ics/oe8zkTcq51yTLjX3uIb2J97lQ7Yr8HdfrmhO5R/TgOYUu7NOVu3jcN7ojuUd0Xu7qN' +
+ 'WHK4drUVJLlpn3uGV1N+oTyUNn4FNaIcyj3hl7D5TKdnHlPtdwb+hYuJzftBWuOTHglj9XnXtPJ4drbx8eFk3EXkvyOYjy5pwUvnIZ' +
+ 'k9HfcTrgE8Lhyjyb8uE4un4VM8noep8+9oxefM+b8fEp2r2og/YSShE+yeFwv35f0988TyL2ii28rkh+ntA/hvLObPveSDtF0hF0HO' +
+ 'r6vCeNNRbdyL+kkysrcH5lbgVuQe01HC1d9zn7oWprSXcnlH+6N80PX0lGennT3fZ6udBx5GtITwC3L049uGZ5IfqPRLU44xB+mmo7' +
+ 'ydKNj9Tnez4xOR3la0RPAbcrTiW4Zbk1+49BtTTgk+gyP6NhyQp/hjj4zkPWllMvt9rlMn+mG7icFf1s6ylnB+13Q/YHArKTTE8Ady' +
+ 'ed9bVYg4HdOzyT0rC+mVm57tsv0LELPdEr3ZZBe/0JK6Q4mHP0fHX2V9HqGzyn9Fh9t9ltvvfVP0ivgGdNWdy6/xU8W9lnEnk548nS' +
+ 'zZpFl3e+cnuHPDEDaqT2tIguSHsh0PuVI1jMg7ZD3tNLDs4WcB+C5u8j6LX5a8iTxhJ8eMYumnJS7G7lqT7twLQe6PyOT7GcDgZkzU' +
+ 's2xEDPoM/X5MmE75pJO+p3+guynSfjlZ+wWTuywlSevYapJFoPUKWzeMeQ0oIDSJzI1O5n/B5/xAXbXPcU5AAAAAElFTkSuQmCC';
diff --git a/src/providers/address/AddressProvider.js b/src/providers/address/AddressProvider.js
index 442e71a022..04eb05df32 100644
--- a/src/providers/address/AddressProvider.js
+++ b/src/providers/address/AddressProvider.js
@@ -3,68 +3,85 @@ import _ from 'lodash';
import { Formio } from '../../Formio';
export class AddressProvider {
- static get name() {
- return 'address';
- }
-
- static get displayName() {
- return 'Address';
- }
-
- constructor(options = {}) {
- this.beforeMergeOptions(options);
- this.options = _.merge({}, this.defaultOptions, options);
- }
-
- beforeMergeOptions() {
- return;
- }
-
- get defaultOptions() {
- return {};
- }
-
- get queryProperty() {
- return 'query';
- }
-
- get responseProperty() {
- return null;
- }
-
- get displayValueProperty() {
- return null;
- }
-
- serialize(params) {
- return _.toPairs(params).map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`).join('&');
- }
-
- getRequestOptions(options = {}) {
- return _.merge({}, this.options, options);
- }
-
- // eslint-disable-next-line no-unused-vars
- getRequestUrl(options = {}) {
- throw new Error('Method AddressProvider#getRequestUrl(options) is abstract.');
- }
-
- makeRequest(options = {}) {
- return Formio.makeStaticRequest(this.getRequestUrl(options), 'GET', null, {
- noToken: true,
- });
- }
-
- search(query, options = {}) {
- const requestOptions = this.getRequestOptions(options);
- const params = requestOptions.params = requestOptions.params || {};
- params[this.queryProperty] = query;
-
- return this.makeRequest(requestOptions)
- .then((result) => this.responseProperty ? _.get(result, this.responseProperty, []) : result);
- }
-
- getDisplayValue(address) {
- return this.displayValueProperty ? _.get(address, this.displayValueProperty, '') : String(address);
- }
+ static get name() {
+ return 'address';
+ }
+
+ static get displayName() {
+ return 'Address';
+ }
+
+ constructor(options = {}) {
+ this.beforeMergeOptions(options);
+ this.options = _.merge({}, this.defaultOptions, options);
+ }
+
+ beforeMergeOptions() {
+ return;
+ }
+
+ get defaultOptions() {
+ return {};
+ }
+
+ get queryProperty() {
+ return 'query';
+ }
+
+ get responseProperty() {
+ return null;
+ }
+
+ get displayValueProperty() {
+ return null;
+ }
+
+ serialize(params) {
+ return _.toPairs(params)
+ .map(
+ ([key, value]) =>
+ `${encodeURIComponent(key)}=${encodeURIComponent(value)}`,
+ )
+ .join('&');
+ }
+
+ getRequestOptions(options = {}) {
+ return _.merge({}, this.options, options);
+ }
+
+ // eslint-disable-next-line no-unused-vars
+ getRequestUrl(options = {}) {
+ throw new Error(
+ 'Method AddressProvider#getRequestUrl(options) is abstract.',
+ );
+ }
+
+ makeRequest(options = {}) {
+ return Formio.makeStaticRequest(
+ this.getRequestUrl(options),
+ 'GET',
+ null,
+ {
+ noToken: true,
+ },
+ );
+ }
+
+ search(query, options = {}) {
+ const requestOptions = this.getRequestOptions(options);
+ const params = (requestOptions.params = requestOptions.params || {});
+ params[this.queryProperty] = query;
+
+ return this.makeRequest(requestOptions).then((result) =>
+ this.responseProperty
+ ? _.get(result, this.responseProperty, [])
+ : result,
+ );
+ }
+
+ getDisplayValue(address) {
+ return this.displayValueProperty
+ ? _.get(address, this.displayValueProperty, '')
+ : String(address);
+ }
}
diff --git a/src/providers/address/AzureAddressProvider.js b/src/providers/address/AzureAddressProvider.js
index a5edb697df..118b51a9c7 100644
--- a/src/providers/address/AzureAddressProvider.js
+++ b/src/providers/address/AzureAddressProvider.js
@@ -1,34 +1,36 @@
import { AddressProvider } from './AddressProvider';
export class AzureAddressProvider extends AddressProvider {
- static get name() {
- return 'azure';
- }
+ static get name() {
+ return 'azure';
+ }
- static get displayName() {
- return 'Azure Maps';
- }
+ static get displayName() {
+ return 'Azure Maps';
+ }
- get defaultOptions() {
- return {
- params: {
- 'api-version': '1.0',
- typeahead: 'true',
- },
- };
- }
+ get defaultOptions() {
+ return {
+ params: {
+ 'api-version': '1.0',
+ typeahead: 'true',
+ },
+ };
+ }
- get responseProperty() {
- return 'results';
- }
+ get responseProperty() {
+ return 'results';
+ }
- get displayValueProperty() {
- return 'address.freeformAddress';
- }
+ get displayValueProperty() {
+ return 'address.freeformAddress';
+ }
- getRequestUrl(options = {}) {
- const { params } = options;
+ getRequestUrl(options = {}) {
+ const { params } = options;
- return `https://atlas.microsoft.com/search/address/json?${this.serialize(params)}`;
- }
+ return `https://atlas.microsoft.com/search/address/json?${this.serialize(
+ params,
+ )}`;
+ }
}
diff --git a/src/providers/address/CustomAddressProvider.js b/src/providers/address/CustomAddressProvider.js
index 49b3d7d87f..89403ad048 100644
--- a/src/providers/address/CustomAddressProvider.js
+++ b/src/providers/address/CustomAddressProvider.js
@@ -1,29 +1,29 @@
import { AddressProvider } from './AddressProvider';
export class CustomAddressProvider extends AddressProvider {
- static get name() {
- return 'custom';
- }
+ static get name() {
+ return 'custom';
+ }
- static get displayName() {
- return 'Custom';
- }
+ static get displayName() {
+ return 'Custom';
+ }
- get queryProperty() {
- return this.options.queryProperty || super.queryProperty;
- }
+ get queryProperty() {
+ return this.options.queryProperty || super.queryProperty;
+ }
- get responseProperty() {
- return this.options.responseProperty || super.responseProperty;
- }
+ get responseProperty() {
+ return this.options.responseProperty || super.responseProperty;
+ }
- get displayValueProperty() {
- return this.options.displayValueProperty || super.displayValueProperty;
- }
+ get displayValueProperty() {
+ return this.options.displayValueProperty || super.displayValueProperty;
+ }
- getRequestUrl(options = {}) {
- const { params, url } = options;
+ getRequestUrl(options = {}) {
+ const { params, url } = options;
- return `${url}?${this.serialize(params)}`;
- }
+ return `${url}?${this.serialize(params)}`;
+ }
}
diff --git a/src/providers/address/GoogleAddressProvider.js b/src/providers/address/GoogleAddressProvider.js
index 38ec86f331..dd80ee0e05 100644
--- a/src/providers/address/GoogleAddressProvider.js
+++ b/src/providers/address/GoogleAddressProvider.js
@@ -4,138 +4,161 @@ import _ from 'lodash';
import { AddressProvider } from './AddressProvider';
export class GoogleAddressProvider extends AddressProvider {
- static get name() {
- return 'google';
- }
-
- static get displayName() {
- return 'Google Maps';
- }
-
- constructor(options = {}) {
- super(options);
- this.setAutocompleteOptions();
-
- let src = 'https://maps.googleapis.com/maps/api/js?v=quarterly&libraries=places&callback=googleMapsCallback';
-
- if (options.params?.key) {
- src += `&key=${options.params.key}`;
+ static get name() {
+ return 'google';
}
- Formio.requireLibrary(this.getLibraryName(), 'google.maps.places', src);
- }
+ static get displayName() {
+ return 'Google Maps';
+ }
- get displayValueProperty() {
- return 'formattedPlace';
- }
+ constructor(options = {}) {
+ super(options);
+ this.setAutocompleteOptions();
- get alternativeDisplayValueProperty() {
- return 'formatted_address';
- }
+ let src =
+ 'https://maps.googleapis.com/maps/api/js?v=quarterly&libraries=places&callback=googleMapsCallback';
- set autocompleteOptions(options) {
- this._autocompleteOptions = options;
- }
+ if (options.params?.key) {
+ src += `&key=${options.params.key}`;
+ }
- get autocompleteOptions() {
- return this._autocompleteOptions;
- }
+ Formio.requireLibrary(this.getLibraryName(), 'google.maps.places', src);
+ }
- setAutocompleteOptions() {
- let options = _.get(this.options, 'params.autocompleteOptions', {});
+ get displayValueProperty() {
+ return 'formattedPlace';
+ }
- if (!_.isObject(options)) {
- options = {};
+ get alternativeDisplayValueProperty() {
+ return 'formatted_address';
}
- this.addRequiredProviderOptions(options);
- this.autocompleteOptions = options;
- }
+ set autocompleteOptions(options) {
+ this._autocompleteOptions = options;
+ }
- beforeMergeOptions(options) {
- // providing support of old Google Provider option
- this.convertRegionToAutocompleteOption(options);
- }
+ get autocompleteOptions() {
+ return this._autocompleteOptions;
+ }
- getLibraryName() {
- return 'googleMaps';
- }
+ setAutocompleteOptions() {
+ let options = _.get(this.options, 'params.autocompleteOptions', {});
- convertRegionToAutocompleteOption(options) {
- const providerOptions = options;
- let region = _.get(providerOptions, 'params.region', '');
+ if (!_.isObject(options)) {
+ options = {};
+ }
- if (region && !_.has(options, 'params.autocompleteOptions')) {
- region = region.toUpperCase().trim();
- // providing compatibility with ISO 3166-1 Alpha-2 county codes (for checking compatibility https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)
- const countryCodes = { 'UK': 'GB' };
+ this.addRequiredProviderOptions(options);
+ this.autocompleteOptions = options;
+ }
- if (countryCodes[region]) {
- region = countryCodes[region];
- }
+ beforeMergeOptions(options) {
+ // providing support of old Google Provider option
+ this.convertRegionToAutocompleteOption(options);
+ }
- _.set(providerOptions, 'params.autocompleteOptions.componentRestrictions.country', [region]);
+ getLibraryName() {
+ return 'googleMaps';
}
- }
- getRequiredAddressProperties() {
- return ['address_components', 'formatted_address','geometry','place_id', 'plus_code', 'types'];
- }
+ convertRegionToAutocompleteOption(options) {
+ const providerOptions = options;
+ let region = _.get(providerOptions, 'params.region', '');
+
+ if (region && !_.has(options, 'params.autocompleteOptions')) {
+ region = region.toUpperCase().trim();
+ // providing compatibility with ISO 3166-1 Alpha-2 county codes (for checking compatibility https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)
+ const countryCodes = { UK: 'GB' };
- addRequiredProviderOptions(options) {
- const addressProperties = this.getRequiredAddressProperties();
+ if (countryCodes[region]) {
+ region = countryCodes[region];
+ }
- if (_.isArray(options.fields) && options.fields.length > 0 ) {
- options.fields.forEach(optionalField => {
- if (!addressProperties.some(addressProp => optionalField === addressProp)) {
- addressProperties.push(optionalField);
+ _.set(
+ providerOptions,
+ 'params.autocompleteOptions.componentRestrictions.country',
+ [region],
+ );
}
- });
}
- options.fields = addressProperties;
- }
- filterPlace(place) {
- place = place || {};
- const filteredPlace = {};
+ getRequiredAddressProperties() {
+ return [
+ 'address_components',
+ 'formatted_address',
+ 'geometry',
+ 'place_id',
+ 'plus_code',
+ 'types',
+ ];
+ }
- if (this.autocompleteOptions) {
- this.autocompleteOptions.fields.forEach(field => {
- if (place[field]) {
- filteredPlace[field] = place[field];
+ addRequiredProviderOptions(options) {
+ const addressProperties = this.getRequiredAddressProperties();
+
+ if (_.isArray(options.fields) && options.fields.length > 0) {
+ options.fields.forEach((optionalField) => {
+ if (
+ !addressProperties.some(
+ (addressProp) => optionalField === addressProp,
+ )
+ ) {
+ addressProperties.push(optionalField);
+ }
+ });
}
- });
+ options.fields = addressProperties;
}
- return filteredPlace;
- }
+ filterPlace(place) {
+ place = place || {};
+ const filteredPlace = {};
- attachAutocomplete(elem, index, onSelectAddress) {
- Formio.libraryReady(this.getLibraryName()).then(() => {
- const autocomplete = new google.maps.places.Autocomplete(elem, this.autocompleteOptions);
+ if (this.autocompleteOptions) {
+ this.autocompleteOptions.fields.forEach((field) => {
+ if (place[field]) {
+ filteredPlace[field] = place[field];
+ }
+ });
+ }
- autocomplete.addListener('place_changed', ()=>{
- const place = this.filterPlace(autocomplete.getPlace());
- place.formattedPlace = _.get(autocomplete, 'gm_accessors_.place.se.formattedPrediction', place[this.alternativeDisplayValueProperty]);
+ return filteredPlace;
+ }
- onSelectAddress(place, elem, index);
- });
- });
- }
+ attachAutocomplete(elem, index, onSelectAddress) {
+ Formio.libraryReady(this.getLibraryName()).then(() => {
+ const autocomplete = new google.maps.places.Autocomplete(
+ elem,
+ this.autocompleteOptions,
+ );
+
+ autocomplete.addListener('place_changed', () => {
+ const place = this.filterPlace(autocomplete.getPlace());
+ place.formattedPlace = _.get(
+ autocomplete,
+ 'gm_accessors_.place.se.formattedPrediction',
+ place[this.alternativeDisplayValueProperty],
+ );
+
+ onSelectAddress(place, elem, index);
+ });
+ });
+ }
- search() {
- return Promise.resolve();
- }
+ search() {
+ return Promise.resolve();
+ }
- makeRequest() {
- return Promise.resolve();
- }
+ makeRequest() {
+ return Promise.resolve();
+ }
- getDisplayValue(address) {
- const displayedProperty = _.has(address, this.displayValueProperty)
- ? this.displayValueProperty
- : this.alternativeDisplayValueProperty;
+ getDisplayValue(address) {
+ const displayedProperty = _.has(address, this.displayValueProperty)
+ ? this.displayValueProperty
+ : this.alternativeDisplayValueProperty;
- return _.get(address, displayedProperty, '');
- }
+ return _.get(address, displayedProperty, '');
+ }
}
diff --git a/src/providers/address/NominatimAddressProvider.js b/src/providers/address/NominatimAddressProvider.js
index 04a391fd56..00a639a890 100644
--- a/src/providers/address/NominatimAddressProvider.js
+++ b/src/providers/address/NominatimAddressProvider.js
@@ -1,34 +1,36 @@
import { AddressProvider } from './AddressProvider';
export class NominatimAddressProvider extends AddressProvider {
- static get name() {
- return 'nominatim';
- }
+ static get name() {
+ return 'nominatim';
+ }
- static get displayName() {
- return 'OpenStreetMap Nominatim';
- }
+ static get displayName() {
+ return 'OpenStreetMap Nominatim';
+ }
- get defaultOptions() {
- return {
- params: {
- addressdetails: '1',
- format: 'json',
- },
- };
- }
+ get defaultOptions() {
+ return {
+ params: {
+ addressdetails: '1',
+ format: 'json',
+ },
+ };
+ }
- get queryProperty() {
- return 'q';
- }
+ get queryProperty() {
+ return 'q';
+ }
- get displayValueProperty() {
- return 'display_name';
- }
+ get displayValueProperty() {
+ return 'display_name';
+ }
- getRequestUrl(options = {}) {
- const { params } = options;
+ getRequestUrl(options = {}) {
+ const { params } = options;
- return `https://nominatim.openstreetmap.org/search?${this.serialize(params)}`;
- }
+ return `https://nominatim.openstreetmap.org/search?${this.serialize(
+ params,
+ )}`;
+ }
}
diff --git a/src/providers/address/index.js b/src/providers/address/index.js
index dcc628600a..ad74dc4cee 100644
--- a/src/providers/address/index.js
+++ b/src/providers/address/index.js
@@ -4,8 +4,8 @@ import { GoogleAddressProvider } from './GoogleAddressProvider';
import { NominatimAddressProvider } from './NominatimAddressProvider';
export default {
- [AzureAddressProvider.name]: AzureAddressProvider,
- [CustomAddressProvider.name]: CustomAddressProvider,
- [GoogleAddressProvider.name]: GoogleAddressProvider,
- [NominatimAddressProvider.name]: NominatimAddressProvider,
+ [AzureAddressProvider.name]: AzureAddressProvider,
+ [CustomAddressProvider.name]: CustomAddressProvider,
+ [GoogleAddressProvider.name]: GoogleAddressProvider,
+ [NominatimAddressProvider.name]: NominatimAddressProvider,
};
diff --git a/src/providers/processor/fileProcessor.js b/src/providers/processor/fileProcessor.js
index 869f73151a..3dae22b707 100644
--- a/src/providers/processor/fileProcessor.js
+++ b/src/providers/processor/fileProcessor.js
@@ -1,47 +1,49 @@
const fileProcessor = (formio, config) => (file, options) =>
- new Promise((resolve, reject) => {
- const xhr = new XMLHttpRequest();
-
- // Fire on network error.
- xhr.onerror = (err) => {
- err.networkError = true;
- reject(err);
- };
-
- // Fire on network abort.
- xhr.onabort = (err) => {
- err.networkError = true;
- reject(err);
- };
-
- // Fired when the response has made it back from the server.
- xhr.onload = () => {
- if (xhr.status >= 200 && xhr.status < 300) {
- const mimetype = xhr.getResponseHeader('Content-Type') || file.type;
- resolve(new File([xhr.response], file.name, { type: mimetype }));
- }
- else {
- reject(xhr.response || 'Unable to process file');
- }
- };
-
- // Set the onabort error callback.
- xhr.onabort = reject;
-
- xhr.open('POST', config.url);
- const token = formio.getToken();
- if (token) {
- xhr.setRequestHeader('x-jwt-token', token);
- }
- xhr.responseType = 'arraybuffer';
-
- const data = new FormData();
- data.append('file', file);
- data.append('processorOptions', JSON.stringify(config.options || {}));
- data.append('options', JSON.stringify(options || {}));
-
- // Get the request and send it to the server.
- xhr.send(data);
- });
+ new Promise((resolve, reject) => {
+ const xhr = new XMLHttpRequest();
+
+ // Fire on network error.
+ xhr.onerror = (err) => {
+ err.networkError = true;
+ reject(err);
+ };
+
+ // Fire on network abort.
+ xhr.onabort = (err) => {
+ err.networkError = true;
+ reject(err);
+ };
+
+ // Fired when the response has made it back from the server.
+ xhr.onload = () => {
+ if (xhr.status >= 200 && xhr.status < 300) {
+ const mimetype =
+ xhr.getResponseHeader('Content-Type') || file.type;
+ resolve(
+ new File([xhr.response], file.name, { type: mimetype }),
+ );
+ } else {
+ reject(xhr.response || 'Unable to process file');
+ }
+ };
+
+ // Set the onabort error callback.
+ xhr.onabort = reject;
+
+ xhr.open('POST', config.url);
+ const token = formio.getToken();
+ if (token) {
+ xhr.setRequestHeader('x-jwt-token', token);
+ }
+ xhr.responseType = 'arraybuffer';
+
+ const data = new FormData();
+ data.append('file', file);
+ data.append('processorOptions', JSON.stringify(config.options || {}));
+ data.append('options', JSON.stringify(options || {}));
+
+ // Get the request and send it to the server.
+ xhr.send(data);
+ });
export default fileProcessor;
diff --git a/src/providers/storage/azure.js b/src/providers/storage/azure.js
index 46fd5fbfb7..f3f4e7e3a0 100644
--- a/src/providers/storage/azure.js
+++ b/src/providers/storage/azure.js
@@ -1,32 +1,60 @@
import XHR from './xhr';
function azure(formio) {
- return {
- uploadFile(file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, abortCallback) {
- return XHR.upload(formio, 'azure', (xhr, response) => {
- xhr.openAndSetHeaders('PUT', response.url);
- xhr.setRequestHeader('Content-Type', file.type);
- xhr.setRequestHeader('x-ms-blob-type', 'BlockBlob');
- return file;
- }, file, fileName, dir, progressCallback, groupPermissions, groupId, abortCallback).then((response) => {
- return {
- storage: 'azure',
- name: XHR.path([dir, fileName]),
- size: file.size,
- type: file.type,
- groupPermissions,
- groupId,
- key: response.key,
- };
- });
- },
- downloadFile(file) {
- return formio.makeRequest('file', `${formio.formUrl}/storage/azure?name=${XHR.trim(file.name)}`, 'GET');
- },
- deleteFile: function deleteFile(fileInfo) {
- var url = `${formio.formUrl}/storage/azure?name=${XHR.trim(fileInfo.name)}&key=${XHR.trim(fileInfo.key)}`;
- return formio.makeRequest('', url, 'delete');
- }
- };
+ return {
+ uploadFile(
+ file,
+ fileName,
+ dir,
+ progressCallback,
+ url,
+ options,
+ fileKey,
+ groupPermissions,
+ groupId,
+ abortCallback,
+ ) {
+ return XHR.upload(
+ formio,
+ 'azure',
+ (xhr, response) => {
+ xhr.openAndSetHeaders('PUT', response.url);
+ xhr.setRequestHeader('Content-Type', file.type);
+ xhr.setRequestHeader('x-ms-blob-type', 'BlockBlob');
+ return file;
+ },
+ file,
+ fileName,
+ dir,
+ progressCallback,
+ groupPermissions,
+ groupId,
+ abortCallback,
+ ).then((response) => {
+ return {
+ storage: 'azure',
+ name: XHR.path([dir, fileName]),
+ size: file.size,
+ type: file.type,
+ groupPermissions,
+ groupId,
+ key: response.key,
+ };
+ });
+ },
+ downloadFile(file) {
+ return formio.makeRequest(
+ 'file',
+ `${formio.formUrl}/storage/azure?name=${XHR.trim(file.name)}`,
+ 'GET',
+ );
+ },
+ deleteFile: function deleteFile(fileInfo) {
+ var url = `${formio.formUrl}/storage/azure?name=${XHR.trim(
+ fileInfo.name,
+ )}&key=${XHR.trim(fileInfo.key)}`;
+ return formio.makeRequest('', url, 'delete');
+ },
+ };
}
azure.title = 'Azure File Services';
diff --git a/src/providers/storage/base64.js b/src/providers/storage/base64.js
index c5fc7ab950..8bbc7029d1 100644
--- a/src/providers/storage/base64.js
+++ b/src/providers/storage/base64.js
@@ -1,34 +1,34 @@
function base64() {
- return {
- title: 'Base64',
- name: 'base64',
- uploadFile(file, fileName) {
- const reader = new FileReader();
+ return {
+ title: 'Base64',
+ name: 'base64',
+ uploadFile(file, fileName) {
+ const reader = new FileReader();
- return new Promise((resolve, reject) => {
- reader.onload = (event) => {
- const url = event.target.result;
- resolve({
- storage: 'base64',
- name: fileName,
- url: url,
- size: file.size,
- type: file.type,
- });
- };
+ return new Promise((resolve, reject) => {
+ reader.onload = (event) => {
+ const url = event.target.result;
+ resolve({
+ storage: 'base64',
+ name: fileName,
+ url: url,
+ size: file.size,
+ type: file.type,
+ });
+ };
- reader.onerror = () => {
- return reject(this);
- };
+ reader.onerror = () => {
+ return reject(this);
+ };
- reader.readAsDataURL(file);
- });
- },
- downloadFile(file) {
- // Return the original as there is nothing to do.
- return Promise.resolve(file);
- },
- };
+ reader.readAsDataURL(file);
+ });
+ },
+ downloadFile(file) {
+ // Return the original as there is nothing to do.
+ return Promise.resolve(file);
+ },
+ };
}
base64.title = 'Base64';
diff --git a/src/providers/storage/dropbox.js b/src/providers/storage/dropbox.js
index b1229fd674..5462f3ade3 100644
--- a/src/providers/storage/dropbox.js
+++ b/src/providers/storage/dropbox.js
@@ -1,66 +1,77 @@
import { setXhrHeaders } from './xhr';
function dropbox(formio) {
- return {
- uploadFile(file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, abortCallback) {
- return new Promise(((resolve, reject) => {
- // Send the file with data.
- const xhr = new XMLHttpRequest();
+ return {
+ uploadFile(
+ file,
+ fileName,
+ dir,
+ progressCallback,
+ url,
+ options,
+ fileKey,
+ groupPermissions,
+ groupId,
+ abortCallback,
+ ) {
+ return new Promise((resolve, reject) => {
+ // Send the file with data.
+ const xhr = new XMLHttpRequest();
- if (typeof progressCallback === 'function') {
- xhr.upload.onprogress = progressCallback;
- }
+ if (typeof progressCallback === 'function') {
+ xhr.upload.onprogress = progressCallback;
+ }
- if (typeof abortCallback === 'function') {
- abortCallback(() => xhr.abort());
- }
+ if (typeof abortCallback === 'function') {
+ abortCallback(() => xhr.abort());
+ }
- const fd = new FormData();
- fd.append('name', fileName);
- fd.append('dir', dir);
- fd.append('file', file);
+ const fd = new FormData();
+ fd.append('name', fileName);
+ fd.append('dir', dir);
+ fd.append('file', file);
- // Fire on network error.
- xhr.onerror = (err) => {
- err.networkError = true;
- reject(err);
- };
+ // Fire on network error.
+ xhr.onerror = (err) => {
+ err.networkError = true;
+ reject(err);
+ };
- xhr.onload = () => {
- if (xhr.status >= 200 && xhr.status < 300) {
- const response = JSON.parse(xhr.response);
- response.storage = 'dropbox';
- response.size = file.size;
- response.type = file.type;
- response.groupId = groupId;
- response.groupPermissions = groupPermissions;
- response.url = response.path_lower;
- resolve(response);
- }
- else {
- reject(xhr.response || 'Unable to upload file');
- }
- };
+ xhr.onload = () => {
+ if (xhr.status >= 200 && xhr.status < 300) {
+ const response = JSON.parse(xhr.response);
+ response.storage = 'dropbox';
+ response.size = file.size;
+ response.type = file.type;
+ response.groupId = groupId;
+ response.groupPermissions = groupPermissions;
+ response.url = response.path_lower;
+ resolve(response);
+ } else {
+ reject(xhr.response || 'Unable to upload file');
+ }
+ };
- xhr.onabort = reject;
+ xhr.onabort = reject;
- xhr.open('POST', `${formio.formUrl}/storage/dropbox`);
+ xhr.open('POST', `${formio.formUrl}/storage/dropbox`);
- setXhrHeaders(formio, xhr);
+ setXhrHeaders(formio, xhr);
- const token = formio.getToken();
- if (token) {
- xhr.setRequestHeader('x-jwt-token', token);
- }
- xhr.send(fd);
- }));
- },
- downloadFile(file) {
- const token = formio.getToken();
- file.url =
- `${formio.formUrl}/storage/dropbox?path_lower=${file.path_lower}${token ? `&x-jwt-token=${token}` : ''}`;
- return Promise.resolve(file);
- }
- };
+ const token = formio.getToken();
+ if (token) {
+ xhr.setRequestHeader('x-jwt-token', token);
+ }
+ xhr.send(fd);
+ });
+ },
+ downloadFile(file) {
+ const token = formio.getToken();
+ file.url = `${formio.formUrl}/storage/dropbox?path_lower=${
+ file.path_lower
+ }${token ? `&x-jwt-token=${token}` : ''}`;
+ return Promise.resolve(file);
+ },
+ };
}
dropbox.title = 'Dropbox';
diff --git a/src/providers/storage/googleDrive.js b/src/providers/storage/googleDrive.js
index 655d01b5cd..d5440bd550 100644
--- a/src/providers/storage/googleDrive.js
+++ b/src/providers/storage/googleDrive.js
@@ -1,69 +1,85 @@
import { setXhrHeaders } from './xhr';
function googledrive(formio) {
- return {
- uploadFile(file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, abortCallback) {
- return new Promise(((resolve, reject) => {
- // Send the file with data.
- const xhr = new XMLHttpRequest();
+ return {
+ uploadFile(
+ file,
+ fileName,
+ dir,
+ progressCallback,
+ url,
+ options,
+ fileKey,
+ groupPermissions,
+ groupId,
+ abortCallback,
+ ) {
+ return new Promise((resolve, reject) => {
+ // Send the file with data.
+ const xhr = new XMLHttpRequest();
- if (typeof progressCallback === 'function') {
- xhr.upload.onprogress = progressCallback;
- }
+ if (typeof progressCallback === 'function') {
+ xhr.upload.onprogress = progressCallback;
+ }
- if (typeof abortCallback === 'function') {
- abortCallback(() => xhr.abort());
- }
+ if (typeof abortCallback === 'function') {
+ abortCallback(() => xhr.abort());
+ }
- const fd = new FormData();
- fd.append('name', fileName);
- fd.append('dir', dir);
- fd.append('file', file);
+ const fd = new FormData();
+ fd.append('name', fileName);
+ fd.append('dir', dir);
+ fd.append('file', file);
- // Fire on network error.
- xhr.onerror = (err) => {
- err.networkError = true;
- reject(err);
- };
+ // Fire on network error.
+ xhr.onerror = (err) => {
+ err.networkError = true;
+ reject(err);
+ };
- xhr.onload = () => {
- if (xhr.status >= 200 && xhr.status < 300) {
- const response = JSON.parse(xhr.response);
- response.storage = 'googledrive';
- response.size = file.size;
- response.type = file.type;
- response.groupId = groupId;
- response.groupPermissions = groupPermissions;
- resolve(response);
- }
- else {
- reject(xhr.response || 'Unable to upload file');
- }
- };
+ xhr.onload = () => {
+ if (xhr.status >= 200 && xhr.status < 300) {
+ const response = JSON.parse(xhr.response);
+ response.storage = 'googledrive';
+ response.size = file.size;
+ response.type = file.type;
+ response.groupId = groupId;
+ response.groupPermissions = groupPermissions;
+ resolve(response);
+ } else {
+ reject(xhr.response || 'Unable to upload file');
+ }
+ };
- xhr.onabort = reject;
+ xhr.onabort = reject;
- xhr.open('POST', `${formio.formUrl}/storage/gdrive`);
+ xhr.open('POST', `${formio.formUrl}/storage/gdrive`);
- setXhrHeaders(formio, xhr);
+ setXhrHeaders(formio, xhr);
- const token = formio.getToken();
- if (token) {
- xhr.setRequestHeader('x-jwt-token', token);
- }
- xhr.send(fd);
- }));
- },
- downloadFile(file) {
- const token = formio.getToken();
- file.url =
- `${formio.formUrl}/storage/gdrive?fileId=${file.id}&fileName=${file.originalName}${token ? `&x-jwt-token=${token}` : ''}`;
- return Promise.resolve(file);
- },
- deleteFile: function deleteFile(fileInfo) {
- var url = ''.concat(formio.formUrl, `/storage/gdrive?id=${fileInfo.id}&name=${fileInfo.originalName}`);
- return formio.makeRequest('', url, 'delete');
- },
- };
+ const token = formio.getToken();
+ if (token) {
+ xhr.setRequestHeader('x-jwt-token', token);
+ }
+ xhr.send(fd);
+ });
+ },
+ downloadFile(file) {
+ const token = formio.getToken();
+ file.url = `${formio.formUrl}/storage/gdrive?fileId=${
+ file.id
+ }&fileName=${file.originalName}${
+ token ? `&x-jwt-token=${token}` : ''
+ }`;
+ return Promise.resolve(file);
+ },
+ deleteFile: function deleteFile(fileInfo) {
+ var url = ''.concat(
+ formio.formUrl,
+ `/storage/gdrive?id=${fileInfo.id}&name=${fileInfo.originalName}`,
+ );
+ return formio.makeRequest('', url, 'delete');
+ },
+ };
}
googledrive.title = 'Google Drive';
diff --git a/src/providers/storage/index.js b/src/providers/storage/index.js
index 47ce885382..5304d84882 100644
--- a/src/providers/storage/index.js
+++ b/src/providers/storage/index.js
@@ -6,10 +6,10 @@ import indexeddb from './indexeddb';
import googledrive from './googleDrive';
export default {
- base64,
- s3,
- url,
- azure,
- indexeddb,
- googledrive
+ base64,
+ s3,
+ url,
+ azure,
+ indexeddb,
+ googledrive,
};
diff --git a/src/providers/storage/indexeddb.js b/src/providers/storage/indexeddb.js
index 0fbf206799..3ce5410d2d 100644
--- a/src/providers/storage/indexeddb.js
+++ b/src/providers/storage/indexeddb.js
@@ -1,136 +1,157 @@
import { v4 as uuidv4 } from 'uuid';
function indexeddb() {
- return {
- title: 'indexedDB',
- name: 'indexeddb',
- uploadFile(file, fileName, dir, progressCallback, url, options) {
- if (!('indexedDB' in window)) {
- console.log('This browser doesn\'t support IndexedDB');
- return;
- }
-
- return new Promise((resolve) => {
- const request = indexedDB.open(options.indexeddb);
- request.onsuccess = function(event) {
- const db = event.target.result;
- resolve(db);
- };
- request.onupgradeneeded = function(e) {
- const db = e.target.result;
- db.createObjectStore(options.indexeddbTable);
- };
- }).then((db) => {
- const reader = new FileReader();
-
- return new Promise((resolve, reject) => {
- reader.onload = () => {
- const blobObject = new Blob([file], { type: file.type });
-
- const id = uuidv4(blobObject);
-
- const data = {
- id,
- data: blobObject,
- name: file.name,
- size: file.size,
- type: file.type,
- url,
- };
-
- const trans = db.transaction([options.indexeddbTable], 'readwrite');
- const addReq = trans.objectStore(options.indexeddbTable).put(data, id);
-
- addReq.onerror = function(e) {
- console.log('error storing data');
- console.error(e);
- };
-
- trans.oncomplete = function() {
- resolve({
- storage: 'indexeddb',
- name: file.name,
- size: file.size,
- type: file.type,
- url: url,
- id,
- });
- };
- };
-
- reader.onerror = () => {
- return reject(this);
- };
-
- reader.readAsDataURL(file);
- });
- });
- },
- downloadFile(file, options) {
- return new Promise((resolve) => {
- const request = indexedDB.open(options.indexeddb);
-
- request.onsuccess = function(event) {
- const db = event.target.result;
- resolve(db);
- };
- }).then((db) => {
- return new Promise((resolve, reject) => {
- const trans = db.transaction([options.indexeddbTable], 'readonly');
- const store = trans.objectStore(options.indexeddbTable).get(file.id);
- store.onsuccess = () => {
- trans.oncomplete = () => {
- const result = store.result;
- const dbFile = new File([store.result.data], file.name, {
- type: store.result.type,
- });
-
- const reader = new FileReader();
-
- reader.onload = (event) => {
- result.url = event.target.result;
- result.storage = file.storage;
- resolve(result);
- };
-
- reader.onerror = () => {
- return reject(this);
- };
-
- reader.readAsDataURL(dbFile);
- };
- };
- store.onerror = () => {
- return reject(this);
- };
- });
- });
- },
- deleteFile(file, options) {
- return new Promise((resolve) => {
- const request = indexedDB.open(options.indexeddb);
-
- request.onsuccess = function(event) {
- const db = event.target.result;
- resolve(db);
- };
- }).then((db) => {
- return new Promise((resolve, reject) => {
- const trans = db.transaction([options.indexeddbTable], 'readwrite');
- const store = trans.objectStore(options.indexeddbTable).delete(file.id);
- store.onsuccess = () => {
- trans.oncomplete = () => {
- const result = store.result;
-
- resolve(result);
- };
- };
- store.onerror = () => {
- return reject(this);
- };
- });
- });
- },
- };
+ return {
+ title: 'indexedDB',
+ name: 'indexeddb',
+ uploadFile(file, fileName, dir, progressCallback, url, options) {
+ if (!('indexedDB' in window)) {
+ console.log("This browser doesn't support IndexedDB");
+ return;
+ }
+
+ return new Promise((resolve) => {
+ const request = indexedDB.open(options.indexeddb);
+ request.onsuccess = function (event) {
+ const db = event.target.result;
+ resolve(db);
+ };
+ request.onupgradeneeded = function (e) {
+ const db = e.target.result;
+ db.createObjectStore(options.indexeddbTable);
+ };
+ }).then((db) => {
+ const reader = new FileReader();
+
+ return new Promise((resolve, reject) => {
+ reader.onload = () => {
+ const blobObject = new Blob([file], {
+ type: file.type,
+ });
+
+ const id = uuidv4(blobObject);
+
+ const data = {
+ id,
+ data: blobObject,
+ name: file.name,
+ size: file.size,
+ type: file.type,
+ url,
+ };
+
+ const trans = db.transaction(
+ [options.indexeddbTable],
+ 'readwrite',
+ );
+ const addReq = trans
+ .objectStore(options.indexeddbTable)
+ .put(data, id);
+
+ addReq.onerror = function (e) {
+ console.log('error storing data');
+ console.error(e);
+ };
+
+ trans.oncomplete = function () {
+ resolve({
+ storage: 'indexeddb',
+ name: file.name,
+ size: file.size,
+ type: file.type,
+ url: url,
+ id,
+ });
+ };
+ };
+
+ reader.onerror = () => {
+ return reject(this);
+ };
+
+ reader.readAsDataURL(file);
+ });
+ });
+ },
+ downloadFile(file, options) {
+ return new Promise((resolve) => {
+ const request = indexedDB.open(options.indexeddb);
+
+ request.onsuccess = function (event) {
+ const db = event.target.result;
+ resolve(db);
+ };
+ }).then((db) => {
+ return new Promise((resolve, reject) => {
+ const trans = db.transaction(
+ [options.indexeddbTable],
+ 'readonly',
+ );
+ const store = trans
+ .objectStore(options.indexeddbTable)
+ .get(file.id);
+ store.onsuccess = () => {
+ trans.oncomplete = () => {
+ const result = store.result;
+ const dbFile = new File(
+ [store.result.data],
+ file.name,
+ {
+ type: store.result.type,
+ },
+ );
+
+ const reader = new FileReader();
+
+ reader.onload = (event) => {
+ result.url = event.target.result;
+ result.storage = file.storage;
+ resolve(result);
+ };
+
+ reader.onerror = () => {
+ return reject(this);
+ };
+
+ reader.readAsDataURL(dbFile);
+ };
+ };
+ store.onerror = () => {
+ return reject(this);
+ };
+ });
+ });
+ },
+ deleteFile(file, options) {
+ return new Promise((resolve) => {
+ const request = indexedDB.open(options.indexeddb);
+
+ request.onsuccess = function (event) {
+ const db = event.target.result;
+ resolve(db);
+ };
+ }).then((db) => {
+ return new Promise((resolve, reject) => {
+ const trans = db.transaction(
+ [options.indexeddbTable],
+ 'readwrite',
+ );
+ const store = trans
+ .objectStore(options.indexeddbTable)
+ .delete(file.id);
+ store.onsuccess = () => {
+ trans.oncomplete = () => {
+ const result = store.result;
+
+ resolve(result);
+ };
+ };
+ store.onerror = () => {
+ return reject(this);
+ };
+ });
+ });
+ },
+ };
}
indexeddb.title = 'IndexedDB';
diff --git a/src/providers/storage/s3.js b/src/providers/storage/s3.js
index d5795b73e2..848390b7c8 100644
--- a/src/providers/storage/s3.js
+++ b/src/providers/storage/s3.js
@@ -1,163 +1,209 @@
import XHR from './xhr';
import { withRetries } from './util';
-const AbortController = window.AbortController || require('abortcontroller-polyfill/dist/cjs-ponyfill');
+const AbortController =
+ window.AbortController ||
+ require('abortcontroller-polyfill/dist/cjs-ponyfill');
function s3(formio) {
- return {
- async uploadFile(file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, abortCallback, multipartOptions) {
- const xhrCallback = async(xhr, response, abortCallback) => {
- response.data.fileName = fileName;
- response.data.key = XHR.path([response.data.key, dir, fileName]);
- if (response.signed) {
- if (multipartOptions && Array.isArray(response.signed)) {
- // patch abort callback
- const abortController = new AbortController();
- const abortSignal = abortController.signal;
- if (typeof abortCallback === 'function') {
- abortCallback(() => abortController.abort());
- }
- try {
- const parts = await this.uploadParts(
+ return {
+ async uploadFile(
+ file,
+ fileName,
+ dir,
+ progressCallback,
+ url,
+ options,
+ fileKey,
+ groupPermissions,
+ groupId,
+ abortCallback,
+ multipartOptions,
+ ) {
+ const xhrCallback = async (xhr, response, abortCallback) => {
+ response.data.fileName = fileName;
+ response.data.key = XHR.path([
+ response.data.key,
+ dir,
+ fileName,
+ ]);
+ if (response.signed) {
+ if (multipartOptions && Array.isArray(response.signed)) {
+ // patch abort callback
+ const abortController = new AbortController();
+ const abortSignal = abortController.signal;
+ if (typeof abortCallback === 'function') {
+ abortCallback(() => abortController.abort());
+ }
+ try {
+ const parts = await this.uploadParts(
+ file,
+ response.signed,
+ response.data.headers,
+ response.partSizeActual,
+ multipartOptions,
+ abortSignal,
+ );
+ await withRetries(
+ this.completeMultipartUpload,
+ [response, parts, multipartOptions],
+ 3,
+ );
+ return;
+ } catch (err) {
+ // abort in-progress fetch requests
+ abortController.abort();
+ // attempt to cancel the multipart upload
+ this.abortMultipartUpload(response);
+ throw err;
+ }
+ } else {
+ xhr.openAndSetHeaders('PUT', response.signed);
+ xhr.setRequestHeader('Content-Type', file.type);
+ if (response.data.headers) {
+ Object.keys(response.data.headers).forEach(
+ (key) => {
+ xhr.setRequestHeader(
+ key,
+ response.data.headers[key],
+ );
+ },
+ );
+ }
+ return file;
+ }
+ } else {
+ const fd = new FormData();
+ for (const key in response.data) {
+ fd.append(key, response.data[key]);
+ }
+ fd.append('file', file);
+ xhr.openAndSetHeaders('POST', response.url);
+ return fd;
+ }
+ };
+ const response = await XHR.upload(
+ formio,
+ 's3',
+ xhrCallback,
file,
- response.signed,
- response.data.headers,
- response.partSizeActual,
+ fileName,
+ dir,
+ progressCallback,
+ groupPermissions,
+ groupId,
+ abortCallback,
multipartOptions,
- abortSignal
- );
- await withRetries(this.completeMultipartUpload, [response, parts, multipartOptions], 3);
- return;
- }
- catch (err) {
- // abort in-progress fetch requests
- abortController.abort();
- // attempt to cancel the multipart upload
- this.abortMultipartUpload(response);
- throw err;
+ );
+ return {
+ storage: 's3',
+ name: fileName,
+ bucket: response.bucket,
+ key: response.data.key,
+ url: XHR.path([response.url, response.data.key]),
+ acl: response.data.acl,
+ size: file.size,
+ type: file.type,
+ };
+ },
+ async completeMultipartUpload(serverResponse, parts, multipart) {
+ const { changeMessage } = multipart;
+ changeMessage('Completing AWS S3 multipart upload...');
+ const token = formio.getToken();
+ const response = await fetch(
+ `${formio.formUrl}/storage/s3/multipart/complete`,
+ {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ ...(token ? { 'x-jwt-token': token } : {}),
+ },
+ body: JSON.stringify({
+ parts,
+ uploadId: serverResponse.uploadId,
+ key: serverResponse.key,
+ }),
+ },
+ );
+ const message = await response.text();
+ if (!response.ok) {
+ throw new Error(message);
}
- }
- else {
- xhr.openAndSetHeaders('PUT', response.signed);
- xhr.setRequestHeader('Content-Type', file.type);
- if (response.data.headers) {
- Object.keys(response.data.headers).forEach((key) => {
- xhr.setRequestHeader(key, response.data.headers[key]);
- });
+ // the AWS S3 SDK CompleteMultipartUpload command can return a HTTP 200 status header but still error;
+ // we need to parse, and according to AWS, to retry
+ if (message.match(/Error/)) {
+ throw new Error(message);
}
- return file;
- }
- }
- else {
- const fd = new FormData();
- for (const key in response.data) {
- fd.append(key, response.data[key]);
- }
- fd.append('file', file);
- xhr.openAndSetHeaders('POST', response.url);
- return fd;
- }
- };
- const response = await XHR.upload(
- formio,
- 's3',
- xhrCallback,
- file,
- fileName,
- dir,
- progressCallback,
- groupPermissions,
- groupId,
- abortCallback,
- multipartOptions
- );
- return {
- storage: 's3',
- name: fileName,
- bucket: response.bucket,
- key: response.data.key,
- url: XHR.path([response.url, response.data.key]),
- acl: response.data.acl,
- size: file.size,
- type: file.type
- };
- },
- async completeMultipartUpload(serverResponse, parts, multipart) {
- const { changeMessage } = multipart;
- changeMessage('Completing AWS S3 multipart upload...');
- const token = formio.getToken();
- const response = await fetch(`${formio.formUrl}/storage/s3/multipart/complete`, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- ...(token ? { 'x-jwt-token': token } : {})
},
- body: JSON.stringify({ parts, uploadId: serverResponse.uploadId, key: serverResponse.key })
- });
- const message = await response.text();
- if (!response.ok) {
- throw new Error(message);
- }
- // the AWS S3 SDK CompleteMultipartUpload command can return a HTTP 200 status header but still error;
- // we need to parse, and according to AWS, to retry
- if (message.match(/Error/)) {
- throw new Error(message);
- }
- },
- abortMultipartUpload(serverResponse) {
- const { uploadId, key } = serverResponse;
- const token = formio.getToken();
- fetch(`${formio.formUrl}/storage/s3/multipart/abort`, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- ...(token ? { 'x-jwt-token': token } : {})
+ abortMultipartUpload(serverResponse) {
+ const { uploadId, key } = serverResponse;
+ const token = formio.getToken();
+ fetch(`${formio.formUrl}/storage/s3/multipart/abort`, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ ...(token ? { 'x-jwt-token': token } : {}),
+ },
+ body: JSON.stringify({ uploadId, key }),
+ }).catch((err) =>
+ console.error('Error while aborting multipart upload:', err),
+ );
},
- body: JSON.stringify({ uploadId, key })
- }).catch((err) => console.error('Error while aborting multipart upload:', err));
- },
- uploadParts(file, urls, headers, partSize, multipart, abortSignal) {
- const { changeMessage, progressCallback } = multipart;
- changeMessage('Chunking and uploading parts to AWS S3...');
- const promises = [];
- for (let i = 0; i < urls.length; i++) {
- const start = i * partSize;
- const end = (i + 1) * partSize;
- const blob = i < urls.length ? file.slice(start, end) : file.slice(start);
- const promise = fetch(urls[i], {
- method: 'PUT',
- headers,
- body: blob,
- signal: abortSignal,
- }).then((res) => {
- if (res.ok) {
- progressCallback(urls.length);
- const eTag = res.headers.get('etag');
- if (!eTag) {
- throw new Error('ETag header not found; it must be exposed in S3 bucket CORS settings');
+ uploadParts(file, urls, headers, partSize, multipart, abortSignal) {
+ const { changeMessage, progressCallback } = multipart;
+ changeMessage('Chunking and uploading parts to AWS S3...');
+ const promises = [];
+ for (let i = 0; i < urls.length; i++) {
+ const start = i * partSize;
+ const end = (i + 1) * partSize;
+ const blob =
+ i < urls.length
+ ? file.slice(start, end)
+ : file.slice(start);
+ const promise = fetch(urls[i], {
+ method: 'PUT',
+ headers,
+ body: blob,
+ signal: abortSignal,
+ }).then((res) => {
+ if (res.ok) {
+ progressCallback(urls.length);
+ const eTag = res.headers.get('etag');
+ if (!eTag) {
+ throw new Error(
+ 'ETag header not found; it must be exposed in S3 bucket CORS settings',
+ );
+ }
+ return { ETag: eTag, PartNumber: i + 1 };
+ } else {
+ throw new Error(
+ `Part no ${i} failed with status ${res.status}`,
+ );
+ }
+ });
+ promises.push(promise);
}
- return { ETag: eTag, PartNumber: i + 1 };
- }
- else {
- throw new Error(`Part no ${i} failed with status ${res.status}`);
- }
- });
- promises.push(promise);
- }
- return Promise.all(promises);
- },
- downloadFile(file) {
- if (file.acl !== 'public-read') {
- return formio.makeRequest('file', `${formio.formUrl}/storage/s3?bucket=${XHR.trim(file.bucket)}&key=${XHR.trim(file.key)}`, 'GET');
- }
- else {
- return Promise.resolve(file);
- }
- },
- deleteFile(fileInfo) {
- const url = `${formio.formUrl}/storage/s3?bucket=${XHR.trim(fileInfo.bucket)}&key=${XHR.trim(fileInfo.key)}`;
- return formio.makeRequest('', url, 'delete');
- },
- };
+ return Promise.all(promises);
+ },
+ downloadFile(file) {
+ if (file.acl !== 'public-read') {
+ return formio.makeRequest(
+ 'file',
+ `${formio.formUrl}/storage/s3?bucket=${XHR.trim(
+ file.bucket,
+ )}&key=${XHR.trim(file.key)}`,
+ 'GET',
+ );
+ } else {
+ return Promise.resolve(file);
+ }
+ },
+ deleteFile(fileInfo) {
+ const url = `${formio.formUrl}/storage/s3?bucket=${XHR.trim(
+ fileInfo.bucket,
+ )}&key=${XHR.trim(fileInfo.key)}`;
+ return formio.makeRequest('', url, 'delete');
+ },
+ };
}
s3.title = 'S3';
diff --git a/src/providers/storage/s3.unit.js b/src/providers/storage/s3.unit.js
index f34f5817c7..46602678d5 100644
--- a/src/providers/storage/s3.unit.js
+++ b/src/providers/storage/s3.unit.js
@@ -5,76 +5,96 @@ import fetchMock from 'fetch-mock';
import S3 from './s3';
import { withRetries } from './util';
-describe('S3 Provider', function() {
- describe('Function Unit Tests', function() {
- it('withRetries should retry a given function three times, then throw the provided error', function(done) {
- function sleepAndReject(ms) {
- return new Promise((_, reject) => setTimeout(reject, ms));
- }
+describe('S3 Provider', function () {
+ describe('Function Unit Tests', function () {
+ it('withRetries should retry a given function three times, then throw the provided error', function (done) {
+ function sleepAndReject(ms) {
+ return new Promise((_, reject) => setTimeout(reject, ms));
+ }
- const spy = sinon.spy(sleepAndReject);
- withRetries(spy, [200], 3, 'Custom error message').catch((err) => {
- assert.equal(err.message, 'Custom error message');
- assert.equal(spy.callCount, 3);
- done();
- });
+ const spy = sinon.spy(sleepAndReject);
+ withRetries(spy, [200], 3, 'Custom error message').catch((err) => {
+ assert.equal(err.message, 'Custom error message');
+ assert.equal(spy.callCount, 3);
+ done();
+ });
+ });
});
- });
- describe('Provider Integration Tests', function() {
- describe('AWS S3 Multipart Uploads', function() {
- before('Mocks fetch', function() {
- fetchMock
- .post('https://fakeproject.form.io/fakeform/storage/s3', {
- signed: new Array(5).fill('https://fakebucketurl.aws.com/signed'),
- minio: false,
- url: 'https://fakebucketurl.aws.com',
- bucket: 'fakebucket',
- uploadId: 'fakeuploadid',
- key: 'test.jpg',
- partSizeActual: 1,
- data: {}
- })
- .put('https://fakebucketurl.aws.com/signed', { status: 200, headers: { 'Etag': 'fakeetag' } })
- .post('https://fakeproject.form.io/fakeform/storage/s3/multipart/complete', 200)
- .post('https://fakeproject.form.io/fakeform/storage/s3/multipart/abort', 200);
- });
+ describe('Provider Integration Tests', function () {
+ describe('AWS S3 Multipart Uploads', function () {
+ before('Mocks fetch', function () {
+ fetchMock
+ .post('https://fakeproject.form.io/fakeform/storage/s3', {
+ signed: new Array(5).fill(
+ 'https://fakebucketurl.aws.com/signed',
+ ),
+ minio: false,
+ url: 'https://fakebucketurl.aws.com',
+ bucket: 'fakebucket',
+ uploadId: 'fakeuploadid',
+ key: 'test.jpg',
+ partSizeActual: 1,
+ data: {},
+ })
+ .put('https://fakebucketurl.aws.com/signed', {
+ status: 200,
+ headers: { Etag: 'fakeetag' },
+ })
+ .post(
+ 'https://fakeproject.form.io/fakeform/storage/s3/multipart/complete',
+ 200,
+ )
+ .post(
+ 'https://fakeproject.form.io/fakeform/storage/s3/multipart/abort',
+ 200,
+ );
+ });
- it('Given an array of signed urls it should upload a file to S3 using multipart upload', function(done) {
- const mockFormio = {
- formUrl: 'https://fakeproject.form.io/fakeform',
- getToken: () => {}
- };
- const s3 = new S3(mockFormio);
- const uploadSpy = sinon.spy(s3, 'uploadParts');
- const completeSpy = sinon.spy(s3, 'completeMultipartUpload');
+ it('Given an array of signed urls it should upload a file to S3 using multipart upload', function (done) {
+ const mockFormio = {
+ formUrl: 'https://fakeproject.form.io/fakeform',
+ getToken: () => {},
+ };
+ const s3 = new S3(mockFormio);
+ const uploadSpy = sinon.spy(s3, 'uploadParts');
+ const completeSpy = sinon.spy(s3, 'completeMultipartUpload');
- const mockFile = new File(['test!'], 'test.jpg', { type: 'image/jpeg' });
- s3.uploadFile(
- mockFile,
- 'test.jpg',
- '',
- () => {},
- '',
- {},
- 'test.jpg',
- {},
- '',
- () => {},
- { partSize: 1, changeMessage: () => {}, progressCallback: () => {} }
- ).then((response) => {
- assert.equal(response.storage, 's3');
- assert.equal(response.name, 'test.jpg');
- assert.equal(response.bucket, 'fakebucket');
- assert.equal(response.url, 'https://fakebucketurl.aws.com/test.jpg');
- assert.equal(response.acl, undefined);
- assert.equal(response.size, 5);
- assert.equal(response.type, 'image/jpeg');
- assert.equal(uploadSpy.callCount, 1);
- assert.equal(completeSpy.callCount, 1);
- done();
+ const mockFile = new File(['test!'], 'test.jpg', {
+ type: 'image/jpeg',
+ });
+ s3.uploadFile(
+ mockFile,
+ 'test.jpg',
+ '',
+ () => {},
+ '',
+ {},
+ 'test.jpg',
+ {},
+ '',
+ () => {},
+ {
+ partSize: 1,
+ changeMessage: () => {},
+ progressCallback: () => {},
+ },
+ ).then((response) => {
+ assert.equal(response.storage, 's3');
+ assert.equal(response.name, 'test.jpg');
+ assert.equal(response.bucket, 'fakebucket');
+ assert.equal(
+ response.url,
+ 'https://fakebucketurl.aws.com/test.jpg',
+ );
+ assert.equal(response.acl, undefined);
+ assert.equal(response.size, 5);
+ assert.equal(response.type, 'image/jpeg');
+ assert.equal(uploadSpy.callCount, 1);
+ assert.equal(completeSpy.callCount, 1);
+ done();
+ });
+ });
});
- });
});
- });
});
diff --git a/src/providers/storage/uploadAdapter.js b/src/providers/storage/uploadAdapter.js
index b0e177cb5f..ad9557a974 100644
--- a/src/providers/storage/uploadAdapter.js
+++ b/src/providers/storage/uploadAdapter.js
@@ -4,61 +4,82 @@ import { uniqueName } from '../../utils/utils';
* UploadAdapter for CKEditor https://ckeditor.com/docs/ckeditor5/latest/framework/guides/deep-dive/upload-adapter.html
*/
class FormioUploadAdapter {
- constructor(loader, fileService, component) {
- this.loader = loader;
- this.fileService = fileService;
- this.component = component;
- }
+ constructor(loader, fileService, component) {
+ this.loader = loader;
+ this.fileService = fileService;
+ this.component = component;
+ }
- upload() {
- return this.loader.file
- .then(file => new Promise((resolve, reject) => {
- const { uploadStorage, uploadUrl, uploadOptions, uploadDir, fileKey } = this.component.component;
- const uploadParams = [
- uploadStorage,
- file,
- uniqueName(file.name),
- uploadDir || '', //should pass empty string if undefined
- (evt) => this.onUploadProgress(evt),
- uploadUrl,
- uploadOptions,
- fileKey,
- null,
- null
- ];
+ upload() {
+ return this.loader.file.then(
+ (file) =>
+ new Promise((resolve, reject) => {
+ const {
+ uploadStorage,
+ uploadUrl,
+ uploadOptions,
+ uploadDir,
+ fileKey,
+ } = this.component.component;
+ const uploadParams = [
+ uploadStorage,
+ file,
+ uniqueName(file.name),
+ uploadDir || '', //should pass empty string if undefined
+ (evt) => this.onUploadProgress(evt),
+ uploadUrl,
+ uploadOptions,
+ fileKey,
+ null,
+ null,
+ ];
- const uploadPromise = this.fileService.uploadFile(
- ...uploadParams,
- () => this.component.emit('fileUploadingStart', uploadPromise)
- ).then((result) => {
- return this.fileService.downloadFile(result);
- }).then((result) => {
- return resolve({
- default: result.url
- });
- }).catch((err) => {
- console.warn('An Error occured while uploading file', err);
- reject(err);
- }).finally(() => {
- this.component.emit('fileUploadingEnd', uploadPromise);
- });
- }));
- }
+ const uploadPromise = this.fileService
+ .uploadFile(...uploadParams, () =>
+ this.component.emit(
+ 'fileUploadingStart',
+ uploadPromise,
+ ),
+ )
+ .then((result) => {
+ return this.fileService.downloadFile(result);
+ })
+ .then((result) => {
+ return resolve({
+ default: result.url,
+ });
+ })
+ .catch((err) => {
+ console.warn(
+ 'An Error occured while uploading file',
+ err,
+ );
+ reject(err);
+ })
+ .finally(() => {
+ this.component.emit(
+ 'fileUploadingEnd',
+ uploadPromise,
+ );
+ });
+ }),
+ );
+ }
- abort() {}
+ abort() {}
- onUploadProgress(evt) {
- if (evt.lengthComputable) {
- this.loader.uploadTotal = evt.total;
- this.loader.uploaded = evt.loaded;
+ onUploadProgress(evt) {
+ if (evt.lengthComputable) {
+ this.loader.uploadTotal = evt.total;
+ this.loader.uploaded = evt.loaded;
+ }
}
- }
}
const getFormioUploadAdapterPlugin = (fileService, component) => (editor) => {
- editor.plugins.get('FileRepository').createUploadAdapter = (loader) => {
- return new FormioUploadAdapter(loader, fileService, component);
- };
+ editor.plugins.get('FileRepository').createUploadAdapter = (loader) => {
+ return new FormioUploadAdapter(loader, fileService, component);
+ };
};
export { getFormioUploadAdapterPlugin };
diff --git a/src/providers/storage/url.js b/src/providers/storage/url.js
index 39f3f3e7ff..f498239d8c 100644
--- a/src/providers/storage/url.js
+++ b/src/providers/storage/url.js
@@ -1,160 +1,199 @@
function url(formio) {
- function setOptions(options, xhr) {
- const parsedOptions = typeof options === 'string' ? JSON.parse(options) : options;
- for (const prop in parsedOptions) {
- if (prop === 'headers') {
- const headers = parsedOptions['headers'];
- for (const header in headers) {
- xhr.setRequestHeader(header, headers[header]);
+ function setOptions(options, xhr) {
+ const parsedOptions =
+ typeof options === 'string' ? JSON.parse(options) : options;
+ for (const prop in parsedOptions) {
+ if (prop === 'headers') {
+ const headers = parsedOptions['headers'];
+ for (const header in headers) {
+ xhr.setRequestHeader(header, headers[header]);
+ }
+ } else {
+ xhr[prop] = parsedOptions[prop];
+ }
}
- }
- else {
- xhr[prop] = parsedOptions[prop];
- }
}
- }
- const xhrRequest = (url, name, query, data, options, progressCallback, abortCallback) => {
- return new Promise((resolve, reject) => {
- const xhr = new XMLHttpRequest();
- const json = (typeof data === 'string');
- const fd = new FormData();
+ const xhrRequest = (
+ url,
+ name,
+ query,
+ data,
+ options,
+ progressCallback,
+ abortCallback,
+ ) => {
+ return new Promise((resolve, reject) => {
+ const xhr = new XMLHttpRequest();
+ const json = typeof data === 'string';
+ const fd = new FormData();
- if (typeof progressCallback === 'function') {
- xhr.upload.onprogress = progressCallback;
- }
+ if (typeof progressCallback === 'function') {
+ xhr.upload.onprogress = progressCallback;
+ }
- if (typeof abortCallback === 'function') {
- abortCallback(() => xhr.abort());
- }
+ if (typeof abortCallback === 'function') {
+ abortCallback(() => xhr.abort());
+ }
- if (!json) {
- for (const key in data) {
- fd.append(key, data[key]);
- }
- }
+ if (!json) {
+ for (const key in data) {
+ fd.append(key, data[key]);
+ }
+ }
- xhr.onload = () => {
- if (xhr.status >= 200 && xhr.status < 300) {
- // Need to test if xhr.response is decoded or not.
- let respData = {};
- try {
- respData = (typeof xhr.response === 'string') ? JSON.parse(xhr.response) : {};
- respData = (respData && respData.data) ? respData.data : respData;
- }
- catch (err) {
- respData = {};
- }
+ xhr.onload = () => {
+ if (xhr.status >= 200 && xhr.status < 300) {
+ // Need to test if xhr.response is decoded or not.
+ let respData = {};
+ try {
+ respData =
+ typeof xhr.response === 'string'
+ ? JSON.parse(xhr.response)
+ : {};
+ respData =
+ respData && respData.data
+ ? respData.data
+ : respData;
+ } catch (err) {
+ respData = {};
+ }
- // Get the url of the file.
- let respUrl = Object.prototype.hasOwnProperty.call(respData, 'url') ? respData.url : `${xhr.responseURL}/${name}`;
+ // Get the url of the file.
+ let respUrl = Object.prototype.hasOwnProperty.call(
+ respData,
+ 'url',
+ )
+ ? respData.url
+ : `${xhr.responseURL}/${name}`;
- // If they provide relative url, then prepend the url.
- if (respUrl && respUrl[0] === '/') {
- respUrl = `${url}${respUrl}`;
- }
- resolve({ url: respUrl, data: respData });
- }
- else {
- reject(xhr.response || 'Unable to upload file');
- }
- };
+ // If they provide relative url, then prepend the url.
+ if (respUrl && respUrl[0] === '/') {
+ respUrl = `${url}${respUrl}`;
+ }
+ resolve({ url: respUrl, data: respData });
+ } else {
+ reject(xhr.response || 'Unable to upload file');
+ }
+ };
- xhr.onerror = () => reject(xhr);
- xhr.onabort = () => reject(xhr);
+ xhr.onerror = () => reject(xhr);
+ xhr.onabort = () => reject(xhr);
- let requestUrl = url + (url.indexOf('?') > -1 ? '&' : '?');
- for (const key in query) {
- requestUrl += `${key}=${query[key]}&`;
- }
- if (requestUrl[requestUrl.length - 1] === '&') {
- requestUrl = requestUrl.substr(0, requestUrl.length - 1);
- }
+ let requestUrl = url + (url.indexOf('?') > -1 ? '&' : '?');
+ for (const key in query) {
+ requestUrl += `${key}=${query[key]}&`;
+ }
+ if (requestUrl[requestUrl.length - 1] === '&') {
+ requestUrl = requestUrl.substr(0, requestUrl.length - 1);
+ }
- xhr.open('POST', requestUrl);
- if (json) {
- xhr.setRequestHeader('Content-Type', 'application/json');
- }
- const token = formio.getToken();
- if (token) {
- xhr.setRequestHeader('x-jwt-token', token);
- }
+ xhr.open('POST', requestUrl);
+ if (json) {
+ xhr.setRequestHeader('Content-Type', 'application/json');
+ }
+ const token = formio.getToken();
+ if (token) {
+ xhr.setRequestHeader('x-jwt-token', token);
+ }
- //Overrides previous request props
- if (options) {
- setOptions(options, xhr);
- }
- xhr.send(json ? data : fd);
- });
- };
+ //Overrides previous request props
+ if (options) {
+ setOptions(options, xhr);
+ }
+ xhr.send(json ? data : fd);
+ });
+ };
- return {
- title: 'Url',
- name: 'url',
- uploadFile(file, name, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, abortCallback) {
- const uploadRequest = function(form) {
- return xhrRequest(url, name, {
- baseUrl: encodeURIComponent(formio.projectUrl),
- project: form ? form.project : '',
- form: form ? form._id : ''
- }, {
- [fileKey]:file,
- name,
- dir
- }, options, progressCallback, abortCallback).then(response => {
- // Store the project and form url along with the metadata.
- response.data = response.data || {};
- response.data.baseUrl = formio.projectUrl;
- response.data.project = form ? form.project : '';
- response.data.form = form ? form._id : '';
- return {
- storage: 'url',
+ return {
+ title: 'Url',
+ name: 'url',
+ uploadFile(
+ file,
name,
- url: response.url,
- size: file.size,
- type: file.type,
- data: response.data
- };
- });
- };
- if (file.private && formio.formId) {
- return formio.loadForm().then((form) => uploadRequest(form));
- }
- else {
- return uploadRequest();
- }
- },
- deleteFile(fileInfo, options) {
- return new Promise((resolve, reject) => {
- const xhr = new XMLHttpRequest();
- xhr.open('DELETE', fileInfo.url, true);
- xhr.onload = () => {
- if (xhr.status >= 200 && xhr.status < 300) {
- resolve('File deleted');
- }
- else {
- reject(xhr.response || 'Unable to delete file');
- }
- };
- if (options) {
- setOptions(options, xhr);
- }
- xhr.send(null);
- });
- },
+ dir,
+ progressCallback,
+ url,
+ options,
+ fileKey,
+ groupPermissions,
+ groupId,
+ abortCallback,
+ ) {
+ const uploadRequest = function (form) {
+ return xhrRequest(
+ url,
+ name,
+ {
+ baseUrl: encodeURIComponent(formio.projectUrl),
+ project: form ? form.project : '',
+ form: form ? form._id : '',
+ },
+ {
+ [fileKey]: file,
+ name,
+ dir,
+ },
+ options,
+ progressCallback,
+ abortCallback,
+ ).then((response) => {
+ // Store the project and form url along with the metadata.
+ response.data = response.data || {};
+ response.data.baseUrl = formio.projectUrl;
+ response.data.project = form ? form.project : '';
+ response.data.form = form ? form._id : '';
+ return {
+ storage: 'url',
+ name,
+ url: response.url,
+ size: file.size,
+ type: file.type,
+ data: response.data,
+ };
+ });
+ };
+ if (file.private && formio.formId) {
+ return formio.loadForm().then((form) => uploadRequest(form));
+ } else {
+ return uploadRequest();
+ }
+ },
+ deleteFile(fileInfo, options) {
+ return new Promise((resolve, reject) => {
+ const xhr = new XMLHttpRequest();
+ xhr.open('DELETE', fileInfo.url, true);
+ xhr.onload = () => {
+ if (xhr.status >= 200 && xhr.status < 300) {
+ resolve('File deleted');
+ } else {
+ reject(xhr.response || 'Unable to delete file');
+ }
+ };
+ if (options) {
+ setOptions(options, xhr);
+ }
+ xhr.send(null);
+ });
+ },
- downloadFile(file) {
- if (file.private) {
- if (formio.submissionId && file.data) {
- file.data.submission = formio.submissionId;
- }
- return xhrRequest(file.url, file.name, {}, JSON.stringify(file)).then(response => response.data);
- }
+ downloadFile(file) {
+ if (file.private) {
+ if (formio.submissionId && file.data) {
+ file.data.submission = formio.submissionId;
+ }
+ return xhrRequest(
+ file.url,
+ file.name,
+ {},
+ JSON.stringify(file),
+ ).then((response) => response.data);
+ }
- // Return the original as there is nothing to do.
- return Promise.resolve(file);
- }
- };
+ // Return the original as there is nothing to do.
+ return Promise.resolve(file);
+ },
+ };
}
url.title = 'Url';
diff --git a/src/providers/storage/util.js b/src/providers/storage/util.js
index f84101648f..2ca52ee33b 100644
--- a/src/providers/storage/util.js
+++ b/src/providers/storage/util.js
@@ -1,6 +1,6 @@
export async function withRetries(fn, args, retries = 3, err = null) {
- if (!retries) {
- throw new Error(err);
- }
- return fn(...args).catch(() => withRetries(fn, args, retries - 1, err));
+ if (!retries) {
+ throw new Error(err);
+ }
+ return fn(...args).catch(() => withRetries(fn, args, retries - 1, err));
}
diff --git a/src/providers/storage/xhr.js b/src/providers/storage/xhr.js
index cb15e70299..bac50a4d19 100644
--- a/src/providers/storage/xhr.js
+++ b/src/providers/storage/xhr.js
@@ -1,121 +1,147 @@
import _trim from 'lodash/trim';
export const setXhrHeaders = (formio, xhr) => {
- const { headers } = formio.options;
- if (headers) {
- const ValidHeaders = {
- 'Content-Disposition': true,
- 'Authorization': true,
- };
+ const { headers } = formio.options;
+ if (headers) {
+ const ValidHeaders = {
+ 'Content-Disposition': true,
+ Authorization: true,
+ };
- for (const header in headers) {
- if (ValidHeaders[header]) {
- xhr.setRequestHeader(header, headers[header]);
- }
+ for (const header in headers) {
+ if (ValidHeaders[header]) {
+ xhr.setRequestHeader(header, headers[header]);
+ }
+ }
}
- }
};
const XHR = {
- trim(text) {
- return _trim(text, '/');
- },
- path(items) {
- return items.filter(item => !!item).map(XHR.trim).join('/');
- },
- async upload(formio, type, xhrCallback, file, fileName, dir, progressCallback, groupPermissions, groupId, abortCallback, multipartOptions) {
- // make request to Form.io server
- const token = formio.getToken();
- let response;
- try {
- response = await fetch(`${formio.formUrl}/storage/${type}`, {
- method: 'POST',
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json; charset=UTF-8',
- ...(token ? { 'x-jwt-token': token } : {}),
- },
- body: JSON.stringify({
- name: XHR.path([dir, fileName]),
- size: file.size,
- type: file.type,
- groupPermissions,
- groupId,
- multipart: multipartOptions
- })
- });
- }
- catch (err) {
- // only throws on network errors
- err.networkError = true;
- throw err;
- }
- if (!response.ok) {
- if (response.status === 504) {
- const error = new Error('Network request failed');
- error.networkError = true;
- throw error;
- }
+ trim(text) {
+ return _trim(text, '/');
+ },
+ path(items) {
+ return items
+ .filter((item) => !!item)
+ .map(XHR.trim)
+ .join('/');
+ },
+ async upload(
+ formio,
+ type,
+ xhrCallback,
+ file,
+ fileName,
+ dir,
+ progressCallback,
+ groupPermissions,
+ groupId,
+ abortCallback,
+ multipartOptions,
+ ) {
+ // make request to Form.io server
+ const token = formio.getToken();
+ let response;
+ try {
+ response = await fetch(`${formio.formUrl}/storage/${type}`, {
+ method: 'POST',
+ headers: {
+ Accept: 'application/json',
+ 'Content-Type': 'application/json; charset=UTF-8',
+ ...(token ? { 'x-jwt-token': token } : {}),
+ },
+ body: JSON.stringify({
+ name: XHR.path([dir, fileName]),
+ size: file.size,
+ type: file.type,
+ groupPermissions,
+ groupId,
+ multipart: multipartOptions,
+ }),
+ });
+ } catch (err) {
+ // only throws on network errors
+ err.networkError = true;
+ throw err;
+ }
+ if (!response.ok) {
+ if (response.status === 504) {
+ const error = new Error('Network request failed');
+ error.networkError = true;
+ throw error;
+ }
- const message = await response.text();
- throw new Error(message || 'Unable to sign file.');
- }
- const serverResponse = await response.json();
- return await XHR.makeXhrRequest(formio, xhrCallback, serverResponse, progressCallback, abortCallback);
- },
- makeXhrRequest(formio, xhrCallback, serverResponse, progressCallback, abortCallback) {
- return new Promise((resolve, reject) => {
- // Send the file with data.
- const xhr = new XMLHttpRequest();
- xhr.openAndSetHeaders = (...params) => {
- xhr.open(...params);
- setXhrHeaders(formio, xhr);
- };
- Promise.resolve(xhrCallback(xhr, serverResponse, abortCallback)).then((payload) => {
- // if payload is nullish we can assume the provider took care of the entire upload process
- if (!payload) {
- return resolve(serverResponse);
+ const message = await response.text();
+ throw new Error(message || 'Unable to sign file.');
}
- // Fire on network error.
- xhr.onerror = (err) => {
- err.networkError = true;
- reject(err);
- };
+ const serverResponse = await response.json();
+ return await XHR.makeXhrRequest(
+ formio,
+ xhrCallback,
+ serverResponse,
+ progressCallback,
+ abortCallback,
+ );
+ },
+ makeXhrRequest(
+ formio,
+ xhrCallback,
+ serverResponse,
+ progressCallback,
+ abortCallback,
+ ) {
+ return new Promise((resolve, reject) => {
+ // Send the file with data.
+ const xhr = new XMLHttpRequest();
+ xhr.openAndSetHeaders = (...params) => {
+ xhr.open(...params);
+ setXhrHeaders(formio, xhr);
+ };
+ Promise.resolve(xhrCallback(xhr, serverResponse, abortCallback))
+ .then((payload) => {
+ // if payload is nullish we can assume the provider took care of the entire upload process
+ if (!payload) {
+ return resolve(serverResponse);
+ }
+ // Fire on network error.
+ xhr.onerror = (err) => {
+ err.networkError = true;
+ reject(err);
+ };
- // Fire on network abort.
- xhr.onabort = (err) => {
- err.networkError = true;
- reject(err);
- };
+ // Fire on network abort.
+ xhr.onabort = (err) => {
+ err.networkError = true;
+ reject(err);
+ };
- // Set the onabort error callback.
- xhr.onabort = reject;
+ // Set the onabort error callback.
+ xhr.onabort = reject;
- if (typeof progressCallback === 'function') {
- xhr.upload.onprogress = progressCallback;
- }
+ if (typeof progressCallback === 'function') {
+ xhr.upload.onprogress = progressCallback;
+ }
- if (typeof abortCallback === 'function') {
- abortCallback(() => xhr.abort());
- }
- // Fired when the response has made it back from the server.
- xhr.onload = () => {
- if (xhr.status >= 200 && xhr.status < 300) {
- resolve(serverResponse);
- }
- else if (xhr.status === 504) {
- const error = new Error('Network request failed');
- error.networkError = true;
- reject(error);
- }
- else {
- reject(xhr.response || 'Unable to upload file');
- }
- };
+ if (typeof abortCallback === 'function') {
+ abortCallback(() => xhr.abort());
+ }
+ // Fired when the response has made it back from the server.
+ xhr.onload = () => {
+ if (xhr.status >= 200 && xhr.status < 300) {
+ resolve(serverResponse);
+ } else if (xhr.status === 504) {
+ const error = new Error('Network request failed');
+ error.networkError = true;
+ reject(error);
+ } else {
+ reject(xhr.response || 'Unable to upload file');
+ }
+ };
- // Get the request and send it to the server.
- xhr.send(payload);
- }).catch(reject);
- });
- }
+ // Get the request and send it to the server.
+ xhr.send(payload);
+ })
+ .catch(reject);
+ });
+ },
};
export default XHR;
diff --git a/src/sass/formio.embed.scss b/src/sass/formio.embed.scss
index 54c1fd832c..174531dfa7 100644
--- a/src/sass/formio.embed.scss
+++ b/src/sass/formio.embed.scss
@@ -2,19 +2,19 @@
position: relative;
min-height: 100px;
}
-
+
.loader-wrapper {
z-index: 1000;
- position:absolute;
+ position: absolute;
top: 0px;
left: 0px;
bottom: 0px;
right: 0px;
- background-color:rgba(0, 0, 0, 0);
+ background-color: rgba(0, 0, 0, 0);
}
.loader {
- position:absolute;
+ position: absolute;
left: 50%;
top: 50%;
margin-left: -30px;
@@ -40,6 +40,10 @@
}
@keyframes spin {
- 0% { transform: rotate(0deg); }
- 100% { transform: rotate(360deg); }
-}
\ No newline at end of file
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(360deg);
+ }
+}
diff --git a/src/sass/formio.form.builder.scss b/src/sass/formio.form.builder.scss
index 7ae7b97bc6..d91e816ab6 100644
--- a/src/sass/formio.form.builder.scss
+++ b/src/sass/formio.form.builder.scss
@@ -1,16 +1,15 @@
-
.formbuilder {
- position: relative;
+ position: relative;
}
.drag-container {
- padding: 10px;
- border: dotted 2px #e8e8e8;
+ padding: 10px;
+ border: dotted 2px #e8e8e8;
}
.drag-container:hover {
- cursor: move;
- border: dotted 2px #ccc;
+ cursor: move;
+ border: dotted 2px #ccc;
}
.drag-container.formio-builder-form,
@@ -19,229 +18,231 @@
.panel-body > .drag-container.formio-builder-components:hover,
.tab-pane > .drag-container.formio-builder-components,
.tab-pane > .drag-container.formio-builder-components:hover {
- padding: 0 0 1rem 0;
- border: none;
+ padding: 0 0 1rem 0;
+ border: none;
}
.component-btn-group {
- display: flex;
- flex-direction: row-reverse;
- position: absolute;
- right: 0;
- z-index: 1000;
- margin-top: -2px;
+ display: flex;
+ flex-direction: row-reverse;
+ position: absolute;
+ right: 0;
+ z-index: 1000;
+ margin-top: -2px;
}
.builder-component {
- position: relative;
- min-height: 15px;
- margin-bottom: 15px;
- .formio-component-htmlelement {
- border: dotted 2px #e8e8e8;
- [ref=html]:empty:before {
- content: 'HTML Content';
- color: #aaa;
+ position: relative;
+ min-height: 15px;
+ margin-bottom: 15px;
+ .formio-component-htmlelement {
+ border: dotted 2px #e8e8e8;
+ [ref='html']:empty:before {
+ content: 'HTML Content';
+ color: #aaa;
+ }
}
- }
}
.builder-component:not(:hover) .component-btn-group {
- display: none;
+ display: none;
}
.builder-group-button {
- background-color: transparent;
- white-space: normal;
- text-align: left;
+ background-color: transparent;
+ white-space: normal;
+ text-align: left;
}
.form-builder-group-header {
- padding: 0;
+ padding: 0;
}
.component-btn-group .component-settings-button {
- float: right;
- z-index: 1001;
- margin: 4px 4px 0 0;
- z-index: 1001;
- -webkit-box-shadow: 0px 0px 10px 1px rgba(48,113,169,0.6);
- -moz-box-shadow: 0px 0px 10px 1px rgba(48,113,169,0.6);
- box-shadow: 0px 0px 10px 1px rgba(48,113,169,0.6);
+ float: right;
+ z-index: 1001;
+ margin: 4px 4px 0 0;
+ z-index: 1001;
+ -webkit-box-shadow: 0px 0px 10px 1px rgba(48, 113, 169, 0.6);
+ -moz-box-shadow: 0px 0px 10px 1px rgba(48, 113, 169, 0.6);
+ box-shadow: 0px 0px 10px 1px rgba(48, 113, 169, 0.6);
}
.formbuilder .formio-component-hidden,
.formbuilder .formio-component-content,
.formbuilder .formio-component-form,
.formbuilder .formio-component-datasource {
- border: 2px dashed #ddd;
+ border: 2px dashed #ddd;
}
.formbuilder .formio-component-form,
.formbuilder .formio-component-hidden,
.formbuilder .formio-component-datasource {
- min-height: 3em;
- text-align: center;
- color: #aaa;
- padding-top: 0.5em;
+ min-height: 3em;
+ text-align: center;
+ color: #aaa;
+ padding-top: 0.5em;
}
-.btn-xxs, .btn-group-xxs > .btn, .component-btn-group .component-settings-button {
- padding: 2px 2px;
- font-size: 10px;
- line-height: 1.2em;
- border-radius: 0;
- width: 18px;
- height: 18px;
+.btn-xxs,
+.btn-group-xxs > .btn,
+.component-btn-group .component-settings-button {
+ padding: 2px 2px;
+ font-size: 10px;
+ line-height: 1.2em;
+ border-radius: 0;
+ width: 18px;
+ height: 18px;
}
.formcomponents .formcomponent {
- text-align: left;
- padding: 5px 5px 5px 8px;
- margin-top: 0.2rem;
- font-size: 0.8em;
- line-height: 1.2;
- border-radius: 0.3em;
+ text-align: left;
+ padding: 5px 5px 5px 8px;
+ margin-top: 0.2rem;
+ font-size: 0.8em;
+ line-height: 1.2;
+ border-radius: 0.3em;
}
.form-builder-panel .panel-body {
- padding: 5px;
+ padding: 5px;
}
.formio-component-tabs .ui.tabular.menu .item {
- padding: 0.8em;
+ padding: 0.8em;
}
.formio-pdf-builder {
- position:relative;
+ position: relative;
}
.formio-drop-zone {
- display: none;
- position: absolute;
- z-index:10;
- background-color: #0d87e9;
- opacity: 0.1;
+ display: none;
+ position: absolute;
+ z-index: 10;
+ background-color: #0d87e9;
+ opacity: 0.1;
}
.formio-drop-zone.enabled {
- display: inherit;
+ display: inherit;
}
.component-settings .formio-dialog-content {
- max-height: 100%;
- .ck-editor__editable ol {
- padding-inline-start: 40px;
- }
+ max-height: 100%;
+ .ck-editor__editable ol {
+ padding-inline-start: 40px;
+ }
}
.component-btn-group .btn.component-settings-button-paste {
- display: none;
+ display: none;
}
.builder-paste-mode .component-settings-button-paste {
- display: inherit !important;
+ display: inherit !important;
}
.wizard-page-label {
- cursor: pointer;
- border-radius: 0;
+ cursor: pointer;
+ border-radius: 0;
}
.panel-body .drag-and-drop-alert {
- margin-bottom: 0;
+ margin-bottom: 0;
}
.builder-sidebar {
- &_scroll {
- position: sticky;
- top: 15px;
- max-height: 100vh;
- overflow-y: auto;
- }
+ &_scroll {
+ position: sticky;
+ top: 15px;
+ max-height: 100vh;
+ overflow-y: auto;
+ }
}
.builder-sidebar_search {
- margin-bottom: 10px;
- appearance: auto;
+ margin-bottom: 10px;
+ appearance: auto;
}
.formio-wizard-builder-component-title {
- color:#6c757d;
- text-align:center;
- padding: 0.5rem;
+ color: #6c757d;
+ text-align: center;
+ padding: 0.5rem;
}
.formio-wizard-position {
- position: relative;
+ position: relative;
}
.gu-mirror {
- list-style-type: none;
+ list-style-type: none;
}
.formio-settings-help {
- color: #8a6d3b;
- background-color: #fcf8e3;
- border-color: #faebcc;
- margin-top: 10px;
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+ margin-top: 10px;
}
.help-block {
- margin: 0px;
+ margin: 0px;
}
.builder-sidebar .btn {
- white-space: normal;
+ white-space: normal;
}
/* Styles for component edit modal */
.component-settings {
- padding-top: 20px !important;
- padding-bottom: 20px !important;
+ padding-top: 20px !important;
+ padding-bottom: 20px !important;
}
.component-edit-container {
- height: auto;
- overflow: hidden;
+ height: auto;
+ overflow: hidden;
}
.component-edit-content {
- height: calc(100% - 4em);
+ height: calc(100% - 4em);
}
.component-edit-tabs.col-sm-6 {
- min-height: 87vh;
- height: 100%;
+ min-height: 87vh;
+ height: 100%;
}
.component-edit-tabs.col-sm-12 {
- height: calc(100% - 4em);
- overflow-y: auto;
+ height: calc(100% - 4em);
+ overflow-y: auto;
}
.component-edit-tabs.col-sm-12 .editForm {
- height: calc(100% - 4em);
- overflow-y: auto;
+ height: calc(100% - 4em);
+ overflow-y: auto;
}
.progress.pdf-progress {
- height: 2rem;
+ height: 2rem;
}
.progress.pdf-progress .progress-bar {
- font-size: 1rem;
- line-height: 2rem;
+ font-size: 1rem;
+ line-height: 2rem;
}
.builder-sidebar.disabled {
- .formcomponent {
- cursor: not-allowed;
- opacity: 0.65;
- box-shadow: none;
- }
+ .formcomponent {
+ cursor: not-allowed;
+ opacity: 0.65;
+ box-shadow: none;
+ }
}
.builder-component-selected {
- border: 2px dashed #919191;
- outline: none !important;
+ border: 2px dashed #919191;
+ outline: none !important;
}
diff --git a/src/sass/formio.form.scss b/src/sass/formio.form.scss
index 6f5c232ea2..245616c2ab 100644
--- a/src/sass/formio.form.scss
+++ b/src/sass/formio.form.scss
@@ -3,37 +3,37 @@ $dialog-z-index: 10000;
$autocomplete-in-dialog-z-index: $dialog-z-index + 1000;
.formio-form {
- position: relative;
- min-height: 80px;
+ position: relative;
+ min-height: 80px;
}
.formio-error-wrapper,
.formio-warning-wrapper {
- padding: 1em;
+ padding: 1em;
}
.formio-error-wrapper {
- color: #721c24;
- background-color: #f8d7da;
- border-color: #f5c6cb;
+ color: #721c24;
+ background-color: #f8d7da;
+ border-color: #f5c6cb;
- .formio-errors .error {
- color: #C20000;
- }
+ .formio-errors .error {
+ color: #c20000;
+ }
- .field-required:after {
- color:#C20000;
- }
+ .field-required:after {
+ color: #c20000;
+ }
}
.formio-warning-wrapper {
- color: #856404;
- background-color: #fff3cd;
- border-color: #ffeeba;
+ color: #856404;
+ background-color: #fff3cd;
+ border-color: #ffeeba;
}
.formio-disabled-input .form-control.flatpickr-input {
- background-color: #eee;
+ background-color: #eee;
}
.builder-component.has-error .invalid-feedback,
@@ -41,1725 +41,1860 @@ $autocomplete-in-dialog-z-index: $dialog-z-index + 1000;
.formio-component.alert-danger .invalid-feedback,
.formio-component.has-message .invalid-feedback,
.formio-component-modal-wrapper.has-message .invalid-feedback,
-.formio-component-modal-wrapper.has-error .invalid-feedback {
- display: block;
- color: inherit;
- margin-top: 4px;
+.formio-component-modal-wrapper.has-error .invalid-feedback {
+ display: block;
+ color: inherit;
+ margin-top: 4px;
}
.formio-errors {
- .error {
- color: #dc3545;
- }
- .warning {
- color: #856404;
- }
- .info {
- color: #004085;
- }
+ .error {
+ color: #dc3545;
+ }
+ .warning {
+ color: #856404;
+ }
+ .info {
+ color: #004085;
+ }
}
.formio-form-group {
- margin-bottom: 1rem;
+ margin-bottom: 1rem;
}
.formio-wysiwyg-editor {
- min-height: 200px;
- background-color: #fff;
+ min-height: 200px;
+ background-color: #fff;
}
.has-feedback .form-control {
- padding-right: 10px;
+ padding-right: 10px;
}
-.has-feedback .form-control[type=hidden] {
- padding-right: 0px;
+.has-feedback .form-control[type='hidden'] {
+ padding-right: 0px;
}
.has-error.bg-danger {
- padding: 4px;
+ padding: 4px;
}
.ql-source:after {
- content: "[source]";
- white-space: nowrap;
+ content: '[source]';
+ white-space: nowrap;
}
.quill-source-code {
- width: 100%;
- margin: 0px;
- background: rgb(29, 29, 29);
- box-sizing: border-box;
- color: rgb(204, 204, 204);
- font-size: 15px;
- outline: none;
- padding: 20px;
- line-height: 24px;
- font-family: Consolas, Menlo, Monaco, "Courier New", monospace;
- position: absolute;
- top: 0;
- bottom: 0;
- border: none;
- display:none;
+ width: 100%;
+ margin: 0px;
+ background: rgb(29, 29, 29);
+ box-sizing: border-box;
+ color: rgb(204, 204, 204);
+ font-size: 15px;
+ outline: none;
+ padding: 20px;
+ line-height: 24px;
+ font-family: Consolas, Menlo, Monaco, 'Courier New', monospace;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ border: none;
+ display: none;
}
.formio-component-tags tags {
- background-color: #fff;
+ background-color: #fff;
}
-.field-required:after, .tab-error::after {
- content:" *";
- color:#EB0000;
+.field-required:after,
+.tab-error::after {
+ content: ' *';
+ color: #eb0000;
}
.field-required:after {
- position: relative;
- z-index: 10;
+ position: relative;
+ z-index: 10;
}
.glyphicon-spin {
- -webkit-animation: formio-spin 1s infinite linear;
- -moz-animation: formio-spin 1s infinite linear;
- -o-animation: formio-spin 1s infinite linear;
- animation: formio-spin 1s infinite linear;
+ -webkit-animation: formio-spin 1s infinite linear;
+ -moz-animation: formio-spin 1s infinite linear;
+ -o-animation: formio-spin 1s infinite linear;
+ animation: formio-spin 1s infinite linear;
}
@-moz-keyframes formio-spin {
- from {
- -moz-transform: rotate(0deg);
- }
- to {
- -moz-transform: rotate(360deg);
- }
+ from {
+ -moz-transform: rotate(0deg);
+ }
+ to {
+ -moz-transform: rotate(360deg);
+ }
}
@-webkit-keyframes formio-spin {
- from {
- -webkit-transform: rotate(0deg);
- }
- to {
- -webkit-transform: rotate(360deg);
- }
+ from {
+ -webkit-transform: rotate(0deg);
+ }
+ to {
+ -webkit-transform: rotate(360deg);
+ }
}
@keyframes formio-spin {
- from {
- transform: rotate(0deg);
- }
- to {
- transform: rotate(360deg);
- }
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
}
.button-icon-right {
- margin-left: 5px;
+ margin-left: 5px;
}
.formio-component-submit .submit-success::after {
- content: '\2713';
- position: relative;
- right: -4px;
- top: 1px;
- line-height: 1;
+ content: '\2713';
+ position: relative;
+ right: -4px;
+ top: 1px;
+ line-height: 1;
}
.formio-component-submit .submit-fail::after {
- content: '\2717';
- position: relative;
- right: -4px;
- top: 1px;
- line-height: 1;
+ content: '\2717';
+ position: relative;
+ right: -4px;
+ top: 1px;
+ line-height: 1;
}
-
.card-vertical {
- display: flex;
- flex-direction: row;
- margin-top: 5px;
+ display: flex;
+ flex-direction: row;
+ margin-top: 5px;
}
.card-vertical .card-body,
.tab-content,
.tab {
- flex-grow: 2;
+ flex-grow: 2;
}
.nav-tabs-vertical {
- display: flex;
- flex-direction: column;
- border-right: 1px solid #ddd;
- padding-left: 5px;
- margin-right: 10px;
- border-bottom: 0;
+ display: flex;
+ flex-direction: column;
+ border-right: 1px solid #ddd;
+ padding-left: 5px;
+ margin-right: 10px;
+ border-bottom: 0;
}
.card-vertical > .card-body,
.card-vertical > .tab-content,
.card-vertical > .tab {
- flex-basis: 85%;
+ flex-basis: 85%;
}
-.card-vertical ul>li>.nav-link-vertical {
- border-right-color: transparent;
- border-radius: 4px 0 0 4px;
- margin-right: 0;
-
- &.active {
- border-bottom-color: #ddd;
+.card-vertical ul > li > .nav-link-vertical {
border-right-color: transparent;
+ border-radius: 4px 0 0 4px;
+ margin-right: 0;
+
+ &.active {
+ border-bottom-color: #ddd;
+ border-right-color: transparent;
- &:hover {
- border-right-color: transparent;
+ &:hover {
+ border-right-color: transparent;
+ }
}
- }
}
-.nav-tabs-vertical>li {
- margin: 0 -1px 0 0;
+.nav-tabs-vertical > li {
+ margin: 0 -1px 0 0;
}
.formio-component-submit .submit-fail[disabled] {
- opacity: 1;
+ opacity: 1;
}
.form-control.flatpickr-input {
- background-color: #fff;
+ background-color: #fff;
}
.input-group .flatpickr-wrapper {
- flex-grow: 1;
+ flex-grow: 1;
}
.flatpickr-calendar {
- .flatpickr-current-month .flatpickr-monthDropdown-months:focus,
- .flatpickr-current-month input.cur-year:focus,
- .flatpickr-days:focus {
- outline: auto;
- }
+ .flatpickr-current-month .flatpickr-monthDropdown-months:focus,
+ .flatpickr-current-month input.cur-year:focus,
+ .flatpickr-days:focus {
+ outline: auto;
+ }
}
td > .form-group,
td > .formio-form-group {
- margin-bottom: 0;
+ margin-bottom: 0;
}
.signature-pad-body {
- overflow: hidden;
- position: relative;
+ overflow: hidden;
+ position: relative;
- .form-control-feedback {
- position: absolute;
- font-size: 0.8rem;
- top: 1px;
- right: 3px;
- }
+ .form-control-feedback {
+ position: absolute;
+ font-size: 0.8rem;
+ top: 1px;
+ right: 3px;
+ }
}
.signature-pad-canvas {
- border-radius: 4px;
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.02) inset;
- border: 1px solid #f4f4f4;
+ border-radius: 4px;
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.02) inset;
+ border: 1px solid #f4f4f4;
}
.btn.signature-pad-refresh {
- position:absolute;
- left: 0;
- top: 0;
- z-index: 1000;
- padding: 3px;
- line-height: 0;
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 1000;
+ padding: 3px;
+ line-height: 0;
}
-[dir="rtl"] .btn.signature-pad-refresh {
- left: unset;
- right: 0;
+[dir='rtl'] .btn.signature-pad-refresh {
+ left: unset;
+ right: 0;
}
.formio-component-multiple .choices__input {
- width: 100%;
+ width: 100%;
}
.formio-component-multiple .is-invalid {
- border-color: #F04124;
+ border-color: #f04124;
}
.formio-component-multiple :not(.is-invalid) {
- border-color: #ccc;
+ border-color: #ccc;
}
-.choices__list--dropdown .choices__item--selectable{
- padding-right: 0px;
+.choices__list--dropdown .choices__item--selectable {
+ padding-right: 0px;
}
.signature-pad-refresh img {
- height: 1.2em;
+ height: 1.2em;
}
.signature-pad-footer {
- text-align: center;
- color: #C3C3C3;
+ text-align: center;
+ color: #c3c3c3;
}
.is-active.choices__list--dropdown {
- z-index: 100;
+ z-index: 100;
}
.choices__list--multiple .choices__item {
- border-radius: 0;
- padding: 2px 8px;
- line-height: 1em;
- margin-bottom: 6px;
+ border-radius: 0;
+ padding: 2px 8px;
+ line-height: 1em;
+ margin-bottom: 6px;
}
.choices__list--single {
- padding: 0;
+ padding: 0;
}
.choices__item.choices__item--selectable {
- white-space: nowrap;
- overflow: hidden;
- padding-right: 25px;
- text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ padding-right: 25px;
+ text-overflow: ellipsis;
}
.choices__input {
- padding: 2px;
+ padding: 2px;
}
/* fix for choices.js .choices__input container in rtl */
-.choices[dir="rtl"] > * {
- text-align: right;
+.choices[dir='rtl'] > * {
+ text-align: right;
}
/* end fix for choices.js .choices__input container in rtl */
/* fix for choices.js deletable items in rtl */
-.choices[dir="rtl"] .choices__list--multiple .choices__item[data-deletable] {
- padding-left: 5px;
- float: right;
+.choices[dir='rtl'] .choices__list--multiple .choices__item[data-deletable] {
+ padding-left: 5px;
+ float: right;
}
-.choices[dir="rtl"] .choices__list--multiple .choices__item[data-deletable] .choices__button {
- float: left;
- margin: 0 8px 0 -4px;
- padding-left: unset;
- padding-right: 16px;
- border-left: unset;
- border-right: 1px solid #008fa1;
- overflow: hidden;
+.choices[dir='rtl']
+ .choices__list--multiple
+ .choices__item[data-deletable]
+ .choices__button {
+ float: left;
+ margin: 0 8px 0 -4px;
+ padding-left: unset;
+ padding-right: 16px;
+ border-left: unset;
+ border-right: 1px solid #008fa1;
+ overflow: hidden;
}
/* end fix for choices.js deletable items in rtl */
@-moz-document url-prefix() {
- .choices__button {
- float: right;
- }
+ .choices__button {
+ float: right;
+ }
}
.formio-component-file .fileSelector {
- position: relative;
- padding: 15px;
- border: 2px dashed #ddd;
- text-align: center;
-
- .loader-wrapper {
- display: none;
- width: 100%;
- height: 100%;
- background-color: rgba(0, 0, 0, 0.1);
+ position: relative;
+ padding: 15px;
+ border: 2px dashed #ddd;
+ text-align: center;
- .loader {
- height: 45px;
- width: 45px;
- margin-top: -23px;
- margin-left: -23px;
+ .loader-wrapper {
+ display: none;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(0, 0, 0, 0.1);
+
+ .loader {
+ height: 45px;
+ width: 45px;
+ margin-top: -23px;
+ margin-left: -23px;
+ }
}
- }
- a {
- text-decoration: underline;
- }
+ a {
+ text-decoration: underline;
+ }
}
.formio-component-file .status {
- margin-top: 4px;
- font-size: 0.9rem;
+ margin-top: 4px;
+ font-size: 0.9rem;
}
.formio-component-file .list-group-item .fa {
- cursor: pointer;
+ cursor: pointer;
}
.formio-component-file .fileSelector.fileDragOver {
- border-color: #127abe;
+ border-color: #127abe;
}
-.formio-component-file .fileSelector .glyphicon, .formio-component-file .fileSelector .fa {
- font-size: 20px;
- margin-right: 5px;
+.formio-component-file .fileSelector .glyphicon,
+.formio-component-file .fileSelector .fa {
+ font-size: 20px;
+ margin-right: 5px;
}
-[dir="rtl"] .formio-component-file .fileSelector .fa, [dir="rtl"] .formio-component-file .fileSelector .glyphicon {
- margin-right: unset;
- margin-left: 5px;
+[dir='rtl'] .formio-component-file .fileSelector .fa,
+[dir='rtl'] .formio-component-file .fileSelector .glyphicon {
+ margin-right: unset;
+ margin-left: 5px;
}
.formio-component-file .fileSelector .browse {
- cursor: pointer;
+ cursor: pointer;
}
@-webkit-keyframes formio-dialog-fadeout {
- 0% {
- opacity: 1;
- }
+ 0% {
+ opacity: 1;
+ }
- 100% {
- opacity: 0;
- }
+ 100% {
+ opacity: 0;
+ }
}
@keyframes formio-dialog-fadeout {
- 0% {
- opacity: 1;
- }
+ 0% {
+ opacity: 1;
+ }
- 100% {
- opacity: 0;
- }
+ 100% {
+ opacity: 0;
+ }
}
@-webkit-keyframes formio-dialog-fadein {
- 0% {
- opacity: 0;
- }
+ 0% {
+ opacity: 0;
+ }
- 100% {
- opacity: 1;
- }
+ 100% {
+ opacity: 1;
+ }
}
@keyframes formio-dialog-fadein {
- 0% {
- opacity: 0;
- }
+ 0% {
+ opacity: 0;
+ }
- 100% {
- opacity: 1;
- }
+ 100% {
+ opacity: 1;
+ }
}
.formio-dialog {
- box-sizing: border-box;
- font-size: 0.8em;
- color: #666;
+ box-sizing: border-box;
+ font-size: 0.8em;
+ color: #666;
- &.formio-modaledit-dialog {
- font-size: inherit;
- }
+ &.formio-modaledit-dialog {
+ font-size: inherit;
+ }
}
.formio-dialog *,
.formio-dialog *:before,
.formio-dialog *:after {
- box-sizing: inherit;
+ box-sizing: inherit;
}
.formio-dialog {
- position: fixed;
- overflow: auto;
- -webkit-overflow-scrolling: touch;
- z-index: $dialog-z-index;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- /* fix for Scrollbars not clickable on overflow #552 */
- background: rgba(0, 0, 0, 0.4);
- animation: formio-dialog-fadein 0.5s;
- /* end fix for Scrollbars not clickable on overflow #552 */
+ position: fixed;
+ overflow: auto;
+ -webkit-overflow-scrolling: touch;
+ z-index: $dialog-z-index;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ /* fix for Scrollbars not clickable on overflow #552 */
+ background: rgba(0, 0, 0, 0.4);
+ animation: formio-dialog-fadein 0.5s;
+ /* end fix for Scrollbars not clickable on overflow #552 */
}
.formio-dialog.formio-dialog-disabled-animation,
.formio-dialog.formio-dialog-disabled-animation .formio-dialog-overlay,
.formio-dialog.formio-dialog-disabled-animation .formio-dialog-content {
- -webkit-animation: none!important;
- animation: none!important;
+ -webkit-animation: none !important;
+ animation: none !important;
}
.formio-dialog-overlay {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- -webkit-backface-visibility: hidden;
- -webkit-animation: formio-dialog-fadein 0.5s;
- animation: formio-dialog-fadein 0.5s;
- /* fix for Scrollbars not clickable on overflow #552 */
- margin-right: 15px;
- background: transparent;
- /* end fix for Scrollbars not clickable on overflow #552 */
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ -webkit-backface-visibility: hidden;
+ -webkit-animation: formio-dialog-fadein 0.5s;
+ animation: formio-dialog-fadein 0.5s;
+ /* fix for Scrollbars not clickable on overflow #552 */
+ margin-right: 15px;
+ background: transparent;
+ /* end fix for Scrollbars not clickable on overflow #552 */
}
.formio-dialog-no-overlay {
- pointer-events: none;
+ pointer-events: none;
}
.formio-dialog.formio-dialog-closing .formio-dialog-overlay {
- -webkit-backface-visibility: hidden;
- -webkit-animation: formio-dialog-fadeout 0.5s;
- animation: formio-dialog-fadeout 0.5s;
+ -webkit-backface-visibility: hidden;
+ -webkit-animation: formio-dialog-fadeout 0.5s;
+ animation: formio-dialog-fadeout 0.5s;
}
.formio-dialog-content {
- background: white;
- -webkit-backface-visibility: hidden;
- -webkit-animation: formio-dialog-fadein 0.5s;
- animation: formio-dialog-fadein 0.5s;
- pointer-events: all;
- overflow: auto;
+ background: white;
+ -webkit-backface-visibility: hidden;
+ -webkit-animation: formio-dialog-fadein 0.5s;
+ animation: formio-dialog-fadein 0.5s;
+ pointer-events: all;
+ overflow: auto;
}
.formio-component-modal-wrapper-select {
- .formio-dialog-content {
- overflow: initial;
- }
+ .formio-dialog-content {
+ overflow: initial;
+ }
}
.formio-dialog.formio-dialog-closing .formio-dialog-content {
- -webkit-backface-visibility: hidden;
- -webkit-animation: formio-dialog-fadeout 0.5s;
- animation: formio-dialog-fadeout 0.5s;
+ -webkit-backface-visibility: hidden;
+ -webkit-animation: formio-dialog-fadeout 0.5s;
+ animation: formio-dialog-fadeout 0.5s;
}
.formio-dialog-close:before {
- font-family: 'Helvetica', Arial, sans-serif;
- content: '×';
- cursor: pointer;
+ font-family: 'Helvetica', Arial, sans-serif;
+ content: '×';
+ cursor: pointer;
}
html.formio-dialog-open,
body.formio-dialog-open {
- overflow: hidden;
+ overflow: hidden;
}
.formio-dialog .tab-content {
- padding-top: 12px;
+ padding-top: 12px;
}
.formio-dialog-close {
- z-index: 1000;
+ z-index: 1000;
}
@-webkit-keyframes formio-dialog-flyin {
- 0% {
- opacity: 0;
- -webkit-transform: translateY(-40px);
- transform: translateY(-40px);
- }
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-40px);
+ transform: translateY(-40px);
+ }
- 100% {
- opacity: 1;
- -webkit-transform: translateY(0);
- transform: translateY(0);
- }
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
}
@keyframes formio-dialog-flyin {
- 0% {
- opacity: 0;
- -webkit-transform: translateY(-40px);
- transform: translateY(-40px);
- }
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-40px);
+ transform: translateY(-40px);
+ }
- 100% {
- opacity: 1;
- -webkit-transform: translateY(0);
- transform: translateY(0);
- }
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
}
@-webkit-keyframes formio-dialog-flyout {
- 0% {
- opacity: 1;
- -webkit-transform: translateY(0);
- transform: translateY(0);
- }
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
- 100% {
- opacity: 0;
- -webkit-transform: translateY(-40px);
- transform: translateY(-40px);
- }
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(-40px);
+ transform: translateY(-40px);
+ }
}
@keyframes formio-dialog-flyout {
- 0% {
- opacity: 1;
- -webkit-transform: translateY(0);
- transform: translateY(0);
- }
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
- 100% {
- opacity: 0;
- -webkit-transform: translateY(-40px);
- transform: translateY(-40px);
- }
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(-40px);
+ transform: translateY(-40px);
+ }
}
.formio-dialog.formio-dialog-theme-default {
- padding-bottom: 160px;
- padding-top: 160px;
+ padding-bottom: 160px;
+ padding-top: 160px;
- .component-edit-container {
- padding: 0.5em;
- }
+ .component-edit-container {
+ padding: 0.5em;
+ }
}
-.formio-dialog.formio-dialog-theme-default.formio-dialog-closing .formio-dialog-content {
- -webkit-animation: formio-dialog-flyout .5s;
- animation: formio-dialog-flyout .5s;
+.formio-dialog.formio-dialog-theme-default.formio-dialog-closing
+ .formio-dialog-content {
+ -webkit-animation: formio-dialog-flyout 0.5s;
+ animation: formio-dialog-flyout 0.5s;
}
.formio-dialog.formio-dialog-theme-default .formio-dialog-content {
- -webkit-animation: formio-dialog-flyin .5s;
- animation: formio-dialog-flyin .5s;
- background: #f0f0f0;
- border-radius: 5px;
- font-family: 'Helvetica',sans-serif;
- font-size: 1.1em;
- line-height: 1.5em;
- margin: 0 auto;
- max-width: 100%;
- padding: 1em;
- position: relative;
- width: 80%;
+ -webkit-animation: formio-dialog-flyin 0.5s;
+ animation: formio-dialog-flyin 0.5s;
+ background: #f0f0f0;
+ border-radius: 5px;
+ font-family: 'Helvetica', sans-serif;
+ font-size: 1.1em;
+ line-height: 1.5em;
+ margin: 0 auto;
+ max-width: 100%;
+ padding: 1em;
+ position: relative;
+ width: 80%;
}
.formio-dialog.formio-dialog-theme-default .formio-dialog-close {
- border: none;
- background: transparent;
- cursor: pointer;
- position: absolute;
- right: 1px;
- top: 1px;
- z-index: 100;
+ border: none;
+ background: transparent;
+ cursor: pointer;
+ position: absolute;
+ right: 1px;
+ top: 1px;
+ z-index: 100;
}
.formio-clickable {
- cursor: pointer;
+ cursor: pointer;
}
-.component-settings .nav>li>a {
- padding: 8px 10px;
+.component-settings .nav > li > a {
+ padding: 8px 10px;
}
.formio-dialog.formio-dialog-theme-default .formio-dialog-close:before {
- display: block;
- padding: 3px;
- background: transparent;
- color: #8a8a8a;
- content: '×';
- font-size: 26px;
- font-weight: 400;
- line-height: 26px;
- text-align: center;
+ display: block;
+ padding: 3px;
+ background: transparent;
+ color: #8a8a8a;
+ content: '×';
+ font-size: 26px;
+ font-weight: 400;
+ line-height: 26px;
+ text-align: center;
}
.formio-dialog.formio-dialog-theme-default .formio-dialog-close:hover:before,
.formio-dialog.formio-dialog-theme-default .formio-dialog-close:active:before {
- color: #777;
+ color: #777;
}
.formio-dialog.formio-dialog-theme-default .formio-dialog-message {
- margin-bottom: .5em;
+ margin-bottom: 0.5em;
}
.formio-dialog.formio-dialog-theme-default .formio-dialog-input {
- margin-bottom: 1em;
+ margin-bottom: 1em;
}
.formio-dialog.formio-dialog-theme-default .formio-dialog-input textarea,
-.formio-dialog.formio-dialog-theme-default .formio-dialog-input input[type="text"],
-.formio-dialog.formio-dialog-theme-default .formio-dialog-input input[type="password"],
-.formio-dialog.formio-dialog-theme-default .formio-dialog-input input[type="email"],
-.formio-dialog.formio-dialog-theme-default .formio-dialog-input input[type="url"] {
- background: #fff;
- border: 0;
- border-radius: 3px;
- font-family: inherit;
- font-size: inherit;
- font-weight: inherit;
- margin: 0 0 .25em;
- min-height: 2.5em;
- padding: .25em .67em;
- width: 100%;
+.formio-dialog.formio-dialog-theme-default
+ .formio-dialog-input
+ input[type='text'],
+.formio-dialog.formio-dialog-theme-default
+ .formio-dialog-input
+ input[type='password'],
+.formio-dialog.formio-dialog-theme-default
+ .formio-dialog-input
+ input[type='email'],
+.formio-dialog.formio-dialog-theme-default
+ .formio-dialog-input
+ input[type='url'] {
+ background: #fff;
+ border: 0;
+ border-radius: 3px;
+ font-family: inherit;
+ font-size: inherit;
+ font-weight: inherit;
+ margin: 0 0 0.25em;
+ min-height: 2.5em;
+ padding: 0.25em 0.67em;
+ width: 100%;
}
.formio-dialog.formio-dialog-theme-default .formio-dialog-input textarea:focus,
-.formio-dialog.formio-dialog-theme-default .formio-dialog-input input[type="text"]:focus,
-.formio-dialog.formio-dialog-theme-default .formio-dialog-input input[type="password"]:focus,
-.formio-dialog.formio-dialog-theme-default .formio-dialog-input input[type="email"]:focus,
-.formio-dialog.formio-dialog-theme-default .formio-dialog-input input[type="url"]:focus {
- box-shadow: inset 0 0 0 2px #8dbdf1;
- outline: none;
+.formio-dialog.formio-dialog-theme-default
+ .formio-dialog-input
+ input[type='text']:focus,
+.formio-dialog.formio-dialog-theme-default
+ .formio-dialog-input
+ input[type='password']:focus,
+.formio-dialog.formio-dialog-theme-default
+ .formio-dialog-input
+ input[type='email']:focus,
+.formio-dialog.formio-dialog-theme-default
+ .formio-dialog-input
+ input[type='url']:focus {
+ box-shadow: inset 0 0 0 2px #8dbdf1;
+ outline: none;
}
.formio-dialog-buttons {
- display: flex;
- justify-content: flex-end;
+ display: flex;
+ justify-content: flex-end;
}
.formio-dialog.formio-dialog-theme-default .formio-dialog-buttons {
- *zoom: 1;
+ *zoom: 1;
}
.formio-dialog.formio-dialog-theme-default .formio-dialog-buttons:after {
- content: '';
- display: table;
- clear: both;
+ content: '';
+ display: table;
+ clear: both;
}
.formio-dialog.formio-dialog-theme-default .formio-dialog-button {
- border: 0;
- border-radius: 3px;
- cursor: pointer;
- float: right;
- font-family: inherit;
- font-size: .8em;
- letter-spacing: .1em;
- line-height: 1em;
- margin: 0 0 0 .5em;
- padding: .75em 2em;
- text-transform: uppercase;
+ border: 0;
+ border-radius: 3px;
+ cursor: pointer;
+ float: right;
+ font-family: inherit;
+ font-size: 0.8em;
+ letter-spacing: 0.1em;
+ line-height: 1em;
+ margin: 0 0 0 0.5em;
+ padding: 0.75em 2em;
+ text-transform: uppercase;
}
.formio-dialog.formio-dialog-theme-default .formio-dialog-button:focus {
- -webkit-animation: formio-dialog-pulse 1.1s infinite;
- animation: formio-dialog-pulse 1.1s infinite;
- outline: none;
+ -webkit-animation: formio-dialog-pulse 1.1s infinite;
+ animation: formio-dialog-pulse 1.1s infinite;
+ outline: none;
}
@media (max-width: 568px) {
- .formio-dialog.formio-dialog-theme-default .formio-dialog-button:focus {
- -webkit-animation: none;
- animation: none;
- }
+ .formio-dialog.formio-dialog-theme-default .formio-dialog-button:focus {
+ -webkit-animation: none;
+ animation: none;
+ }
}
-.formio-dialog.formio-dialog-theme-default .formio-dialog-button.formio-dialog-button-primary {
- background: #3288e6;
- color: #fff;
+.formio-dialog.formio-dialog-theme-default
+ .formio-dialog-button.formio-dialog-button-primary {
+ background: #3288e6;
+ color: #fff;
}
-.formio-dialog.formio-dialog-theme-default .formio-dialog-button.formio-dialog-button-secondary {
- background: #e0e0e0;
- color: #777;
+.formio-dialog.formio-dialog-theme-default
+ .formio-dialog-button.formio-dialog-button-secondary {
+ background: #e0e0e0;
+ color: #777;
}
.formio-dialog-content .panel {
- margin: 0;
+ margin: 0;
}
-.formio-dialog-content [ref="dialogHeader"] {
- padding-right: 15px;
+.formio-dialog-content [ref='dialogHeader'] {
+ padding-right: 15px;
}
.formio-placeholder {
- position:absolute;
- color: #999;
+ position: absolute;
+ color: #999;
}
.formio-dialog .formio-dialog-close {
- cursor: pointer;
+ cursor: pointer;
}
.formio-iframe {
- border: none;
- width: 100%;
- height: 1000px;
+ border: none;
+ width: 100%;
+ height: 1000px;
}
.inline-form-button {
- margin-right: 10px;
+ margin-right: 10px;
}
.tooltip {
- opacity: 1;
+ opacity: 1;
}
-.tooltip[x-placement="right"] .tooltip-arrow {
- border-right: 5px solid black;
+.tooltip[x-placement='right'] .tooltip-arrow {
+ border-right: 5px solid black;
}
-.tooltip[x-placement="right"] .tooltip-inner {
- margin-left: 8px;
+.tooltip[x-placement='right'] .tooltip-inner {
+ margin-left: 8px;
}
.control-label--bottom {
- margin-bottom: 0;
- margin-top: 5px;
+ margin-bottom: 0;
+ margin-top: 5px;
}
.formio-component-label-hidden {
- position: relative;
+ position: relative;
}
.formio-hidden {
- margin: 0;
+ margin: 0;
}
.formio-removed {
- display: none;
+ display: none;
}
.control-label--hidden {
- position: absolute;
- top: 6px;
- right: 5px;
+ position: absolute;
+ top: 6px;
+ right: 5px;
}
.formio-component-datetime .control-label--hidden.field-required {
- right: 45px;
- z-index: 3;
+ right: 45px;
+ z-index: 3;
}
.formio-component-survey .control-label--hidden.field-required,
.formio-component-selectboxes .control-label--hidden.field-required {
- top: 0;
+ top: 0;
}
.formio-component-resource .control-label--hidden.field-required,
.formio-component-select .control-label--hidden.field-required {
- right: 40px;
- z-index: 2;
+ right: 40px;
+ z-index: 2;
}
.formio-component-radio .control-label--hidden.field-required:after,
.formio-component-selectboxes .control-label--hidden.field-required:after {
- display: none;
+ display: none;
}
-.formio-component-radio.formio-component-label-hidden.required .form-check-label:before,
-.formio-component-selectboxes.formio-component-label-hidden.required .form-check-label:before {
- position: relative;
- content: "* ";
- color:#EB0000;
+.formio-component-radio.formio-component-label-hidden.required
+ .form-check-label:before,
+.formio-component-selectboxes.formio-component-label-hidden.required
+ .form-check-label:before {
+ position: relative;
+ content: '* ';
+ color: #eb0000;
}
-.formio-component-radio.formio-component-label-hidden.required .label-position-right.form-check-label:before,
-.formio-component-selectboxes.formio-component-label-hidden.required .label-position-right.form-check-label:before {
- right: 20px;
+.formio-component-radio.formio-component-label-hidden.required
+ .label-position-right.form-check-label:before,
+.formio-component-selectboxes.formio-component-label-hidden.required
+ .label-position-right.form-check-label:before {
+ right: 20px;
}
/* Fix for Hidden checkbox in component editform. */
.formio-component-hidden:not(.formio-component-checkbox),
.formio-component-datasource {
- margin-bottom: 0;
+ margin-bottom: 0;
}
.checkbox-inline label,
.radio-inline label {
- font-weight: 400;
- cursor: pointer;
+ font-weight: 400;
+ cursor: pointer;
}
.editgrid-listgroup {
- margin-bottom: 10px;
- overflow-wrap: break-word;
+ margin-bottom: 10px;
+ overflow-wrap: break-word;
}
-.formio-component-submit button[disabled]+.has-error {
- display: block;
+.formio-component-submit button[disabled] + .has-error {
+ display: block;
}
.formio-choices.form-group,
.formio-choices.formio-form-group {
- margin-bottom: 0;
+ margin-bottom: 0;
}
-.formio-choices[data-type=select-multiple] .form-control {
- height: auto;
+.formio-choices[data-type='select-multiple'] .form-control {
+ height: auto;
}
.form-control.formio-multiple-mask-select {
- width: 15%;
- z-index: 4;
+ width: 15%;
+ z-index: 4;
}
.form-control.formio-multiple-mask-input {
- width: 85%;
+ width: 85%;
}
.input-group.formio-multiple-mask-container {
- width: 100%;
+ width: 100%;
}
.formio-component .table {
- margin-bottom: 0;
- word-break: break-word;
+ margin-bottom: 0;
+ word-break: break-word;
}
.formio-component-htmlelement {
- word-wrap: break-word;
-
- ol, ul {
- margin-left: 10px;
+ word-wrap: break-word;
- }
+ ol,
+ ul {
+ margin-left: 10px;
+ }
}
.editgrid-table-container {
- margin-bottom: 10px;
- max-width: calc(100vw - 140px);
+ margin-bottom: 10px;
+ max-width: calc(100vw - 140px);
- .table-responsive {
- display: block;
- width: 100%;
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- }
+ .table-responsive {
+ display: block;
+ width: 100%;
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
}
.editgrid-table-column {
- border: none;
+ border: none;
}
.editgrid-table-head {
- border: 1px solid #ddd;
+ border: 1px solid #ddd;
}
.editgrid-table-body {
- border: 1px solid #ddd;
- border-top: 0;
+ border: 1px solid #ddd;
+ border-top: 0;
}
.formio-hide-label-panel-tooltip {
- margin-top: -10px;
- margin-left: -10px;
+ margin-top: -10px;
+ margin-left: -10px;
}
.is-disabled .choices__list--multiple .choices__item {
- padding: 5px 10px;
+ padding: 5px 10px;
}
.is-disabled .choices__list--multiple .choices__item .choices__button {
- display: none;
+ display: none;
}
.formio-collapse-icon {
- cursor: pointer;
- margin-right: 4px;
+ cursor: pointer;
+ margin-right: 4px;
}
-[dir="rtl"] .formio-collapse-icon {
- margin-right: unset;
- margin-left: 4px;
+[dir='rtl'] .formio-collapse-icon {
+ margin-right: unset;
+ margin-left: 4px;
}
-.formio-component-datetime .form-control[type="datetime-local"] ~ .input-group-addon,
-.formio-component-dateTime .form-control[type="datetime-local"] ~ .input-group-addon {
- width: auto;
+.formio-component-datetime
+ .form-control[type='datetime-local']
+ ~ .input-group-addon,
+.formio-component-dateTime
+ .form-control[type='datetime-local']
+ ~ .input-group-addon {
+ width: auto;
}
.formio-component-datagrid .formio-datagrid-remove {
- position: absolute;
- top: 0;
- right: 0;
- visibility: hidden;
- opacity: 0;
- transition: opacity 200ms linear, visibility 0ms 200ms;
+ position: absolute;
+ top: 0;
+ right: 0;
+ visibility: hidden;
+ opacity: 0;
+ transition: opacity 200ms linear, visibility 0ms 200ms;
}
.formio-component-datagrid {
- overflow-x: auto;
- overflow-y: visible;
- height: auto;
-
- .datagrid-table {
- &, td, th {
- border: 3px solid #ddd !important;
- padding: 10px;
- }
-
- &>tbody>tr>td:last-child {
- position: relative;
- }
+ overflow-x: auto;
+ overflow-y: visible;
+ height: auto;
- &>tbody>tr:hover>td:last-child .formio-datagrid-remove {
- visibility: visible;
- opacity: 1;
- transition: visibility 0ms, opacity 200ms linear;
+ .datagrid-table {
+ &,
+ td,
+ th {
+ border: 3px solid #ddd !important;
+ padding: 10px;
+ }
+
+ & > tbody > tr > td:last-child {
+ position: relative;
+ }
+
+ & > tbody > tr:hover > td:last-child .formio-datagrid-remove {
+ visibility: visible;
+ opacity: 1;
+ transition: visibility 0ms, opacity 200ms linear;
+ }
}
- }
- // .edittable-group-label {
- // background-color: #ddd;
- // }
+ // .edittable-group-label {
+ // background-color: #ddd;
+ // }
}
.datagrid-table {
- &>tbody>tr>td {
- word-break: auto-phrase;
- }
+ & > tbody > tr > td {
+ word-break: auto-phrase;
+ }
}
.formio-component-modaledit {
- .formio-modaledit-view-container {
- position: relative;
- border: 1px solid #ddd;
- min-height: 34px;
- padding: 6px 12px;
- cursor: text;
-
- td & {
- padding: 0;
- border-style: none;
+ .formio-modaledit-view-container {
+ position: relative;
+ border: 1px solid #ddd;
+ min-height: 34px;
+ padding: 6px 12px;
+ cursor: text;
+
+ td & {
+ padding: 0;
+ border-style: none;
+ }
}
- }
- .formio-modaledit-edit {
- position: absolute;
- top: 0;
- left: 0;
- visibility: hidden;
- opacity: 0;
- transition: opacity 200ms linear, visibility 0ms 200ms;
- }
+ .formio-modaledit-edit {
+ position: absolute;
+ top: 0;
+ left: 0;
+ visibility: hidden;
+ opacity: 0;
+ transition: opacity 200ms linear, visibility 0ms 200ms;
+ }
- .formio-modaledit-view-container:hover .formio-modaledit-edit {
- visibility: visible;
- opacity: 1;
- transition: visibility 0ms, opacity 200ms linear;
- }
+ .formio-modaledit-view-container:hover .formio-modaledit-edit {
+ visibility: visible;
+ opacity: 1;
+ transition: visibility 0ms, opacity 200ms linear;
+ }
}
.formio-modaledit-dialog {
- .formio-modaledit-close {
- position: absolute;
- top: 100%;
- right: 0;
- border-radius: 0;
- }
+ .formio-modaledit-close {
+ position: absolute;
+ top: 100%;
+ right: 0;
+ border-radius: 0;
+ }
}
.reset-margins {
- html, body, div, span, applet, object, iframe,
- h1, h2, h3, h4, h5, h6, p, blockquote, pre,
- a, abbr, acronym, address, big, cite, code,
- del, dfn, em, img, ins, kbd, q, s, samp,
- small, strike, strong, sub, sup, tt, var,
- b, u, i, center,
- dl, dt, dd, ol, ul, li,
- fieldset, form, label, legend,
- table, caption, tbody, tfoot, thead, tr, th, td,
- article, aside, canvas, details, embed,
- figure, figcaption, footer, header, hgroup,
- menu, nav, output, ruby, section, summary,
- time, mark, audio, video {
- margin: 0;
- }
+ html,
+ body,
+ div,
+ span,
+ applet,
+ object,
+ iframe,
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6,
+ p,
+ blockquote,
+ pre,
+ a,
+ abbr,
+ acronym,
+ address,
+ big,
+ cite,
+ code,
+ del,
+ dfn,
+ em,
+ img,
+ ins,
+ kbd,
+ q,
+ s,
+ samp,
+ small,
+ strike,
+ strong,
+ sub,
+ sup,
+ tt,
+ var,
+ b,
+ u,
+ i,
+ center,
+ dl,
+ dt,
+ dd,
+ ol,
+ ul,
+ li,
+ fieldset,
+ form,
+ label,
+ legend,
+ table,
+ caption,
+ tbody,
+ tfoot,
+ thead,
+ tr,
+ th,
+ td,
+ article,
+ aside,
+ canvas,
+ details,
+ embed,
+ figure,
+ figcaption,
+ footer,
+ header,
+ hgroup,
+ menu,
+ nav,
+ output,
+ ruby,
+ section,
+ summary,
+ time,
+ mark,
+ audio,
+ video {
+ margin: 0;
+ }
}
.ck-body {
- .ck.ck-balloon-panel {
- z-index: 101000;
- }
+ .ck.ck-balloon-panel {
+ z-index: 101000;
+ }
}
-.formio-component-select select[disabled="disabled"] {
- -webkit-appearance: none;
- -moz-appearance: none;
- text-indent: 1px;
- text-overflow: '';
+.formio-component-select select[disabled='disabled'] {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ text-indent: 1px;
+ text-overflow: '';
}
-.formio-component-select div[disabled="disabled"] button,
-.formio-component-select .choices.is-disabled[data-type*=select-one]:after {
- display: none;
+.formio-component-select div[disabled='disabled'] button,
+.formio-component-select .choices.is-disabled[data-type*='select-one']:after {
+ display: none;
}
.datagrid-group-label.collapsed > td {
- display: none;
+ display: none;
}
.datagrid-group-header {
- &.clickable {
- cursor: pointer;
-
- .datagrid-group-label {
- &:before {
- display: inline-block;
- vertical-align: middle;
- content: '▾';
- margin: 0 5px;
- }
+ &.clickable {
+ cursor: pointer;
+
+ .datagrid-group-label {
+ &:before {
+ display: inline-block;
+ vertical-align: middle;
+ content: '▾';
+ margin: 0 5px;
+ }
+ }
}
- }
- &.clickable.collapsed {
- .datagrid-group-label {
- &:before {
- content: '▸';
- }
+ &.clickable.collapsed {
+ .datagrid-group-label {
+ &:before {
+ content: '▸';
+ }
+ }
}
- }
}
.formio-component.alert-danger .help-block,
.formio-component.alert-warning .help-block {
- color: inherit;
+ color: inherit;
}
.formio-select-autocomplete-input {
- /* we can't use display: none or visibility: hidden because autocomplete won't work on hidden field */
- opacity: 0;
- position: relative;
- z-index: -1;
- display: block;
- height: 0;
- border: none;
+ /* we can't use display: none or visibility: hidden because autocomplete won't work on hidden field */
+ opacity: 0;
+ position: relative;
+ z-index: -1;
+ display: block;
+ height: 0;
+ border: none;
}
.has-error > .help-block {
- margin-top: 5px;
- margin-bottom: 10px;
+ margin-top: 5px;
+ margin-bottom: 10px;
}
-.no-top-border-table
- > .table
- > tbody
- > tr:first-child
- > td {
- border-top: none;
+.no-top-border-table > .table > tbody > tr:first-child > td {
+ border-top: none;
}
.table > tbody > tr > td.cell-align {
- &-left {
- text-align: left;
- }
-
- &-center {
- & > div {
- margin-left: auto;
- margin-right: auto;
+ &-left {
+ text-align: left;
}
- text-align: center;
- }
+ &-center {
+ & > div {
+ margin-left: auto;
+ margin-right: auto;
+ }
- &-right {
- & > div {
- margin-left: auto;
+ text-align: center;
}
- text-align: right;
- }
+ &-right {
+ & > div {
+ margin-left: auto;
+ }
+
+ text-align: right;
+ }
}
-.table-responsive[ref=component] {
- overflow-x: visible;
+.table-responsive[ref='component'] {
+ overflow-x: visible;
}
.formio-component-textarea {
- .alert .ck-editor__editable {
- color: inherit;
- }
+ .alert .ck-editor__editable {
+ color: inherit;
+ }
- .ck.ck-editor__editable .image .ck-progress-bar {
- height: 4px;
- }
+ .ck.ck-editor__editable .image .ck-progress-bar {
+ height: 4px;
+ }
- .ck.ck-editor {
- ul, ol {
- margin-left: 10px;
+ .ck.ck-editor {
+ ul,
+ ol {
+ margin-left: 10px;
+ }
}
- }
}
div[data-oembed-url] {
- width: 100%;
+ width: 100%;
}
-.radio label.label-position-left, .checkbox label.label-position-left,
-.radio label.label-position-top, .checkbox label.label-position-top,
-.radio label.label-position-bottom, .checkbox label.label-position-bottom {
- padding-left: 0;
+.radio label.label-position-left,
+.checkbox label.label-position-left,
+.radio label.label-position-top,
+.checkbox label.label-position-top,
+.radio label.label-position-bottom,
+.checkbox label.label-position-bottom {
+ padding-left: 0;
}
-.radio label.label-position-top span, .checkbox label.label-position-top span,
-.radio label.label-position-bottom span, .checkbox label.label-position-bottom span {
- display: block;
+.radio label.label-position-top span,
+.checkbox label.label-position-top span,
+.radio label.label-position-bottom span,
+.checkbox label.label-position-bottom span {
+ display: block;
}
-.radio label.label-position-top input[type="radio"], .checkbox label.label-position-top input[type="checkbox"],
-.radio label.label-position-bottom input[type="radio"], .checkbox label.label-position-bottom input[type="checkbox"] {
- position: relative;
- margin-left: 0;
+.radio label.label-position-top input[type='radio'],
+.checkbox label.label-position-top input[type='checkbox'],
+.radio label.label-position-bottom input[type='radio'],
+.checkbox label.label-position-bottom input[type='checkbox'] {
+ position: relative;
+ margin-left: 0;
}
-.radio label.label-position-top input[type="radio"], .checkbox label.label-position-top input[type="checkbox"] {
- margin-top: 4px;
+.radio label.label-position-top input[type='radio'],
+.checkbox label.label-position-top input[type='checkbox'] {
+ margin-top: 4px;
}
-.radio label.label-position-bottom input[type="radio"], .checkbox label.label-position-bottom input[type="checkbox"] {
- margin-bottom: 8px;
+.radio label.label-position-bottom input[type='radio'],
+.checkbox label.label-position-bottom input[type='checkbox'] {
+ margin-bottom: 8px;
}
-.radio label.label-position-left input[type="radio"] {
- margin-left: 10px;
+.radio label.label-position-left input[type='radio'] {
+ margin-left: 10px;
}
-.checkbox label.label-position-left input[type=checkbox] {
- margin-left: 4px;
- position: relative;
+.checkbox label.label-position-left input[type='checkbox'] {
+ margin-left: 4px;
+ position: relative;
}
.open-modal-button {
- width: 100%;
- text-align: left;
- white-space: normal;
- height: auto;
+ width: 100%;
+ text-align: left;
+ white-space: normal;
+ height: auto;
}
.formio-component-modal-wrapper-signature .open-modal-button {
- text-align: center;
- height: 100%;
- font-size: 1.4em;
- padding: 0;
- margin: 0;
+ text-align: center;
+ height: 100%;
+ font-size: 1.4em;
+ padding: 0;
+ margin: 0;
}
/* ckeditor5-image/theme/image.css */
.formio-component-content .image {
- display: table;
- clear: both;
- text-align: center;
- margin: 1em auto
+ display: table;
+ clear: both;
+ text-align: center;
+ margin: 1em auto;
}
/* ckeditor5-image/theme/image.css */
.formio-component-content .image > img {
- display: block;
- margin: 0 auto;
- max-width: 100%;
- min-width: 50px;
+ display: block;
+ margin: 0 auto;
+ max-width: 100%;
+ min-width: 50px;
}
/* ckeditor5-image/theme/imagecaption.css */
.formio-component-content .image > figcaption {
- display: table-caption;
- caption-side: bottom;
- word-break: break-word;
- color: hsl(0, 0%, 20%);
- background-color: hsl(0, 0%, 97%);
- padding: .6em;
- font-size: .75em;
- outline-offset: -1px;
+ display: table-caption;
+ caption-side: bottom;
+ word-break: break-word;
+ color: hsl(0, 0%, 20%);
+ background-color: hsl(0, 0%, 97%);
+ padding: 0.6em;
+ font-size: 0.75em;
+ outline-offset: -1px;
}
/* ckeditor5-image/theme/imageresize.css */
.formio-component-content .image.image_resized {
- max-width: 100%;
- display: block;
- box-sizing: border-box
+ max-width: 100%;
+ display: block;
+ box-sizing: border-box;
}
/* ckeditor5-image/theme/imageresize.css */
.formio-component-content .image.image_resized img {
- width: 100%;
+ width: 100%;
}
/* ckeditor5-image/theme/imageresize.css */
.formio-component-content .image.image_resized > figcaption {
- display: block;
+ display: block;
}
/* ckeditor5-media-embed/theme/mediaembed.css */
.formio-component-content .media {
- clear: both;
- margin: 1em 0;
- display: block;
- min-width: 15em;
+ clear: both;
+ margin: 1em 0;
+ display: block;
+ min-width: 15em;
}
/* ckeditor5-image/theme/imagestyle.css */
-.formio-component-content .image-style-side:not(.image_resized), .formio-component-content .image-style-align-left:not(.image_resized), .formio-component-content .image-style-align-center:not(.image_resized), .formio-component-content .image-style-align-right:not(.image_resized) {
- max-width: 50%;
+.formio-component-content .image-style-side:not(.image_resized),
+.formio-component-content .image-style-align-left:not(.image_resized),
+.formio-component-content .image-style-align-center:not(.image_resized),
+.formio-component-content .image-style-align-right:not(.image_resized) {
+ max-width: 50%;
}
/* ckeditor5-image/theme/imagestyle.css */
-.formio-component-content .image-style-side:not(.image_resized), .formio-component-content .image-style-align-left:not(.image_resized), .formio-component-content .image-style-align-center:not(.image_resized), .formio-component-content .image-style-align-right:not(.image_resized) {
- max-width: 50%;
+.formio-component-content .image-style-side:not(.image_resized),
+.formio-component-content .image-style-align-left:not(.image_resized),
+.formio-component-content .image-style-align-center:not(.image_resized),
+.formio-component-content .image-style-align-right:not(.image_resized) {
+ max-width: 50%;
}
/* ckeditor5-image/theme/imagestyle.css */
-.formio-component-content .image-style-side:not(.image_resized), .formio-component-content .image-style-align-left:not(.image_resized), .formio-component-content .image-style-align-center:not(.image_resized), .formio-component-content .image-style-align-right:not(.image_resized) {
- max-width: 50%;
+.formio-component-content .image-style-side:not(.image_resized),
+.formio-component-content .image-style-align-left:not(.image_resized),
+.formio-component-content .image-style-align-center:not(.image_resized),
+.formio-component-content .image-style-align-right:not(.image_resized) {
+ max-width: 50%;
}
/* ckeditor5-image/theme/imagestyle.css */
-.formio-component-content .image-style-side:not(.image_resized), .formio-component-content .image-style-align-left:not(.image_resized), .formio-component-content .image-style-align-center:not(.image_resized), .formio-component-content .image-style-align-right:not(.image_resized) {
- max-width: 50%;
+.formio-component-content .image-style-side:not(.image_resized),
+.formio-component-content .image-style-align-left:not(.image_resized),
+.formio-component-content .image-style-align-center:not(.image_resized),
+.formio-component-content .image-style-align-right:not(.image_resized) {
+ max-width: 50%;
}
/* ckeditor5-image/theme/imagestyle.css */
.formio-component-content .image-style-side {
- float: right;
- margin-left: var(--ck-image-style-spacing);
+ float: right;
+ margin-left: var(--ck-image-style-spacing);
}
/* ckeditor5-image/theme/imagestyle.css */
.formio-component-content .image-style-align-left {
- float: left;
- margin-right: var(--ck-image-style-spacing);
+ float: left;
+ margin-right: var(--ck-image-style-spacing);
}
/* ckeditor5-image/theme/imagestyle.css */
.formio-component-content .image-style-align-center {
- margin-left: auto;
- margin-right: auto;
+ margin-left: auto;
+ margin-right: auto;
}
/* ckeditor5-image/theme/imagestyle.css */
.formio-component-content .image-style-align-right {
- float: right;
- margin-left: var(--ck-image-style-spacing);
+ float: right;
+ margin-left: var(--ck-image-style-spacing);
}
/* ckeditor5-block-quote/theme/blockquote.css */
.formio-component-content blockquote {
- overflow: hidden;
- padding-right: 1.5em;
- padding-left: 1.5em;
- margin-left: 0;
- margin-right: 0;
- font-style: italic;
- border-left: solid 5px hsl(0, 0%, 80%);
+ overflow: hidden;
+ padding-right: 1.5em;
+ padding-left: 1.5em;
+ margin-left: 0;
+ margin-right: 0;
+ font-style: italic;
+ border-left: solid 5px hsl(0, 0%, 80%);
}
/* ckeditor5-block-quote/theme/blockquote.css */
-.formio-component-content[dir="rtl"] blockquote {
- border-left: 0;
- border-right: solid 5px hsl(0, 0%, 80%);
+.formio-component-content[dir='rtl'] blockquote {
+ border-left: 0;
+ border-right: solid 5px hsl(0, 0%, 80%);
}
.formio-component-content {
- & .text-tiny {
- font-size: 0.7em;
- }
+ & .text-tiny {
+ font-size: 0.7em;
+ }
- & .text-small {
- font-size: 0.85em;
- }
+ & .text-small {
+ font-size: 0.85em;
+ }
- & .text-big {
- font-size: 1.4em;
- }
+ & .text-big {
+ font-size: 1.4em;
+ }
- & .text-huge {
- font-size: 1.8em;
- }
+ & .text-huge {
+ font-size: 1.8em;
+ }
- ol {
- padding-inline-start: 40px;
- }
+ ol {
+ padding-inline-start: 40px;
+ }
}
.formio-component-address.formio-component-label-hidden {
- & > label.field-required {
- z-index: 1;
-
- & ~ .address-autocomplete-container .address-autocomplete-remove-value-icon {
- right: 20px;
+ & > label.field-required {
+ z-index: 1;
+
+ &
+ ~ .address-autocomplete-container
+ .address-autocomplete-remove-value-icon {
+ right: 20px;
+ }
}
- }
}
.address-autocomplete-container {
- position: relative;
+ position: relative;
- .address-autocomplete-remove-value-icon {
- cursor: pointer;
- position: absolute;
- margin-top: -9px;
- right: 10px;
- top: 50%;
+ .address-autocomplete-remove-value-icon {
+ cursor: pointer;
+ position: absolute;
+ margin-top: -9px;
+ right: 10px;
+ top: 50%;
- &--hidden {
- display: none;
+ &--hidden {
+ display: none;
+ }
}
- }
}
.autocomplete {
- background: white;
- font: 14px/22px "-apple-system", BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
- overflow: auto;
- box-sizing: border-box;
- border: 1px solid rgba(50, 50, 50, 0.6);
- z-index: $autocomplete-in-dialog-z-index;
+ background: white;
+ font: 14px/22px '-apple-system', BlinkMacSystemFont, 'Segoe UI', Roboto,
+ 'Helvetica Neue', Arial, sans-serif;
+ overflow: auto;
+ box-sizing: border-box;
+ border: 1px solid rgba(50, 50, 50, 0.6);
+ z-index: $autocomplete-in-dialog-z-index;
}
.autocomplete > div {
- cursor: pointer;
- padding: 6px 10px;
+ cursor: pointer;
+ padding: 6px 10px;
}
.autocomplete > div:hover:not(.group),
.autocomplete > div.selected {
- background: #1e90ff;
- color: #ffffff;
+ background: #1e90ff;
+ color: #ffffff;
}
.field-wrapper {
- display: flex;
+ display: flex;
- &--reverse {
- flex-direction: row-reverse;
- }
+ &--reverse {
+ flex-direction: row-reverse;
+ }
- .field-label--right {
- text-align: right;
- }
+ .field-label--right {
+ text-align: right;
+ }
}
.formio-component-modal-wrapper {
- margin-bottom: 10px;
- .open-modal-button {
- height: auto;
- }
- .component-rendering-hidden {
- visibility: hidden;
- }
+ margin-bottom: 10px;
+ .open-modal-button {
+ height: auto;
+ }
+ .component-rendering-hidden {
+ visibility: hidden;
+ }
}
//show textarea submission in read-only mode and PDF view with initial line and space formatting
.formio-component-textarea {
- div.formio-editor-read-only-content[ref="input"] {
- white-space: pre-wrap;
- }
+ div.formio-editor-read-only-content[ref='input'] {
+ white-space: pre-wrap;
+ }
}
.formio-editor-read-only-content {
- img {
- max-width: 100%;
- }
+ img {
+ max-width: 100%;
+ }
- li[data-list="bullet"] {
- list-style-type: none;
+ li[data-list='bullet'] {
+ list-style-type: none;
- .ql-ui{
- padding-right: 0.5rem;
+ .ql-ui {
+ padding-right: 0.5rem;
- &::before {
- content: "\2022";
- }
+ &::before {
+ content: '\2022';
+ }
+ }
}
- }
- li[data-list="ordered"] {
- list-style-type: none;
- counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
- counter-increment: list-0;
+ li[data-list='ordered'] {
+ list-style-type: none;
+ counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8
+ list-9;
+ counter-increment: list-0;
- .ql-ui {
- padding-right: 0.5rem;
+ .ql-ui {
+ padding-right: 0.5rem;
- &::before {
- content: counter(list-0, decimal) '. ';
- }
+ &::before {
+ content: counter(list-0, decimal) '. ';
+ }
+ }
}
- }
- figure.table {
- table {
- border-collapse: collapse;
- border-spacing: 0;
- width: 100%;
- height: 100%;
- border: 1px double #b3b3b3;
- table-layout: fixed;
-
- th, td {
- min-width: 2em;
- padding: .4em;
- border: 1px solid #bfbfbf;
- }
+ figure.table {
+ table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ width: 100%;
+ height: 100%;
+ border: 1px double #b3b3b3;
+ table-layout: fixed;
+
+ th,
+ td {
+ min-width: 2em;
+ padding: 0.4em;
+ border: 1px solid #bfbfbf;
+ }
+ }
}
- }
}
.formio-component-textfield,
.formio-component-textarea,
.formio-component-password {
- .pull-right:not(:last-child) {
- padding-left: 12px;
- }
+ .pull-right:not(:last-child) {
+ padding-left: 12px;
+ }
}
.formio-form > div > nav > ul.pagination {
- flex-flow: wrap row;
- justify-content: flex-start;
+ flex-flow: wrap row;
+ justify-content: flex-start;
- .page-link {
- cursor: pointer;
- color: #1C74D9;
- }
+ .page-link {
+ cursor: pointer;
+ color: #1c74d9;
+ }
- .page-item.active .page-link {
- color: #fff;
- background-color: #1C74D9;
- border-color: #1C74D9;
- }
+ .page-item.active .page-link {
+ color: #fff;
+ background-color: #1c74d9;
+ border-color: #1c74d9;
+ }
}
.classic-pagination {
- border-bottom: solid 1px #e0e0e0;
- padding: 0 15px 10px 15px;
- line-height: 1em;
+ border-bottom: solid 1px #e0e0e0;
+ padding: 0 15px 10px 15px;
+ line-height: 1em;
- &-page {
- padding: 0;
- position: relative;
- }
-
- &-title {
- color: #595959;
- font-size: 16px;
- margin-bottom: 5px;
- }
+ &-page {
+ padding: 0;
+ position: relative;
+ }
- &-dot {
- position: absolute;
- width: 30px;
- height: 30px;
- display: block;
- background: #fbe8aa;
- top: 40px;
- left: 50%;
- margin-top: -15px;
- margin-left: -15px;
- border-radius: 50%;
-
- &::after {
- content: ' ';
- width: 14px;
- height: 14px;
- background: #fbbd19;
- border-radius: 50px;
- position: absolute;
- top: 8px;
- left: 8px;
- }
- }
-
- .progress, &-progress {
- position: relative;
- border-radius: 0px;
- height: 8px;
- box-shadow: none;
- margin: 20px 0;
- border: none;
- padding: 0;
- background-color: #f6f6f6;
+ &-title {
+ color: #595959;
+ font-size: 16px;
+ margin-bottom: 5px;
+ }
- &-bar {
- width: 0px;
- height: 10px;
- box-shadow: none;
- background: #fbe8aa;
+ &-dot {
+ position: absolute;
+ width: 30px;
+ height: 30px;
+ display: block;
+ background: #fbe8aa;
+ top: 40px;
+ left: 50%;
+ margin-top: -15px;
+ margin-left: -15px;
+ border-radius: 50%;
+
+ &::after {
+ content: ' ';
+ width: 14px;
+ height: 14px;
+ background: #fbbd19;
+ border-radius: 50px;
+ position: absolute;
+ top: 8px;
+ left: 8px;
+ }
}
- }
-}
-.classic-pagination-page {
- &.complete {
- .progress-bar, .classic-pagination-progress-bar {
- width: 100%;
- }
- }
- &.active {
- .progress-bar, .classic-pagination-progress-bar {
- width: 50%;
- }
- }
- &.disabled {
- .classic-pagination-dot {
- background-color: #f5f5f5;
- &::after{
- opacity: 0;
- }
+ .progress,
+ &-progress {
+ position: relative;
+ border-radius: 0px;
+ height: 8px;
+ box-shadow: none;
+ margin: 20px 0;
+ border: none;
+ padding: 0;
+ background-color: #f6f6f6;
+
+ &-bar {
+ width: 0px;
+ height: 10px;
+ box-shadow: none;
+ background: #fbe8aa;
+ }
}
- }
}
-.classic-pagination-page {
- &:first-child {
- .progress, .classic-pagination-progress {
- left: 50%;
- width: 50%;
+.classic-pagination-page {
+ &.complete {
+ .progress-bar,
+ .classic-pagination-progress-bar {
+ width: 100%;
+ }
}
-
&.active {
- .progress-bar, .classic-pagination-progress-bar {
- width: 0%;
- }
+ .progress-bar,
+ .classic-pagination-progress-bar {
+ width: 50%;
+ }
+ }
+ &.disabled {
+ .classic-pagination-dot {
+ background-color: #f5f5f5;
+ &::after {
+ opacity: 0;
+ }
+ }
}
- }
+}
- &:last-child {
- .progress, .classic-pagination-progress {
- width: 50%;
+.classic-pagination-page {
+ &:first-child {
+ .progress,
+ .classic-pagination-progress {
+ left: 50%;
+ width: 50%;
+ }
+
+ &.active {
+ .progress-bar,
+ .classic-pagination-progress-bar {
+ width: 0%;
+ }
+ }
}
- &.active {
- .progress-bar, .classic-pagination-progress-bar {
- width: 100%;
- }
+ &:last-child {
+ .progress,
+ .classic-pagination-progress {
+ width: 50%;
+ }
+
+ &.active {
+ .progress-bar,
+ .classic-pagination-progress-bar {
+ width: 100%;
+ }
+ }
}
- }
}
//styles for google maps dropdown
.pac-container {
- z-index: 11000;
+ z-index: 11000;
}
[ref='buttonMessageContainer'].has-error {
- cursor: pointer;
+ cursor: pointer;
}
-[ref="passwordStrengthIndicator"] {
- display: inline;
+[ref='passwordStrengthIndicator'] {
+ display: inline;
}
.formio-security-indicator {
- display: flex;
- height: 5px;
-
- [class^="security-"] {
- width: 100%;
- height: 100%;
- }
-
- .security-low {
- background-color: #c51e00;
- }
-
- .security-medium {
- background-color: #ebb400;
- }
+ display: flex;
+ height: 5px;
- .security-high {
- background-color: #bddf00;
- }
+ [class^='security-'] {
+ width: 100%;
+ height: 100%;
+ }
- .security-very-high {
- background-color: #009118;
- }
-}
+ .security-low {
+ background-color: #c51e00;
+ }
-.formio-component-textarea {
- .formio-editor-read-only-content {
- .text-big {
- font-size: 1.4em;
+ .security-medium {
+ background-color: #ebb400;
}
- .text-huge {
- font-size: 1.8em;
+ .security-high {
+ background-color: #bddf00;
}
- .text-small {
- font-size: 0.85em;
+ .security-very-high {
+ background-color: #009118;
}
+}
- .text-tiny {
- font-size: 0.7em;
+.formio-component-textarea {
+ .formio-editor-read-only-content {
+ .text-big {
+ font-size: 1.4em;
+ }
+
+ .text-huge {
+ font-size: 1.8em;
+ }
+
+ .text-small {
+ font-size: 0.85em;
+ }
+
+ .text-tiny {
+ font-size: 0.7em;
+ }
}
- }
}
-.formio-component [ref="valueMaskInput"] {
- display: none;
+.formio-component [ref='valueMaskInput'] {
+ display: none;
}
.formio-wizard-nav-container {
- display: flex;
-
- li {
- margin-right: 0.5rem;
- }
-
- @media not all and (min-width: 30em) {
- flex-direction: column;
+ display: flex;
li {
- margin-right: 0;
+ margin-right: 0.5rem;
}
- li .btn {
- width: 100%;
- margin-bottom: 0.25rem;
+ @media not all and (min-width: 30em) {
+ flex-direction: column;
+
+ li {
+ margin-right: 0;
+ }
+
+ li .btn {
+ width: 100%;
+ margin-bottom: 0.25rem;
+ }
}
- }
}
//styles for accessible tooltip
.formio-tooltip__trigger {
- cursor: pointer;
+ cursor: pointer;
}
.formio-tooltip__body {
- background-color: #1b1b1b;
- border-radius: 0.25rem;
- bottom: 0;
- color: #f0f0f0;
- display: none;
- font-size: 1rem;
- padding: 0.5rem;
- position: absolute;
- left: 0;
- transform: translateX(-50%);
- width: auto;
- white-space: pre;
- z-index: 1000;
-
- &.formio-tooltip--is-set {
- display: block;
- }
+ background-color: #1b1b1b;
+ border-radius: 0.25rem;
+ bottom: 0;
+ color: #f0f0f0;
+ display: none;
+ font-size: 1rem;
+ padding: 0.5rem;
+ position: absolute;
+ left: 0;
+ transform: translateX(-50%);
+ width: auto;
+ white-space: pre;
+ z-index: 1000;
- &--whitespace {
- white-space: normal;
- width: 250px;
- }
+ &.formio-tooltip--is-set {
+ display: block;
+ }
- &--right {
- top: auto;
- transform: translateX(0);
- }
+ &--whitespace {
+ white-space: normal;
+ width: 250px;
+ }
- &--left {
- top: auto;
- left: 0;
- right: auto;
- transform: translateX(0);
- }
+ &--right {
+ top: auto;
+ transform: translateX(0);
+ }
- &--bottom {
- bottom: auto;
- top: 0;
- }
+ &--left {
+ top: auto;
+ left: 0;
+ right: auto;
+ transform: translateX(0);
+ }
+
+ &--bottom {
+ bottom: auto;
+ top: 0;
+ }
}
.formio-tooltip__wrapper {
- position: relative;
- & > span {
- font-weight: normal;
- }
+ position: relative;
+ & > span {
+ font-weight: normal;
+ }
}
-.ace_editor, .ace_editor div, .ace_editor span {
- font-family: "Monaco", "Menlo", "Ubuntu Mono", "Droid Sans Mono", "Consolas", monospace !important;
+.ace_editor,
+.ace_editor div,
+.ace_editor span {
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Droid Sans Mono', 'Consolas',
+ monospace !important;
}
-span[role="link"] {
- text-decoration: underline;
- cursor: pointer;
+span[role='link'] {
+ text-decoration: underline;
+ cursor: pointer;
}
.hidden {
- display: none !important;
+ display: none !important;
}
.align-center {
- display: flex;
- align-items: center;
+ display: flex;
+ align-items: center;
}
.justify-center {
- display: flex;
- justify-content: center;
+ display: flex;
+ justify-content: center;
}
diff --git a/src/utils/conditionOperators/ConditionOperator.js b/src/utils/conditionOperators/ConditionOperator.js
index 43d77d1e05..ef46aafdb5 100644
--- a/src/utils/conditionOperators/ConditionOperator.js
+++ b/src/utils/conditionOperators/ConditionOperator.js
@@ -22,7 +22,9 @@ export default class ConditionOperator {
const { value } = options;
if (_.isArray(value)) {
- return _.some(value, valueItem => this.execute({ ...options, value: valueItem }));
+ return _.some(value, (valueItem) =>
+ this.execute({ ...options, value: valueItem }),
+ );
}
return this.execute(options);
diff --git a/src/utils/conditionOperators/DateGreaterThan.js b/src/utils/conditionOperators/DateGreaterThan.js
index 81eda99fea..9e65031f7f 100644
--- a/src/utils/conditionOperators/DateGreaterThan.js
+++ b/src/utils/conditionOperators/DateGreaterThan.js
@@ -10,9 +10,18 @@ export default class DateGeaterThan extends ConditionOperator {
}
getFormattedDates({ value, comparedValue, conditionTriggerComponent }) {
- const hasValidationFormat = conditionTriggerComponent ? conditionTriggerComponent.getValidationFormat : null;
- const date = hasValidationFormat ? moment(value, conditionTriggerComponent.getValidationFormat()) : moment(value);
- const comparedDate = hasValidationFormat ? moment(comparedValue, conditionTriggerComponent.getValidationFormat()) : moment(comparedValue);
+ const hasValidationFormat = conditionTriggerComponent
+ ? conditionTriggerComponent.getValidationFormat
+ : null;
+ const date = hasValidationFormat
+ ? moment(value, conditionTriggerComponent.getValidationFormat())
+ : moment(value);
+ const comparedDate = hasValidationFormat
+ ? moment(
+ comparedValue,
+ conditionTriggerComponent.getValidationFormat(),
+ )
+ : moment(comparedValue);
return { date, comparedDate };
}
@@ -27,14 +36,23 @@ export default class DateGeaterThan extends ConditionOperator {
let conditionTriggerComponent = null;
if (instance && instance.root) {
- conditionTriggerComponent = instance.root.getComponent(conditionComponentPath);
+ conditionTriggerComponent = instance.root.getComponent(
+ conditionComponentPath,
+ );
}
- if ( conditionTriggerComponent && conditionTriggerComponent.isPartialDay && conditionTriggerComponent.isPartialDay(value)) {
+ if (
+ conditionTriggerComponent &&
+ conditionTriggerComponent.isPartialDay &&
+ conditionTriggerComponent.isPartialDay(value)
+ ) {
return false;
}
- const { date, comparedDate } = this.getFormattedDates({ ...options, conditionTriggerComponent });
+ const { date, comparedDate } = this.getFormattedDates({
+ ...options,
+ conditionTriggerComponent,
+ });
return date[functionName](comparedDate);
}
diff --git a/src/utils/conditionOperators/EndsWith.js b/src/utils/conditionOperators/EndsWith.js
index a69f58b2a8..a66dbc2b10 100644
--- a/src/utils/conditionOperators/EndsWith.js
+++ b/src/utils/conditionOperators/EndsWith.js
@@ -11,6 +11,6 @@ export default class EndsWith extends ConditionOperator {
}
execute({ value, comparedValue }) {
- return _.endsWith(value, comparedValue);
+ return _.endsWith(value, comparedValue);
}
}
diff --git a/src/utils/conditionOperators/GreaterThan.js b/src/utils/conditionOperators/GreaterThan.js
index b04db5f41d..4fa259b190 100644
--- a/src/utils/conditionOperators/GreaterThan.js
+++ b/src/utils/conditionOperators/GreaterThan.js
@@ -11,6 +11,6 @@ export default class GeaterThan extends ConditionOperator {
}
execute({ value, comparedValue }) {
- return _.isNumber(value) && value > comparedValue;
+ return _.isNumber(value) && value > comparedValue;
}
}
diff --git a/src/utils/conditionOperators/GreaterThanOrEqual.js b/src/utils/conditionOperators/GreaterThanOrEqual.js
index 7a351a1dbe..8f76250255 100644
--- a/src/utils/conditionOperators/GreaterThanOrEqual.js
+++ b/src/utils/conditionOperators/GreaterThanOrEqual.js
@@ -11,6 +11,9 @@ export default class GreaterThanOrEqual extends ConditionOperator {
}
execute({ value, comparedValue }) {
- return _.isNumber(value) && (value > comparedValue || _.isEqual(value, comparedValue));
+ return (
+ _.isNumber(value) &&
+ (value > comparedValue || _.isEqual(value, comparedValue))
+ );
}
}
diff --git a/src/utils/conditionOperators/Includes.js b/src/utils/conditionOperators/Includes.js
index 8ec7f69c20..a47e2a33ec 100644
--- a/src/utils/conditionOperators/Includes.js
+++ b/src/utils/conditionOperators/Includes.js
@@ -11,6 +11,6 @@ export default class Includes extends ConditionOperator {
}
execute({ value, comparedValue }) {
- return _.includes(value, comparedValue);
+ return _.includes(value, comparedValue);
}
}
diff --git a/src/utils/conditionOperators/IsEmptyValue.js b/src/utils/conditionOperators/IsEmptyValue.js
index d1c280680f..0f2198abbe 100644
--- a/src/utils/conditionOperators/IsEmptyValue.js
+++ b/src/utils/conditionOperators/IsEmptyValue.js
@@ -18,11 +18,15 @@ export default class IsEmptyValue extends ConditionOperator {
const isEmptyValue = _.isEmpty(value);
if (instance && instance.root) {
- const conditionTriggerComponent = instance.root.getComponent(conditionComponentPath);
- return conditionTriggerComponent ? conditionTriggerComponent.isEmpty() : isEmptyValue;
+ const conditionTriggerComponent = instance.root.getComponent(
+ conditionComponentPath,
+ );
+ return conditionTriggerComponent
+ ? conditionTriggerComponent.isEmpty()
+ : isEmptyValue;
}
- return isEmptyValue;
+ return isEmptyValue;
}
getResult(options) {
diff --git a/src/utils/conditionOperators/IsEqualTo.js b/src/utils/conditionOperators/IsEqualTo.js
index 53c94b657d..c4e78389e5 100644
--- a/src/utils/conditionOperators/IsEqualTo.js
+++ b/src/utils/conditionOperators/IsEqualTo.js
@@ -12,42 +12,58 @@ export default class IsEqualTo extends ConditionOperator {
}
execute({ value, comparedValue, instance, conditionComponentPath }) {
- if (value && comparedValue && typeof value !== typeof comparedValue && _.isString(comparedValue)) {
+ if (
+ value &&
+ comparedValue &&
+ typeof value !== typeof comparedValue &&
+ _.isString(comparedValue)
+ ) {
try {
comparedValue = JSON.parse(comparedValue);
+ } catch (e) {
+ // eslint-disable-next-line no-empty
}
- // eslint-disable-next-line no-empty
- catch (e) {}
}
if (instance && instance.root) {
- const conditionTriggerComponent = instance.root.getComponent(conditionComponentPath);
+ const conditionTriggerComponent = instance.root.getComponent(
+ conditionComponentPath,
+ );
if (
- conditionTriggerComponent
- && isSelectResourceWithObjectValue(conditionTriggerComponent.component)
- && conditionTriggerComponent.component?.template
+ conditionTriggerComponent &&
+ isSelectResourceWithObjectValue(
+ conditionTriggerComponent.component,
+ ) &&
+ conditionTriggerComponent.component?.template
) {
if (!value || !_.isPlainObject(value)) {
return false;
}
- const { template, valueProperty } = conditionTriggerComponent.component;
+ const { template, valueProperty } =
+ conditionTriggerComponent.component;
if (valueProperty === 'data') {
value = { data: value };
comparedValue = { data: comparedValue };
}
- return _.every(getItemTemplateKeys(template) || [], k => _.isEqual(_.get(value, k), _.get(comparedValue, k)));
+ return _.every(getItemTemplateKeys(template) || [], (k) =>
+ _.isEqual(_.get(value, k), _.get(comparedValue, k)),
+ );
}
}
//special check for select boxes
- if (_.isObject(value) && comparedValue && _.isBoolean(value[comparedValue])) {
+ if (
+ _.isObject(value) &&
+ comparedValue &&
+ _.isBoolean(value[comparedValue])
+ ) {
return value[comparedValue];
}
- return _.isEqual(value, comparedValue);
+ return _.isEqual(value, comparedValue);
}
}
diff --git a/src/utils/conditionOperators/IsNotEmptyValue.js b/src/utils/conditionOperators/IsNotEmptyValue.js
index f0eafb0dbf..e05a138cb0 100644
--- a/src/utils/conditionOperators/IsNotEmptyValue.js
+++ b/src/utils/conditionOperators/IsNotEmptyValue.js
@@ -1,4 +1,4 @@
-import IsEmptyValue from './IsEmptyValue';
+import IsEmptyValue from './IsEmptyValue';
export default class IsNotEmptyValue extends IsEmptyValue {
static get operatorKey() {
@@ -10,6 +10,6 @@ export default class IsNotEmptyValue extends IsEmptyValue {
}
getResult(options) {
- return !super.getResult(options);
+ return !super.getResult(options);
}
}
diff --git a/src/utils/conditionOperators/LessThan.js b/src/utils/conditionOperators/LessThan.js
index be06837c71..098dc0d432 100644
--- a/src/utils/conditionOperators/LessThan.js
+++ b/src/utils/conditionOperators/LessThan.js
@@ -11,6 +11,6 @@ export default class LessThan extends ConditionOperator {
}
execute({ value, comparedValue }) {
- return _.isNumber(value) && value < comparedValue;
+ return _.isNumber(value) && value < comparedValue;
}
}
diff --git a/src/utils/conditionOperators/LessThanOrEqual.js b/src/utils/conditionOperators/LessThanOrEqual.js
index 682cfb407d..e42efd3f4d 100644
--- a/src/utils/conditionOperators/LessThanOrEqual.js
+++ b/src/utils/conditionOperators/LessThanOrEqual.js
@@ -11,6 +11,9 @@ export default class LessThanOrEqual extends ConditionOperator {
}
execute({ value, comparedValue }) {
- return _.isNumber(value) && (value < comparedValue || _.isEqual(value, comparedValue));
+ return (
+ _.isNumber(value) &&
+ (value < comparedValue || _.isEqual(value, comparedValue))
+ );
}
}
diff --git a/src/utils/conditionOperators/NotIncludes.js b/src/utils/conditionOperators/NotIncludes.js
index 99a8ebcbf5..1c500ab07f 100644
--- a/src/utils/conditionOperators/NotIncludes.js
+++ b/src/utils/conditionOperators/NotIncludes.js
@@ -10,6 +10,6 @@ export default class NotIncludes extends Includes {
}
execute(options) {
- return !super.execute(options);
+ return !super.execute(options);
}
}
diff --git a/src/utils/conditionOperators/StartsWith.js b/src/utils/conditionOperators/StartsWith.js
index 7504ecf580..1d2828ff70 100644
--- a/src/utils/conditionOperators/StartsWith.js
+++ b/src/utils/conditionOperators/StartsWith.js
@@ -11,6 +11,6 @@ export default class StartsWith extends ConditionOperator {
}
execute({ value, comparedValue }) {
- return _.startsWith(value, comparedValue);
+ return _.startsWith(value, comparedValue);
}
}
diff --git a/src/utils/conditionOperators/index.js b/src/utils/conditionOperators/index.js
index d47ca8482d..c4769ab138 100644
--- a/src/utils/conditionOperators/index.js
+++ b/src/utils/conditionOperators/index.js
@@ -18,24 +18,24 @@ import IsDateEqual from './IsDateEqual';
import IsNotDateEqual from './IsNotDateEqual';
const ConditionOperators = {
- [`${IsNotEqualTo.operatorKey}`]: IsNotEqualTo,
- [`${IsEqualTo.operatorKey}`]: IsEqualTo,
- [`${IsEmptyValue.operatorKey}`]: IsEmptyValue,
- [`${IsNotEmptyValue.operatorKey}`]: IsNotEmptyValue,
- [`${LessThan.operatorKey}`]: LessThan,
- [`${GreaterThan.operatorKey}`]: GreaterThan,
- [`${DateGreaterThan.operatorKey}`]: DateGreaterThan,
- [`${DateLessThan.operatorKey}`]: DateLessThan,
- [`${Includes.operatorKey}`]: Includes,
- [`${StartsWith.operatorKey}`]: StartsWith,
- [`${EndsWith.operatorKey}`]: EndsWith,
- [`${NotIncludes.operatorKey}`]: NotIncludes,
- [`${DateGreaterThanOrEqual.operatorKey}`]: DateGreaterThanOrEqual,
- [`${DateLessThanOrEqual.operatorKey}`]: DateLessThanOrEqual,
- [`${LessThanOrEqual.operatorKey}`]: LessThanOrEqual,
- [`${GreaterThanOrEqual.operatorKey}`]: GreaterThanOrEqual,
- [`${IsDateEqual.operatorKey}`]: IsDateEqual,
- [`${IsNotDateEqual.operatorKey}`]: IsNotDateEqual
+ [`${IsNotEqualTo.operatorKey}`]: IsNotEqualTo,
+ [`${IsEqualTo.operatorKey}`]: IsEqualTo,
+ [`${IsEmptyValue.operatorKey}`]: IsEmptyValue,
+ [`${IsNotEmptyValue.operatorKey}`]: IsNotEmptyValue,
+ [`${LessThan.operatorKey}`]: LessThan,
+ [`${GreaterThan.operatorKey}`]: GreaterThan,
+ [`${DateGreaterThan.operatorKey}`]: DateGreaterThan,
+ [`${DateLessThan.operatorKey}`]: DateLessThan,
+ [`${Includes.operatorKey}`]: Includes,
+ [`${StartsWith.operatorKey}`]: StartsWith,
+ [`${EndsWith.operatorKey}`]: EndsWith,
+ [`${NotIncludes.operatorKey}`]: NotIncludes,
+ [`${DateGreaterThanOrEqual.operatorKey}`]: DateGreaterThanOrEqual,
+ [`${DateLessThanOrEqual.operatorKey}`]: DateLessThanOrEqual,
+ [`${LessThanOrEqual.operatorKey}`]: LessThanOrEqual,
+ [`${GreaterThanOrEqual.operatorKey}`]: GreaterThanOrEqual,
+ [`${IsDateEqual.operatorKey}`]: IsDateEqual,
+ [`${IsNotDateEqual.operatorKey}`]: IsNotDateEqual,
};
export default ConditionOperators;
diff --git a/src/utils/fixtures/components.json b/src/utils/fixtures/components.json
index 292726cfb7..dbf326d9b9 100644
--- a/src/utils/fixtures/components.json
+++ b/src/utils/fixtures/components.json
@@ -1,90 +1,90 @@
[
- {
- "type": "textfield",
- "key": "one",
- "order": 1
- },
- {
- "input": false,
- "key": "parent1",
- "components": [
- {
+ {
"type": "textfield",
- "key": "two",
- "order": 2
- },
- {
+ "key": "one",
+ "order": 1
+ },
+ {
"input": false,
- "key": "parent2",
- "columns": [
- {
- "components": [
- {
+ "key": "parent1",
+ "components": [
+ {
"type": "textfield",
- "key": "three",
- "order": 3
- }
- ]
- },
- {
- "components": [
- {
- "rows": [
- [
+ "key": "two",
+ "order": 2
+ },
+ {
+ "input": false,
+ "key": "parent2",
+ "columns": [
{
- "components": [
- {
- "key": "four",
- "order": 4,
- "type": "textfield"
- }
- ]
+ "components": [
+ {
+ "type": "textfield",
+ "key": "three",
+ "order": 3
+ }
+ ]
},
{
- "components": [
- {
- "key": "five",
- "order": 5,
- "type": "textfield"
- }
- ]
+ "components": [
+ {
+ "rows": [
+ [
+ {
+ "components": [
+ {
+ "key": "four",
+ "order": 4,
+ "type": "textfield"
+ }
+ ]
+ },
+ {
+ "components": [
+ {
+ "key": "five",
+ "order": 5,
+ "type": "textfield"
+ }
+ ]
+ }
+ ],
+ [
+ {
+ "components": [
+ {
+ "key": "six",
+ "order": 6,
+ "type": "textfield"
+ }
+ ]
+ },
+ {
+ "components": [
+ {
+ "key": "seven",
+ "order": 7,
+ "type": "textarea",
+ "rows": 3
+ }
+ ]
+ }
+ ]
+ ],
+ "type": "table"
+ }
+ ]
}
- ],
- [
- {
- "components": [
- {
- "key": "six",
- "order": 6,
- "type": "textfield"
- }
- ]
- },
- {
- "components": [
- {
- "key": "seven",
- "order": 7,
- "type": "textarea",
- "rows": 3
- }
- ]
- }
- ]
],
- "type": "table"
- }
- ]
- }
+ "type": "columns"
+ }
],
- "type": "columns"
- }
- ],
- "type": "well"
- },
- {
- "key": "eight",
- "order": 8,
- "type": "button"
- }
+ "type": "well"
+ },
+ {
+ "key": "eight",
+ "order": 8,
+ "type": "button"
+ }
]
diff --git a/src/utils/fixtures/components2.json b/src/utils/fixtures/components2.json
index 12d5f4f9fb..fea79367be 100644
--- a/src/utils/fixtures/components2.json
+++ b/src/utils/fixtures/components2.json
@@ -1,70 +1,246 @@
[
- {
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
- },
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "a",
- "label": "A",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- },
- {
- "lockKey": true,
- "key": "b",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "a",
+ "label": "A",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
},
- "type": "fieldset",
- "components": [
- {
+ {
"lockKey": true,
- "key": "c",
+ "key": "b",
"conditional": {
- "eq": "",
- "when": null,
- "show": null
+ "eq": "",
+ "when": null,
+ "show": null
},
- "type": "columns",
- "columns": [
- {
- "components": [
- {
+ "type": "fieldset",
+ "components": [
+ {
+ "lockKey": true,
+ "key": "c",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "type": "columns",
+ "columns": [
+ {
+ "components": [
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "d",
+ "label": "D",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
+ },
+ {
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "type": "container",
+ "persistent": true,
+ "protected": false,
+ "key": "f",
+ "label": "F",
+ "tableView": true,
+ "components": [
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "g",
+ "label": "G",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
+ },
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "h",
+ "label": "H",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
+ },
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "i",
+ "label": "I",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
+ }
+ ],
+ "tree": true,
+ "input": true
+ }
+ ]
+ },
+ {
+ "components": [
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "e",
+ "label": "E",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
+ }
+ ]
+ }
+ ],
+ "input": false
+ },
+ {
"type": "textfield",
"conditional": {
- "eq": "",
- "when": null,
- "show": null
+ "eq": "",
+ "when": null,
+ "show": null
},
"validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
},
"persistent": true,
"unique": false,
@@ -74,138 +250,154 @@
"suffix": "",
"prefix": "",
"placeholder": "",
- "key": "d",
- "label": "D",
+ "key": "j",
+ "label": "J",
"inputMask": "",
"inputType": "text",
"tableView": true,
"input": true
- },
- {
+ }
+ ],
+ "legend": "B",
+ "tableView": true,
+ "input": false
+ },
+ {
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "type": "datagrid",
+ "persistent": true,
+ "protected": false,
+ "key": "k",
+ "label": "K",
+ "tableView": true,
+ "components": [
+ {
"conditional": {
- "eq": "",
- "when": null,
- "show": null
+ "eq": "",
+ "when": null,
+ "show": null
},
+ "hideLabel": true,
"type": "container",
"persistent": true,
"protected": false,
- "key": "f",
- "label": "F",
+ "key": "n",
+ "label": "N",
"tableView": true,
"components": [
- {
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "o",
+ "label": "O",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
},
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "g",
- "label": "G",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- },
- {
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "p",
+ "label": "P",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
},
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
- },
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "h",
- "label": "H",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- },
- {
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
- },
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "i",
- "label": "I",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- }
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "q",
+ "label": "Q",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
+ }
],
"tree": true,
"input": true
- }
- ]
- },
- {
- "components": [
- {
+ },
+ {
+ "hideLabel": true,
"type": "textfield",
"conditional": {
- "eq": "",
- "when": null,
- "show": null
+ "eq": "",
+ "when": null,
+ "show": null
},
"validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
},
"persistent": true,
"unique": false,
@@ -215,220 +407,62 @@
"suffix": "",
"prefix": "",
"placeholder": "",
- "key": "e",
- "label": "E",
+ "key": "m",
+ "label": "M",
"inputMask": "",
"inputType": "text",
"tableView": true,
"input": true
- }
- ]
- }
- ],
- "input": false
- },
- {
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
- },
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "j",
- "label": "J",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- }
- ],
- "legend": "B",
- "tableView": true,
- "input": false
- },
- {
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "type": "datagrid",
- "persistent": true,
- "protected": false,
- "key": "k",
- "label": "K",
- "tableView": true,
- "components": [
- {
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "hideLabel": true,
- "type": "container",
- "persistent": true,
- "protected": false,
- "key": "n",
- "label": "N",
- "tableView": true,
- "components": [
- {
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
- },
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "o",
- "label": "O",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- },
- {
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
},
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "p",
- "label": "P",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- },
- {
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
- },
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "q",
- "label": "Q",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- }
+ {
+ "hideLabel": true,
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "l",
+ "label": "L",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
+ }
],
"tree": true,
"input": true
- },
- {
- "hideLabel": true,
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
- },
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "m",
- "label": "M",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- },
- {
- "hideLabel": true,
+ },
+ {
"type": "textfield",
"conditional": {
- "eq": "",
- "when": null,
- "show": null
+ "eq": "",
+ "when": null,
+ "show": null
},
"validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
},
"persistent": true,
"unique": false,
@@ -438,75 +472,41 @@
"suffix": "",
"prefix": "",
"placeholder": "",
- "key": "l",
- "label": "L",
+ "key": "r",
+ "label": "R",
"inputMask": "",
"inputType": "text",
"tableView": true,
"input": true
- }
- ],
- "tree": true,
- "input": true
- },
- {
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
},
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "r",
- "label": "R",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- },
- {
- "type": "button",
- "theme": "primary",
- "disableOnInvalid": true,
- "action": "submit",
- "block": false,
- "rightIcon": "",
- "leftIcon": "",
- "size": "md",
- "key": "submit",
- "tableView": false,
- "label": "Submit",
- "input": true
- },
- {
- "label": "Tagpad",
- "tableView": false,
- "key": "tagpad",
- "type": "tagpad",
- "input": true,
- "components": [
- {
- "label": "Text Field",
- "tableView": true,
- "key": "a",
- "type": "textfield",
+ {
+ "type": "button",
+ "theme": "primary",
+ "disableOnInvalid": true,
+ "action": "submit",
+ "block": false,
+ "rightIcon": "",
+ "leftIcon": "",
+ "size": "md",
+ "key": "submit",
+ "tableView": false,
+ "label": "Submit",
"input": true
- }
- ]
- }
+ },
+ {
+ "label": "Tagpad",
+ "tableView": false,
+ "key": "tagpad",
+ "type": "tagpad",
+ "input": true,
+ "components": [
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "key": "a",
+ "type": "textfield",
+ "input": true
+ }
+ ]
+ }
]
diff --git a/src/utils/fixtures/components3.json b/src/utils/fixtures/components3.json
index 4dfaba8b7c..f2ef29861f 100644
--- a/src/utils/fixtures/components3.json
+++ b/src/utils/fixtures/components3.json
@@ -1,76 +1,261 @@
[
- {
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "properties": {
- "path": "b"
- },
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
- },
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "a",
- "label": "A",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- },
- {
- "lockKey": true,
- "key": "b",
- "properties": {
- "path": "a"
- },
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "properties": {
+ "path": "b"
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "a",
+ "label": "A",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
},
- "type": "fieldset",
- "components": [
- {
+ {
"lockKey": true,
- "key": "c",
+ "key": "b",
+ "properties": {
+ "path": "a"
+ },
"conditional": {
- "eq": "",
- "when": null,
- "show": null
+ "eq": "",
+ "when": null,
+ "show": null
},
- "type": "columns",
- "columns": [
- {
- "components": [
- {
+ "type": "fieldset",
+ "components": [
+ {
+ "lockKey": true,
+ "key": "c",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "type": "columns",
+ "columns": [
+ {
+ "components": [
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "d",
+ "label": "D",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
+ },
+ {
+ "properties": {
+ "path": "b"
+ },
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "type": "container",
+ "persistent": true,
+ "protected": false,
+ "key": "f",
+ "label": "F",
+ "tableView": true,
+ "components": [
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "g",
+ "label": "G",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
+ },
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "h",
+ "label": "H",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
+ },
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "i",
+ "label": "I",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
+ }
+ ],
+ "tree": true,
+ "input": true
+ }
+ ]
+ },
+ {
+ "components": [
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "properties": {
+ "path": "a"
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "e",
+ "label": "E",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
+ }
+ ]
+ }
+ ],
+ "input": false
+ },
+ {
+ "properties": {
+ "path": "a"
+ },
"type": "textfield",
"conditional": {
- "eq": "",
- "when": null,
- "show": null
+ "eq": "",
+ "when": null,
+ "show": null
},
"validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
},
"persistent": true,
"unique": false,
@@ -80,144 +265,160 @@
"suffix": "",
"prefix": "",
"placeholder": "",
- "key": "d",
- "label": "D",
+ "key": "j",
+ "label": "J",
"inputMask": "",
"inputType": "text",
"tableView": true,
"input": true
- },
- {
- "properties": {
- "path": "b"
- },
+ }
+ ],
+ "legend": "B",
+ "tableView": true,
+ "input": false
+ },
+ {
+ "properties": {
+ "path": "b"
+ },
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "type": "datagrid",
+ "persistent": true,
+ "protected": false,
+ "key": "k",
+ "label": "K",
+ "tableView": true,
+ "components": [
+ {
"conditional": {
- "eq": "",
- "when": null,
- "show": null
+ "eq": "",
+ "when": null,
+ "show": null
},
+ "hideLabel": true,
"type": "container",
"persistent": true,
"protected": false,
- "key": "f",
- "label": "F",
+ "key": "n",
+ "label": "N",
"tableView": true,
"components": [
- {
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
- },
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "g",
- "label": "G",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- },
- {
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "o",
+ "label": "O",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
},
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "p",
+ "label": "P",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
},
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "h",
- "label": "H",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- },
- {
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
- },
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "i",
- "label": "I",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- }
+ {
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "q",
+ "label": "Q",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
+ }
],
"tree": true,
"input": true
- }
- ]
- },
- {
- "components": [
- {
+ },
+ {
+ "hideLabel": true,
"type": "textfield",
"conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
+ "eq": "",
+ "when": null,
+ "show": null
},
"properties": {
- "path": "a"
+ "path": "a"
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
},
"persistent": true,
"unique": false,
@@ -227,229 +428,62 @@
"suffix": "",
"prefix": "",
"placeholder": "",
- "key": "e",
- "label": "E",
+ "key": "m",
+ "label": "M",
"inputMask": "",
"inputType": "text",
"tableView": true,
"input": true
- }
- ]
- }
- ],
- "input": false
- },
- {
- "properties": {
- "path": "a"
- },
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
- },
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "j",
- "label": "J",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- }
- ],
- "legend": "B",
- "tableView": true,
- "input": false
- },
- {
- "properties": {
- "path": "b"
- },
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "type": "datagrid",
- "persistent": true,
- "protected": false,
- "key": "k",
- "label": "K",
- "tableView": true,
- "components": [
- {
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "hideLabel": true,
- "type": "container",
- "persistent": true,
- "protected": false,
- "key": "n",
- "label": "N",
- "tableView": true,
- "components": [
- {
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
- },
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "o",
- "label": "O",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- },
- {
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
- },
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "p",
- "label": "P",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- },
- {
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
},
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
- },
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "q",
- "label": "Q",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- }
+ {
+ "hideLabel": true,
+ "type": "textfield",
+ "conditional": {
+ "eq": "",
+ "when": null,
+ "show": null
+ },
+ "validate": {
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
+ },
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "multiple": false,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "",
+ "key": "l",
+ "label": "L",
+ "inputMask": "",
+ "inputType": "text",
+ "tableView": true,
+ "input": true
+ }
],
"tree": true,
"input": true
- },
- {
- "hideLabel": true,
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
- },
- "properties": {
- "path": "a"
- },
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
- },
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "m",
- "label": "M",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- },
- {
- "hideLabel": true,
+ },
+ {
"type": "textfield",
"conditional": {
- "eq": "",
- "when": null,
- "show": null
+ "eq": "",
+ "when": null,
+ "show": null
},
"validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
+ "customPrivate": false,
+ "custom": "",
+ "pattern": "",
+ "maxLength": "",
+ "minLength": "",
+ "required": false
},
"persistent": true,
"unique": false,
@@ -459,59 +493,25 @@
"suffix": "",
"prefix": "",
"placeholder": "",
- "key": "l",
- "label": "L",
+ "key": "r",
+ "label": "R",
"inputMask": "",
"inputType": "text",
"tableView": true,
"input": true
- }
- ],
- "tree": true,
- "input": true
- },
- {
- "type": "textfield",
- "conditional": {
- "eq": "",
- "when": null,
- "show": null
},
- "validate": {
- "customPrivate": false,
- "custom": "",
- "pattern": "",
- "maxLength": "",
- "minLength": "",
- "required": false
- },
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "multiple": false,
- "suffix": "",
- "prefix": "",
- "placeholder": "",
- "key": "r",
- "label": "R",
- "inputMask": "",
- "inputType": "text",
- "tableView": true,
- "input": true
- },
- {
- "type": "button",
- "theme": "primary",
- "disableOnInvalid": true,
- "action": "submit",
- "block": false,
- "rightIcon": "",
- "leftIcon": "",
- "size": "md",
- "key": "submit",
- "tableView": false,
- "label": "Submit",
- "input": true
- }
+ {
+ "type": "button",
+ "theme": "primary",
+ "disableOnInvalid": true,
+ "action": "submit",
+ "block": false,
+ "rightIcon": "",
+ "leftIcon": "",
+ "size": "md",
+ "key": "submit",
+ "tableView": false,
+ "label": "Submit",
+ "input": true
+ }
]
diff --git a/src/utils/fixtures/components4.json b/src/utils/fixtures/components4.json
index 9c04ad4efd..65d12f4fbc 100644
--- a/src/utils/fixtures/components4.json
+++ b/src/utils/fixtures/components4.json
@@ -1,94 +1,94 @@
[
- {
- "type": "textfield",
- "key": "one",
- "label": "1",
- "order": 1
- },
- {
- "input": false,
- "key": "parent1",
- "components": [
- {
+ {
"type": "textfield",
- "key": "two",
- "label": "2",
- "order": 2
- },
- {
+ "key": "one",
+ "label": "1",
+ "order": 1
+ },
+ {
"input": false,
- "key": "parent2",
- "columns": [
- {
- "components": [
- {
+ "key": "parent1",
+ "components": [
+ {
"type": "textfield",
- "key": "three",
- "label": "3",
- "order": 3
- }
- ]
- },
- {
- "components": [
- {
- "rows": [
- [
+ "key": "two",
+ "label": "2",
+ "order": 2
+ },
+ {
+ "input": false,
+ "key": "parent2",
+ "columns": [
{
- "components": [
- {
- "key": "four",
- "order": 4,
- "label": "4",
- "type": "textfield"
- }
- ]
+ "components": [
+ {
+ "type": "textfield",
+ "key": "three",
+ "label": "3",
+ "order": 3
+ }
+ ]
},
{
- "components": [
- {
- "key": "five",
- "order": 5,
- "type": "textfield"
- }
- ]
+ "components": [
+ {
+ "rows": [
+ [
+ {
+ "components": [
+ {
+ "key": "four",
+ "order": 4,
+ "label": "4",
+ "type": "textfield"
+ }
+ ]
+ },
+ {
+ "components": [
+ {
+ "key": "five",
+ "order": 5,
+ "type": "textfield"
+ }
+ ]
+ }
+ ],
+ [
+ {
+ "components": [
+ {
+ "key": "six",
+ "order": 6,
+ "type": "textfield"
+ }
+ ]
+ },
+ {
+ "components": [
+ {
+ "key": "seven",
+ "order": 7,
+ "type": "textarea",
+ "rows": 3
+ }
+ ]
+ }
+ ]
+ ],
+ "type": "table"
+ }
+ ]
}
- ],
- [
- {
- "components": [
- {
- "key": "six",
- "order": 6,
- "type": "textfield"
- }
- ]
- },
- {
- "components": [
- {
- "key": "seven",
- "order": 7,
- "type": "textarea",
- "rows": 3
- }
- ]
- }
- ]
],
- "type": "table"
- }
- ]
- }
+ "type": "columns"
+ }
],
- "type": "columns"
- }
- ],
- "type": "well"
- },
- {
- "key": "eight",
- "order": 8,
- "type": "button"
- }
+ "type": "well"
+ },
+ {
+ "key": "eight",
+ "order": 8,
+ "type": "button"
+ }
]
diff --git a/src/utils/fixtures/components5.json b/src/utils/fixtures/components5.json
index d33299ab42..4a3e2ff472 100644
--- a/src/utils/fixtures/components5.json
+++ b/src/utils/fixtures/components5.json
@@ -1,27 +1,27 @@
[
- {
- "label": "HTML",
- "tag": "p",
- "content": "",
- "key": "html",
- "type": "htmlelement"
- },
- {
- "html": "
some text
",
- "label": "Content",
- "key": "content",
- "type": "content"
- },
- {
- "label": "Text Field",
- "key": "textField",
- "type": "textfield",
- "input": true
- },
- {
- "label": "Number",
- "key": "number",
- "type": "number",
- "input": true
- }
+ {
+ "label": "HTML",
+ "tag": "p",
+ "content": "",
+ "key": "html",
+ "type": "htmlelement"
+ },
+ {
+ "html": "
some text
",
+ "label": "Content",
+ "key": "content",
+ "type": "content"
+ },
+ {
+ "label": "Text Field",
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "Number",
+ "key": "number",
+ "type": "number",
+ "input": true
+ }
]
diff --git a/src/utils/fixtures/submission1.json b/src/utils/fixtures/submission1.json
index eecd04b6a7..1738dec66b 100644
--- a/src/utils/fixtures/submission1.json
+++ b/src/utils/fixtures/submission1.json
@@ -1,19 +1,19 @@
{
- "data": {
- "name": "John Smith",
- "age": "30",
- "colors": [
- {"value": "red", "label": "Red"},
- {"value": "blue", "label": "Blue"},
- {"value": "green", "label": "Green"}
- ],
- "selectboxes": {
- "car": false,
- "boat": true
- },
- "mycontainer": {
- "checked": true,
- "animalname": "Fluffy"
+ "data": {
+ "name": "John Smith",
+ "age": "30",
+ "colors": [
+ { "value": "red", "label": "Red" },
+ { "value": "blue", "label": "Blue" },
+ { "value": "green", "label": "Green" }
+ ],
+ "selectboxes": {
+ "car": false,
+ "boat": true
+ },
+ "mycontainer": {
+ "checked": true,
+ "animalname": "Fluffy"
+ }
}
- }
}
diff --git a/src/utils/jsonlogic/operators.js b/src/utils/jsonlogic/operators.js
index c3e217c0e2..bb77675bbd 100644
--- a/src/utils/jsonlogic/operators.js
+++ b/src/utils/jsonlogic/operators.js
@@ -1,262 +1,262 @@
// Use only immutable useful functions from Lodash.
// Visit https://lodash.com/docs for more info.
export const lodashOperators = [
- // Array
- 'chunk',
- 'compact',
- 'concat',
- 'difference',
- 'differenceBy',
- 'differenceWith',
- 'drop',
- 'dropRight',
- 'dropRightWhile',
- 'dropWhile',
- 'findIndex',
- 'findLastIndex',
- 'first',
- 'flatten',
- 'flattenDeep',
- 'flattenDepth',
- 'fromPairs',
- 'head',
- 'indexOf',
- 'initial',
- 'intersection',
- 'intersectionBy',
- 'intersectionWith',
- 'join',
- 'last',
- 'lastIndexOf',
- 'nth',
- 'slice',
- 'sortedIndex',
- 'sortedIndexBy',
- 'sortedIndexOf',
- 'sortedLastIndex',
- 'sortedLastIndexBy',
- 'sortedLastIndexOf',
- 'sortedUniq',
- 'sortedUniqBy',
- 'tail',
- 'take',
- 'takeRight',
- 'takeRightWhile',
- 'takeWhile',
- 'union',
- 'unionBy',
- 'unionWith',
- 'uniq',
- 'uniqBy',
- 'uniqWith',
- 'unzip',
- 'unzipWith',
- 'without',
- 'xor',
- 'xorBy',
- 'xorWith',
- 'zip',
- 'zipObject',
- 'zipObjectDeep',
- 'zipWith',
- // Collection
- 'countBy',
- 'every',
- 'filter',
- 'find',
- 'findLast',
- 'flatMap',
- 'flatMapDeep',
- 'flatMapDepth',
- 'groupBy',
- 'includes',
- 'invokeMap',
- 'keyBy',
- 'map',
- 'orderBy',
- 'partition',
- 'reduce',
- 'reduceRight',
- 'reject',
- 'sample',
- 'sampleSize',
- 'shuffle',
- 'size',
- 'some',
- 'sortBy',
- // Date
- 'now',
- // Function
- 'flip',
- 'negate',
- 'overArgs',
- 'partial',
- 'partialRight',
- 'rearg',
- 'rest',
- 'spread',
- // Lang
- 'castArray',
- 'clone',
- 'cloneDeep',
- 'cloneDeepWith',
- 'cloneDeep',
- 'conformsTo',
- 'eq',
- 'gt',
- 'gte',
- 'isArguments',
- 'isArray',
- 'isArrayBuffer',
- 'isArrayLike',
- 'isArrayLikeObject',
- 'isBoolean',
- 'isBuffer',
- 'isDate',
- 'isElement',
- 'isEmpty',
- 'isEqual',
- 'isEqualWith',
- 'isError',
- 'isFinite',
- 'isFunction',
- 'isInteger',
- 'isLength',
- 'isMap',
- 'isMatch',
- 'isMatchWith',
- 'isNaN',
- 'isNative',
- 'isNil',
- 'isNull',
- 'isNumber',
- 'isObject',
- 'isObjectLike',
- 'isPlainObject',
- 'isRegExp',
- 'isSafeInteger',
- 'isSet',
- 'isString',
- 'isSymbol',
- 'isTypedArray',
- 'isUndefined',
- 'isWeakMap',
- 'isWeakSet',
- 'lt',
- 'lte',
- 'toArray',
- 'toFinite',
- 'toInteger',
- 'toLength',
- 'toNumber',
- 'toPlainObject',
- 'toSafeInteger',
- 'toString',
- // Math
- 'add',
- 'ceil',
- 'divide',
- 'floor',
- 'max',
- 'maxBy',
- 'mean',
- 'meanBy',
- 'min',
- 'minBy',
- 'multiply',
- 'round',
- 'subtract',
- 'sum',
- 'sumBy',
- // Number
- 'clamp',
- 'inRange',
- 'random',
- // Object
- 'at',
- 'entries',
- 'entriesIn',
- 'findKey',
- 'findLastKey',
- 'functions',
- 'functionsIn',
- 'get',
- 'has',
- 'hasIn',
- 'invert',
- 'invertBy',
- 'invoke',
- 'keys',
- 'keysIn',
- 'mapKeys',
- 'mapValues',
- 'omit',
- 'omitBy',
- 'pick',
- 'pickBy',
- 'result',
- 'toPairs',
- 'toPairsIn',
- 'transform',
- 'values',
- 'valuesIn',
- // String
- 'camelCase',
- 'capitalize',
- 'deburr',
- 'endsWith',
- 'escape',
- 'escapeRegExp',
- 'kebabCase',
- 'lowerCase',
- 'lowerFirst',
- 'pad',
- 'padEnd',
- 'padStart',
- 'parseInt',
- 'repeat',
- 'replace',
- 'snakeCase',
- 'split',
- 'startCase',
- 'startsWith',
- 'toLower',
- 'toUpper',
- 'trim',
- 'trimEnd',
- 'trimStart',
- 'truncate',
- 'unescape',
- 'upperCase',
- 'upperFirst',
- 'words',
- // Util
- 'cond',
- 'conforms',
- 'constant',
- 'defaultTo',
- 'flow',
- 'flowRight',
- 'identity',
- 'iteratee',
- 'matches',
- 'matchesProperty',
- 'method',
- 'methodOf',
- 'nthArg',
- 'over',
- 'overEvery',
- 'overSome',
- 'property',
- 'propertyOf',
- 'range',
- 'rangeRight',
- 'stubArray',
- 'stubFalse',
- 'stubObject',
- 'stubString',
- 'stubTrue',
- 'times',
- 'toPath',
- 'uniqueId',
+ // Array
+ 'chunk',
+ 'compact',
+ 'concat',
+ 'difference',
+ 'differenceBy',
+ 'differenceWith',
+ 'drop',
+ 'dropRight',
+ 'dropRightWhile',
+ 'dropWhile',
+ 'findIndex',
+ 'findLastIndex',
+ 'first',
+ 'flatten',
+ 'flattenDeep',
+ 'flattenDepth',
+ 'fromPairs',
+ 'head',
+ 'indexOf',
+ 'initial',
+ 'intersection',
+ 'intersectionBy',
+ 'intersectionWith',
+ 'join',
+ 'last',
+ 'lastIndexOf',
+ 'nth',
+ 'slice',
+ 'sortedIndex',
+ 'sortedIndexBy',
+ 'sortedIndexOf',
+ 'sortedLastIndex',
+ 'sortedLastIndexBy',
+ 'sortedLastIndexOf',
+ 'sortedUniq',
+ 'sortedUniqBy',
+ 'tail',
+ 'take',
+ 'takeRight',
+ 'takeRightWhile',
+ 'takeWhile',
+ 'union',
+ 'unionBy',
+ 'unionWith',
+ 'uniq',
+ 'uniqBy',
+ 'uniqWith',
+ 'unzip',
+ 'unzipWith',
+ 'without',
+ 'xor',
+ 'xorBy',
+ 'xorWith',
+ 'zip',
+ 'zipObject',
+ 'zipObjectDeep',
+ 'zipWith',
+ // Collection
+ 'countBy',
+ 'every',
+ 'filter',
+ 'find',
+ 'findLast',
+ 'flatMap',
+ 'flatMapDeep',
+ 'flatMapDepth',
+ 'groupBy',
+ 'includes',
+ 'invokeMap',
+ 'keyBy',
+ 'map',
+ 'orderBy',
+ 'partition',
+ 'reduce',
+ 'reduceRight',
+ 'reject',
+ 'sample',
+ 'sampleSize',
+ 'shuffle',
+ 'size',
+ 'some',
+ 'sortBy',
+ // Date
+ 'now',
+ // Function
+ 'flip',
+ 'negate',
+ 'overArgs',
+ 'partial',
+ 'partialRight',
+ 'rearg',
+ 'rest',
+ 'spread',
+ // Lang
+ 'castArray',
+ 'clone',
+ 'cloneDeep',
+ 'cloneDeepWith',
+ 'cloneDeep',
+ 'conformsTo',
+ 'eq',
+ 'gt',
+ 'gte',
+ 'isArguments',
+ 'isArray',
+ 'isArrayBuffer',
+ 'isArrayLike',
+ 'isArrayLikeObject',
+ 'isBoolean',
+ 'isBuffer',
+ 'isDate',
+ 'isElement',
+ 'isEmpty',
+ 'isEqual',
+ 'isEqualWith',
+ 'isError',
+ 'isFinite',
+ 'isFunction',
+ 'isInteger',
+ 'isLength',
+ 'isMap',
+ 'isMatch',
+ 'isMatchWith',
+ 'isNaN',
+ 'isNative',
+ 'isNil',
+ 'isNull',
+ 'isNumber',
+ 'isObject',
+ 'isObjectLike',
+ 'isPlainObject',
+ 'isRegExp',
+ 'isSafeInteger',
+ 'isSet',
+ 'isString',
+ 'isSymbol',
+ 'isTypedArray',
+ 'isUndefined',
+ 'isWeakMap',
+ 'isWeakSet',
+ 'lt',
+ 'lte',
+ 'toArray',
+ 'toFinite',
+ 'toInteger',
+ 'toLength',
+ 'toNumber',
+ 'toPlainObject',
+ 'toSafeInteger',
+ 'toString',
+ // Math
+ 'add',
+ 'ceil',
+ 'divide',
+ 'floor',
+ 'max',
+ 'maxBy',
+ 'mean',
+ 'meanBy',
+ 'min',
+ 'minBy',
+ 'multiply',
+ 'round',
+ 'subtract',
+ 'sum',
+ 'sumBy',
+ // Number
+ 'clamp',
+ 'inRange',
+ 'random',
+ // Object
+ 'at',
+ 'entries',
+ 'entriesIn',
+ 'findKey',
+ 'findLastKey',
+ 'functions',
+ 'functionsIn',
+ 'get',
+ 'has',
+ 'hasIn',
+ 'invert',
+ 'invertBy',
+ 'invoke',
+ 'keys',
+ 'keysIn',
+ 'mapKeys',
+ 'mapValues',
+ 'omit',
+ 'omitBy',
+ 'pick',
+ 'pickBy',
+ 'result',
+ 'toPairs',
+ 'toPairsIn',
+ 'transform',
+ 'values',
+ 'valuesIn',
+ // String
+ 'camelCase',
+ 'capitalize',
+ 'deburr',
+ 'endsWith',
+ 'escape',
+ 'escapeRegExp',
+ 'kebabCase',
+ 'lowerCase',
+ 'lowerFirst',
+ 'pad',
+ 'padEnd',
+ 'padStart',
+ 'parseInt',
+ 'repeat',
+ 'replace',
+ 'snakeCase',
+ 'split',
+ 'startCase',
+ 'startsWith',
+ 'toLower',
+ 'toUpper',
+ 'trim',
+ 'trimEnd',
+ 'trimStart',
+ 'truncate',
+ 'unescape',
+ 'upperCase',
+ 'upperFirst',
+ 'words',
+ // Util
+ 'cond',
+ 'conforms',
+ 'constant',
+ 'defaultTo',
+ 'flow',
+ 'flowRight',
+ 'identity',
+ 'iteratee',
+ 'matches',
+ 'matchesProperty',
+ 'method',
+ 'methodOf',
+ 'nthArg',
+ 'over',
+ 'overEvery',
+ 'overSome',
+ 'property',
+ 'propertyOf',
+ 'range',
+ 'rangeRight',
+ 'stubArray',
+ 'stubFalse',
+ 'stubObject',
+ 'stubString',
+ 'stubTrue',
+ 'times',
+ 'toPath',
+ 'uniqueId',
];
diff --git a/src/utils/jsonlogic/operators.spec.js b/src/utils/jsonlogic/operators.spec.js
index d1345dba9a..99e4604ad2 100644
--- a/src/utils/jsonlogic/operators.spec.js
+++ b/src/utils/jsonlogic/operators.spec.js
@@ -1,143 +1,136 @@
import { expect } from 'chai';
import { jsonLogic } from '../utils';
-describe('Lodash operators', function() {
- describe('Arrays', function() {
-
- });
-
- describe('Collection', function() {
-
- });
-
- describe('Date', function() {
-
- });
-
- describe('Function', function() {
-
- });
-
- describe('Lang', function() {
- it('isEqual', function() {
- const logicTrue = { _isEqual: [[2, 3], [2, 3]] };
- const logicFalse = { _isEqual: [[2, 3], [2, 4]] };
- expect(jsonLogic.apply(logicTrue)).to.be.equal(true);
- expect(jsonLogic.apply(logicFalse)).to.be.equal(false);
- });
- });
-
- describe('Math', function() {
- it('add', function() {
- const logic = { _add: [2, 3] };
- expect(jsonLogic.apply(logic)).to.be.equal(5);
- });
-
- it('ceil', function() {
- const logic = { _ceil: [4.006] };
- expect(jsonLogic.apply(logic)).to.be.equal(5);
- });
-
- it('divide', function() {
- const logic = { _divide: [6, 3] };
- expect(jsonLogic.apply(logic)).to.be.equal(2);
- });
-
- it('floor', function() {
- const logic = { _floor: [4.906] };
- expect(jsonLogic.apply(logic)).to.be.equal(4);
- });
-
- it('max', function() {
- const logic = { _max: [[2, 5, 6, 3]] };
- expect(jsonLogic.apply(logic)).to.be.equal(6);
- });
-
- it('maxBy', function() {
- const data = [{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }];
- const logic1 = { _maxBy: [{ 'var': '' }, 'n'] };
- const logic2 = { _maxBy: [{ 'var': '' }, { _property: 'n' }] };
- expect(jsonLogic.apply(logic1, data)).to.be.equal(data[2]);
- expect(jsonLogic.apply(logic2, data)).to.be.equal(data[2]);
- });
-
- it('mean', function() {
- const logic = { _mean: [[2, 5, 6, 3]] };
- expect(jsonLogic.apply(logic)).to.be.equal(4);
- });
-
- it('meanBy', function() {
- const data = [{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }];
- const logic1 = { _meanBy: [{ 'var': '' }, 'n'] };
- const logic2 = { _meanBy: [{ 'var': '' }, { _property: 'n' }] };
- expect(jsonLogic.apply(logic1, data)).to.be.equal(5);
- expect(jsonLogic.apply(logic2, data)).to.be.equal(5);
- });
-
- it('min', function() {
- const logic = { _min: [[2, 5, 6, 3]] };
- expect(jsonLogic.apply(logic)).to.be.equal(2);
- });
-
- it('minBy', function() {
- const data = [{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }];
- const logic1 = { _minBy: [{ 'var': '' }, 'n'] };
- const logic2 = { _minBy: [{ 'var': '' }, { _property: 'n' }] };
- expect(jsonLogic.apply(logic1, data)).to.be.equal(data[1]);
- expect(jsonLogic.apply(logic2, data)).to.be.equal(data[1]);
- });
-
- it('multiply', function() {
- const logic = { _multiply: [2, 3] };
- expect(jsonLogic.apply(logic)).to.be.equal(6);
- });
-
- it('round', function() {
- const logic1 = { _round: [4.006] };
- const logic2 = { _round: [4.906] };
- expect(jsonLogic.apply(logic1)).to.be.equal(4);
- expect(jsonLogic.apply(logic2)).to.be.equal(5);
- });
-
- it('subtract', function() {
- const logic = { _subtract: [2, 3] };
- expect(jsonLogic.apply(logic)).to.be.equal(-1);
- });
-
- it('sum', function() {
- const logic = { _sum: [[2, 3]] };
- expect(jsonLogic.apply(logic)).to.be.equal(5);
- });
-
- it('sumBy', function() {
- const data = [{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }];
- const logic1 = { _sumBy: [{ 'var': '' }, 'n'] };
- const logic2 = { _sumBy: [{ 'var': '' }, { _property: 'n' }] };
- expect(jsonLogic.apply(logic1, data)).to.be.equal(20);
- expect(jsonLogic.apply(logic2, data)).to.be.equal(20);
- });
- });
-
- describe('Number', function() {
-
- });
-
- describe('Object', function() {
-
- });
-
- describe('String', function() {
-
- });
-
- describe('Util', function() {
- it('property', function() {
- const data = [
- { 'a': { 'b': 2 } },
- { 'a': { 'b': 1 } }
- ];
- const logic = { _sumBy: [{ 'var': '' }, { _property: 'a.b' }] };
- expect(jsonLogic.apply(logic, data)).to.be.equal(3);
+describe('Lodash operators', function () {
+ describe('Arrays', function () {});
+
+ describe('Collection', function () {});
+
+ describe('Date', function () {});
+
+ describe('Function', function () {});
+
+ describe('Lang', function () {
+ it('isEqual', function () {
+ const logicTrue = {
+ _isEqual: [
+ [2, 3],
+ [2, 3],
+ ],
+ };
+ const logicFalse = {
+ _isEqual: [
+ [2, 3],
+ [2, 4],
+ ],
+ };
+ expect(jsonLogic.apply(logicTrue)).to.be.equal(true);
+ expect(jsonLogic.apply(logicFalse)).to.be.equal(false);
+ });
+ });
+
+ describe('Math', function () {
+ it('add', function () {
+ const logic = { _add: [2, 3] };
+ expect(jsonLogic.apply(logic)).to.be.equal(5);
+ });
+
+ it('ceil', function () {
+ const logic = { _ceil: [4.006] };
+ expect(jsonLogic.apply(logic)).to.be.equal(5);
+ });
+
+ it('divide', function () {
+ const logic = { _divide: [6, 3] };
+ expect(jsonLogic.apply(logic)).to.be.equal(2);
+ });
+
+ it('floor', function () {
+ const logic = { _floor: [4.906] };
+ expect(jsonLogic.apply(logic)).to.be.equal(4);
+ });
+
+ it('max', function () {
+ const logic = { _max: [[2, 5, 6, 3]] };
+ expect(jsonLogic.apply(logic)).to.be.equal(6);
+ });
+
+ it('maxBy', function () {
+ const data = [{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }];
+ const logic1 = { _maxBy: [{ var: '' }, 'n'] };
+ const logic2 = { _maxBy: [{ var: '' }, { _property: 'n' }] };
+ expect(jsonLogic.apply(logic1, data)).to.be.equal(data[2]);
+ expect(jsonLogic.apply(logic2, data)).to.be.equal(data[2]);
+ });
+
+ it('mean', function () {
+ const logic = { _mean: [[2, 5, 6, 3]] };
+ expect(jsonLogic.apply(logic)).to.be.equal(4);
+ });
+
+ it('meanBy', function () {
+ const data = [{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }];
+ const logic1 = { _meanBy: [{ var: '' }, 'n'] };
+ const logic2 = { _meanBy: [{ var: '' }, { _property: 'n' }] };
+ expect(jsonLogic.apply(logic1, data)).to.be.equal(5);
+ expect(jsonLogic.apply(logic2, data)).to.be.equal(5);
+ });
+
+ it('min', function () {
+ const logic = { _min: [[2, 5, 6, 3]] };
+ expect(jsonLogic.apply(logic)).to.be.equal(2);
+ });
+
+ it('minBy', function () {
+ const data = [{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }];
+ const logic1 = { _minBy: [{ var: '' }, 'n'] };
+ const logic2 = { _minBy: [{ var: '' }, { _property: 'n' }] };
+ expect(jsonLogic.apply(logic1, data)).to.be.equal(data[1]);
+ expect(jsonLogic.apply(logic2, data)).to.be.equal(data[1]);
+ });
+
+ it('multiply', function () {
+ const logic = { _multiply: [2, 3] };
+ expect(jsonLogic.apply(logic)).to.be.equal(6);
+ });
+
+ it('round', function () {
+ const logic1 = { _round: [4.006] };
+ const logic2 = { _round: [4.906] };
+ expect(jsonLogic.apply(logic1)).to.be.equal(4);
+ expect(jsonLogic.apply(logic2)).to.be.equal(5);
+ });
+
+ it('subtract', function () {
+ const logic = { _subtract: [2, 3] };
+ expect(jsonLogic.apply(logic)).to.be.equal(-1);
+ });
+
+ it('sum', function () {
+ const logic = { _sum: [[2, 3]] };
+ expect(jsonLogic.apply(logic)).to.be.equal(5);
+ });
+
+ it('sumBy', function () {
+ const data = [{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }];
+ const logic1 = { _sumBy: [{ var: '' }, 'n'] };
+ const logic2 = { _sumBy: [{ var: '' }, { _property: 'n' }] };
+ expect(jsonLogic.apply(logic1, data)).to.be.equal(20);
+ expect(jsonLogic.apply(logic2, data)).to.be.equal(20);
+ });
+ });
+
+ describe('Number', function () {});
+
+ describe('Object', function () {});
+
+ describe('String', function () {});
+
+ describe('Util', function () {
+ it('property', function () {
+ const data = [{ a: { b: 2 } }, { a: { b: 1 } }];
+ const logic = { _sumBy: [{ var: '' }, { _property: 'a.b' }] };
+ expect(jsonLogic.apply(logic, data)).to.be.equal(3);
+ });
});
- });
});
diff --git a/src/utils/utils.js b/src/utils/utils.js
index cefb28ab71..e0668634ed 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -590,11 +590,10 @@ export function uniqueName(name, template, evalContext) {
guid: guid(),
});
//only letters, numbers, dots, dashes, underscores and spaces are allowed. Anything else will be replaced with dash
- const uniqueName =
- `${Evaluator.interpolate(template, evalContext)}${extension}`.replace(
- /[^0-9a-zA-Z.\-_ ]/g,
- '-',
- );
+ const uniqueName = `${Evaluator.interpolate(
+ template,
+ evalContext,
+ )}${extension}`.replace(/[^0-9a-zA-Z.\-_ ]/g, '-');
return uniqueName;
}
@@ -816,7 +815,9 @@ export function formatDate(
}
if (timezone === 'UTC') {
const offset = offsetDate(momentDate.toDate(), 'UTC');
- return `${moment(offset.date).format(convertFormatToMoment(format))} UTC`;
+ return `${moment(offset.date).format(
+ convertFormatToMoment(format),
+ )} UTC`;
}
// Load the zones since we need timezone information.
@@ -1080,7 +1081,9 @@ export function getCurrencyAffixes({
// Get the prefix and suffix from the localized string.
let regex = `(.*)?${(100).toLocaleString(lang)}`;
if (decimalLimit) {
- regex += `${decimalSeparator === '.' ? '\\.' : decimalSeparator}${(0).toLocaleString(lang)}{${decimalLimit}}`;
+ regex += `${
+ decimalSeparator === '.' ? '\\.' : decimalSeparator
+ }${(0).toLocaleString(lang)}{${decimalLimit}}`;
}
regex += '(.*)?';
const parts = (100)
diff --git a/src/validator/Validator.js b/src/validator/Validator.js
index 9b8d1091f6..d3776efe3c 100644
--- a/src/validator/Validator.js
+++ b/src/validator/Validator.js
@@ -195,7 +195,9 @@ class ValidationChecker {
addPathQueryParams(
{
$regex: new RegExp(
- `^${escapeRegExCharacters(value.address['place_id'])}$`,
+ `^${escapeRegExCharacters(
+ value.address['place_id'],
+ )}$`,
),
$options: 'i',
},
@@ -243,7 +245,9 @@ class ValidationChecker {
addPathQueryParams(
{
$regex: new RegExp(
- `^${escapeRegExCharacters(value)}$`,
+ `^${escapeRegExCharacters(
+ value,
+ )}$`,
),
$options: 'i',
},
@@ -391,7 +395,9 @@ class ValidationChecker {
_.chain(requestOptions.qs)
.map(
(val, key) =>
- `${encodeURIComponent(key)}=${encodeURIComponent(val)}`,
+ `${encodeURIComponent(
+ key,
+ )}=${encodeURIComponent(val)}`,
)
.join('&')
.value();
diff --git a/src/validator/conjunctions/index.js b/src/validator/conjunctions/index.js
index 081cce9d8a..1415fb76b7 100644
--- a/src/validator/conjunctions/index.js
+++ b/src/validator/conjunctions/index.js
@@ -1,19 +1,22 @@
export default class Conjunctions {
- static conjunctions = {};
+ static conjunctions = {};
- static addConjunction(name, conjunction) {
- Conjunctions.conjunctions[name] = conjunction;
- }
+ static addConjunction(name, conjunction) {
+ Conjunctions.conjunctions[name] = conjunction;
+ }
- static addConjunctions(conjunctions) {
- Conjunctions.conjunctions = { ...Conjunctions.conjunctions, ...conjunctions };
- }
+ static addConjunctions(conjunctions) {
+ Conjunctions.conjunctions = {
+ ...Conjunctions.conjunctions,
+ ...conjunctions,
+ };
+ }
- static getConjunction(name) {
- return Conjunctions.conjunctions[name];
- }
+ static getConjunction(name) {
+ return Conjunctions.conjunctions[name];
+ }
- static getConjunctions() {
- return Conjunctions.conjunctions;
- }
+ static getConjunctions() {
+ return Conjunctions.conjunctions;
+ }
}
diff --git a/src/validator/operators/index.js b/src/validator/operators/index.js
index e863903095..d41e975d54 100644
--- a/src/validator/operators/index.js
+++ b/src/validator/operators/index.js
@@ -1,19 +1,19 @@
export default class Operators {
- static operators = {};
+ static operators = {};
- static addOperator(name, operator) {
- Operators.operators[name] = operator;
- }
+ static addOperator(name, operator) {
+ Operators.operators[name] = operator;
+ }
- static addOperators(operators) {
- Operators.operators = { ...Operators.operators, ...operators };
- }
+ static addOperators(operators) {
+ Operators.operators = { ...Operators.operators, ...operators };
+ }
- static getOperator(name) {
- return Operators.operators[name];
- }
+ static getOperator(name) {
+ return Operators.operators[name];
+ }
- static getOperators() {
- return Operators.operators;
- }
+ static getOperators() {
+ return Operators.operators;
+ }
}
diff --git a/src/validator/quickRules/index.js b/src/validator/quickRules/index.js
index a3169ea0ac..ccce771d6c 100644
--- a/src/validator/quickRules/index.js
+++ b/src/validator/quickRules/index.js
@@ -1,19 +1,19 @@
export default class QuickRules {
- static quickRules = {};
+ static quickRules = {};
- static addQuickRule(name, quickRule) {
- QuickRules.quickRules[name] = quickRule;
- }
+ static addQuickRule(name, quickRule) {
+ QuickRules.quickRules[name] = quickRule;
+ }
- static addQuickRules(quickRules) {
- QuickRules.quickRules = { ...QuickRules.quickRules, ...quickRules };
- }
+ static addQuickRules(quickRules) {
+ QuickRules.quickRules = { ...QuickRules.quickRules, ...quickRules };
+ }
- static getQuickRule(name) {
- return QuickRules.quickRules[name];
- }
+ static getQuickRule(name) {
+ return QuickRules.quickRules[name];
+ }
- static getQuickRules() {
- return QuickRules.quickRules;
- }
+ static getQuickRules() {
+ return QuickRules.quickRules;
+ }
}
diff --git a/src/validator/rules/Custom.js b/src/validator/rules/Custom.js
index 68efec73ff..6aee9b487d 100644
--- a/src/validator/rules/Custom.js
+++ b/src/validator/rules/Custom.js
@@ -1,27 +1,32 @@
import Rule from './Rule';
export default class Custom extends Rule {
- defaultMessage = '{{error}}';
+ defaultMessage = '{{error}}';
- check(value, data, row, index) {
- const custom = this.settings.custom;
+ check(value, data, row, index) {
+ const custom = this.settings.custom;
- if (!custom) {
- return true;
- }
+ if (!custom) {
+ return true;
+ }
- const valid = this.component.evaluate(custom, {
- valid: true,
- data,
- row,
- rowIndex: index,
- input: value,
- }, 'valid', true);
+ const valid = this.component.evaluate(
+ custom,
+ {
+ valid: true,
+ data,
+ row,
+ rowIndex: index,
+ input: value,
+ },
+ 'valid',
+ true,
+ );
- if (valid === null) {
- return true;
- }
+ if (valid === null) {
+ return true;
+ }
- return valid;
- }
+ return valid;
+ }
}
diff --git a/src/validator/rules/Date.js b/src/validator/rules/Date.js
index 3a1aa60c79..f15fe576ee 100644
--- a/src/validator/rules/Date.js
+++ b/src/validator/rules/Date.js
@@ -1,18 +1,21 @@
import Rule from './Rule';
export default class DateRule extends Rule {
- defaultMessage = '{{field}} is not a valid date.';
+ defaultMessage = '{{field}} is not a valid date.';
- check(value) {
- if (!value) {
- return true;
+ check(value) {
+ if (!value) {
+ return true;
+ }
+ if (value === 'Invalid date' || value === 'Invalid Date') {
+ return false;
+ }
+ if (typeof value === 'string') {
+ value = new Date(value);
+ }
+ return (
+ value instanceof Date === true &&
+ value.toString() !== 'Invalid Date'
+ );
}
- if (value === 'Invalid date' || value === 'Invalid Date') {
- return false;
- }
- if (typeof value === 'string') {
- value = new Date(value);
- }
- return value instanceof Date === true && value.toString() !== 'Invalid Date';
- }
}
diff --git a/src/validator/rules/Day.js b/src/validator/rules/Day.js
index e5d5379540..f631d83d97 100644
--- a/src/validator/rules/Day.js
+++ b/src/validator/rules/Day.js
@@ -1,58 +1,60 @@
import Rule from './Rule';
export default class Day extends Rule {
- defaultMessage = '{{field}} is not a valid day.';
+ defaultMessage = '{{field}} is not a valid day.';
- check(value) {
- if (!value) {
- return true;
- }
- if (typeof value !== 'string') {
- return false;
- }
- const [DAY, MONTH, YEAR] = this.component.dayFirst ? [0, 1, 2] : [1, 0, 2];
- const values = value.split('/').map(x => parseInt(x, 10)),
- day = values[DAY],
- month = values[MONTH],
- year = values[YEAR],
- maxDay = getDaysInMonthCount(month, year);
+ check(value) {
+ if (!value) {
+ return true;
+ }
+ if (typeof value !== 'string') {
+ return false;
+ }
+ const [DAY, MONTH, YEAR] = this.component.dayFirst
+ ? [0, 1, 2]
+ : [1, 0, 2];
+ const values = value.split('/').map((x) => parseInt(x, 10)),
+ day = values[DAY],
+ month = values[MONTH],
+ year = values[YEAR],
+ maxDay = getDaysInMonthCount(month, year);
- if (isNaN(day) || day < 0 || day > maxDay) {
- return false;
- }
- if (isNaN(month) || month < 0 || month > 12) {
- return false;
- }
- if (isNaN(year) || year < 0 || year > 9999) {
- return false;
- }
- return true;
+ if (isNaN(day) || day < 0 || day > maxDay) {
+ return false;
+ }
+ if (isNaN(month) || month < 0 || month > 12) {
+ return false;
+ }
+ if (isNaN(year) || year < 0 || year > 9999) {
+ return false;
+ }
+ return true;
- function isLeapYear(year) {
- // Year is leap if it is evenly divisible by 400 or evenly divisible by 4 and not evenly divisible by 100.
- return !(year % 400) || (!!(year % 100) && !(year % 4));
- }
+ function isLeapYear(year) {
+ // Year is leap if it is evenly divisible by 400 or evenly divisible by 4 and not evenly divisible by 100.
+ return !(year % 400) || (!!(year % 100) && !(year % 4));
+ }
- function getDaysInMonthCount(month, year) {
- switch (month) {
- case 1: // January
- case 3: // March
- case 5: // May
- case 7: // July
- case 8: // August
- case 10: // October
- case 12: // December
- return 31;
- case 4: // April
- case 6: // June
- case 9: // September
- case 11: // November
- return 30;
- case 2: // February
- return isLeapYear(year) ? 29 : 28;
- default:
- return 31;
- }
+ function getDaysInMonthCount(month, year) {
+ switch (month) {
+ case 1: // January
+ case 3: // March
+ case 5: // May
+ case 7: // July
+ case 8: // August
+ case 10: // October
+ case 12: // December
+ return 31;
+ case 4: // April
+ case 6: // June
+ case 9: // September
+ case 11: // November
+ return 30;
+ case 2: // February
+ return isLeapYear(year) ? 29 : 28;
+ default:
+ return 31;
+ }
+ }
}
- }
}
diff --git a/src/validator/rules/Email.js b/src/validator/rules/Email.js
index 5fdbb8d88d..6ef999159f 100644
--- a/src/validator/rules/Email.js
+++ b/src/validator/rules/Email.js
@@ -1,19 +1,20 @@
import Rule from './Rule';
export default class Email extends Rule {
- defaultMessage = '{{field}} must be a valid email.';
+ defaultMessage = '{{field}} must be a valid email.';
- check(value) {
- if (!value) {
- return true;
- }
+ check(value) {
+ if (!value) {
+ return true;
+ }
- /* eslint-disable max-len */
- // From http://stackoverflow.com/questions/46155/validate-email-address-in-javascript
- const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
- /* eslint-enable max-len */
+ /* eslint-disable max-len */
+ // From http://stackoverflow.com/questions/46155/validate-email-address-in-javascript
+ const re =
+ /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
+ /* eslint-enable max-len */
- // Allow emails to be valid if the component is pristine and no value is provided.
- return re.test(value);
- }
+ // Allow emails to be valid if the component is pristine and no value is provided.
+ return re.test(value);
+ }
}
diff --git a/src/validator/rules/JSON.js b/src/validator/rules/JSON.js
index 1d6a5c6f07..ae593e0e12 100644
--- a/src/validator/rules/JSON.js
+++ b/src/validator/rules/JSON.js
@@ -1,26 +1,26 @@
import Rule from './Rule';
export default class JSON extends Rule {
- defaultMessage = '{{error}}';
+ defaultMessage = '{{error}}';
- check(value, data, row, index) {
- const { json } = this.settings;
+ check(value, data, row, index) {
+ const { json } = this.settings;
- if (!json) {
- return true;
- }
+ if (!json) {
+ return true;
+ }
- const valid = this.component.evaluate(json, {
- data,
- row,
- rowIndex: index,
- input: value
- });
+ const valid = this.component.evaluate(json, {
+ data,
+ row,
+ rowIndex: index,
+ input: value,
+ });
- if (valid === null) {
- return true;
- }
+ if (valid === null) {
+ return true;
+ }
- return valid;
- }
+ return valid;
+ }
}
diff --git a/src/validator/rules/Mask.js b/src/validator/rules/Mask.js
index 5cb4a38820..b3f9e0334a 100644
--- a/src/validator/rules/Mask.js
+++ b/src/validator/rules/Mask.js
@@ -3,24 +3,23 @@ import { getInputMask, matchInputMask } from '../../utils/utils';
import Rule from './Rule';
export default class Mask extends Rule {
- defaultMessage = '{{field}} does not match the mask.';
+ defaultMessage = '{{field}} does not match the mask.';
- check(value) {
- let inputMask;
- if (this.component.isMultipleMasksField) {
- const maskName = value ? value.maskName : undefined;
- const formioInputMask = this.component.getMaskByName(maskName);
- if (formioInputMask) {
- inputMask = getInputMask(formioInputMask);
- }
- value = value ? value.value : value;
+ check(value) {
+ let inputMask;
+ if (this.component.isMultipleMasksField) {
+ const maskName = value ? value.maskName : undefined;
+ const formioInputMask = this.component.getMaskByName(maskName);
+ if (formioInputMask) {
+ inputMask = getInputMask(formioInputMask);
+ }
+ value = value ? value.value : value;
+ } else {
+ inputMask = getInputMask(this.settings.mask);
+ }
+ if (value && inputMask) {
+ return matchInputMask(value, inputMask);
+ }
+ return true;
}
- else {
- inputMask = getInputMask(this.settings.mask);
- }
- if (value && inputMask) {
- return matchInputMask(value, inputMask);
- }
- return true;
- }
}
diff --git a/src/validator/rules/Max.js b/src/validator/rules/Max.js
index 3d8f4e3e64..534d0dbecf 100644
--- a/src/validator/rules/Max.js
+++ b/src/validator/rules/Max.js
@@ -1,16 +1,16 @@
import Rule from './Rule';
export default class Max extends Rule {
- defaultMessage = '{{field}} cannot be greater than {{settings.limit}}.';
+ defaultMessage = '{{field}} cannot be greater than {{settings.limit}}.';
- check(value) {
- const max = parseFloat(this.settings.limit);
- const parsedValue = parseFloat(value);
+ check(value) {
+ const max = parseFloat(this.settings.limit);
+ const parsedValue = parseFloat(value);
- if (Number.isNaN(max) || Number.isNaN(parsedValue)) {
- return true;
- }
+ if (Number.isNaN(max) || Number.isNaN(parsedValue)) {
+ return true;
+ }
- return parsedValue <= max;
- }
+ return parsedValue <= max;
+ }
}
diff --git a/src/validator/rules/MaxDate.js b/src/validator/rules/MaxDate.js
index a4911f851e..139e42f03d 100644
--- a/src/validator/rules/MaxDate.js
+++ b/src/validator/rules/MaxDate.js
@@ -5,28 +5,28 @@ import _ from 'lodash';
import Rule from './Rule';
export default class MaxDate extends Rule {
- defaultMessage = '{{field}} should not contain date after {{settings.dateLimit}}';
+ defaultMessage =
+ '{{field}} should not contain date after {{settings.dateLimit}}';
- check(value) {
- if (!value) {
- return true;
- }
+ check(value) {
+ if (!value) {
+ return true;
+ }
- // If they are the exact same string or object, then return true.
- if (value === this.settings.dateLimit) {
- return true;
- }
+ // If they are the exact same string or object, then return true.
+ if (value === this.settings.dateLimit) {
+ return true;
+ }
- const date = moment(value);
- const maxDate = getDateSetting(this.settings.dateLimit);
+ const date = moment(value);
+ const maxDate = getDateSetting(this.settings.dateLimit);
- if (_.isNull(maxDate)) {
- return true;
- }
- else {
- maxDate.setHours(0, 0, 0, 0);
- }
+ if (_.isNull(maxDate)) {
+ return true;
+ } else {
+ maxDate.setHours(0, 0, 0, 0);
+ }
- return date.isBefore(maxDate) || date.isSame(maxDate);
- }
+ return date.isBefore(maxDate) || date.isSame(maxDate);
+ }
}
diff --git a/src/validator/rules/MaxLength.js b/src/validator/rules/MaxLength.js
index 47f2dc731c..42ae3b9d4b 100644
--- a/src/validator/rules/MaxLength.js
+++ b/src/validator/rules/MaxLength.js
@@ -1,13 +1,18 @@
import Rule from './Rule';
export default class MaxLength extends Rule {
- defaultMessage = '{{field}} must have no more than {{- settings.length}} characters.';
+ defaultMessage =
+ '{{field}} must have no more than {{- settings.length}} characters.';
- check(value) {
- const maxLength = parseInt(this.settings.length, 10);
- if (!value || !maxLength || !Object.prototype.hasOwnProperty.call(value, 'length')) {
- return true;
+ check(value) {
+ const maxLength = parseInt(this.settings.length, 10);
+ if (
+ !value ||
+ !maxLength ||
+ !Object.prototype.hasOwnProperty.call(value, 'length')
+ ) {
+ return true;
+ }
+ return value.length <= maxLength;
}
- return (value.length <= maxLength);
- }
}
diff --git a/src/validator/rules/MaxWords.js b/src/validator/rules/MaxWords.js
index 25218a525c..42d43d3181 100644
--- a/src/validator/rules/MaxWords.js
+++ b/src/validator/rules/MaxWords.js
@@ -1,13 +1,14 @@
import Rule from './Rule';
export default class MaxWords extends Rule {
- defaultMessage = '{{field}} must have no more than {{- settings.length}} words.';
+ defaultMessage =
+ '{{field}} must have no more than {{- settings.length}} words.';
- check(value) {
- const maxWords = parseInt(this.settings.length, 10);
- if (!maxWords || (typeof value !== 'string')) {
- return true;
+ check(value) {
+ const maxWords = parseInt(this.settings.length, 10);
+ if (!maxWords || typeof value !== 'string') {
+ return true;
+ }
+ return value.trim().split(/\s+/).length <= maxWords;
}
- return (value.trim().split(/\s+/).length <= maxWords);
- }
}
diff --git a/src/validator/rules/MaxYear.js b/src/validator/rules/MaxYear.js
index 76a4736026..dad4947975 100644
--- a/src/validator/rules/MaxYear.js
+++ b/src/validator/rules/MaxYear.js
@@ -1,17 +1,18 @@
import Rule from './Rule';
export default class MaxYear extends Rule {
- defaultMessage = '{{field}} should not contain year greater than {{maxYear}}';
+ defaultMessage =
+ '{{field}} should not contain year greater than {{maxYear}}';
- check(value) {
- const maxYear = this.settings;
- let year = /\d{4}$/.exec(value);
- year = year ? year[0] : null;
+ check(value) {
+ const maxYear = this.settings;
+ let year = /\d{4}$/.exec(value);
+ year = year ? year[0] : null;
- if (!(+maxYear) || !(+year)) {
- return true;
- }
+ if (!+maxYear || !+year) {
+ return true;
+ }
- return +year <= +maxYear;
- }
+ return +year <= +maxYear;
+ }
}
diff --git a/src/validator/rules/Min.js b/src/validator/rules/Min.js
index 290f41f81e..9708710841 100644
--- a/src/validator/rules/Min.js
+++ b/src/validator/rules/Min.js
@@ -1,16 +1,16 @@
import Rule from './Rule';
export default class Min extends Rule {
- defaultMessage = '{{field}} cannot be less than {{settings.limit}}.';
+ defaultMessage = '{{field}} cannot be less than {{settings.limit}}.';
- check(value) {
- const min = parseFloat(this.settings.limit);
- const parsedValue = parseFloat(value);
+ check(value) {
+ const min = parseFloat(this.settings.limit);
+ const parsedValue = parseFloat(value);
- if (Number.isNaN(min) || Number.isNaN(parsedValue)) {
- return true;
- }
+ if (Number.isNaN(min) || Number.isNaN(parsedValue)) {
+ return true;
+ }
- return parsedValue >= min;
- }
+ return parsedValue >= min;
+ }
}
diff --git a/src/validator/rules/MinDate.js b/src/validator/rules/MinDate.js
index dd50bf9d65..f0f7fdec27 100644
--- a/src/validator/rules/MinDate.js
+++ b/src/validator/rules/MinDate.js
@@ -5,23 +5,23 @@ import _ from 'lodash';
import Rule from './Rule';
export default class MinDate extends Rule {
- defaultMessage = '{{field}} should not contain date before {{settings.dateLimit}}';
+ defaultMessage =
+ '{{field}} should not contain date before {{settings.dateLimit}}';
- check(value) {
- if (!value) {
- return true;
- }
+ check(value) {
+ if (!value) {
+ return true;
+ }
- const date = moment(value);
- const minDate = getDateSetting(this.settings.dateLimit);
+ const date = moment(value);
+ const minDate = getDateSetting(this.settings.dateLimit);
- if (_.isNull(minDate)) {
- return true;
- }
- else {
- minDate.setHours(0, 0, 0, 0);
- }
+ if (_.isNull(minDate)) {
+ return true;
+ } else {
+ minDate.setHours(0, 0, 0, 0);
+ }
- return date.isAfter(minDate) || date.isSame(minDate);
- }
+ return date.isAfter(minDate) || date.isSame(minDate);
+ }
}
diff --git a/src/validator/rules/MinLength.js b/src/validator/rules/MinLength.js
index 13aefd55e1..b11e8369f1 100644
--- a/src/validator/rules/MinLength.js
+++ b/src/validator/rules/MinLength.js
@@ -1,13 +1,19 @@
import Rule from './Rule';
export default class MinLength extends Rule {
- defaultMessage = '{{field}} must have no more than {{- settings.length}} characters.';
+ defaultMessage =
+ '{{field}} must have no more than {{- settings.length}} characters.';
- check(value) {
- const minLength = parseInt(this.settings.length, 10);
- if (!minLength || !value || !Object.prototype.hasOwnProperty.call(value, 'length') || this.component.isEmpty(value)) {
- return true;
+ check(value) {
+ const minLength = parseInt(this.settings.length, 10);
+ if (
+ !minLength ||
+ !value ||
+ !Object.prototype.hasOwnProperty.call(value, 'length') ||
+ this.component.isEmpty(value)
+ ) {
+ return true;
+ }
+ return value.length >= minLength;
}
- return (value.length >= minLength);
- }
}
diff --git a/src/validator/rules/MinWords.js b/src/validator/rules/MinWords.js
index 0b819f4938..24377e4369 100644
--- a/src/validator/rules/MinWords.js
+++ b/src/validator/rules/MinWords.js
@@ -1,13 +1,14 @@
import Rule from './Rule';
export default class MinWords extends Rule {
- defaultMessage = '{{field}} must have at least {{- settings.length}} words.';
+ defaultMessage =
+ '{{field}} must have at least {{- settings.length}} words.';
- check(value) {
- const minWords = parseInt(this.settings.length, 10);
- if (!minWords || !value || (typeof value !== 'string')) {
- return true;
+ check(value) {
+ const minWords = parseInt(this.settings.length, 10);
+ if (!minWords || !value || typeof value !== 'string') {
+ return true;
+ }
+ return value.trim().split(/\s+/).length >= minWords;
}
- return (value.trim().split(/\s+/).length >= minWords);
- }
}
diff --git a/src/validator/rules/MinYear.js b/src/validator/rules/MinYear.js
index 2af2a06268..c285ac2b2a 100644
--- a/src/validator/rules/MinYear.js
+++ b/src/validator/rules/MinYear.js
@@ -1,17 +1,17 @@
import Rule from './Rule';
export default class MinYear extends Rule {
- defaultMessage = '{{field}} should not contain year less than {{minYear}}';
+ defaultMessage = '{{field}} should not contain year less than {{minYear}}';
- check(value) {
- const minYear = this.settings;
- let year = /\d{4}$/.exec(value);
- year = year ? year[0] : null;
+ check(value) {
+ const minYear = this.settings;
+ let year = /\d{4}$/.exec(value);
+ year = year ? year[0] : null;
- if (!(+minYear) || !(+year)) {
- return true;
- }
+ if (!+minYear || !+year) {
+ return true;
+ }
- return +year >= +minYear;
- }
+ return +year >= +minYear;
+ }
}
diff --git a/src/validator/rules/Pattern.js b/src/validator/rules/Pattern.js
index 54e930720a..5ab699776b 100644
--- a/src/validator/rules/Pattern.js
+++ b/src/validator/rules/Pattern.js
@@ -1,15 +1,16 @@
import Rule from './Rule';
export default class Pattern extends Rule {
- defaultMessage = '{{field}} does not match the pattern {{settings.pattern}}';
+ defaultMessage =
+ '{{field}} does not match the pattern {{settings.pattern}}';
- check(value) {
- const { pattern } = this.settings;
+ check(value) {
+ const { pattern } = this.settings;
- if (!pattern) {
- return true;
- }
+ if (!pattern) {
+ return true;
+ }
- return (new RegExp(`^${pattern}$`)).test(value);
- }
+ return new RegExp(`^${pattern}$`).test(value);
+ }
}
diff --git a/src/validator/rules/Required.js b/src/validator/rules/Required.js
index 5e3f90915e..2b290b12f5 100644
--- a/src/validator/rules/Required.js
+++ b/src/validator/rules/Required.js
@@ -1,11 +1,13 @@
import Rule from './Rule';
export default class Required extends Rule {
- defaultMessage = '{{field}} is required';
+ defaultMessage = '{{field}} is required';
- check(value) {
- // TODO: Day, Survey overrides.
+ check(value) {
+ // TODO: Day, Survey overrides.
- return !this.component.isValueHidden() && !this.component.isEmpty(value);
- }
+ return (
+ !this.component.isValueHidden() && !this.component.isEmpty(value)
+ );
+ }
}
diff --git a/src/validator/rules/Rule.js b/src/validator/rules/Rule.js
index 4b07f13264..590b17de8b 100644
--- a/src/validator/rules/Rule.js
+++ b/src/validator/rules/Rule.js
@@ -1,11 +1,9 @@
export default class Rule {
- constructor(component, settings, config) {
- this.component = component;
- this.settings = settings;
- this.config = config;
- }
+ constructor(component, settings, config) {
+ this.component = component;
+ this.settings = settings;
+ this.config = config;
+ }
- check() {
-
- }
+ check() {}
}
diff --git a/src/validator/rules/Select.js b/src/validator/rules/Select.js
index caf38b295b..a2155b3c0e 100644
--- a/src/validator/rules/Select.js
+++ b/src/validator/rules/Select.js
@@ -1,107 +1,118 @@
import { interpolate } from '../../utils/utils';
import fetchPonyfill from 'fetch-ponyfill';
const { fetch, Headers, Request } = fetchPonyfill({
- Promise: Promise
+ Promise: Promise,
});
import _ from 'lodash';
import Rule from './Rule';
export default class Select extends Rule {
- defaultMessage = '{{field}} contains an invalid selection';
+ defaultMessage = '{{field}} contains an invalid selection';
- check(value, data, row, async) {
- // Skip if value is empty
- if (!value || _.isEmpty(value)) {
- return true;
- }
-
- // Skip if we're not async-capable
- if (!async) {
- return true;
- }
-
- const schema = this.component.component;
-
- // Initialize the request options
- const requestOptions = {
- url: this.settings.url,
- method: 'GET',
- qs: {},
- json: true,
- headers: {}
- };
-
- // If the url is a boolean value
- if (_.isBoolean(requestOptions.url)) {
- requestOptions.url = !!requestOptions.url;
-
- if (
- !requestOptions.url ||
- schema.dataSrc !== 'url' ||
- !schema.data.url ||
- !schema.searchField
- ) {
- return true;
- }
-
- // Get the validation url
- requestOptions.url = schema.data.url;
-
- // Add the search field
- requestOptions.qs[schema.searchField] = value;
-
- // Add the filters
- if (schema.filter) {
- requestOptions.url += (!requestOptions.url.includes('?') ? '?' : '&') + schema.filter;
- }
-
- // If they only wish to return certain fields.
- if (schema.selectFields) {
- requestOptions.qs.select = schema.selectFields;
- }
- }
-
- if (!requestOptions.url) {
- return true;
- }
+ check(value, data, row, async) {
+ // Skip if value is empty
+ if (!value || _.isEmpty(value)) {
+ return true;
+ }
- // Make sure to interpolate.
- requestOptions.url = interpolate(requestOptions.url, { data: this.component.data });
+ // Skip if we're not async-capable
+ if (!async) {
+ return true;
+ }
- // Add query string to URL
- requestOptions.url += (requestOptions.url.includes('?') ? '&' : '?') + _.chain(requestOptions.qs)
- .map((val, key) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`)
- .join('&')
- .value();
+ const schema = this.component.component;
+
+ // Initialize the request options
+ const requestOptions = {
+ url: this.settings.url,
+ method: 'GET',
+ qs: {},
+ json: true,
+ headers: {},
+ };
+
+ // If the url is a boolean value
+ if (_.isBoolean(requestOptions.url)) {
+ requestOptions.url = !!requestOptions.url;
+
+ if (
+ !requestOptions.url ||
+ schema.dataSrc !== 'url' ||
+ !schema.data.url ||
+ !schema.searchField
+ ) {
+ return true;
+ }
+
+ // Get the validation url
+ requestOptions.url = schema.data.url;
+
+ // Add the search field
+ requestOptions.qs[schema.searchField] = value;
+
+ // Add the filters
+ if (schema.filter) {
+ requestOptions.url +=
+ (!requestOptions.url.includes('?') ? '?' : '&') +
+ schema.filter;
+ }
+
+ // If they only wish to return certain fields.
+ if (schema.selectFields) {
+ requestOptions.qs.select = schema.selectFields;
+ }
+ }
- // Set custom headers.
- if (schema.data && schema.data.headers) {
- _.each(schema.data.headers, header => {
- if (header.key) {
- requestOptions.headers[header.key] = header.value;
+ if (!requestOptions.url) {
+ return true;
}
- });
- }
- // Set form.io authentication.
- if (schema.authenticate && this.config.token) {
- requestOptions.headers['x-jwt-token'] = this.config.token;
- }
+ // Make sure to interpolate.
+ requestOptions.url = interpolate(requestOptions.url, {
+ data: this.component.data,
+ });
+
+ // Add query string to URL
+ requestOptions.url +=
+ (requestOptions.url.includes('?') ? '&' : '?') +
+ _.chain(requestOptions.qs)
+ .map(
+ (val, key) =>
+ `${encodeURIComponent(key)}=${encodeURIComponent(val)}`,
+ )
+ .join('&')
+ .value();
+
+ // Set custom headers.
+ if (schema.data && schema.data.headers) {
+ _.each(schema.data.headers, (header) => {
+ if (header.key) {
+ requestOptions.headers[header.key] = header.value;
+ }
+ });
+ }
- return fetch(new Request(requestOptions.url, {
- headers: new Headers(requestOptions.headers)
- }))
- .then(response => {
- if (!response.ok) {
- return false;
+ // Set form.io authentication.
+ if (schema.authenticate && this.config.token) {
+ requestOptions.headers['x-jwt-token'] = this.config.token;
}
- return response.json();
- })
- .then((results) => {
- return results && results.length;
- })
- .catch(() => false);
- }
+ return fetch(
+ new Request(requestOptions.url, {
+ headers: new Headers(requestOptions.headers),
+ }),
+ )
+ .then((response) => {
+ if (!response.ok) {
+ return false;
+ }
+
+ return response.json();
+ })
+ .then((results) => {
+ return results && results.length;
+ })
+ .catch(() => false);
+ }
}
diff --git a/src/validator/rules/Time.js b/src/validator/rules/Time.js
index 3d35636760..3bac18861c 100644
--- a/src/validator/rules/Time.js
+++ b/src/validator/rules/Time.js
@@ -2,10 +2,10 @@ import Rule from './Rule';
import moment from 'moment';
export default class Time extends Rule {
- defaultMessage = '{{field}} must contain valid time';
+ defaultMessage = '{{field}} must contain valid time';
- check(value) {
- if (this.component.isEmpty(value)) return true;
- return moment(value, this.component.component.format).isValid();
- }
+ check(value) {
+ if (this.component.isEmpty(value)) return true;
+ return moment(value, this.component.component.format).isValid();
+ }
}
diff --git a/src/validator/rules/Unique.js b/src/validator/rules/Unique.js
index 3747fd9556..3d2bd4e423 100644
--- a/src/validator/rules/Unique.js
+++ b/src/validator/rules/Unique.js
@@ -3,68 +3,69 @@ import _ from 'lodash';
import Rule from './Rule';
export default class Unique extends Rule {
- defaultMessage = '{{field}} must be unique';
+ defaultMessage = '{{field}} must be unique';
- check(value) {
- // Skip if value is empty object or falsy
- if (!value || _.isObjectLike(value) && _.isEmpty(value)) {
- return true;
- }
+ check(value) {
+ // Skip if value is empty object or falsy
+ if (!value || (_.isObjectLike(value) && _.isEmpty(value))) {
+ return true;
+ }
- // Skip if we don't have a database connection
- if (!this.config.db) {
- return true;
- }
+ // Skip if we don't have a database connection
+ if (!this.config.db) {
+ return true;
+ }
- return new Promise(resolve => {
- const form = this.config.form;
- const submission = this.config.submission;
- const path = `data.${this.component.path}`;
+ return new Promise((resolve) => {
+ const form = this.config.form;
+ const submission = this.config.submission;
+ const path = `data.${this.component.path}`;
- // Build the query
- const query = { form: form._id };
+ // Build the query
+ const query = { form: form._id };
- if (_.isString(value)) {
- query[path] = {
- $regex: new RegExp(`^${escapeRegExCharacters(value)}$`),
- $options: 'i'
- };
- }
- else if (
- _.isPlainObject(value) &&
- value.address &&
- value.address['address_components'] &&
- value.address['place_id']
- ) {
- query[`${path}.address.place_id`] = {
- $regex: new RegExp(`^${escapeRegExCharacters(value.address['place_id'])}$`),
- $options: 'i'
- };
- }
- // Compare the contents of arrays vs the order.
- else if (_.isArray(value)) {
- query[path] = { $all: value };
- }
- else if (_.isObject(value) || _.isNumber(value)) {
- query[path] = { $eq: value };
- }
+ if (_.isString(value)) {
+ query[path] = {
+ $regex: new RegExp(`^${escapeRegExCharacters(value)}$`),
+ $options: 'i',
+ };
+ } else if (
+ _.isPlainObject(value) &&
+ value.address &&
+ value.address['address_components'] &&
+ value.address['place_id']
+ ) {
+ query[`${path}.address.place_id`] = {
+ $regex: new RegExp(
+ `^${escapeRegExCharacters(value.address['place_id'])}$`,
+ ),
+ $options: 'i',
+ };
+ }
+ // Compare the contents of arrays vs the order.
+ else if (_.isArray(value)) {
+ query[path] = { $all: value };
+ } else if (_.isObject(value) || _.isNumber(value)) {
+ query[path] = { $eq: value };
+ }
- // Only search for non-deleted items
- query.deleted = { $eq: null };
+ // Only search for non-deleted items
+ query.deleted = { $eq: null };
- // Try to find an existing value within the form
- this.config.db.findOne(query, (err, result) => {
- if (err) {
- return resolve(false);
- }
- else if (result) {
- // Only OK if it matches the current submission
- return resolve(submission._id && (result._id.toString() === submission._id));
- }
- else {
- return resolve(true);
- }
- });
- }).catch(() => false);
- }
+ // Try to find an existing value within the form
+ this.config.db.findOne(query, (err, result) => {
+ if (err) {
+ return resolve(false);
+ } else if (result) {
+ // Only OK if it matches the current submission
+ return resolve(
+ submission._id &&
+ result._id.toString() === submission._id,
+ );
+ } else {
+ return resolve(true);
+ }
+ });
+ }).catch(() => false);
+ }
}
diff --git a/src/validator/rules/Url.js b/src/validator/rules/Url.js
index c458a1ca28..aa3a517884 100644
--- a/src/validator/rules/Url.js
+++ b/src/validator/rules/Url.js
@@ -1,17 +1,19 @@
import Rule from './Rule';
export default class Url extends Rule {
- defaultMessage = '{{field}} must be a valid url.';
+ defaultMessage = '{{field}} must be a valid url.';
- check(value) {
- /* eslint-disable max-len */
- // From https://stackoverflow.com/questions/8667070/javascript-regular-expression-to-validate-url
- const re = /^(?:(?:(?:https?|ftp):)?\/\/)?(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:[/?#]\S*)?$/i;
- // From http://stackoverflow.com/questions/46155/validate-email-address-in-javascript
- const emailRe = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
- /* eslint-enable max-len */
+ check(value) {
+ /* eslint-disable max-len */
+ // From https://stackoverflow.com/questions/8667070/javascript-regular-expression-to-validate-url
+ const re =
+ /^(?:(?:(?:https?|ftp):)?\/\/)?(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:[/?#]\S*)?$/i;
+ // From http://stackoverflow.com/questions/46155/validate-email-address-in-javascript
+ const emailRe =
+ /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
+ /* eslint-enable max-len */
- // Allow urls to be valid if the component is pristine and no value is provided.
- return !value || (re.test(value) && !emailRe.test(value));
- }
+ // Allow urls to be valid if the component is pristine and no value is provided.
+ return !value || (re.test(value) && !emailRe.test(value));
+ }
}
diff --git a/src/validator/rules/index.js b/src/validator/rules/index.js
index e4da2af9c9..615fe07928 100644
--- a/src/validator/rules/index.js
+++ b/src/validator/rules/index.js
@@ -21,26 +21,26 @@ import minYear from './MinYear';
import maxYear from './MaxYear';
import time from './Time';
export default {
- custom,
- date,
- day,
- email,
- json,
- mask,
- max,
- maxDate,
- maxLength,
- maxWords,
- min,
- minDate,
- minLength,
- minWords,
- pattern,
- required,
- select,
- unique,
- url,
- minYear,
- maxYear,
- time,
+ custom,
+ date,
+ day,
+ email,
+ json,
+ mask,
+ max,
+ maxDate,
+ maxLength,
+ maxWords,
+ min,
+ minDate,
+ minLength,
+ minWords,
+ pattern,
+ required,
+ select,
+ unique,
+ url,
+ minYear,
+ maxYear,
+ time,
};
diff --git a/src/validator/transformers/index.js b/src/validator/transformers/index.js
index a326363754..82477064cf 100644
--- a/src/validator/transformers/index.js
+++ b/src/validator/transformers/index.js
@@ -1,19 +1,22 @@
export default class Transformers {
- static transformers = {};
+ static transformers = {};
- static addTransformer(name, transformer) {
- Transformers.transformers[name] = transformer;
- }
+ static addTransformer(name, transformer) {
+ Transformers.transformers[name] = transformer;
+ }
- static addTransformers(transformers) {
- Transformers.transformers = { ...Transformers.transformers, ...transformers };
- }
+ static addTransformers(transformers) {
+ Transformers.transformers = {
+ ...Transformers.transformers,
+ ...transformers,
+ };
+ }
- static getTransformer(name) {
- return Transformers.transformers[name];
- }
+ static getTransformer(name) {
+ return Transformers.transformers[name];
+ }
- static getTransformers() {
- return Transformers.transformers;
- }
+ static getTransformers() {
+ return Transformers.transformers;
+ }
}
diff --git a/src/validator/valueSources/index.js b/src/validator/valueSources/index.js
index 4ffac40a5c..872974fe92 100644
--- a/src/validator/valueSources/index.js
+++ b/src/validator/valueSources/index.js
@@ -1,19 +1,22 @@
export default class ValueSources {
- static valueSources = {};
+ static valueSources = {};
- static addValueSource(name, valueSource) {
- ValueSources.valueSources[name] = valueSource;
- }
+ static addValueSource(name, valueSource) {
+ ValueSources.valueSources[name] = valueSource;
+ }
- static addValueSources(valueSources) {
- ValueSources.valueSources = { ...ValueSources.valueSources, ...valueSources };
- }
+ static addValueSources(valueSources) {
+ ValueSources.valueSources = {
+ ...ValueSources.valueSources,
+ ...valueSources,
+ };
+ }
- static getValueSource(name) {
- return ValueSources.valueSources[name];
- }
+ static getValueSource(name) {
+ return ValueSources.valueSources[name];
+ }
- static getValueSources() {
- return ValueSources.valueSources;
- }
+ static getValueSources() {
+ return ValueSources.valueSources;
+ }
}
diff --git a/test/APIMock.js b/test/APIMock.js
index 43bc9beeb5..a7effdfe9d 100644
--- a/test/APIMock.js
+++ b/test/APIMock.js
@@ -6,90 +6,103 @@ import Chance from 'chance';
import esc from 'escape-string-regexp';
const chance = Chance();
export const APIMock = {
- submission: function(url, form) {
- const submissions = {};
- const domain = url.match(/http[s]?:\/\/[^/]+/)[0];
- const requests = {
- formLoad: new RegExp(esc(`${url}?live=1`)),
- formSubmissionIndex: new RegExp(`${domain}\\/form\\/(.*)\\/submission\\?(.*)`),
- formSubmission: new RegExp(`${domain}\\/form\\/(.*)\\/submission\\/(.*)`),
- submissionCreate: new RegExp(esc(`${url}/submission`)),
- submissionGet: new RegExp(`${esc(`${url}/submission/`)}(.*)`),
- submissionUpdate: new RegExp(`${esc(`${url}/submission/`)}(.*)`),
- submissionIndex: new RegExp(`${esc(`${url}/submission?`)}(.*)`)
- };
- fetchMock
- .get(requests.formLoad, () => {
- return form;
- })
- // Create a new submission.
- .post(requests.submissionCreate, (url, req) => {
- const owner = Formio.getUser();
- req.body = JSON.parse(req.body);
- if (!req.body._id) {
- req.body._id = chance.string({ length: 21, pool: 'ABCDEFG1234567890' });
- }
- if (owner) {
- req.body.owner = owner._id;
- }
- submissions[req.body._id] = req.body;
- return req.body;
- })
- // Update a submission.
- .put(requests.submissionUpdate, (url, req) => {
- req.body = JSON.parse(req.body);
- const matches = url.match(requests.submissionUpdate);
- const id = matches[1];
- if (!id || !submissions[id]) {
- return 401;
- }
- submissions[id] = req.body;
- return submissions[id];
- })
- .get(requests.formSubmission, () => {
- const matches = url.match(requests.formSubmission);
- if (!matches || !matches[3]) {
- return 401;
- }
- const id = matches[3];
- if (!id || !submissions[id]) {
- return 401;
- }
- return submissions[id];
- })
- // Get a submission
- .get(requests.submissionGet, (url) => {
- const matches = url.match(requests.submissionUpdate);
- const id = matches[1];
- if (!id || !submissions[id]) {
- return 401;
- }
- return submissions[id];
- })
- .get(requests.formSubmissionIndex, (url) => {
- const matches = url.match(requests.formSubmissionIndex);
- if (!matches[2]) {
- return [];
- }
- return _.filter(submissions, _.chain(matches[2])
- .split('&')
- .map(_.partial(_.split, _, '=', 2))
- .fromPairs()
- .omit(['limit', 'skip'])
- .value());
- })
- // Mock the submission index.
- .get(requests.submissionIndex, (url) => {
- const matches = url.match(requests.submissionIndex);
- if (!matches[1]) {
- return [];
- }
- return _.filter(submissions, _.chain(matches[1])
- .split('&')
- .map(_.partial(_.split, _, '=', 2))
- .fromPairs()
- .omit(['limit', 'skip'])
- .value());
- });
- }
+ submission: function (url, form) {
+ const submissions = {};
+ const domain = url.match(/http[s]?:\/\/[^/]+/)[0];
+ const requests = {
+ formLoad: new RegExp(esc(`${url}?live=1`)),
+ formSubmissionIndex: new RegExp(
+ `${domain}\\/form\\/(.*)\\/submission\\?(.*)`,
+ ),
+ formSubmission: new RegExp(
+ `${domain}\\/form\\/(.*)\\/submission\\/(.*)`,
+ ),
+ submissionCreate: new RegExp(esc(`${url}/submission`)),
+ submissionGet: new RegExp(`${esc(`${url}/submission/`)}(.*)`),
+ submissionUpdate: new RegExp(`${esc(`${url}/submission/`)}(.*)`),
+ submissionIndex: new RegExp(`${esc(`${url}/submission?`)}(.*)`),
+ };
+ fetchMock
+ .get(requests.formLoad, () => {
+ return form;
+ })
+ // Create a new submission.
+ .post(requests.submissionCreate, (url, req) => {
+ const owner = Formio.getUser();
+ req.body = JSON.parse(req.body);
+ if (!req.body._id) {
+ req.body._id = chance.string({
+ length: 21,
+ pool: 'ABCDEFG1234567890',
+ });
+ }
+ if (owner) {
+ req.body.owner = owner._id;
+ }
+ submissions[req.body._id] = req.body;
+ return req.body;
+ })
+ // Update a submission.
+ .put(requests.submissionUpdate, (url, req) => {
+ req.body = JSON.parse(req.body);
+ const matches = url.match(requests.submissionUpdate);
+ const id = matches[1];
+ if (!id || !submissions[id]) {
+ return 401;
+ }
+ submissions[id] = req.body;
+ return submissions[id];
+ })
+ .get(requests.formSubmission, () => {
+ const matches = url.match(requests.formSubmission);
+ if (!matches || !matches[3]) {
+ return 401;
+ }
+ const id = matches[3];
+ if (!id || !submissions[id]) {
+ return 401;
+ }
+ return submissions[id];
+ })
+ // Get a submission
+ .get(requests.submissionGet, (url) => {
+ const matches = url.match(requests.submissionUpdate);
+ const id = matches[1];
+ if (!id || !submissions[id]) {
+ return 401;
+ }
+ return submissions[id];
+ })
+ .get(requests.formSubmissionIndex, (url) => {
+ const matches = url.match(requests.formSubmissionIndex);
+ if (!matches[2]) {
+ return [];
+ }
+ return _.filter(
+ submissions,
+ _.chain(matches[2])
+ .split('&')
+ .map(_.partial(_.split, _, '=', 2))
+ .fromPairs()
+ .omit(['limit', 'skip'])
+ .value(),
+ );
+ })
+ // Mock the submission index.
+ .get(requests.submissionIndex, (url) => {
+ const matches = url.match(requests.submissionIndex);
+ if (!matches[1]) {
+ return [];
+ }
+ return _.filter(
+ submissions,
+ _.chain(matches[1])
+ .split('&')
+ .map(_.partial(_.split, _, '=', 2))
+ .fromPairs()
+ .omit(['limit', 'skip'])
+ .value(),
+ );
+ });
+ },
};
diff --git a/test/fixtures/example-form.json b/test/fixtures/example-form.json
index 8c9ac1fc68..17f9b247a6 100644
--- a/test/fixtures/example-form.json
+++ b/test/fixtures/example-form.json
@@ -1 +1,254 @@
-{"_id":"57aa1d2a5b7a477b002717fe","machineName":"examples:example","modified":"2017-05-09T15:55:13.060Z","title":"Example","display":"form","type":"form","name":"example","path":"example","project":"5692b91fd1028f01000407e3","created":"2016-08-09T18:12:58.126Z","components":[{"input":false,"html":"
\n\n
This is a dynamically rendered JSON form built with Form.io . Using a simple drag-and-drop form builder, you can create any form that includes e-signatures, wysiwyg editors, date fields, layout components, data grids, surveys, etc.
\n","type":"content","conditional":{"show":"","when":null,"eq":""}},{"input":false,"columns":[{"components":[{"tabindex":"1","tags":[],"clearOnHide":true,"hidden":false,"input":true,"tableView":true,"inputType":"text","inputMask":"","label":"First Name","key":"firstName","placeholder":"Enter your first name","prefix":"","suffix":"","multiple":false,"defaultValue":"","protected":false,"unique":false,"persistent":true,"validate":{"required":false,"minLength":"","maxLength":"","pattern":"","custom":"","customPrivate":false},"conditional":{"show":"","when":null,"eq":""},"type":"textfield"},{"tabindex":"3","tags":[],"clearOnHide":true,"hidden":false,"input":true,"tableView":true,"inputType":"email","label":"Email","key":"email","placeholder":"Enter your email address","prefix":"","suffix":"","defaultValue":"","protected":false,"unique":false,"persistent":true,"type":"email","conditional":{"show":"","when":null,"eq":""},"kickbox":{"enabled":false}}]},{"components":[{"tabindex":"2","tags":[],"clearOnHide":true,"hidden":false,"input":true,"tableView":true,"inputType":"text","inputMask":"","label":"Last Name","key":"lastName","placeholder":"Enter your last name","prefix":"","suffix":"","multiple":false,"defaultValue":"","protected":false,"unique":false,"persistent":true,"validate":{"required":false,"minLength":"","maxLength":"","pattern":"","custom":"","customPrivate":false},"conditional":{"show":"","when":null,"eq":""},"type":"textfield"},{"tabindex":"4","tags":[],"clearOnHide":true,"hidden":false,"input":true,"tableView":true,"inputMask":"(999) 999-9999","label":"Phone Number","key":"phoneNumber","placeholder":"Enter your phone number","prefix":"","suffix":"","multiple":false,"protected":false,"unique":false,"persistent":true,"defaultValue":"","validate":{"required":false},"type":"phoneNumber","conditional":{"show":"","when":null,"eq":""}}]}],"type":"columns","conditional":{"show":"","when":null,"eq":""}},{"tabindex":"5","tags":[],"clearOnHide":true,"hidden":false,"input":true,"tableView":true,"label":"Survey","key":"survey","questions":[{"value":"howWouldYouRateTheFormIoPlatform","label":"How would you rate the Form.io platform?"},{"value":"howWasCustomerSupport","label":"How was Customer Support?"},{"value":"overallExperience","label":"Overall Experience?"}],"values":[{"value":"excellent","label":"Excellent"},{"value":"great","label":"Great"},{"value":"good","label":"Good"},{"value":"average","label":"Average"},{"value":"poor","label":"Poor"}],"defaultValue":"","protected":false,"persistent":true,"validate":{"required":false,"custom":"","customPrivate":false},"type":"survey","conditional":{"show":"","when":null,"eq":""}},{"tags":[],"clearOnHide":true,"hidden":false,"input":true,"tableView":true,"label":"Signature","key":"signature","placeholder":"","footer":"Sign above","width":"100%","height":"150px","penColor":"black","backgroundColor":"rgb(245,245,235)","minWidth":"0.5","maxWidth":"2.5","protected":false,"persistent":true,"validate":{"required":false},"type":"signature","hideLabel":true,"conditional":{"show":"","when":null,"eq":""}},{"tabindex":"6","conditional":{"eq":"","when":null,"show":""},"tags":[],"input":true,"label":"Submit","tableView":false,"key":"submit","size":"md","leftIcon":"","rightIcon":"","block":false,"action":"submit","disableOnInvalid":true,"theme":"primary","type":"button"}],"owner":"554806425867f4ee203ea861","submissionAccess":[{"type":"create_all","roles":[]},{"type":"read_all","roles":[]},{"type":"update_all","roles":[]},{"type":"delete_all","roles":[]},{"type":"create_own","roles":["5692b920d1028f01000407e6"]},{"type":"read_own","roles":[]},{"type":"update_own","roles":[]},{"type":"delete_own","roles":[]}],"access":[{"type":"read_all","roles":["5692b920d1028f01000407e4","5692b920d1028f01000407e5","5692b920d1028f01000407e6"]}],"tags":[]}
+{
+ "_id": "57aa1d2a5b7a477b002717fe",
+ "machineName": "examples:example",
+ "modified": "2017-05-09T15:55:13.060Z",
+ "title": "Example",
+ "display": "form",
+ "type": "form",
+ "name": "example",
+ "path": "example",
+ "project": "5692b91fd1028f01000407e3",
+ "created": "2016-08-09T18:12:58.126Z",
+ "components": [
+ {
+ "input": false,
+ "html": "
\n\n
This is a dynamically rendered JSON form built with Form.io . Using a simple drag-and-drop form builder, you can create any form that includes e-signatures, wysiwyg editors, date fields, layout components, data grids, surveys, etc.
\n",
+ "type": "content",
+ "conditional": { "show": "", "when": null, "eq": "" }
+ },
+ {
+ "input": false,
+ "columns": [
+ {
+ "components": [
+ {
+ "tabindex": "1",
+ "tags": [],
+ "clearOnHide": true,
+ "hidden": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "First Name",
+ "key": "firstName",
+ "placeholder": "Enter your first name",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield"
+ },
+ {
+ "tabindex": "3",
+ "tags": [],
+ "clearOnHide": true,
+ "hidden": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "email",
+ "label": "Email",
+ "key": "email",
+ "placeholder": "Enter your email address",
+ "prefix": "",
+ "suffix": "",
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "type": "email",
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "kickbox": { "enabled": false }
+ }
+ ]
+ },
+ {
+ "components": [
+ {
+ "tabindex": "2",
+ "tags": [],
+ "clearOnHide": true,
+ "hidden": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Last Name",
+ "key": "lastName",
+ "placeholder": "Enter your last name",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield"
+ },
+ {
+ "tabindex": "4",
+ "tags": [],
+ "clearOnHide": true,
+ "hidden": false,
+ "input": true,
+ "tableView": true,
+ "inputMask": "(999) 999-9999",
+ "label": "Phone Number",
+ "key": "phoneNumber",
+ "placeholder": "Enter your phone number",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "defaultValue": "",
+ "validate": { "required": false },
+ "type": "phoneNumber",
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ }
+ }
+ ]
+ }
+ ],
+ "type": "columns",
+ "conditional": { "show": "", "when": null, "eq": "" }
+ },
+ {
+ "tabindex": "5",
+ "tags": [],
+ "clearOnHide": true,
+ "hidden": false,
+ "input": true,
+ "tableView": true,
+ "label": "Survey",
+ "key": "survey",
+ "questions": [
+ {
+ "value": "howWouldYouRateTheFormIoPlatform",
+ "label": "How would you rate the Form.io platform?"
+ },
+ {
+ "value": "howWasCustomerSupport",
+ "label": "How was Customer Support?"
+ },
+ { "value": "overallExperience", "label": "Overall Experience?" }
+ ],
+ "values": [
+ { "value": "excellent", "label": "Excellent" },
+ { "value": "great", "label": "Great" },
+ { "value": "good", "label": "Good" },
+ { "value": "average", "label": "Average" },
+ { "value": "poor", "label": "Poor" }
+ ],
+ "defaultValue": "",
+ "protected": false,
+ "persistent": true,
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "type": "survey",
+ "conditional": { "show": "", "when": null, "eq": "" }
+ },
+ {
+ "tags": [],
+ "clearOnHide": true,
+ "hidden": false,
+ "input": true,
+ "tableView": true,
+ "label": "Signature",
+ "key": "signature",
+ "placeholder": "",
+ "footer": "Sign above",
+ "width": "100%",
+ "height": "150px",
+ "penColor": "black",
+ "backgroundColor": "rgb(245,245,235)",
+ "minWidth": "0.5",
+ "maxWidth": "2.5",
+ "protected": false,
+ "persistent": true,
+ "validate": { "required": false },
+ "type": "signature",
+ "hideLabel": true,
+ "conditional": { "show": "", "when": null, "eq": "" }
+ },
+ {
+ "tabindex": "6",
+ "conditional": { "eq": "", "when": null, "show": "" },
+ "tags": [],
+ "input": true,
+ "label": "Submit",
+ "tableView": false,
+ "key": "submit",
+ "size": "md",
+ "leftIcon": "",
+ "rightIcon": "",
+ "block": false,
+ "action": "submit",
+ "disableOnInvalid": true,
+ "theme": "primary",
+ "type": "button"
+ }
+ ],
+ "owner": "554806425867f4ee203ea861",
+ "submissionAccess": [
+ { "type": "create_all", "roles": [] },
+ { "type": "read_all", "roles": [] },
+ { "type": "update_all", "roles": [] },
+ { "type": "delete_all", "roles": [] },
+ { "type": "create_own", "roles": ["5692b920d1028f01000407e6"] },
+ { "type": "read_own", "roles": [] },
+ { "type": "update_own", "roles": [] },
+ { "type": "delete_own", "roles": [] }
+ ],
+ "access": [
+ {
+ "type": "read_all",
+ "roles": [
+ "5692b920d1028f01000407e4",
+ "5692b920d1028f01000407e5",
+ "5692b920d1028f01000407e6"
+ ]
+ }
+ ],
+ "tags": []
+}
diff --git a/test/fixtures/index.d.ts b/test/fixtures/index.d.ts
index ccd454bf94..9f5a37582c 100644
--- a/test/fixtures/index.d.ts
+++ b/test/fixtures/index.d.ts
@@ -1,3 +1,3 @@
-export { default as nestedConditionalForm } from "./nested-conditional-form";
-export { default as nestedForm } from "./nested-form.js";
-export { default as nestedFormInWizard } from "./nested-form-in-wizard.js";
+export { default as nestedConditionalForm } from './nested-conditional-form';
+export { default as nestedForm } from './nested-form.js';
+export { default as nestedFormInWizard } from './nested-form-in-wizard.js';
diff --git a/test/fixtures/nested-conditional-form.d.ts b/test/fixtures/nested-conditional-form.d.ts
index 6894443978..4f1b2b551e 100644
--- a/test/fixtures/nested-conditional-form.d.ts
+++ b/test/fixtures/nested-conditional-form.d.ts
@@ -1,88 +1,92 @@
declare namespace _default {
const type: string;
- const components: ({
- label: string;
- optionsLabelPosition: string;
- values: {
- value: string;
- label: string;
- shortcut: string;
- }[];
- inline: boolean;
- mask: boolean;
- tableView: boolean;
- alwaysEnabled: boolean;
- type: string;
- input: boolean;
- key: string;
- defaultValue: string;
- conditional: {
- show: string;
- when?: undefined;
- eq?: undefined;
- };
- properties: {};
- encrypted: boolean;
- tags?: undefined;
- hideLabel?: undefined;
- submit?: undefined;
- components?: undefined;
- theme?: undefined;
- } | {
- input: boolean;
- tableView: boolean;
- key: string;
- label: string;
- type: string;
- tags: never[];
- conditional: {
- show: string;
- when: string;
- eq: string;
- };
- properties: {};
- hideLabel: boolean;
- submit: boolean;
- components: {
- input: boolean;
- key: string;
- label: string;
- validate: {
- required: boolean;
- customMessage: string;
- json: string;
- };
- type: string;
- }[];
- optionsLabelPosition?: undefined;
- values?: undefined;
- inline?: undefined;
- mask?: undefined;
- alwaysEnabled?: undefined;
- defaultValue?: undefined;
- encrypted?: undefined;
- theme?: undefined;
- } | {
- input: boolean;
- label: string;
- tableView: boolean;
- key: string;
- theme: string;
- type: string;
- optionsLabelPosition?: undefined;
- values?: undefined;
- inline?: undefined;
- mask?: undefined;
- alwaysEnabled?: undefined;
- defaultValue?: undefined;
- conditional?: undefined;
- properties?: undefined;
- encrypted?: undefined;
- tags?: undefined;
- hideLabel?: undefined;
- submit?: undefined;
- components?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ optionsLabelPosition: string;
+ values: {
+ value: string;
+ label: string;
+ shortcut: string;
+ }[];
+ inline: boolean;
+ mask: boolean;
+ tableView: boolean;
+ alwaysEnabled: boolean;
+ type: string;
+ input: boolean;
+ key: string;
+ defaultValue: string;
+ conditional: {
+ show: string;
+ when?: undefined;
+ eq?: undefined;
+ };
+ properties: {};
+ encrypted: boolean;
+ tags?: undefined;
+ hideLabel?: undefined;
+ submit?: undefined;
+ components?: undefined;
+ theme?: undefined;
+ }
+ | {
+ input: boolean;
+ tableView: boolean;
+ key: string;
+ label: string;
+ type: string;
+ tags: never[];
+ conditional: {
+ show: string;
+ when: string;
+ eq: string;
+ };
+ properties: {};
+ hideLabel: boolean;
+ submit: boolean;
+ components: {
+ input: boolean;
+ key: string;
+ label: string;
+ validate: {
+ required: boolean;
+ customMessage: string;
+ json: string;
+ };
+ type: string;
+ }[];
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ inline?: undefined;
+ mask?: undefined;
+ alwaysEnabled?: undefined;
+ defaultValue?: undefined;
+ encrypted?: undefined;
+ theme?: undefined;
+ }
+ | {
+ input: boolean;
+ label: string;
+ tableView: boolean;
+ key: string;
+ theme: string;
+ type: string;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ inline?: undefined;
+ mask?: undefined;
+ alwaysEnabled?: undefined;
+ defaultValue?: undefined;
+ conditional?: undefined;
+ properties?: undefined;
+ encrypted?: undefined;
+ tags?: undefined;
+ hideLabel?: undefined;
+ submit?: undefined;
+ components?: undefined;
+ }
+ )[];
const title: string;
const display: string;
}
diff --git a/test/fixtures/nested-conditional-form.js b/test/fixtures/nested-conditional-form.js
index 79ddfd08ca..e63bfabe67 100644
--- a/test/fixtures/nested-conditional-form.js
+++ b/test/fixtures/nested-conditional-form.js
@@ -1,76 +1,73 @@
-export default
-{
- type: 'form',
- components: [
- {
- label: 'Radio',
- optionsLabelPosition: 'right',
- values: [
- {
- value: 'yes',
- label: 'Yes',
- shortcut: ''
- },
- {
- value: 'no',
- label: 'No',
- shortcut: ''
- }],
- inline: false,
- mask: false,
- tableView: true,
- alwaysEnabled: false,
- type: 'radio',
- input: true,
- key: 'radio',
- defaultValue: 'no',
- conditional:
- {
- show: ''
- },
- properties:
- {},
- encrypted: false
- },
- {
- input: true,
- tableView: true,
- key: 'formField',
- label: 'formField',
+export default {
type: 'form',
- tags: [],
- conditional:
- {
- show: 'true',
- when: 'radio',
- eq: 'yes'
- },
- properties:
- {},
- hideLabel: true,
- submit: true,
components: [
- {
- input: true,
- key: 'name',
- label: 'Name',
- validate:
- {
- required: true,
- customMessage: '',
- json: ''
- },
- type: 'textfield'
- }]
- },
- {
- input: true,
- label: 'Submit',
- tableView: false,
- key: 'submit',
- theme: 'primary',
- type: 'button'
- }],
- title: 'Nested Conditional',
- display: 'form',
+ {
+ label: 'Radio',
+ optionsLabelPosition: 'right',
+ values: [
+ {
+ value: 'yes',
+ label: 'Yes',
+ shortcut: '',
+ },
+ {
+ value: 'no',
+ label: 'No',
+ shortcut: '',
+ },
+ ],
+ inline: false,
+ mask: false,
+ tableView: true,
+ alwaysEnabled: false,
+ type: 'radio',
+ input: true,
+ key: 'radio',
+ defaultValue: 'no',
+ conditional: {
+ show: '',
+ },
+ properties: {},
+ encrypted: false,
+ },
+ {
+ input: true,
+ tableView: true,
+ key: 'formField',
+ label: 'formField',
+ type: 'form',
+ tags: [],
+ conditional: {
+ show: 'true',
+ when: 'radio',
+ eq: 'yes',
+ },
+ properties: {},
+ hideLabel: true,
+ submit: true,
+ components: [
+ {
+ input: true,
+ key: 'name',
+ label: 'Name',
+ validate: {
+ required: true,
+ customMessage: '',
+ json: '',
+ },
+ type: 'textfield',
+ },
+ ],
+ },
+ {
+ input: true,
+ label: 'Submit',
+ tableView: false,
+ key: 'submit',
+ theme: 'primary',
+ type: 'button',
+ },
+ ],
+ title: 'Nested Conditional',
+ display: 'form',
};
diff --git a/test/fixtures/nested-conditionlly-hidden.json b/test/fixtures/nested-conditionlly-hidden.json
index 74c95e5663..a95feee446 100644
--- a/test/fixtures/nested-conditionlly-hidden.json
+++ b/test/fixtures/nested-conditionlly-hidden.json
@@ -1,46 +1,46 @@
{
- "components": [
- {
- "label": "Text Field",
- "allowMultipleMasks": false,
- "showWordCount": false,
- "showCharCount": false,
- "tableView": true,
- "alwaysEnabled": false,
- "type": "textfield",
- "input": true,
- "key": "textField2",
- "widget": {
- "type": ""
- }
- },
- {
- "label": "Checkbox",
- "shortcut": "",
- "mask": false,
- "tableView": true,
- "alwaysEnabled": false,
- "type": "checkbox",
- "input": true,
- "key": "checkbox2"
- },
- {
- "label": "",
- "mask": false,
- "tableView": true,
- "alwaysEnabled": false,
- "type": "form",
- "key": "form",
- "src": "https://examples.form.io/example",
- "input": true,
- "submit": true,
- "conditional": {
- "show": true,
- "when": "checkbox2",
- "eq": "true",
- "json": ""
- },
- "customConditional": ""
- }
- ]
+ "components": [
+ {
+ "label": "Text Field",
+ "allowMultipleMasks": false,
+ "showWordCount": false,
+ "showCharCount": false,
+ "tableView": true,
+ "alwaysEnabled": false,
+ "type": "textfield",
+ "input": true,
+ "key": "textField2",
+ "widget": {
+ "type": ""
+ }
+ },
+ {
+ "label": "Checkbox",
+ "shortcut": "",
+ "mask": false,
+ "tableView": true,
+ "alwaysEnabled": false,
+ "type": "checkbox",
+ "input": true,
+ "key": "checkbox2"
+ },
+ {
+ "label": "",
+ "mask": false,
+ "tableView": true,
+ "alwaysEnabled": false,
+ "type": "form",
+ "key": "form",
+ "src": "https://examples.form.io/example",
+ "input": true,
+ "submit": true,
+ "conditional": {
+ "show": true,
+ "when": "checkbox2",
+ "eq": "true",
+ "json": ""
+ },
+ "customConditional": ""
+ }
+ ]
}
diff --git a/test/fixtures/nested-form-in-wizard.d.ts b/test/fixtures/nested-form-in-wizard.d.ts
index 78d06c5f72..773cd850c5 100644
--- a/test/fixtures/nested-form-in-wizard.d.ts
+++ b/test/fixtures/nested-form-in-wizard.d.ts
@@ -1,43 +1,46 @@
declare namespace _default {
const type: string;
- const components: ({
- title: string;
- label: string;
- type: string;
- key: string;
- components: never[];
- input?: undefined;
- } | {
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- display: string;
- components: {
- label: string;
- optionsLabelPosition: string;
- inline: boolean;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- }[];
- useOriginalRevision: boolean;
- reference: boolean;
- clearOnHide: boolean;
- key: string;
- type: string;
- persistent: boolean;
- }[];
- input: boolean;
- })[];
+ const components: (
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: never[];
+ input?: undefined;
+ }
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ display: string;
+ components: {
+ label: string;
+ optionsLabelPosition: string;
+ inline: boolean;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ useOriginalRevision: boolean;
+ reference: boolean;
+ clearOnHide: boolean;
+ key: string;
+ type: string;
+ persistent: boolean;
+ }[];
+ input: boolean;
+ }
+ )[];
const title: string;
const display: string;
}
diff --git a/test/fixtures/nested-form-in-wizard.js b/test/fixtures/nested-form-in-wizard.js
index 8adf847ffc..0005fe3815 100644
--- a/test/fixtures/nested-form-in-wizard.js
+++ b/test/fixtures/nested-form-in-wizard.js
@@ -1,56 +1,56 @@
export default {
- type: 'form',
- components: [
- {
- title: 'Page 1',
- label: 'Page 1',
- type: 'panel',
- key: 'page1',
- components: []
- },
- {
- title: 'Page 2',
- label: 'Page 2',
- type: 'panel',
- key: 'page2',
- components: [
+ type: 'form',
+ components: [
{
- label: 'Form',
- display: 'form',
- components: [
- {
- label: 'Radio',
- optionsLabelPosition: 'right',
- inline: false,
- tableView: false,
- values: [
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [],
+ },
+ {
+ title: 'Page 2',
+ label: 'Page 2',
+ type: 'panel',
+ key: 'page2',
+ components: [
{
- label: 'Yes',
- value: 'true',
- shortcut: ''
+ label: 'Form',
+ display: 'form',
+ components: [
+ {
+ label: 'Radio',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: false,
+ values: [
+ {
+ label: 'Yes',
+ value: 'true',
+ shortcut: '',
+ },
+ {
+ label: 'No',
+ value: 'false',
+ shortcut: '',
+ },
+ ],
+ key: 'radio',
+ type: 'radio',
+ input: true,
+ },
+ ],
+ useOriginalRevision: false,
+ reference: false,
+ clearOnHide: true,
+ key: 'form',
+ type: 'form',
+ persistent: true,
},
- {
- label: 'No',
- value: 'false',
- shortcut: ''
- }
- ],
- key: 'radio',
- type: 'radio',
- input: true
- }
- ],
- useOriginalRevision: false,
- reference: false,
- clearOnHide: true,
- key: 'form',
- type: 'form',
- persistent: true,
- }
- ],
- input: false,
- }
- ],
- title: 'FIO-1133',
- display: 'wizard',
+ ],
+ input: false,
+ },
+ ],
+ title: 'FIO-1133',
+ display: 'wizard',
};
diff --git a/test/fixtures/nested-form.d.ts b/test/fixtures/nested-form.d.ts
index edeb2e0367..bafc6a0031 100644
--- a/test/fixtures/nested-form.d.ts
+++ b/test/fixtures/nested-form.d.ts
@@ -3,95 +3,103 @@ declare namespace _default {
const type: string;
const tags: never[];
const owner: string;
- const components: ({
- label: string;
- tableView: boolean;
- components: ({
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- defaultOpen?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- defaultValue?: undefined;
- components?: undefined;
- disableOnInvalid?: undefined;
- } | {
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- defaultOpen: boolean;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- tableView: boolean;
- defaultValue: {}[];
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- disableOnInvalid?: undefined;
- } | {
- label: string;
- components: {
- label: string;
- key: string;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- }[];
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- defaultOpen?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- defaultValue?: undefined;
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- defaultOpen?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- defaultValue?: undefined;
- components?: undefined;
- })[];
- key: string;
- type: string;
- input: boolean;
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- components?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ tableView: boolean;
+ components: (
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ defaultOpen?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ defaultValue?: undefined;
+ components?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ label: string;
+ reorder: boolean;
+ addAnotherPosition: string;
+ defaultOpen: boolean;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ tableView: boolean;
+ defaultValue: {}[];
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ disableOnInvalid?: undefined;
+ }
+ | {
+ label: string;
+ components: {
+ label: string;
+ key: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ }[];
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ defaultOpen?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ defaultValue?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ defaultOpen?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ defaultValue?: undefined;
+ components?: undefined;
+ }
+ )[];
+ key: string;
+ type: string;
+ input: boolean;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ components?: undefined;
+ }
+ )[];
const controller: string;
const revisions: string;
const _vid: number;
diff --git a/test/fixtures/nested-form.js b/test/fixtures/nested-form.js
index 1f92a7f089..7b88787634 100644
--- a/test/fixtures/nested-form.js
+++ b/test/fixtures/nested-form.js
@@ -1,107 +1,105 @@
export default {
- _id: '5ec4ecf5ca7d5ef47e325b3b',
- type: 'form',
- tags: [],
- owner: '5e8f2b72d248941a2bec61ad',
- components: [
- {
- label: 'Form',
- tableView: true,
- components: [
+ _id: '5ec4ecf5ca7d5ef47e325b3b',
+ type: 'form',
+ tags: [],
+ owner: '5e8f2b72d248941a2bec61ad',
+ components: [
{
- label: 'Text Field',
- tableView: true,
- key: 'textField',
- type: 'textfield',
- input: true
+ label: 'Form',
+ tableView: true,
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ defaultOpen: false,
+ layoutFixed: false,
+ enableRowGroups: false,
+ tableView: false,
+ defaultValue: [{}],
+ key: 'dataGrid',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ {
+ label: 'Tabs',
+ components: [
+ {
+ label: 'Tab 1',
+ key: 'tab1',
+ components: [
+ {
+ label: 'tabsTextfield',
+ tableView: true,
+ key: 'tabsTextfield',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ ],
+ tableView: false,
+ key: 'tabs',
+ type: 'tabs',
+ input: false,
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ key: 'form',
+ type: 'form',
+ input: true,
},
{
- label: 'Data Grid',
- reorder: false,
- addAnotherPosition: 'bottom',
- defaultOpen: false,
- layoutFixed: false,
- enableRowGroups: false,
- tableView: false,
- defaultValue: [
- {}
- ],
- key: 'dataGrid',
- type: 'datagrid',
- input: true,
- components: [
- {
- label: 'Text Field',
- tableView: true,
- key: 'textField',
- type: 'textfield',
- input: true
- }
- ]
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
},
+ ],
+ controller: '',
+ revisions: '',
+ _vid: 0,
+ title: 'testPathParent',
+ display: 'form',
+ access: [
{
- label: 'Tabs',
- components: [
- {
- label: 'Tab 1',
- key: 'tab1',
- components: [
- {
- label: 'tabsTextfield',
- tableView: true,
- key: 'tabsTextfield',
- type: 'textfield',
- input: true
- }
- ]
- }
- ],
- tableView: false,
- key: 'tabs',
- type: 'tabs',
- input: false
+ roles: [
+ '5e8f2b7cd248943778ec61bb',
+ '5e8f2b7cd248941e0aec61bc',
+ '5e8f2b7cd248941083ec61bd',
+ ],
+ type: 'read_all',
},
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false
- }
- ],
- key: 'form',
- type: 'form',
- input: true
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false
- }
- ],
- controller: '',
- revisions: '',
- _vid: 0,
- title: 'testPathParent',
- display: 'form',
- access: [
- {
- roles: [
- '5e8f2b7cd248943778ec61bb',
- '5e8f2b7cd248941e0aec61bc',
- '5e8f2b7cd248941083ec61bd'
- ],
- type: 'read_all'
- }
- ],
- submissionAccess: [],
- settings: {},
- properties: {},
- name: 'testPathParent',
- path: 'testpathparent',
- project: '5e8f2b7cd2489496b7ec61ba',
+ ],
+ submissionAccess: [],
+ settings: {},
+ properties: {},
+ name: 'testPathParent',
+ path: 'testpathparent',
+ project: '5e8f2b7cd2489496b7ec61ba',
};
diff --git a/test/forms/actions.d.ts b/test/forms/actions.d.ts
index 0e63bd127f..1cad4e1887 100644
--- a/test/forms/actions.d.ts
+++ b/test/forms/actions.d.ts
@@ -1,663 +1,704 @@
declare namespace _default {
const title: string;
namespace form {
- const components: ({
- type: string;
- input: boolean;
- key: string;
- label?: undefined;
- tree?: undefined;
- legend?: undefined;
- components?: undefined;
- tag?: undefined;
- content?: undefined;
- className?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- } | {
- type: string;
- input: boolean;
- label: string;
- key: string;
- tree?: undefined;
- legend?: undefined;
- components?: undefined;
- tag?: undefined;
- content?: undefined;
- className?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- } | {
- type: string;
- input: boolean;
- tree: boolean;
- legend: string;
- components: {
- input: boolean;
- type: string;
- key: string;
- components: ({
- clearOnHide: boolean;
- label: string;
- input: boolean;
- key: string;
- columns: ({
- components: {
- input: boolean;
- label: string;
- key: string;
- placeholder: string;
- data: {
- values: {
- value: string;
- label: string;
- }[];
- };
- dataSrc: string;
- valueProperty: string;
- template: string;
- persistent: boolean;
- type: string;
- description: string;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- } | {
- components: {
- label: string;
- key: string;
- inputType: string;
- defaultValue: string;
- input: boolean;
- placeholder: string;
- prefix: string;
- suffix: string;
- type: string;
- multiple: boolean;
- validate: {
- required: boolean;
- };
- description: string;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- })[];
- type: string;
- tableView?: undefined;
- title?: undefined;
- components?: undefined;
- } | {
- key: string;
- input: boolean;
- tableView: boolean;
- title: string;
- components: ({
- type: string;
- persistent: boolean;
- protected: boolean;
- defaultValue: boolean;
- key: string;
- label: string;
- tooltip: string;
- hideLabel: boolean;
- inputType: string;
- input: boolean;
- tableView?: undefined;
- legend?: undefined;
- components?: undefined;
- tree?: undefined;
- addAnother?: undefined;
- } | {
- key: string;
- input: boolean;
- tableView: boolean;
- legend: string;
- components: {
- label: string;
- key: string;
- inputType: string;
- defaultValue: string;
- input: boolean;
- placeholder: string;
- type: string;
- multiple: boolean;
- }[];
- type: string;
- label: string;
- persistent?: undefined;
- protected?: undefined;
- defaultValue?: undefined;
- tooltip?: undefined;
- hideLabel?: undefined;
- inputType?: undefined;
- tree?: undefined;
- addAnother?: undefined;
- } | {
- input: boolean;
- tree: boolean;
- components: {
- input: boolean;
- tableView: boolean;
- inputType: string;
- label: string;
- key: string;
- protected: boolean;
- persistent: boolean;
- clearOnHide: boolean;
- type: string;
- inDataGrid: boolean;
- }[];
- label: string;
- key: string;
- persistent: boolean;
- type: string;
- addAnother: string;
- protected?: undefined;
- defaultValue?: undefined;
- tooltip?: undefined;
- hideLabel?: undefined;
- inputType?: undefined;
- tableView?: undefined;
- legend?: undefined;
- })[];
- type: string;
- label: string;
- clearOnHide?: undefined;
- columns?: undefined;
- } | {
- key: string;
- input: boolean;
- tableView: boolean;
- title: string;
- components: ({
- key: string;
- input: boolean;
- html: string;
- type: string;
- label: string;
- autofocus?: undefined;
- tableView?: undefined;
- placeholder?: undefined;
- rows?: undefined;
- multiple?: undefined;
- defaultValue?: undefined;
- protected?: undefined;
- persistent?: undefined;
- hidden?: undefined;
- wysiwyg?: undefined;
- spellcheck?: undefined;
- description?: undefined;
- } | {
- autofocus: boolean;
- input: boolean;
- tableView: boolean;
- label: string;
- key: string;
- placeholder: string;
- rows: number;
- multiple: boolean;
- defaultValue: string;
- protected: boolean;
- persistent: boolean;
- hidden: boolean;
- wysiwyg: boolean;
- spellcheck: boolean;
- type: string;
- description: string;
- html?: undefined;
- })[];
- type: string;
- label: string;
- clearOnHide?: undefined;
- columns?: undefined;
- } | {
- key: string;
- type: string;
- title: string;
- input: boolean;
- components: ({
- type: string;
- persistent: boolean;
- protected: boolean;
- defaultValue: boolean;
- key: string;
- label: string;
- hideLabel: boolean;
- inputType: string;
- input: boolean;
- html?: undefined;
- multiple?: undefined;
- unique?: undefined;
- description?: undefined;
- clearOnHide?: undefined;
- } | {
- key: string;
- input: boolean;
- html: string;
- type: string;
- label: string;
- persistent?: undefined;
- protected?: undefined;
- defaultValue?: undefined;
- hideLabel?: undefined;
- inputType?: undefined;
- multiple?: undefined;
- unique?: undefined;
- description?: undefined;
- clearOnHide?: undefined;
- } | {
- input: boolean;
- inputType: string;
- label: string;
- key: string;
- multiple: boolean;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- type: string;
- description: string;
- defaultValue?: undefined;
- hideLabel?: undefined;
- html?: undefined;
- clearOnHide?: undefined;
- } | {
- input: boolean;
- inputType: string;
- label: string;
- key: string;
- multiple: boolean;
- protected: boolean;
- clearOnHide: boolean;
- type: string;
- description: string;
- persistent?: undefined;
- defaultValue?: undefined;
- hideLabel?: undefined;
- html?: undefined;
- unique?: undefined;
- })[];
- clearOnHide?: undefined;
- label?: undefined;
- columns?: undefined;
- tableView?: undefined;
- })[];
- }[];
- key?: undefined;
- label?: undefined;
- tag?: undefined;
- content?: undefined;
- className?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- } | {
- type: string;
- input: boolean;
- tree: boolean;
- key: string;
- legend: string;
- components: {
- type: string;
- input: boolean;
- key: string;
- label: string;
- placeholder: string;
- dataSrc: string;
- data: {
- json: string;
- };
- template: string;
- valueProperty: string;
- multiple: boolean;
- }[];
- label?: undefined;
- tag?: undefined;
- content?: undefined;
- className?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- } | {
- key: string;
- type: string;
- input: boolean;
- tree: boolean;
- legend: string;
- components: {
- type: string;
- key: string;
- input: boolean;
- tree: boolean;
- components: {
- key: string;
- type: string;
- input: boolean;
- columns: ({
- components: ({
- type: string;
- input: boolean;
- label: string;
- key: string;
- placeholder: string;
- template: string;
- dataSrc: string;
- data: {
- json: string;
- values?: undefined;
- url?: undefined;
- resource?: undefined;
- };
- valueProperty: string;
- multiple: boolean;
- inputType?: undefined;
- } | {
- type: string;
- input: boolean;
- label: string;
- key: string;
- placeholder: string;
- template: string;
- dataSrc: string;
- data: {
- values: {
- value: string;
- label: string;
- }[];
- json: string;
- url: string;
- resource: string;
- };
- valueProperty: string;
- multiple: boolean;
- inputType?: undefined;
- } | {
- input: boolean;
- type: string;
- inputType: string;
- label: string;
- key: string;
- placeholder: string;
- multiple: boolean;
- template?: undefined;
- dataSrc?: undefined;
- data?: undefined;
- valueProperty?: undefined;
- })[];
- } | {
- components: {
- key: string;
- type: string;
- input: boolean;
- components: ({
+ const components: (
+ | {
+ type: string;
+ input: boolean;
+ key: string;
+ label?: undefined;
+ tree?: undefined;
+ legend?: undefined;
+ components?: undefined;
+ tag?: undefined;
+ content?: undefined;
+ className?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ }
+ | {
+ type: string;
+ input: boolean;
+ label: string;
+ key: string;
+ tree?: undefined;
+ legend?: undefined;
+ components?: undefined;
+ tag?: undefined;
+ content?: undefined;
+ className?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ }
+ | {
+ type: string;
+ input: boolean;
+ tree: boolean;
+ legend: string;
+ components: {
+ input: boolean;
+ type: string;
+ key: string;
+ components: (
+ | {
+ clearOnHide: boolean;
+ label: string;
+ input: boolean;
key: string;
+ columns: (
+ | {
+ components: {
+ input: boolean;
+ label: string;
+ key: string;
+ placeholder: string;
+ data: {
+ values: {
+ value: string;
+ label: string;
+ }[];
+ };
+ dataSrc: string;
+ valueProperty: string;
+ template: string;
+ persistent: boolean;
+ type: string;
+ description: string;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ }
+ | {
+ components: {
+ label: string;
+ key: string;
+ inputType: string;
+ defaultValue: string;
+ input: boolean;
+ placeholder: string;
+ prefix: string;
+ suffix: string;
+ type: string;
+ multiple: boolean;
+ validate: {
+ required: boolean;
+ };
+ description: string;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ }
+ )[];
type: string;
- tag: string;
+ tableView?: undefined;
+ title?: undefined;
+ components?: undefined;
+ }
+ | {
+ key: string;
input: boolean;
- content: string;
- className: string;
- label?: undefined;
- editorComponents?: undefined;
- placeholder?: undefined;
- } | {
- label: string;
+ tableView: boolean;
+ title: string;
+ components: (
+ | {
+ type: string;
+ persistent: boolean;
+ protected: boolean;
+ defaultValue: boolean;
+ key: string;
+ label: string;
+ tooltip: string;
+ hideLabel: boolean;
+ inputType: string;
+ input: boolean;
+ tableView?: undefined;
+ legend?: undefined;
+ components?: undefined;
+ tree?: undefined;
+ addAnother?: undefined;
+ }
+ | {
+ key: string;
+ input: boolean;
+ tableView: boolean;
+ legend: string;
+ components: {
+ label: string;
+ key: string;
+ inputType: string;
+ defaultValue: string;
+ input: boolean;
+ placeholder: string;
+ type: string;
+ multiple: boolean;
+ }[];
+ type: string;
+ label: string;
+ persistent?: undefined;
+ protected?: undefined;
+ defaultValue?: undefined;
+ tooltip?: undefined;
+ hideLabel?: undefined;
+ inputType?: undefined;
+ tree?: undefined;
+ addAnother?: undefined;
+ }
+ | {
+ input: boolean;
+ tree: boolean;
+ components: {
+ input: boolean;
+ tableView: boolean;
+ inputType: string;
+ label: string;
+ key: string;
+ protected: boolean;
+ persistent: boolean;
+ clearOnHide: boolean;
+ type: string;
+ inDataGrid: boolean;
+ }[];
+ label: string;
+ key: string;
+ persistent: boolean;
+ type: string;
+ addAnother: string;
+ protected?: undefined;
+ defaultValue?: undefined;
+ tooltip?: undefined;
+ hideLabel?: undefined;
+ inputType?: undefined;
+ tableView?: undefined;
+ legend?: undefined;
+ }
+ )[];
type: string;
+ label: string;
+ clearOnHide?: undefined;
+ columns?: undefined;
+ }
+ | {
+ key: string;
input: boolean;
+ tableView: boolean;
+ title: string;
+ components: (
+ | {
+ key: string;
+ input: boolean;
+ html: string;
+ type: string;
+ label: string;
+ autofocus?: undefined;
+ tableView?: undefined;
+ placeholder?: undefined;
+ rows?: undefined;
+ multiple?: undefined;
+ defaultValue?: undefined;
+ protected?: undefined;
+ persistent?: undefined;
+ hidden?: undefined;
+ wysiwyg?: undefined;
+ spellcheck?: undefined;
+ description?: undefined;
+ }
+ | {
+ autofocus: boolean;
+ input: boolean;
+ tableView: boolean;
+ label: string;
+ key: string;
+ placeholder: string;
+ rows: number;
+ multiple: boolean;
+ defaultValue: string;
+ protected: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ wysiwyg: boolean;
+ spellcheck: boolean;
+ type: string;
+ description: string;
+ html?: undefined;
+ }
+ )[];
+ type: string;
+ label: string;
+ clearOnHide?: undefined;
+ columns?: undefined;
+ }
+ | {
key: string;
- editorComponents: ({
- label: string;
- labelPosition: string;
- placeholder: string;
- description: string;
- tooltip: string;
- prefix: string;
- suffix: string;
- widget: {
- type: string;
- };
- inputMask: string;
- allowMultipleMasks: boolean;
- customClass: string;
- tabindex: string;
- hidden: boolean;
- hideLabel: boolean;
- showWordCount: boolean;
- showCharCount: boolean;
- mask: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- multiple: boolean;
- persistent: boolean;
- inputFormat: string;
- protected: boolean;
- dbIndex: boolean;
- case: string;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- pattern: string;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- minLength: string;
- maxLength: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- unique: boolean;
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- input: boolean;
- refreshOn: string;
- inputType: string;
- id: string;
- defaultValue: string;
- size?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- dataGridLabel?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- size: string;
- block: boolean;
- action: string;
- disableOnInvalid: boolean;
- theme: string;
- input: boolean;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- tableView: boolean;
- modalEdit: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- widget: {
+ type: string;
+ title: string;
+ input: boolean;
+ components: (
+ | {
+ type: string;
+ persistent: boolean;
+ protected: boolean;
+ defaultValue: boolean;
+ key: string;
+ label: string;
+ hideLabel: boolean;
+ inputType: string;
+ input: boolean;
+ html?: undefined;
+ multiple?: undefined;
+ unique?: undefined;
+ description?: undefined;
+ clearOnHide?: undefined;
+ }
+ | {
+ key: string;
+ input: boolean;
+ html: string;
+ type: string;
+ label: string;
+ persistent?: undefined;
+ protected?: undefined;
+ defaultValue?: undefined;
+ hideLabel?: undefined;
+ inputType?: undefined;
+ multiple?: undefined;
+ unique?: undefined;
+ description?: undefined;
+ clearOnHide?: undefined;
+ }
+ | {
+ input: boolean;
+ inputType: string;
+ label: string;
+ key: string;
+ multiple: boolean;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ type: string;
+ description: string;
+ defaultValue?: undefined;
+ hideLabel?: undefined;
+ html?: undefined;
+ clearOnHide?: undefined;
+ }
+ | {
+ input: boolean;
+ inputType: string;
+ label: string;
+ key: string;
+ multiple: boolean;
+ protected: boolean;
+ clearOnHide: boolean;
+ type: string;
+ description: string;
+ persistent?: undefined;
+ defaultValue?: undefined;
+ hideLabel?: undefined;
+ html?: undefined;
+ unique?: undefined;
+ }
+ )[];
+ clearOnHide?: undefined;
+ label?: undefined;
+ columns?: undefined;
+ tableView?: undefined;
+ }
+ )[];
+ }[];
+ key?: undefined;
+ label?: undefined;
+ tag?: undefined;
+ content?: undefined;
+ className?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ }
+ | {
+ type: string;
+ input: boolean;
+ tree: boolean;
+ key: string;
+ legend: string;
+ components: {
+ type: string;
+ input: boolean;
+ key: string;
+ label: string;
+ placeholder: string;
+ dataSrc: string;
+ data: {
+ json: string;
+ };
+ template: string;
+ valueProperty: string;
+ multiple: boolean;
+ }[];
+ label?: undefined;
+ tag?: undefined;
+ content?: undefined;
+ className?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ }
+ | {
+ key: string;
+ type: string;
+ input: boolean;
+ tree: boolean;
+ legend: string;
+ components: {
+ type: string;
+ key: string;
+ input: boolean;
+ tree: boolean;
+ components: {
+ key: string;
+ type: string;
+ input: boolean;
+ columns: (
+ | {
+ components: (
+ | {
+ type: string;
+ input: boolean;
+ label: string;
+ key: string;
+ placeholder: string;
+ template: string;
+ dataSrc: string;
+ data: {
+ json: string;
+ values?: undefined;
+ url?: undefined;
+ resource?: undefined;
+ };
+ valueProperty: string;
+ multiple: boolean;
+ inputType?: undefined;
+ }
+ | {
+ type: string;
+ input: boolean;
+ label: string;
+ key: string;
+ placeholder: string;
+ template: string;
+ dataSrc: string;
+ data: {
+ values: {
+ value: string;
+ label: string;
+ }[];
+ json: string;
+ url: string;
+ resource: string;
+ };
+ valueProperty: string;
+ multiple: boolean;
+ inputType?: undefined;
+ }
+ | {
+ input: boolean;
+ type: string;
+ inputType: string;
+ label: string;
+ key: string;
+ placeholder: string;
+ multiple: boolean;
+ template?: undefined;
+ dataSrc?: undefined;
+ data?: undefined;
+ valueProperty?: undefined;
+ }
+ )[];
+ }
+ | {
+ components: {
+ key: string;
type: string;
- };
- attributes: {};
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- pattern?: undefined;
- customMessage?: undefined;
- json?: undefined;
- minLength?: undefined;
- maxLength?: undefined;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- json?: undefined;
- };
- overlay: {
- style: string;
- left: string;
- top: string;
- width: string;
- height: string;
- page?: undefined;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- properties: {};
- allowMultipleMasks: boolean;
- leftIcon: string;
- rightIcon: string;
- dataGridLabel: boolean;
- id: string;
- inputMask?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- inputFormat?: undefined;
- case?: undefined;
- calculateServer?: undefined;
- tags?: undefined;
- logic?: undefined;
- inputType?: undefined;
- })[];
- placeholder: string;
- tag?: undefined;
- content?: undefined;
- className?: undefined;
- })[];
- }[];
- })[];
- }[];
- }[];
- label?: undefined;
- tag?: undefined;
- content?: undefined;
- className?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- } | {
- key: string;
- type: string;
- tag: string;
- input: boolean;
- content: string;
- className: string;
- label?: undefined;
- tree?: undefined;
- legend?: undefined;
- components?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- } | {
- type: string;
- input: boolean;
- label: string;
- key: string;
- size: string;
- leftIcon: string;
- rightIcon: string;
- block: boolean;
- action: string;
- disableOnInvalid: boolean;
- theme: string;
- tree?: undefined;
- legend?: undefined;
- components?: undefined;
- tag?: undefined;
- content?: undefined;
- className?: undefined;
- })[];
+ input: boolean;
+ components: (
+ | {
+ key: string;
+ type: string;
+ tag: string;
+ input: boolean;
+ content: string;
+ className: string;
+ label?: undefined;
+ editorComponents?: undefined;
+ placeholder?: undefined;
+ }
+ | {
+ label: string;
+ type: string;
+ input: boolean;
+ key: string;
+ editorComponents: (
+ | {
+ label: string;
+ labelPosition: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ prefix: string;
+ suffix: string;
+ widget: {
+ type: string;
+ };
+ inputMask: string;
+ allowMultipleMasks: boolean;
+ customClass: string;
+ tabindex: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ showWordCount: boolean;
+ showCharCount: boolean;
+ mask: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ multiple: boolean;
+ persistent: boolean;
+ inputFormat: string;
+ protected: boolean;
+ dbIndex: boolean;
+ case: string;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ pattern: string;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ minLength: string;
+ maxLength: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ unique: boolean;
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ input: boolean;
+ refreshOn: string;
+ inputType: string;
+ id: string;
+ defaultValue: string;
+ size?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ dataGridLabel?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ size: string;
+ block: boolean;
+ action: string;
+ disableOnInvalid: boolean;
+ theme: string;
+ input: boolean;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ tableView: boolean;
+ modalEdit: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ widget: {
+ type: string;
+ };
+ attributes: {};
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ pattern?: undefined;
+ customMessage?: undefined;
+ json?: undefined;
+ minLength?: undefined;
+ maxLength?: undefined;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json?: undefined;
+ };
+ overlay: {
+ style: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ page?: undefined;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ properties: {};
+ allowMultipleMasks: boolean;
+ leftIcon: string;
+ rightIcon: string;
+ dataGridLabel: boolean;
+ id: string;
+ inputMask?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ inputFormat?: undefined;
+ case?: undefined;
+ calculateServer?: undefined;
+ tags?: undefined;
+ logic?: undefined;
+ inputType?: undefined;
+ }
+ )[];
+ placeholder: string;
+ tag?: undefined;
+ content?: undefined;
+ className?: undefined;
+ }
+ )[];
+ }[];
+ }
+ )[];
+ }[];
+ }[];
+ label?: undefined;
+ tag?: undefined;
+ content?: undefined;
+ className?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ }
+ | {
+ key: string;
+ type: string;
+ tag: string;
+ input: boolean;
+ content: string;
+ className: string;
+ label?: undefined;
+ tree?: undefined;
+ legend?: undefined;
+ components?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ }
+ | {
+ type: string;
+ input: boolean;
+ label: string;
+ key: string;
+ size: string;
+ leftIcon: string;
+ rightIcon: string;
+ block: boolean;
+ action: string;
+ disableOnInvalid: boolean;
+ theme: string;
+ tree?: undefined;
+ legend?: undefined;
+ components?: undefined;
+ tag?: undefined;
+ content?: undefined;
+ className?: undefined;
+ }
+ )[];
const action: string;
}
const tests: {
diff --git a/test/forms/actions.js b/test/forms/actions.js
index aea1153403..b385a75449 100644
--- a/test/forms/actions.js
+++ b/test/forms/actions.js
@@ -1,866 +1,906 @@
import assert from 'power-assert';
export default {
- title: 'Actions Form Tests',
- form: {
- components: [
- {
- type: 'hidden',
- input: true,
- key: 'priority'
- },
- {
- type: 'hidden',
- input: true,
- key: 'name'
- },
- {
- type: 'textfield',
- input: true,
- label: 'Title',
- key: 'title'
- },
- {
- type: 'fieldset',
- input: false,
- tree: true,
- legend: 'Action Settings',
+ title: 'Actions Form Tests',
+ form: {
components: [
- {
- input: false,
- type: 'container',
- key: 'settings',
- components: [
- {
- clearOnHide: false,
- label: 'Columns',
+ {
+ type: 'hidden',
+ input: true,
+ key: 'priority',
+ },
+ {
+ type: 'hidden',
+ input: true,
+ key: 'name',
+ },
+ {
+ type: 'textfield',
+ input: true,
+ label: 'Title',
+ key: 'title',
+ },
+ {
+ type: 'fieldset',
input: false,
- key: 'columns',
- columns: [
- {
- components: [
- {
- input: true,
- label: 'Request Method',
- key: 'method',
- placeholder: 'Match',
- data: {
- values: [
- {
- value: '',
- label: 'Match'
- },
+ tree: true,
+ legend: 'Action Settings',
+ components: [
+ {
+ input: false,
+ type: 'container',
+ key: 'settings',
+ components: [
{
- value: 'get',
- label: 'GET'
+ clearOnHide: false,
+ label: 'Columns',
+ input: false,
+ key: 'columns',
+ columns: [
+ {
+ components: [
+ {
+ input: true,
+ label: 'Request Method',
+ key: 'method',
+ placeholder: 'Match',
+ data: {
+ values: [
+ {
+ value: '',
+ label: 'Match',
+ },
+ {
+ value: 'get',
+ label: 'GET',
+ },
+ {
+ value: 'post',
+ label: 'POST',
+ },
+ {
+ value: 'put',
+ label: 'PUT',
+ },
+ {
+ value: 'delete',
+ label: 'DELETE',
+ },
+ {
+ value: 'patch',
+ label: 'PATCH',
+ },
+ ],
+ },
+ dataSrc: 'values',
+ valueProperty: 'value',
+ template:
+ '
{{ item.label }} ',
+ persistent: true,
+ type: 'select',
+ description:
+ 'If set to Match it will use the same Request Type as sent to the Form.io server.',
+ },
+ ],
+ width: 2,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ },
+ {
+ components: [
+ {
+ label: 'Request URL',
+ key: 'url',
+ inputType: 'text',
+ defaultValue: '',
+ input: true,
+ placeholder:
+ 'http://myreceiver.com/something.php',
+ prefix: '',
+ suffix: '',
+ type: 'textfield',
+ multiple: false,
+ validate: {
+ required: true,
+ },
+ description: '',
+ },
+ ],
+ width: 10,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ },
+ ],
+ type: 'columns',
},
{
- value: 'post',
- label: 'POST'
+ key: 'panel1',
+ input: false,
+ tableView: false,
+ title: 'HTTP Headers',
+ components: [
+ {
+ type: 'checkbox',
+ persistent: true,
+ protected: false,
+ defaultValue: false,
+ key: 'forwardHeaders',
+ label: 'Forward headers',
+ tooltip:
+ 'Pass on any headers received by the form.io server.',
+ hideLabel: false,
+ inputType: 'checkbox',
+ input: true,
+ },
+ {
+ key: 'fieldset',
+ input: false,
+ tableView: false,
+ legend: 'HTTP Basic Authentication (optional)',
+ components: [
+ {
+ label: 'Authorize User',
+ key: 'username',
+ inputType: 'text',
+ defaultValue: '',
+ input: true,
+ placeholder:
+ 'User for Basic Authentication',
+ type: 'textfield',
+ multiple: false,
+ },
+ {
+ label: 'Authorize Password',
+ key: 'password',
+ inputType: 'password',
+ defaultValue: '',
+ input: true,
+ placeholder:
+ 'Password for Basic Authentication',
+ type: 'textfield',
+ multiple: false,
+ },
+ ],
+ type: 'fieldset',
+ label: 'fieldset',
+ },
+ {
+ input: true,
+ tree: true,
+ components: [
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ label: 'Header',
+ key: 'header',
+ protected: false,
+ persistent: true,
+ clearOnHide: true,
+ type: 'textfield',
+ inDataGrid: true,
+ },
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ label: 'Value',
+ key: 'value',
+ protected: false,
+ persistent: true,
+ clearOnHide: true,
+ type: 'textfield',
+ inDataGrid: true,
+ },
+ ],
+ label: 'Additional Headers',
+ key: 'headers',
+ persistent: true,
+ type: 'datagrid',
+ addAnother: 'Add Header',
+ },
+ ],
+ type: 'panel',
+ label: 'Panel',
},
{
- value: 'put',
- label: 'PUT'
+ key: 'panel2',
+ input: false,
+ tableView: false,
+ title: 'Request Payload',
+ components: [
+ {
+ key: 'content',
+ input: false,
+ html: '
By default the request payload will contain an object with the following information:
{ request: request, // an object containing request body to the form.io server. response: response, // an object containing the server response from the form.io server. submission: submission, // an object containing the submission object from the request. params: params, // an object containing the params for the request such as query parameters or url parameters. }
You can use the transform payload javascript to modify the contents of the payload that will be send in this webhook. The following variables are also available: headers
',
+ type: 'content',
+ label: 'content',
+ },
+ {
+ autofocus: false,
+ input: true,
+ tableView: true,
+ label: 'Transform Payload',
+ key: 'transform',
+ placeholder:
+ '/** Example Code **/\npayload = payload.submission.data;',
+ rows: 8,
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ persistent: true,
+ hidden: false,
+ wysiwyg: false,
+ spellcheck: true,
+ type: 'textarea',
+ description:
+ 'Available variables are payload, externalId, and headers.',
+ },
+ ],
+ type: 'panel',
+ label: 'Panel',
},
{
- value: 'delete',
- label: 'DELETE'
+ key: 'panel3',
+ type: 'panel',
+ title: 'Response Payload',
+ input: false,
+ components: [
+ {
+ type: 'checkbox',
+ persistent: true,
+ protected: false,
+ defaultValue: false,
+ key: 'block',
+ label: 'Wait for webhook response before continuing actions',
+ hideLabel: false,
+ inputType: 'checkbox',
+ input: true,
+ },
+ {
+ key: 'content',
+ input: false,
+ html: '
When making a request to an external service, you may want to save an external Id in association with this submission so you can refer to the same external resource later. To do that, enter an external ID reference name and the path to the id in the response data object. This value will then be available as externalId in the Request URL and Transform Payload fields.
',
+ type: 'content',
+ label: 'content',
+ },
+ {
+ input: true,
+ inputType: 'text',
+ label: 'External Id Type',
+ key: 'externalIdType',
+ multiple: false,
+ protected: false,
+ unique: false,
+ persistent: true,
+ type: 'textfield',
+ description:
+ 'The name to store and reference the external Id for this request',
+ },
+ {
+ input: true,
+ inputType: 'text',
+ label: 'External Id Path',
+ key: 'externalIdPath',
+ multiple: false,
+ protected: false,
+ clearOnHide: true,
+ type: 'textfield',
+ description:
+ 'The path to the data in the webhook response object',
+ },
+ ],
},
- {
- value: 'patch',
- label: 'PATCH'
- }
- ]
- },
- dataSrc: 'values',
- valueProperty: 'value',
- template: '
{{ item.label }} ',
- persistent: true,
- type: 'select',
- description: 'If set to Match it will use the same Request Type as sent to the Form.io server.'
- }
- ],
- width: 2,
- offset: 0,
- push: 0,
- pull: 0
- },
- {
- components: [
- {
- label: 'Request URL',
- key: 'url',
- inputType: 'text',
- defaultValue: '',
- input: true,
- placeholder: 'http://myreceiver.com/something.php',
- prefix: '',
- suffix: '',
- type: 'textfield',
- multiple: false,
- validate: {
- required: true
- },
- description: ''
- }
- ],
- width: 10,
- offset: 0,
- push: 0,
- pull: 0
- }
+ ],
+ },
],
- type: 'columns'
- },
- {
- key: 'panel1',
+ },
+ {
+ type: 'fieldset',
input: false,
- tableView: false,
- title: 'HTTP Headers',
+ tree: false,
+ key: 'conditions',
+ legend: 'Action Execution',
components: [
- {
- type: 'checkbox',
- persistent: true,
- protected: false,
- defaultValue: false,
- key: 'forwardHeaders',
- label: 'Forward headers',
- tooltip: 'Pass on any headers received by the form.io server.',
- hideLabel: false,
- inputType: 'checkbox',
- input: true
- },
- {
- key: 'fieldset',
- input: false,
- tableView: false,
- legend: 'HTTP Basic Authentication (optional)',
- components: [
- {
- label: 'Authorize User',
- key: 'username',
- inputType: 'text',
- defaultValue: '',
- input: true,
- placeholder: 'User for Basic Authentication',
- type: 'textfield',
- multiple: false
- },
- {
- label: 'Authorize Password',
- key: 'password',
- inputType: 'password',
- defaultValue: '',
- input: true,
- placeholder: 'Password for Basic Authentication',
- type: 'textfield',
- multiple: false
- }
- ],
- type: 'fieldset',
- label: 'fieldset'
- },
- {
- input: true,
- tree: true,
- components: [
- {
+ {
+ type: 'select',
input: true,
- tableView: true,
- inputType: 'text',
- label: 'Header',
- key: 'header',
- protected: false,
- persistent: true,
- clearOnHide: true,
- type: 'textfield',
- inDataGrid: true
- },
- {
+ key: 'handler',
+ label: 'Handler',
+ placeholder:
+ 'Select which handler(s) you would like to trigger',
+ dataSrc: 'json',
+ data: {
+ json: '[{"name":"before","title":"Before"},{"name":"after","title":"After"}]',
+ },
+ template: '
{{ item.title }} ',
+ valueProperty: 'name',
+ multiple: true,
+ },
+ {
+ type: 'select',
input: true,
- tableView: true,
- inputType: 'text',
- label: 'Value',
- key: 'value',
- protected: false,
- persistent: true,
- clearOnHide: true,
- type: 'textfield',
- inDataGrid: true
- }
- ],
- label: 'Additional Headers',
- key: 'headers',
- persistent: true,
- type: 'datagrid',
- addAnother: 'Add Header'
- }
+ label: 'Methods',
+ key: 'method',
+ placeholder: 'Trigger action on method(s)',
+ dataSrc: 'json',
+ data: {
+ json: '[{"name":"create","title":"Create"},{"name":"update","title":"Update"},{"name":"read","title":"Read"},{"name":"delete","title":"Delete"},{"name":"index","title:"Index"}]',
+ },
+ template: '
{{ item.title }} ',
+ valueProperty: 'name',
+ multiple: true,
+ },
],
- type: 'panel',
- label: 'Panel'
- },
- {
- key: 'panel2',
+ },
+ {
+ key: 'fieldset',
+ type: 'fieldset',
input: false,
- tableView: false,
- title: 'Request Payload',
+ tree: false,
+ legend: 'Action Conditions (optional)',
components: [
- {
- key: 'content',
- input: false,
- html: '
By default the request payload will contain an object with the following information:
{ request: request, // an object containing request body to the form.io server. response: response, // an object containing the server response from the form.io server. submission: submission, // an object containing the submission object from the request. params: params, // an object containing the params for the request such as query parameters or url parameters. }
You can use the transform payload javascript to modify the contents of the payload that will be send in this webhook. The following variables are also available: headers
',
- type: 'content',
- label: 'content'
- },
- {
- autofocus: false,
- input: true,
- tableView: true,
- label: 'Transform Payload',
- key: 'transform',
- placeholder: '/** Example Code **/\npayload = payload.submission.data;',
- rows: 8,
- multiple: false,
- defaultValue: '',
- protected: false,
- persistent: true,
- hidden: false,
- wysiwyg: false,
- spellcheck: true,
- type: 'textarea',
- description: 'Available variables are payload, externalId, and headers.'
- }
+ {
+ type: 'container',
+ key: 'condition',
+ input: false,
+ tree: true,
+ components: [
+ {
+ key: 'columns',
+ type: 'columns',
+ input: false,
+ columns: [
+ {
+ components: [
+ {
+ type: 'select',
+ input: true,
+ label: 'Trigger this action only if field',
+ key: 'field',
+ placeholder:
+ 'Select the conditional field',
+ template:
+ '
{{ item.label || item.key }} ',
+ dataSrc: 'json',
+ data: {
+ json: '[{"key":""},{"label":"A","labelPosition":"top","placeholder":"","description":"","tooltip":"","prefix":"","suffix":"","widget":{"type":"input"},"inputMask":"","allowMultipleMasks":false,"customClass":"","tabindex":"","hidden":false,"hideLabel":false,"showWordCount":false,"showCharCount":false,"mask":false,"autofocus":false,"spellcheck":true,"disabled":false,"tableView":true,"modalEdit":false,"multiple":false,"persistent":true,"inputFormat":"plain","protected":false,"dbIndex":false,"case":"","encrypted":false,"redrawOn":"","clearOnHide":true,"customDefaultValue":"","calculateValue":"","calculateServer":false,"allowCalculateOverride":false,"validateOn":"change","validate":{"required":false,"pattern":"","customMessage":"","custom":"","customPrivate":false,"json":"","minLength":"","maxLength":"","strictDateValidation":false,"multiple":false,"unique":false},"unique":false,"errorLabel":"","key":"a","tags":[],"properties":{},"conditional":{"show":null,"when":null,"eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"textfield","input":true,"refreshOn":"","inputType":"text","id":"e2wbkzv","defaultValue":""},{"label":"B","labelPosition":"top","placeholder":"","description":"","tooltip":"","prefix":"","suffix":"","widget":{"type":"input"},"inputMask":"","allowMultipleMasks":false,"customClass":"","tabindex":"","hidden":false,"hideLabel":false,"showWordCount":false,"showCharCount":false,"mask":false,"autofocus":false,"spellcheck":true,"disabled":false,"tableView":true,"modalEdit":false,"multiple":false,"persistent":true,"inputFormat":"plain","protected":false,"dbIndex":false,"case":"","encrypted":false,"redrawOn":"","clearOnHide":true,"customDefaultValue":"","calculateValue":"","calculateServer":false,"allowCalculateOverride":false,"validateOn":"change","validate":{"required":false,"pattern":"","customMessage":"","custom":"","customPrivate":false,"json":"","minLength":"","maxLength":"","strictDateValidation":false,"multiple":false,"unique":false},"unique":false,"errorLabel":"","key":"b","tags":[],"properties":{},"conditional":{"show":null,"when":null,"eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"textfield","input":true,"refreshOn":"","inputType":"text","id":"e8j79z","defaultValue":""},{"label":"C","labelPosition":"top","placeholder":"","description":"","tooltip":"","prefix":"","suffix":"","widget":{"type":"input"},"inputMask":"","allowMultipleMasks":false,"customClass":"","tabindex":"","hidden":false,"hideLabel":false,"showWordCount":false,"showCharCount":false,"mask":false,"autofocus":false,"spellcheck":true,"disabled":false,"tableView":true,"modalEdit":false,"multiple":false,"persistent":true,"inputFormat":"plain","protected":false,"dbIndex":false,"case":"","encrypted":false,"redrawOn":"","clearOnHide":true,"customDefaultValue":"","calculateValue":"","calculateServer":false,"allowCalculateOverride":false,"validateOn":"change","validate":{"required":false,"pattern":"","customMessage":"","custom":"","customPrivate":false,"json":"","minLength":"","maxLength":"","strictDateValidation":false,"multiple":false,"unique":false},"unique":false,"errorLabel":"","key":"c","tags":[],"properties":{},"conditional":{"show":null,"when":null,"eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"textfield","input":true,"refreshOn":"","inputType":"text","id":"etrp7lb","defaultValue":""},{"type":"button","label":"Submit","key":"submit","size":"md","block":false,"action":"submit","disableOnInvalid":true,"theme":"primary","input":true,"placeholder":"","prefix":"","customClass":"","suffix":"","multiple":false,"defaultValue":null,"protected":false,"unique":false,"persistent":false,"hidden":false,"clearOnHide":true,"refreshOn":"","redrawOn":"","tableView":false,"modalEdit":false,"labelPosition":"top","description":"","errorLabel":"","tooltip":"","hideLabel":false,"tabindex":"","disabled":false,"autofocus":false,"dbIndex":false,"customDefaultValue":"","calculateValue":"","widget":{"type":"input"},"attributes":{},"validateOn":"change","validate":{"required":false,"custom":"","customPrivate":false,"strictDateValidation":false,"multiple":false,"unique":false},"conditional":{"show":null,"when":null,"eq":""},"overlay":{"style":"","left":"","top":"","width":"","height":""},"allowCalculateOverride":false,"encrypted":false,"showCharCount":false,"showWordCount":false,"properties":{},"allowMultipleMasks":false,"leftIcon":"","rightIcon":"","dataGridLabel":true,"id":"ew4sbvh"}]',
+ },
+ valueProperty: 'key',
+ multiple: false,
+ },
+ {
+ type: 'select',
+ input: true,
+ label: '',
+ key: 'eq',
+ placeholder:
+ 'Select comparison',
+ template:
+ '
{{ item.label }} ',
+ dataSrc: 'values',
+ data: {
+ values: [
+ {
+ value: '',
+ label: '',
+ },
+ {
+ value: 'equals',
+ label: 'Equals',
+ },
+ {
+ value: 'notEqual',
+ label: 'Does Not Equal',
+ },
+ ],
+ json: '',
+ url: '',
+ resource: '',
+ },
+ valueProperty: 'value',
+ multiple: false,
+ },
+ {
+ input: true,
+ type: 'textfield',
+ inputType: 'text',
+ label: '',
+ key: 'value',
+ placeholder: 'Enter value',
+ multiple: false,
+ },
+ ],
+ },
+ {
+ components: [
+ {
+ key: 'well2',
+ type: 'well',
+ input: false,
+ components: [
+ {
+ key: 'html',
+ type: 'htmlelement',
+ tag: 'h4',
+ input: false,
+ content:
+ 'Or you can provide your own custom JavaScript or
JSON condition logic here',
+ className: '',
+ },
+ {
+ label: '',
+ type: 'textarea',
+ input: true,
+ key: 'custom',
+ editorComponents: [
+ {
+ label: 'A',
+ labelPosition:
+ 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ inputMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat:
+ 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue:
+ '',
+ calculateValue:
+ '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn:
+ 'change',
+ validate: {
+ required: false,
+ pattern: '',
+ customMessage:
+ '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength:
+ '',
+ maxLength:
+ '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'a',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional:
+ '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ inputType:
+ 'text',
+ id: 'e2wbkzv',
+ defaultValue:
+ '',
+ },
+ {
+ label: 'B',
+ labelPosition:
+ 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ inputMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat:
+ 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue:
+ '',
+ calculateValue:
+ '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn:
+ 'change',
+ validate: {
+ required: false,
+ pattern: '',
+ customMessage:
+ '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength:
+ '',
+ maxLength:
+ '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'b',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional:
+ '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ inputType:
+ 'text',
+ id: 'e8j79z',
+ defaultValue:
+ '',
+ },
+ {
+ label: 'C',
+ labelPosition:
+ 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ inputMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat:
+ 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue:
+ '',
+ calculateValue:
+ '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn:
+ 'change',
+ validate: {
+ required: false,
+ pattern: '',
+ customMessage:
+ '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength:
+ '',
+ maxLength:
+ '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'c',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional:
+ '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ inputType:
+ 'text',
+ id: 'etrp7lb',
+ defaultValue:
+ '',
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ size: 'md',
+ block: false,
+ action: 'submit',
+ disableOnInvalid: true,
+ theme: 'primary',
+ input: true,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue:
+ null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: true,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ labelPosition:
+ 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue:
+ '',
+ calculateValue:
+ '',
+ widget: {
+ type: 'input',
+ },
+ attributes: {},
+ validateOn:
+ 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ leftIcon: '',
+ rightIcon: '',
+ dataGridLabel: true,
+ id: 'ew4sbvh',
+ },
+ ],
+ placeholder:
+ '// Example: Only execute if submitted roles has authenticated".\nJavaScript: execute = (data.roles.indexOf("authenticated") !== -1);\nJSON: { "in": [ "authenticated", { "var: "data.roles" } ] }',
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
],
- type: 'panel',
- label: 'Panel'
- },
- {
- key: 'panel3',
- type: 'panel',
- title: 'Response Payload',
+ },
+ {
+ key: 'html2',
+ type: 'htmlelement',
+ tag: 'hr',
input: false,
- components: [
- {
- type: 'checkbox',
- persistent: true,
- protected: false,
- defaultValue: false,
- key: 'block',
- label: 'Wait for webhook response before continuing actions',
- hideLabel: false,
- inputType: 'checkbox',
- input: true
- },
- {
- key: 'content',
- input: false,
- html: '
When making a request to an external service, you may want to save an external Id in association with this submission so you can refer to the same external resource later. To do that, enter an external ID reference name and the path to the id in the response data object. This value will then be available as externalId in the Request URL and Transform Payload fields.
',
- type: 'content',
- label: 'content'
- },
- {
- input: true,
- inputType: 'text',
- label: 'External Id Type',
- key: 'externalIdType',
- multiple: false,
- protected: false,
- unique: false,
- persistent: true,
- type: 'textfield',
- description: 'The name to store and reference the external Id for this request'
- },
- {
- input: true,
- inputType: 'text',
- label: 'External Id Path',
- key: 'externalIdPath',
- multiple: false,
- protected: false,
- clearOnHide: true,
- type: 'textfield',
- description: 'The path to the data in the webhook response object'
- }
- ]
- }
- ]
- }
- ]
- },
- {
- type: 'fieldset',
- input: false,
- tree: false,
- key: 'conditions',
- legend: 'Action Execution',
- components: [
- {
- type: 'select',
- input: true,
- key: 'handler',
- label: 'Handler',
- placeholder: 'Select which handler(s) you would like to trigger',
- dataSrc: 'json',
- data: {
- json: '[{"name":"before","title":"Before"},{"name":"after","title":"After"}]'
+ content: '',
+ className: '',
},
- template: '
{{ item.title }} ',
- valueProperty: 'name',
- multiple: true
- },
- {
- type: 'select',
- input: true,
- label: 'Methods',
- key: 'method',
- placeholder: 'Trigger action on method(s)',
- dataSrc: 'json',
- data: {
- json: '[{"name":"create","title":"Create"},{"name":"update","title":"Update"},{"name":"read","title":"Read"},{"name":"delete","title":"Delete"},{"name":"index","title:"Index"}]'
+ {
+ type: 'button',
+ input: true,
+ label: 'Save Action',
+ key: 'submit',
+ size: 'md',
+ leftIcon: '',
+ rightIcon: '',
+ block: false,
+ action: 'submit',
+ disableOnInvalid: true,
+ theme: 'primary',
},
- template: '
{{ item.title }} ',
- valueProperty: 'name',
- multiple: true
- }
- ]
- },
- {
- key: 'fieldset',
- type: 'fieldset',
- input: false,
- tree: false,
- legend: 'Action Conditions (optional)',
- components: [
- {
- type: 'container',
- key: 'condition',
- input: false,
- tree: true,
- components: [
- {
- key: 'columns',
- type: 'columns',
- input: false,
- columns: [
- {
- components: [
- {
- type: 'select',
- input: true,
- label: 'Trigger this action only if field',
- key: 'field',
- placeholder: 'Select the conditional field',
- template: '
{{ item.label || item.key }} ',
- dataSrc: 'json',
+ ],
+ action: '/project/5e447ffae9d4804078d70048/form/5e5f11d53a26d9d7682492f3/action',
+ },
+ tests: {
+ 'Test initialize action with data'(form, done) {
+ form.setSubmission({
+ data: {
+ settings: {},
+ condition: {},
+ _id: '5e5f14a23a26d9d768249322',
+ handler: ['after'],
+ method: ['create', 'update'],
+ priority: 0,
+ name: 'webhook',
+ title: 'Webhook (Premium)',
+ form: '5e5f11d53a26d9d7682492f3',
+ machineName: 'ozvjjccvueotocl:webhooks:webhook',
+ },
+ }).then(() => {
+ const formSubmission = {
+ data: {
+ ...form.submission.data,
+ condition: {},
+ settings: {},
+ },
+ };
+ assert.deepEqual(formSubmission, {
+ data: {
+ priority: 0,
+ name: 'webhook',
+ title: 'Webhook (Premium)',
+ settings: {},
+ handler: ['after'],
+ method: ['create', 'update'],
+ condition: {},
+ submit: false,
+ _id: '5e5f14a23a26d9d768249322',
+ form: '5e5f11d53a26d9d7682492f3',
+ machineName: 'ozvjjccvueotocl:webhooks:webhook',
+ },
+ });
+ form.on('componentChange', function () {
+ const formSubmissionAfterChange = {
data: {
- json: '[{"key":""},{"label":"A","labelPosition":"top","placeholder":"","description":"","tooltip":"","prefix":"","suffix":"","widget":{"type":"input"},"inputMask":"","allowMultipleMasks":false,"customClass":"","tabindex":"","hidden":false,"hideLabel":false,"showWordCount":false,"showCharCount":false,"mask":false,"autofocus":false,"spellcheck":true,"disabled":false,"tableView":true,"modalEdit":false,"multiple":false,"persistent":true,"inputFormat":"plain","protected":false,"dbIndex":false,"case":"","encrypted":false,"redrawOn":"","clearOnHide":true,"customDefaultValue":"","calculateValue":"","calculateServer":false,"allowCalculateOverride":false,"validateOn":"change","validate":{"required":false,"pattern":"","customMessage":"","custom":"","customPrivate":false,"json":"","minLength":"","maxLength":"","strictDateValidation":false,"multiple":false,"unique":false},"unique":false,"errorLabel":"","key":"a","tags":[],"properties":{},"conditional":{"show":null,"when":null,"eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"textfield","input":true,"refreshOn":"","inputType":"text","id":"e2wbkzv","defaultValue":""},{"label":"B","labelPosition":"top","placeholder":"","description":"","tooltip":"","prefix":"","suffix":"","widget":{"type":"input"},"inputMask":"","allowMultipleMasks":false,"customClass":"","tabindex":"","hidden":false,"hideLabel":false,"showWordCount":false,"showCharCount":false,"mask":false,"autofocus":false,"spellcheck":true,"disabled":false,"tableView":true,"modalEdit":false,"multiple":false,"persistent":true,"inputFormat":"plain","protected":false,"dbIndex":false,"case":"","encrypted":false,"redrawOn":"","clearOnHide":true,"customDefaultValue":"","calculateValue":"","calculateServer":false,"allowCalculateOverride":false,"validateOn":"change","validate":{"required":false,"pattern":"","customMessage":"","custom":"","customPrivate":false,"json":"","minLength":"","maxLength":"","strictDateValidation":false,"multiple":false,"unique":false},"unique":false,"errorLabel":"","key":"b","tags":[],"properties":{},"conditional":{"show":null,"when":null,"eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"textfield","input":true,"refreshOn":"","inputType":"text","id":"e8j79z","defaultValue":""},{"label":"C","labelPosition":"top","placeholder":"","description":"","tooltip":"","prefix":"","suffix":"","widget":{"type":"input"},"inputMask":"","allowMultipleMasks":false,"customClass":"","tabindex":"","hidden":false,"hideLabel":false,"showWordCount":false,"showCharCount":false,"mask":false,"autofocus":false,"spellcheck":true,"disabled":false,"tableView":true,"modalEdit":false,"multiple":false,"persistent":true,"inputFormat":"plain","protected":false,"dbIndex":false,"case":"","encrypted":false,"redrawOn":"","clearOnHide":true,"customDefaultValue":"","calculateValue":"","calculateServer":false,"allowCalculateOverride":false,"validateOn":"change","validate":{"required":false,"pattern":"","customMessage":"","custom":"","customPrivate":false,"json":"","minLength":"","maxLength":"","strictDateValidation":false,"multiple":false,"unique":false},"unique":false,"errorLabel":"","key":"c","tags":[],"properties":{},"conditional":{"show":null,"when":null,"eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"textfield","input":true,"refreshOn":"","inputType":"text","id":"etrp7lb","defaultValue":""},{"type":"button","label":"Submit","key":"submit","size":"md","block":false,"action":"submit","disableOnInvalid":true,"theme":"primary","input":true,"placeholder":"","prefix":"","customClass":"","suffix":"","multiple":false,"defaultValue":null,"protected":false,"unique":false,"persistent":false,"hidden":false,"clearOnHide":true,"refreshOn":"","redrawOn":"","tableView":false,"modalEdit":false,"labelPosition":"top","description":"","errorLabel":"","tooltip":"","hideLabel":false,"tabindex":"","disabled":false,"autofocus":false,"dbIndex":false,"customDefaultValue":"","calculateValue":"","widget":{"type":"input"},"attributes":{},"validateOn":"change","validate":{"required":false,"custom":"","customPrivate":false,"strictDateValidation":false,"multiple":false,"unique":false},"conditional":{"show":null,"when":null,"eq":""},"overlay":{"style":"","left":"","top":"","width":"","height":""},"allowCalculateOverride":false,"encrypted":false,"showCharCount":false,"showWordCount":false,"properties":{},"allowMultipleMasks":false,"leftIcon":"","rightIcon":"","dataGridLabel":true,"id":"ew4sbvh"}]'
+ ...form.submission.data,
+ condition: {},
+ settings: {
+ url: form.submission.data.settings.url,
+ },
},
- valueProperty: 'key',
- multiple: false
- },
- {
- type: 'select',
- input: true,
- label: '',
- key: 'eq',
- placeholder: 'Select comparison',
- template: '
{{ item.label }} ',
- dataSrc: 'values',
+ };
+
+ assert.deepEqual(formSubmissionAfterChange, {
data: {
- values: [
- {
- value: '',
- label: ''
+ priority: 0,
+ name: 'webhook',
+ title: 'Webhook (Premium)',
+ settings: {
+ url: 'https://google.com',
},
- {
- value: 'equals',
- label: 'Equals'
- },
- {
- value: 'notEqual',
- label: 'Does Not Equal'
- }
- ],
- json: '',
- url: '',
- resource: ''
+ handler: ['after'],
+ method: ['create', 'update'],
+ condition: {},
+ submit: false,
+ _id: '5e5f14a23a26d9d768249322',
+ form: '5e5f11d53a26d9d7682492f3',
+ machineName: 'ozvjjccvueotocl:webhooks:webhook',
},
- valueProperty: 'value',
- multiple: false
- },
- {
- input: true,
- type: 'textfield',
- inputType: 'text',
- label: '',
- key: 'value',
- placeholder: 'Enter value',
- multiple: false
- }
- ]
- },
- {
- components: [
- {
- key: 'well2',
- type: 'well',
- input: false,
- components: [
- {
- key: 'html',
- type: 'htmlelement',
- tag: 'h4',
- input: false,
- content: 'Or you can provide your own custom JavaScript or
JSON condition logic here',
- className: ''
- },
- {
- label: '',
- type: 'textarea',
- input: true,
- key: 'custom',
- editorComponents: [
- {
- label: 'A',
- labelPosition: 'top',
- placeholder: '',
- description: '',
- tooltip: '',
- prefix: '',
- suffix: '',
- widget: {
- type: 'input'
- },
- inputMask: '',
- allowMultipleMasks: false,
- customClass: '',
- tabindex: '',
- hidden: false,
- hideLabel: false,
- showWordCount: false,
- showCharCount: false,
- mask: false,
- autofocus: false,
- spellcheck: true,
- disabled: false,
- tableView: true,
- modalEdit: false,
- multiple: false,
- persistent: true,
- inputFormat: 'plain',
- protected: false,
- dbIndex: false,
- case: '',
- encrypted: false,
- redrawOn: '',
- clearOnHide: true,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- allowCalculateOverride: false,
- validateOn: 'change',
- validate: {
- required: false,
- pattern: '',
- customMessage: '',
- custom: '',
- customPrivate: false,
- json: '',
- minLength: '',
- maxLength: '',
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- unique: false,
- errorLabel: '',
- key: 'a',
- tags: [],
- properties: {},
- conditional: {
- show: null,
- when: null,
- eq: '',
- json: ''
- },
- customConditional: '',
- logic: [],
- attributes: {},
- overlay: {
- style: '',
- page: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- type: 'textfield',
- input: true,
- refreshOn: '',
- inputType: 'text',
- id: 'e2wbkzv',
- defaultValue: ''
- },
- {
- label: 'B',
- labelPosition: 'top',
- placeholder: '',
- description: '',
- tooltip: '',
- prefix: '',
- suffix: '',
- widget: {
- type: 'input'
- },
- inputMask: '',
- allowMultipleMasks: false,
- customClass: '',
- tabindex: '',
- hidden: false,
- hideLabel: false,
- showWordCount: false,
- showCharCount: false,
- mask: false,
- autofocus: false,
- spellcheck: true,
- disabled: false,
- tableView: true,
- modalEdit: false,
- multiple: false,
- persistent: true,
- inputFormat: 'plain',
- protected: false,
- dbIndex: false,
- case: '',
- encrypted: false,
- redrawOn: '',
- clearOnHide: true,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- allowCalculateOverride: false,
- validateOn: 'change',
- validate: {
- required: false,
- pattern: '',
- customMessage: '',
- custom: '',
- customPrivate: false,
- json: '',
- minLength: '',
- maxLength: '',
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- unique: false,
- errorLabel: '',
- key: 'b',
- tags: [],
- properties: {},
- conditional: {
- show: null,
- when: null,
- eq: '',
- json: ''
- },
- customConditional: '',
- logic: [],
- attributes: {},
- overlay: {
- style: '',
- page: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- type: 'textfield',
- input: true,
- refreshOn: '',
- inputType: 'text',
- id: 'e8j79z',
- defaultValue: ''
- },
- {
- label: 'C',
- labelPosition: 'top',
- placeholder: '',
- description: '',
- tooltip: '',
- prefix: '',
- suffix: '',
- widget: {
- type: 'input'
- },
- inputMask: '',
- allowMultipleMasks: false,
- customClass: '',
- tabindex: '',
- hidden: false,
- hideLabel: false,
- showWordCount: false,
- showCharCount: false,
- mask: false,
- autofocus: false,
- spellcheck: true,
- disabled: false,
- tableView: true,
- modalEdit: false,
- multiple: false,
- persistent: true,
- inputFormat: 'plain',
- protected: false,
- dbIndex: false,
- case: '',
- encrypted: false,
- redrawOn: '',
- clearOnHide: true,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- allowCalculateOverride: false,
- validateOn: 'change',
- validate: {
- required: false,
- pattern: '',
- customMessage: '',
- custom: '',
- customPrivate: false,
- json: '',
- minLength: '',
- maxLength: '',
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- unique: false,
- errorLabel: '',
- key: 'c',
- tags: [],
- properties: {},
- conditional: {
- show: null,
- when: null,
- eq: '',
- json: ''
- },
- customConditional: '',
- logic: [],
- attributes: {},
- overlay: {
- style: '',
- page: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- type: 'textfield',
- input: true,
- refreshOn: '',
- inputType: 'text',
- id: 'etrp7lb',
- defaultValue: ''
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- size: 'md',
- block: false,
- action: 'submit',
- disableOnInvalid: true,
- theme: 'primary',
- input: true,
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- defaultValue: null,
- protected: false,
- unique: false,
- persistent: false,
- hidden: false,
- clearOnHide: true,
- refreshOn: '',
- redrawOn: '',
- tableView: false,
- modalEdit: false,
- labelPosition: 'top',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateValue: '',
- widget: {
- type: 'input'
- },
- attributes: {},
- validateOn: 'change',
- validate: {
- required: false,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- conditional: {
- show: null,
- when: null,
- eq: ''
- },
- overlay: {
- style: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
- properties: {},
- allowMultipleMasks: false,
- leftIcon: '',
- rightIcon: '',
- dataGridLabel: true,
- id: 'ew4sbvh'
- }
- ],
- placeholder: '// Example: Only execute if submitted roles has authenticated".\nJavaScript: execute = (data.roles.indexOf("authenticated") !== -1);\nJSON: { "in": [ "authenticated", { "var: "data.roles" } ] }'
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- key: 'html2',
- type: 'htmlelement',
- tag: 'hr',
- input: false,
- content: '',
- className: ''
- },
- {
- type: 'button',
- input: true,
- label: 'Save Action',
- key: 'submit',
- size: 'md',
- leftIcon: '',
- rightIcon: '',
- block: false,
- action: 'submit',
- disableOnInvalid: true,
- theme: 'primary'
- }
- ],
- action: '/project/5e447ffae9d4804078d70048/form/5e5f11d53a26d9d7682492f3/action'
- },
- tests: {
- 'Test initialize action with data'(form, done) {
- form.setSubmission({
- data: {
- settings: {},
- condition: {},
- _id: '5e5f14a23a26d9d768249322',
- handler: [
- 'after'
- ],
- method: [
- 'create',
- 'update'
- ],
- priority: 0,
- name: 'webhook',
- title: 'Webhook (Premium)',
- form: '5e5f11d53a26d9d7682492f3',
- machineName: 'ozvjjccvueotocl:webhooks:webhook'
- }
- }).then(() => {
- const formSubmission = {
- data:{
- ...form.submission.data,
- condition: {},
- settings: {}
- }
- }
- assert.deepEqual(formSubmission, {
- data: {
- priority: 0,
- name: 'webhook',
- title: 'Webhook (Premium)',
- settings: {},
- handler: [
- 'after'
- ],
- method: [
- 'create',
- 'update'
- ],
- condition: {},
- submit: false,
- _id: '5e5f14a23a26d9d768249322',
- form: '5e5f11d53a26d9d7682492f3',
- machineName: 'ozvjjccvueotocl:webhooks:webhook'
- }
- });
- form.on('componentChange', function() {
- const formSubmissionAfterChange = {
- data:{
- ...form.submission.data,
- condition: {},
- settings: {
- url: form.submission.data.settings.url,
- }
- }
- };
+ });
- assert.deepEqual(formSubmissionAfterChange, {
- data: {
- priority: 0,
- name: 'webhook',
- title: 'Webhook (Premium)',
- settings: {
- url: 'https://google.com'
- },
- handler: [
- 'after'
- ],
- method: [
- 'create',
- 'update'
- ],
- condition: {},
- submit: false,
- _id: '5e5f14a23a26d9d768249322',
- form: '5e5f11d53a26d9d7682492f3',
- machineName: 'ozvjjccvueotocl:webhooks:webhook'
- }
- });
-
- form.destroy();
- done();
- });
+ form.destroy();
+ done();
+ });
- const requestUrl = form.getComponent('url');
- requestUrl.updateValue('https://google.com');
- });
- }
- }
+ const requestUrl = form.getComponent('url');
+ requestUrl.updateValue('https://google.com');
+ });
+ },
+ },
};
diff --git a/test/forms/calculateValueOnServerForEditGrid.js b/test/forms/calculateValueOnServerForEditGrid.js
index aa7173466b..d5df8249a3 100644
--- a/test/forms/calculateValueOnServerForEditGrid.js
+++ b/test/forms/calculateValueOnServerForEditGrid.js
@@ -1,49 +1,49 @@
export default {
- type: 'form',
- display: 'form',
- components: [
- {
- key: 'first',
- type: 'textfield',
- input: true,
- label: 'Text Field',
- tableView: true,
- },
- {
- key: 'editGrid',
- type: 'editgrid',
- input: true,
- label: 'Edit Grid',
- rowDrafts: false,
- tableView: false,
- components: [
+ type: 'form',
+ display: 'form',
+ components: [
{
- key: 'fielda',
- type: 'textfield',
- input: true,
- label: 'Text Field',
- tableView: true,
+ key: 'first',
+ type: 'textfield',
+ input: true,
+ label: 'Text Field',
+ tableView: true,
},
{
- key: 'fieldb',
- type: 'textfield',
- input: true,
- label: 'Text Field',
- tableView: true,
+ key: 'editGrid',
+ type: 'editgrid',
+ input: true,
+ label: 'Edit Grid',
+ rowDrafts: false,
+ tableView: false,
+ components: [
+ {
+ key: 'fielda',
+ type: 'textfield',
+ input: true,
+ label: 'Text Field',
+ tableView: true,
+ },
+ {
+ key: 'fieldb',
+ type: 'textfield',
+ input: true,
+ label: 'Text Field',
+ tableView: true,
+ },
+ ],
+ calculateValue:
+ 'if (options.server){\n value = [{ fielda: data.first, fieldb: "test"}];\n}',
+ displayAsTable: false,
+ calculateServer: true,
},
- ],
- calculateValue:
- 'if (options.server){\n value = [{ fielda: data.first, fieldb: "test"}];\n}',
- displayAsTable: false,
- calculateServer: true,
- },
- {
- key: 'submit',
- type: 'button',
- input: true,
- label: 'Submit',
- tableView: false,
- disableOnInvalid: true,
- },
- ],
+ {
+ key: 'submit',
+ type: 'button',
+ input: true,
+ label: 'Submit',
+ tableView: false,
+ disableOnInvalid: true,
+ },
+ ],
};
diff --git a/test/forms/calculateValueWithManualOverrideLableValueDataGrid.d.ts b/test/forms/calculateValueWithManualOverrideLableValueDataGrid.d.ts
index 78d08c5f83..f00eb873eb 100644
--- a/test/forms/calculateValueWithManualOverrideLableValueDataGrid.d.ts
+++ b/test/forms/calculateValueWithManualOverrideLableValueDataGrid.d.ts
@@ -1,54 +1,60 @@
declare namespace _default {
const type: string;
- const components: ({
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- tableView: boolean;
- defaultValue: {
- label: string;
- value: string;
- }[];
- allowCalculateOverride: boolean;
- key: string;
- type: string;
- input: boolean;
- components: ({
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- allowCalculateOverride?: undefined;
- } | {
- label: string;
- tableView: boolean;
- calculateValue: string;
- allowCalculateOverride: boolean;
- key: string;
- type: string;
- input: boolean;
- })[];
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- defaultValue?: undefined;
- allowCalculateOverride?: undefined;
- components?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ reorder: boolean;
+ addAnotherPosition: string;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ tableView: boolean;
+ defaultValue: {
+ label: string;
+ value: string;
+ }[];
+ allowCalculateOverride: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ components: (
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ allowCalculateOverride?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ calculateValue: string;
+ allowCalculateOverride: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }
+ )[];
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ defaultValue?: undefined;
+ allowCalculateOverride?: undefined;
+ components?: undefined;
+ }
+ )[];
const title: string;
const display: string;
}
diff --git a/test/forms/calculateValueWithManualOverrideLableValueDataGrid.js b/test/forms/calculateValueWithManualOverrideLableValueDataGrid.js
index aa8deb919a..20f069471c 100644
--- a/test/forms/calculateValueWithManualOverrideLableValueDataGrid.js
+++ b/test/forms/calculateValueWithManualOverrideLableValueDataGrid.js
@@ -1,52 +1,52 @@
export default {
- type: 'form',
- components: [
- {
- label: 'Data Grid',
- reorder: false,
- addAnotherPosition: 'bottom',
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- tableView: false,
- defaultValue: [
+ type: 'form',
+ components: [
{
- label: '',
- value: ''
- }
- ],
- allowCalculateOverride: true,
- key: 'dataGrid',
- type: 'datagrid',
- input: true,
- components: [
- {
- label: 'Label',
- tableView: true,
- key: 'label',
- type: 'textfield',
- input: true
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ tableView: false,
+ defaultValue: [
+ {
+ label: '',
+ value: '',
+ },
+ ],
+ allowCalculateOverride: true,
+ key: 'dataGrid',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Label',
+ tableView: true,
+ key: 'label',
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Value',
+ tableView: true,
+ calculateValue: "value = (row.label || '').toLowerCase();",
+ allowCalculateOverride: true,
+ key: 'value',
+ type: 'textfield',
+ input: true,
+ },
+ ],
},
{
- label: 'Value',
- tableView: true,
- calculateValue: "value = (row.label || '').toLowerCase();",
- allowCalculateOverride: true,
- key: 'value',
- type: 'textfield',
- input: true
- }
- ]
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false
- }
- ],
- title: 'FIO-3254',
- display: 'form',
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ title: 'FIO-3254',
+ display: 'form',
};
diff --git a/test/forms/calculatedValue.d.ts b/test/forms/calculatedValue.d.ts
index 41ffc1253e..72cf1e3a25 100644
--- a/test/forms/calculatedValue.d.ts
+++ b/test/forms/calculatedValue.d.ts
@@ -1,70 +1,76 @@
declare namespace _default {
const type: string;
const owner: string;
- const components: ({
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- collapsible: boolean;
- alwaysEnabled: boolean;
- tableView: boolean;
- key: string;
- type: string;
- label: string;
- components: {
- legend: string;
- alwaysEnabled: boolean;
- tableView: boolean;
- key: string;
- type: string;
- label: string;
- input: boolean;
- components: ({
- label: string;
- mask: boolean;
- alwaysEnabled: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- } | {
- label: string;
- mask: boolean;
- alwaysEnabled: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- calculateValue: string;
- key: string;
- type: string;
- input: boolean;
- })[];
- path: string;
- }[];
- input: boolean;
- showValidations?: undefined;
- } | {
- label: string;
- showValidations: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- title?: undefined;
- breadcrumbClickable?: undefined;
- buttonSettings?: undefined;
- collapsible?: undefined;
- alwaysEnabled?: undefined;
- components?: undefined;
- })[];
+ const components: (
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ collapsible: boolean;
+ alwaysEnabled: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ label: string;
+ components: {
+ legend: string;
+ alwaysEnabled: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ label: string;
+ input: boolean;
+ components: (
+ | {
+ label: string;
+ mask: boolean;
+ alwaysEnabled: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ }
+ | {
+ label: string;
+ mask: boolean;
+ alwaysEnabled: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ calculateValue: string;
+ key: string;
+ type: string;
+ input: boolean;
+ }
+ )[];
+ path: string;
+ }[];
+ input: boolean;
+ showValidations?: undefined;
+ }
+ | {
+ label: string;
+ showValidations: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ title?: undefined;
+ breadcrumbClickable?: undefined;
+ buttonSettings?: undefined;
+ collapsible?: undefined;
+ alwaysEnabled?: undefined;
+ components?: undefined;
+ }
+ )[];
const title: string;
const display: string;
}
diff --git a/test/forms/calculatedValue.js b/test/forms/calculatedValue.js
index 2ca84df22c..f0e0ddb601 100644
--- a/test/forms/calculatedValue.js
+++ b/test/forms/calculatedValue.js
@@ -1,83 +1,84 @@
export default {
- type: 'form',
- owner: '5e05a6b7549cdc2ece30c6b0',
- components: [
- {
- title: '+-*/',
- breadcrumbClickable: true,
- buttonSettings: {
- previous: true,
- cancel: true,
- next: true
- },
- collapsible: false,
- alwaysEnabled: false,
- tableView: false,
- key: 'page1',
- type: 'panel',
- label: 'Page 1',
- components: [
+ type: 'form',
+ owner: '5e05a6b7549cdc2ece30c6b0',
+ components: [
{
- legend: 'Addition',
- alwaysEnabled: false,
- tableView: false,
- key: 'fieldset',
- type: 'fieldset',
- label: '',
- input: false,
- components: [
- {
- label: 'A',
- mask: false,
- alwaysEnabled: false,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- key: 'a',
- type: 'number',
- input: true
+ title: '+-*/',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
},
- {
- label: 'B',
- mask: false,
- alwaysEnabled: false,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- key: 'b',
- type: 'number',
- input: true
- },
- {
- label: 'Total',
- mask: false,
- alwaysEnabled: false,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- calculateValue: "value = (data['a'] || 0) + (data['b'] || 0);",
- key: 'total',
- type: 'number',
- input: true
- }
- ],
- path: 'fieldset'
- }
- ],
- input: false
- },
- {
- label: 'Submit',
- showValidations: false,
- tableView: false,
- key: 'submit',
- type: 'button',
- input: true
- }
- ],
- title: 'FIO-3086',
- display: 'form',
+ collapsible: false,
+ alwaysEnabled: false,
+ tableView: false,
+ key: 'page1',
+ type: 'panel',
+ label: 'Page 1',
+ components: [
+ {
+ legend: 'Addition',
+ alwaysEnabled: false,
+ tableView: false,
+ key: 'fieldset',
+ type: 'fieldset',
+ label: '',
+ input: false,
+ components: [
+ {
+ label: 'A',
+ mask: false,
+ alwaysEnabled: false,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'a',
+ type: 'number',
+ input: true,
+ },
+ {
+ label: 'B',
+ mask: false,
+ alwaysEnabled: false,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'b',
+ type: 'number',
+ input: true,
+ },
+ {
+ label: 'Total',
+ mask: false,
+ alwaysEnabled: false,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ calculateValue:
+ "value = (data['a'] || 0) + (data['b'] || 0);",
+ key: 'total',
+ type: 'number',
+ input: true,
+ },
+ ],
+ path: 'fieldset',
+ },
+ ],
+ input: false,
+ },
+ {
+ label: 'Submit',
+ showValidations: false,
+ tableView: false,
+ key: 'submit',
+ type: 'button',
+ input: true,
+ },
+ ],
+ title: 'FIO-3086',
+ display: 'form',
};
diff --git a/test/forms/calculatedfields.d.ts b/test/forms/calculatedfields.d.ts
index d47e3fe9e2..8941caa50d 100644
--- a/test/forms/calculatedfields.d.ts
+++ b/test/forms/calculatedfields.d.ts
@@ -1,26 +1,29 @@
declare namespace _default {
const title: string;
namespace form {
- const components: ({
- type: string;
- label: string;
- key: string;
- input: boolean;
- inputType: string;
- disabled?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- input: boolean;
- inputType: string;
- disabled: boolean;
- calculateValue: {
- '+': {
- var: string;
- }[];
- };
- })[];
+ const components: (
+ | {
+ type: string;
+ label: string;
+ key: string;
+ input: boolean;
+ inputType: string;
+ disabled?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ input: boolean;
+ inputType: string;
+ disabled: boolean;
+ calculateValue: {
+ '+': {
+ var: string;
+ }[];
+ };
+ }
+ )[];
}
const tests: {
'Test calculated fields'(form: any, done: any): void;
diff --git a/test/forms/calculatedfields.js b/test/forms/calculatedfields.js
index cc3a91091f..d4572cfd98 100644
--- a/test/forms/calculatedfields.js
+++ b/test/forms/calculatedfields.js
@@ -3,51 +3,50 @@ import assert from 'power-assert';
import Harness from '../harness';
export default {
- title: 'Calculated Fields Test',
- form: {
- components: [
- {
- type: 'textfield',
- label: 'A',
- key: 'a',
- input: true,
- inputType: 'text'
- },
- {
- type: 'textfield',
- label: 'B',
- key: 'b',
- input: true,
- inputType: 'text'
- },
- {
- type: 'textfield',
- label: 'Total',
- key: 'total',
- input: true,
- inputType: 'text',
- disabled: true,
- calculateValue: {
- '+': [
- {var: 'data.a'},
- {var: 'data.b'}
- ]
- }
- }
- ]
- },
- tests: {
- 'Test calculated fields'(form, done) {
- form.on('change', () => {
- const value = form.getValue();
- assert.equal(value.data.total, '25');
- done();
- });
- Harness.testSetGet(form, {data: {
- a: '10',
- b: '15',
- total: ''
- }});
- }
- }
+ title: 'Calculated Fields Test',
+ form: {
+ components: [
+ {
+ type: 'textfield',
+ label: 'A',
+ key: 'a',
+ input: true,
+ inputType: 'text',
+ },
+ {
+ type: 'textfield',
+ label: 'B',
+ key: 'b',
+ input: true,
+ inputType: 'text',
+ },
+ {
+ type: 'textfield',
+ label: 'Total',
+ key: 'total',
+ input: true,
+ inputType: 'text',
+ disabled: true,
+ calculateValue: {
+ '+': [{ var: 'data.a' }, { var: 'data.b' }],
+ },
+ },
+ ],
+ },
+ tests: {
+ 'Test calculated fields'(form, done) {
+ form.on('change', () => {
+ const value = form.getValue();
+ assert.equal(value.data.total, '25');
+ done();
+ });
+ Harness.testSetGet(form, {
+ data: {
+ a: '10',
+ b: '15',
+ total: '',
+ },
+ });
+ },
+ },
};
diff --git a/test/forms/checkBlurFocusEventForm.d.ts b/test/forms/checkBlurFocusEventForm.d.ts
index af6592f88e..63097e581a 100644
--- a/test/forms/checkBlurFocusEventForm.d.ts
+++ b/test/forms/checkBlurFocusEventForm.d.ts
@@ -6,55 +6,59 @@ declare namespace _default {
const type: string;
const display: string;
const owner: string;
- const components: ({
- label: string;
- widget: string;
- tableView: boolean;
- data: {
- values: {
- label: string;
- value: string;
- }[];
- };
- key: string;
- type: string;
- input: boolean;
- enableManualMode?: undefined;
- provider?: undefined;
- components?: undefined;
- disableOnInvalid?: undefined;
- } | {
- label: string;
- enableManualMode: boolean;
- tableView: boolean;
- provider: string;
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- customConditional: string;
- }[];
- widget?: undefined;
- data?: undefined;
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- widget?: undefined;
- data?: undefined;
- enableManualMode?: undefined;
- provider?: undefined;
- components?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ widget: string;
+ tableView: boolean;
+ data: {
+ values: {
+ label: string;
+ value: string;
+ }[];
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ enableManualMode?: undefined;
+ provider?: undefined;
+ components?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ label: string;
+ enableManualMode: boolean;
+ tableView: boolean;
+ provider: string;
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ customConditional: string;
+ }[];
+ widget?: undefined;
+ data?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ widget?: undefined;
+ data?: undefined;
+ enableManualMode?: undefined;
+ provider?: undefined;
+ components?: undefined;
+ }
+ )[];
const created: string;
const modified: string;
const machineName: string;
diff --git a/test/forms/checkBlurFocusEventForm.js b/test/forms/checkBlurFocusEventForm.js
index 0ef73e74b7..de98778e14 100644
--- a/test/forms/checkBlurFocusEventForm.js
+++ b/test/forms/checkBlurFocusEventForm.js
@@ -1,135 +1,135 @@
export default {
- _id: '637b36e983a235f7b1c13af9',
- title: 'yyyy',
- name: 'yyyy',
- path: 'yyyy',
- type: 'form',
- display: 'form',
- owner: '637b2e6b48c1227e60b1f910',
- components: [
- {
- label: 'Select Choices',
- widget: 'choicesjs',
- tableView: true,
- data: {
- values: [
- {
- label: 'a',
- value: 'a',
- },
- {
- label: 'b',
- value: 'b',
- },
- {
- label: 'c',
- value: 'c',
- },
- ],
- },
- key: 'selectChoices',
- type: 'select',
- input: true,
- },
- {
- label: 'Select HTML',
- widget: 'html5',
- tableView: true,
- data: {
- values: [
- {
- label: 'a',
- value: 'a',
- },
- {
- label: 'b',
- value: 'b',
- },
- {
- label: 'c',
- value: 'c',
- },
- ],
- },
- key: 'selectHtml',
- type: 'select',
- input: true,
- },
- {
- label: 'Address',
- enableManualMode: true,
- tableView: false,
- provider: 'nominatim',
- key: 'address',
- type: 'address',
- input: true,
- components: [
+ _id: '637b36e983a235f7b1c13af9',
+ title: 'yyyy',
+ name: 'yyyy',
+ path: 'yyyy',
+ type: 'form',
+ display: 'form',
+ owner: '637b2e6b48c1227e60b1f910',
+ components: [
{
- label: 'Address 1',
- tableView: false,
- key: 'address1',
- type: 'textfield',
- input: true,
- customConditional:
- "show = _.get(instance, 'parent.manualMode', false);",
+ label: 'Select Choices',
+ widget: 'choicesjs',
+ tableView: true,
+ data: {
+ values: [
+ {
+ label: 'a',
+ value: 'a',
+ },
+ {
+ label: 'b',
+ value: 'b',
+ },
+ {
+ label: 'c',
+ value: 'c',
+ },
+ ],
+ },
+ key: 'selectChoices',
+ type: 'select',
+ input: true,
},
{
- label: 'Address 2',
- tableView: false,
- key: 'address2',
- type: 'textfield',
- input: true,
- customConditional:
- "show = _.get(instance, 'parent.manualMode', false);",
+ label: 'Select HTML',
+ widget: 'html5',
+ tableView: true,
+ data: {
+ values: [
+ {
+ label: 'a',
+ value: 'a',
+ },
+ {
+ label: 'b',
+ value: 'b',
+ },
+ {
+ label: 'c',
+ value: 'c',
+ },
+ ],
+ },
+ key: 'selectHtml',
+ type: 'select',
+ input: true,
},
{
- label: 'City',
- tableView: false,
- key: 'city',
- type: 'textfield',
- input: true,
- customConditional:
- "show = _.get(instance, 'parent.manualMode', false);",
+ label: 'Address',
+ enableManualMode: true,
+ tableView: false,
+ provider: 'nominatim',
+ key: 'address',
+ type: 'address',
+ input: true,
+ components: [
+ {
+ label: 'Address 1',
+ tableView: false,
+ key: 'address1',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ "show = _.get(instance, 'parent.manualMode', false);",
+ },
+ {
+ label: 'Address 2',
+ tableView: false,
+ key: 'address2',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ "show = _.get(instance, 'parent.manualMode', false);",
+ },
+ {
+ label: 'City',
+ tableView: false,
+ key: 'city',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ "show = _.get(instance, 'parent.manualMode', false);",
+ },
+ {
+ label: 'State',
+ tableView: false,
+ key: 'state',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ "show = _.get(instance, 'parent.manualMode', false);",
+ },
+ {
+ label: 'Country',
+ tableView: false,
+ key: 'country',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ "show = _.get(instance, 'parent.manualMode', false);",
+ },
+ {
+ label: 'Zip Code',
+ tableView: false,
+ key: 'zip',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ "show = _.get(instance, 'parent.manualMode', false);",
+ },
+ ],
},
{
- label: 'State',
- tableView: false,
- key: 'state',
- type: 'textfield',
- input: true,
- customConditional:
- "show = _.get(instance, 'parent.manualMode', false);",
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
},
- {
- label: 'Country',
- tableView: false,
- key: 'country',
- type: 'textfield',
- input: true,
- customConditional:
- "show = _.get(instance, 'parent.manualMode', false);",
- },
- {
- label: 'Zip Code',
- tableView: false,
- key: 'zip',
- type: 'textfield',
- input: true,
- customConditional:
- "show = _.get(instance, 'parent.manualMode', false);",
- },
- ],
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false,
- },
- ],
- created: '2022-11-21T08:29:29.060Z',
- modified: '2022-11-21T09:36:12.397Z',
- machineName: 'vzpuetvqeldqjon:yyyy',
+ ],
+ created: '2022-11-21T08:29:29.060Z',
+ modified: '2022-11-21T09:36:12.397Z',
+ machineName: 'vzpuetvqeldqjon:yyyy',
};
diff --git a/test/forms/clearOnHide.d.ts b/test/forms/clearOnHide.d.ts
index ebb8d13022..6e28f61776 100644
--- a/test/forms/clearOnHide.d.ts
+++ b/test/forms/clearOnHide.d.ts
@@ -1,837 +1,854 @@
declare namespace _default {
const title: string;
namespace form {
- const components: ({
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- tags: never[];
- type: string;
- validate: {
- required: boolean;
- minLength?: undefined;
- maxLength?: undefined;
- pattern?: undefined;
- customPrivate?: undefined;
- };
- clearOnHide: boolean;
- persistent: boolean;
- protected: boolean;
- defaultValue: boolean;
- key: string;
- datagridLabel: boolean;
- label: string;
- hideLabel: boolean;
- tableView: boolean;
- inputType: string;
- input: boolean;
- lockKey: boolean;
- hidden: boolean;
- name: string;
- value: string;
- inputMask?: undefined;
- placeholder?: undefined;
- prefix?: undefined;
- suffix?: undefined;
- multiple?: undefined;
- unique?: undefined;
- labelPosition?: undefined;
- properties?: undefined;
- tree?: undefined;
- components?: undefined;
- addAnotherPosition?: undefined;
- templates?: undefined;
- title?: undefined;
- theme?: undefined;
- breadcrumb?: undefined;
- columns?: undefined;
- customClass?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- header?: undefined;
- caption?: undefined;
- striped?: undefined;
- bordered?: undefined;
- hover?: undefined;
- condensed?: undefined;
- legend?: undefined;
- } | {
- input: boolean;
- tableView: boolean;
- inputType: string;
- inputMask: string;
- label: string;
- key: string;
- placeholder: string;
- prefix: string;
- suffix: string;
- multiple: boolean;
- defaultValue: string;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- validate: {
- required: boolean;
- minLength: string;
- maxLength: string;
- pattern: string;
- custom: string;
- customPrivate: boolean;
- };
- conditional: {
- show: string;
- when: string;
- eq: string;
- };
- type: string;
- hideLabel: boolean;
- labelPosition: string;
- tags: never[];
- properties: {};
- lockKey: boolean;
- datagridLabel?: undefined;
- name?: undefined;
- value?: undefined;
- tree?: undefined;
- components?: undefined;
- addAnotherPosition?: undefined;
- templates?: undefined;
- title?: undefined;
- theme?: undefined;
- breadcrumb?: undefined;
- columns?: undefined;
- customClass?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- header?: undefined;
- caption?: undefined;
- striped?: undefined;
- bordered?: undefined;
- hover?: undefined;
- condensed?: undefined;
- legend?: undefined;
- } | {
- input: boolean;
- tree: boolean;
- components: {
- input: boolean;
- tableView: boolean;
- inputType: string;
- inputMask: string;
- label: string;
- key: string;
- placeholder: string;
- prefix: string;
- suffix: string;
- multiple: boolean;
- defaultValue: string;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- validate: {
- required: boolean;
- minLength: string;
- maxLength: string;
- pattern: string;
- custom: string;
- customPrivate: boolean;
- };
- conditional: {
- show: string;
- when: null;
- eq: string;
- };
- type: string;
- hideLabel: boolean;
- labelPosition: string;
- tags: never[];
- properties: {};
- lockKey: boolean;
- }[];
- tableView: boolean;
- label: string;
- key: string;
- protected: boolean;
- persistent: boolean;
- clearOnHide: boolean;
- type: string;
- labelPosition: string;
- tags: never[];
- conditional: {
- show: string;
- when: string;
- eq: string;
- };
- properties: {};
- hideLabel: boolean;
- validate?: undefined;
- defaultValue?: undefined;
- datagridLabel?: undefined;
- inputType?: undefined;
- lockKey?: undefined;
- hidden?: undefined;
- name?: undefined;
- value?: undefined;
- inputMask?: undefined;
- placeholder?: undefined;
- prefix?: undefined;
- suffix?: undefined;
- multiple?: undefined;
- unique?: undefined;
- addAnotherPosition?: undefined;
- templates?: undefined;
- title?: undefined;
- theme?: undefined;
- breadcrumb?: undefined;
- columns?: undefined;
- customClass?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- header?: undefined;
- caption?: undefined;
- striped?: undefined;
- bordered?: undefined;
- hover?: undefined;
- condensed?: undefined;
- legend?: undefined;
- } | {
- conditional: {
- eq: string;
- when: string;
- show: string;
- };
- tags: never[];
- type: string;
- clearOnHide: boolean;
- persistent: boolean;
- protected: boolean;
- key: string;
- label: string;
- tableView: boolean;
- components: {
- hideLabel: boolean;
- tags: never[];
- type: string;
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- validate: {
- customPrivate: boolean;
- custom: string;
- pattern: string;
- maxLength: string;
- minLength: string;
- required: boolean;
- };
- clearOnHide: boolean;
- persistent: boolean;
- unique: boolean;
- protected: boolean;
- defaultValue: string;
- multiple: boolean;
- suffix: string;
- prefix: string;
- placeholder: string;
- key: string;
- label: string;
- inputMask: string;
- inputType: string;
- tableView: boolean;
- input: boolean;
- hidden: boolean;
- labelPosition: string;
- properties: {};
- lockKey: boolean;
- }[];
- tree: boolean;
- input: boolean;
- hidden: boolean;
- hideLabel: boolean;
- addAnotherPosition: string;
- properties: {};
- lockKey: boolean;
- validate?: undefined;
- defaultValue?: undefined;
- datagridLabel?: undefined;
- inputType?: undefined;
- name?: undefined;
- value?: undefined;
- inputMask?: undefined;
- placeholder?: undefined;
- prefix?: undefined;
- suffix?: undefined;
- multiple?: undefined;
- unique?: undefined;
- labelPosition?: undefined;
- templates?: undefined;
- title?: undefined;
- theme?: undefined;
- breadcrumb?: undefined;
- columns?: undefined;
- customClass?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- header?: undefined;
- caption?: undefined;
- striped?: undefined;
- bordered?: undefined;
- hover?: undefined;
- condensed?: undefined;
- legend?: undefined;
- } | {
- input: boolean;
- tree: boolean;
- components: {
- input: boolean;
- tableView: boolean;
- inputType: string;
- inputMask: string;
- label: string;
- key: string;
- placeholder: string;
- prefix: string;
- suffix: string;
- multiple: boolean;
- defaultValue: string;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- validate: {
- required: boolean;
- minLength: string;
- maxLength: string;
- pattern: string;
- custom: string;
- customPrivate: boolean;
- };
- conditional: {
- show: string;
- when: null;
- eq: string;
- };
- type: string;
- hideLabel: boolean;
- labelPosition: string;
- tags: never[];
- properties: {};
- lockKey: boolean;
- }[];
- multiple: boolean;
- tableView: boolean;
- label: string;
- key: string;
- protected: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- templates: {
- header: string;
- row: string;
- footer: string;
- };
- type: string;
- tags: never[];
- conditional: {
- show: string;
- when: string;
- eq: string;
- };
- properties: {};
- lockKey: boolean;
- hideLabel: boolean;
- validate?: undefined;
- defaultValue?: undefined;
- datagridLabel?: undefined;
- inputType?: undefined;
- name?: undefined;
- value?: undefined;
- inputMask?: undefined;
- placeholder?: undefined;
- prefix?: undefined;
- suffix?: undefined;
- unique?: undefined;
- labelPosition?: undefined;
- addAnotherPosition?: undefined;
- title?: undefined;
- theme?: undefined;
- breadcrumb?: undefined;
- columns?: undefined;
- customClass?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- header?: undefined;
- caption?: undefined;
- striped?: undefined;
- bordered?: undefined;
- hover?: undefined;
- condensed?: undefined;
- legend?: undefined;
- } | {
- key: string;
- input: boolean;
- title: string;
- theme: string;
- components: {
- input: boolean;
- tableView: boolean;
- inputType: string;
- inputMask: string;
- label: string;
- key: string;
- placeholder: string;
- prefix: string;
- suffix: string;
- multiple: boolean;
- defaultValue: string;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- clearOnHide: boolean;
- validate: {
- required: boolean;
- minLength: string;
- maxLength: string;
- pattern: string;
- custom: string;
- customPrivate: boolean;
- };
- conditional: {
- show: string;
- when: null;
- eq: string;
- };
- type: string;
- tags: never[];
- hidden: boolean;
- hideLabel: boolean;
- labelPosition: string;
- properties: {};
- lockKey: boolean;
- }[];
- type: string;
- tags: never[];
- conditional: {
- show: string;
- when: string;
- eq: string;
- };
- clearOnHide: boolean;
- tableView: boolean;
- hideLabel: boolean;
- breadcrumb: string;
- properties: {};
- lockKey: boolean;
- validate?: undefined;
- persistent?: undefined;
- protected?: undefined;
- defaultValue?: undefined;
- datagridLabel?: undefined;
- label?: undefined;
- inputType?: undefined;
- hidden?: undefined;
- name?: undefined;
- value?: undefined;
- inputMask?: undefined;
- placeholder?: undefined;
- prefix?: undefined;
- suffix?: undefined;
- multiple?: undefined;
- unique?: undefined;
- labelPosition?: undefined;
- tree?: undefined;
- addAnotherPosition?: undefined;
- templates?: undefined;
- columns?: undefined;
- customClass?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- header?: undefined;
- caption?: undefined;
- striped?: undefined;
- bordered?: undefined;
- hover?: undefined;
- condensed?: undefined;
- legend?: undefined;
- } | {
- input: boolean;
- key: string;
- columns: {
- components: {
- input: boolean;
- tableView: boolean;
- inputType: string;
- inputMask: string;
- label: string;
- key: string;
- placeholder: string;
- prefix: string;
- suffix: string;
- multiple: boolean;
- defaultValue: string;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- clearOnHide: boolean;
- validate: {
- required: boolean;
- minLength: string;
- maxLength: string;
- pattern: string;
- custom: string;
- customPrivate: boolean;
- };
- conditional: {
- show: string;
- when: null;
- eq: string;
- };
- type: string;
- tags: never[];
- hidden: boolean;
- hideLabel: boolean;
- labelPosition: string;
- properties: {};
- lockKey: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- }[];
- type: string;
- tags: never[];
- conditional: {
- show: string;
- when: string;
- eq: string;
- };
- customClass: string;
- clearOnHide: boolean;
- tableView: boolean;
- hideLabel: boolean;
- properties: {};
- lockKey: boolean;
- validate?: undefined;
- persistent?: undefined;
- protected?: undefined;
- defaultValue?: undefined;
- datagridLabel?: undefined;
- label?: undefined;
- inputType?: undefined;
- hidden?: undefined;
- name?: undefined;
- value?: undefined;
- inputMask?: undefined;
- placeholder?: undefined;
- prefix?: undefined;
- suffix?: undefined;
- multiple?: undefined;
- unique?: undefined;
- labelPosition?: undefined;
- tree?: undefined;
- components?: undefined;
- addAnotherPosition?: undefined;
- templates?: undefined;
- title?: undefined;
- theme?: undefined;
- breadcrumb?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- header?: undefined;
- caption?: undefined;
- striped?: undefined;
- bordered?: undefined;
- hover?: undefined;
- condensed?: undefined;
- legend?: undefined;
- } | {
- input: boolean;
- key: string;
- numRows: number;
- numCols: number;
- rows: {
- components: {
- input: boolean;
- tableView: boolean;
- inputType: string;
- inputMask: string;
- label: string;
- key: string;
- placeholder: string;
- prefix: string;
- suffix: string;
- multiple: boolean;
- defaultValue: string;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- clearOnHide: boolean;
- validate: {
- required: boolean;
- minLength: string;
- maxLength: string;
- pattern: string;
- custom: string;
- customPrivate: boolean;
- };
- conditional: {
- show: string;
- when: null;
- eq: string;
- };
- type: string;
- tags: never[];
- hidden: boolean;
- hideLabel: boolean;
- labelPosition: string;
- properties: {};
- lockKey: boolean;
- }[];
- }[][];
- header: never[];
- caption: string;
- striped: boolean;
- bordered: boolean;
- hover: boolean;
- condensed: boolean;
- type: string;
- tags: never[];
- conditional: {
- show: string;
- when: string;
- eq: string;
- };
- clearOnHide: boolean;
- tableView: boolean;
- hideLabel: boolean;
- properties: {};
- lockKey: boolean;
- validate?: undefined;
- persistent?: undefined;
- protected?: undefined;
- defaultValue?: undefined;
- datagridLabel?: undefined;
- label?: undefined;
- inputType?: undefined;
- hidden?: undefined;
- name?: undefined;
- value?: undefined;
- inputMask?: undefined;
- placeholder?: undefined;
- prefix?: undefined;
- suffix?: undefined;
- multiple?: undefined;
- unique?: undefined;
- labelPosition?: undefined;
- tree?: undefined;
- components?: undefined;
- addAnotherPosition?: undefined;
- templates?: undefined;
- title?: undefined;
- theme?: undefined;
- breadcrumb?: undefined;
- columns?: undefined;
- customClass?: undefined;
- legend?: undefined;
- } | {
- clearOnHide: boolean;
- key: string;
- input: boolean;
- components: {
- input: boolean;
- tableView: boolean;
- inputType: string;
- inputMask: string;
- label: string;
- key: string;
- placeholder: string;
- prefix: string;
- suffix: string;
- multiple: boolean;
- defaultValue: string;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- validate: {
- required: boolean;
- minLength: string;
- maxLength: string;
- pattern: string;
- custom: string;
- customPrivate: boolean;
- };
- conditional: {
- show: string;
- when: null;
- eq: string;
- };
- type: string;
- hideLabel: boolean;
- labelPosition: string;
- tags: never[];
- properties: {};
- lockKey: boolean;
- }[];
- tableView: boolean;
- type: string;
- hideLabel: boolean;
- tags: never[];
- conditional: {
- show: string;
- when: string;
- eq: string;
- };
- properties: {};
- validate?: undefined;
- persistent?: undefined;
- protected?: undefined;
- defaultValue?: undefined;
- datagridLabel?: undefined;
- label?: undefined;
- inputType?: undefined;
- lockKey?: undefined;
- hidden?: undefined;
- name?: undefined;
- value?: undefined;
- inputMask?: undefined;
- placeholder?: undefined;
- prefix?: undefined;
- suffix?: undefined;
- multiple?: undefined;
- unique?: undefined;
- labelPosition?: undefined;
- tree?: undefined;
- addAnotherPosition?: undefined;
- templates?: undefined;
- title?: undefined;
- theme?: undefined;
- breadcrumb?: undefined;
- columns?: undefined;
- customClass?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- header?: undefined;
- caption?: undefined;
- striped?: undefined;
- bordered?: undefined;
- hover?: undefined;
- condensed?: undefined;
- legend?: undefined;
- } | {
- clearOnHide: boolean;
- key: string;
- input: boolean;
- tableView: boolean;
- legend: string;
- components: {
- input: boolean;
- tableView: boolean;
- inputType: string;
- inputMask: string;
- label: string;
- key: string;
- placeholder: string;
- prefix: string;
- suffix: string;
- multiple: boolean;
- defaultValue: string;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- validate: {
- required: boolean;
- minLength: string;
- maxLength: string;
- pattern: string;
- custom: string;
- customPrivate: boolean;
- };
- conditional: {
- show: string;
- when: null;
- eq: string;
- };
- type: string;
- hideLabel: boolean;
- labelPosition: string;
- tags: never[];
- properties: {};
- lockKey: boolean;
- }[];
- type: string;
- hideLabel: boolean;
- tags: never[];
- conditional: {
- show: string;
- when: string;
- eq: string;
- };
- properties: {};
- validate?: undefined;
- persistent?: undefined;
- protected?: undefined;
- defaultValue?: undefined;
- datagridLabel?: undefined;
- label?: undefined;
- inputType?: undefined;
- lockKey?: undefined;
- hidden?: undefined;
- name?: undefined;
- value?: undefined;
- inputMask?: undefined;
- placeholder?: undefined;
- prefix?: undefined;
- suffix?: undefined;
- multiple?: undefined;
- unique?: undefined;
- labelPosition?: undefined;
- tree?: undefined;
- addAnotherPosition?: undefined;
- templates?: undefined;
- title?: undefined;
- theme?: undefined;
- breadcrumb?: undefined;
- columns?: undefined;
- customClass?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- header?: undefined;
- caption?: undefined;
- striped?: undefined;
- bordered?: undefined;
- hover?: undefined;
- condensed?: undefined;
- })[];
+ const components: (
+ | {
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ tags: never[];
+ type: string;
+ validate: {
+ required: boolean;
+ minLength?: undefined;
+ maxLength?: undefined;
+ pattern?: undefined;
+ customPrivate?: undefined;
+ };
+ clearOnHide: boolean;
+ persistent: boolean;
+ protected: boolean;
+ defaultValue: boolean;
+ key: string;
+ datagridLabel: boolean;
+ label: string;
+ hideLabel: boolean;
+ tableView: boolean;
+ inputType: string;
+ input: boolean;
+ lockKey: boolean;
+ hidden: boolean;
+ name: string;
+ value: string;
+ inputMask?: undefined;
+ placeholder?: undefined;
+ prefix?: undefined;
+ suffix?: undefined;
+ multiple?: undefined;
+ unique?: undefined;
+ labelPosition?: undefined;
+ properties?: undefined;
+ tree?: undefined;
+ components?: undefined;
+ addAnotherPosition?: undefined;
+ templates?: undefined;
+ title?: undefined;
+ theme?: undefined;
+ breadcrumb?: undefined;
+ columns?: undefined;
+ customClass?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ header?: undefined;
+ caption?: undefined;
+ striped?: undefined;
+ bordered?: undefined;
+ hover?: undefined;
+ condensed?: undefined;
+ legend?: undefined;
+ }
+ | {
+ input: boolean;
+ tableView: boolean;
+ inputType: string;
+ inputMask: string;
+ label: string;
+ key: string;
+ placeholder: string;
+ prefix: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: string;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ validate: {
+ required: boolean;
+ minLength: string;
+ maxLength: string;
+ pattern: string;
+ custom: string;
+ customPrivate: boolean;
+ };
+ conditional: {
+ show: string;
+ when: string;
+ eq: string;
+ };
+ type: string;
+ hideLabel: boolean;
+ labelPosition: string;
+ tags: never[];
+ properties: {};
+ lockKey: boolean;
+ datagridLabel?: undefined;
+ name?: undefined;
+ value?: undefined;
+ tree?: undefined;
+ components?: undefined;
+ addAnotherPosition?: undefined;
+ templates?: undefined;
+ title?: undefined;
+ theme?: undefined;
+ breadcrumb?: undefined;
+ columns?: undefined;
+ customClass?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ header?: undefined;
+ caption?: undefined;
+ striped?: undefined;
+ bordered?: undefined;
+ hover?: undefined;
+ condensed?: undefined;
+ legend?: undefined;
+ }
+ | {
+ input: boolean;
+ tree: boolean;
+ components: {
+ input: boolean;
+ tableView: boolean;
+ inputType: string;
+ inputMask: string;
+ label: string;
+ key: string;
+ placeholder: string;
+ prefix: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: string;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ validate: {
+ required: boolean;
+ minLength: string;
+ maxLength: string;
+ pattern: string;
+ custom: string;
+ customPrivate: boolean;
+ };
+ conditional: {
+ show: string;
+ when: null;
+ eq: string;
+ };
+ type: string;
+ hideLabel: boolean;
+ labelPosition: string;
+ tags: never[];
+ properties: {};
+ lockKey: boolean;
+ }[];
+ tableView: boolean;
+ label: string;
+ key: string;
+ protected: boolean;
+ persistent: boolean;
+ clearOnHide: boolean;
+ type: string;
+ labelPosition: string;
+ tags: never[];
+ conditional: {
+ show: string;
+ when: string;
+ eq: string;
+ };
+ properties: {};
+ hideLabel: boolean;
+ validate?: undefined;
+ defaultValue?: undefined;
+ datagridLabel?: undefined;
+ inputType?: undefined;
+ lockKey?: undefined;
+ hidden?: undefined;
+ name?: undefined;
+ value?: undefined;
+ inputMask?: undefined;
+ placeholder?: undefined;
+ prefix?: undefined;
+ suffix?: undefined;
+ multiple?: undefined;
+ unique?: undefined;
+ addAnotherPosition?: undefined;
+ templates?: undefined;
+ title?: undefined;
+ theme?: undefined;
+ breadcrumb?: undefined;
+ columns?: undefined;
+ customClass?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ header?: undefined;
+ caption?: undefined;
+ striped?: undefined;
+ bordered?: undefined;
+ hover?: undefined;
+ condensed?: undefined;
+ legend?: undefined;
+ }
+ | {
+ conditional: {
+ eq: string;
+ when: string;
+ show: string;
+ };
+ tags: never[];
+ type: string;
+ clearOnHide: boolean;
+ persistent: boolean;
+ protected: boolean;
+ key: string;
+ label: string;
+ tableView: boolean;
+ components: {
+ hideLabel: boolean;
+ tags: never[];
+ type: string;
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ validate: {
+ customPrivate: boolean;
+ custom: string;
+ pattern: string;
+ maxLength: string;
+ minLength: string;
+ required: boolean;
+ };
+ clearOnHide: boolean;
+ persistent: boolean;
+ unique: boolean;
+ protected: boolean;
+ defaultValue: string;
+ multiple: boolean;
+ suffix: string;
+ prefix: string;
+ placeholder: string;
+ key: string;
+ label: string;
+ inputMask: string;
+ inputType: string;
+ tableView: boolean;
+ input: boolean;
+ hidden: boolean;
+ labelPosition: string;
+ properties: {};
+ lockKey: boolean;
+ }[];
+ tree: boolean;
+ input: boolean;
+ hidden: boolean;
+ hideLabel: boolean;
+ addAnotherPosition: string;
+ properties: {};
+ lockKey: boolean;
+ validate?: undefined;
+ defaultValue?: undefined;
+ datagridLabel?: undefined;
+ inputType?: undefined;
+ name?: undefined;
+ value?: undefined;
+ inputMask?: undefined;
+ placeholder?: undefined;
+ prefix?: undefined;
+ suffix?: undefined;
+ multiple?: undefined;
+ unique?: undefined;
+ labelPosition?: undefined;
+ templates?: undefined;
+ title?: undefined;
+ theme?: undefined;
+ breadcrumb?: undefined;
+ columns?: undefined;
+ customClass?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ header?: undefined;
+ caption?: undefined;
+ striped?: undefined;
+ bordered?: undefined;
+ hover?: undefined;
+ condensed?: undefined;
+ legend?: undefined;
+ }
+ | {
+ input: boolean;
+ tree: boolean;
+ components: {
+ input: boolean;
+ tableView: boolean;
+ inputType: string;
+ inputMask: string;
+ label: string;
+ key: string;
+ placeholder: string;
+ prefix: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: string;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ validate: {
+ required: boolean;
+ minLength: string;
+ maxLength: string;
+ pattern: string;
+ custom: string;
+ customPrivate: boolean;
+ };
+ conditional: {
+ show: string;
+ when: null;
+ eq: string;
+ };
+ type: string;
+ hideLabel: boolean;
+ labelPosition: string;
+ tags: never[];
+ properties: {};
+ lockKey: boolean;
+ }[];
+ multiple: boolean;
+ tableView: boolean;
+ label: string;
+ key: string;
+ protected: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ templates: {
+ header: string;
+ row: string;
+ footer: string;
+ };
+ type: string;
+ tags: never[];
+ conditional: {
+ show: string;
+ when: string;
+ eq: string;
+ };
+ properties: {};
+ lockKey: boolean;
+ hideLabel: boolean;
+ validate?: undefined;
+ defaultValue?: undefined;
+ datagridLabel?: undefined;
+ inputType?: undefined;
+ name?: undefined;
+ value?: undefined;
+ inputMask?: undefined;
+ placeholder?: undefined;
+ prefix?: undefined;
+ suffix?: undefined;
+ unique?: undefined;
+ labelPosition?: undefined;
+ addAnotherPosition?: undefined;
+ title?: undefined;
+ theme?: undefined;
+ breadcrumb?: undefined;
+ columns?: undefined;
+ customClass?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ header?: undefined;
+ caption?: undefined;
+ striped?: undefined;
+ bordered?: undefined;
+ hover?: undefined;
+ condensed?: undefined;
+ legend?: undefined;
+ }
+ | {
+ key: string;
+ input: boolean;
+ title: string;
+ theme: string;
+ components: {
+ input: boolean;
+ tableView: boolean;
+ inputType: string;
+ inputMask: string;
+ label: string;
+ key: string;
+ placeholder: string;
+ prefix: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: string;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ clearOnHide: boolean;
+ validate: {
+ required: boolean;
+ minLength: string;
+ maxLength: string;
+ pattern: string;
+ custom: string;
+ customPrivate: boolean;
+ };
+ conditional: {
+ show: string;
+ when: null;
+ eq: string;
+ };
+ type: string;
+ tags: never[];
+ hidden: boolean;
+ hideLabel: boolean;
+ labelPosition: string;
+ properties: {};
+ lockKey: boolean;
+ }[];
+ type: string;
+ tags: never[];
+ conditional: {
+ show: string;
+ when: string;
+ eq: string;
+ };
+ clearOnHide: boolean;
+ tableView: boolean;
+ hideLabel: boolean;
+ breadcrumb: string;
+ properties: {};
+ lockKey: boolean;
+ validate?: undefined;
+ persistent?: undefined;
+ protected?: undefined;
+ defaultValue?: undefined;
+ datagridLabel?: undefined;
+ label?: undefined;
+ inputType?: undefined;
+ hidden?: undefined;
+ name?: undefined;
+ value?: undefined;
+ inputMask?: undefined;
+ placeholder?: undefined;
+ prefix?: undefined;
+ suffix?: undefined;
+ multiple?: undefined;
+ unique?: undefined;
+ labelPosition?: undefined;
+ tree?: undefined;
+ addAnotherPosition?: undefined;
+ templates?: undefined;
+ columns?: undefined;
+ customClass?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ header?: undefined;
+ caption?: undefined;
+ striped?: undefined;
+ bordered?: undefined;
+ hover?: undefined;
+ condensed?: undefined;
+ legend?: undefined;
+ }
+ | {
+ input: boolean;
+ key: string;
+ columns: {
+ components: {
+ input: boolean;
+ tableView: boolean;
+ inputType: string;
+ inputMask: string;
+ label: string;
+ key: string;
+ placeholder: string;
+ prefix: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: string;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ clearOnHide: boolean;
+ validate: {
+ required: boolean;
+ minLength: string;
+ maxLength: string;
+ pattern: string;
+ custom: string;
+ customPrivate: boolean;
+ };
+ conditional: {
+ show: string;
+ when: null;
+ eq: string;
+ };
+ type: string;
+ tags: never[];
+ hidden: boolean;
+ hideLabel: boolean;
+ labelPosition: string;
+ properties: {};
+ lockKey: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ }[];
+ type: string;
+ tags: never[];
+ conditional: {
+ show: string;
+ when: string;
+ eq: string;
+ };
+ customClass: string;
+ clearOnHide: boolean;
+ tableView: boolean;
+ hideLabel: boolean;
+ properties: {};
+ lockKey: boolean;
+ validate?: undefined;
+ persistent?: undefined;
+ protected?: undefined;
+ defaultValue?: undefined;
+ datagridLabel?: undefined;
+ label?: undefined;
+ inputType?: undefined;
+ hidden?: undefined;
+ name?: undefined;
+ value?: undefined;
+ inputMask?: undefined;
+ placeholder?: undefined;
+ prefix?: undefined;
+ suffix?: undefined;
+ multiple?: undefined;
+ unique?: undefined;
+ labelPosition?: undefined;
+ tree?: undefined;
+ components?: undefined;
+ addAnotherPosition?: undefined;
+ templates?: undefined;
+ title?: undefined;
+ theme?: undefined;
+ breadcrumb?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ header?: undefined;
+ caption?: undefined;
+ striped?: undefined;
+ bordered?: undefined;
+ hover?: undefined;
+ condensed?: undefined;
+ legend?: undefined;
+ }
+ | {
+ input: boolean;
+ key: string;
+ numRows: number;
+ numCols: number;
+ rows: {
+ components: {
+ input: boolean;
+ tableView: boolean;
+ inputType: string;
+ inputMask: string;
+ label: string;
+ key: string;
+ placeholder: string;
+ prefix: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: string;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ clearOnHide: boolean;
+ validate: {
+ required: boolean;
+ minLength: string;
+ maxLength: string;
+ pattern: string;
+ custom: string;
+ customPrivate: boolean;
+ };
+ conditional: {
+ show: string;
+ when: null;
+ eq: string;
+ };
+ type: string;
+ tags: never[];
+ hidden: boolean;
+ hideLabel: boolean;
+ labelPosition: string;
+ properties: {};
+ lockKey: boolean;
+ }[];
+ }[][];
+ header: never[];
+ caption: string;
+ striped: boolean;
+ bordered: boolean;
+ hover: boolean;
+ condensed: boolean;
+ type: string;
+ tags: never[];
+ conditional: {
+ show: string;
+ when: string;
+ eq: string;
+ };
+ clearOnHide: boolean;
+ tableView: boolean;
+ hideLabel: boolean;
+ properties: {};
+ lockKey: boolean;
+ validate?: undefined;
+ persistent?: undefined;
+ protected?: undefined;
+ defaultValue?: undefined;
+ datagridLabel?: undefined;
+ label?: undefined;
+ inputType?: undefined;
+ hidden?: undefined;
+ name?: undefined;
+ value?: undefined;
+ inputMask?: undefined;
+ placeholder?: undefined;
+ prefix?: undefined;
+ suffix?: undefined;
+ multiple?: undefined;
+ unique?: undefined;
+ labelPosition?: undefined;
+ tree?: undefined;
+ components?: undefined;
+ addAnotherPosition?: undefined;
+ templates?: undefined;
+ title?: undefined;
+ theme?: undefined;
+ breadcrumb?: undefined;
+ columns?: undefined;
+ customClass?: undefined;
+ legend?: undefined;
+ }
+ | {
+ clearOnHide: boolean;
+ key: string;
+ input: boolean;
+ components: {
+ input: boolean;
+ tableView: boolean;
+ inputType: string;
+ inputMask: string;
+ label: string;
+ key: string;
+ placeholder: string;
+ prefix: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: string;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ validate: {
+ required: boolean;
+ minLength: string;
+ maxLength: string;
+ pattern: string;
+ custom: string;
+ customPrivate: boolean;
+ };
+ conditional: {
+ show: string;
+ when: null;
+ eq: string;
+ };
+ type: string;
+ hideLabel: boolean;
+ labelPosition: string;
+ tags: never[];
+ properties: {};
+ lockKey: boolean;
+ }[];
+ tableView: boolean;
+ type: string;
+ hideLabel: boolean;
+ tags: never[];
+ conditional: {
+ show: string;
+ when: string;
+ eq: string;
+ };
+ properties: {};
+ validate?: undefined;
+ persistent?: undefined;
+ protected?: undefined;
+ defaultValue?: undefined;
+ datagridLabel?: undefined;
+ label?: undefined;
+ inputType?: undefined;
+ lockKey?: undefined;
+ hidden?: undefined;
+ name?: undefined;
+ value?: undefined;
+ inputMask?: undefined;
+ placeholder?: undefined;
+ prefix?: undefined;
+ suffix?: undefined;
+ multiple?: undefined;
+ unique?: undefined;
+ labelPosition?: undefined;
+ tree?: undefined;
+ addAnotherPosition?: undefined;
+ templates?: undefined;
+ title?: undefined;
+ theme?: undefined;
+ breadcrumb?: undefined;
+ columns?: undefined;
+ customClass?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ header?: undefined;
+ caption?: undefined;
+ striped?: undefined;
+ bordered?: undefined;
+ hover?: undefined;
+ condensed?: undefined;
+ legend?: undefined;
+ }
+ | {
+ clearOnHide: boolean;
+ key: string;
+ input: boolean;
+ tableView: boolean;
+ legend: string;
+ components: {
+ input: boolean;
+ tableView: boolean;
+ inputType: string;
+ inputMask: string;
+ label: string;
+ key: string;
+ placeholder: string;
+ prefix: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: string;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ validate: {
+ required: boolean;
+ minLength: string;
+ maxLength: string;
+ pattern: string;
+ custom: string;
+ customPrivate: boolean;
+ };
+ conditional: {
+ show: string;
+ when: null;
+ eq: string;
+ };
+ type: string;
+ hideLabel: boolean;
+ labelPosition: string;
+ tags: never[];
+ properties: {};
+ lockKey: boolean;
+ }[];
+ type: string;
+ hideLabel: boolean;
+ tags: never[];
+ conditional: {
+ show: string;
+ when: string;
+ eq: string;
+ };
+ properties: {};
+ validate?: undefined;
+ persistent?: undefined;
+ protected?: undefined;
+ defaultValue?: undefined;
+ datagridLabel?: undefined;
+ label?: undefined;
+ inputType?: undefined;
+ lockKey?: undefined;
+ hidden?: undefined;
+ name?: undefined;
+ value?: undefined;
+ inputMask?: undefined;
+ placeholder?: undefined;
+ prefix?: undefined;
+ suffix?: undefined;
+ multiple?: undefined;
+ unique?: undefined;
+ labelPosition?: undefined;
+ tree?: undefined;
+ addAnotherPosition?: undefined;
+ templates?: undefined;
+ title?: undefined;
+ theme?: undefined;
+ breadcrumb?: undefined;
+ columns?: undefined;
+ customClass?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ header?: undefined;
+ caption?: undefined;
+ striped?: undefined;
+ bordered?: undefined;
+ hover?: undefined;
+ condensed?: undefined;
+ }
+ )[];
}
const tests: {
'Test starting hidden'(form: any, done: any): void;
'Test starting visible'(form: any, done: any): void;
'Test with data'(form: any, done: any): void;
- 'Test changing visible from hidden to visible'(form: any, done: any): void;
- 'Test changing visible from visible to hidden'(form: any, done: any): void;
+ 'Test changing visible from hidden to visible'(
+ form: any,
+ done: any
+ ): void;
+ 'Test changing visible from visible to hidden'(
+ form: any,
+ done: any
+ ): void;
};
}
export default _default;
diff --git a/test/forms/clearOnHide.js b/test/forms/clearOnHide.js
index 6396cd7dda..f685e84ff7 100644
--- a/test/forms/clearOnHide.js
+++ b/test/forms/clearOnHide.js
@@ -2,689 +2,730 @@ import assert from 'power-assert';
import _ from 'lodash';
const visibleData = {
- data: {
- columnfield: '',
- container: {
- containerfield: ''
+ data: {
+ columnfield: '',
+ container: {
+ containerfield: '',
+ },
+ datagrid: [
+ {
+ datagridfield: '',
+ },
+ ],
+ editgrid: [],
+ fieldsetfield: '',
+ panelfield: '',
+ plainfield: '',
+ tablefield: '',
+ visible: true,
+ wellfield: '',
},
- datagrid: [
- {
- datagridfield: ''
- }
- ],
- editgrid: [],
- fieldsetfield: '',
- panelfield: '',
- plainfield: '',
- tablefield: '',
- visible: true,
- wellfield: ''
- }
};
const hiddenData = {
- data: {
- visible: false
- },
- metadata: {}
+ data: {
+ visible: false,
+ },
+ metadata: {},
};
const existingData = {
- data: {
- columnfield: 'one',
- container: {
- containerfield: 'two'
+ data: {
+ columnfield: 'one',
+ container: {
+ containerfield: 'two',
+ },
+ datagrid: [
+ {
+ datagridfield: 'three',
+ },
+ ],
+ editgrid: [],
+ fieldsetfield: 'four',
+ panelfield: 'five',
+ plainfield: 'six',
+ tablefield: 'seven',
+ visible: true,
+ wellfield: 'eight',
},
- datagrid: [
- {
- datagridfield: 'three'
- }
- ],
- editgrid: [],
- fieldsetfield: 'four',
- panelfield: 'five',
- plainfield: 'six',
- tablefield: 'seven',
- visible: true,
- wellfield: 'eight'
- },
- metadata: {}
+ metadata: {},
};
export default {
- title: 'Clear on hide Form Test',
- form: {
- components: [{
- conditional: {
- eq: '',
- when: null,
- show: ''
- },
- tags: [],
- type: 'checkbox',
- validate: {
- required: false
- },
- clearOnHide: true,
- persistent: true,
- protected: false,
- defaultValue: false,
- key: 'visible',
- datagridLabel: true,
- label: 'Visible',
- hideLabel: false,
- tableView: true,
- inputType: 'checkbox',
- input: true,
- lockKey: true,
- hidden: false,
- name: '',
- value: ''
- }, {
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'Plain Field',
- key: 'plainfield',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- hidden: false,
- clearOnHide: true,
- validate: {
- required: false,
- minLength: '',
- maxLength: '',
- pattern: '',
- custom: '',
- customPrivate: false
- },
- conditional: {
- show: 'true',
- when: 'visible',
- eq: 'true'
- },
- type: 'textfield',
- hideLabel: false,
- labelPosition: 'top',
- tags: [],
- properties: {},
- lockKey: true
- }, {
- input: true,
- tree: true,
- components: [{
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'Container Field',
- key: 'containerfield',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- hidden: false,
- clearOnHide: true,
- validate: {
- required: false,
- minLength: '',
- maxLength: '',
- pattern: '',
- custom: '',
- customPrivate: false
- },
- conditional: {
- show: '',
- when: null,
- eq: ''
- },
- type: 'textfield',
- hideLabel: false,
- labelPosition: 'top',
- tags: [],
- properties: {},
- lockKey: true
- }],
- tableView: true,
- label: 'Container',
- key: 'container',
- protected: false,
- persistent: true,
- clearOnHide: true,
- type: 'container',
- labelPosition: 'top',
- tags: [],
- conditional: {
- show: 'true',
- when: 'visible',
- eq: 'true'
- },
- properties: {},
- hideLabel: false
- }, {
- conditional: {
- eq: 'true',
- when: 'visible',
- show: 'true'
- },
- tags: [],
- type: 'datagrid',
- clearOnHide: true,
- persistent: true,
- protected: false,
- key: 'datagrid',
- label: 'Datagrid',
- tableView: true,
- components: [{
- hideLabel: true,
- tags: [],
- type: 'textfield',
- conditional: {
- eq: '',
- when: null,
- show: ''
- },
- validate: {
- customPrivate: false,
- custom: '',
- pattern: '',
- maxLength: '',
- minLength: '',
- required: false
- },
- clearOnHide: true,
- persistent: true,
- unique: false,
- protected: false,
- defaultValue: '',
- multiple: false,
- suffix: '',
- prefix: '',
- placeholder: '',
- key: 'datagridfield',
- label: 'Datagrid Field',
- inputMask: '',
- inputType: 'text',
- tableView: true,
- input: true,
- hidden: false,
- labelPosition: 'top',
- properties: {},
- lockKey: true
- }],
- tree: true,
- input: true,
- hidden: false,
- hideLabel: false,
- addAnotherPosition: 'bottom',
- properties: {},
- lockKey: true
- }, {
- input: true,
- tree: true,
- components: [{
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'Edit Grid Field',
- key: 'editgridfield',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- hidden: false,
- clearOnHide: true,
- validate: {
- required: false,
- minLength: '',
- maxLength: '',
- pattern: '',
- custom: '',
- customPrivate: false
- },
- conditional: {
- show: '',
- when: null,
- eq: ''
- },
- type: 'textfield',
- hideLabel: false,
- labelPosition: 'top',
- tags: [],
- properties: {},
- lockKey: true
- }],
- multiple: false,
- tableView: true,
- label: 'Edit Grid',
- key: 'editgrid',
- protected: false,
- persistent: true,
- hidden: false,
- clearOnHide: true,
- templates: {
- header: '
\n {%util.eachComponent(components, function(component) { %} \n
\n {{ component.label }} \n
\n {% }) %} \n
',
- row: '
\n {%util.eachComponent(components, function(component) { %} \n
\n {{ row[component.key] }} \n
\n {% }) %} \n
\n
',
- footer: ''
- },
- type: 'editgrid',
- tags: [],
- conditional: {
- show: 'true',
- when: 'visible',
- eq: 'true'
- },
- properties: {},
- lockKey: true,
- hideLabel: false
- }, {
- key: 'panel',
- input: false,
- title: 'Panel',
- theme: 'default',
- components: [{
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'Panel Field',
- key: 'panelfield',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- clearOnHide: true,
- validate: {
- required: false,
- minLength: '',
- maxLength: '',
- pattern: '',
- custom: '',
- customPrivate: false
- },
- conditional: {
- show: '',
- when: null,
- eq: ''
- },
- type: 'textfield',
- tags: [],
- hidden: false,
- hideLabel: false,
- labelPosition: 'top',
- properties: {},
- lockKey: true
- }],
- type: 'panel',
- tags: [],
- conditional: {
- show: 'true',
- when: 'visible',
- eq: 'true'
- },
- clearOnHide: false,
- tableView: false,
- hideLabel: false,
- breadcrumb: 'default',
- properties: {},
- lockKey: true
- }, {
- input: false,
- key: 'columns',
- columns: [{
- components: [{
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'Column Field',
- key: 'columnfield',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- clearOnHide: true,
- validate: {
- required: false,
- minLength: '',
- maxLength: '',
- pattern: '',
- custom: '',
- customPrivate: false
- },
- conditional: {
- show: '',
- when: null,
- eq: ''
- },
- type: 'textfield',
- tags: [],
- hidden: false,
- hideLabel: false,
- labelPosition: 'top',
- properties: {},
- lockKey: true
- }],
- width: 6,
- offset: 0,
- push: 0,
- pull: 0
- }, {
- components: [],
- width: 6,
- offset: 0,
- push: 0,
- pull: 0
- }],
- type: 'columns',
- tags: [],
- conditional: {
- show: 'true',
- when: 'visible',
- eq: 'true'
- },
- customClass: 'Columns',
- clearOnHide: false,
- tableView: false,
- hideLabel: false,
- properties: {},
- lockKey: true
- }, {
- input: false,
- key: 'table',
- numRows: 3,
- numCols: 3,
- rows: [
- [{
- components: [{
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'Table Field',
- key: 'tablefield',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- clearOnHide: true,
- validate: {
- required: false,
- minLength: '',
- maxLength: '',
- pattern: '',
- custom: '',
- customPrivate: false
+ title: 'Clear on hide Form Test',
+ form: {
+ components: [
+ {
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ tags: [],
+ type: 'checkbox',
+ validate: {
+ required: false,
+ },
+ clearOnHide: true,
+ persistent: true,
+ protected: false,
+ defaultValue: false,
+ key: 'visible',
+ datagridLabel: true,
+ label: 'Visible',
+ hideLabel: false,
+ tableView: true,
+ inputType: 'checkbox',
+ input: true,
+ lockKey: true,
+ hidden: false,
+ name: '',
+ value: '',
},
- conditional: {
- show: '',
- when: null,
- eq: ''
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'Plain Field',
+ key: 'plainfield',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: {
+ show: 'true',
+ when: 'visible',
+ eq: 'true',
+ },
+ type: 'textfield',
+ hideLabel: false,
+ labelPosition: 'top',
+ tags: [],
+ properties: {},
+ lockKey: true,
},
- type: 'textfield',
- tags: [],
- hidden: false,
- hideLabel: false,
- labelPosition: 'top',
- properties: {},
- lockKey: true
- }]
- }, {
- components: []
- }, {
- components: []
- }],
- [{
- components: []
- }, {
- components: []
- }, {
- components: []
- }],
- [{
- components: []
- }, {
- components: []
- }, {
- components: []
- }]
- ],
- header: [],
- caption: '',
- striped: false,
- bordered: false,
- hover: false,
- condensed: false,
- type: 'table',
- tags: [],
- conditional: {
- show: 'true',
- when: 'visible',
- eq: 'true'
- },
- clearOnHide: false,
- tableView: false,
- hideLabel: false,
- properties: {},
- lockKey: true
- }, {
- clearOnHide: false,
- key: 'well',
- input: false,
- components: [{
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'Well Field',
- key: 'wellfield',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- hidden: false,
- clearOnHide: true,
- validate: {
- required: false,
- minLength: '',
- maxLength: '',
- pattern: '',
- custom: '',
- customPrivate: false
- },
- conditional: {
- show: '',
- when: null,
- eq: ''
+ {
+ input: true,
+ tree: true,
+ components: [
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'Container Field',
+ key: 'containerfield',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: {
+ show: '',
+ when: null,
+ eq: '',
+ },
+ type: 'textfield',
+ hideLabel: false,
+ labelPosition: 'top',
+ tags: [],
+ properties: {},
+ lockKey: true,
+ },
+ ],
+ tableView: true,
+ label: 'Container',
+ key: 'container',
+ protected: false,
+ persistent: true,
+ clearOnHide: true,
+ type: 'container',
+ labelPosition: 'top',
+ tags: [],
+ conditional: {
+ show: 'true',
+ when: 'visible',
+ eq: 'true',
+ },
+ properties: {},
+ hideLabel: false,
+ },
+ {
+ conditional: {
+ eq: 'true',
+ when: 'visible',
+ show: 'true',
+ },
+ tags: [],
+ type: 'datagrid',
+ clearOnHide: true,
+ persistent: true,
+ protected: false,
+ key: 'datagrid',
+ label: 'Datagrid',
+ tableView: true,
+ components: [
+ {
+ hideLabel: true,
+ tags: [],
+ type: 'textfield',
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: '',
+ minLength: '',
+ required: false,
+ },
+ clearOnHide: true,
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: false,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'datagridfield',
+ label: 'Datagrid Field',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
+ hidden: false,
+ labelPosition: 'top',
+ properties: {},
+ lockKey: true,
+ },
+ ],
+ tree: true,
+ input: true,
+ hidden: false,
+ hideLabel: false,
+ addAnotherPosition: 'bottom',
+ properties: {},
+ lockKey: true,
+ },
+ {
+ input: true,
+ tree: true,
+ components: [
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'Edit Grid Field',
+ key: 'editgridfield',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: {
+ show: '',
+ when: null,
+ eq: '',
+ },
+ type: 'textfield',
+ hideLabel: false,
+ labelPosition: 'top',
+ tags: [],
+ properties: {},
+ lockKey: true,
+ },
+ ],
+ multiple: false,
+ tableView: true,
+ label: 'Edit Grid',
+ key: 'editgrid',
+ protected: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ templates: {
+ header: '
\n {%util.eachComponent(components, function(component) { %} \n
\n {{ component.label }} \n
\n {% }) %} \n
',
+ row: '
\n {%util.eachComponent(components, function(component) { %} \n
\n {{ row[component.key] }} \n
\n {% }) %} \n
\n
',
+ footer: '',
+ },
+ type: 'editgrid',
+ tags: [],
+ conditional: {
+ show: 'true',
+ when: 'visible',
+ eq: 'true',
+ },
+ properties: {},
+ lockKey: true,
+ hideLabel: false,
+ },
+ {
+ key: 'panel',
+ input: false,
+ title: 'Panel',
+ theme: 'default',
+ components: [
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'Panel Field',
+ key: 'panelfield',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: {
+ show: '',
+ when: null,
+ eq: '',
+ },
+ type: 'textfield',
+ tags: [],
+ hidden: false,
+ hideLabel: false,
+ labelPosition: 'top',
+ properties: {},
+ lockKey: true,
+ },
+ ],
+ type: 'panel',
+ tags: [],
+ conditional: {
+ show: 'true',
+ when: 'visible',
+ eq: 'true',
+ },
+ clearOnHide: false,
+ tableView: false,
+ hideLabel: false,
+ breadcrumb: 'default',
+ properties: {},
+ lockKey: true,
+ },
+ {
+ input: false,
+ key: 'columns',
+ columns: [
+ {
+ components: [
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'Column Field',
+ key: 'columnfield',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: {
+ show: '',
+ when: null,
+ eq: '',
+ },
+ type: 'textfield',
+ tags: [],
+ hidden: false,
+ hideLabel: false,
+ labelPosition: 'top',
+ properties: {},
+ lockKey: true,
+ },
+ ],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ },
+ {
+ components: [],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ },
+ ],
+ type: 'columns',
+ tags: [],
+ conditional: {
+ show: 'true',
+ when: 'visible',
+ eq: 'true',
+ },
+ customClass: 'Columns',
+ clearOnHide: false,
+ tableView: false,
+ hideLabel: false,
+ properties: {},
+ lockKey: true,
+ },
+ {
+ input: false,
+ key: 'table',
+ numRows: 3,
+ numCols: 3,
+ rows: [
+ [
+ {
+ components: [
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'Table Field',
+ key: 'tablefield',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: {
+ show: '',
+ when: null,
+ eq: '',
+ },
+ type: 'textfield',
+ tags: [],
+ hidden: false,
+ hideLabel: false,
+ labelPosition: 'top',
+ properties: {},
+ lockKey: true,
+ },
+ ],
+ },
+ {
+ components: [],
+ },
+ {
+ components: [],
+ },
+ ],
+ [
+ {
+ components: [],
+ },
+ {
+ components: [],
+ },
+ {
+ components: [],
+ },
+ ],
+ [
+ {
+ components: [],
+ },
+ {
+ components: [],
+ },
+ {
+ components: [],
+ },
+ ],
+ ],
+ header: [],
+ caption: '',
+ striped: false,
+ bordered: false,
+ hover: false,
+ condensed: false,
+ type: 'table',
+ tags: [],
+ conditional: {
+ show: 'true',
+ when: 'visible',
+ eq: 'true',
+ },
+ clearOnHide: false,
+ tableView: false,
+ hideLabel: false,
+ properties: {},
+ lockKey: true,
+ },
+ {
+ clearOnHide: false,
+ key: 'well',
+ input: false,
+ components: [
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'Well Field',
+ key: 'wellfield',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: {
+ show: '',
+ when: null,
+ eq: '',
+ },
+ type: 'textfield',
+ hideLabel: false,
+ labelPosition: 'top',
+ tags: [],
+ properties: {},
+ lockKey: true,
+ },
+ ],
+ tableView: false,
+ type: 'well',
+ hideLabel: false,
+ tags: [],
+ conditional: {
+ show: 'true',
+ when: 'visible',
+ eq: 'true',
+ },
+ properties: {},
+ },
+ {
+ clearOnHide: false,
+ key: 'fieldset',
+ input: false,
+ tableView: false,
+ legend: 'Fieldset',
+ components: [
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'Fieldset Field',
+ key: 'fieldsetfield',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: {
+ show: '',
+ when: null,
+ eq: '',
+ },
+ type: 'textfield',
+ hideLabel: false,
+ labelPosition: 'top',
+ tags: [],
+ properties: {},
+ lockKey: true,
+ },
+ ],
+ type: 'fieldset',
+ hideLabel: false,
+ tags: [],
+ conditional: {
+ show: 'true',
+ when: 'visible',
+ eq: 'true',
+ },
+ properties: {},
+ },
+ ],
+ },
+ tests: {
+ 'Test starting hidden'(form, done) {
+ assert.deepEqual(form.getValue(), hiddenData);
+ done();
},
- type: 'textfield',
- hideLabel: false,
- labelPosition: 'top',
- tags: [],
- properties: {},
- lockKey: true
- }],
- tableView: false,
- type: 'well',
- hideLabel: false,
- tags: [],
- conditional: {
- show: 'true',
- when: 'visible',
- eq: 'true'
- },
- properties: {}
- }, {
- clearOnHide: false,
- key: 'fieldset',
- input: false,
- tableView: false,
- legend: 'Fieldset',
- components: [{
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'Fieldset Field',
- key: 'fieldsetfield',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- hidden: false,
- clearOnHide: true,
- validate: {
- required: false,
- minLength: '',
- maxLength: '',
- pattern: '',
- custom: '',
- customPrivate: false
+ 'Test starting visible'(form, done) {
+ form.pristine = false;
+ form.submission = {
+ data: {
+ visible: true,
+ },
+ };
+ // Need to wait for the changes to propogate.
+ setTimeout(() => {
+ assert.deepEqual(form.getValue(), visibleData);
+ done();
+ }, 300);
},
- conditional: {
- show: '',
- when: null,
- eq: ''
+ 'Test with data'(form, done) {
+ form.submission = _.cloneDeep(existingData);
+ // Go next tick to get the changes applied.
+ setTimeout(() => {
+ assert.deepEqual(form.getValue(), existingData);
+ done();
+ });
},
- type: 'textfield',
- hideLabel: false,
- labelPosition: 'top',
- tags: [],
- properties: {},
- lockKey: true
- }],
- type: 'fieldset',
- hideLabel: false,
- tags: [],
- conditional: {
- show: 'true',
- when: 'visible',
- eq: 'true'
- },
- properties: {}
- }]
- },
- tests: {
- 'Test starting hidden'(form, done) {
- assert.deepEqual(form.getValue(), hiddenData);
- done();
- },
- 'Test starting visible'(form, done) {
- form.pristine = false;
- form.submission = {
- data: {
- visible: true
- }
- };
- // Need to wait for the changes to propogate.
- setTimeout(() => {
- assert.deepEqual(form.getValue(), visibleData);
- done();
- }, 300);
- },
- 'Test with data'(form, done) {
- form.submission = _.cloneDeep(existingData);
- // Go next tick to get the changes applied.
- setTimeout(() => {
- assert.deepEqual(form.getValue(), existingData);
- done();
- });
- },
- 'Test changing visible from hidden to visible'(form, done) {
- form.pristine = false;
- form.submission = {
- data: {
- visible: true
- }
- };
+ 'Test changing visible from hidden to visible'(form, done) {
+ form.pristine = false;
+ form.submission = {
+ data: {
+ visible: true,
+ },
+ };
- setTimeout(() => {
- form.getComponent('visible', component => {
- form.on('change', change => {
- assert.deepEqual(change.data, hiddenData.data);
- done();
- });
- component.setValue(false);
- });
- });
- },
- 'Test changing visible from visible to hidden'(form, done) {
- form.pristine = false;
- form.submission = {
- data: {
- visible: false
- }
- };
- setTimeout(() => {
- form.getComponent('visible', component => {
- form.on('change', change => {
- assert.deepEqual(change.data, visibleData.data);
- done();
- });
- component.setValue(true);
- });
- });
+ setTimeout(() => {
+ form.getComponent('visible', (component) => {
+ form.on('change', (change) => {
+ assert.deepEqual(change.data, hiddenData.data);
+ done();
+ });
+ component.setValue(false);
+ });
+ });
+ },
+ 'Test changing visible from visible to hidden'(form, done) {
+ form.pristine = false;
+ form.submission = {
+ data: {
+ visible: false,
+ },
+ };
+ setTimeout(() => {
+ form.getComponent('visible', (component) => {
+ form.on('change', (change) => {
+ assert.deepEqual(change.data, visibleData.data);
+ done();
+ });
+ component.setValue(true);
+ });
+ });
+ },
+ // 'Test resetting data when hidden'(form, done) {
+ // form.pristine = false;
+ // form.submission = _.cloneDeep(existingData);
+ // setTimeout(() => {
+ // assert.deepEqual(form.getValue(), existingData);
+ // form.getComponent('visible', component => {
+ // let count = 0;
+ // form.on('change', change => {
+ // switch (count) {
+ // case 0:
+ // assert.deepEqual(change.data, hiddenData.data);
+ // break;
+ // case 1:
+ // assert.deepEqual(change.data, visibleData.data);
+ // done();
+ // break;
+ // }
+ // count++;
+ // });
+ // component.setValue(false);
+ // component.setValue(true);
+ // });
+ // });
+ // }
},
- // 'Test resetting data when hidden'(form, done) {
- // form.pristine = false;
- // form.submission = _.cloneDeep(existingData);
- // setTimeout(() => {
- // assert.deepEqual(form.getValue(), existingData);
- // form.getComponent('visible', component => {
- // let count = 0;
- // form.on('change', change => {
- // switch (count) {
- // case 0:
- // assert.deepEqual(change.data, hiddenData.data);
- // break;
- // case 1:
- // assert.deepEqual(change.data, visibleData.data);
- // done();
- // break;
- // }
- // count++;
- // });
- // component.setValue(false);
- // component.setValue(true);
- // });
- // });
- // }
- }
};
-
diff --git a/test/forms/clearOnHideInsideEditGrid.d.ts b/test/forms/clearOnHideInsideEditGrid.d.ts
index c4d9e7f233..d7d67d44a5 100644
--- a/test/forms/clearOnHideInsideEditGrid.d.ts
+++ b/test/forms/clearOnHideInsideEditGrid.d.ts
@@ -1,161 +1,174 @@
declare namespace _default {
const type: string;
- const components: ({
- title: string;
- collapsible: boolean;
- key: string;
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: ({
- legend: string;
- key: string;
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: never[];
- openWhenEmpty?: undefined;
- hideLabel?: undefined;
- templates?: undefined;
- addAnother?: undefined;
- validate?: undefined;
- rowDrafts?: undefined;
- } | {
- label: string;
- openWhenEmpty: boolean;
- hideLabel: boolean;
- tableView: boolean;
- templates: {
- header: string;
- row: string;
- };
- addAnother: string;
- validate: {
- maxLength: number;
- };
- rowDrafts: boolean;
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- components: ({
- label: string;
- columns: ({
+ const components: (
+ | {
+ title: string;
+ collapsible: boolean;
+ key: string;
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: (
+ | {
+ legend: string;
+ key: string;
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: never[];
+ openWhenEmpty?: undefined;
+ hideLabel?: undefined;
+ templates?: undefined;
+ addAnother?: undefined;
+ validate?: undefined;
+ rowDrafts?: undefined;
+ }
+ | {
+ label: string;
+ openWhenEmpty: boolean;
+ hideLabel: boolean;
+ tableView: boolean;
+ templates: {
+ header: string;
+ row: string;
+ };
+ addAnother: string;
+ validate: {
+ maxLength: number;
+ };
+ rowDrafts: boolean;
+ key: string;
+ type: string;
+ input: boolean;
components: {
label: string;
tableView: boolean;
- validate: {
- required: boolean;
- maxLength: number;
- };
key: string;
type: string;
input: boolean;
- hideOnChildrenHidden: boolean;
+ components: (
+ | {
+ label: string;
+ columns: (
+ | {
+ components: {
+ label: string;
+ tableView: boolean;
+ validate: {
+ required: boolean;
+ maxLength: number;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ hideOnChildrenHidden: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ currentWidth: number;
+ }
+ | {
+ components: {
+ label: string;
+ tableView: boolean;
+ validate: {
+ pattern: string;
+ customMessage: string;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ hideOnChildrenHidden: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ currentWidth: number;
+ }
+ )[];
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ clearOnHide: boolean;
+ validate?: undefined;
+ hideOnChildrenHidden?: undefined;
+ }
+ | {
+ label: string;
+ columns: {
+ components: {
+ label: string;
+ optionsLabelPosition: string;
+ inline: boolean;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ hideOnChildrenHidden: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ currentWidth: number;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ clearOnHide: boolean;
+ validate?: undefined;
+ hideOnChildrenHidden?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ validate: {
+ maxLength: number;
+ };
+ key: string;
+ customConditional: string;
+ type: string;
+ input: boolean;
+ hideOnChildrenHidden: boolean;
+ columns?: undefined;
+ clearOnHide?: undefined;
+ }
+ )[];
}[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- currentWidth: number;
- } | {
- components: {
- label: string;
- tableView: boolean;
- validate: {
- pattern: string;
- customMessage: string;
- };
- key: string;
- type: string;
- input: boolean;
- hideOnChildrenHidden: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- currentWidth: number;
- })[];
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- clearOnHide: boolean;
- validate?: undefined;
- hideOnChildrenHidden?: undefined;
- } | {
- label: string;
- columns: {
- components: {
- label: string;
- optionsLabelPosition: string;
- inline: boolean;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- hideOnChildrenHidden: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- currentWidth: number;
- }[];
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- clearOnHide: boolean;
- validate?: undefined;
- hideOnChildrenHidden?: undefined;
- } | {
- label: string;
- tableView: boolean;
- validate: {
- maxLength: number;
- };
- key: string;
- customConditional: string;
- type: string;
- input: boolean;
- hideOnChildrenHidden: boolean;
- columns?: undefined;
- clearOnHide?: undefined;
- })[];
- }[];
- legend?: undefined;
- })[];
- clearOnHide: boolean;
- showValidations?: undefined;
- } | {
- label: string;
- showValidations: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- title?: undefined;
- collapsible?: undefined;
- components?: undefined;
- clearOnHide?: undefined;
- })[];
+ legend?: undefined;
+ }
+ )[];
+ clearOnHide: boolean;
+ showValidations?: undefined;
+ }
+ | {
+ label: string;
+ showValidations: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ title?: undefined;
+ collapsible?: undefined;
+ components?: undefined;
+ clearOnHide?: undefined;
+ }
+ )[];
const revisions: string;
const _vid: number;
const title: string;
diff --git a/test/forms/clearOnHideInsideEditGrid.js b/test/forms/clearOnHideInsideEditGrid.js
index d309bd2f1a..ef38244283 100644
--- a/test/forms/clearOnHideInsideEditGrid.js
+++ b/test/forms/clearOnHideInsideEditGrid.js
@@ -1,201 +1,201 @@
export default {
- type: "form",
- components: [
- {
- title: "SUBSIDIARY/AFFILIATE/OTHER ENTITIES INFORMATION",
- collapsible: false,
- key: "subsidiaryAffiliateOtherEntitiesInformation",
- type: "panel",
- label: "SUBSIDIARY/AFFILIATE/OTHER ENTITIES INFORMATION",
- input: false,
- tableView: false,
- components: [
+ type: 'form',
+ components: [
{
- legend: "Important Information",
- key: "fieldset",
- type: "fieldset",
- label: "",
- input: false,
- tableView: false,
- components: [],
- },
- {
- label: "Subsidiary Edit Grid",
- openWhenEmpty: true,
- hideLabel: true,
- tableView: false,
- templates: {
- header:
- '
\n {% util.eachComponent(components, function(component) { %}\n {% if (!component.hasOwnProperty(\'tableView\') || component.tableView) { %}\n
{{ component.label }}
\n {% } %}\n {% }) %}\n
',
- row: '
\n {% util.eachComponent(components, function(component) { %}\n {% if (!component.hasOwnProperty(\'tableView\') || component.tableView) { %}\n
\n {{ getView(component, row[component.key]) }}\n
\n {% } %}\n {% }) %}\n {% if (!instance.disabled) { %}\n
\n
\n \n {% if (!instance.hasRemoveButtons || instance.hasRemoveButtons()) { %}\n \n {% } %}\n
\n
\n {% } %}\n
',
- },
- addAnother: "Add Another",
- validate: {
- maxLength: 10,
- },
- rowDrafts: false,
- key: "subsidiaryEditGrid",
- type: "editgrid",
- input: true,
- components: [
- {
- label: "Subsidiary Entity Container",
- tableView: false,
- key: "subsidiaryEntityContainer",
- type: "container",
- input: true,
- components: [
+ title: 'SUBSIDIARY/AFFILIATE/OTHER ENTITIES INFORMATION',
+ collapsible: false,
+ key: 'subsidiaryAffiliateOtherEntitiesInformation',
+ type: 'panel',
+ label: 'SUBSIDIARY/AFFILIATE/OTHER ENTITIES INFORMATION',
+ input: false,
+ tableView: false,
+ components: [
{
- label: "Columns",
- columns: [
- {
- components: [
- {
- label:
- "Full Name of Entity as legally registered with the Government",
- tableView: true,
- validate: {
- required: true,
- maxLength: 200,
- },
- key: "entityFullName",
- type: "textfield",
- input: true,
- hideOnChildrenHidden: false,
- },
- ],
- width: 6,
- offset: 0,
- push: 0,
- pull: 0,
- size: "md",
- currentWidth: 6,
- },
- {
- components: [
- {
- label: "Division #",
- tableView: false,
- validate: {
- pattern: "(^\\d{3}$)",
- customMessage:
- "Division Number must be 3 digits long (can use leading zeros).",
- },
- key: "divisionNum",
- type: "textfield",
- input: true,
- hideOnChildrenHidden: false,
- },
- ],
- width: 2,
- offset: 0,
- push: 0,
- pull: 0,
- size: "md",
- currentWidth: 2,
- },
- {
- components: [],
- size: "md",
- width: 4,
- offset: 0,
- push: 0,
- pull: 0,
- currentWidth: 4,
- },
- ],
- key: "columns",
- type: "columns",
- input: false,
- tableView: false,
- clearOnHide: true,
+ legend: 'Important Information',
+ key: 'fieldset',
+ type: 'fieldset',
+ label: '',
+ input: false,
+ tableView: false,
+ components: [],
},
{
- label: "Columns",
- columns: [
- {
- components: [
- {
- label: "Select one of the following:",
- optionsLabelPosition: "right",
- inline: false,
- tableView: false,
- values: [
- {
- label: "Subsidiary",
- value: "subsidiary",
- shortcut: "",
- },
- {
- label: "Affiliate",
- value: "affiliate",
- shortcut: "",
- },
- {
- label: "Other Entity",
- value: "otherEntity",
- shortcut: "",
- },
- ],
- key: "entityType",
- type: "radio",
- input: true,
- hideOnChildrenHidden: false,
- },
- ],
- width: 4,
- offset: 0,
- push: 0,
- pull: 0,
- size: "md",
- currentWidth: 4,
+ label: 'Subsidiary Edit Grid',
+ openWhenEmpty: true,
+ hideLabel: true,
+ tableView: false,
+ templates: {
+ header: '
\n {% util.eachComponent(components, function(component) { %}\n {% if (!component.hasOwnProperty(\'tableView\') || component.tableView) { %}\n
{{ component.label }}
\n {% } %}\n {% }) %}\n
',
+ row: '
\n {% util.eachComponent(components, function(component) { %}\n {% if (!component.hasOwnProperty(\'tableView\') || component.tableView) { %}\n
\n {{ getView(component, row[component.key]) }}\n
\n {% } %}\n {% }) %}\n {% if (!instance.disabled) { %}\n
\n
\n \n {% if (!instance.hasRemoveButtons || instance.hasRemoveButtons()) { %}\n \n {% } %}\n
\n
\n {% } %}\n
',
},
- {
- components: [],
- width: 8,
- offset: 0,
- push: 0,
- pull: 0,
- size: "md",
- currentWidth: 8,
+ addAnother: 'Add Another',
+ validate: {
+ maxLength: 10,
},
- ],
- key: "columns4",
- type: "columns",
- input: false,
- tableView: false,
- clearOnHide: true,
- },
- {
- label: "If 'Other Entity', please explain",
- tableView: false,
- validate: {
- maxLength: 200,
- },
- key: "ifOtherEntityPleaseExplain",
- customConditional: "show = row.entityType === 'otherEntity';",
- type: "textfield",
- input: true,
- hideOnChildrenHidden: false,
+ rowDrafts: false,
+ key: 'subsidiaryEditGrid',
+ type: 'editgrid',
+ input: true,
+ components: [
+ {
+ label: 'Subsidiary Entity Container',
+ tableView: false,
+ key: 'subsidiaryEntityContainer',
+ type: 'container',
+ input: true,
+ components: [
+ {
+ label: 'Columns',
+ columns: [
+ {
+ components: [
+ {
+ label: 'Full Name of Entity as legally registered with the Government',
+ tableView: true,
+ validate: {
+ required: true,
+ maxLength: 200,
+ },
+ key: 'entityFullName',
+ type: 'textfield',
+ input: true,
+ hideOnChildrenHidden: false,
+ },
+ ],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ currentWidth: 6,
+ },
+ {
+ components: [
+ {
+ label: 'Division #',
+ tableView: false,
+ validate: {
+ pattern: '(^\\d{3}$)',
+ customMessage:
+ 'Division Number must be 3 digits long (can use leading zeros).',
+ },
+ key: 'divisionNum',
+ type: 'textfield',
+ input: true,
+ hideOnChildrenHidden: false,
+ },
+ ],
+ width: 2,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ currentWidth: 2,
+ },
+ {
+ components: [],
+ size: 'md',
+ width: 4,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ currentWidth: 4,
+ },
+ ],
+ key: 'columns',
+ type: 'columns',
+ input: false,
+ tableView: false,
+ clearOnHide: true,
+ },
+ {
+ label: 'Columns',
+ columns: [
+ {
+ components: [
+ {
+ label: 'Select one of the following:',
+ optionsLabelPosition:
+ 'right',
+ inline: false,
+ tableView: false,
+ values: [
+ {
+ label: 'Subsidiary',
+ value: 'subsidiary',
+ shortcut: '',
+ },
+ {
+ label: 'Affiliate',
+ value: 'affiliate',
+ shortcut: '',
+ },
+ {
+ label: 'Other Entity',
+ value: 'otherEntity',
+ shortcut: '',
+ },
+ ],
+ key: 'entityType',
+ type: 'radio',
+ input: true,
+ hideOnChildrenHidden: false,
+ },
+ ],
+ width: 4,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ currentWidth: 4,
+ },
+ {
+ components: [],
+ width: 8,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ currentWidth: 8,
+ },
+ ],
+ key: 'columns4',
+ type: 'columns',
+ input: false,
+ tableView: false,
+ clearOnHide: true,
+ },
+ {
+ label: "If 'Other Entity', please explain",
+ tableView: false,
+ validate: {
+ maxLength: 200,
+ },
+ key: 'ifOtherEntityPleaseExplain',
+ customConditional:
+ "show = row.entityType === 'otherEntity';",
+ type: 'textfield',
+ input: true,
+ hideOnChildrenHidden: false,
+ },
+ ],
+ },
+ ],
},
- ],
- },
- ],
+ ],
+ clearOnHide: true,
+ },
+ {
+ label: 'Submit',
+ showValidations: false,
+ tableView: false,
+ key: 'submit',
+ type: 'button',
+ input: true,
},
- ],
- clearOnHide: true,
- },
- {
- label: "Submit",
- showValidations: false,
- tableView: false,
- key: "submit",
- type: "button",
- input: true,
- },
- ],
- revisions: "",
- _vid: 0,
- title: "FIO-3326",
- display: "form",
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'FIO-3326',
+ display: 'form',
};
diff --git a/test/forms/columnWithConditionalComponents.d.ts b/test/forms/columnWithConditionalComponents.d.ts
index ee6fd0e98a..ae917cca3b 100644
--- a/test/forms/columnWithConditionalComponents.d.ts
+++ b/test/forms/columnWithConditionalComponents.d.ts
@@ -1,81 +1,88 @@
declare namespace _default {
const type: string;
- const components: ({
- label: string;
- optionsLabelPosition: string;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- inputType: string;
- columns?: undefined;
- autoAdjust?: undefined;
- disableOnInvalid?: undefined;
- } | {
- label: string;
- columns: ({
- components: {
- label: string;
- tableView: boolean;
- key: string;
- customConditional: string;
- type: string;
- input: boolean;
- hideOnChildrenHidden: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- currentWidth: number;
- element: {};
- } | {
- components: {
- label: string;
- hidden: boolean;
- tableView: boolean;
- key: string;
- customConditional: string;
- type: string;
- input: boolean;
- hideOnChildrenHidden: boolean;
- }[];
- size: string;
- width: number;
- offset: number;
- push: number;
- pull: number;
- currentWidth: number;
- element: {};
- })[];
- autoAdjust: boolean;
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- optionsLabelPosition?: undefined;
- values?: undefined;
- inputType?: undefined;
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- optionsLabelPosition?: undefined;
- values?: undefined;
- inputType?: undefined;
- columns?: undefined;
- autoAdjust?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ optionsLabelPosition: string;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ inputType: string;
+ columns?: undefined;
+ autoAdjust?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ label: string;
+ columns: (
+ | {
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ customConditional: string;
+ type: string;
+ input: boolean;
+ hideOnChildrenHidden: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ currentWidth: number;
+ element: {};
+ }
+ | {
+ components: {
+ label: string;
+ hidden: boolean;
+ tableView: boolean;
+ key: string;
+ customConditional: string;
+ type: string;
+ input: boolean;
+ hideOnChildrenHidden: boolean;
+ }[];
+ size: string;
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ currentWidth: number;
+ element: {};
+ }
+ )[];
+ autoAdjust: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ inputType?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ inputType?: undefined;
+ columns?: undefined;
+ autoAdjust?: undefined;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/columnWithConditionalComponents.js b/test/forms/columnWithConditionalComponents.js
index 89745d7704..44334619bb 100644
--- a/test/forms/columnWithConditionalComponents.js
+++ b/test/forms/columnWithConditionalComponents.js
@@ -1,196 +1,196 @@
export default {
- type: 'form',
- components: [
- {
- label: 'Select Boxes',
- optionsLabelPosition: 'right',
- tableView: false,
- values: [
- {
- label: '1',
- value: '1',
- shortcut: ''
- },
- {
- label: '2',
- value: '2',
- shortcut: ''
- },
- {
- label: '3',
- value: '3',
- shortcut: ''
- },
- {
- label: '4',
- value: '4',
- shortcut: ''
- },
- {
- label: '5',
- value: '5',
- shortcut: ''
- },
- {
- label: '6',
- value: '6',
- shortcut: ''
- }
- ],
- key: 'selectBoxes',
- type: 'selectboxes',
- input: true,
- inputType: 'checkbox'
- },
- {
- label: 'Columns',
- columns: [
- {
- components: [
- {
- label: 'Text Field1',
- tableView: true,
- key: 'textField',
- customConditional:
- 'let list=[data.selectBoxes];\r\n\r\nlet returnValue=false;\r\nlist.map((e)=>{\r\n \r\n if(e[1]===true){\r\n returnValue=true;\r\n \r\n}\r\n \r\n});\r\n\r\nshow=returnValue;',
- type: 'textfield',
- input: true,
- hideOnChildrenHidden: false
- }
- ],
- width: 2,
- offset: 0,
- push: 0,
- pull: 0,
- size: 'md',
- currentWidth: 2,
- element: {}
- },
- {
- components: [
- {
- label: 'Text Field2',
- tableView: true,
- key: 'textField1',
- customConditional:
- 'let list=[data.selectBoxes];\r\n\r\nlet returnValue=false;\r\nlist.map((e)=>{\r\n \r\n if(e[2]===true){\r\n returnValue=true;\r\n \r\n}\r\n \r\n});\r\n\r\nshow=returnValue;',
- type: 'textfield',
- input: true,
- hideOnChildrenHidden: false
- }
- ],
- width: 2,
- offset: 0,
- push: 0,
- pull: 0,
- size: 'md',
- currentWidth: 2,
- element: {}
- },
- {
- components: [
- {
- label: 'Text Field3',
- hidden: true,
- tableView: true,
- key: 'textField2',
- customConditional:
- 'let list=[data.selectBoxes];\r\n\r\nlet returnValue=false;\r\nlist.map((e)=>{\r\n \r\n if(e[3]===true){\r\n returnValue=true;\r\n \r\n}\r\n \r\n});\r\n\r\nshow=returnValue;',
- type: 'textfield',
- input: true,
- hideOnChildrenHidden: false
- }
- ],
- size: 'md',
- width: 2,
- offset: 0,
- push: 0,
- pull: 0,
- currentWidth: 2,
- element: {}
- },
- {
- components: [
- {
- label: 'Text Field4',
- tableView: true,
- key: 'textField3',
- customConditional:
- 'let list=[data.selectBoxes];\r\n\r\nlet returnValue=false;\r\nlist.map((e)=>{\r\n \r\n if(e[4]===true){\r\n returnValue=true;\r\n \r\n}\r\n \r\n});\r\n\r\nshow=returnValue;',
- type: 'textfield',
- input: true,
- hideOnChildrenHidden: false
- }
- ],
- size: 'md',
- width: 2,
- offset: 0,
- push: 0,
- pull: 0,
- currentWidth: 2,
- element: {}
- },
- {
- components: [
- {
- label: 'Text Field5',
- tableView: true,
- key: 'textField4',
- customConditional:
- 'let list=[data.selectBoxes];\r\n\r\nlet returnValue=false;\r\nlist.map((e)=>{\r\n \r\n if(e[5]===true){\r\n returnValue=true;\r\n \r\n}\r\n \r\n});\r\n\r\nshow=returnValue;',
- type: 'textfield',
- input: true,
- hideOnChildrenHidden: false
- }
- ],
- size: 'md',
- width: 2,
- offset: 0,
- push: 0,
- pull: 0,
- currentWidth: 2,
- element: {}
- },
- {
- components: [
- {
- label: 'Text Field6',
- tableView: true,
- key: 'textField5',
- customConditional:
- 'let list=[data.selectBoxes];\r\n\r\nlet returnValue=false;\r\nlist.map((e)=>{\r\n \r\n if(e[6]===true){\r\n returnValue=true;\r\n \r\n}\r\n \r\n});\r\n\r\nshow=returnValue;',
- type: 'textfield',
- input: true,
- hideOnChildrenHidden: false
- }
- ],
- size: 'md',
- offset: 0,
- push: 0,
- pull: 0,
- width: 2,
- currentWidth: 2,
- element: {}
- }
- ],
- autoAdjust: true,
- key: 'columns',
- type: 'columns',
- input: false,
- tableView: false
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false
- }
- ],
- title: 'test column form',
- display: 'form',
- name: 'testColumnForm',
- path: 'testcolumnform',
- machineName: 'cjksbatcpbhyfbs:testColumnForm',
+ type: 'form',
+ components: [
+ {
+ label: 'Select Boxes',
+ optionsLabelPosition: 'right',
+ tableView: false,
+ values: [
+ {
+ label: '1',
+ value: '1',
+ shortcut: '',
+ },
+ {
+ label: '2',
+ value: '2',
+ shortcut: '',
+ },
+ {
+ label: '3',
+ value: '3',
+ shortcut: '',
+ },
+ {
+ label: '4',
+ value: '4',
+ shortcut: '',
+ },
+ {
+ label: '5',
+ value: '5',
+ shortcut: '',
+ },
+ {
+ label: '6',
+ value: '6',
+ shortcut: '',
+ },
+ ],
+ key: 'selectBoxes',
+ type: 'selectboxes',
+ input: true,
+ inputType: 'checkbox',
+ },
+ {
+ label: 'Columns',
+ columns: [
+ {
+ components: [
+ {
+ label: 'Text Field1',
+ tableView: true,
+ key: 'textField',
+ customConditional:
+ 'let list=[data.selectBoxes];\r\n\r\nlet returnValue=false;\r\nlist.map((e)=>{\r\n \r\n if(e[1]===true){\r\n returnValue=true;\r\n \r\n}\r\n \r\n});\r\n\r\nshow=returnValue;',
+ type: 'textfield',
+ input: true,
+ hideOnChildrenHidden: false,
+ },
+ ],
+ width: 2,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ currentWidth: 2,
+ element: {},
+ },
+ {
+ components: [
+ {
+ label: 'Text Field2',
+ tableView: true,
+ key: 'textField1',
+ customConditional:
+ 'let list=[data.selectBoxes];\r\n\r\nlet returnValue=false;\r\nlist.map((e)=>{\r\n \r\n if(e[2]===true){\r\n returnValue=true;\r\n \r\n}\r\n \r\n});\r\n\r\nshow=returnValue;',
+ type: 'textfield',
+ input: true,
+ hideOnChildrenHidden: false,
+ },
+ ],
+ width: 2,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ currentWidth: 2,
+ element: {},
+ },
+ {
+ components: [
+ {
+ label: 'Text Field3',
+ hidden: true,
+ tableView: true,
+ key: 'textField2',
+ customConditional:
+ 'let list=[data.selectBoxes];\r\n\r\nlet returnValue=false;\r\nlist.map((e)=>{\r\n \r\n if(e[3]===true){\r\n returnValue=true;\r\n \r\n}\r\n \r\n});\r\n\r\nshow=returnValue;',
+ type: 'textfield',
+ input: true,
+ hideOnChildrenHidden: false,
+ },
+ ],
+ size: 'md',
+ width: 2,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ currentWidth: 2,
+ element: {},
+ },
+ {
+ components: [
+ {
+ label: 'Text Field4',
+ tableView: true,
+ key: 'textField3',
+ customConditional:
+ 'let list=[data.selectBoxes];\r\n\r\nlet returnValue=false;\r\nlist.map((e)=>{\r\n \r\n if(e[4]===true){\r\n returnValue=true;\r\n \r\n}\r\n \r\n});\r\n\r\nshow=returnValue;',
+ type: 'textfield',
+ input: true,
+ hideOnChildrenHidden: false,
+ },
+ ],
+ size: 'md',
+ width: 2,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ currentWidth: 2,
+ element: {},
+ },
+ {
+ components: [
+ {
+ label: 'Text Field5',
+ tableView: true,
+ key: 'textField4',
+ customConditional:
+ 'let list=[data.selectBoxes];\r\n\r\nlet returnValue=false;\r\nlist.map((e)=>{\r\n \r\n if(e[5]===true){\r\n returnValue=true;\r\n \r\n}\r\n \r\n});\r\n\r\nshow=returnValue;',
+ type: 'textfield',
+ input: true,
+ hideOnChildrenHidden: false,
+ },
+ ],
+ size: 'md',
+ width: 2,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ currentWidth: 2,
+ element: {},
+ },
+ {
+ components: [
+ {
+ label: 'Text Field6',
+ tableView: true,
+ key: 'textField5',
+ customConditional:
+ 'let list=[data.selectBoxes];\r\n\r\nlet returnValue=false;\r\nlist.map((e)=>{\r\n \r\n if(e[6]===true){\r\n returnValue=true;\r\n \r\n}\r\n \r\n});\r\n\r\nshow=returnValue;',
+ type: 'textfield',
+ input: true,
+ hideOnChildrenHidden: false,
+ },
+ ],
+ size: 'md',
+ offset: 0,
+ push: 0,
+ pull: 0,
+ width: 2,
+ currentWidth: 2,
+ element: {},
+ },
+ ],
+ autoAdjust: true,
+ key: 'columns',
+ type: 'columns',
+ input: false,
+ tableView: false,
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ title: 'test column form',
+ display: 'form',
+ name: 'testColumnForm',
+ path: 'testcolumnform',
+ machineName: 'cjksbatcpbhyfbs:testColumnForm',
};
diff --git a/test/forms/componentsBasicSettingsTests.js b/test/forms/componentsBasicSettingsTests.js
index bfcd1023ce..01a0b83012 100644
--- a/test/forms/componentsBasicSettingsTests.js
+++ b/test/forms/componentsBasicSettingsTests.js
@@ -1,81 +1,97 @@
import _ from 'lodash';
import testHelpers from './helpers/testBasicComponentSettings';
-const {
- settings,
- form,
- tests
-} = testHelpers;
+const { settings, form, tests } = testHelpers;
const testedProperties = Object.keys(settings);
const baseHelpingComponent = {
- 'label': 'basis',
- 'tableView': true,
- 'defaultValue': 'base value',
- 'key': 'basis',
- 'type': 'textfield',
- 'input': true
+ label: 'basis',
+ tableView: true,
+ defaultValue: 'base value',
+ key: 'basis',
+ type: 'textfield',
+ input: true,
};
const helpingActionBtn = {
- 'label': 'Hide btn',
- 'action': 'event',
- 'showValidations': false,
- 'tableView': false,
- 'key': 'hideBtn',
- 'type': 'button',
- 'input': true,
- 'event': 'hide'
+ label: 'Hide btn',
+ action: 'event',
+ showValidations: false,
+ tableView: false,
+ key: 'hideBtn',
+ type: 'button',
+ input: true,
+ event: 'hide',
};
export default _.map(testedProperties, (property) => {
- const title = `Test basic component settings: ${property}`;
- const testedForm = _.cloneDeep(form);
+ const title = `Test basic component settings: ${property}`;
+ const testedForm = _.cloneDeep(form);
- testedForm.components = testedForm.components
- .filter(comp => {
- if (Object.prototype.hasOwnProperty.call(_.get(settings, property), comp.key)) {
- return true;
- }
- })
- .map(comp => {
- if (property === 'placeholder' && comp.type === 'day') {
- _.each(comp.fields, (fieldValue, fieldName) => {
- fieldValue[property] = _.get(settings, property)[comp.key][fieldName] || '';
+ testedForm.components = testedForm.components
+ .filter((comp) => {
+ if (
+ Object.prototype.hasOwnProperty.call(
+ _.get(settings, property),
+ comp.key,
+ )
+ ) {
+ return true;
+ }
+ })
+ .map((comp) => {
+ if (property === 'placeholder' && comp.type === 'day') {
+ _.each(comp.fields, (fieldValue, fieldName) => {
+ fieldValue[property] =
+ _.get(settings, property)[comp.key][fieldName] || '';
+ });
+ } else {
+ //if we have expected value in property settings
+ if (
+ ['customDefaultValue', 'calculateValue'].includes(property)
+ ) {
+ _.set(
+ comp,
+ property,
+ _.get(settings, property)[comp.key].js,
+ );
+ } else {
+ _.set(comp, property, _.get(settings, property)[comp.key]);
+ }
+ }
+ if (['redrawOn'].includes(property)) {
+ comp.label = `${comp.label} {{data.${
+ _.get(settings, property)[comp.key]
+ }}}`;
+ }
+ return comp;
});
- }
- else {
- //if we have expected value in property settings
- if (['customDefaultValue', 'calculateValue'].includes(property)) {
- _.set(comp, property, _.get(settings, property)[comp.key].js);
- }
- else {
- _.set(comp, property, _.get(settings, property)[comp.key]);
- }
- }
- if (['redrawOn'].includes(property)) {
- comp.label = `${comp.label} {{data.${ _.get(settings, property)[comp.key]}}}`;
- }
- return comp;
- });
- if (['customDefaultValue', 'calculateValue', 'conditional', 'customConditional', 'logic'].includes(property)) {
- testedForm.components.unshift(baseHelpingComponent);
+ if (
+ [
+ 'customDefaultValue',
+ 'calculateValue',
+ 'conditional',
+ 'customConditional',
+ 'logic',
+ ].includes(property)
+ ) {
+ testedForm.components.unshift(baseHelpingComponent);
- if (['logic'].includes(property)) {
- testedForm.components.push(helpingActionBtn);
+ if (['logic'].includes(property)) {
+ testedForm.components.push(helpingActionBtn);
+ }
}
- }
- const propertyTests = _.get(tests, property, {});
+ const propertyTests = _.get(tests, property, {});
- return {
- title: title,
- form: testedForm,
- tests: propertyTests || {},
- useDone: true,
- formOptions: {
- language: 'en'
- }
- };
+ return {
+ title: title,
+ form: testedForm,
+ tests: propertyTests || {},
+ useDone: true,
+ formOptions: {
+ language: 'en',
+ },
+ };
});
diff --git a/test/forms/conditionalDataGridWithTableAndRadio.d.ts b/test/forms/conditionalDataGridWithTableAndRadio.d.ts
index 6fc940d73c..a31cd6be42 100644
--- a/test/forms/conditionalDataGridWithTableAndRadio.d.ts
+++ b/test/forms/conditionalDataGridWithTableAndRadio.d.ts
@@ -1,148 +1,154 @@
declare namespace _default {
const type: string;
- const components: ({
- label: string;
- reorder: boolean;
- addAnother: string;
- addAnotherPosition: string;
- defaultOpen: boolean;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- hideLabel: boolean;
- tableView: boolean;
- defaultValue: {
- compartment: string;
- of: string;
- weldComponentLocation: string;
- examinationDateInitial: string;
- initialExam: string;
- }[];
- key: string;
- customConditional: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- hideLabel: boolean;
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- components: ({
- label: string;
- numRows: number;
- cellAlignment: string;
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- rows: {
- components: {
- label: string;
- optionsLabelPosition: string;
- inline: boolean;
- tableView: boolean;
- values: {
+ const components: (
+ | {
+ label: string;
+ reorder: boolean;
+ addAnother: string;
+ addAnotherPosition: string;
+ defaultOpen: boolean;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ hideLabel: boolean;
+ tableView: boolean;
+ defaultValue: {
+ compartment: string;
+ of: string;
+ weldComponentLocation: string;
+ examinationDateInitial: string;
+ initialExam: string;
+ }[];
+ key: string;
+ customConditional: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ hideLabel: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ components: (
+ | {
label: string;
- value: string;
- shortcut: string;
- }[];
- validate: {
- required: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- }[];
- }[][];
- reorder?: undefined;
- addAnother?: undefined;
- addAnotherPosition?: undefined;
- defaultOpen?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- hideLabel?: undefined;
- defaultValue?: undefined;
- conditional?: undefined;
- components?: undefined;
- } | {
- label: string;
- reorder: boolean;
- addAnother: string;
- addAnotherPosition: string;
- defaultOpen: boolean;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- hideLabel: boolean;
- tableView: boolean;
- defaultValue: {
- weldComponentLocationRepair: string;
- examinationDateRepair: string;
- repairExam: string;
- }[];
- key: string;
- conditional: {
- show: boolean;
- when: string;
- eq: string;
- };
- type: string;
- input: boolean;
- components: {
- label: string;
- numRows: number;
- cellAlignment: string;
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- rows: {
- components: {
+ numRows: number;
+ cellAlignment: string;
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ rows: {
+ components: {
+ label: string;
+ optionsLabelPosition: string;
+ inline: boolean;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ }[][];
+ reorder?: undefined;
+ addAnother?: undefined;
+ addAnotherPosition?: undefined;
+ defaultOpen?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ hideLabel?: undefined;
+ defaultValue?: undefined;
+ conditional?: undefined;
+ components?: undefined;
+ }
+ | {
label: string;
- optionsLabelPosition: string;
- inline: boolean;
+ reorder: boolean;
+ addAnother: string;
+ addAnotherPosition: string;
+ defaultOpen: boolean;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ hideLabel: boolean;
tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
+ defaultValue: {
+ weldComponentLocationRepair: string;
+ examinationDateRepair: string;
+ repairExam: string;
}[];
- validate: {
- required: boolean;
- };
key: string;
+ conditional: {
+ show: boolean;
+ when: string;
+ eq: string;
+ };
type: string;
input: boolean;
- }[];
- }[][];
- }[];
- numRows?: undefined;
- cellAlignment?: undefined;
- rows?: undefined;
- })[];
- }[];
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- reorder?: undefined;
- addAnother?: undefined;
- addAnotherPosition?: undefined;
- defaultOpen?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- hideLabel?: undefined;
- defaultValue?: undefined;
- components?: undefined;
- })[];
+ components: {
+ label: string;
+ numRows: number;
+ cellAlignment: string;
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ rows: {
+ components: {
+ label: string;
+ optionsLabelPosition: string;
+ inline: boolean;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ }[][];
+ }[];
+ numRows?: undefined;
+ cellAlignment?: undefined;
+ rows?: undefined;
+ }
+ )[];
+ }[];
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ reorder?: undefined;
+ addAnother?: undefined;
+ addAnotherPosition?: undefined;
+ defaultOpen?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ hideLabel?: undefined;
+ defaultValue?: undefined;
+ components?: undefined;
+ }
+ )[];
const title: string;
const display: string;
}
diff --git a/test/forms/conditionalDataGridWithTableAndRadio.js b/test/forms/conditionalDataGridWithTableAndRadio.js
index e85e4db884..22a8d1b144 100644
--- a/test/forms/conditionalDataGridWithTableAndRadio.js
+++ b/test/forms/conditionalDataGridWithTableAndRadio.js
@@ -1,182 +1,175 @@
export default {
- type: 'form',
- components: [
- {
- label: 'Inspection Data Grid',
- reorder: false,
- addAnother: 'Add Another Initial Inspection',
- addAnotherPosition: 'bottom',
- defaultOpen: false,
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- hideLabel: true,
- tableView: false,
- defaultValue: [
+ type: 'form',
+ components: [
{
- compartment: '',
- of: '',
- weldComponentLocation: '',
- examinationDateInitial: '',
- initialExam: ''
- }
- ],
- key: 'inspectionDataGrid',
- type: 'datagrid',
- input: true,
- components: [
- {
- label: 'Inspection Well',
- hideLabel: true,
- key: 'inspectionWell',
- type: 'well',
- input: false,
- tableView: false,
- components: [
- {
- label: 'Table',
- numRows: 1,
- cellAlignment: 'left',
- key: 'table',
- type: 'table',
- input: false,
- tableView: false,
- rows: [
- [
- {
- components: [
-
- ]
- },
- {
- components: [
-
- ]
- },
- {
- components: [
- {
- label: 'Initial Exam',
- optionsLabelPosition: 'right',
- inline: true,
- tableView: false,
- values: [
- {
- label: 'Accept',
- value: 'accept',
- shortcut: ''
- },
- {
- label: 'Reject',
- value: 'reject',
- shortcut: ''
- }
- ],
- validate: {
- required: true
- },
- key: 'initialExam',
- type: 'radio',
- input: true
- }
- ]
- }
- ]
- ]
- },
- {
- label: 'Repair Data Grid',
- reorder: false,
- addAnother: 'Add Another Repaired Inspection',
- addAnotherPosition: 'bottom',
- defaultOpen: false,
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- hideLabel: true,
- tableView: false,
- defaultValue: [
+ label: 'Inspection Data Grid',
+ reorder: false,
+ addAnother: 'Add Another Initial Inspection',
+ addAnotherPosition: 'bottom',
+ defaultOpen: false,
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ hideLabel: true,
+ tableView: false,
+ defaultValue: [
{
- weldComponentLocationRepair: '',
- examinationDateRepair: '',
- repairExam: ''
- }
- ],
- key: 'repairDataGrid',
- conditional: {
- show: true,
- when: 'inspectionDataGrid.initialExam',
- eq: 'reject'
- },
- type: 'datagrid',
- input: true,
- components: [
+ compartment: '',
+ of: '',
+ weldComponentLocation: '',
+ examinationDateInitial: '',
+ initialExam: '',
+ },
+ ],
+ key: 'inspectionDataGrid',
+ type: 'datagrid',
+ input: true,
+ components: [
{
- label: 'Table',
- numRows: 1,
- cellAlignment: 'left',
- key: 'table',
- type: 'table',
- input: false,
- tableView: false,
- rows: [
- [
- {
- components: [
-
- ]
- },
- {
- components: [
-
- ]
- },
- {
- components: [
- {
- label: 'Repair Exam',
- optionsLabelPosition: 'right',
- inline: true,
+ label: 'Inspection Well',
+ hideLabel: true,
+ key: 'inspectionWell',
+ type: 'well',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Table',
+ numRows: 1,
+ cellAlignment: 'left',
+ key: 'table',
+ type: 'table',
+ input: false,
tableView: false,
- values: [
- {
- label: 'Accept',
- value: 'accept',
- shortcut: ''
- },
- {
- label: 'Reject',
- value: 'reject',
- shortcut: ''
- }
+ rows: [
+ [
+ {
+ components: [],
+ },
+ {
+ components: [],
+ },
+ {
+ components: [
+ {
+ label: 'Initial Exam',
+ optionsLabelPosition: 'right',
+ inline: true,
+ tableView: false,
+ values: [
+ {
+ label: 'Accept',
+ value: 'accept',
+ shortcut: '',
+ },
+ {
+ label: 'Reject',
+ value: 'reject',
+ shortcut: '',
+ },
+ ],
+ validate: {
+ required: true,
+ },
+ key: 'initialExam',
+ type: 'radio',
+ input: true,
+ },
+ ],
+ },
+ ],
],
- validate: {
- required: true
+ },
+ {
+ label: 'Repair Data Grid',
+ reorder: false,
+ addAnother: 'Add Another Repaired Inspection',
+ addAnotherPosition: 'bottom',
+ defaultOpen: false,
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ hideLabel: true,
+ tableView: false,
+ defaultValue: [
+ {
+ weldComponentLocationRepair: '',
+ examinationDateRepair: '',
+ repairExam: '',
+ },
+ ],
+ key: 'repairDataGrid',
+ conditional: {
+ show: true,
+ when: 'inspectionDataGrid.initialExam',
+ eq: 'reject',
},
- key: 'repairExam',
- type: 'radio',
- input: true
- }
- ]
- }
- ]
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false
- }
- ],
- title: 'FIO-3090',
- display: 'form',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Table',
+ numRows: 1,
+ cellAlignment: 'left',
+ key: 'table',
+ type: 'table',
+ input: false,
+ tableView: false,
+ rows: [
+ [
+ {
+ components: [],
+ },
+ {
+ components: [],
+ },
+ {
+ components: [
+ {
+ label: 'Repair Exam',
+ optionsLabelPosition:
+ 'right',
+ inline: true,
+ tableView: false,
+ values: [
+ {
+ label: 'Accept',
+ value: 'accept',
+ shortcut: '',
+ },
+ {
+ label: 'Reject',
+ value: 'reject',
+ shortcut: '',
+ },
+ ],
+ validate: {
+ required: true,
+ },
+ key: 'repairExam',
+ type: 'radio',
+ input: true,
+ },
+ ],
+ },
+ ],
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ title: 'FIO-3090',
+ display: 'form',
};
diff --git a/test/forms/conditionalWizardPages.d.ts b/test/forms/conditionalWizardPages.d.ts
index 90efd45615..144fe34e39 100644
--- a/test/forms/conditionalWizardPages.d.ts
+++ b/test/forms/conditionalWizardPages.d.ts
@@ -1,91 +1,100 @@
declare namespace _default {
const type: string;
- const components: ({
- title: string;
- label: string;
- type: string;
- key: string;
- components: ({
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- components?: undefined;
- } | {
- label: string;
- tableView: boolean;
- components: {
- type: string;
- components: ({
- label: string;
- autoExpand: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- autoExpand?: undefined;
- })[];
- title: string;
- display: string;
- name: string;
- path: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- })[];
- input: boolean;
- tableView: boolean;
- breadcrumbClickable?: undefined;
- buttonSettings?: undefined;
- collapsible?: undefined;
- conditional?: undefined;
- } | {
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- collapsible: boolean;
- key: string;
- conditional: {
- show: boolean;
- when: string;
- eq: string;
- };
- type: string;
- label: string;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- })[];
+ const components: (
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: (
+ | {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ components?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ components: {
+ type: string;
+ components: (
+ | {
+ label: string;
+ autoExpand: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ autoExpand?: undefined;
+ }
+ )[];
+ title: string;
+ display: string;
+ name: string;
+ path: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ }
+ )[];
+ input: boolean;
+ tableView: boolean;
+ breadcrumbClickable?: undefined;
+ buttonSettings?: undefined;
+ collapsible?: undefined;
+ conditional?: undefined;
+ }
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ collapsible: boolean;
+ key: string;
+ conditional: {
+ show: boolean;
+ when: string;
+ eq: string;
+ };
+ type: string;
+ label: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/conditionalWizardPages.js b/test/forms/conditionalWizardPages.js
index 93c852c809..2ae5c2a31d 100644
--- a/test/forms/conditionalWizardPages.js
+++ b/test/forms/conditionalWizardPages.js
@@ -1,81 +1,94 @@
export default {
- 'type': 'form',
- 'components': [{
- 'title': 'Page 1',
- 'label': 'Page 1',
- 'type': 'panel',
- 'key': 'page1',
- 'components': [{
- 'label': 'Number',
- 'mask': false,
- 'spellcheck': true,
- 'tableView': false,
- 'delimiter': false,
- 'requireDecimal': false,
- 'inputFormat': 'plain',
- 'key': 'number',
- 'type': 'number',
- 'input': true
- }, {
- 'label': 'Form',
- 'tableView': true,
- 'components': [{
- 'type': 'form',
- 'components': [{
- 'label': 'Text Area',
- 'autoExpand': false,
- 'tableView': true,
- 'key': 'textArea',
- 'type': 'textarea',
- 'input': true
- }, {
- 'type': 'button',
- 'label': 'Submit',
- 'key': 'submit',
- 'disableOnInvalid': true,
- 'input': true,
- 'tableView': false
- }],
- 'title': 'nested for wizard test',
- 'display': 'form',
- 'name': 'nestedForWizardTest',
- 'path': 'nestedforwizardtest'
- }],
- 'key': 'form',
- 'type': 'form',
- 'input': true
- }],
- 'input': false,
- 'tableView': false
- }, {
- 'title': 'Page 2',
- 'breadcrumbClickable': true,
- 'buttonSettings': {
- 'previous': true,
- 'cancel': true,
- 'next': true
- },
- 'collapsible': false,
- 'key': 'page2',
- 'conditional': {
- 'show': true,
- 'when': 'number',
- 'eq': '5'
- },
- 'type': 'panel',
- 'label': 'Page 2',
- 'components': [{
- 'label': 'Text Field',
- 'tableView': true,
- 'key': 'textField',
- 'type': 'textfield',
- 'input': true
- }],
- 'input': false,
- 'tableView': false
- }],
- 'title': 'test wizard conditional',
- 'display': 'wizard',
- 'name': 'testWizardConditional',
- 'path': 'testwizardconditional'
+ type: 'form',
+ components: [
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Number',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ {
+ label: 'Form',
+ tableView: true,
+ components: [
+ {
+ type: 'form',
+ components: [
+ {
+ label: 'Text Area',
+ autoExpand: false,
+ tableView: true,
+ key: 'textArea',
+ type: 'textarea',
+ input: true,
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ title: 'nested for wizard test',
+ display: 'form',
+ name: 'nestedForWizardTest',
+ path: 'nestedforwizardtest',
+ },
+ ],
+ key: 'form',
+ type: 'form',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ {
+ title: 'Page 2',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ collapsible: false,
+ key: 'page2',
+ conditional: {
+ show: true,
+ when: 'number',
+ eq: '5',
+ },
+ type: 'panel',
+ label: 'Page 2',
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ title: 'test wizard conditional',
+ display: 'wizard',
+ name: 'testWizardConditional',
+ path: 'testwizardconditional',
};
diff --git a/test/forms/conditionallyVisiblePage.d.ts b/test/forms/conditionallyVisiblePage.d.ts
index 098b2bf3bc..73ff4d30ea 100644
--- a/test/forms/conditionallyVisiblePage.d.ts
+++ b/test/forms/conditionallyVisiblePage.d.ts
@@ -1,249 +1,262 @@
declare namespace _default {
const type: string;
- const components: ({
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- scrollToTop: boolean;
- collapsible: boolean;
- key: string;
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: ({
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- scrollToTop: boolean;
- collapsible: boolean;
- key: string;
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: {
- label: string;
- tableView: boolean;
- validate: {
- required: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- }[];
- rowDrafts?: undefined;
- } | {
- label: string;
- tableView: boolean;
- rowDrafts: boolean;
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- data: {
- values: {
+ const components: (
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ scrollToTop: boolean;
+ collapsible: boolean;
+ key: string;
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: (
+ | {
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ scrollToTop: boolean;
+ collapsible: boolean;
+ key: string;
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ rowDrafts?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ rowDrafts: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ data: {
+ values: {
+ label: string;
+ value: string;
+ }[];
+ };
+ selectThreshold: number;
+ validate: {
+ onlyAvailableItems: boolean;
+ };
+ key: string;
+ type: string;
+ indexeddb: {
+ filter: {};
+ };
+ input: boolean;
+ }[];
+ breadcrumbClickable?: undefined;
+ buttonSettings?: undefined;
+ scrollToTop?: undefined;
+ collapsible?: undefined;
+ }
+ )[];
+ logic?: undefined;
+ conditional?: undefined;
+ }
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ collapsible: boolean;
+ key: string;
+ logic: {
+ name: string;
+ trigger: {
+ type: string;
+ simple: {
+ show: boolean;
+ when: string;
+ eq: string;
+ };
+ };
+ actions: {
+ name: string;
+ type: string;
+ property: {
+ label: string;
+ value: string;
+ type: string;
+ };
+ state: boolean;
+ }[];
+ }[];
+ type: string;
+ label: string;
+ components: (
+ | {
+ label: string;
+ columns: (
+ | {
+ components: {
+ label: string;
+ tableView: boolean;
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ hideOnChildrenHidden: boolean;
+ defaultValue: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ }
+ | {
+ components: {
+ label: string;
+ displayInTimezone: string;
+ format: string;
+ tableView: boolean;
+ enableMinDateInput: boolean;
+ datePicker: {
+ disableWeekends: boolean;
+ disableWeekdays: boolean;
+ };
+ enableMaxDateInput: boolean;
+ enableTime: boolean;
+ timePicker: {
+ showMeridian: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ widget: {
+ type: string;
+ displayInTimezone: string;
+ locale: string;
+ useLocaleSettings: boolean;
+ allowInput: boolean;
+ mode: string;
+ enableTime: boolean;
+ noCalendar: boolean;
+ format: string;
+ hourIncrement: number;
+ minuteIncrement: number;
+ time_24hr: boolean;
+ minDate: null;
+ disableWeekends: boolean;
+ disableWeekdays: boolean;
+ maxDate: null;
+ };
+ hideOnChildrenHidden: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ }
+ )[];
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ defaultValue?: undefined;
+ components?: undefined;
+ }
+ | {
label: string;
- value: string;
- }[];
- };
- selectThreshold: number;
- validate: {
- onlyAvailableItems: boolean;
- };
- key: string;
- type: string;
- indexeddb: {
- filter: {};
- };
- input: boolean;
- }[];
- breadcrumbClickable?: undefined;
- buttonSettings?: undefined;
- scrollToTop?: undefined;
- collapsible?: undefined;
- })[];
- logic?: undefined;
- conditional?: undefined;
- } | {
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- collapsible: boolean;
- key: string;
- logic: {
- name: string;
- trigger: {
- type: string;
- simple: {
- show: boolean;
- when: string;
- eq: string;
- };
- };
- actions: {
- name: string;
- type: string;
- property: {
- label: string;
- value: string;
- type: string;
- };
- state: boolean;
- }[];
- }[];
- type: string;
- label: string;
- components: ({
- label: string;
- columns: ({
- components: {
- label: string;
- tableView: boolean;
- validate: {
- required: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- hideOnChildrenHidden: boolean;
- defaultValue: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- } | {
- components: {
- label: string;
- displayInTimezone: string;
- format: string;
- tableView: boolean;
- enableMinDateInput: boolean;
- datePicker: {
- disableWeekends: boolean;
- disableWeekdays: boolean;
- };
- enableMaxDateInput: boolean;
- enableTime: boolean;
- timePicker: {
- showMeridian: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- widget: {
+ reorder: boolean;
+ addAnotherPosition: string;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ tableView: boolean;
+ defaultValue: {}[];
+ key: string;
type: string;
- displayInTimezone: string;
- locale: string;
- useLocaleSettings: boolean;
- allowInput: boolean;
- mode: string;
- enableTime: boolean;
- noCalendar: boolean;
- format: string;
- hourIncrement: number;
- minuteIncrement: number;
- time_24hr: boolean;
- minDate: null;
- disableWeekends: boolean;
- disableWeekdays: boolean;
- maxDate: null;
- };
- hideOnChildrenHidden: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- })[];
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- defaultValue?: undefined;
- components?: undefined;
- } | {
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- tableView: boolean;
- defaultValue: {}[];
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- columns?: undefined;
- })[];
- input: boolean;
- tableView: boolean;
- scrollToTop?: undefined;
- conditional?: undefined;
- } | {
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- scrollToTop: boolean;
- collapsible: boolean;
- key: string;
- conditional: {
- show: boolean;
- when: string;
- eq: string;
- };
- type: string;
- label: string;
- components: {
- label: string;
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- }[];
- input: boolean;
- tableView: boolean;
- logic?: undefined;
- })[];
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ columns?: undefined;
+ }
+ )[];
+ input: boolean;
+ tableView: boolean;
+ scrollToTop?: undefined;
+ conditional?: undefined;
+ }
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ scrollToTop: boolean;
+ collapsible: boolean;
+ key: string;
+ conditional: {
+ show: boolean;
+ when: string;
+ eq: string;
+ };
+ type: string;
+ label: string;
+ components: {
+ label: string;
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ }[];
+ input: boolean;
+ tableView: boolean;
+ logic?: undefined;
+ }
+ )[];
const title: string;
const display: string;
}
diff --git a/test/forms/conditionallyVisiblePage.js b/test/forms/conditionallyVisiblePage.js
index 96d8698c73..e0e36e9c0e 100644
--- a/test/forms/conditionallyVisiblePage.js
+++ b/test/forms/conditionallyVisiblePage.js
@@ -1,278 +1,272 @@
export default {
- type: 'form',
- components: [
- {
- title: 'Page 1',
- breadcrumbClickable: true,
- buttonSettings: {
- previous: true,
- cancel: true,
- next: true
- },
- scrollToTop: false,
- collapsible: false,
- key: 'page1',
- type: 'panel',
- label: 'Page 1',
- input: false,
- tableView: false,
- components: [
+ type: 'form',
+ components: [
{
- breadcrumbClickable: true,
- buttonSettings: {
- previous: true,
- cancel: true,
- next: true
- },
- scrollToTop: false,
- collapsible: false,
- key: 'panel',
- type: 'panel',
- label: 'Panel',
- input: false,
- tableView: false,
- components: [
- {
- label: 'Text Field',
- tableView: true,
- validate: {
- required: true
- },
- key: 'textField',
- type: 'textfield',
- input: true
- }
- ]
+ title: 'Page 1',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'page1',
+ type: 'panel',
+ label: 'Page 1',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'panel',
+ type: 'panel',
+ label: 'Panel',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ validate: {
+ required: true,
+ },
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ {
+ label: 'Edit Grid',
+ tableView: false,
+ rowDrafts: false,
+ key: 'editGrid',
+ type: 'editgrid',
+ input: true,
+ components: [
+ {
+ label: 'Select',
+ tableView: true,
+ data: {
+ values: [
+ {
+ label: 'a',
+ value: 'a',
+ },
+ {
+ label: 'b',
+ value: 'b',
+ },
+ {
+ label: 'c',
+ value: 'c',
+ },
+ ],
+ },
+ selectThreshold: 0.3,
+ validate: {
+ onlyAvailableItems: false,
+ },
+ key: 'select',
+ type: 'select',
+ indexeddb: {
+ filter: {},
+ },
+ input: true,
+ },
+ ],
+ },
+ ],
},
{
- label: 'Edit Grid',
- tableView: false,
- rowDrafts: false,
- key: 'editGrid',
- type: 'editgrid',
- input: true,
- components: [
- {
- label: 'Select',
- tableView: true,
- data: {
- values: [
- {
- label: 'a',
- value: 'a'
- },
- {
- label: 'b',
- value: 'b'
- },
- {
- label: 'c',
- value: 'c'
- }
- ]
- },
- selectThreshold: 0.3,
- validate: {
- onlyAvailableItems: false
- },
- key: 'select',
- type: 'select',
- indexeddb: {
- filter: {
-
- }
- },
- input: true
- }
- ]
- }
- ]
- },
- {
- title: 'Page 2',
- breadcrumbClickable: true,
- buttonSettings: {
- previous: true,
- cancel: true,
- next: true
- },
- collapsible: false,
- key: 'page2',
- logic: [
- {
- name: 'hide',
- trigger: {
- type: 'simple',
- simple: {
- show: true,
- when: 'textField',
- eq: 'hide'
- }
- },
- actions: [
- {
- name: 'hide',
- type: 'property',
- property: {
- label: 'Hidden',
- value: 'hidden',
- type: 'boolean'
- },
- state: true
- }
- ]
- }
- ],
- type: 'panel',
- label: 'Page 2',
- components: [
- {
- label: 'Columns',
- columns: [
- {
- components: [
- {
- label: 'Checkbox',
- tableView: false,
- validate: {
- required: true
- },
- key: 'checkbox',
- type: 'checkbox',
- input: true,
- hideOnChildrenHidden: false,
- defaultValue: false
- }
- ],
- width: 6,
- offset: 0,
- push: 0,
- pull: 0,
- size: 'md'
+ title: 'Page 2',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
},
- {
- components: [
+ collapsible: false,
+ key: 'page2',
+ logic: [
+ {
+ name: 'hide',
+ trigger: {
+ type: 'simple',
+ simple: {
+ show: true,
+ when: 'textField',
+ eq: 'hide',
+ },
+ },
+ actions: [
+ {
+ name: 'hide',
+ type: 'property',
+ property: {
+ label: 'Hidden',
+ value: 'hidden',
+ type: 'boolean',
+ },
+ state: true,
+ },
+ ],
+ },
+ ],
+ type: 'panel',
+ label: 'Page 2',
+ components: [
{
- label: 'Date / Time',
- displayInTimezone: 'utc',
- format: 'yyyy-MM-dd',
- tableView: false,
- enableMinDateInput: false,
- datePicker: {
- disableWeekends: false,
- disableWeekdays: false
- },
- enableMaxDateInput: false,
- enableTime: false,
- timePicker: {
- showMeridian: false
- },
- key: 'dateTime',
- type: 'datetime',
- input: true,
- widget: {
- type: 'calendar',
- displayInTimezone: 'utc',
- locale: 'en',
- useLocaleSettings: false,
- allowInput: true,
- mode: 'single',
- enableTime: false,
- noCalendar: false,
- format: 'yyyy-MM-dd',
- hourIncrement: 1,
- minuteIncrement: 1,
- time_24hr: true,
- minDate: null,
- disableWeekends: false,
- disableWeekdays: false,
- maxDate: null
- },
- hideOnChildrenHidden: false
- }
- ],
- width: 6,
- offset: 0,
- push: 0,
- pull: 0,
- size: 'md'
- }
- ],
- key: 'columns',
- type: 'columns',
- input: false,
- tableView: false
+ label: 'Columns',
+ columns: [
+ {
+ components: [
+ {
+ label: 'Checkbox',
+ tableView: false,
+ validate: {
+ required: true,
+ },
+ key: 'checkbox',
+ type: 'checkbox',
+ input: true,
+ hideOnChildrenHidden: false,
+ defaultValue: false,
+ },
+ ],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ },
+ {
+ components: [
+ {
+ label: 'Date / Time',
+ displayInTimezone: 'utc',
+ format: 'yyyy-MM-dd',
+ tableView: false,
+ enableMinDateInput: false,
+ datePicker: {
+ disableWeekends: false,
+ disableWeekdays: false,
+ },
+ enableMaxDateInput: false,
+ enableTime: false,
+ timePicker: {
+ showMeridian: false,
+ },
+ key: 'dateTime',
+ type: 'datetime',
+ input: true,
+ widget: {
+ type: 'calendar',
+ displayInTimezone: 'utc',
+ locale: 'en',
+ useLocaleSettings: false,
+ allowInput: true,
+ mode: 'single',
+ enableTime: false,
+ noCalendar: false,
+ format: 'yyyy-MM-dd',
+ hourIncrement: 1,
+ minuteIncrement: 1,
+ time_24hr: true,
+ minDate: null,
+ disableWeekends: false,
+ disableWeekdays: false,
+ maxDate: null,
+ },
+ hideOnChildrenHidden: false,
+ },
+ ],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ },
+ ],
+ key: 'columns',
+ type: 'columns',
+ input: false,
+ tableView: false,
+ },
+ {
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ tableView: false,
+ defaultValue: [{}],
+ key: 'dataGrid',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textFielde',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ ],
+ input: false,
+ tableView: false,
},
{
- label: 'Data Grid',
- reorder: false,
- addAnotherPosition: 'bottom',
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- tableView: false,
- defaultValue: [
- {
-
- }
- ],
- key: 'dataGrid',
- type: 'datagrid',
- input: true,
- components: [
- {
- label: 'Text Field',
- tableView: true,
- key: 'textFielde',
- type: 'textfield',
- input: true
- }
- ]
- }
- ],
- input: false,
- tableView: false
- },
- {
- title: 'Page 3',
- breadcrumbClickable: true,
- buttonSettings: {
- previous: true,
- cancel: true,
- next: true
- },
- scrollToTop: false,
- collapsible: false,
- key: 'page3',
- conditional: {
- show: false,
- when: 'textField',
- eq: 'hide2'
- },
- type: 'panel',
- label: 'Page 3',
- components: [
- {
- label: 'Well',
- key: 'well1',
- type: 'well',
- input: false,
- tableView: false,
- components: [
- {
- label: 'Email',
- tableView: true,
- key: 'email',
- type: 'email',
- input: true
- }
- ]
- }
- ],
- input: false,
- tableView: false
- }
- ],
- title: 'FIO-2494 2',
- display: 'wizard',
+ title: 'Page 3',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'page3',
+ conditional: {
+ show: false,
+ when: 'textField',
+ eq: 'hide2',
+ },
+ type: 'panel',
+ label: 'Page 3',
+ components: [
+ {
+ label: 'Well',
+ key: 'well1',
+ type: 'well',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Email',
+ tableView: true,
+ key: 'email',
+ type: 'email',
+ input: true,
+ },
+ ],
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ title: 'FIO-2494 2',
+ display: 'wizard',
};
diff --git a/test/forms/conditions.d.ts b/test/forms/conditions.d.ts
index d406382349..231be47f4f 100644
--- a/test/forms/conditions.d.ts
+++ b/test/forms/conditions.d.ts
@@ -1,85 +1,121 @@
declare namespace _default {
const title: string;
namespace form {
- const components: ({
- type: string;
- label: string;
- key: string;
- input: boolean;
- inputType: string;
- validate: {
- json: {
- if: (string | boolean | {
- '==': (string | {
- var: string;
- })[];
- })[];
- };
- };
- conditional?: undefined;
- tag?: undefined;
- attrs?: undefined;
- className?: undefined;
- content?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- input: boolean;
- inputType: string;
- validate: {
- json: {
- if: (string | boolean | {
- '==': (string | {
- var: string;
- })[];
- })[];
- };
- };
- conditional: {
- json: {
- '===': (string | {
- var: string;
- })[];
- };
- };
- tag?: undefined;
- attrs?: undefined;
- className?: undefined;
- content?: undefined;
- } | {
- key: string;
- input: boolean;
- tag: string;
- attrs: {
- attr: string;
- value: string;
- }[];
- className: string;
- content: string;
- type: string;
- conditional: {
- json: {
- '===': (string | {
- var: string;
- })[];
- };
- };
- label?: undefined;
- inputType?: undefined;
- validate?: undefined;
- })[];
+ const components: (
+ | {
+ type: string;
+ label: string;
+ key: string;
+ input: boolean;
+ inputType: string;
+ validate: {
+ json: {
+ if: (
+ | string
+ | boolean
+ | {
+ '==': (
+ | string
+ | {
+ var: string;
+ }
+ )[];
+ }
+ )[];
+ };
+ };
+ conditional?: undefined;
+ tag?: undefined;
+ attrs?: undefined;
+ className?: undefined;
+ content?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ input: boolean;
+ inputType: string;
+ validate: {
+ json: {
+ if: (
+ | string
+ | boolean
+ | {
+ '==': (
+ | string
+ | {
+ var: string;
+ }
+ )[];
+ }
+ )[];
+ };
+ };
+ conditional: {
+ json: {
+ '===': (
+ | string
+ | {
+ var: string;
+ }
+ )[];
+ };
+ };
+ tag?: undefined;
+ attrs?: undefined;
+ className?: undefined;
+ content?: undefined;
+ }
+ | {
+ key: string;
+ input: boolean;
+ tag: string;
+ attrs: {
+ attr: string;
+ value: string;
+ }[];
+ className: string;
+ content: string;
+ type: string;
+ conditional: {
+ json: {
+ '===': (
+ | string
+ | {
+ var: string;
+ }
+ )[];
+ };
+ };
+ label?: undefined;
+ inputType?: undefined;
+ validate?: undefined;
+ }
+ )[];
}
const tests: {
'Test hidden components'(form: any, done: any): void;
'Test validation errors on typeShow field'(form: any, done: any): void;
'Test validation errors on typeMe field'(form: any, done: any): void;
'Test validation errors on typeThe field'(form: any, done: any): void;
- 'Test validation errors on typeMonkey field'(form: any, done: any): void;
+ 'Test validation errors on typeMonkey field'(
+ form: any,
+ done: any
+ ): void;
'Test conditional when typeShow is set'(form: any, done: any): void;
- 'Test conditional when typeShow, typeMe is set'(form: any, done: any): void;
- 'Test conditional when typeShow, typeMe, typeThe is set'(form: any, done: any): void;
- 'Test conditional when typeShow, typeMe, typeThe, typeMonkey is set'(form: any, done: any): void;
+ 'Test conditional when typeShow, typeMe is set'(
+ form: any,
+ done: any
+ ): void;
+ 'Test conditional when typeShow, typeMe, typeThe is set'(
+ form: any,
+ done: any
+ ): void;
+ 'Test conditional when typeShow, typeMe, typeThe, typeMonkey is set'(
+ form: any,
+ done: any
+ ): void;
};
}
export default _default;
diff --git a/test/forms/conditions.js b/test/forms/conditions.js
index 8094da34a1..d07d5e5705 100644
--- a/test/forms/conditions.js
+++ b/test/forms/conditions.js
@@ -1,258 +1,307 @@
import Harness from '../harness';
export default {
- title: 'Conditional Form Test',
- form: {
- components: [
- {
- type: 'textfield',
- label: 'Type "Show"',
- key: 'typeShow',
- input: true,
- inputType: 'text',
- validate: {
- json: {
- if: [
- {
- '==': [
- {
- var: 'data.typeShow'
- },
- 'Show'
- ]
- },
- true,
- 'You must type "Show"'
- ]
- }
- }
- },
- {
- type: 'textfield',
- label: 'Type "Me"',
- key: 'typeMe',
- input: true,
- inputType: 'text',
- validate: {
- json: {
- if: [
- {
- '==': [
- {
- var: 'data.typeMe'
- },
- 'Me'
- ]
- },
- true,
- 'You must type "Me"'
- ]
- }
+ title: 'Conditional Form Test',
+ form: {
+ components: [
+ {
+ type: 'textfield',
+ label: 'Type "Show"',
+ key: 'typeShow',
+ input: true,
+ inputType: 'text',
+ validate: {
+ json: {
+ if: [
+ {
+ '==': [
+ {
+ var: 'data.typeShow',
+ },
+ 'Show',
+ ],
+ },
+ true,
+ 'You must type "Show"',
+ ],
+ },
+ },
+ },
+ {
+ type: 'textfield',
+ label: 'Type "Me"',
+ key: 'typeMe',
+ input: true,
+ inputType: 'text',
+ validate: {
+ json: {
+ if: [
+ {
+ '==': [
+ {
+ var: 'data.typeMe',
+ },
+ 'Me',
+ ],
+ },
+ true,
+ 'You must type "Me"',
+ ],
+ },
+ },
+ conditional: {
+ json: {
+ '===': [
+ {
+ var: 'data.typeShow',
+ },
+ 'Show',
+ ],
+ },
+ },
+ },
+ {
+ type: 'textfield',
+ label: 'Type "The"',
+ key: 'typeThe',
+ input: true,
+ inputType: 'text',
+ validate: {
+ json: {
+ if: [
+ {
+ '==': [
+ {
+ var: 'data.typeThe',
+ },
+ 'The',
+ ],
+ },
+ true,
+ 'You must type "The"',
+ ],
+ },
+ },
+ conditional: {
+ json: {
+ '===': [
+ {
+ var: 'data.typeMe',
+ },
+ 'Me',
+ ],
+ },
+ },
+ },
+ {
+ type: 'textfield',
+ input: true,
+ inputType: 'text',
+ label: 'Type "Monkey!"',
+ key: 'typeMonkey',
+ validate: {
+ json: {
+ if: [
+ {
+ '==': [
+ {
+ var: 'data.typeMonkey',
+ },
+ 'Monkey!',
+ ],
+ },
+ true,
+ 'You must type "Monkey!"',
+ ],
+ },
+ },
+ conditional: {
+ json: {
+ '===': [
+ {
+ var: 'data.typeThe',
+ },
+ 'The',
+ ],
+ },
+ },
+ },
+ {
+ key: 'monkey',
+ input: false,
+ tag: 'img',
+ attrs: [
+ {
+ attr: 'src',
+ value: 'https://ichef.bbci.co.uk/news/660/cpsprodpb/025B/production/_85730600_monkey2.jpg',
+ },
+ {
+ attr: 'style',
+ value: 'width: 100%;',
+ },
+ ],
+ className: '',
+ content: '',
+ type: 'htmlelement',
+ conditional: {
+ json: {
+ '===': [
+ {
+ var: 'data.typeMonkey',
+ },
+ 'Monkey!',
+ ],
+ },
+ },
+ },
+ ],
+ },
+ tests: {
+ 'Test hidden components'(form, done) {
+ Harness.testElements(form, 'input[type="text"]', 1);
+ Harness.testConditionals(
+ form,
+ { data: {} },
+ ['typeMe', 'typeThe', 'typeMonkey', 'monkey'],
+ done,
+ );
},
- conditional: {
- json: {
- '===': [
- {
- var: 'data.typeShow'
- },
- 'Show'
- ]
- }
- }
- },
- {
- type: 'textfield',
- label: 'Type "The"',
- key: 'typeThe',
- input: true,
- inputType: 'text',
- validate: {
- json: {
- if: [
- {
- '==': [
- {
- var: 'data.typeThe'
- },
- 'The'
- ]
- },
- true,
- 'You must type "The"'
- ]
- }
+ 'Test validation errors on typeShow field'(form, done) {
+ Harness.testErrors(
+ form,
+ {
+ data: {
+ typeShow: 'sho',
+ typeMe: '',
+ typeThe: '',
+ typeMonkey: '',
+ },
+ },
+ [
+ {
+ component: 'typeShow',
+ message: 'You must type "Show"',
+ },
+ ],
+ done,
+ );
},
- conditional: {
- json: {
- '===': [
- {
- var: 'data.typeMe'
- },
- 'Me'
- ]
- }
- }
- },
- {
- type: 'textfield',
- input: true,
- inputType: 'text',
- label: 'Type "Monkey!"',
- key: 'typeMonkey',
- validate: {
- json: {
- if: [
- {
- '==': [
- {
- var: 'data.typeMonkey'
- },
- 'Monkey!'
- ]
- },
- true,
- 'You must type "Monkey!"'
- ]
- }
+ 'Test validation errors on typeMe field'(form, done) {
+ Harness.testErrors(
+ form,
+ {
+ data: {
+ typeShow: 'Show',
+ typeMe: 'me',
+ typeThe: '',
+ typeMonkey: '',
+ },
+ },
+ [
+ {
+ component: 'typeMe',
+ message: 'You must type "Me"',
+ },
+ ],
+ done,
+ );
},
- conditional: {
- json: {
- '===': [
- {
- var: 'data.typeThe'
- },
- 'The'
- ]
- }
- }
- },
- {
- key: 'monkey',
- input: false,
- tag: 'img',
- attrs: [
- {
- attr: 'src',
- value: 'https://ichef.bbci.co.uk/news/660/cpsprodpb/025B/production/_85730600_monkey2.jpg'
- },
- {
- attr: 'style',
- value: 'width: 100%;'
- }
- ],
- className: '',
- content: '',
- type: 'htmlelement',
- conditional: {
- json: {
- '===': [
- {
- var: 'data.typeMonkey'
- },
- 'Monkey!'
- ]
- }
- }
- }
- ]
- },
- tests: {
- 'Test hidden components'(form, done) {
- Harness.testElements(form, 'input[type="text"]', 1);
- Harness.testConditionals(form, {data: {}}, ['typeMe', 'typeThe', 'typeMonkey', 'monkey'], done);
- },
- 'Test validation errors on typeShow field'(form, done) {
- Harness.testErrors(
- form,
- {
- data: {
- typeShow: 'sho',
- typeMe: '',
- typeThe: '',
- typeMonkey: ''
- }
+ 'Test validation errors on typeThe field'(form, done) {
+ Harness.testErrors(
+ form,
+ {
+ data: {
+ typeShow: 'Show',
+ typeMe: 'Me',
+ typeThe: 'the',
+ typeMonkey: '',
+ },
+ },
+ [
+ {
+ component: 'typeThe',
+ message: 'You must type "The"',
+ },
+ ],
+ done,
+ );
+ },
+ 'Test validation errors on typeMonkey field'(form, done) {
+ Harness.testErrors(
+ form,
+ {
+ data: {
+ typeShow: 'Show',
+ typeMe: 'Me',
+ typeThe: 'The',
+ typeMonkey: 'Monkey',
+ },
+ },
+ [
+ {
+ component: 'typeMonkey',
+ message: 'You must type "Monkey!"',
+ },
+ ],
+ done,
+ );
+ },
+ 'Test conditional when typeShow is set'(form, done) {
+ Harness.testConditionals(
+ form,
+ {
+ data: {
+ typeShow: 'Show',
+ },
+ },
+ ['typeThe', 'typeMonkey', 'monkey'],
+ done,
+ );
+ },
+ 'Test conditional when typeShow, typeMe is set'(form, done) {
+ Harness.testConditionals(
+ form,
+ {
+ data: {
+ typeShow: 'Show',
+ typeMe: 'Me',
+ },
+ },
+ ['typeMonkey', 'monkey'],
+ done,
+ );
+ },
+ 'Test conditional when typeShow, typeMe, typeThe is set'(form, done) {
+ Harness.testConditionals(
+ form,
+ {
+ data: {
+ typeShow: 'Show',
+ typeMe: 'Me',
+ typeThe: 'The',
+ },
+ },
+ ['monkey'],
+ done,
+ );
+ },
+ 'Test conditional when typeShow, typeMe, typeThe, typeMonkey is set'(
+ form,
+ done,
+ ) {
+ Harness.testConditionals(
+ form,
+ {
+ data: {
+ typeShow: 'Show',
+ typeMe: 'Me',
+ typeThe: 'The',
+ typeMonkey: 'Monkey!',
+ },
+ },
+ [],
+ done,
+ );
},
- [
- {
- component: 'typeShow',
- message: 'You must type "Show"'
- }
- ],
- done
- );
- },
- 'Test validation errors on typeMe field'(form, done) {
- Harness.testErrors(form, {data: {
- typeShow: 'Show',
- typeMe: 'me',
- typeThe: '',
- typeMonkey: ''
- }}, [
- {
- component: 'typeMe',
- message: 'You must type "Me"'
- }
- ], done);
- },
- 'Test validation errors on typeThe field'(form, done) {
- Harness.testErrors(form, {data: {
- typeShow: 'Show',
- typeMe: 'Me',
- typeThe: 'the',
- typeMonkey: ''
- }}, [
- {
- component: 'typeThe',
- message: 'You must type "The"'
- }
- ], done);
- },
- 'Test validation errors on typeMonkey field'(form, done) {
- Harness.testErrors(form, {data: {
- typeShow: 'Show',
- typeMe: 'Me',
- typeThe: 'The',
- typeMonkey: 'Monkey'
- }}, [
- {
- component: 'typeMonkey',
- message: 'You must type "Monkey!"'
- }
- ], done);
- },
- 'Test conditional when typeShow is set'(form, done) {
- Harness.testConditionals(form, {
- data: {
- typeShow: 'Show'
- }
- }, ['typeThe', 'typeMonkey', 'monkey'], done);
- },
- 'Test conditional when typeShow, typeMe is set'(form, done) {
- Harness.testConditionals(form, {
- data: {
- typeShow: 'Show',
- typeMe: 'Me'
- }
- }, ['typeMonkey', 'monkey'], done);
- },
- 'Test conditional when typeShow, typeMe, typeThe is set'(form, done) {
- Harness.testConditionals(form, {
- data: {
- typeShow: 'Show',
- typeMe: 'Me',
- typeThe: 'The'
- }
- }, ['monkey'], done);
},
- 'Test conditional when typeShow, typeMe, typeThe, typeMonkey is set'(form, done) {
- Harness.testConditionals(form, {
- data: {
- typeShow: 'Show',
- typeMe: 'Me',
- typeThe: 'The',
- typeMonkey: 'Monkey!'
- }
- }, [], done);
- }
- }
};
diff --git a/test/forms/customWizard.d.ts b/test/forms/customWizard.d.ts
index b9c4fe36ff..948dd2e0f1 100644
--- a/test/forms/customWizard.d.ts
+++ b/test/forms/customWizard.d.ts
@@ -1,202 +1,221 @@
declare namespace _default {
const type: string;
- const components: ({
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- scrollToTop: boolean;
- collapsible: boolean;
- key: string;
- type: string;
- label: string;
- components: ({
- label: string;
- tableView: boolean;
- protected: boolean;
- key: string;
- type: string;
- input: boolean;
- columns?: undefined;
- } | {
- label: string;
- columns: {
- components: {
- label: string;
- action: string;
- showValidations: boolean;
- theme: string;
- block: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- event: string;
- hideOnChildrenHidden: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- protected?: undefined;
- })[];
- input: boolean;
- tableView: boolean;
- } | {
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- scrollToTop: boolean;
- collapsible: boolean;
- key: string;
- type: string;
- label: string;
- components: ({
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- columns?: undefined;
- } | {
- label: string;
- columns: ({
- components: {
- label: string;
- action: string;
- showValidations: boolean;
- block: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- event: string;
- hideOnChildrenHidden: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- } | {
- components: {
- label: string;
- action: string;
- showValidations: boolean;
- theme: string;
- block: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- event: string;
- hideOnChildrenHidden: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- })[];
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- })[];
- input: boolean;
- tableView: boolean;
- } | {
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- scrollToTop: boolean;
- collapsible: boolean;
- key: string;
- type: string;
- label: string;
- components: ({
- label: string;
- autoExpand: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- columns?: undefined;
- } | {
- label: string;
- columns: ({
- components: {
- label: string;
- action: string;
- showValidations: boolean;
- block: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- event: string;
- hideOnChildrenHidden: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- } | {
- components: {
- label: string;
- action: string;
- showValidations: boolean;
- theme: string;
- block: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- event: string;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- })[];
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- autoExpand?: undefined;
- })[];
- input: boolean;
- tableView: boolean;
- })[];
+ const components: (
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ scrollToTop: boolean;
+ collapsible: boolean;
+ key: string;
+ type: string;
+ label: string;
+ components: (
+ | {
+ label: string;
+ tableView: boolean;
+ protected: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ columns?: undefined;
+ }
+ | {
+ label: string;
+ columns: {
+ components: {
+ label: string;
+ action: string;
+ showValidations: boolean;
+ theme: string;
+ block: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ event: string;
+ hideOnChildrenHidden: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ protected?: undefined;
+ }
+ )[];
+ input: boolean;
+ tableView: boolean;
+ }
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ scrollToTop: boolean;
+ collapsible: boolean;
+ key: string;
+ type: string;
+ label: string;
+ components: (
+ | {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ columns?: undefined;
+ }
+ | {
+ label: string;
+ columns: (
+ | {
+ components: {
+ label: string;
+ action: string;
+ showValidations: boolean;
+ block: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ event: string;
+ hideOnChildrenHidden: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ }
+ | {
+ components: {
+ label: string;
+ action: string;
+ showValidations: boolean;
+ theme: string;
+ block: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ event: string;
+ hideOnChildrenHidden: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ }
+ )[];
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ }
+ )[];
+ input: boolean;
+ tableView: boolean;
+ }
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ scrollToTop: boolean;
+ collapsible: boolean;
+ key: string;
+ type: string;
+ label: string;
+ components: (
+ | {
+ label: string;
+ autoExpand: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ columns?: undefined;
+ }
+ | {
+ label: string;
+ columns: (
+ | {
+ components: {
+ label: string;
+ action: string;
+ showValidations: boolean;
+ block: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ event: string;
+ hideOnChildrenHidden: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ }
+ | {
+ components: {
+ label: string;
+ action: string;
+ showValidations: boolean;
+ theme: string;
+ block: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ event: string;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ }
+ )[];
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ autoExpand?: undefined;
+ }
+ )[];
+ input: boolean;
+ tableView: boolean;
+ }
+ )[];
const revisions: string;
const _vid: number;
const title: string;
diff --git a/test/forms/customWizard.js b/test/forms/customWizard.js
index 4cf07d7aa6..69ec0de94a 100644
--- a/test/forms/customWizard.js
+++ b/test/forms/customWizard.js
@@ -1,203 +1,235 @@
export default {
- 'type': 'form',
- 'components': [{
- 'title': 'Page 1',
- 'breadcrumbClickable': true,
- 'buttonSettings': {
- 'previous': false,
- 'cancel': false,
- 'next': false
- },
- 'scrollToTop': false,
- 'collapsible': false,
- 'key': 'page1',
- 'type': 'panel',
- 'label': 'Page 1',
- 'components': [{
- 'label': 'Text Field',
- 'tableView': true,
- 'protected': true,
- 'key': 'textField',
- 'type': 'textfield',
- 'input': true
- }, {
- 'label': 'Columns',
- 'columns': [{
- 'components': [],
- 'width': 6,
- 'offset': 0,
- 'push': 0,
- 'pull': 0,
- 'size': 'md'
- }, {
- 'components': [{
- 'label': 'next page',
- 'action': 'event',
- 'showValidations': false,
- 'theme': 'success',
- 'block': true,
- 'tableView': false,
- 'key': 'nextPage',
- 'type': 'button',
- 'input': true,
- 'event': 'goToNextPage',
- 'hideOnChildrenHidden': false
- }],
- 'width': 6,
- 'offset': 0,
- 'push': 0,
- 'pull': 0,
- 'size': 'md'
- }],
- 'key': 'columns',
- 'type': 'columns',
- 'input': false,
- 'tableView': false
- }],
- 'input': false,
- 'tableView': false
- }, {
- 'title': 'Page 2',
- 'breadcrumbClickable': true,
- 'buttonSettings': {
- 'previous': false,
- 'cancel': false,
- 'next': false
- },
- 'scrollToTop': false,
- 'collapsible': false,
- 'key': 'page2',
- 'type': 'panel',
- 'label': 'Page 2',
- 'components': [{
- 'label': 'Number',
- 'mask': false,
- 'spellcheck': true,
- 'tableView': false,
- 'delimiter': false,
- 'requireDecimal': false,
- 'inputFormat': 'plain',
- 'key': 'number',
- 'type': 'number',
- 'input': true
- }, {
- 'label': 'Columns',
- 'columns': [{
- 'components': [{
- 'label': 'prev page',
- 'action': 'event',
- 'showValidations': false,
- 'block': true,
- 'tableView': false,
- 'key': 'prevPage',
- 'type': 'button',
- 'input': true,
- 'event': 'goToPrevPage',
- 'hideOnChildrenHidden': false
- }],
- 'width': 6,
- 'offset': 0,
- 'push': 0,
- 'pull': 0,
- 'size': 'md'
- }, {
- 'components': [{
- 'label': 'next page',
- 'action': 'event',
- 'showValidations': false,
- 'theme': 'success',
- 'block': true,
- 'tableView': false,
- 'key': 'nextPage1',
- 'type': 'button',
- 'input': true,
- 'event': 'goToNextPage',
- 'hideOnChildrenHidden': false
- }],
- 'width': 6,
- 'offset': 0,
- 'push': 0,
- 'pull': 0,
- 'size': 'md'
- }],
- 'key': 'columns1',
- 'type': 'columns',
- 'input': false,
- 'tableView': false
- }],
- 'input': false,
- 'tableView': false
- }, {
- 'title': 'Page 3',
- 'breadcrumbClickable': true,
- 'buttonSettings': {
- 'previous': false,
- 'cancel': false,
- 'next': false
- },
- 'scrollToTop': false,
- 'collapsible': false,
- 'key': 'page3',
- 'type': 'panel',
- 'label': 'Page 3',
- 'components': [{
- 'label': 'Text Area',
- 'autoExpand': false,
- 'tableView': true,
- 'key': 'textArea1',
- 'type': 'textarea',
- 'input': true
- }, {
- 'label': 'Columns',
- 'columns': [{
- 'components': [{
- 'label': 'prev page',
- 'action': 'event',
- 'showValidations': false,
- 'block': true,
- 'tableView': false,
- 'key': 'prevPage1',
- 'type': 'button',
- 'input': true,
- 'event': 'goToPrevPage',
- 'hideOnChildrenHidden': false
- }],
- 'width': 6,
- 'offset': 0,
- 'push': 0,
- 'pull': 0,
- 'size': 'md'
- }, {
- 'components': [ {
- 'label': 'save',
- 'action': 'event',
- 'showValidations': false,
- 'theme': 'warning',
- 'block': true,
- 'tableView': false,
- 'key': 'save',
- 'type': 'button',
- 'input': true,
- 'event': 'saveSubmission'
- }],
- 'width': 6,
- 'offset': 0,
- 'push': 0,
- 'pull': 0,
- 'size': 'md'
- }],
- 'key': 'columns4',
- 'type': 'columns',
- 'input': false,
- 'tableView': false
- },],
- 'input': false,
- 'tableView': false
- }],
- 'revisions': '',
- '_vid': 0,
- 'title': 'draft wizard pages',
- 'display': 'wizard',
- 'name': 'draftWizardPages',
- 'path': 'draftwizardpages',
+ type: 'form',
+ components: [
+ {
+ title: 'Page 1',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: false,
+ cancel: false,
+ next: false,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'page1',
+ type: 'panel',
+ label: 'Page 1',
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ protected: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Columns',
+ columns: [
+ {
+ components: [],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ },
+ {
+ components: [
+ {
+ label: 'next page',
+ action: 'event',
+ showValidations: false,
+ theme: 'success',
+ block: true,
+ tableView: false,
+ key: 'nextPage',
+ type: 'button',
+ input: true,
+ event: 'goToNextPage',
+ hideOnChildrenHidden: false,
+ },
+ ],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ },
+ ],
+ key: 'columns',
+ type: 'columns',
+ input: false,
+ tableView: false,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ {
+ title: 'Page 2',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: false,
+ cancel: false,
+ next: false,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'page2',
+ type: 'panel',
+ label: 'Page 2',
+ components: [
+ {
+ label: 'Number',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ {
+ label: 'Columns',
+ columns: [
+ {
+ components: [
+ {
+ label: 'prev page',
+ action: 'event',
+ showValidations: false,
+ block: true,
+ tableView: false,
+ key: 'prevPage',
+ type: 'button',
+ input: true,
+ event: 'goToPrevPage',
+ hideOnChildrenHidden: false,
+ },
+ ],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ },
+ {
+ components: [
+ {
+ label: 'next page',
+ action: 'event',
+ showValidations: false,
+ theme: 'success',
+ block: true,
+ tableView: false,
+ key: 'nextPage1',
+ type: 'button',
+ input: true,
+ event: 'goToNextPage',
+ hideOnChildrenHidden: false,
+ },
+ ],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ },
+ ],
+ key: 'columns1',
+ type: 'columns',
+ input: false,
+ tableView: false,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ {
+ title: 'Page 3',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: false,
+ cancel: false,
+ next: false,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'page3',
+ type: 'panel',
+ label: 'Page 3',
+ components: [
+ {
+ label: 'Text Area',
+ autoExpand: false,
+ tableView: true,
+ key: 'textArea1',
+ type: 'textarea',
+ input: true,
+ },
+ {
+ label: 'Columns',
+ columns: [
+ {
+ components: [
+ {
+ label: 'prev page',
+ action: 'event',
+ showValidations: false,
+ block: true,
+ tableView: false,
+ key: 'prevPage1',
+ type: 'button',
+ input: true,
+ event: 'goToPrevPage',
+ hideOnChildrenHidden: false,
+ },
+ ],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ },
+ {
+ components: [
+ {
+ label: 'save',
+ action: 'event',
+ showValidations: false,
+ theme: 'warning',
+ block: true,
+ tableView: false,
+ key: 'save',
+ type: 'button',
+ input: true,
+ event: 'saveSubmission',
+ },
+ ],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ },
+ ],
+ key: 'columns4',
+ type: 'columns',
+ input: false,
+ tableView: false,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'draft wizard pages',
+ display: 'wizard',
+ name: 'draftWizardPages',
+ path: 'draftwizardpages',
};
diff --git a/test/forms/dataGrid-nestedForm.d.ts b/test/forms/dataGrid-nestedForm.d.ts
index b7c61ab222..fde840b426 100644
--- a/test/forms/dataGrid-nestedForm.d.ts
+++ b/test/forms/dataGrid-nestedForm.d.ts
@@ -1,104 +1,114 @@
declare namespace _default {
const type: string;
- const components: ({
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- defaultOpen: boolean;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- tableView: boolean;
- defaultValue: {
- textField: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- components: ({
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- form?: undefined;
- } | {
- label: string;
- tableView: boolean;
- form: {
- type: string;
- components: ({
- label: string;
- tableView: boolean;
- validate: {
- required: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- disableOnInvalid?: undefined;
- } | {
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- validate: {
- required: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- validate?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- })[];
- revisions: string;
- _vid: number;
- title: string;
- display: string;
- name: string;
- path: string;
- };
- key: string;
- type: string;
- input: boolean;
- })[];
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- defaultOpen?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- defaultValue?: undefined;
- components?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ reorder: boolean;
+ addAnotherPosition: string;
+ defaultOpen: boolean;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ tableView: boolean;
+ defaultValue: {
+ textField: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ components: (
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ form?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ form: {
+ type: string;
+ components: (
+ | {
+ label: string;
+ tableView: boolean;
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ validate?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ }
+ )[];
+ revisions: string;
+ _vid: number;
+ title: string;
+ display: string;
+ name: string;
+ path: string;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ }
+ )[];
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ defaultOpen?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ defaultValue?: undefined;
+ components?: undefined;
+ }
+ )[];
const revisions: string;
const _vid: number;
const title: string;
diff --git a/test/forms/dataGrid-nestedForm.js b/test/forms/dataGrid-nestedForm.js
index ce1458f351..3fcba762b4 100644
--- a/test/forms/dataGrid-nestedForm.js
+++ b/test/forms/dataGrid-nestedForm.js
@@ -1,97 +1,97 @@
export default {
- type: 'form',
- components: [
- {
- label: 'Data Grid',
- reorder: false,
- addAnotherPosition: 'bottom',
- defaultOpen: false,
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- tableView: true,
- defaultValue: [
+ type: 'form',
+ components: [
{
- textField: ''
- }
- ],
- key: 'dataGrid',
- type: 'datagrid',
- input: true,
- components: [
- {
- label: 'Text Field',
- tableView: true,
- key: 'textField',
- type: 'textfield',
- input: true
- },
- {
- label: 'Form',
- tableView: true,
- form: {
- type: 'form',
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ defaultOpen: false,
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ tableView: true,
+ defaultValue: [
+ {
+ textField: '',
+ },
+ ],
+ key: 'dataGrid',
+ type: 'datagrid',
+ input: true,
components: [
- {
- label: 'Child Text',
- tableView: true,
- validate: {
- required: true
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
},
- key: 'childText',
- type: 'textfield',
- input: true
- },
- {
- label: 'Child Number',
- mask: false,
- spellcheck: true,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- validate: {
- required: true
+ {
+ label: 'Form',
+ tableView: true,
+ form: {
+ type: 'form',
+ components: [
+ {
+ label: 'Child Text',
+ tableView: true,
+ validate: {
+ required: true,
+ },
+ key: 'childText',
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Child Number',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ validate: {
+ required: true,
+ },
+ key: 'childNumber',
+ type: 'number',
+ input: true,
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'FJS-1426 Child',
+ display: 'form',
+ name: 'fjs1426Child',
+ path: 'fjs1426child',
+ },
+ key: 'form1',
+ type: 'form',
+ input: true,
},
- key: 'childNumber',
- type: 'number',
- input: true
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false
- }
],
- revisions: '',
- _vid: 0,
- title: 'FJS-1426 Child',
- display: 'form',
- name: 'fjs1426Child',
- path: 'fjs1426child'
- },
- key: 'form1',
- type: 'form',
- input: true
- }
- ]
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false
- }
- ],
- revisions: '',
- _vid: 0,
- title: 'FJS-1426 Parent',
- display: 'form',
- name: 'fjs1426Parent',
- path: 'fjs1426parent'
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'FJS-1426 Parent',
+ display: 'form',
+ name: 'fjs1426Parent',
+ path: 'fjs1426parent',
};
diff --git a/test/forms/dataGridContainerConditionals.js b/test/forms/dataGridContainerConditionals.js
index 7defc9eb3a..5996d88eaa 100644
--- a/test/forms/dataGridContainerConditionals.js
+++ b/test/forms/dataGridContainerConditionals.js
@@ -1,104 +1,104 @@
export default {
- type: 'form',
- components: [
- {
- label: 'Data Grid',
- reorder: false,
- addAnotherPosition: 'bottom',
- defaultOpen: false,
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- tableView: false,
- key: 'dataGrid',
- type: 'datagrid',
- input: true,
- components: [
+ type: 'form',
+ components: [
{
- label: 'Container',
- tableView: false,
- key: 'container',
- type: 'container',
- input: true,
- components: [
- {
- label: 'Radio',
- optionsLabelPosition: 'right',
- inline: false,
- tableView: false,
- values: [
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ defaultOpen: false,
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ tableView: false,
+ key: 'dataGrid',
+ type: 'datagrid',
+ input: true,
+ components: [
{
- label: 'Yes',
- value: 'yes',
- shortcut: ''
+ label: 'Container',
+ tableView: false,
+ key: 'container',
+ type: 'container',
+ input: true,
+ components: [
+ {
+ label: 'Radio',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: false,
+ values: [
+ {
+ label: 'Yes',
+ value: 'yes',
+ shortcut: '',
+ },
+ {
+ label: 'No',
+ value: 'no',
+ shortcut: '',
+ },
+ ],
+ validate: {
+ required: true,
+ },
+ key: 'radio1',
+ type: 'radio',
+ input: true,
+ },
+ {
+ label: 'Radio',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: false,
+ values: [
+ {
+ label: 'one',
+ value: 'one',
+ shortcut: '',
+ },
+ {
+ label: 'two',
+ value: 'two',
+ shortcut: '',
+ },
+ {
+ label: 'three',
+ value: 'three',
+ shortcut: '',
+ },
+ {
+ label: 'four',
+ value: 'four',
+ shortcut: '',
+ },
+ ],
+ validate: {
+ required: true,
+ },
+ key: 'radio2',
+ conditional: {
+ show: true,
+ when: 'dataGrid.container.radio1',
+ eq: 'yes',
+ },
+ type: 'radio',
+ input: true,
+ },
+ ],
},
- {
- label: 'No',
- value: 'no',
- shortcut: ''
- }
- ],
- validate: {
- required: true
- },
- key: 'radio1',
- type: 'radio',
- input: true
- },
- {
- label: 'Radio',
- optionsLabelPosition: 'right',
- inline: false,
- tableView: false,
- values: [
- {
- label: 'one',
- value: 'one',
- shortcut: ''
- },
- {
- label: 'two',
- value: 'two',
- shortcut: ''
- },
- {
- label: 'three',
- value: 'three',
- shortcut: ''
- },
- {
- label: 'four',
- value: 'four',
- shortcut: ''
- }
- ],
- validate: {
- required: true
- },
- key: 'radio2',
- conditional: {
- show: true,
- when: 'dataGrid.container.radio1',
- eq: 'yes'
- },
- type: 'radio',
- input: true
- }
- ]
- }
- ]
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false
- }
- ],
- title: 'FJs',
- display: 'form',
- name: 'fJs',
- path: 'fjs',
+ ],
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ title: 'FJs',
+ display: 'form',
+ name: 'fJs',
+ path: 'fjs',
};
diff --git a/test/forms/dataGridOnBlurValidation.d.ts b/test/forms/dataGridOnBlurValidation.d.ts
index 861cc3dc3f..8fa1880b4a 100644
--- a/test/forms/dataGridOnBlurValidation.d.ts
+++ b/test/forms/dataGridOnBlurValidation.d.ts
@@ -3,45 +3,48 @@ declare namespace _default {
const type: string;
const tags: never[];
const owner: string;
- const components: ({
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- defaultOpen: boolean;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- tableView: boolean;
- defaultValue: {}[];
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- validateOn: string;
- validate: {
- minLength: number;
- };
- key: string;
- type: string;
- input: boolean;
- }[];
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- defaultOpen?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- defaultValue?: undefined;
- components?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ reorder: boolean;
+ addAnotherPosition: string;
+ defaultOpen: boolean;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ tableView: boolean;
+ defaultValue: {}[];
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ validateOn: string;
+ validate: {
+ minLength: number;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ defaultOpen?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ defaultValue?: undefined;
+ components?: undefined;
+ }
+ )[];
const controller: string;
const revisions: string;
const _vid: number;
diff --git a/test/forms/dataGridOnBlurValidation.js b/test/forms/dataGridOnBlurValidation.js
index bf3f7e1938..26ce695f45 100644
--- a/test/forms/dataGridOnBlurValidation.js
+++ b/test/forms/dataGridOnBlurValidation.js
@@ -1,74 +1,62 @@
export default {
- '_id': '5ed62e449173583f4c5e9962',
- 'type': 'form',
- 'tags': [
-
- ],
- 'owner': '5e05a6b7549cdc2ece30c6b0',
- 'components': [
- {
- 'label': 'Data Grid',
- 'reorder': false,
- 'addAnotherPosition': 'bottom',
- 'defaultOpen': false,
- 'layoutFixed': false,
- 'enableRowGroups': false,
- 'tableView': false,
- 'defaultValue': [
+ _id: '5ed62e449173583f4c5e9962',
+ type: 'form',
+ tags: [],
+ owner: '5e05a6b7549cdc2ece30c6b0',
+ components: [
{
-
- }
- ],
- 'key': 'dataGrid',
- 'type': 'datagrid',
- 'input': true,
- 'components': [
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ defaultOpen: false,
+ layoutFixed: false,
+ enableRowGroups: false,
+ tableView: false,
+ defaultValue: [{}],
+ key: 'dataGrid',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ validateOn: 'blur',
+ validate: {
+ minLength: 5,
+ },
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
{
- 'label': 'Text Field',
- 'tableView': true,
- 'validateOn': 'blur',
- 'validate': {
- 'minLength': 5
- },
- 'key': 'textField',
- 'type': 'textfield',
- 'input': true
- }
- ]
- },
- {
- 'type': 'button',
- 'label': 'Submit',
- 'key': 'submit',
- 'disableOnInvalid': true,
- 'input': true,
- 'tableView': false
- }
- ],
- 'controller': '',
- 'revisions': '',
- '_vid': 0,
- 'title': 'ValidateOnBlur',
- 'display': 'form',
- 'access': [
- {
- 'roles': [
- '5e96e79ee1c3ad3178454100',
- '5e96e79ee1c3ad3178454101',
- '5e96e79ee1c3ad3178454102'
- ],
- 'type': 'read_all'
- }
- ],
- 'submissionAccess': [
-
- ],
- 'settings': {
-
- },
- 'properties': {
-
- },
- 'name': 'validateOnBlur',
- 'path': 'validateonblur'
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ controller: '',
+ revisions: '',
+ _vid: 0,
+ title: 'ValidateOnBlur',
+ display: 'form',
+ access: [
+ {
+ roles: [
+ '5e96e79ee1c3ad3178454100',
+ '5e96e79ee1c3ad3178454101',
+ '5e96e79ee1c3ad3178454102',
+ ],
+ type: 'read_all',
+ },
+ ],
+ submissionAccess: [],
+ settings: {},
+ properties: {},
+ name: 'validateOnBlur',
+ path: 'validateonblur',
};
diff --git a/test/forms/dataGridWithConditionalColumn.d.ts b/test/forms/dataGridWithConditionalColumn.d.ts
index 576563ca27..cdb46e05c5 100644
--- a/test/forms/dataGridWithConditionalColumn.d.ts
+++ b/test/forms/dataGridWithConditionalColumn.d.ts
@@ -3,466 +3,473 @@ declare namespace _default {
const type: string;
const tags: never[];
const owner: string;
- const components: ({
- label: string;
- labelPosition: string;
- placeholder: string;
- description: string;
- tooltip: string;
- prefix: string;
- suffix: string;
- widget: {
- type: string;
- };
- inputMask: string;
- allowMultipleMasks: boolean;
- customClass: string;
- tabindex: string;
- autocomplete: string;
- hidden: boolean;
- hideLabel: boolean;
- showWordCount: boolean;
- showCharCount: boolean;
- mask: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- multiple: boolean;
- persistent: boolean;
- inputFormat: string;
- protected: boolean;
- dbIndex: boolean;
- case: string;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- pattern: string;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- minLength: string;
- maxLength: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- unique: boolean;
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- input: boolean;
- refreshOn: string;
- inputType: string;
- id: string;
- defaultValue: null;
- disableAddingRemovingRows?: undefined;
- conditionalAddButton?: undefined;
- reorder?: undefined;
- addAnother?: undefined;
- addAnotherPosition?: undefined;
- defaultOpen?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- tree?: undefined;
- components?: undefined;
- size?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- dataGridLabel?: undefined;
- } | {
- label: string;
- labelPosition: string;
- description: string;
- tooltip: string;
- disableAddingRemovingRows: boolean;
- conditionalAddButton: string;
- reorder: boolean;
- addAnother: string;
- addAnotherPosition: string;
- defaultOpen: boolean;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- customClass: string;
- tabindex: string;
- hidden: boolean;
- hideLabel: boolean;
- autofocus: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- defaultValue: {}[];
- persistent: boolean;
- protected: boolean;
- dbIndex: boolean;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- minLength: string;
- maxLength: string;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- pattern?: undefined;
- };
- unique: boolean;
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- input: boolean;
- placeholder: string;
- prefix: string;
- suffix: string;
- multiple: boolean;
- refreshOn: string;
- widget: null;
- showCharCount: boolean;
- showWordCount: boolean;
- allowMultipleMasks: boolean;
- tree: boolean;
- components: ({
- label: string;
- labelPosition: string;
- placeholder: string;
- description: string;
- tooltip: string;
- prefix: string;
- suffix: string;
- widget: {
- type: string;
- };
- customClass: string;
- tabindex: string;
- autocomplete: string;
- hidden: boolean;
- hideLabel: boolean;
- mask: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- multiple: boolean;
- persistent: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- protected: boolean;
- dbIndex: boolean;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- min: string;
- max: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- step: string;
- integer: string;
- };
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: boolean;
- when: string;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- input: boolean;
- unique: boolean;
- refreshOn: string;
- showCharCount: boolean;
- showWordCount: boolean;
- allowMultipleMasks: boolean;
- id: string;
- defaultValue: null;
- } | {
- label: string;
- labelPosition: string;
- placeholder: string;
- description: string;
- tooltip: string;
- prefix: string;
- suffix: string;
- widget: {
- type: string;
- };
- customClass: string;
- tabindex: string;
- autocomplete: string;
- hidden: boolean;
- hideLabel: boolean;
- mask: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- multiple: boolean;
- persistent: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- protected: boolean;
- dbIndex: boolean;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- min: string;
- max: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- step: string;
- integer: string;
- };
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- input: boolean;
- unique: boolean;
- refreshOn: string;
- showCharCount: boolean;
- showWordCount: boolean;
- allowMultipleMasks: boolean;
- id: string;
- defaultValue: null;
- })[];
- id: string;
- inputMask?: undefined;
- autocomplete?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- inputFormat?: undefined;
- case?: undefined;
- inputType?: undefined;
- size?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- dataGridLabel?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- size: string;
- block: boolean;
- action: string;
- disableOnInvalid: boolean;
- theme: string;
- input: boolean;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- tableView: boolean;
- modalEdit: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- widget: {
- type: string;
- };
- attributes: {};
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- pattern?: undefined;
- customMessage?: undefined;
- json?: undefined;
- minLength?: undefined;
- maxLength?: undefined;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- json?: undefined;
- };
- overlay: {
- style: string;
- left: string;
- top: string;
- width: string;
- height: string;
- page?: undefined;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- properties: {};
- allowMultipleMasks: boolean;
- leftIcon: string;
- rightIcon: string;
- dataGridLabel: boolean;
- id: string;
- inputMask?: undefined;
- autocomplete?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- inputFormat?: undefined;
- case?: undefined;
- tags?: undefined;
- logic?: undefined;
- inputType?: undefined;
- disableAddingRemovingRows?: undefined;
- conditionalAddButton?: undefined;
- reorder?: undefined;
- addAnother?: undefined;
- addAnotherPosition?: undefined;
- defaultOpen?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- tree?: undefined;
- components?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ labelPosition: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ prefix: string;
+ suffix: string;
+ widget: {
+ type: string;
+ };
+ inputMask: string;
+ allowMultipleMasks: boolean;
+ customClass: string;
+ tabindex: string;
+ autocomplete: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ showWordCount: boolean;
+ showCharCount: boolean;
+ mask: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ multiple: boolean;
+ persistent: boolean;
+ inputFormat: string;
+ protected: boolean;
+ dbIndex: boolean;
+ case: string;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ pattern: string;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ minLength: string;
+ maxLength: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ unique: boolean;
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ input: boolean;
+ refreshOn: string;
+ inputType: string;
+ id: string;
+ defaultValue: null;
+ disableAddingRemovingRows?: undefined;
+ conditionalAddButton?: undefined;
+ reorder?: undefined;
+ addAnother?: undefined;
+ addAnotherPosition?: undefined;
+ defaultOpen?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ tree?: undefined;
+ components?: undefined;
+ size?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ dataGridLabel?: undefined;
+ }
+ | {
+ label: string;
+ labelPosition: string;
+ description: string;
+ tooltip: string;
+ disableAddingRemovingRows: boolean;
+ conditionalAddButton: string;
+ reorder: boolean;
+ addAnother: string;
+ addAnotherPosition: string;
+ defaultOpen: boolean;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ customClass: string;
+ tabindex: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ autofocus: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ defaultValue: {}[];
+ persistent: boolean;
+ protected: boolean;
+ dbIndex: boolean;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ minLength: string;
+ maxLength: string;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ pattern?: undefined;
+ };
+ unique: boolean;
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ input: boolean;
+ placeholder: string;
+ prefix: string;
+ suffix: string;
+ multiple: boolean;
+ refreshOn: string;
+ widget: null;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ allowMultipleMasks: boolean;
+ tree: boolean;
+ components: (
+ | {
+ label: string;
+ labelPosition: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ prefix: string;
+ suffix: string;
+ widget: {
+ type: string;
+ };
+ customClass: string;
+ tabindex: string;
+ autocomplete: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ mask: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ multiple: boolean;
+ persistent: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ protected: boolean;
+ dbIndex: boolean;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ min: string;
+ max: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ step: string;
+ integer: string;
+ };
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: boolean;
+ when: string;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ input: boolean;
+ unique: boolean;
+ refreshOn: string;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ allowMultipleMasks: boolean;
+ id: string;
+ defaultValue: null;
+ }
+ | {
+ label: string;
+ labelPosition: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ prefix: string;
+ suffix: string;
+ widget: {
+ type: string;
+ };
+ customClass: string;
+ tabindex: string;
+ autocomplete: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ mask: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ multiple: boolean;
+ persistent: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ protected: boolean;
+ dbIndex: boolean;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ min: string;
+ max: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ step: string;
+ integer: string;
+ };
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ input: boolean;
+ unique: boolean;
+ refreshOn: string;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ allowMultipleMasks: boolean;
+ id: string;
+ defaultValue: null;
+ }
+ )[];
+ id: string;
+ inputMask?: undefined;
+ autocomplete?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ inputFormat?: undefined;
+ case?: undefined;
+ inputType?: undefined;
+ size?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ dataGridLabel?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ size: string;
+ block: boolean;
+ action: string;
+ disableOnInvalid: boolean;
+ theme: string;
+ input: boolean;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ tableView: boolean;
+ modalEdit: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ widget: {
+ type: string;
+ };
+ attributes: {};
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ pattern?: undefined;
+ customMessage?: undefined;
+ json?: undefined;
+ minLength?: undefined;
+ maxLength?: undefined;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json?: undefined;
+ };
+ overlay: {
+ style: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ page?: undefined;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ properties: {};
+ allowMultipleMasks: boolean;
+ leftIcon: string;
+ rightIcon: string;
+ dataGridLabel: boolean;
+ id: string;
+ inputMask?: undefined;
+ autocomplete?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ inputFormat?: undefined;
+ case?: undefined;
+ tags?: undefined;
+ logic?: undefined;
+ inputType?: undefined;
+ disableAddingRemovingRows?: undefined;
+ conditionalAddButton?: undefined;
+ reorder?: undefined;
+ addAnother?: undefined;
+ addAnotherPosition?: undefined;
+ defaultOpen?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ tree?: undefined;
+ components?: undefined;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/dataGridWithConditionalColumn.js b/test/forms/dataGridWithConditionalColumn.js
index 10d3005d14..c50cf045b0 100644
--- a/test/forms/dataGridWithConditionalColumn.js
+++ b/test/forms/dataGridWithConditionalColumn.js
@@ -1,409 +1,416 @@
export default {
- '_id': '5fc8994c31aa8d1afd551812',
- 'type': 'form',
- 'tags': [],
- 'owner': '5e4aa9cf4037892ed27d5550',
- 'components': [{
- 'label': 'Text Field',
- 'labelPosition': 'top',
- 'placeholder': '',
- 'description': '',
- 'tooltip': '',
- 'prefix': '',
- 'suffix': '',
- 'widget': {
- 'type': 'input'
- },
- 'inputMask': '',
- 'allowMultipleMasks': false,
- 'customClass': '',
- 'tabindex': '',
- 'autocomplete': '',
- 'hidden': false,
- 'hideLabel': false,
- 'showWordCount': false,
- 'showCharCount': false,
- 'mask': false,
- 'autofocus': false,
- 'spellcheck': true,
- 'disabled': false,
- 'tableView': true,
- 'modalEdit': false,
- 'multiple': false,
- 'persistent': true,
- 'inputFormat': 'plain',
- 'protected': false,
- 'dbIndex': false,
- 'case': '',
- 'encrypted': false,
- 'redrawOn': '',
- 'clearOnHide': true,
- 'customDefaultValue': '',
- 'calculateValue': '',
- 'calculateServer': false,
- 'allowCalculateOverride': false,
- 'validateOn': 'change',
- 'validate': {
- 'required': false,
- 'pattern': '',
- 'customMessage': '',
- 'custom': '',
- 'customPrivate': false,
- 'json': '',
- 'minLength': '',
- 'maxLength': '',
- 'strictDateValidation': false,
- 'multiple': false,
- 'unique': false
- },
- 'unique': false,
- 'errorLabel': '',
- 'key': 'textField',
- 'tags': [],
- 'properties': {},
- 'conditional': {
- 'show': null,
- 'when': null,
- 'eq': '',
- 'json': ''
- },
- 'customConditional': '',
- 'logic': [],
- 'attributes': {},
- 'overlay': {
- 'style': '',
- 'page': '',
- 'left': '',
- 'top': '',
- 'width': '',
- 'height': ''
- },
- 'type': 'textfield',
- 'input': true,
- 'refreshOn': '',
- 'inputType': 'text',
- 'id': 'ellcd4f000000000',
- 'defaultValue': null
- }, {
- 'label': 'Data Grid',
- 'labelPosition': 'top',
- 'description': '',
- 'tooltip': '',
- 'disableAddingRemovingRows': false,
- 'conditionalAddButton': '',
- 'reorder': false,
- 'addAnother': '',
- 'addAnotherPosition': 'bottom',
- 'defaultOpen': false,
- 'layoutFixed': false,
- 'enableRowGroups': false,
- 'initEmpty': false,
- 'customClass': '',
- 'tabindex': '',
- 'hidden': false,
- 'hideLabel': false,
- 'autofocus': false,
- 'disabled': false,
- 'tableView': false,
- 'modalEdit': false,
- 'defaultValue': [{}],
- 'persistent': true,
- 'protected': false,
- 'dbIndex': false,
- 'encrypted': false,
- 'redrawOn': '',
- 'clearOnHide': true,
- 'customDefaultValue': '',
- 'calculateValue': '',
- 'calculateServer': false,
- 'allowCalculateOverride': false,
- 'validateOn': 'change',
- 'validate': {
- 'required': false,
- 'minLength': '',
- 'maxLength': '',
- 'customMessage': '',
- 'custom': '',
- 'customPrivate': false,
- 'json': '',
- 'strictDateValidation': false,
- 'multiple': false,
- 'unique': false
- },
- 'unique': false,
- 'errorLabel': '',
- 'key': 'dataGrid',
- 'tags': [],
- 'properties': {},
- 'conditional': {
- 'show': null,
- 'when': null,
- 'eq': '',
- 'json': ''
- },
- 'customConditional': '',
- 'logic': [],
- 'attributes': {},
- 'overlay': {
- 'style': '',
- 'page': '',
- 'left': '',
- 'top': '',
- 'width': '',
- 'height': ''
- },
- 'type': 'datagrid',
- 'input': true,
- 'placeholder': '',
- 'prefix': '',
- 'suffix': '',
- 'multiple': false,
- 'refreshOn': '',
- 'widget': null,
- 'showCharCount': false,
- 'showWordCount': false,
- 'allowMultipleMasks': false,
- 'tree': true,
- 'components': [{
- 'label': 'Number Cond',
- 'labelPosition': 'top',
- 'placeholder': '',
- 'description': '',
- 'tooltip': '',
- 'prefix': '',
- 'suffix': '',
- 'widget': {
- 'type': 'input'
- },
- 'customClass': '',
- 'tabindex': '',
- 'autocomplete': '',
- 'hidden': false,
- 'hideLabel': false,
- 'mask': false,
- 'autofocus': false,
- 'spellcheck': true,
- 'disabled': false,
- 'tableView': false,
- 'modalEdit': false,
- 'multiple': false,
- 'persistent': true,
- 'delimiter': false,
- 'requireDecimal': false,
- 'inputFormat': 'plain',
- 'protected': false,
- 'dbIndex': false,
- 'encrypted': false,
- 'redrawOn': '',
- 'clearOnHide': true,
- 'customDefaultValue': '',
- 'calculateValue': '',
- 'calculateServer': false,
- 'allowCalculateOverride': false,
- 'validateOn': 'change',
- 'validate': {
- 'required': false,
- 'customMessage': '',
- 'custom': '',
- 'customPrivate': false,
- 'json': '',
- 'min': '',
- 'max': '',
- 'strictDateValidation': false,
- 'multiple': false,
- 'unique': false,
- 'step': 'any',
- 'integer': ''
- },
- 'errorLabel': '',
- 'key': 'numberCond',
- 'tags': [],
- 'properties': {},
- 'conditional': {
- 'show': true,
- 'when': 'textField',
- 'eq': 'show',
- 'json': ''
- },
- 'customConditional': '',
- 'logic': [],
- 'attributes': {},
- 'overlay': {
- 'style': '',
- 'page': '',
- 'left': '',
- 'top': '',
- 'width': '',
- 'height': ''
- },
- 'type': 'number',
- 'input': true,
- 'unique': false,
- 'refreshOn': '',
- 'showCharCount': false,
- 'showWordCount': false,
- 'allowMultipleMasks': false,
- 'id': 'epoubm80',
- 'defaultValue': null
- }, {
- 'label': 'Number',
- 'labelPosition': 'top',
- 'placeholder': '',
- 'description': '',
- 'tooltip': '',
- 'prefix': '',
- 'suffix': '',
- 'widget': {
- 'type': 'input'
- },
- 'customClass': '',
- 'tabindex': '',
- 'autocomplete': '',
- 'hidden': false,
- 'hideLabel': false,
- 'mask': false,
- 'autofocus': false,
- 'spellcheck': true,
- 'disabled': false,
- 'tableView': false,
- 'modalEdit': false,
- 'multiple': false,
- 'persistent': true,
- 'delimiter': false,
- 'requireDecimal': false,
- 'inputFormat': 'plain',
- 'protected': false,
- 'dbIndex': false,
- 'encrypted': false,
- 'redrawOn': '',
- 'clearOnHide': true,
- 'customDefaultValue': '',
- 'calculateValue': '',
- 'calculateServer': false,
- 'allowCalculateOverride': false,
- 'validateOn': 'change',
- 'validate': {
- 'required': false,
- 'customMessage': '',
- 'custom': '',
- 'customPrivate': false,
- 'json': '',
- 'min': '',
- 'max': '',
- 'strictDateValidation': false,
- 'multiple': false,
- 'unique': false,
- 'step': 'any',
- 'integer': ''
- },
- 'errorLabel': '',
- 'key': 'number',
- 'tags': [],
- 'properties': {},
- 'conditional': {
- 'show': null,
- 'when': null,
- 'eq': '',
- 'json': ''
- },
- 'customConditional': '',
- 'logic': [],
- 'attributes': {},
- 'overlay': {
- 'style': '',
- 'page': '',
- 'left': '',
- 'top': '',
- 'width': '',
- 'height': ''
- },
- 'type': 'number',
- 'input': true,
- 'unique': false,
- 'refreshOn': '',
- 'showCharCount': false,
- 'showWordCount': false,
- 'allowMultipleMasks': false,
- 'id': 'eq8br4m00',
- 'defaultValue': null
- }],
- 'id': 'ee1lkow'
- }, {
- 'type': 'button',
- 'label': 'Submit',
- 'key': 'submit',
- 'size': 'md',
- 'block': false,
- 'action': 'submit',
- 'disableOnInvalid': true,
- 'theme': 'primary',
- 'input': true,
- 'placeholder': '',
- 'prefix': '',
- 'customClass': '',
- 'suffix': '',
- 'multiple': false,
- 'defaultValue': null,
- 'protected': false,
- 'unique': false,
- 'persistent': false,
- 'hidden': false,
- 'clearOnHide': true,
- 'refreshOn': '',
- 'redrawOn': '',
- 'tableView': false,
- 'modalEdit': false,
- 'labelPosition': 'top',
- 'description': '',
- 'errorLabel': '',
- 'tooltip': '',
- 'hideLabel': false,
- 'tabindex': '',
- 'disabled': false,
- 'autofocus': false,
- 'dbIndex': false,
- 'customDefaultValue': '',
- 'calculateValue': '',
- 'calculateServer': false,
- 'widget': {
- 'type': 'input'
- },
- 'attributes': {},
- 'validateOn': 'change',
- 'validate': {
- 'required': false,
- 'custom': '',
- 'customPrivate': false,
- 'strictDateValidation': false,
- 'multiple': false,
- 'unique': false
- },
- 'conditional': {
- 'show': null,
- 'when': null,
- 'eq': ''
- },
- 'overlay': {
- 'style': '',
- 'left': '',
- 'top': '',
- 'width': '',
- 'height': ''
- },
- 'allowCalculateOverride': false,
- 'encrypted': false,
- 'showCharCount': false,
- 'showWordCount': false,
- 'properties': {},
- 'allowMultipleMasks': false,
- 'leftIcon': '',
- 'rightIcon': '',
- 'dataGridLabel': true,
- 'id': 'egxeqz'
- }],
- 'title': 'testDataGrid',
- 'display': 'form',
- 'name': 'testDataGrid',
- 'path': 'testdatagrid',
- 'machineName': 'hznolkjxuncjxep:testDataGrid'
-}
+ _id: '5fc8994c31aa8d1afd551812',
+ type: 'form',
+ tags: [],
+ owner: '5e4aa9cf4037892ed27d5550',
+ components: [
+ {
+ label: 'Text Field',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ inputMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ autocomplete: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ pattern: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength: '',
+ maxLength: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'textField',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ inputType: 'text',
+ id: 'ellcd4f000000000',
+ defaultValue: null,
+ },
+ {
+ label: 'Data Grid',
+ labelPosition: 'top',
+ description: '',
+ tooltip: '',
+ disableAddingRemovingRows: false,
+ conditionalAddButton: '',
+ reorder: false,
+ addAnother: '',
+ addAnotherPosition: 'bottom',
+ defaultOpen: false,
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ autofocus: false,
+ disabled: false,
+ tableView: false,
+ modalEdit: false,
+ defaultValue: [{}],
+ persistent: true,
+ protected: false,
+ dbIndex: false,
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'dataGrid',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'datagrid',
+ input: true,
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ refreshOn: '',
+ widget: null,
+ showCharCount: false,
+ showWordCount: false,
+ allowMultipleMasks: false,
+ tree: true,
+ components: [
+ {
+ label: 'Number Cond',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ customClass: '',
+ tabindex: '',
+ autocomplete: '',
+ hidden: false,
+ hideLabel: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: false,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ min: '',
+ max: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ step: 'any',
+ integer: '',
+ },
+ errorLabel: '',
+ key: 'numberCond',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: true,
+ when: 'textField',
+ eq: 'show',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'number',
+ input: true,
+ unique: false,
+ refreshOn: '',
+ showCharCount: false,
+ showWordCount: false,
+ allowMultipleMasks: false,
+ id: 'epoubm80',
+ defaultValue: null,
+ },
+ {
+ label: 'Number',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ customClass: '',
+ tabindex: '',
+ autocomplete: '',
+ hidden: false,
+ hideLabel: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: false,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ min: '',
+ max: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ step: 'any',
+ integer: '',
+ },
+ errorLabel: '',
+ key: 'number',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'number',
+ input: true,
+ unique: false,
+ refreshOn: '',
+ showCharCount: false,
+ showWordCount: false,
+ allowMultipleMasks: false,
+ id: 'eq8br4m00',
+ defaultValue: null,
+ },
+ ],
+ id: 'ee1lkow',
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ size: 'md',
+ block: false,
+ action: 'submit',
+ disableOnInvalid: true,
+ theme: 'primary',
+ input: true,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: true,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: {
+ type: 'input',
+ },
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ leftIcon: '',
+ rightIcon: '',
+ dataGridLabel: true,
+ id: 'egxeqz',
+ },
+ ],
+ title: 'testDataGrid',
+ display: 'form',
+ name: 'testDataGrid',
+ path: 'testdatagrid',
+ machineName: 'hznolkjxuncjxep:testDataGrid',
+};
diff --git a/test/forms/dataGridWithInitEmpty.d.ts b/test/forms/dataGridWithInitEmpty.d.ts
index d70ccfe397..748961db51 100644
--- a/test/forms/dataGridWithInitEmpty.d.ts
+++ b/test/forms/dataGridWithInitEmpty.d.ts
@@ -7,95 +7,102 @@ declare namespace _default {
export default _default;
declare namespace form {
const type: string;
- const components: ({
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- defaultOpen: boolean;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- tableView: boolean;
- defaultValue: {
- textField: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- components: {
- collapsible: boolean;
- key: string;
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- }[];
- disableOnInvalid?: undefined;
- } | {
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- defaultOpen: boolean;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- tableView: boolean;
- defaultValue: {
- textArea: string;
- number: number;
- }[];
- key: string;
- type: string;
- input: boolean;
- components: ({
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- autoExpand?: undefined;
- } | {
- label: string;
- autoExpand: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- })[];
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- defaultOpen?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- defaultValue?: undefined;
- components?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ reorder: boolean;
+ addAnotherPosition: string;
+ defaultOpen: boolean;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ tableView: boolean;
+ defaultValue: {
+ textField: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ collapsible: boolean;
+ key: string;
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ }[];
+ disableOnInvalid?: undefined;
+ }
+ | {
+ label: string;
+ reorder: boolean;
+ addAnotherPosition: string;
+ defaultOpen: boolean;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ tableView: boolean;
+ defaultValue: {
+ textArea: string;
+ number: number;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ components: (
+ | {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ autoExpand?: undefined;
+ }
+ | {
+ label: string;
+ autoExpand: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ }
+ )[];
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ defaultOpen?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ defaultValue?: undefined;
+ components?: undefined;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/dataGridWithInitEmpty.js b/test/forms/dataGridWithInitEmpty.js
index d717778361..0be7b6c5f0 100644
--- a/test/forms/dataGridWithInitEmpty.js
+++ b/test/forms/dataGridWithInitEmpty.js
@@ -1,137 +1,160 @@
const form = {
- 'type': 'form',
- 'components': [{
- 'label': 'Data Grid',
- 'reorder': false,
- 'addAnotherPosition': 'bottom',
- 'defaultOpen': false,
- 'layoutFixed': false,
- 'enableRowGroups': false,
- 'initEmpty': true,
- 'tableView': false,
- 'defaultValue': [{
- 'textField': ''
- }],
- 'key': 'dataGrid',
- 'type': 'datagrid',
- 'input': true,
- 'components': [{
- 'collapsible': false,
- 'key': 'panel',
- 'type': 'panel',
- 'label': 'Panel',
- 'input': false,
- 'tableView': false,
- 'components': [{
- 'label': 'Text Field',
- 'tableView': true,
- 'key': 'textField',
- 'type': 'textfield',
- 'input': true
- }]
- }]
- }, {
- 'label': 'Data Grid',
- 'reorder': false,
- 'addAnotherPosition': 'bottom',
- 'defaultOpen': false,
- 'layoutFixed': false,
- 'enableRowGroups': false,
- 'initEmpty': true,
- 'tableView': false,
- 'defaultValue': [{
- 'textArea': '',
- 'number': 1
- }, {
- 'textArea': '',
- 'number': 2
- }, {
- 'textArea': '',
- 'number': 3
- }],
- 'key': 'dataGrid1',
- 'type': 'datagrid',
- 'input': true,
- 'components': [{
- 'label': 'Number',
- 'mask': false,
- 'spellcheck': true,
- 'tableView': false,
- 'delimiter': false,
- 'requireDecimal': false,
- 'inputFormat': 'plain',
- 'key': 'number',
- 'type': 'number',
- 'input': true
- }, {
- 'label': 'Text Area',
- 'autoExpand': false,
- 'tableView': true,
- 'key': 'textArea',
- 'type': 'textarea',
- 'input': true
- }]
- }, {
- 'type': 'button',
- 'label': 'Submit',
- 'key': 'submit',
- 'disableOnInvalid': true,
- 'input': true,
- 'tableView': false
- }],
- 'title': '3242',
- 'display': 'form',
- 'name': '3242',
- 'path': '3242',
- 'machineName': 'lkjqkdpewpfvste:3242'
+ type: 'form',
+ components: [
+ {
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ defaultOpen: false,
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: true,
+ tableView: false,
+ defaultValue: [
+ {
+ textField: '',
+ },
+ ],
+ key: 'dataGrid',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ collapsible: false,
+ key: 'panel',
+ type: 'panel',
+ label: 'Panel',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ ],
+ },
+ {
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ defaultOpen: false,
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: true,
+ tableView: false,
+ defaultValue: [
+ {
+ textArea: '',
+ number: 1,
+ },
+ {
+ textArea: '',
+ number: 2,
+ },
+ {
+ textArea: '',
+ number: 3,
+ },
+ ],
+ key: 'dataGrid1',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Number',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ {
+ label: 'Text Area',
+ autoExpand: false,
+ tableView: true,
+ key: 'textArea',
+ type: 'textarea',
+ input: true,
+ },
+ ],
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ title: '3242',
+ display: 'form',
+ name: '3242',
+ path: '3242',
+ machineName: 'lkjqkdpewpfvste:3242',
};
const submission1 = {
- data: {
- dataGrid: [],
- dataGrid1: [],
- submit: true
- }
+ data: {
+ dataGrid: [],
+ dataGrid1: [],
+ submit: true,
+ },
};
const submission2 = {
- data: {
- dataGrid: [{
- textField: ''
- }],
- dataGrid1: [{
- textArea: '',
- number: 1
- }],
- submit: true
- }
+ data: {
+ dataGrid: [
+ {
+ textField: '',
+ },
+ ],
+ dataGrid1: [
+ {
+ textArea: '',
+ number: 1,
+ },
+ ],
+ submit: true,
+ },
};
const submission3 = {
- 'data': {
- 'dataGrid': [{
- 'textField': 'test1'
- },
- {
- 'textField': 'test2'
- }
- ],
- 'dataGrid1': [{
- 'textArea': 'test3',
- 'number': 111
- },
- {
- 'textArea': 'test4',
- 'number': 222
- }
- ],
- 'submit': true
- }
-}
+ data: {
+ dataGrid: [
+ {
+ textField: 'test1',
+ },
+ {
+ textField: 'test2',
+ },
+ ],
+ dataGrid1: [
+ {
+ textArea: 'test3',
+ number: 111,
+ },
+ {
+ textArea: 'test4',
+ number: 222,
+ },
+ ],
+ submit: true,
+ },
+};
export default {
- form: form,
- submission1: submission1,
- submission2: submission2,
- submission3: submission3,
+ form: form,
+ submission1: submission1,
+ submission2: submission2,
+ submission3: submission3,
};
diff --git a/test/forms/datefields.d.ts b/test/forms/datefields.d.ts
index fb6eec30c4..722a57c4d1 100644
--- a/test/forms/datefields.d.ts
+++ b/test/forms/datefields.d.ts
@@ -1,186 +1,189 @@
declare namespace _default {
const title: string;
namespace form {
- const components: ({
- label: string;
- labelPosition: string;
- displayInTimezone: string;
- useLocaleSettings: boolean;
- allowInput: boolean;
- format: string;
- placeholder: string;
- description: string;
- tooltip: string;
- customClass: string;
- tabindex: string;
- hidden: boolean;
- hideLabel: boolean;
- autofocus: boolean;
- disabled: boolean;
- alwaysEnabled: boolean;
- tableView: boolean;
- enableDate: boolean;
- datePicker: {
- minDate: null;
- maxDate: null;
- showWeeks: boolean;
- startingDay: number;
- initDate: string;
- minMode: string;
- maxMode: string;
- yearRows: number;
- yearColumns: number;
- };
- enableTime: boolean;
- timePicker: {
- showMeridian: boolean;
- hourStep: number;
- minuteStep: number;
- readonlyInput: boolean;
- mousewheel: boolean;
- arrowkeys: boolean;
- };
- multiple: boolean;
- defaultValue: string;
- persistent: boolean;
- protected: boolean;
- dbIndex: boolean;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- allowCalculateOverride: boolean;
- validate: {
- required: boolean;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- strictDateValidation: boolean;
- };
- unique: boolean;
- validateOn: string;
- errorLabel: string;
- key: string;
- type: string;
- input: boolean;
- prefix: string;
- suffix: string;
- refreshOn: string;
- widget: {
- type: string;
- displayInTimezone: string;
- language: string;
- useLocaleSettings: boolean;
- allowInput: boolean;
- mode: string;
- enableTime: boolean;
- noCalendar: boolean;
- format: string;
- defaultValue: string;
- hourIncrement: number;
- minuteIncrement: number;
- time_24hr: boolean;
- minDate: null;
- maxDate: null;
- };
- showCharCount: boolean;
- showWordCount: boolean;
- allowMultipleMasks: boolean;
- timezone: string;
- datepickerMode: string;
- id: string;
- } | {
- label: string;
- labelPosition: string;
- displayInTimezone: string;
- useLocaleSettings: boolean;
- allowInput: boolean;
- format: string;
- placeholder: string;
- description: string;
- tooltip: string;
- customClass: string;
- tabindex: string;
- hidden: boolean;
- hideLabel: boolean;
- autofocus: boolean;
- disabled: boolean;
- alwaysEnabled: boolean;
- tableView: boolean;
- enableDate: boolean;
- datePicker: {
- minDate: null;
- maxDate: null;
- showWeeks: boolean;
- startingDay: number;
- initDate: string;
- minMode: string;
- maxMode: string;
- yearRows: number;
- yearColumns: number;
- };
- enableTime: boolean;
- timePicker: {
- showMeridian: boolean;
- hourStep: number;
- minuteStep: number;
- readonlyInput: boolean;
- mousewheel: boolean;
- arrowkeys: boolean;
- };
- multiple: boolean;
- defaultValue: string;
- persistent: boolean;
- protected: boolean;
- dbIndex: boolean;
- encrypted: boolean;
- clearOnHide: boolean;
- customDefaultValue: string;
- validate: {
- required: boolean;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- strictDateValidation: boolean;
- };
- unique: boolean;
- validateOn: string;
- errorLabel: string;
- key: string;
- type: string;
- input: boolean;
- prefix: string;
- suffix: string;
- refreshOn: string;
- widget: {
- type: string;
- displayInTimezone: string;
- language: string;
- useLocaleSettings: boolean;
- allowInput: boolean;
- mode: string;
- enableTime: boolean;
- noCalendar: boolean;
- format: string;
- defaultValue: string;
- hourIncrement: number;
- minuteIncrement: number;
- time_24hr: boolean;
- minDate: null;
- maxDate: null;
- };
- timezone: string;
- datepickerMode: string;
- redrawOn?: undefined;
- allowCalculateOverride?: undefined;
- showCharCount?: undefined;
- showWordCount?: undefined;
- allowMultipleMasks?: undefined;
- id?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ labelPosition: string;
+ displayInTimezone: string;
+ useLocaleSettings: boolean;
+ allowInput: boolean;
+ format: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ customClass: string;
+ tabindex: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ autofocus: boolean;
+ disabled: boolean;
+ alwaysEnabled: boolean;
+ tableView: boolean;
+ enableDate: boolean;
+ datePicker: {
+ minDate: null;
+ maxDate: null;
+ showWeeks: boolean;
+ startingDay: number;
+ initDate: string;
+ minMode: string;
+ maxMode: string;
+ yearRows: number;
+ yearColumns: number;
+ };
+ enableTime: boolean;
+ timePicker: {
+ showMeridian: boolean;
+ hourStep: number;
+ minuteStep: number;
+ readonlyInput: boolean;
+ mousewheel: boolean;
+ arrowkeys: boolean;
+ };
+ multiple: boolean;
+ defaultValue: string;
+ persistent: boolean;
+ protected: boolean;
+ dbIndex: boolean;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ allowCalculateOverride: boolean;
+ validate: {
+ required: boolean;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ strictDateValidation: boolean;
+ };
+ unique: boolean;
+ validateOn: string;
+ errorLabel: string;
+ key: string;
+ type: string;
+ input: boolean;
+ prefix: string;
+ suffix: string;
+ refreshOn: string;
+ widget: {
+ type: string;
+ displayInTimezone: string;
+ language: string;
+ useLocaleSettings: boolean;
+ allowInput: boolean;
+ mode: string;
+ enableTime: boolean;
+ noCalendar: boolean;
+ format: string;
+ defaultValue: string;
+ hourIncrement: number;
+ minuteIncrement: number;
+ time_24hr: boolean;
+ minDate: null;
+ maxDate: null;
+ };
+ showCharCount: boolean;
+ showWordCount: boolean;
+ allowMultipleMasks: boolean;
+ timezone: string;
+ datepickerMode: string;
+ id: string;
+ }
+ | {
+ label: string;
+ labelPosition: string;
+ displayInTimezone: string;
+ useLocaleSettings: boolean;
+ allowInput: boolean;
+ format: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ customClass: string;
+ tabindex: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ autofocus: boolean;
+ disabled: boolean;
+ alwaysEnabled: boolean;
+ tableView: boolean;
+ enableDate: boolean;
+ datePicker: {
+ minDate: null;
+ maxDate: null;
+ showWeeks: boolean;
+ startingDay: number;
+ initDate: string;
+ minMode: string;
+ maxMode: string;
+ yearRows: number;
+ yearColumns: number;
+ };
+ enableTime: boolean;
+ timePicker: {
+ showMeridian: boolean;
+ hourStep: number;
+ minuteStep: number;
+ readonlyInput: boolean;
+ mousewheel: boolean;
+ arrowkeys: boolean;
+ };
+ multiple: boolean;
+ defaultValue: string;
+ persistent: boolean;
+ protected: boolean;
+ dbIndex: boolean;
+ encrypted: boolean;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ validate: {
+ required: boolean;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ strictDateValidation: boolean;
+ };
+ unique: boolean;
+ validateOn: string;
+ errorLabel: string;
+ key: string;
+ type: string;
+ input: boolean;
+ prefix: string;
+ suffix: string;
+ refreshOn: string;
+ widget: {
+ type: string;
+ displayInTimezone: string;
+ language: string;
+ useLocaleSettings: boolean;
+ allowInput: boolean;
+ mode: string;
+ enableTime: boolean;
+ noCalendar: boolean;
+ format: string;
+ defaultValue: string;
+ hourIncrement: number;
+ minuteIncrement: number;
+ time_24hr: boolean;
+ minDate: null;
+ maxDate: null;
+ };
+ timezone: string;
+ datepickerMode: string;
+ redrawOn?: undefined;
+ allowCalculateOverride?: undefined;
+ showCharCount?: undefined;
+ showWordCount?: undefined;
+ allowMultipleMasks?: undefined;
+ id?: undefined;
+ }
+ )[];
}
const tests: {
'Test date only fields format yyyy-mm-dd'(form: any, done: any): void;
diff --git a/test/forms/datefields.js b/test/forms/datefields.js
index 0f33361044..b2b162f6d8 100644
--- a/test/forms/datefields.js
+++ b/test/forms/datefields.js
@@ -1,201 +1,215 @@
import assert from 'power-assert';
export default {
- title: 'Date Fields Test',
- form: {
- components: [
- {
- 'label': 'Date / Time',
- 'labelPosition': 'top',
- 'displayInTimezone': 'viewer',
- 'useLocaleSettings': false,
- 'allowInput': true,
- 'format': 'yyyy-MM-dd',
- 'placeholder': '',
- 'description': '',
- 'tooltip': '',
- 'customClass': '',
- 'tabindex': '',
- 'hidden': false,
- 'hideLabel': false,
- 'autofocus': false,
- 'disabled': false,
- 'alwaysEnabled': false,
- 'tableView': false,
- 'enableDate': true,
- 'datePicker': {
- 'minDate': null,
- 'maxDate': null,
- 'showWeeks': true,
- 'startingDay': 0,
- 'initDate': '',
- 'minMode': 'day',
- 'maxMode': 'year',
- 'yearRows': 4,
- 'yearColumns': 5
- },
- 'enableTime': false,
- 'timePicker': {
- 'showMeridian': true,
- 'hourStep': 1,
- 'minuteStep': 1,
- 'readonlyInput': false,
- 'mousewheel': true,
- 'arrowkeys': true
- },
- 'multiple': false,
- 'defaultValue': '',
- 'persistent': true,
- 'protected': false,
- 'dbIndex': false,
- 'encrypted': false,
- 'redrawOn': '',
- 'clearOnHide': true,
- 'customDefaultValue': 'value = moment()',
- 'calculateValue': '',
- 'allowCalculateOverride': false,
- 'validate': {
- 'required': false,
- 'customMessage': '',
- 'custom': '',
- 'customPrivate': false,
- 'json': '',
- 'strictDateValidation': false
- },
- 'unique': false,
- 'validateOn': 'change',
- 'errorLabel': '',
- 'key': 'dateTime',
- 'type': 'datetime',
- 'input': true,
- 'prefix': '',
- 'suffix': '
',
- 'refreshOn': '',
- 'widget': {
- 'type': 'calendar',
- 'displayInTimezone': 'viewer',
- 'language': 'en',
- 'useLocaleSettings': false,
- 'allowInput': true,
- 'mode': 'single',
- 'enableTime': false,
- 'noCalendar': false,
- 'format': 'yyyy-MM-dd',
- 'defaultValue': '',
- 'hourIncrement': 1,
- 'minuteIncrement': 1,
- 'time_24hr': false,
- 'minDate': null,
- 'maxDate': null
- },
- 'showCharCount': false,
- 'showWordCount': false,
- 'allowMultipleMasks': false,
- 'timezone': '',
- 'datepickerMode': 'day',
- 'id': 'eqi7zv7'
- },
- {
- 'label': 'DD/MM/YYYY',
- 'labelPosition': 'top',
- 'displayInTimezone': 'viewer',
- 'useLocaleSettings': false,
- 'allowInput': true,
- 'format': 'dd/MM/yyyy',
- 'placeholder': '',
- 'description': '',
- 'tooltip': '',
- 'customClass': '',
- 'tabindex': '',
- 'hidden': false,
- 'hideLabel': false,
- 'autofocus': false,
- 'disabled': false,
- 'alwaysEnabled': false,
- 'tableView': false,
- 'enableDate': true,
- 'datePicker': {
- 'minDate': null,
- 'maxDate': null,
- 'showWeeks': true,
- 'startingDay': 0,
- 'initDate': '',
- 'minMode': 'day',
- 'maxMode': 'year',
- 'yearRows': 4,
- 'yearColumns': 5
- },
- 'enableTime': false,
- 'timePicker': {
- 'showMeridian': true,
- 'hourStep': 1,
- 'minuteStep': 1,
- 'readonlyInput': false,
- 'mousewheel': true,
- 'arrowkeys': true
- },
- 'multiple': false,
- 'defaultValue': '',
- 'persistent': true,
- 'protected': false,
- 'dbIndex': false,
- 'encrypted': false,
- 'clearOnHide': true,
- 'customDefaultValue': 'value = moment();',
- 'validate': {
- 'required': false,
- 'customMessage': '',
- 'custom': '',
- 'customPrivate': false,
- 'json': '',
- 'strictDateValidation': false
+ title: 'Date Fields Test',
+ form: {
+ components: [
+ {
+ label: 'Date / Time',
+ labelPosition: 'top',
+ displayInTimezone: 'viewer',
+ useLocaleSettings: false,
+ allowInput: true,
+ format: 'yyyy-MM-dd',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ autofocus: false,
+ disabled: false,
+ alwaysEnabled: false,
+ tableView: false,
+ enableDate: true,
+ datePicker: {
+ minDate: null,
+ maxDate: null,
+ showWeeks: true,
+ startingDay: 0,
+ initDate: '',
+ minMode: 'day',
+ maxMode: 'year',
+ yearRows: 4,
+ yearColumns: 5,
+ },
+ enableTime: false,
+ timePicker: {
+ showMeridian: true,
+ hourStep: 1,
+ minuteStep: 1,
+ readonlyInput: false,
+ mousewheel: true,
+ arrowkeys: true,
+ },
+ multiple: false,
+ defaultValue: '',
+ persistent: true,
+ protected: false,
+ dbIndex: false,
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: 'value = moment()',
+ calculateValue: '',
+ allowCalculateOverride: false,
+ validate: {
+ required: false,
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ strictDateValidation: false,
+ },
+ unique: false,
+ validateOn: 'change',
+ errorLabel: '',
+ key: 'dateTime',
+ type: 'datetime',
+ input: true,
+ prefix: '',
+ suffix: "
",
+ refreshOn: '',
+ widget: {
+ type: 'calendar',
+ displayInTimezone: 'viewer',
+ language: 'en',
+ useLocaleSettings: false,
+ allowInput: true,
+ mode: 'single',
+ enableTime: false,
+ noCalendar: false,
+ format: 'yyyy-MM-dd',
+ defaultValue: '',
+ hourIncrement: 1,
+ minuteIncrement: 1,
+ time_24hr: false,
+ minDate: null,
+ maxDate: null,
+ },
+ showCharCount: false,
+ showWordCount: false,
+ allowMultipleMasks: false,
+ timezone: '',
+ datepickerMode: 'day',
+ id: 'eqi7zv7',
+ },
+ {
+ label: 'DD/MM/YYYY',
+ labelPosition: 'top',
+ displayInTimezone: 'viewer',
+ useLocaleSettings: false,
+ allowInput: true,
+ format: 'dd/MM/yyyy',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ autofocus: false,
+ disabled: false,
+ alwaysEnabled: false,
+ tableView: false,
+ enableDate: true,
+ datePicker: {
+ minDate: null,
+ maxDate: null,
+ showWeeks: true,
+ startingDay: 0,
+ initDate: '',
+ minMode: 'day',
+ maxMode: 'year',
+ yearRows: 4,
+ yearColumns: 5,
+ },
+ enableTime: false,
+ timePicker: {
+ showMeridian: true,
+ hourStep: 1,
+ minuteStep: 1,
+ readonlyInput: false,
+ mousewheel: true,
+ arrowkeys: true,
+ },
+ multiple: false,
+ defaultValue: '',
+ persistent: true,
+ protected: false,
+ dbIndex: false,
+ encrypted: false,
+ clearOnHide: true,
+ customDefaultValue: 'value = moment();',
+ validate: {
+ required: false,
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ strictDateValidation: false,
+ },
+ unique: false,
+ validateOn: 'change',
+ errorLabel: '',
+ key: 'ddMmYyyy',
+ type: 'datetime',
+ input: true,
+ prefix: '',
+ suffix: "
",
+ refreshOn: '',
+ widget: {
+ type: 'calendar',
+ displayInTimezone: 'viewer',
+ language: 'en',
+ useLocaleSettings: false,
+ allowInput: true,
+ mode: 'single',
+ enableTime: false,
+ noCalendar: false,
+ format: 'dd/MM/yyyy',
+ defaultValue: '',
+ hourIncrement: 1,
+ minuteIncrement: 1,
+ time_24hr: false,
+ minDate: null,
+ maxDate: null,
+ },
+ timezone: '',
+ datepickerMode: 'day',
+ },
+ ],
+ },
+ tests: {
+ 'Test date only fields format yyyy-mm-dd'(form, done) {
+ form.getComponent('dateTime', (component) => {
+ const m = new Date();
+ assert.equal(
+ component.refs.input[0].widget.calendar.altInput.value,
+ `${m.getFullYear()}-${(m.getMonth() + 1)
+ .toString()
+ .padStart(2, '0')}-${m
+ .getDate()
+ .toString()
+ .padStart(2, '0')}`,
+ );
+ done();
+ });
},
- 'unique': false,
- 'validateOn': 'change',
- 'errorLabel': '',
- 'key': 'ddMmYyyy',
- 'type': 'datetime',
- 'input': true,
- 'prefix': '',
- 'suffix': '
',
- 'refreshOn': '',
- 'widget': {
- 'type': 'calendar',
- 'displayInTimezone': 'viewer',
- 'language': 'en',
- 'useLocaleSettings': false,
- 'allowInput': true,
- 'mode': 'single',
- 'enableTime': false,
- 'noCalendar': false,
- 'format': 'dd/MM/yyyy',
- 'defaultValue': '',
- 'hourIncrement': 1,
- 'minuteIncrement': 1,
- 'time_24hr': false,
- 'minDate': null,
- 'maxDate': null
+ 'Test date only fields format dd/mm/yyyy'(form, done) {
+ form.getComponent('ddMmYyyy', (component) => {
+ const m = new Date();
+ assert.equal(
+ component.refs.input[0].widget.calendar.altInput.value,
+ `${m.getDate().toString().padStart(2, '0')}/${(
+ m.getMonth() + 1
+ )
+ .toString()
+ .padStart(2, '0')}/${m.getFullYear()}`,
+ );
+ done();
+ });
},
- 'timezone': '',
- 'datepickerMode': 'day',
- }
-
- ]
- },
- tests: {
- 'Test date only fields format yyyy-mm-dd'(form, done) {
- form.getComponent('dateTime', (component) => {
- const m = new Date();
- assert.equal(component.refs.input[0].widget.calendar.altInput.value, `${m.getFullYear()}-${(m.getMonth() + 1).toString().padStart(2, '0')}-${m.getDate().toString().padStart(2, '0')}`);
- done();
- });
},
- 'Test date only fields format dd/mm/yyyy'(form, done) {
- form.getComponent('ddMmYyyy', (component) => {
- const m = new Date();
- assert.equal(component.refs.input[0].widget.calendar.altInput.value, `${m.getDate().toString().padStart(2, '0')}/${(m.getMonth() + 1).toString().padStart(2, '0')}/${m.getFullYear()}`);
- done();
- });
- }
- }
};
diff --git a/test/forms/disableSubmitButton.json b/test/forms/disableSubmitButton.json
index 76f263a914..bac79e6217 100644
--- a/test/forms/disableSubmitButton.json
+++ b/test/forms/disableSubmitButton.json
@@ -1,62 +1,62 @@
{
- "type": "form",
- "components": [
- {
- "label": "Text Field",
- "tableView": true,
- "validate": {
- "maxLength": 3
- },
- "key": "textField",
- "type": "textfield",
- "input": true
- },
- {
- "label": "S3 Display",
- "tableView": false,
- "storage": "s3",
- "image": true,
- "webcam": true,
- "fileTypes": [
+ "type": "form",
+ "components": [
{
- "value": "",
- "label": ""
- }
- ],
- "multiple": true,
- "validate": {
- "multiple": true
- },
- "key": "upload",
- "type": "file",
- "input": true
- },
- {
- "label": "Upload",
- "tableView": false,
- "storage": "s3",
- "webcam": false,
- "fileTypes": [
+ "label": "Text Field",
+ "tableView": true,
+ "validate": {
+ "maxLength": 3
+ },
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "S3 Display",
+ "tableView": false,
+ "storage": "s3",
+ "image": true,
+ "webcam": true,
+ "fileTypes": [
+ {
+ "value": "",
+ "label": ""
+ }
+ ],
+ "multiple": true,
+ "validate": {
+ "multiple": true
+ },
+ "key": "upload",
+ "type": "file",
+ "input": true
+ },
+ {
+ "label": "Upload",
+ "tableView": false,
+ "storage": "s3",
+ "webcam": false,
+ "fileTypes": [
+ {
+ "label": "",
+ "value": ""
+ }
+ ],
+ "key": "file",
+ "type": "file",
+ "input": true
+ },
{
- "label": "",
- "value": ""
+ "label": "Submit",
+ "showValidations": false,
+ "disableOnInvalid": true,
+ "tableView": false,
+ "key": "submit",
+ "type": "button",
+ "input": true
}
- ],
- "key": "file",
- "type": "file",
- "input": true
- },
- {
- "label": "Submit",
- "showValidations": false,
- "disableOnInvalid": true,
- "tableView": false,
- "key": "submit",
- "type": "button",
- "input": true
- }
- ],
- "title": "filesS3",
- "display": "form",
- "name": "disableSubmitButton"
-}
\ No newline at end of file
+ ],
+ "title": "filesS3",
+ "display": "form",
+ "name": "disableSubmitButton"
+}
diff --git a/test/forms/editGridOpenWhenEmpty.js b/test/forms/editGridOpenWhenEmpty.js
index 731e3a5bbb..9bea1591f0 100644
--- a/test/forms/editGridOpenWhenEmpty.js
+++ b/test/forms/editGridOpenWhenEmpty.js
@@ -4,43 +4,43 @@ export default {
tags: [],
owner: '5e05a6b7549cdc2ece30c6b0',
components: [
- {
- label: 'Edit Grid',
- openWhenEmpty: true,
- tableView: false,
- rowDrafts: false,
- key: 'editGrid',
- type: 'editgrid',
- input: true,
- components: [
- {
- label: 'Text Field',
- applyMaskOn: 'change',
- tableView: true,
- validate: { required: true },
- key: 'textField',
- type: 'textfield',
- input: true
- },
- {
- label: 'Text Area',
- applyMaskOn: 'change',
- autoExpand: false,
- tableView: true,
- key: 'textArea',
- type: 'textarea',
- input: true
- }
- ]
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- input: true,
- tableView: false,
- showValidations: false,
- }
+ {
+ label: 'Edit Grid',
+ openWhenEmpty: true,
+ tableView: false,
+ rowDrafts: false,
+ key: 'editGrid',
+ type: 'editgrid',
+ input: true,
+ components: [
+ {
+ label: 'Text Field',
+ applyMaskOn: 'change',
+ tableView: true,
+ validate: { required: true },
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Text Area',
+ applyMaskOn: 'change',
+ autoExpand: false,
+ tableView: true,
+ key: 'textArea',
+ type: 'textarea',
+ input: true,
+ },
+ ],
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ input: true,
+ tableView: false,
+ showValidations: false,
+ },
],
controller: '',
revisions: '',
@@ -50,12 +50,12 @@ export default {
access: [
{
roles: [
- '5e96e79ee1c3ad3178454100',
- '5e96e79ee1c3ad3178454101',
- '5e96e79ee1c3ad3178454102'
+ '5e96e79ee1c3ad3178454100',
+ '5e96e79ee1c3ad3178454101',
+ '5e96e79ee1c3ad3178454102',
],
- type: 'read_all'
- }
+ type: 'read_all',
+ },
],
submissionAccess: [],
settings: {},
@@ -63,5 +63,3 @@ export default {
name: 'editGrid',
path: 'editgrid',
};
-
-
\ No newline at end of file
diff --git a/test/forms/emailaction.d.ts b/test/forms/emailaction.d.ts
index cb3af33a51..ad7932f068 100644
--- a/test/forms/emailaction.d.ts
+++ b/test/forms/emailaction.d.ts
@@ -1,542 +1,572 @@
declare namespace _default {
const title: string;
namespace form {
- const components: ({
- type: string;
- input: boolean;
- key: string;
- label?: undefined;
- tree?: undefined;
- legend?: undefined;
- components?: undefined;
- tag?: undefined;
- content?: undefined;
- className?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- } | {
- type: string;
- input: boolean;
- label: string;
- key: string;
- tree?: undefined;
- legend?: undefined;
- components?: undefined;
- tag?: undefined;
- content?: undefined;
- className?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- } | {
- type: string;
- input: boolean;
- tree: boolean;
- legend: string;
- components: {
- input: boolean;
- type: string;
- key: string;
- components: ({
- type: string;
- input: boolean;
- label: string;
- key: string;
- placeholder: string;
- template: string;
- defaultValue: string;
- dataSrc: string;
- data: {
- json: string;
- };
- valueProperty: string;
- multiple: boolean;
- validate: {
- required: boolean;
- };
- inputType?: undefined;
- rows?: undefined;
- } | {
- label: string;
- key: string;
- inputType: string;
- defaultValue: string;
- input: boolean;
- placeholder: string;
- type: string;
- multiple: boolean;
- template?: undefined;
- dataSrc?: undefined;
- data?: undefined;
- valueProperty?: undefined;
- validate?: undefined;
- rows?: undefined;
- } | {
- label: string;
- key: string;
- inputType: string;
- defaultValue: string;
- input: boolean;
- placeholder: string;
- type: string;
- multiple: boolean;
- validate: {
- required: boolean;
- };
- template?: undefined;
- dataSrc?: undefined;
- data?: undefined;
- valueProperty?: undefined;
- rows?: undefined;
- } | {
- label: string;
- key: string;
- type: string;
- input: boolean;
- placeholder?: undefined;
- template?: undefined;
- defaultValue?: undefined;
- dataSrc?: undefined;
- data?: undefined;
- valueProperty?: undefined;
- multiple?: undefined;
- validate?: undefined;
- inputType?: undefined;
- rows?: undefined;
- } | {
- label: string;
- key: string;
- inputType: string;
- defaultValue: string;
- placeholder: string;
- type: string;
- multiple: boolean;
- input?: undefined;
- template?: undefined;
- dataSrc?: undefined;
- data?: undefined;
- valueProperty?: undefined;
- validate?: undefined;
- rows?: undefined;
- } | {
- label: string;
- key: string;
- type: string;
- defaultValue: string;
- multiple: boolean;
- rows: number;
- placeholder: string;
- input: boolean;
- template?: undefined;
- dataSrc?: undefined;
- data?: undefined;
- valueProperty?: undefined;
- validate?: undefined;
- inputType?: undefined;
- } | {
- type: string;
- input: boolean;
- key: string;
- label?: undefined;
- placeholder?: undefined;
- template?: undefined;
- defaultValue?: undefined;
- dataSrc?: undefined;
- data?: undefined;
- valueProperty?: undefined;
- multiple?: undefined;
- validate?: undefined;
- inputType?: undefined;
- rows?: undefined;
- } | {
- type: string;
- input: boolean;
- key: string;
- label: string;
- defaultValue: string;
- customConditional: string;
- placeholder?: undefined;
- template?: undefined;
- dataSrc?: undefined;
- data?: undefined;
- valueProperty?: undefined;
- multiple?: undefined;
- validate?: undefined;
- inputType?: undefined;
- rows?: undefined;
- })[];
- }[];
- key?: undefined;
- label?: undefined;
- tag?: undefined;
- content?: undefined;
- className?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- } | {
- type: string;
- input: boolean;
- tree: boolean;
- key: string;
- legend: string;
- components: {
- type: string;
- input: boolean;
- key: string;
- label: string;
- placeholder: string;
- dataSrc: string;
- data: {
- json: string;
- };
- template: string;
- valueProperty: string;
- multiple: boolean;
- }[];
- label?: undefined;
- tag?: undefined;
- content?: undefined;
- className?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- } | {
- key: string;
- type: string;
- input: boolean;
- tree: boolean;
- legend: string;
- components: {
- type: string;
- key: string;
- input: boolean;
- tree: boolean;
- components: {
- key: string;
- type: string;
- input: boolean;
- columns: ({
- components: ({
- type: string;
- input: boolean;
- label: string;
- key: string;
- placeholder: string;
- template: string;
- dataSrc: string;
- data: {
- json: string;
- values?: undefined;
- url?: undefined;
- resource?: undefined;
- };
- valueProperty: string;
- multiple: boolean;
- inputType?: undefined;
- } | {
- type: string;
- input: boolean;
- label: string;
- key: string;
- placeholder: string;
- template: string;
- dataSrc: string;
- data: {
- values: {
- value: string;
- label: string;
- }[];
- json: string;
- url: string;
- resource: string;
- };
- valueProperty: string;
- multiple: boolean;
- inputType?: undefined;
- } | {
- input: boolean;
- type: string;
- inputType: string;
- label: string;
- key: string;
- placeholder: string;
- multiple: boolean;
- template?: undefined;
- dataSrc?: undefined;
- data?: undefined;
- valueProperty?: undefined;
- })[];
- } | {
- components: {
- key: string;
- type: string;
- input: boolean;
- components: ({
+ const components: (
+ | {
+ type: string;
+ input: boolean;
+ key: string;
+ label?: undefined;
+ tree?: undefined;
+ legend?: undefined;
+ components?: undefined;
+ tag?: undefined;
+ content?: undefined;
+ className?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ }
+ | {
+ type: string;
+ input: boolean;
+ label: string;
+ key: string;
+ tree?: undefined;
+ legend?: undefined;
+ components?: undefined;
+ tag?: undefined;
+ content?: undefined;
+ className?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ }
+ | {
+ type: string;
+ input: boolean;
+ tree: boolean;
+ legend: string;
+ components: {
+ input: boolean;
+ type: string;
+ key: string;
+ components: (
+ | {
+ type: string;
+ input: boolean;
+ label: string;
+ key: string;
+ placeholder: string;
+ template: string;
+ defaultValue: string;
+ dataSrc: string;
+ data: {
+ json: string;
+ };
+ valueProperty: string;
+ multiple: boolean;
+ validate: {
+ required: boolean;
+ };
+ inputType?: undefined;
+ rows?: undefined;
+ }
+ | {
+ label: string;
+ key: string;
+ inputType: string;
+ defaultValue: string;
+ input: boolean;
+ placeholder: string;
+ type: string;
+ multiple: boolean;
+ template?: undefined;
+ dataSrc?: undefined;
+ data?: undefined;
+ valueProperty?: undefined;
+ validate?: undefined;
+ rows?: undefined;
+ }
+ | {
+ label: string;
+ key: string;
+ inputType: string;
+ defaultValue: string;
+ input: boolean;
+ placeholder: string;
+ type: string;
+ multiple: boolean;
+ validate: {
+ required: boolean;
+ };
+ template?: undefined;
+ dataSrc?: undefined;
+ data?: undefined;
+ valueProperty?: undefined;
+ rows?: undefined;
+ }
+ | {
+ label: string;
key: string;
type: string;
- tag: string;
input: boolean;
- content: string;
- className: string;
- label?: undefined;
- editorComponents?: undefined;
placeholder?: undefined;
- } | {
+ template?: undefined;
+ defaultValue?: undefined;
+ dataSrc?: undefined;
+ data?: undefined;
+ valueProperty?: undefined;
+ multiple?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ rows?: undefined;
+ }
+ | {
label: string;
+ key: string;
+ inputType: string;
+ defaultValue: string;
+ placeholder: string;
+ type: string;
+ multiple: boolean;
+ input?: undefined;
+ template?: undefined;
+ dataSrc?: undefined;
+ data?: undefined;
+ valueProperty?: undefined;
+ validate?: undefined;
+ rows?: undefined;
+ }
+ | {
+ label: string;
+ key: string;
+ type: string;
+ defaultValue: string;
+ multiple: boolean;
+ rows: number;
+ placeholder: string;
+ input: boolean;
+ template?: undefined;
+ dataSrc?: undefined;
+ data?: undefined;
+ valueProperty?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ }
+ | {
type: string;
input: boolean;
key: string;
- editorComponents: ({
- label: string;
- labelPosition: string;
- placeholder: string;
- description: string;
- tooltip: string;
- prefix: string;
- suffix: string;
- widget: {
- type: string;
- };
- inputMask: string;
- allowMultipleMasks: boolean;
- customClass: string;
- tabindex: string;
- hidden: boolean;
- hideLabel: boolean;
- showWordCount: boolean;
- showCharCount: boolean;
- mask: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- multiple: boolean;
- persistent: boolean;
- inputFormat: string;
- protected: boolean;
- dbIndex: boolean;
- case: string;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- pattern: string;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- minLength: string;
- maxLength: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- unique: boolean;
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- input: boolean;
- refreshOn: string;
- inputType: string;
- id: string;
- defaultValue: string;
- size?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- dataGridLabel?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- size: string;
- block: boolean;
- action: string;
- disableOnInvalid: boolean;
- theme: string;
- input: boolean;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- tableView: boolean;
- modalEdit: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- widget: {
+ label?: undefined;
+ placeholder?: undefined;
+ template?: undefined;
+ defaultValue?: undefined;
+ dataSrc?: undefined;
+ data?: undefined;
+ valueProperty?: undefined;
+ multiple?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ rows?: undefined;
+ }
+ | {
+ type: string;
+ input: boolean;
+ key: string;
+ label: string;
+ defaultValue: string;
+ customConditional: string;
+ placeholder?: undefined;
+ template?: undefined;
+ dataSrc?: undefined;
+ data?: undefined;
+ valueProperty?: undefined;
+ multiple?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ rows?: undefined;
+ }
+ )[];
+ }[];
+ key?: undefined;
+ label?: undefined;
+ tag?: undefined;
+ content?: undefined;
+ className?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ }
+ | {
+ type: string;
+ input: boolean;
+ tree: boolean;
+ key: string;
+ legend: string;
+ components: {
+ type: string;
+ input: boolean;
+ key: string;
+ label: string;
+ placeholder: string;
+ dataSrc: string;
+ data: {
+ json: string;
+ };
+ template: string;
+ valueProperty: string;
+ multiple: boolean;
+ }[];
+ label?: undefined;
+ tag?: undefined;
+ content?: undefined;
+ className?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ }
+ | {
+ key: string;
+ type: string;
+ input: boolean;
+ tree: boolean;
+ legend: string;
+ components: {
+ type: string;
+ key: string;
+ input: boolean;
+ tree: boolean;
+ components: {
+ key: string;
+ type: string;
+ input: boolean;
+ columns: (
+ | {
+ components: (
+ | {
+ type: string;
+ input: boolean;
+ label: string;
+ key: string;
+ placeholder: string;
+ template: string;
+ dataSrc: string;
+ data: {
+ json: string;
+ values?: undefined;
+ url?: undefined;
+ resource?: undefined;
+ };
+ valueProperty: string;
+ multiple: boolean;
+ inputType?: undefined;
+ }
+ | {
+ type: string;
+ input: boolean;
+ label: string;
+ key: string;
+ placeholder: string;
+ template: string;
+ dataSrc: string;
+ data: {
+ values: {
+ value: string;
+ label: string;
+ }[];
+ json: string;
+ url: string;
+ resource: string;
+ };
+ valueProperty: string;
+ multiple: boolean;
+ inputType?: undefined;
+ }
+ | {
+ input: boolean;
+ type: string;
+ inputType: string;
+ label: string;
+ key: string;
+ placeholder: string;
+ multiple: boolean;
+ template?: undefined;
+ dataSrc?: undefined;
+ data?: undefined;
+ valueProperty?: undefined;
+ }
+ )[];
+ }
+ | {
+ components: {
+ key: string;
type: string;
- };
- attributes: {};
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- pattern?: undefined;
- customMessage?: undefined;
- json?: undefined;
- minLength?: undefined;
- maxLength?: undefined;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- json?: undefined;
- };
- overlay: {
- style: string;
- left: string;
- top: string;
- width: string;
- height: string;
- page?: undefined;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- properties: {};
- allowMultipleMasks: boolean;
- leftIcon: string;
- rightIcon: string;
- dataGridLabel: boolean;
- id: string;
- inputMask?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- inputFormat?: undefined;
- case?: undefined;
- calculateServer?: undefined;
- tags?: undefined;
- logic?: undefined;
- inputType?: undefined;
- })[];
- placeholder: string;
- tag?: undefined;
- content?: undefined;
- className?: undefined;
- })[];
- }[];
- })[];
- }[];
- }[];
- label?: undefined;
- tag?: undefined;
- content?: undefined;
- className?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- } | {
- key: string;
- type: string;
- tag: string;
- input: boolean;
- content: string;
- className: string;
- label?: undefined;
- tree?: undefined;
- legend?: undefined;
- components?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- } | {
- type: string;
- input: boolean;
- label: string;
- key: string;
- size: string;
- leftIcon: string;
- rightIcon: string;
- block: boolean;
- action: string;
- disableOnInvalid: boolean;
- theme: string;
- tree?: undefined;
- legend?: undefined;
- components?: undefined;
- tag?: undefined;
- content?: undefined;
- className?: undefined;
- })[];
+ input: boolean;
+ components: (
+ | {
+ key: string;
+ type: string;
+ tag: string;
+ input: boolean;
+ content: string;
+ className: string;
+ label?: undefined;
+ editorComponents?: undefined;
+ placeholder?: undefined;
+ }
+ | {
+ label: string;
+ type: string;
+ input: boolean;
+ key: string;
+ editorComponents: (
+ | {
+ label: string;
+ labelPosition: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ prefix: string;
+ suffix: string;
+ widget: {
+ type: string;
+ };
+ inputMask: string;
+ allowMultipleMasks: boolean;
+ customClass: string;
+ tabindex: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ showWordCount: boolean;
+ showCharCount: boolean;
+ mask: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ multiple: boolean;
+ persistent: boolean;
+ inputFormat: string;
+ protected: boolean;
+ dbIndex: boolean;
+ case: string;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ pattern: string;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ minLength: string;
+ maxLength: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ unique: boolean;
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ input: boolean;
+ refreshOn: string;
+ inputType: string;
+ id: string;
+ defaultValue: string;
+ size?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ dataGridLabel?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ size: string;
+ block: boolean;
+ action: string;
+ disableOnInvalid: boolean;
+ theme: string;
+ input: boolean;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ tableView: boolean;
+ modalEdit: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ widget: {
+ type: string;
+ };
+ attributes: {};
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ pattern?: undefined;
+ customMessage?: undefined;
+ json?: undefined;
+ minLength?: undefined;
+ maxLength?: undefined;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json?: undefined;
+ };
+ overlay: {
+ style: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ page?: undefined;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ properties: {};
+ allowMultipleMasks: boolean;
+ leftIcon: string;
+ rightIcon: string;
+ dataGridLabel: boolean;
+ id: string;
+ inputMask?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ inputFormat?: undefined;
+ case?: undefined;
+ calculateServer?: undefined;
+ tags?: undefined;
+ logic?: undefined;
+ inputType?: undefined;
+ }
+ )[];
+ placeholder: string;
+ tag?: undefined;
+ content?: undefined;
+ className?: undefined;
+ }
+ )[];
+ }[];
+ }
+ )[];
+ }[];
+ }[];
+ label?: undefined;
+ tag?: undefined;
+ content?: undefined;
+ className?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ }
+ | {
+ key: string;
+ type: string;
+ tag: string;
+ input: boolean;
+ content: string;
+ className: string;
+ label?: undefined;
+ tree?: undefined;
+ legend?: undefined;
+ components?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ }
+ | {
+ type: string;
+ input: boolean;
+ label: string;
+ key: string;
+ size: string;
+ leftIcon: string;
+ rightIcon: string;
+ block: boolean;
+ action: string;
+ disableOnInvalid: boolean;
+ theme: string;
+ tree?: undefined;
+ legend?: undefined;
+ components?: undefined;
+ tag?: undefined;
+ content?: undefined;
+ className?: undefined;
+ }
+ )[];
const action: string;
}
const tests: {
diff --git a/test/forms/emailaction.js b/test/forms/emailaction.js
index 0e668d6d72..99921655ea 100644
--- a/test/forms/emailaction.js
+++ b/test/forms/emailaction.js
@@ -1,620 +1,657 @@
import assert from 'power-assert';
export default {
- title: 'Email Action Test',
- form: {
- "components": [
- {
- "type": "hidden",
- "input": true,
- "key": "priority"
- },
- {
- "type": "hidden",
- "input": true,
- "key": "name"
- },
- {
- "type": "textfield",
- "input": true,
- "label": "Title",
- "key": "title"
- },
- {
- "type": "fieldset",
- "input": false,
- "tree": true,
- "legend": "Action Settings",
- "components": [
- {
- "input": false,
- "type": "container",
- "key": "settings",
- "components": [
- {
- "type": "select",
- "input": true,
- "label": "Transport",
- "key": "transport",
- "placeholder": "Select the email transport.",
- "template": "
{{ item.title }} ",
- "defaultValue": "default",
- "dataSrc": "json",
- "data": {
- "json": "[{\"transport\":\"default\",\"title\":\"Default (charges may apply)\"},{\"transport\":\"smtp\",\"title\":\"SMTP\"}]"
- },
- "valueProperty": "transport",
- "multiple": false,
- "validate": {
- "required": true
- }
- },
- {
- "label": "From:",
- "key": "from",
- "inputType": "text",
- "defaultValue": "no-reply@form.io",
- "input": true,
- "placeholder": "Send the email from the following address",
- "type": "textfield",
- "multiple": false
- },
- {
- "label": "To: Email Address",
- "key": "emails",
- "inputType": "text",
- "defaultValue": "",
- "input": true,
- "placeholder": "Send to the following email",
- "type": "textfield",
- "multiple": true,
- "validate": {
- "required": true
- }
- },
- {
- "label": "Send a separate email to each recipient",
- "key": "sendEach",
- "type": "checkbox",
- "input": true
- },
- {
- "label": "Cc: Email Address",
- "key": "cc",
- "inputType": "text",
- "defaultValue": "",
- "input": true,
- "placeholder": "Send copy of the email to the following email",
- "type": "textfield",
- "multiple": true
- },
- {
- "label": "Bcc: Email Address",
- "key": "bcc",
- "inputType": "text",
- "defaultValue": "",
- "input": true,
- "placeholder": "Send blink copy of the email to the following email (other recipients will not see this)",
- "type": "textfield",
- "multiple": true
- },
- {
- "label": "Subject",
- "key": "subject",
- "inputType": "text",
- "defaultValue": "New submission for {{ form.title }}.",
- "input": true,
- "placeholder": "Email subject",
- "type": "textfield",
- "multiple": false
- },
- {
- "label": "Email Template URL",
- "key": "template",
- "inputType": "text",
- "defaultValue": "https://pro.formview.io/assets/email.html",
- "placeholder": "Enter a URL for your external email template.",
- "type": "textfield",
- "multiple": false
- },
- {
- "label": "Message",
- "key": "message",
- "type": "textarea",
- "defaultValue": "{{ submission(data, form.components) }}",
- "multiple": false,
- "rows": 3,
- "placeholder": "Enter the message you would like to send.",
- "input": true
- },
- {
- "type": "checkbox",
- "input": true,
- "key": "attachFiles",
- },
- {
- "type": "checkbox",
- "input": true,
- "key": "attachPDF",
- "label": "Attach Submission PDF",
- },
- {
- "type": "textfield",
- "input": true,
- "key": "pdfName",
- "label": "PDF File Name",
- "defaultValue": "{{ form.name }}-{{ submission._id }}",
- "customConditional": "show = !!data.settings.attachPDF;"
- }
- ]
- }
- ]
- },
- {
- "type": "fieldset",
- "input": false,
- "tree": false,
- "key": "conditions",
- "legend": "Action Execution",
- "components": [
- {
- "type": "select",
- "input": true,
- "key": "handler",
- "label": "Handler",
- "placeholder": "Select which handler(s) you would like to trigger",
- "dataSrc": "json",
- "data": {
- "json": "[{\"name\":\"before\",\"title\":\"Before\"},{\"name\":\"after\",\"title\":\"After\"}]"
+ title: 'Email Action Test',
+ form: {
+ components: [
+ {
+ type: 'hidden',
+ input: true,
+ key: 'priority',
},
- "template": "
{{ item.title }} ",
- "valueProperty": "name",
- "multiple": true
- },
- {
- "type": "select",
- "input": true,
- "label": "Methods",
- "key": "method",
- "placeholder": "Trigger action on method(s)",
- "dataSrc": "json",
- "data": {
- "json": "[{\"name\":\"create\",\"title\":\"Create\"},{\"name\":\"update\",\"title\":\"Update\"},{\"name\":\"read\",\"title\":\"Read\"},{\"name\":\"delete\",\"title\":\"Delete\"},{\"name\":\"index\",\"title\":\"Index\"}]"
+ {
+ type: 'hidden',
+ input: true,
+ key: 'name',
},
- "template": "
{{ item.title }} ",
- "valueProperty": "name",
- "multiple": true
- }
- ]
- },
- {
- "key": "fieldset",
- "type": "fieldset",
- "input": false,
- "tree": false,
- "legend": "Action Conditions (optional)",
- "components": [
- {
- "type": "container",
- "key": "condition",
- "input": false,
- "tree": true,
- "components": [
- {
- "key": "columns",
- "type": "columns",
- "input": false,
- "columns": [
- {
- "components": [
- {
- "type": "select",
- "input": true,
- "label": "Trigger this action only if field",
- "key": "field",
- "placeholder": "Select the conditional field",
- "template": "
{{ item.label || item.key }} ",
- "dataSrc": "json",
- "data": {
- "json": "[{\"key\":\"\"},{\"label\":\"A\",\"labelPosition\":\"top\",\"placeholder\":\"\",\"description\":\"\",\"tooltip\":\"\",\"prefix\":\"\",\"suffix\":\"\",\"widget\":{\"type\":\"input\"},\"inputMask\":\"\",\"allowMultipleMasks\":false,\"customClass\":\"\",\"tabindex\":\"\",\"hidden\":false,\"hideLabel\":false,\"showWordCount\":false,\"showCharCount\":false,\"mask\":false,\"autofocus\":false,\"spellcheck\":true,\"disabled\":false,\"tableView\":true,\"modalEdit\":false,\"multiple\":false,\"persistent\":true,\"inputFormat\":\"plain\",\"protected\":false,\"dbIndex\":false,\"case\":\"\",\"encrypted\":false,\"redrawOn\":\"\",\"clearOnHide\":true,\"customDefaultValue\":\"\",\"calculateValue\":\"\",\"calculateServer\":false,\"allowCalculateOverride\":false,\"validateOn\":\"change\",\"validate\":{\"required\":false,\"pattern\":\"\",\"customMessage\":\"\",\"custom\":\"\",\"customPrivate\":false,\"json\":\"\",\"minLength\":\"\",\"maxLength\":\"\",\"strictDateValidation\":false,\"multiple\":false,\"unique\":false},\"unique\":false,\"errorLabel\":\"\",\"key\":\"a\",\"tags\":[],\"properties\":{},\"conditional\":{\"show\":null,\"when\":null,\"eq\":\"\",\"json\":\"\"},\"customConditional\":\"\",\"logic\":[],\"attributes\":{},\"overlay\":{\"style\":\"\",\"page\":\"\",\"left\":\"\",\"top\":\"\",\"width\":\"\",\"height\":\"\"},\"type\":\"textfield\",\"input\":true,\"refreshOn\":\"\",\"inputType\":\"text\",\"id\":\"exqblo\",\"defaultValue\":\"\"},{\"label\":\"B\",\"labelPosition\":\"top\",\"placeholder\":\"\",\"description\":\"\",\"tooltip\":\"\",\"prefix\":\"\",\"suffix\":\"\",\"widget\":{\"type\":\"input\"},\"inputMask\":\"\",\"allowMultipleMasks\":false,\"customClass\":\"\",\"tabindex\":\"\",\"hidden\":false,\"hideLabel\":false,\"showWordCount\":false,\"showCharCount\":false,\"mask\":false,\"autofocus\":false,\"spellcheck\":true,\"disabled\":false,\"tableView\":true,\"modalEdit\":false,\"multiple\":false,\"persistent\":true,\"inputFormat\":\"plain\",\"protected\":false,\"dbIndex\":false,\"case\":\"\",\"encrypted\":false,\"redrawOn\":\"\",\"clearOnHide\":true,\"customDefaultValue\":\"\",\"calculateValue\":\"\",\"calculateServer\":false,\"allowCalculateOverride\":false,\"validateOn\":\"change\",\"validate\":{\"required\":false,\"pattern\":\"\",\"customMessage\":\"\",\"custom\":\"\",\"customPrivate\":false,\"json\":\"\",\"minLength\":\"\",\"maxLength\":\"\",\"strictDateValidation\":false,\"multiple\":false,\"unique\":false},\"unique\":false,\"errorLabel\":\"\",\"key\":\"b\",\"tags\":[],\"properties\":{},\"conditional\":{\"show\":null,\"when\":null,\"eq\":\"\",\"json\":\"\"},\"customConditional\":\"\",\"logic\":[],\"attributes\":{},\"overlay\":{\"style\":\"\",\"page\":\"\",\"left\":\"\",\"top\":\"\",\"width\":\"\",\"height\":\"\"},\"type\":\"textfield\",\"input\":true,\"refreshOn\":\"\",\"inputType\":\"text\",\"id\":\"ehz47ok\",\"defaultValue\":\"\"},{\"type\":\"button\",\"label\":\"Submit\",\"key\":\"submit\",\"size\":\"md\",\"block\":false,\"action\":\"submit\",\"disableOnInvalid\":true,\"theme\":\"primary\",\"input\":true,\"placeholder\":\"\",\"prefix\":\"\",\"customClass\":\"\",\"suffix\":\"\",\"multiple\":false,\"defaultValue\":null,\"protected\":false,\"unique\":false,\"persistent\":false,\"hidden\":false,\"clearOnHide\":true,\"refreshOn\":\"\",\"redrawOn\":\"\",\"tableView\":false,\"modalEdit\":false,\"labelPosition\":\"top\",\"description\":\"\",\"errorLabel\":\"\",\"tooltip\":\"\",\"hideLabel\":false,\"tabindex\":\"\",\"disabled\":false,\"autofocus\":false,\"dbIndex\":false,\"customDefaultValue\":\"\",\"calculateValue\":\"\",\"widget\":{\"type\":\"input\"},\"attributes\":{},\"validateOn\":\"change\",\"validate\":{\"required\":false,\"custom\":\"\",\"customPrivate\":false,\"strictDateValidation\":false,\"multiple\":false,\"unique\":false},\"conditional\":{\"show\":null,\"when\":null,\"eq\":\"\"},\"overlay\":{\"style\":\"\",\"left\":\"\",\"top\":\"\",\"width\":\"\",\"height\":\"\"},\"allowCalculateOverride\":false,\"encrypted\":false,\"showCharCount\":false,\"showWordCount\":false,\"properties\":{},\"allowMultipleMasks\":false,\"leftIcon\":\"\",\"rightIcon\":\"\",\"dataGridLabel\":true,\"id\":\"e0fow3\"}]"
- },
- "valueProperty": "key",
- "multiple": false
- },
- {
- "type": "select",
- "input": true,
- "label": "",
- "key": "eq",
- "placeholder": "Select comparison",
- "template": "
{{ item.label }} ",
- "dataSrc": "values",
- "data": {
- "values": [
+ {
+ type: 'textfield',
+ input: true,
+ label: 'Title',
+ key: 'title',
+ },
+ {
+ type: 'fieldset',
+ input: false,
+ tree: true,
+ legend: 'Action Settings',
+ components: [
+ {
+ input: false,
+ type: 'container',
+ key: 'settings',
+ components: [
{
- "value": "",
- "label": ""
+ type: 'select',
+ input: true,
+ label: 'Transport',
+ key: 'transport',
+ placeholder: 'Select the email transport.',
+ template: '
{{ item.title }} ',
+ defaultValue: 'default',
+ dataSrc: 'json',
+ data: {
+ json: '[{"transport":"default","title":"Default (charges may apply)"},{"transport":"smtp","title":"SMTP"}]',
+ },
+ valueProperty: 'transport',
+ multiple: false,
+ validate: {
+ required: true,
+ },
},
{
- "value": "equals",
- "label": "Equals"
+ label: 'From:',
+ key: 'from',
+ inputType: 'text',
+ defaultValue: 'no-reply@form.io',
+ input: true,
+ placeholder:
+ 'Send the email from the following address',
+ type: 'textfield',
+ multiple: false,
},
{
- "value": "notEqual",
- "label": "Does Not Equal"
- }
- ],
- "json": "",
- "url": "",
- "resource": ""
- },
- "valueProperty": "value",
- "multiple": false
- },
- {
- "input": true,
- "type": "textfield",
- "inputType": "text",
- "label": "",
- "key": "value",
- "placeholder": "Enter value",
- "multiple": false
- }
- ]
- },
- {
- "components": [
- {
- "key": "well2",
- "type": "well",
- "input": false,
- "components": [
- {
- "key": "html",
- "type": "htmlelement",
- "tag": "h4",
- "input": false,
- "content": "Or you can provide your own custom JavaScript or
JSON condition logic here",
- "className": ""
- },
- {
- "label": "",
- "type": "textarea",
- "input": true,
- "key": "custom",
- "editorComponents": [
- {
- "label": "A",
- "labelPosition": "top",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "prefix": "",
- "suffix": "",
- "widget": {
- "type": "input"
- },
- "inputMask": "",
- "allowMultipleMasks": false,
- "customClass": "",
- "tabindex": "",
- "hidden": false,
- "hideLabel": false,
- "showWordCount": false,
- "showCharCount": false,
- "mask": false,
- "autofocus": false,
- "spellcheck": true,
- "disabled": false,
- "tableView": true,
- "modalEdit": false,
- "multiple": false,
- "persistent": true,
- "inputFormat": "plain",
- "protected": false,
- "dbIndex": false,
- "case": "",
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "pattern": "",
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "minLength": "",
- "maxLength": "",
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "unique": false,
- "errorLabel": "",
- "key": "a",
- "tags": [],
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "textfield",
- "input": true,
- "refreshOn": "",
- "inputType": "text",
- "id": "exqblo",
- "defaultValue": ""
- },
- {
- "label": "B",
- "labelPosition": "top",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "prefix": "",
- "suffix": "",
- "widget": {
- "type": "input"
- },
- "inputMask": "",
- "allowMultipleMasks": false,
- "customClass": "",
- "tabindex": "",
- "hidden": false,
- "hideLabel": false,
- "showWordCount": false,
- "showCharCount": false,
- "mask": false,
- "autofocus": false,
- "spellcheck": true,
- "disabled": false,
- "tableView": true,
- "modalEdit": false,
- "multiple": false,
- "persistent": true,
- "inputFormat": "plain",
- "protected": false,
- "dbIndex": false,
- "case": "",
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "pattern": "",
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "minLength": "",
- "maxLength": "",
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "unique": false,
- "errorLabel": "",
- "key": "b",
- "tags": [],
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
+ label: 'To: Email Address',
+ key: 'emails',
+ inputType: 'text',
+ defaultValue: '',
+ input: true,
+ placeholder: 'Send to the following email',
+ type: 'textfield',
+ multiple: true,
+ validate: {
+ required: true,
},
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "textfield",
- "input": true,
- "refreshOn": "",
- "inputType": "text",
- "id": "ehz47ok",
- "defaultValue": ""
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "size": "md",
- "block": false,
- "action": "submit",
- "disableOnInvalid": true,
- "theme": "primary",
- "input": true,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "tableView": false,
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": {
- "type": "input"
- },
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "leftIcon": "",
- "rightIcon": "",
- "dataGridLabel": true,
- "id": "e0fow3"
- }
- ],
- "placeholder": "// Example: Only execute if submitted roles has 'authenticated'.\nJavaScript: execute = (data.roles.indexOf('authenticated') !== -1);\nJSON: { \"in\": [ \"authenticated\", { \"var\": \"data.roles\" } ] }"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "key": "html2",
- "type": "htmlelement",
- "tag": "hr",
- "input": false,
- "content": "",
- "className": ""
- },
- {
- "type": "button",
- "input": true,
- "label": "Save Action",
- "key": "submit",
- "size": "md",
- "leftIcon": "",
- "rightIcon": "",
- "block": false,
- "action": "submit",
- "disableOnInvalid": true,
- "theme": "primary"
- }
- ],
- "action": "/project/59bbe2ec8c246100079191ae/form/5e62b0974d10775661492d07/action"
- },
- tests: {
- 'Test initialize action with data'(form, done) {
- form.setSubmission({
- "data": {
- "settings": {},
- "condition": {},
- "handler": [
- "after"
- ],
- "method": [
- "create"
- ],
- "priority": 0,
- "name": "email",
- "title": "Email"
- }
- }).then(() => {
- form.setSubmission({
- "data": {
- "priority": 0,
- "name": "email",
- "title": "Email",
- "settings": {
- "transport": "default"
+ },
+ {
+ label: 'Send a separate email to each recipient',
+ key: 'sendEach',
+ type: 'checkbox',
+ input: true,
+ },
+ {
+ label: 'Cc: Email Address',
+ key: 'cc',
+ inputType: 'text',
+ defaultValue: '',
+ input: true,
+ placeholder:
+ 'Send copy of the email to the following email',
+ type: 'textfield',
+ multiple: true,
+ },
+ {
+ label: 'Bcc: Email Address',
+ key: 'bcc',
+ inputType: 'text',
+ defaultValue: '',
+ input: true,
+ placeholder:
+ 'Send blink copy of the email to the following email (other recipients will not see this)',
+ type: 'textfield',
+ multiple: true,
+ },
+ {
+ label: 'Subject',
+ key: 'subject',
+ inputType: 'text',
+ defaultValue:
+ 'New submission for {{ form.title }}.',
+ input: true,
+ placeholder: 'Email subject',
+ type: 'textfield',
+ multiple: false,
+ },
+ {
+ label: 'Email Template URL',
+ key: 'template',
+ inputType: 'text',
+ defaultValue:
+ 'https://pro.formview.io/assets/email.html',
+ placeholder:
+ 'Enter a URL for your external email template.',
+ type: 'textfield',
+ multiple: false,
+ },
+ {
+ label: 'Message',
+ key: 'message',
+ type: 'textarea',
+ defaultValue:
+ '{{ submission(data, form.components) }}',
+ multiple: false,
+ rows: 3,
+ placeholder:
+ 'Enter the message you would like to send.',
+ input: true,
+ },
+ {
+ type: 'checkbox',
+ input: true,
+ key: 'attachFiles',
+ },
+ {
+ type: 'checkbox',
+ input: true,
+ key: 'attachPDF',
+ label: 'Attach Submission PDF',
+ },
+ {
+ type: 'textfield',
+ input: true,
+ key: 'pdfName',
+ label: 'PDF File Name',
+ defaultValue:
+ '{{ form.name }}-{{ submission._id }}',
+ customConditional:
+ 'show = !!data.settings.attachPDF;',
+ },
+ ],
+ },
+ ],
+ },
+ {
+ type: 'fieldset',
+ input: false,
+ tree: false,
+ key: 'conditions',
+ legend: 'Action Execution',
+ components: [
+ {
+ type: 'select',
+ input: true,
+ key: 'handler',
+ label: 'Handler',
+ placeholder:
+ 'Select which handler(s) you would like to trigger',
+ dataSrc: 'json',
+ data: {
+ json: '[{"name":"before","title":"Before"},{"name":"after","title":"After"}]',
+ },
+ template: '
{{ item.title }} ',
+ valueProperty: 'name',
+ multiple: true,
+ },
+ {
+ type: 'select',
+ input: true,
+ label: 'Methods',
+ key: 'method',
+ placeholder: 'Trigger action on method(s)',
+ dataSrc: 'json',
+ data: {
+ json: '[{"name":"create","title":"Create"},{"name":"update","title":"Update"},{"name":"read","title":"Read"},{"name":"delete","title":"Delete"},{"name":"index","title":"Index"}]',
+ },
+ template: '
{{ item.title }} ',
+ valueProperty: 'name',
+ multiple: true,
+ },
+ ],
},
- "handler": [
- "after"
- ],
- "method": [
- "create"
- ],
- "condition": {},
- "submit": false
- }
- }).then(() => {
- form.on('componentChange', function() {
- // Make sure it still applies all the default values of these components.
- assert.deepEqual(form.submission.data.settings, {
- sendEach: false,
- attachFiles: false,
- attachPDF: false,
- transport: 'default',
- from: 'no-reply@form.io',
- emails: ['travis@form.io'],
- cc: [''],
- bcc: [''],
- subject: 'New submission for {{ form.title }}.',
- template: 'https://pro.formview.io/assets/email.html',
- message: '{{ submission(data, form.components) }}'
- });
- });
+ {
+ key: 'fieldset',
+ type: 'fieldset',
+ input: false,
+ tree: false,
+ legend: 'Action Conditions (optional)',
+ components: [
+ {
+ type: 'container',
+ key: 'condition',
+ input: false,
+ tree: true,
+ components: [
+ {
+ key: 'columns',
+ type: 'columns',
+ input: false,
+ columns: [
+ {
+ components: [
+ {
+ type: 'select',
+ input: true,
+ label: 'Trigger this action only if field',
+ key: 'field',
+ placeholder:
+ 'Select the conditional field',
+ template:
+ '
{{ item.label || item.key }} ',
+ dataSrc: 'json',
+ data: {
+ json: '[{"key":""},{"label":"A","labelPosition":"top","placeholder":"","description":"","tooltip":"","prefix":"","suffix":"","widget":{"type":"input"},"inputMask":"","allowMultipleMasks":false,"customClass":"","tabindex":"","hidden":false,"hideLabel":false,"showWordCount":false,"showCharCount":false,"mask":false,"autofocus":false,"spellcheck":true,"disabled":false,"tableView":true,"modalEdit":false,"multiple":false,"persistent":true,"inputFormat":"plain","protected":false,"dbIndex":false,"case":"","encrypted":false,"redrawOn":"","clearOnHide":true,"customDefaultValue":"","calculateValue":"","calculateServer":false,"allowCalculateOverride":false,"validateOn":"change","validate":{"required":false,"pattern":"","customMessage":"","custom":"","customPrivate":false,"json":"","minLength":"","maxLength":"","strictDateValidation":false,"multiple":false,"unique":false},"unique":false,"errorLabel":"","key":"a","tags":[],"properties":{},"conditional":{"show":null,"when":null,"eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"textfield","input":true,"refreshOn":"","inputType":"text","id":"exqblo","defaultValue":""},{"label":"B","labelPosition":"top","placeholder":"","description":"","tooltip":"","prefix":"","suffix":"","widget":{"type":"input"},"inputMask":"","allowMultipleMasks":false,"customClass":"","tabindex":"","hidden":false,"hideLabel":false,"showWordCount":false,"showCharCount":false,"mask":false,"autofocus":false,"spellcheck":true,"disabled":false,"tableView":true,"modalEdit":false,"multiple":false,"persistent":true,"inputFormat":"plain","protected":false,"dbIndex":false,"case":"","encrypted":false,"redrawOn":"","clearOnHide":true,"customDefaultValue":"","calculateValue":"","calculateServer":false,"allowCalculateOverride":false,"validateOn":"change","validate":{"required":false,"pattern":"","customMessage":"","custom":"","customPrivate":false,"json":"","minLength":"","maxLength":"","strictDateValidation":false,"multiple":false,"unique":false},"unique":false,"errorLabel":"","key":"b","tags":[],"properties":{},"conditional":{"show":null,"when":null,"eq":"","json":""},"customConditional":"","logic":[],"attributes":{},"overlay":{"style":"","page":"","left":"","top":"","width":"","height":""},"type":"textfield","input":true,"refreshOn":"","inputType":"text","id":"ehz47ok","defaultValue":""},{"type":"button","label":"Submit","key":"submit","size":"md","block":false,"action":"submit","disableOnInvalid":true,"theme":"primary","input":true,"placeholder":"","prefix":"","customClass":"","suffix":"","multiple":false,"defaultValue":null,"protected":false,"unique":false,"persistent":false,"hidden":false,"clearOnHide":true,"refreshOn":"","redrawOn":"","tableView":false,"modalEdit":false,"labelPosition":"top","description":"","errorLabel":"","tooltip":"","hideLabel":false,"tabindex":"","disabled":false,"autofocus":false,"dbIndex":false,"customDefaultValue":"","calculateValue":"","widget":{"type":"input"},"attributes":{},"validateOn":"change","validate":{"required":false,"custom":"","customPrivate":false,"strictDateValidation":false,"multiple":false,"unique":false},"conditional":{"show":null,"when":null,"eq":""},"overlay":{"style":"","left":"","top":"","width":"","height":""},"allowCalculateOverride":false,"encrypted":false,"showCharCount":false,"showWordCount":false,"properties":{},"allowMultipleMasks":false,"leftIcon":"","rightIcon":"","dataGridLabel":true,"id":"e0fow3"}]',
+ },
+ valueProperty: 'key',
+ multiple: false,
+ },
+ {
+ type: 'select',
+ input: true,
+ label: '',
+ key: 'eq',
+ placeholder:
+ 'Select comparison',
+ template:
+ '
{{ item.label }} ',
+ dataSrc: 'values',
+ data: {
+ values: [
+ {
+ value: '',
+ label: '',
+ },
+ {
+ value: 'equals',
+ label: 'Equals',
+ },
+ {
+ value: 'notEqual',
+ label: 'Does Not Equal',
+ },
+ ],
+ json: '',
+ url: '',
+ resource: '',
+ },
+ valueProperty: 'value',
+ multiple: false,
+ },
+ {
+ input: true,
+ type: 'textfield',
+ inputType: 'text',
+ label: '',
+ key: 'value',
+ placeholder: 'Enter value',
+ multiple: false,
+ },
+ ],
+ },
+ {
+ components: [
+ {
+ key: 'well2',
+ type: 'well',
+ input: false,
+ components: [
+ {
+ key: 'html',
+ type: 'htmlelement',
+ tag: 'h4',
+ input: false,
+ content:
+ 'Or you can provide your own custom JavaScript or
JSON condition logic here',
+ className: '',
+ },
+ {
+ label: '',
+ type: 'textarea',
+ input: true,
+ key: 'custom',
+ editorComponents: [
+ {
+ label: 'A',
+ labelPosition:
+ 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ inputMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat:
+ 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue:
+ '',
+ calculateValue:
+ '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn:
+ 'change',
+ validate: {
+ required: false,
+ pattern: '',
+ customMessage:
+ '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength:
+ '',
+ maxLength:
+ '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'a',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional:
+ '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ inputType:
+ 'text',
+ id: 'exqblo',
+ defaultValue:
+ '',
+ },
+ {
+ label: 'B',
+ labelPosition:
+ 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ inputMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat:
+ 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue:
+ '',
+ calculateValue:
+ '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn:
+ 'change',
+ validate: {
+ required: false,
+ pattern: '',
+ customMessage:
+ '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength:
+ '',
+ maxLength:
+ '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'b',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional:
+ '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ inputType:
+ 'text',
+ id: 'ehz47ok',
+ defaultValue:
+ '',
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ size: 'md',
+ block: false,
+ action: 'submit',
+ disableOnInvalid: true,
+ theme: 'primary',
+ input: true,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue:
+ null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: true,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ labelPosition:
+ 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue:
+ '',
+ calculateValue:
+ '',
+ widget: {
+ type: 'input',
+ },
+ attributes: {},
+ validateOn:
+ 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ leftIcon: '',
+ rightIcon: '',
+ dataGridLabel: true,
+ id: 'e0fow3',
+ },
+ ],
+ placeholder:
+ '// Example: Only execute if submitted roles has \'authenticated\'.\nJavaScript: execute = (data.roles.indexOf(\'authenticated\') !== -1);\nJSON: { "in": [ "authenticated", { "var": "data.roles" } ] }',
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ {
+ key: 'html2',
+ type: 'htmlelement',
+ tag: 'hr',
+ input: false,
+ content: '',
+ className: '',
+ },
+ {
+ type: 'button',
+ input: true,
+ label: 'Save Action',
+ key: 'submit',
+ size: 'md',
+ leftIcon: '',
+ rightIcon: '',
+ block: false,
+ action: 'submit',
+ disableOnInvalid: true,
+ theme: 'primary',
+ },
+ ],
+ action: '/project/59bbe2ec8c246100079191ae/form/5e62b0974d10775661492d07/action',
+ },
+ tests: {
+ 'Test initialize action with data'(form, done) {
+ form.setSubmission({
+ data: {
+ settings: {},
+ condition: {},
+ handler: ['after'],
+ method: ['create'],
+ priority: 0,
+ name: 'email',
+ title: 'Email',
+ },
+ }).then(() => {
+ form.setSubmission({
+ data: {
+ priority: 0,
+ name: 'email',
+ title: 'Email',
+ settings: {
+ transport: 'default',
+ },
+ handler: ['after'],
+ method: ['create'],
+ condition: {},
+ submit: false,
+ },
+ }).then(() => {
+ form.on('componentChange', function () {
+ // Make sure it still applies all the default values of these components.
+ assert.deepEqual(form.submission.data.settings, {
+ sendEach: false,
+ attachFiles: false,
+ attachPDF: false,
+ transport: 'default',
+ from: 'no-reply@form.io',
+ emails: ['travis@form.io'],
+ cc: [''],
+ bcc: [''],
+ subject: 'New submission for {{ form.title }}.',
+ template:
+ 'https://pro.formview.io/assets/email.html',
+ message: '{{ submission(data, form.components) }}',
+ });
+ });
- const toEmail = form.getComponent('emails');
- toEmail.updateValue(['travis@form.io']);
+ const toEmail = form.getComponent('emails');
+ toEmail.updateValue(['travis@form.io']);
- setTimeout(() => {
- done();
- }, 500);
- });
- });
- }
- },
- useDone: true,
+ setTimeout(() => {
+ done();
+ }, 500);
+ });
+ });
+ },
+ },
+ useDone: true,
};
diff --git a/test/forms/fieldLogic.d.ts b/test/forms/fieldLogic.d.ts
index 3fe15651b7..63b892507b 100644
--- a/test/forms/fieldLogic.d.ts
+++ b/test/forms/fieldLogic.d.ts
@@ -1,117 +1,126 @@
declare namespace _default {
const title: string;
namespace form {
- const components: ({
- properties: {};
- tags: never[];
- labelPosition: string;
- hideLabel: boolean;
- type: string;
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- validate: {
- customPrivate: boolean;
- custom: string;
- pattern: string;
- maxLength: string;
- minLength: string;
- required: boolean;
- };
- clearOnHide: boolean;
- hidden: boolean;
- persistent: boolean;
- unique: boolean;
- protected: boolean;
- defaultValue: string;
- multiple: boolean;
- suffix: string;
- prefix: string;
- placeholder: string;
- key: string;
- label: string;
- inputMask: string;
- inputType: string;
- tableView: boolean;
- input: boolean;
- logic?: undefined;
- } | {
- properties: {};
- tags: never[];
- labelPosition: string;
- hideLabel: boolean;
- type: string;
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- validate: {
- customPrivate: boolean;
- custom: string;
- pattern: string;
- maxLength: string;
- minLength: string;
- required: boolean;
- };
- clearOnHide: boolean;
- hidden: boolean;
- persistent: boolean;
- unique: boolean;
- protected: boolean;
- defaultValue: string;
- multiple: boolean;
- suffix: string;
- prefix: string;
- placeholder: string;
- key: string;
- label: string;
- inputMask: string;
- inputType: string;
- tableView: boolean;
- input: boolean;
- logic: ({
- name: string;
- trigger: {
- javascript: string;
- type: string;
- };
- actions: ({
- name: string;
- text: string;
- property: {
- type: string;
- value: string;
- label: string;
- };
- type: string;
- state?: undefined;
- } | {
- name: string;
- type: string;
- property: {
- label: string;
- value: string;
- type: string;
- };
- state: boolean;
- text?: undefined;
- })[];
- } | {
- name: string;
- trigger: {
- javascript: string;
- type: string;
- };
- actions: {
- name: string;
- type: string;
- value: string;
- }[];
- })[];
- })[];
+ const components: (
+ | {
+ properties: {};
+ tags: never[];
+ labelPosition: string;
+ hideLabel: boolean;
+ type: string;
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ validate: {
+ customPrivate: boolean;
+ custom: string;
+ pattern: string;
+ maxLength: string;
+ minLength: string;
+ required: boolean;
+ };
+ clearOnHide: boolean;
+ hidden: boolean;
+ persistent: boolean;
+ unique: boolean;
+ protected: boolean;
+ defaultValue: string;
+ multiple: boolean;
+ suffix: string;
+ prefix: string;
+ placeholder: string;
+ key: string;
+ label: string;
+ inputMask: string;
+ inputType: string;
+ tableView: boolean;
+ input: boolean;
+ logic?: undefined;
+ }
+ | {
+ properties: {};
+ tags: never[];
+ labelPosition: string;
+ hideLabel: boolean;
+ type: string;
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ validate: {
+ customPrivate: boolean;
+ custom: string;
+ pattern: string;
+ maxLength: string;
+ minLength: string;
+ required: boolean;
+ };
+ clearOnHide: boolean;
+ hidden: boolean;
+ persistent: boolean;
+ unique: boolean;
+ protected: boolean;
+ defaultValue: string;
+ multiple: boolean;
+ suffix: string;
+ prefix: string;
+ placeholder: string;
+ key: string;
+ label: string;
+ inputMask: string;
+ inputType: string;
+ tableView: boolean;
+ input: boolean;
+ logic: (
+ | {
+ name: string;
+ trigger: {
+ javascript: string;
+ type: string;
+ };
+ actions: (
+ | {
+ name: string;
+ text: string;
+ property: {
+ type: string;
+ value: string;
+ label: string;
+ };
+ type: string;
+ state?: undefined;
+ }
+ | {
+ name: string;
+ type: string;
+ property: {
+ label: string;
+ value: string;
+ type: string;
+ };
+ state: boolean;
+ text?: undefined;
+ }
+ )[];
+ }
+ | {
+ name: string;
+ trigger: {
+ javascript: string;
+ type: string;
+ };
+ actions: {
+ name: string;
+ type: string;
+ value: string;
+ }[];
+ }
+ )[];
+ }
+ )[];
}
const tests: {
'Test Title, Description and Disabled'(form: any, done: any): void;
diff --git a/test/forms/fieldLogic.js b/test/forms/fieldLogic.js
index 8462c898ff..50d1080738 100644
--- a/test/forms/fieldLogic.js
+++ b/test/forms/fieldLogic.js
@@ -1,177 +1,194 @@
import Harness from '../harness';
export default {
- title: 'Field Logic Tests',
- form: {
- components: [
- {
- 'properties': {},
- 'tags': [],
- 'labelPosition': 'top',
- 'hideLabel': false,
- 'type': 'textfield',
- 'conditional': {
- 'eq': '',
- 'when': null,
- 'show': ''
- },
- 'validate': {
- 'customPrivate': false,
- 'custom': '',
- 'pattern': '',
- 'maxLength': '',
- 'minLength': '',
- 'required': false
- },
- 'clearOnHide': true,
- 'hidden': false,
- 'persistent': true,
- 'unique': false,
- 'protected': false,
- 'defaultValue': '',
- 'multiple': false,
- 'suffix': '',
- 'prefix': '',
- 'placeholder': '',
- 'key': 'test',
- 'label': 'Test',
- 'inputMask': '',
- 'inputType': 'text',
- 'tableView': true,
- 'input': true
- },
- {
- 'properties': {},
- 'tags': [],
- 'labelPosition': 'top',
- 'hideLabel': false,
- 'type': 'textfield',
- 'conditional': {
- 'eq': '',
- 'when': null,
- 'show': ''
- },
- 'validate': {
- 'customPrivate': false,
- 'custom': '',
- 'pattern': '',
- 'maxLength': '',
- 'minLength': '',
- 'required': false
- },
- 'clearOnHide': true,
- 'hidden': false,
- 'persistent': true,
- 'unique': false,
- 'protected': false,
- 'defaultValue': '',
- 'multiple': false,
- 'suffix': '',
- 'prefix': '',
- 'placeholder': '',
- 'key': 'changeme',
- 'label': 'Change me',
- 'inputMask': '',
- 'inputType': 'text',
- 'tableView': true,
- 'input': true,
- 'logic': [
- {
- 'name': 'Test 1',
- 'trigger': {
- 'javascript': "result = data.test === '1';",
- 'type': 'javascript'
- },
- 'actions': [
- {
- 'name': 'Set Title to One',
- 'text': 'One',
- 'property': {
- 'type': 'string',
- 'value': 'label',
- 'label': 'Title'
+ title: 'Field Logic Tests',
+ form: {
+ components: [
+ {
+ properties: {},
+ tags: [],
+ labelPosition: 'top',
+ hideLabel: false,
+ type: 'textfield',
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
},
- 'type': 'property'
- },
- {
- 'name': 'Set Description',
- 'type': 'property',
- 'property': {
- 'label': 'Description',
- 'value': 'description',
- 'type': 'string'
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: '',
+ minLength: '',
+ required: false,
},
- 'text': 'You have selected One'
- },
- {
- 'name': 'Set Disabled',
- 'type': 'property',
- 'property': {
- 'label': 'Disabled',
- 'value': 'disabled',
- 'type': 'boolean'
- },
- 'state': true
- }
- ]
- },
- {
- 'name': 'Test 2',
- 'trigger': {
- 'javascript': "result = data.test === '2';",
- 'type': 'javascript'
+ clearOnHide: true,
+ hidden: false,
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: false,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'test',
+ label: 'Test',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
},
- 'actions': [
- {
- 'name': 'Set Required',
- 'type': 'property',
- 'property': {
- 'label': 'Required',
- 'value': 'validate.required',
- 'type': 'boolean'
+ {
+ properties: {},
+ tags: [],
+ labelPosition: 'top',
+ hideLabel: false,
+ type: 'textfield',
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: '',
+ minLength: '',
+ required: false,
},
- 'state': true
- }
- ]
- },
- {
- 'name': 'Test 3',
- 'trigger': {
- 'javascript': "result = data.test === '3';",
- 'type': 'javascript'
+ clearOnHide: true,
+ hidden: false,
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: false,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'changeme',
+ label: 'Change me',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
+ logic: [
+ {
+ name: 'Test 1',
+ trigger: {
+ javascript: "result = data.test === '1';",
+ type: 'javascript',
+ },
+ actions: [
+ {
+ name: 'Set Title to One',
+ text: 'One',
+ property: {
+ type: 'string',
+ value: 'label',
+ label: 'Title',
+ },
+ type: 'property',
+ },
+ {
+ name: 'Set Description',
+ type: 'property',
+ property: {
+ label: 'Description',
+ value: 'description',
+ type: 'string',
+ },
+ text: 'You have selected One',
+ },
+ {
+ name: 'Set Disabled',
+ type: 'property',
+ property: {
+ label: 'Disabled',
+ value: 'disabled',
+ type: 'boolean',
+ },
+ state: true,
+ },
+ ],
+ },
+ {
+ name: 'Test 2',
+ trigger: {
+ javascript: "result = data.test === '2';",
+ type: 'javascript',
+ },
+ actions: [
+ {
+ name: 'Set Required',
+ type: 'property',
+ property: {
+ label: 'Required',
+ value: 'validate.required',
+ type: 'boolean',
+ },
+ state: true,
+ },
+ ],
+ },
+ {
+ name: 'Test 3',
+ trigger: {
+ javascript: "result = data.test === '3';",
+ type: 'javascript',
+ },
+ actions: [
+ {
+ name: 'Set Required',
+ type: 'value',
+ value: "return 'foo';",
+ },
+ ],
+ },
+ ],
},
- 'actions': [
- {
- 'name': 'Set Required',
- 'type': 'value',
- 'value': "return 'foo';"
- }
- ]
- }
- ]
- }
- ],
- },
- tests: {
- 'Test Title, Description and Disabled'(form, done) {
- Harness.setInputValue(form, 'data[test]', '1');
- form.onChange({}, true);
- Harness.testInnerHtml(form, '.formio-component-changeme .col-form-label', 'One');
- Harness.testInnerHtml(form, '.formio-component-changeme .form-text', 'You have selected One');
- Harness.testAttribute(form, '.formio-component-changeme .form-control', 'disabled', 'disabled');
- done();
+ ],
},
- 'Test Required'(form, done) {
- Harness.setInputValue(form, 'data[test]', '2');
- form.onChange({}, true);
- Harness.testHasClass(form, '.formio-component-changeme .col-form-label', 'field-required');
- done();
+ tests: {
+ 'Test Title, Description and Disabled'(form, done) {
+ Harness.setInputValue(form, 'data[test]', '1');
+ form.onChange({}, true);
+ Harness.testInnerHtml(
+ form,
+ '.formio-component-changeme .col-form-label',
+ 'One',
+ );
+ Harness.testInnerHtml(
+ form,
+ '.formio-component-changeme .form-text',
+ 'You have selected One',
+ );
+ Harness.testAttribute(
+ form,
+ '.formio-component-changeme .form-control',
+ 'disabled',
+ 'disabled',
+ );
+ done();
+ },
+ 'Test Required'(form, done) {
+ Harness.setInputValue(form, 'data[test]', '2');
+ form.onChange({}, true);
+ Harness.testHasClass(
+ form,
+ '.formio-component-changeme .col-form-label',
+ 'field-required',
+ );
+ done();
+ },
+ 'Test Set Value'(form, done) {
+ Harness.setInputValue(form, 'data[test]', '3');
+ form.onChange({}, true);
+ Harness.getInputValue(form, 'data[changeme]', 'foo');
+ done();
+ },
},
- 'Test Set Value'(form, done) {
- Harness.setInputValue(form, 'data[test]', '3');
- form.onChange({}, true);
- Harness.getInputValue(form, 'data[changeme]', 'foo');
- done();
- }
- }
};
diff --git a/test/forms/formBasedOnWizard.js b/test/forms/formBasedOnWizard.js
index 20499ec33b..1a1a1c163f 100644
--- a/test/forms/formBasedOnWizard.js
+++ b/test/forms/formBasedOnWizard.js
@@ -1,42 +1,42 @@
export default {
- display: 'form',
- components: [
- {
- title: 'Page 1',
- label: 'Page 1',
- type: 'panel',
- key: 'page1',
- components: [
+ display: 'form',
+ components: [
{
- label: 'Text Field',
- applyMaskOn: 'change',
- tableView: true,
- key: 'textField',
- type: 'textfield',
- input: true
- }
- ],
- input: false,
- tableView: false
- },
- {
- title: 'Page 2',
- label: 'Page 2',
- type: 'panel',
- key: 'page2',
- components: [
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Text Field',
+ applyMaskOn: 'change',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
{
- label: 'Text Area',
- applyMaskOn: 'change',
- autoExpand: false,
- tableView: true,
- key: 'textArea',
- type: 'textarea',
- input: true
- }
- ],
- input: false,
- tableView: false
- }
- ]
-}
+ title: 'Page 2',
+ label: 'Page 2',
+ type: 'panel',
+ key: 'page2',
+ components: [
+ {
+ label: 'Text Area',
+ applyMaskOn: 'change',
+ autoExpand: false,
+ tableView: true,
+ key: 'textArea',
+ type: 'textarea',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+};
diff --git a/test/forms/formWIthNestedWizard.d.ts b/test/forms/formWIthNestedWizard.d.ts
index 5f40ec7f98..ad0c176949 100644
--- a/test/forms/formWIthNestedWizard.d.ts
+++ b/test/forms/formWIthNestedWizard.d.ts
@@ -1,83 +1,89 @@
declare namespace _default {
const type: string;
- const components: ({
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- scrollToTop: boolean;
- collapsible: boolean;
- key: string;
- type: string;
- label: string;
- components: {
- label: string;
- optionsLabelPosition: string;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- validate: {
- onlyAvailableItems: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- inputType: string;
- defaultValue: {
- a: boolean;
- b: boolean;
- c: boolean;
- };
- }[];
- input: boolean;
- tableView: boolean;
- } | {
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- scrollToTop: boolean;
- collapsible: boolean;
- key: string;
- type: string;
- label: string;
- components: ({
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- useOriginalRevision?: undefined;
- } | {
- label: string;
- tableView: boolean;
- useOriginalRevision: boolean;
- key: string;
- type: string;
- input: boolean;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- })[];
- input: boolean;
- tableView: boolean;
- })[];
+ const components: (
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ scrollToTop: boolean;
+ collapsible: boolean;
+ key: string;
+ type: string;
+ label: string;
+ components: {
+ label: string;
+ optionsLabelPosition: string;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ validate: {
+ onlyAvailableItems: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ inputType: string;
+ defaultValue: {
+ a: boolean;
+ b: boolean;
+ c: boolean;
+ };
+ }[];
+ input: boolean;
+ tableView: boolean;
+ }
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ scrollToTop: boolean;
+ collapsible: boolean;
+ key: string;
+ type: string;
+ label: string;
+ components: (
+ | {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ useOriginalRevision?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ useOriginalRevision: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ }
+ )[];
+ input: boolean;
+ tableView: boolean;
+ }
+ )[];
const revisions: string;
const _vid: number;
const title: string;
diff --git a/test/forms/formWIthNestedWizard.js b/test/forms/formWIthNestedWizard.js
index 9378218eed..8679bd6185 100644
--- a/test/forms/formWIthNestedWizard.js
+++ b/test/forms/formWIthNestedWizard.js
@@ -1,104 +1,102 @@
export default {
- type: 'form',
- components: [
- {
- title: 'Parent 1',
- breadcrumbClickable: true,
- buttonSettings: {
- previous: true,
- cancel: true,
- next: true
- },
- scrollToTop: false,
- collapsible: false,
- key: 'parent1',
- type: 'panel',
- label: 'Page 1',
- components: [
- {
- label: 'Select Boxes Parent',
- optionsLabelPosition: 'right',
- tableView: false,
- values: [
- {
- label: 'a',
- value: 'a',
- shortcut: ''
- },
- {
- label: 'b',
- value: 'b',
- shortcut: ''
- },
- {
- label: 'c',
- value: 'c',
- shortcut: ''
- }
- ],
- validate: {
- onlyAvailableItems: false
- },
- key: 'selectBoxesParent',
- type: 'selectboxes',
- input: true,
- inputType: 'checkbox',
- defaultValue: {
- a: false,
- b: false,
- c: false
- }
- }
- ],
- input: false,
- tableView: false
- },
- {
- title: 'Parent 2',
- breadcrumbClickable: true,
- buttonSettings: {
- previous: true,
- cancel: true,
- next: true
- },
- scrollToTop: false,
- collapsible: false,
- key: 'parent2',
- type: 'panel',
- label: 'Page 2',
- components: [
- {
- label: 'Number Parent',
- mask: false,
- spellcheck: true,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- key: 'numberParent',
- type: 'number',
- input: true
- },
- {
- label: 'Form Nested',
- tableView: true,
- // form: '6038a2744efbab80ec1cf523',
- useOriginalRevision: false,
- key: 'formNested',
- type: 'form',
- input: true
- }
- ],
- input: false,
- tableView: false
- }
- ],
- revisions: '',
- _vid: 0,
- title: 'with nested wizard',
- display: 'wizard',
- name: 'withNestedWizard',
- path: 'withnestedwizard'
+ type: 'form',
+ components: [
+ {
+ title: 'Parent 1',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'parent1',
+ type: 'panel',
+ label: 'Page 1',
+ components: [
+ {
+ label: 'Select Boxes Parent',
+ optionsLabelPosition: 'right',
+ tableView: false,
+ values: [
+ {
+ label: 'a',
+ value: 'a',
+ shortcut: '',
+ },
+ {
+ label: 'b',
+ value: 'b',
+ shortcut: '',
+ },
+ {
+ label: 'c',
+ value: 'c',
+ shortcut: '',
+ },
+ ],
+ validate: {
+ onlyAvailableItems: false,
+ },
+ key: 'selectBoxesParent',
+ type: 'selectboxes',
+ input: true,
+ inputType: 'checkbox',
+ defaultValue: {
+ a: false,
+ b: false,
+ c: false,
+ },
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ {
+ title: 'Parent 2',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'parent2',
+ type: 'panel',
+ label: 'Page 2',
+ components: [
+ {
+ label: 'Number Parent',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'numberParent',
+ type: 'number',
+ input: true,
+ },
+ {
+ label: 'Form Nested',
+ tableView: true,
+ // form: '6038a2744efbab80ec1cf523',
+ useOriginalRevision: false,
+ key: 'formNested',
+ type: 'form',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'with nested wizard',
+ display: 'wizard',
+ name: 'withNestedWizard',
+ path: 'withnestedwizard',
};
-
-
diff --git a/test/forms/formWithAddressComponent.d.ts b/test/forms/formWithAddressComponent.d.ts
index 6f97cf4a36..e6f91b3894 100644
--- a/test/forms/formWithAddressComponent.d.ts
+++ b/test/forms/formWithAddressComponent.d.ts
@@ -5,58 +5,61 @@ declare namespace _default {
export default _default;
declare namespace form {
const type: string;
- const components: ({
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- defaultOpen: boolean;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- tableView: boolean;
- defaultValue: {}[];
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- provider: string;
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- customConditional: string;
- }[];
- providerOptions: {
- params: {
- key: string;
- region: string;
- };
- };
- }[];
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- defaultOpen?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- defaultValue?: undefined;
- components?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ reorder: boolean;
+ addAnotherPosition: string;
+ defaultOpen: boolean;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ tableView: boolean;
+ defaultValue: {}[];
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ provider: string;
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ customConditional: string;
+ }[];
+ providerOptions: {
+ params: {
+ key: string;
+ region: string;
+ };
+ };
+ }[];
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ defaultOpen?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ defaultValue?: undefined;
+ components?: undefined;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/formWithAddressComponent.js b/test/forms/formWithAddressComponent.js
index e9730f40b8..236f057a12 100644
--- a/test/forms/formWithAddressComponent.js
+++ b/test/forms/formWithAddressComponent.js
@@ -1,145 +1,170 @@
const form = {
- 'type': 'form',
- 'components': [{
- 'label': 'Data Grid',
- 'reorder': false,
- 'addAnotherPosition': 'bottom',
- 'defaultOpen': false,
- 'layoutFixed': false,
- 'enableRowGroups': false,
- 'initEmpty': false,
- 'tableView': false,
- 'defaultValue': [{}],
- 'key': 'dataGrid',
- 'type': 'datagrid',
- 'input': true,
- 'components': [{
- 'label': 'Address',
- 'tableView': false,
- 'provider': 'google',
- 'key': 'address',
- 'type': 'address',
- 'input': true,
- 'components': [{
- 'label': 'Address 1',
- 'tableView': false,
- 'key': 'address1',
- 'type': 'textfield',
- 'input': true,
- 'customConditional': 'show = _.get(instance, "parent.manualMode", false);'
- }, {
- 'label': 'Address 2',
- 'tableView': false,
- 'key': 'address2',
- 'type': 'textfield',
- 'input': true,
- 'customConditional': 'show = _.get(instance, "parent.manualMode", false);'
- }, {
- 'label': 'City',
- 'tableView': false,
- 'key': 'city',
- 'type': 'textfield',
- 'input': true,
- 'customConditional': 'show = _.get(instance, "parent.manualMode", false);'
- }, {
- 'label': 'State',
- 'tableView': false,
- 'key': 'state',
- 'type': 'textfield',
- 'input': true,
- 'customConditional': 'show = _.get(instance, "parent.manualMode", false);'
- }, {
- 'label': 'Country',
- 'tableView': false,
- 'key': 'country',
- 'type': 'textfield',
- 'input': true,
- 'customConditional': 'show = _.get(instance, "parent.manualMode", false);'
- }, {
- 'label': 'Zip Code',
- 'tableView': false,
- 'key': 'zip',
- 'type': 'textfield',
- 'input': true,
- 'customConditional': 'show = _.get(instance, "parent.manualMode", false);'
- }],
- 'providerOptions': {
- 'params': {
- 'key': 'someKey',
- 'region': ''
- }
- }
- }]
- }, {
- 'type': 'button',
- 'label': 'Submit',
- 'key': 'submit',
- 'disableOnInvalid': true,
- 'input': true,
- 'tableView': false
- }],
- 'title': 'test address',
- 'display': 'form',
- 'name': 'testAddress',
- 'path': 'testaddress',
- 'machineName': 'cjksbatcpbhyfbs:testAddress'
+ type: 'form',
+ components: [
+ {
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ defaultOpen: false,
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ tableView: false,
+ defaultValue: [{}],
+ key: 'dataGrid',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Address',
+ tableView: false,
+ provider: 'google',
+ key: 'address',
+ type: 'address',
+ input: true,
+ components: [
+ {
+ label: 'Address 1',
+ tableView: false,
+ key: 'address1',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ 'show = _.get(instance, "parent.manualMode", false);',
+ },
+ {
+ label: 'Address 2',
+ tableView: false,
+ key: 'address2',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ 'show = _.get(instance, "parent.manualMode", false);',
+ },
+ {
+ label: 'City',
+ tableView: false,
+ key: 'city',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ 'show = _.get(instance, "parent.manualMode", false);',
+ },
+ {
+ label: 'State',
+ tableView: false,
+ key: 'state',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ 'show = _.get(instance, "parent.manualMode", false);',
+ },
+ {
+ label: 'Country',
+ tableView: false,
+ key: 'country',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ 'show = _.get(instance, "parent.manualMode", false);',
+ },
+ {
+ label: 'Zip Code',
+ tableView: false,
+ key: 'zip',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ 'show = _.get(instance, "parent.manualMode", false);',
+ },
+ ],
+ providerOptions: {
+ params: {
+ key: 'someKey',
+ region: '',
+ },
+ },
+ },
+ ],
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ title: 'test address',
+ display: 'form',
+ name: 'testAddress',
+ path: 'testaddress',
+ machineName: 'cjksbatcpbhyfbs:testAddress',
};
-const submission = {
- 'dataGrid': [{
- 'address': {
- 'address_components': [{
- 'long_name': 'Dallas',
- 'short_name': 'Dallas',
- 'types': ['locality', 'political']
- }, {
- 'long_name': 'Dallas County',
- 'short_name': 'Dallas County',
- 'types': ['administrative_area_level_2', 'political']
- }, {
- 'long_name': 'Texas',
- 'short_name': 'TX',
- 'types': ['administrative_area_level_1', 'political']
- }, {
- 'long_name': 'United States',
- 'short_name': 'US',
- 'types': ['country', 'political']
- }],
- 'formatted_address': 'Dallas, TX, USA',
- 'geometry': {
- 'bounds': {
- 'northeast': {
- 'lat': 33.0237921,
- 'lng': -96.4637379
- },
- 'southwest': {
- 'lat': 32.617537,
- 'lng': -96.999347
- }
- },
- 'location': {
- 'lat': 32.7766642,
- 'lng': -96.79698789999999
+const submission = {
+ dataGrid: [
+ {
+ address: {
+ address_components: [
+ {
+ long_name: 'Dallas',
+ short_name: 'Dallas',
+ types: ['locality', 'political'],
+ },
+ {
+ long_name: 'Dallas County',
+ short_name: 'Dallas County',
+ types: ['administrative_area_level_2', 'political'],
+ },
+ {
+ long_name: 'Texas',
+ short_name: 'TX',
+ types: ['administrative_area_level_1', 'political'],
+ },
+ {
+ long_name: 'United States',
+ short_name: 'US',
+ types: ['country', 'political'],
+ },
+ ],
+ formatted_address: 'Dallas, TX, USA',
+ geometry: {
+ bounds: {
+ northeast: {
+ lat: 33.0237921,
+ lng: -96.4637379,
+ },
+ southwest: {
+ lat: 32.617537,
+ lng: -96.999347,
+ },
+ },
+ location: {
+ lat: 32.7766642,
+ lng: -96.79698789999999,
+ },
+ location_type: 'APPROXIMATE',
+ viewport: {
+ northeast: {
+ lat: 33.0237921,
+ lng: -96.4637379,
+ },
+ southwest: {
+ lat: 32.617537,
+ lng: -96.999347,
+ },
+ },
+ },
+ place_id: 'ChIJS5dFe_cZTIYRj2dH9qSb7Lk',
+ types: ['locality', 'political'],
+ },
},
- 'location_type': 'APPROXIMATE',
- 'viewport': {
- 'northeast': {
- 'lat': 33.0237921,
- 'lng': -96.4637379
- },
- 'southwest': {
- 'lat': 32.617537,
- 'lng': -96.999347
- }
- }
- },
- 'place_id': 'ChIJS5dFe_cZTIYRj2dH9qSb7Lk',
- 'types': ['locality', 'political']
- }
- }]
+ ],
};
export default {
- form: form,
- submission: submission,
+ form: form,
+ submission: submission,
};
diff --git a/test/forms/formWithAllowCalculateOverride.d.ts b/test/forms/formWithAllowCalculateOverride.d.ts
index 60bc12d6aa..8b82081b21 100644
--- a/test/forms/formWithAllowCalculateOverride.d.ts
+++ b/test/forms/formWithAllowCalculateOverride.d.ts
@@ -10,23 +10,26 @@ declare namespace _default {
label: string;
value: string;
}[];
- const components: ({
- label: string;
- key: string;
- input: boolean;
- type: string;
- allowCalculateOverride?: undefined;
- } | {
- label: string;
- key: string;
- input: boolean;
- type: string;
- allowCalculateOverride: boolean;
- calculateValue: {
- _camelCase: {
- var: string;
- }[];
- };
- })[];
+ const components: (
+ | {
+ label: string;
+ key: string;
+ input: boolean;
+ type: string;
+ allowCalculateOverride?: undefined;
+ }
+ | {
+ label: string;
+ key: string;
+ input: boolean;
+ type: string;
+ allowCalculateOverride: boolean;
+ calculateValue: {
+ _camelCase: {
+ var: string;
+ }[];
+ };
+ }
+ )[];
}
export default _default;
diff --git a/test/forms/formWithAllowCalculateOverride.js b/test/forms/formWithAllowCalculateOverride.js
index a970576768..36539b9b1b 100644
--- a/test/forms/formWithAllowCalculateOverride.js
+++ b/test/forms/formWithAllowCalculateOverride.js
@@ -1,26 +1,27 @@
export default {
- type: 'datagrid',
- input: true,
- label: 'Data Source Values',
- key: 'data.values',
- tooltip: 'Values to use as the data source. Labels are shown in the select field. Values are the corresponding values saved with the submission.',
- weight: 10,
- reorder: true,
- defaultValue: [{label: '', value: ''}],
- components: [
- {
- label: 'Label',
- key: 'label',
- input: true,
- type: 'textfield',
- },
- {
- label: 'Value',
- key: 'value',
- input: true,
- type: 'textfield',
- allowCalculateOverride: true,
- calculateValue: {_camelCase: [{var: 'row.label'}]},
- },
- ]
-}
+ type: 'datagrid',
+ input: true,
+ label: 'Data Source Values',
+ key: 'data.values',
+ tooltip:
+ 'Values to use as the data source. Labels are shown in the select field. Values are the corresponding values saved with the submission.',
+ weight: 10,
+ reorder: true,
+ defaultValue: [{ label: '', value: '' }],
+ components: [
+ {
+ label: 'Label',
+ key: 'label',
+ input: true,
+ type: 'textfield',
+ },
+ {
+ label: 'Value',
+ key: 'value',
+ input: true,
+ type: 'textfield',
+ allowCalculateOverride: true,
+ calculateValue: { _camelCase: [{ var: 'row.label' }] },
+ },
+ ],
+};
diff --git a/test/forms/formWithCKEditor.d.ts b/test/forms/formWithCKEditor.d.ts
index dfc60ff6fa..681df8a1da 100644
--- a/test/forms/formWithCKEditor.d.ts
+++ b/test/forms/formWithCKEditor.d.ts
@@ -1,24 +1,27 @@
declare namespace _default {
const type: string;
- const components: ({
- label: string;
- editor: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- isUploadEnabled: boolean;
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- editor?: undefined;
- isUploadEnabled?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ editor: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ isUploadEnabled: boolean;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ editor?: undefined;
+ isUploadEnabled?: undefined;
+ }
+ )[];
const title: string;
const display: string;
}
diff --git a/test/forms/formWithCKEditor.js b/test/forms/formWithCKEditor.js
index 34cfd6f76a..54b2ab2aba 100644
--- a/test/forms/formWithCKEditor.js
+++ b/test/forms/formWithCKEditor.js
@@ -1,24 +1,24 @@
export default {
- type: 'form',
- components: [
- {
- label: 'Text Area',
- editor: 'ckeditor',
- tableView: true,
- key: 'textArea',
- type: 'textarea',
- input: true,
- isUploadEnabled: false
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false
- }
- ],
- title: 'FIO-560',
- display: 'form',
+ type: 'form',
+ components: [
+ {
+ label: 'Text Area',
+ editor: 'ckeditor',
+ tableView: true,
+ key: 'textArea',
+ type: 'textarea',
+ input: true,
+ isUploadEnabled: false,
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ title: 'FIO-560',
+ display: 'form',
};
diff --git a/test/forms/formWithCalcValue.d.ts b/test/forms/formWithCalcValue.d.ts
index a983d1c55a..945a2a7af5 100644
--- a/test/forms/formWithCalcValue.d.ts
+++ b/test/forms/formWithCalcValue.d.ts
@@ -1,255 +1,259 @@
declare namespace _default {
const display: string;
- const components: ({
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- defaultValue: number;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- modalEdit: boolean;
- dataGridLabel: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- widget: {
- type: string;
- };
- attributes: {};
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- min: string;
- max: string;
- step: string;
- integer: string;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- };
- overlay: {
- style: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- properties: {};
- allowMultipleMasks: boolean;
- id: string;
- inputType?: undefined;
- value?: undefined;
- name?: undefined;
- disableOnInvalid?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- theme?: undefined;
- } | {
- label: string;
- tableView: boolean;
- defaultValue: boolean;
- calculateValue: string;
- key: string;
- type: string;
- input: boolean;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- modalEdit: boolean;
- dataGridLabel: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateServer: boolean;
- widget: null;
- attributes: {};
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- min?: undefined;
- max?: undefined;
- step?: undefined;
- integer?: undefined;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- };
- overlay: {
- style: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- properties: {};
- allowMultipleMasks: boolean;
- inputType: string;
- value: string;
- name: string;
- id: string;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- disableOnInvalid?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- theme?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- modalEdit: boolean;
- dataGridLabel: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- widget: {
- type: string;
- };
- attributes: {};
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- min?: undefined;
- max?: undefined;
- step?: undefined;
- integer?: undefined;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- };
- overlay: {
- style: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- properties: {};
- allowMultipleMasks: boolean;
- size: string;
- leftIcon: string;
- rightIcon: string;
- block: boolean;
- action: string;
- theme: string;
- id: string;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- inputType?: undefined;
- value?: undefined;
- name?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ defaultValue: number;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ modalEdit: boolean;
+ dataGridLabel: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ widget: {
+ type: string;
+ };
+ attributes: {};
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ min: string;
+ max: string;
+ step: string;
+ integer: string;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ };
+ overlay: {
+ style: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ properties: {};
+ allowMultipleMasks: boolean;
+ id: string;
+ inputType?: undefined;
+ value?: undefined;
+ name?: undefined;
+ disableOnInvalid?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ theme?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ defaultValue: boolean;
+ calculateValue: string;
+ key: string;
+ type: string;
+ input: boolean;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ modalEdit: boolean;
+ dataGridLabel: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateServer: boolean;
+ widget: null;
+ attributes: {};
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ min?: undefined;
+ max?: undefined;
+ step?: undefined;
+ integer?: undefined;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ };
+ overlay: {
+ style: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ properties: {};
+ allowMultipleMasks: boolean;
+ inputType: string;
+ value: string;
+ name: string;
+ id: string;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ disableOnInvalid?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ theme?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ modalEdit: boolean;
+ dataGridLabel: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ widget: {
+ type: string;
+ };
+ attributes: {};
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ min?: undefined;
+ max?: undefined;
+ step?: undefined;
+ integer?: undefined;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ };
+ overlay: {
+ style: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ properties: {};
+ allowMultipleMasks: boolean;
+ size: string;
+ leftIcon: string;
+ rightIcon: string;
+ block: boolean;
+ action: string;
+ theme: string;
+ id: string;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ inputType?: undefined;
+ value?: undefined;
+ name?: undefined;
+ }
+ )[];
}
export default _default;
diff --git a/test/forms/formWithCalcValue.js b/test/forms/formWithCalcValue.js
index ce49d300e1..03a990e5f0 100644
--- a/test/forms/formWithCalcValue.js
+++ b/test/forms/formWithCalcValue.js
@@ -1,220 +1,220 @@
export default {
- display: 'form',
- components: [
- {
- label: 'Number',
- mask: false,
- spellcheck: true,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- key: 'number',
- type: 'number',
- input: true,
- defaultValue: 0,
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- protected: false,
- unique: false,
- persistent: true,
- hidden: false,
- clearOnHide: true,
- refreshOn: '',
- redrawOn: '',
- modalEdit: false,
- dataGridLabel: false,
- labelPosition: 'top',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- widget: {
- type: 'input',
- },
- attributes: {},
- validateOn: 'change',
- validate: {
- required: true,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
- multiple: false,
- unique: false,
- min: '',
- max: '',
- step: 'any',
- integer: '',
- },
- conditional: {
- show: null,
- when: null,
- eq: '',
- },
- overlay: {
- style: '',
- left: '',
- top: '',
- width: '',
- height: '',
- },
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
- properties: {},
- allowMultipleMasks: false,
- id: 'ecld9s',
- },
- {
- label: 'Checkbox',
- tableView: false,
- defaultValue: false,
- calculateValue: 'value = (data.number === 0);',
- key: 'checkbox',
- type: 'checkbox',
- input: true,
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- protected: false,
- unique: false,
- persistent: true,
- hidden: false,
- clearOnHide: true,
- refreshOn: '',
- redrawOn: '',
- modalEdit: false,
- dataGridLabel: true,
- labelPosition: 'right',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateServer: false,
- widget: null,
- attributes: {},
- validateOn: 'change',
- validate: {
- required: false,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
- multiple: false,
- unique: false,
- },
- conditional: {
- show: null,
- when: null,
- eq: '',
- },
- overlay: {
- style: '',
- left: '',
- top: '',
- width: '',
- height: '',
- },
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
- properties: {},
- allowMultipleMasks: false,
- inputType: 'checkbox',
- value: '',
- name: '',
- id: 'e6wd4oh',
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false,
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- defaultValue: null,
- protected: false,
- unique: false,
- persistent: false,
- hidden: false,
- clearOnHide: true,
- refreshOn: '',
- redrawOn: '',
- modalEdit: false,
- dataGridLabel: true,
- labelPosition: 'top',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- widget: {
- type: 'input',
- },
- attributes: {},
- validateOn: 'change',
- validate: {
- required: false,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
- multiple: false,
- unique: false,
- },
- conditional: {
- show: null,
- when: null,
- eq: '',
- },
- overlay: {
- style: '',
- left: '',
- top: '',
- width: '',
- height: '',
- },
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
- properties: {},
- allowMultipleMasks: false,
- size: 'md',
- leftIcon: '',
- rightIcon: '',
- block: false,
- action: 'submit',
- theme: 'primary',
- id: 'etyhy1',
- },
- ],
+ display: 'form',
+ components: [
+ {
+ label: 'Number',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'number',
+ type: 'number',
+ input: true,
+ defaultValue: 0,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ refreshOn: '',
+ redrawOn: '',
+ modalEdit: false,
+ dataGridLabel: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: {
+ type: 'input',
+ },
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: true,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ min: '',
+ max: '',
+ step: 'any',
+ integer: '',
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ id: 'ecld9s',
+ },
+ {
+ label: 'Checkbox',
+ tableView: false,
+ defaultValue: false,
+ calculateValue: 'value = (data.number === 0);',
+ key: 'checkbox',
+ type: 'checkbox',
+ input: true,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ refreshOn: '',
+ redrawOn: '',
+ modalEdit: false,
+ dataGridLabel: true,
+ labelPosition: 'right',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateServer: false,
+ widget: null,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ inputType: 'checkbox',
+ value: '',
+ name: '',
+ id: 'e6wd4oh',
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: true,
+ refreshOn: '',
+ redrawOn: '',
+ modalEdit: false,
+ dataGridLabel: true,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: {
+ type: 'input',
+ },
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ size: 'md',
+ leftIcon: '',
+ rightIcon: '',
+ block: false,
+ action: 'submit',
+ theme: 'primary',
+ id: 'etyhy1',
+ },
+ ],
};
diff --git a/test/forms/formWithCheckboxRadioType.d.ts b/test/forms/formWithCheckboxRadioType.d.ts
index 43f95100ce..b3a33f9dd6 100644
--- a/test/forms/formWithCheckboxRadioType.d.ts
+++ b/test/forms/formWithCheckboxRadioType.d.ts
@@ -4,40 +4,44 @@ declare namespace _default {
const path: string;
const type: string;
const display: string;
- const components: ({
- label: string;
- inputType: string;
- tableView: boolean;
- defaultValue: boolean;
- key: string;
- type: string;
- name: string;
- value: string;
- input: boolean;
- radio: boolean;
- } | {
- label: string;
- inputType: string;
- tableView: boolean;
- defaultValue: boolean;
- key: string;
- type: string;
- name: string;
- value: string;
- input: boolean;
- radio?: undefined;
- } | {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- inputType?: undefined;
- defaultValue?: undefined;
- name?: undefined;
- value?: undefined;
- radio?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ inputType: string;
+ tableView: boolean;
+ defaultValue: boolean;
+ key: string;
+ type: string;
+ name: string;
+ value: string;
+ input: boolean;
+ radio: boolean;
+ }
+ | {
+ label: string;
+ inputType: string;
+ tableView: boolean;
+ defaultValue: boolean;
+ key: string;
+ type: string;
+ name: string;
+ value: string;
+ input: boolean;
+ radio?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ inputType?: undefined;
+ defaultValue?: undefined;
+ name?: undefined;
+ value?: undefined;
+ radio?: undefined;
+ }
+ )[];
const created: string;
const modified: string;
const machineName: string;
diff --git a/test/forms/formWithCheckboxRadioType.js b/test/forms/formWithCheckboxRadioType.js
index c3f8a42c2c..b7abbcce4f 100644
--- a/test/forms/formWithCheckboxRadioType.js
+++ b/test/forms/formWithCheckboxRadioType.js
@@ -5,38 +5,38 @@ export default {
type: 'form',
display: 'form',
components: [
- {
- label: 'Checkbox 1',
- inputType: 'radio',
- tableView: true,
- defaultValue: false,
- key: 'checkbox1',
- type: 'checkbox',
- name: 'radio',
- value: 'value1',
- input: true,
- radio: false,
- },
- {
- label: 'Checkbox 2',
- inputType: 'radio',
- tableView: true,
- defaultValue: false,
- key: 'checkbox2',
- type: 'checkbox',
- name: 'radio',
- value: 'value2',
- input: true,
- },
- {
- label: 'Checkbox',
- tableView: false,
- key: 'checkbox',
- type: 'checkbox',
- input: true,
- }
+ {
+ label: 'Checkbox 1',
+ inputType: 'radio',
+ tableView: true,
+ defaultValue: false,
+ key: 'checkbox1',
+ type: 'checkbox',
+ name: 'radio',
+ value: 'value1',
+ input: true,
+ radio: false,
+ },
+ {
+ label: 'Checkbox 2',
+ inputType: 'radio',
+ tableView: true,
+ defaultValue: false,
+ key: 'checkbox2',
+ type: 'checkbox',
+ name: 'radio',
+ value: 'value2',
+ input: true,
+ },
+ {
+ label: 'Checkbox',
+ tableView: false,
+ key: 'checkbox',
+ type: 'checkbox',
+ input: true,
+ },
],
created: '2022-09-01T09:12:45.581Z',
modified: '2022-09-05T08:51:16.048Z',
machineName: 'uubnbosxacwjzbk:testCheckbox',
- };
+};
diff --git a/test/forms/formWithDataGrid.d.ts b/test/forms/formWithDataGrid.d.ts
index 364123fcdb..f5e4a6642d 100644
--- a/test/forms/formWithDataGrid.d.ts
+++ b/test/forms/formWithDataGrid.d.ts
@@ -9,269 +9,272 @@ declare namespace form {
const type: string;
const tags: never[];
const owner: string;
- const components: ({
- label: string;
- labelPosition: string;
- description: string;
- tooltip: string;
- disableAddingRemovingRows: boolean;
- conditionalAddButton: string;
- reorder: boolean;
- addAnother: string;
- addAnotherPosition: string;
- defaultOpen: boolean;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- customClass: string;
- tabindex: string;
- hidden: boolean;
- hideLabel: boolean;
- autofocus: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- defaultValue: {}[];
- persistent: boolean;
- protected: boolean;
- dbIndex: boolean;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- minLength: string;
- maxLength: string;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- unique: boolean;
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- input: boolean;
- placeholder: string;
- prefix: string;
- suffix: string;
- multiple: boolean;
- refreshOn: string;
- widget: null;
- showCharCount: boolean;
- showWordCount: boolean;
- allowMultipleMasks: boolean;
- tree: boolean;
- components: {
- label: string;
- labelPosition: string;
- placeholder: string;
- description: string;
- tooltip: string;
- prefix: string;
- suffix: string;
- widget: {
- type: string;
- };
- customClass: string;
- tabindex: string;
- autocomplete: string;
- hidden: boolean;
- hideLabel: boolean;
- mask: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- multiple: boolean;
- persistent: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- protected: boolean;
- dbIndex: boolean;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- min: string;
- max: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- step: string;
- integer: string;
- };
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- input: boolean;
- unique: boolean;
- refreshOn: string;
- showCharCount: boolean;
- showWordCount: boolean;
- allowMultipleMasks: boolean;
- id: string;
- defaultValue: null;
- }[];
- id: string;
- disableOnInvalid?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- theme?: undefined;
- dataGridLabel?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- modalEdit: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- widget: {
- type: string;
- };
- attributes: {};
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- minLength?: undefined;
- maxLength?: undefined;
- customMessage?: undefined;
- json?: undefined;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- json?: undefined;
- };
- overlay: {
- style: string;
- left: string;
- top: string;
- width: string;
- height: string;
- page?: undefined;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- properties: {};
- allowMultipleMasks: boolean;
- size: string;
- leftIcon: string;
- rightIcon: string;
- block: boolean;
- action: string;
- theme: string;
- dataGridLabel: boolean;
- id: string;
- disableAddingRemovingRows?: undefined;
- conditionalAddButton?: undefined;
- reorder?: undefined;
- addAnother?: undefined;
- addAnotherPosition?: undefined;
- defaultOpen?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- tags?: undefined;
- logic?: undefined;
- tree?: undefined;
- components?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ labelPosition: string;
+ description: string;
+ tooltip: string;
+ disableAddingRemovingRows: boolean;
+ conditionalAddButton: string;
+ reorder: boolean;
+ addAnother: string;
+ addAnotherPosition: string;
+ defaultOpen: boolean;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ customClass: string;
+ tabindex: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ autofocus: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ defaultValue: {}[];
+ persistent: boolean;
+ protected: boolean;
+ dbIndex: boolean;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ minLength: string;
+ maxLength: string;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ unique: boolean;
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ input: boolean;
+ placeholder: string;
+ prefix: string;
+ suffix: string;
+ multiple: boolean;
+ refreshOn: string;
+ widget: null;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ allowMultipleMasks: boolean;
+ tree: boolean;
+ components: {
+ label: string;
+ labelPosition: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ prefix: string;
+ suffix: string;
+ widget: {
+ type: string;
+ };
+ customClass: string;
+ tabindex: string;
+ autocomplete: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ mask: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ multiple: boolean;
+ persistent: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ protected: boolean;
+ dbIndex: boolean;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ min: string;
+ max: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ step: string;
+ integer: string;
+ };
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ input: boolean;
+ unique: boolean;
+ refreshOn: string;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ allowMultipleMasks: boolean;
+ id: string;
+ defaultValue: null;
+ }[];
+ id: string;
+ disableOnInvalid?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ theme?: undefined;
+ dataGridLabel?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ modalEdit: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ widget: {
+ type: string;
+ };
+ attributes: {};
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ minLength?: undefined;
+ maxLength?: undefined;
+ customMessage?: undefined;
+ json?: undefined;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json?: undefined;
+ };
+ overlay: {
+ style: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ page?: undefined;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ properties: {};
+ allowMultipleMasks: boolean;
+ size: string;
+ leftIcon: string;
+ rightIcon: string;
+ block: boolean;
+ action: string;
+ theme: string;
+ dataGridLabel: boolean;
+ id: string;
+ disableAddingRemovingRows?: undefined;
+ conditionalAddButton?: undefined;
+ reorder?: undefined;
+ addAnother?: undefined;
+ addAnotherPosition?: undefined;
+ defaultOpen?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ tags?: undefined;
+ logic?: undefined;
+ tree?: undefined;
+ components?: undefined;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/formWithDataGrid.js b/test/forms/formWithDataGrid.js
index d1f99a4c17..a6e438bf4d 100644
--- a/test/forms/formWithDataGrid.js
+++ b/test/forms/formWithDataGrid.js
@@ -1,265 +1,270 @@
const form = {
- "_id": "5fb3a367921ccc8c3818b02a",
- "type": "form",
- "tags": [],
- "owner": "5e949fd2dfad833c8893ef44",
- "components": [{
- "label": "Data Grid",
- "labelPosition": "top",
- "description": "",
- "tooltip": "",
- "disableAddingRemovingRows": false,
- "conditionalAddButton": "",
- "reorder": false,
- "addAnother": "",
- "addAnotherPosition": "bottom",
- "defaultOpen": false,
- "layoutFixed": false,
- "enableRowGroups": false,
- "initEmpty": false,
- "customClass": "",
- "tabindex": "",
- "hidden": false,
- "hideLabel": false,
- "autofocus": false,
- "disabled": false,
- "tableView": false,
- "modalEdit": false,
- "defaultValue": [{}],
- "persistent": true,
- "protected": false,
- "dbIndex": false,
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "minLength": "",
- "maxLength": "",
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "unique": false,
- "errorLabel": "",
- "key": "dataGrid",
- "tags": [],
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "datagrid",
- "input": true,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "refreshOn": "",
- "widget": null,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "tree": true,
- "components": [{
- "label": "Number",
- "labelPosition": "top",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "prefix": "",
- "suffix": "",
- "widget": {
- "type": "input"
- },
- "customClass": "",
- "tabindex": "",
- "autocomplete": "",
- "hidden": false,
- "hideLabel": false,
- "mask": false,
- "autofocus": false,
- "spellcheck": true,
- "disabled": false,
- "tableView": false,
- "modalEdit": false,
- "multiple": false,
- "persistent": true,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "protected": false,
- "dbIndex": false,
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "min": "",
- "max": "",
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "step": "any",
- "integer": ""
- },
- "errorLabel": "",
- "key": "number",
- "tags": [],
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "number",
- "input": true,
- "unique": false,
- "refreshOn": "",
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "id": "ep0otn0",
- "defaultValue": null
- }],
- "id": "egnjdp"
- }, {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": {
- "type": "input"
- },
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "size": "md",
- "leftIcon": "",
- "rightIcon": "",
- "block": false,
- "action": "submit",
- "theme": "primary",
- "dataGridLabel": true,
- "id": "eattlla"
- }],
- "title": "dataGridTest",
- "display": "form",
- "name": "dataGridTest",
- "path": "datagridtest",
- "machineName": "cjksbatcpbhyfbs:dataGridTest"
+ _id: '5fb3a367921ccc8c3818b02a',
+ type: 'form',
+ tags: [],
+ owner: '5e949fd2dfad833c8893ef44',
+ components: [
+ {
+ label: 'Data Grid',
+ labelPosition: 'top',
+ description: '',
+ tooltip: '',
+ disableAddingRemovingRows: false,
+ conditionalAddButton: '',
+ reorder: false,
+ addAnother: '',
+ addAnotherPosition: 'bottom',
+ defaultOpen: false,
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ autofocus: false,
+ disabled: false,
+ tableView: false,
+ modalEdit: false,
+ defaultValue: [{}],
+ persistent: true,
+ protected: false,
+ dbIndex: false,
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'dataGrid',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'datagrid',
+ input: true,
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ refreshOn: '',
+ widget: null,
+ showCharCount: false,
+ showWordCount: false,
+ allowMultipleMasks: false,
+ tree: true,
+ components: [
+ {
+ label: 'Number',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ customClass: '',
+ tabindex: '',
+ autocomplete: '',
+ hidden: false,
+ hideLabel: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: false,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ min: '',
+ max: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ step: 'any',
+ integer: '',
+ },
+ errorLabel: '',
+ key: 'number',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'number',
+ input: true,
+ unique: false,
+ refreshOn: '',
+ showCharCount: false,
+ showWordCount: false,
+ allowMultipleMasks: false,
+ id: 'ep0otn0',
+ defaultValue: null,
+ },
+ ],
+ id: 'egnjdp',
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: true,
+ refreshOn: '',
+ redrawOn: '',
+ modalEdit: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: {
+ type: 'input',
+ },
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ size: 'md',
+ leftIcon: '',
+ rightIcon: '',
+ block: false,
+ action: 'submit',
+ theme: 'primary',
+ dataGridLabel: true,
+ id: 'eattlla',
+ },
+ ],
+ title: 'dataGridTest',
+ display: 'form',
+ name: 'dataGridTest',
+ path: 'datagridtest',
+ machineName: 'cjksbatcpbhyfbs:dataGridTest',
};
const submission3rows = {
- data: {
- dataGrid: [{ number: 1 }, { number: 2 }, { number: 3 }]
- }
+ data: {
+ dataGrid: [{ number: 1 }, { number: 2 }, { number: 3 }],
+ },
};
const submission1row = {
- data: {
- dataGrid: [{ number: 555 }]
- }
+ data: {
+ dataGrid: [{ number: 555 }],
+ },
};
export default {
- form: form,
- submission1row: submission1row,
- submission3rows: submission3rows,
+ form: form,
+ submission1row: submission1row,
+ submission3rows: submission3rows,
};
diff --git a/test/forms/formWithDayComp.d.ts b/test/forms/formWithDayComp.d.ts
index b8a18aa40b..ee433c1e17 100644
--- a/test/forms/formWithDayComp.d.ts
+++ b/test/forms/formWithDayComp.d.ts
@@ -1,41 +1,44 @@
declare namespace _default {
const _id: string;
const type: string;
- const components: ({
- label: string;
- hideInputLabels: boolean;
- inputsLabelPosition: string;
- useLocaleSettings: boolean;
- tableView: boolean;
- fields: {
- day: {
- hide: boolean;
- };
- month: {
- hide: boolean;
- };
- year: {
- hide: boolean;
- };
- };
- key: string;
- type: string;
- input: boolean;
- defaultValue: string;
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ hideInputLabels: boolean;
+ inputsLabelPosition: string;
+ useLocaleSettings: boolean;
+ tableView: boolean;
+ fields: {
+ day: {
+ hide: boolean;
+ };
+ month: {
+ hide: boolean;
+ };
+ year: {
+ hide: boolean;
+ };
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ defaultValue: string;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ }
+ )[];
const title: string;
const display: string;
const controller: string;
diff --git a/test/forms/formWithDayComp.js b/test/forms/formWithDayComp.js
index a71b0cd682..0ab35b8764 100644
--- a/test/forms/formWithDayComp.js
+++ b/test/forms/formWithDayComp.js
@@ -1,24 +1,35 @@
export default {
- _id: '60eea4803b352ff0441d4843',
- type: 'form',
- components: [
- {
- label: 'Day',
- hideInputLabels: false,
- inputsLabelPosition: 'top',
- useLocaleSettings: false,
- tableView: false,
- fields: { day: { hide: false }, month: { hide: false }, year: { hide: false } },
- key: 'day',
- type: 'day',
- input: true,
- defaultValue: '00/00/0000'
- },
- { type: 'button', label: 'Submit', key: 'submit', disableOnInvalid: true, input: true, tableView: false }
- ],
- title: 'dat test',
- display: 'form',
- controller: '',
- name: 'dateTest',
- path: 'datetest',
+ _id: '60eea4803b352ff0441d4843',
+ type: 'form',
+ components: [
+ {
+ label: 'Day',
+ hideInputLabels: false,
+ inputsLabelPosition: 'top',
+ useLocaleSettings: false,
+ tableView: false,
+ fields: {
+ day: { hide: false },
+ month: { hide: false },
+ year: { hide: false },
+ },
+ key: 'day',
+ type: 'day',
+ input: true,
+ defaultValue: '00/00/0000',
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ title: 'dat test',
+ display: 'form',
+ controller: '',
+ name: 'dateTest',
+ path: 'datetest',
};
diff --git a/test/forms/formWithDeeplyNestedConditionalComps.js b/test/forms/formWithDeeplyNestedConditionalComps.js
index b5c5ec57f8..323ad89b88 100644
--- a/test/forms/formWithDeeplyNestedConditionalComps.js
+++ b/test/forms/formWithDeeplyNestedConditionalComps.js
@@ -5,154 +5,155 @@ export default {
type: 'form',
display: 'form',
components: [
- {
- label: 'Radio1',
- optionsLabelPosition: 'right',
- inline: false,
- tableView: false,
- values: [
- {
- label: 'yes',
- value: 'yes',
- shortcut: '',
- },
- {
- label: 'no',
- value: 'no',
- shortcut: '',
- },
- ],
- key: 'radio1',
- type: 'radio',
- input: true,
- },
- {
- label: 'Container',
- tableView: false,
- key: 'container',
- conditional: {
- show: true,
- conjunction: 'all',
- conditions: [
- {
- component: 'radio1',
- operator: 'isEqual',
- value: 'yes',
- },
- ],
- },
- type: 'container',
- input: true,
- components: [
- {
- title: 'Panel in Hidden Container',
- collapsible: false,
- key: 'panel',
- type: 'panel',
- label: 'Panel',
- input: false,
+ {
+ label: 'Radio1',
+ optionsLabelPosition: 'right',
+ inline: false,
tableView: false,
- components: [
- {
- label: 'Hidden Checkbox in Panel in Hidden Container',
- tableView: false,
- defaultValue: false,
- key: 'checkbox',
- conditional: {
- show: true,
- conjunction: 'all',
- conditions: [
- {
- component: 'radio1',
- operator: 'isEqual',
- value: 'yes',
- },
- ],
+ values: [
+ {
+ label: 'yes',
+ value: 'yes',
+ shortcut: '',
+ },
+ {
+ label: 'no',
+ value: 'no',
+ shortcut: '',
},
- type: 'checkbox',
- input: true,
- },
- {
- label: 'Checkbox in Panel in Hidden Container',
- tableView: false,
- key: 'checkboxInPanelInHiddenContainer',
- type: 'checkbox',
- input: true,
- defaultValue: false,
- },
- {
- label: 'Text Field',
- applyMaskOn: 'change',
- tableView: true,
- key: 'textField',
- conditional: {
- show: true,
- conjunction: 'all',
- conditions: [
+ ],
+ key: 'radio1',
+ type: 'radio',
+ input: true,
+ },
+ {
+ label: 'Container',
+ tableView: false,
+ key: 'container',
+ conditional: {
+ show: true,
+ conjunction: 'all',
+ conditions: [
{
- component: 'radio1',
- operator: 'isEqual',
- value: 'yes',
+ component: 'radio1',
+ operator: 'isEqual',
+ value: 'yes',
},
- ],
- },
- type: 'textfield',
- input: true,
- },
- {
- label: 'Edit Grid',
- tableView: false,
- rowDrafts: false,
- key: 'editGrid',
- type: 'editgrid',
- displayAsTable: false,
- input: true,
- components: [
- {
- label: 'Text Field',
- applyMaskOn: 'change',
- tableView: true,
- key: 'textField',
- conditional: {
- show: true,
- conjunction: 'all',
- conditions: [
+ ],
+ },
+ type: 'container',
+ input: true,
+ components: [
+ {
+ title: 'Panel in Hidden Container',
+ collapsible: false,
+ key: 'panel',
+ type: 'panel',
+ label: 'Panel',
+ input: false,
+ tableView: false,
+ components: [
{
- component: 'container.editGrid.number',
- operator: 'isEqual',
- value: 1,
+ label: 'Hidden Checkbox in Panel in Hidden Container',
+ tableView: false,
+ defaultValue: false,
+ key: 'checkbox',
+ conditional: {
+ show: true,
+ conjunction: 'all',
+ conditions: [
+ {
+ component: 'radio1',
+ operator: 'isEqual',
+ value: 'yes',
+ },
+ ],
+ },
+ type: 'checkbox',
+ input: true,
},
- ],
- },
- type: 'textfield',
- input: true,
- },
- {
- label: 'Number',
- applyMaskOn: 'change',
- mask: false,
- tableView: true,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- truncateMultipleSpaces: false,
- key: 'number',
- type: 'number',
- input: true,
- },
- ],
- },
+ {
+ label: 'Checkbox in Panel in Hidden Container',
+ tableView: false,
+ key: 'checkboxInPanelInHiddenContainer',
+ type: 'checkbox',
+ input: true,
+ defaultValue: false,
+ },
+ {
+ label: 'Text Field',
+ applyMaskOn: 'change',
+ tableView: true,
+ key: 'textField',
+ conditional: {
+ show: true,
+ conjunction: 'all',
+ conditions: [
+ {
+ component: 'radio1',
+ operator: 'isEqual',
+ value: 'yes',
+ },
+ ],
+ },
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Edit Grid',
+ tableView: false,
+ rowDrafts: false,
+ key: 'editGrid',
+ type: 'editgrid',
+ displayAsTable: false,
+ input: true,
+ components: [
+ {
+ label: 'Text Field',
+ applyMaskOn: 'change',
+ tableView: true,
+ key: 'textField',
+ conditional: {
+ show: true,
+ conjunction: 'all',
+ conditions: [
+ {
+ component:
+ 'container.editGrid.number',
+ operator: 'isEqual',
+ value: 1,
+ },
+ ],
+ },
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Number',
+ applyMaskOn: 'change',
+ mask: false,
+ tableView: true,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ truncateMultipleSpaces: false,
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ ],
+ },
+ ],
+ },
],
- },
- ],
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false,
- },
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
],
};
diff --git a/test/forms/formWithEventLogicInHiddenComponent.d.ts b/test/forms/formWithEventLogicInHiddenComponent.d.ts
index 7ab2d245ea..38ac78d3a1 100644
--- a/test/forms/formWithEventLogicInHiddenComponent.d.ts
+++ b/test/forms/formWithEventLogicInHiddenComponent.d.ts
@@ -1,303 +1,320 @@
declare namespace _default {
const type: string;
- const components: ({
- label: string;
- widget: string;
- tableView: boolean;
- multiple: boolean;
- data: {
- values: {
- label: string;
- value: string;
- }[];
- };
- key: string;
- type: string;
- input: boolean;
- disableAddingRemovingRows?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- hidden?: undefined;
- hideLabel?: undefined;
- disableSortingAndFiltering?: undefined;
- clearOnHide?: undefined;
- validate?: undefined;
- logic?: undefined;
- components?: undefined;
- showValidations?: undefined;
- saveOnEnter?: undefined;
- } | {
- label: string;
- disableAddingRemovingRows: boolean;
- reorder: boolean;
- addAnotherPosition: string;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- hidden: boolean;
- hideLabel: boolean;
- disableSortingAndFiltering: boolean;
- tableView: boolean;
- clearOnHide: boolean;
- validate: {
- custom: string;
- };
- key: string;
- logic: {
- name: string;
- trigger: {
- type: string;
- simple: {
- show: boolean;
- when: string;
- eq: string;
- };
- };
- actions: {
- name: string;
- type: string;
- property: {
- label: string;
- value: string;
- type: string;
- };
- state: boolean;
- }[];
- }[];
- type: string;
- input: boolean;
- components: {
- label: string;
- columns: ({
- components: {
- label: string;
- tag: string;
- attrs: {
- attr: string;
- value: string;
- }[];
- content: string;
- refreshOnChange: boolean;
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- currentWidth: number;
- } | {
- components: {
- label: string;
- hideLabel: boolean;
- disableSortingAndFiltering: boolean;
- tableView: boolean;
- clearOnHide: boolean;
- key: string;
- logic: {
- name: string;
- trigger: {
- type: string;
- simple: {};
- event: string;
- };
- actions: ({
- name: string;
- type: string;
- value: string;
- customAction?: undefined;
- } | {
- name: string;
- type: string;
- customAction: string;
- value?: undefined;
- })[];
- }[];
- type: string;
- delimiter: boolean;
- requireDecimal: boolean;
- enableManualMode: boolean;
- input: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- currentWidth: number;
- })[];
- hideLabel: boolean;
- disableSortingAndFiltering: boolean;
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- }[];
- widget?: undefined;
- multiple?: undefined;
- data?: undefined;
- showValidations?: undefined;
- saveOnEnter?: undefined;
- } | {
- label: string;
- disableAddingRemovingRows: boolean;
- reorder: boolean;
- addAnotherPosition: string;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- hideLabel: boolean;
- disableSortingAndFiltering: boolean;
- tableView: boolean;
- clearOnHide: boolean;
- validate: {
- custom: string;
- };
- key: string;
- logic: {
- name: string;
- trigger: {
- type: string;
- simple: {
- show: boolean;
- when: string;
- eq: string;
- };
- };
- actions: {
- name: string;
- type: string;
- property: {
- label: string;
- value: string;
- type: string;
- };
- state: boolean;
- }[];
- }[];
- type: string;
- input: boolean;
- components: {
- label: string;
- columns: ({
- components: {
- label: string;
- tag: string;
- attrs: {
- attr: string;
- value: string;
- }[];
- content: string;
- refreshOnChange: boolean;
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- currentWidth: number;
- } | {
- components: {
- label: string;
- hideLabel: boolean;
- disableSortingAndFiltering: boolean;
- tableView: boolean;
- clearOnHide: boolean;
- key: string;
- logic: {
- name: string;
- trigger: {
- type: string;
- event: string;
- };
- actions: ({
- name: string;
- type: string;
- value: string;
- customAction?: undefined;
- } | {
- name: string;
- type: string;
- customAction: string;
- value?: undefined;
- })[];
- }[];
- type: string;
- delimiter: boolean;
- requireDecimal: boolean;
- input: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- currentWidth: number;
- })[];
- hideLabel: boolean;
- disableSortingAndFiltering: boolean;
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- }[];
- widget?: undefined;
- multiple?: undefined;
- data?: undefined;
- hidden?: undefined;
- showValidations?: undefined;
- saveOnEnter?: undefined;
- } | {
- label: string;
- showValidations: boolean;
- tableView: boolean;
- key: string;
- logic: {
- name: string;
- trigger: {
- type: string;
- event: string;
- };
- actions: {
- name: string;
- type: string;
- property: {
- label: string;
- value: string;
- type: string;
- };
- state: boolean;
- }[];
- }[];
- type: string;
- saveOnEnter: boolean;
- input: boolean;
- widget?: undefined;
- multiple?: undefined;
- data?: undefined;
- disableAddingRemovingRows?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- hidden?: undefined;
- hideLabel?: undefined;
- disableSortingAndFiltering?: undefined;
- clearOnHide?: undefined;
- validate?: undefined;
- components?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ widget: string;
+ tableView: boolean;
+ multiple: boolean;
+ data: {
+ values: {
+ label: string;
+ value: string;
+ }[];
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ disableAddingRemovingRows?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ hidden?: undefined;
+ hideLabel?: undefined;
+ disableSortingAndFiltering?: undefined;
+ clearOnHide?: undefined;
+ validate?: undefined;
+ logic?: undefined;
+ components?: undefined;
+ showValidations?: undefined;
+ saveOnEnter?: undefined;
+ }
+ | {
+ label: string;
+ disableAddingRemovingRows: boolean;
+ reorder: boolean;
+ addAnotherPosition: string;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ hidden: boolean;
+ hideLabel: boolean;
+ disableSortingAndFiltering: boolean;
+ tableView: boolean;
+ clearOnHide: boolean;
+ validate: {
+ custom: string;
+ };
+ key: string;
+ logic: {
+ name: string;
+ trigger: {
+ type: string;
+ simple: {
+ show: boolean;
+ when: string;
+ eq: string;
+ };
+ };
+ actions: {
+ name: string;
+ type: string;
+ property: {
+ label: string;
+ value: string;
+ type: string;
+ };
+ state: boolean;
+ }[];
+ }[];
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ columns: (
+ | {
+ components: {
+ label: string;
+ tag: string;
+ attrs: {
+ attr: string;
+ value: string;
+ }[];
+ content: string;
+ refreshOnChange: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ currentWidth: number;
+ }
+ | {
+ components: {
+ label: string;
+ hideLabel: boolean;
+ disableSortingAndFiltering: boolean;
+ tableView: boolean;
+ clearOnHide: boolean;
+ key: string;
+ logic: {
+ name: string;
+ trigger: {
+ type: string;
+ simple: {};
+ event: string;
+ };
+ actions: (
+ | {
+ name: string;
+ type: string;
+ value: string;
+ customAction?: undefined;
+ }
+ | {
+ name: string;
+ type: string;
+ customAction: string;
+ value?: undefined;
+ }
+ )[];
+ }[];
+ type: string;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ enableManualMode: boolean;
+ input: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ currentWidth: number;
+ }
+ )[];
+ hideLabel: boolean;
+ disableSortingAndFiltering: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ }[];
+ widget?: undefined;
+ multiple?: undefined;
+ data?: undefined;
+ showValidations?: undefined;
+ saveOnEnter?: undefined;
+ }
+ | {
+ label: string;
+ disableAddingRemovingRows: boolean;
+ reorder: boolean;
+ addAnotherPosition: string;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ hideLabel: boolean;
+ disableSortingAndFiltering: boolean;
+ tableView: boolean;
+ clearOnHide: boolean;
+ validate: {
+ custom: string;
+ };
+ key: string;
+ logic: {
+ name: string;
+ trigger: {
+ type: string;
+ simple: {
+ show: boolean;
+ when: string;
+ eq: string;
+ };
+ };
+ actions: {
+ name: string;
+ type: string;
+ property: {
+ label: string;
+ value: string;
+ type: string;
+ };
+ state: boolean;
+ }[];
+ }[];
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ columns: (
+ | {
+ components: {
+ label: string;
+ tag: string;
+ attrs: {
+ attr: string;
+ value: string;
+ }[];
+ content: string;
+ refreshOnChange: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ currentWidth: number;
+ }
+ | {
+ components: {
+ label: string;
+ hideLabel: boolean;
+ disableSortingAndFiltering: boolean;
+ tableView: boolean;
+ clearOnHide: boolean;
+ key: string;
+ logic: {
+ name: string;
+ trigger: {
+ type: string;
+ event: string;
+ };
+ actions: (
+ | {
+ name: string;
+ type: string;
+ value: string;
+ customAction?: undefined;
+ }
+ | {
+ name: string;
+ type: string;
+ customAction: string;
+ value?: undefined;
+ }
+ )[];
+ }[];
+ type: string;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ input: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ currentWidth: number;
+ }
+ )[];
+ hideLabel: boolean;
+ disableSortingAndFiltering: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ }[];
+ widget?: undefined;
+ multiple?: undefined;
+ data?: undefined;
+ hidden?: undefined;
+ showValidations?: undefined;
+ saveOnEnter?: undefined;
+ }
+ | {
+ label: string;
+ showValidations: boolean;
+ tableView: boolean;
+ key: string;
+ logic: {
+ name: string;
+ trigger: {
+ type: string;
+ event: string;
+ };
+ actions: {
+ name: string;
+ type: string;
+ property: {
+ label: string;
+ value: string;
+ type: string;
+ };
+ state: boolean;
+ }[];
+ }[];
+ type: string;
+ saveOnEnter: boolean;
+ input: boolean;
+ widget?: undefined;
+ multiple?: undefined;
+ data?: undefined;
+ disableAddingRemovingRows?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ hidden?: undefined;
+ hideLabel?: undefined;
+ disableSortingAndFiltering?: undefined;
+ clearOnHide?: undefined;
+ validate?: undefined;
+ components?: undefined;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/formWithEventLogicInHiddenComponent.js b/test/forms/formWithEventLogicInHiddenComponent.js
index b508b7b2a1..1e4a0560d5 100644
--- a/test/forms/formWithEventLogicInHiddenComponent.js
+++ b/test/forms/formWithEventLogicInHiddenComponent.js
@@ -1,337 +1,337 @@
export default {
- type: 'form',
- components: [
- {
- label: 'Role',
- widget: 'choicesjs',
- tableView: true,
- multiple: true,
- data: {
- values: [
- {
- label: 'Client',
- value: 'client',
- },
- {
- label: 'Not client',
- value: 'notClient',
- },
- ],
- },
- key: 'role',
- type: 'select',
- input: true,
- },
- {
- label: 'Registered address information',
- disableAddingRemovingRows: true,
- reorder: false,
- addAnotherPosition: 'bottom',
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- hidden: true,
- hideLabel: true,
- disableSortingAndFiltering: false,
- tableView: false,
- clearOnHide: false,
- validate: {
- custom:
- "instance.emit('registeredAddressInformationChanged', _.cloneDeep(input));\ninstance.prevRegisteredAddressInformation = _.cloneDeep(input);\n",
- },
- key: 'registeredAddressInformation',
- logic: [
+ type: 'form',
+ components: [
{
- name: 'Show if role includes client',
- trigger: {
- type: 'simple',
- simple: {
- show: true,
- when: 'role',
- eq: 'client',
- },
- },
- actions: [
- {
- name: 'Show',
- type: 'property',
- property: {
- label: 'Hidden',
- value: 'hidden',
- type: 'boolean',
- },
- state: false,
+ label: 'Role',
+ widget: 'choicesjs',
+ tableView: true,
+ multiple: true,
+ data: {
+ values: [
+ {
+ label: 'Client',
+ value: 'client',
+ },
+ {
+ label: 'Not client',
+ value: 'notClient',
+ },
+ ],
},
- ],
+ key: 'role',
+ type: 'select',
+ input: true,
},
- ],
- type: 'datagrid',
- input: true,
- components: [
{
- label: 'Columns',
- columns: [
- {
- components: [
+ label: 'Registered address information',
+ disableAddingRemovingRows: true,
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ hidden: true,
+ hideLabel: true,
+ disableSortingAndFiltering: false,
+ tableView: false,
+ clearOnHide: false,
+ validate: {
+ custom: "instance.emit('registeredAddressInformationChanged', _.cloneDeep(input));\ninstance.prevRegisteredAddressInformation = _.cloneDeep(input);\n",
+ },
+ key: 'registeredAddressInformation',
+ logic: [
{
- label: 'HTML',
- tag: 'h6',
- attrs: [
- {
- attr: '',
- value: '',
+ name: 'Show if role includes client',
+ trigger: {
+ type: 'simple',
+ simple: {
+ show: true,
+ when: 'role',
+ eq: 'client',
+ },
},
- ],
- content: 'Registered address',
- refreshOnChange: false,
- key: 'html',
- type: 'htmlelement',
- input: false,
- tableView: false,
+ actions: [
+ {
+ name: 'Show',
+ type: 'property',
+ property: {
+ label: 'Hidden',
+ value: 'hidden',
+ type: 'boolean',
+ },
+ state: false,
+ },
+ ],
},
- ],
- width: 12,
- offset: 0,
- push: 0,
- pull: 0,
- size: 'md',
- currentWidth: 12,
- },
- {
- components: [
+ ],
+ type: 'datagrid',
+ input: true,
+ components: [
{
- label: 'Street address',
- hideLabel: true,
- disableSortingAndFiltering: false,
- tableView: false,
- clearOnHide: false,
- key: 'streetAddress',
- logic: [
- {
- name: 'Populate data when regular address information changes',
- trigger: {
- type: 'event',
- simple: {},
- event: 'addressInformationChanged',
- },
- actions: [
+ label: 'Columns',
+ columns: [
{
- name: 'Populate',
- type: 'value',
- value: 'value = result[0][0].streetAddress;',
+ components: [
+ {
+ label: 'HTML',
+ tag: 'h6',
+ attrs: [
+ {
+ attr: '',
+ value: '',
+ },
+ ],
+ content: 'Registered address',
+ refreshOnChange: false,
+ key: 'html',
+ type: 'htmlelement',
+ input: false,
+ tableView: false,
+ },
+ ],
+ width: 12,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ currentWidth: 12,
},
{
- name: 'Redraw',
- type: 'customAction',
- customAction: 'instance.redraw();',
+ components: [
+ {
+ label: 'Street address',
+ hideLabel: true,
+ disableSortingAndFiltering: false,
+ tableView: false,
+ clearOnHide: false,
+ key: 'streetAddress',
+ logic: [
+ {
+ name: 'Populate data when regular address information changes',
+ trigger: {
+ type: 'event',
+ simple: {},
+ event: 'addressInformationChanged',
+ },
+ actions: [
+ {
+ name: 'Populate',
+ type: 'value',
+ value: 'value = result[0][0].streetAddress;',
+ },
+ {
+ name: 'Redraw',
+ type: 'customAction',
+ customAction:
+ 'instance.redraw();',
+ },
+ ],
+ },
+ ],
+ type: 'textfield',
+ delimiter: false,
+ requireDecimal: false,
+ enableManualMode: true,
+ input: true,
+ },
+ ],
+ width: 12,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ currentWidth: 12,
},
- ],
- },
- ],
- type: 'textfield',
- delimiter: false,
- requireDecimal: false,
- enableManualMode: true,
- input: true,
+ ],
+ hideLabel: true,
+ disableSortingAndFiltering: false,
+ key: 'columns1',
+ type: 'columns',
+ input: false,
+ tableView: false,
},
- ],
- width: 12,
- offset: 0,
- push: 0,
- pull: 0,
- size: 'md',
- currentWidth: 12,
- },
- ],
- hideLabel: true,
- disableSortingAndFiltering: false,
- key: 'columns1',
- type: 'columns',
- input: false,
- tableView: false,
+ ],
},
- ],
- },
- {
- label: 'Address information',
- disableAddingRemovingRows: true,
- reorder: false,
- addAnotherPosition: 'bottom',
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- hideLabel: true,
- disableSortingAndFiltering: false,
- tableView: false,
- clearOnHide: false,
- validate: {
- custom:
- "instance.emit('addressInformationChanged', _.cloneDeep(input));\ninstance.prevAddressInformation = _.cloneDeep(input);\n",
- },
- key: 'addressInformation',
- logic: [
{
- name: 'Hide if role includes client',
- trigger: {
- type: 'simple',
- simple: {
- show: true,
- when: 'role',
- eq: 'client',
- },
- },
- actions: [
- {
- name: 'Hide',
- type: 'property',
- property: {
- label: 'Hidden',
- value: 'hidden',
- type: 'boolean',
- },
- state: true,
+ label: 'Address information',
+ disableAddingRemovingRows: true,
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ hideLabel: true,
+ disableSortingAndFiltering: false,
+ tableView: false,
+ clearOnHide: false,
+ validate: {
+ custom: "instance.emit('addressInformationChanged', _.cloneDeep(input));\ninstance.prevAddressInformation = _.cloneDeep(input);\n",
},
- ],
- },
- ],
- type: 'datagrid',
- input: true,
- components: [
- {
- label: 'Columns',
- columns: [
- {
- components: [
+ key: 'addressInformation',
+ logic: [
{
- label: 'HTML',
- tag: 'h6',
- attrs: [
- {
- attr: '',
- value: '',
+ name: 'Hide if role includes client',
+ trigger: {
+ type: 'simple',
+ simple: {
+ show: true,
+ when: 'role',
+ eq: 'client',
+ },
},
- ],
- content: 'Address',
- refreshOnChange: false,
- key: 'html',
- type: 'htmlelement',
- input: false,
- tableView: false,
+ actions: [
+ {
+ name: 'Hide',
+ type: 'property',
+ property: {
+ label: 'Hidden',
+ value: 'hidden',
+ type: 'boolean',
+ },
+ state: true,
+ },
+ ],
},
- ],
- width: 12,
- offset: 0,
- push: 0,
- pull: 0,
- size: 'md',
- currentWidth: 12,
- },
- {
- components: [
+ ],
+ type: 'datagrid',
+ input: true,
+ components: [
{
- label: 'Street address',
- hideLabel: true,
- disableSortingAndFiltering: false,
- tableView: false,
- clearOnHide: false,
- key: 'streetAddress',
- logic: [
- {
- name: 'Populate data when registered address information changes',
- trigger: {
- type: 'event',
- event: 'registeredAddressInformationChanged',
- },
- actions: [
+ label: 'Columns',
+ columns: [
{
- name: 'Populate',
- type: 'value',
- value: 'value = result[0][0].streetAddress;',
+ components: [
+ {
+ label: 'HTML',
+ tag: 'h6',
+ attrs: [
+ {
+ attr: '',
+ value: '',
+ },
+ ],
+ content: 'Address',
+ refreshOnChange: false,
+ key: 'html',
+ type: 'htmlelement',
+ input: false,
+ tableView: false,
+ },
+ ],
+ width: 12,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ currentWidth: 12,
},
{
- name: 'Redraw',
- type: 'customAction',
- customAction: 'instance.redraw();',
+ components: [
+ {
+ label: 'Street address',
+ hideLabel: true,
+ disableSortingAndFiltering: false,
+ tableView: false,
+ clearOnHide: false,
+ key: 'streetAddress',
+ logic: [
+ {
+ name: 'Populate data when registered address information changes',
+ trigger: {
+ type: 'event',
+ event: 'registeredAddressInformationChanged',
+ },
+ actions: [
+ {
+ name: 'Populate',
+ type: 'value',
+ value: 'value = result[0][0].streetAddress;',
+ },
+ {
+ name: 'Redraw',
+ type: 'customAction',
+ customAction:
+ 'instance.redraw();',
+ },
+ ],
+ },
+ ],
+ type: 'textfield',
+ delimiter: false,
+ requireDecimal: false,
+ input: true,
+ },
+ ],
+ width: 12,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ currentWidth: 12,
},
- ],
- },
- ],
- type: 'textfield',
- delimiter: false,
- requireDecimal: false,
- input: true,
+ ],
+ hideLabel: true,
+ disableSortingAndFiltering: false,
+ key: 'columns2',
+ type: 'columns',
+ input: false,
+ tableView: false,
},
- ],
- width: 12,
- offset: 0,
- push: 0,
- pull: 0,
- size: 'md',
- currentWidth: 12,
- },
- ],
- hideLabel: true,
- disableSortingAndFiltering: false,
- key: 'columns2',
- type: 'columns',
- input: false,
- tableView: false,
+ ],
},
- ],
- },
- {
- label: 'Submit',
- showValidations: false,
- tableView: false,
- key: 'submit',
- logic: [
{
- name: 'Disable button',
- trigger: {
- type: 'event',
- event: 'disableButton',
- },
- actions: [
- {
- name: 'Disabled property true',
- type: 'property',
- property: {
- label: 'Disabled',
- value: 'disabled',
- type: 'boolean',
- },
- state: true,
- },
- ],
- },
- {
- name: 'Enable button',
- trigger: {
- type: 'event',
- event: 'enableButton',
- },
- actions: [
- {
- name: 'Disabled proprty false',
- type: 'property',
- property: {
- label: 'Disabled',
- value: 'disabled',
- type: 'boolean',
- },
- state: false,
- },
- ],
+ label: 'Submit',
+ showValidations: false,
+ tableView: false,
+ key: 'submit',
+ logic: [
+ {
+ name: 'Disable button',
+ trigger: {
+ type: 'event',
+ event: 'disableButton',
+ },
+ actions: [
+ {
+ name: 'Disabled property true',
+ type: 'property',
+ property: {
+ label: 'Disabled',
+ value: 'disabled',
+ type: 'boolean',
+ },
+ state: true,
+ },
+ ],
+ },
+ {
+ name: 'Enable button',
+ trigger: {
+ type: 'event',
+ event: 'enableButton',
+ },
+ actions: [
+ {
+ name: 'Disabled proprty false',
+ type: 'property',
+ property: {
+ label: 'Disabled',
+ value: 'disabled',
+ type: 'boolean',
+ },
+ state: false,
+ },
+ ],
+ },
+ ],
+ type: 'button',
+ saveOnEnter: false,
+ input: true,
},
- ],
- type: 'button',
- saveOnEnter: false,
- input: true,
- },
- ],
- title: 'test',
- display: 'form',
- name: 'test',
- path: 'test',
- machineName: 'ovlcumjiwedukxe:test',
+ ],
+ title: 'test',
+ display: 'form',
+ name: 'test',
+ path: 'test',
+ machineName: 'ovlcumjiwedukxe:test',
};
diff --git a/test/forms/formWithFormController.js b/test/forms/formWithFormController.js
index f49e9f43f6..93d65082d8 100644
--- a/test/forms/formWithFormController.js
+++ b/test/forms/formWithFormController.js
@@ -6,26 +6,26 @@ export default {
type: 'form',
display: 'form',
components: [
- {
- title: 'Page 1',
- label: 'Page 1',
- type: 'panel',
- key: 'page1',
- components: [
- {
- label: 'Text Field',
- tableView: true,
- key: 'textField',
- type: 'textfield',
- input: true,
- },
- ],
- input: false,
- tableView: false,
- },
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
],
controller:
- "data.textField = 'Hello World';\r\ncomponents[0].disabled = true;\r\ninstance.redraw()",
+ "data.textField = 'Hello World';\r\ncomponents[0].disabled = true;\r\ninstance.redraw()",
created: '2022-11-11T10:03:52.187Z',
modified: '2022-11-11T11:21:15.386Z',
machineName: 'ienrmkptejwkozk:gggggg',
diff --git a/test/forms/formWithNotAllowedTags.js b/test/forms/formWithNotAllowedTags.js
index 8ed659091a..c0d4dd460f 100644
--- a/test/forms/formWithNotAllowedTags.js
+++ b/test/forms/formWithNotAllowedTags.js
@@ -6,40 +6,40 @@ export default {
type: 'form',
display: 'form',
components: [
- {
- label: 'Text Field with script ',
- applyMaskOn: 'change',
- tableView: true,
- validate: {
- required: true,
+ {
+ label: 'Text Field with script ',
+ applyMaskOn: 'change',
+ tableView: true,
+ validate: {
+ required: true,
+ },
+ key: 'textFieldWithScript',
+ type: 'textfield',
+ validateWhenHidden: false,
+ input: true,
},
- key: 'textFieldWithScript',
- type: 'textfield',
- validateWhenHidden: false,
- input: true,
- },
- {
- label: 'Text Area with iframe
',
- applyMaskOn: 'change',
- autoExpand: false,
- tableView: true,
- validate: {
- minLength: 555,
+ {
+ label: 'Text Area with iframe
',
+ applyMaskOn: 'change',
+ autoExpand: false,
+ tableView: true,
+ validate: {
+ minLength: 555,
+ },
+ key: 'textAreaWithIframe',
+ type: 'textarea',
+ input: true,
+ },
+ {
+ label: 'Submit',
+ showValidations: false,
+ tableView: false,
+ key: 'submit',
+ type: 'button',
+ input: true,
+ saveOnEnter: false,
},
- key: 'textAreaWithIframe',
- type: 'textarea',
- input: true,
- },
- {
- label: 'Submit',
- showValidations: false,
- tableView: false,
- key: 'submit',
- type: 'button',
- input: true,
- saveOnEnter: false,
- },
],
settings: {},
globalSettings: {},
-};
\ No newline at end of file
+};
diff --git a/test/forms/formWithRadioInsideDataGrid.d.ts b/test/forms/formWithRadioInsideDataGrid.d.ts
index 0538fcb468..dfe591db22 100644
--- a/test/forms/formWithRadioInsideDataGrid.d.ts
+++ b/test/forms/formWithRadioInsideDataGrid.d.ts
@@ -4,47 +4,50 @@ declare namespace _default {
const path: string;
const type: string;
const display: string;
- const components: ({
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- tableView: boolean;
- defaultValue: {}[];
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- optionsLabelPosition: string;
- inline: boolean;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- }[];
- showValidations?: undefined;
- } | {
- label: string;
- showValidations: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- defaultValue?: undefined;
- components?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ reorder: boolean;
+ addAnotherPosition: string;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ tableView: boolean;
+ defaultValue: {}[];
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ optionsLabelPosition: string;
+ inline: boolean;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ showValidations?: undefined;
+ }
+ | {
+ label: string;
+ showValidations: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ defaultValue?: undefined;
+ components?: undefined;
+ }
+ )[];
}
export default _default;
diff --git a/test/forms/formWithRadioInsideDataGrid.js b/test/forms/formWithRadioInsideDataGrid.js
index 623c853006..b6f3917668 100644
--- a/test/forms/formWithRadioInsideDataGrid.js
+++ b/test/forms/formWithRadioInsideDataGrid.js
@@ -1,58 +1,58 @@
export default {
- title: 'test datagrid',
- name: 'testDatagrid',
- path: 'testdatagrid',
- type: 'form',
- display: 'form',
- components: [
- {
- label: 'Data Grid',
- reorder: false,
- addAnotherPosition: 'bottom',
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- tableView: false,
- defaultValue: [{}],
- key: 'dataGrid',
- type: 'datagrid',
- input: true,
- components: [
+ title: 'test datagrid',
+ name: 'testDatagrid',
+ path: 'testdatagrid',
+ type: 'form',
+ display: 'form',
+ components: [
{
- label: 'Radio',
- optionsLabelPosition: 'right',
- inline: false,
- tableView: false,
- values: [
- {
- label: 'one',
- value: 'one',
- shortcut: '',
- },
- {
- label: 'two',
- value: 'two',
- shortcut: '',
- },
- {
- label: 'three',
- value: 'three',
- shortcut: '',
- },
- ],
- key: 'radio',
- type: 'radio',
- input: true,
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ tableView: false,
+ defaultValue: [{}],
+ key: 'dataGrid',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Radio',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: false,
+ values: [
+ {
+ label: 'one',
+ value: 'one',
+ shortcut: '',
+ },
+ {
+ label: 'two',
+ value: 'two',
+ shortcut: '',
+ },
+ {
+ label: 'three',
+ value: 'three',
+ shortcut: '',
+ },
+ ],
+ key: 'radio',
+ type: 'radio',
+ input: true,
+ },
+ ],
},
- ],
- },
- {
- label: 'Submit',
- showValidations: false,
- tableView: false,
- key: 'submit',
- type: 'button',
- input: true,
- },
- ]
+ {
+ label: 'Submit',
+ showValidations: false,
+ tableView: false,
+ key: 'submit',
+ type: 'button',
+ input: true,
+ },
+ ],
};
diff --git a/test/forms/formWithRichTextAreas.js b/test/forms/formWithRichTextAreas.js
index d8858d01cd..b2ac175e59 100644
--- a/test/forms/formWithRichTextAreas.js
+++ b/test/forms/formWithRichTextAreas.js
@@ -1,31 +1,31 @@
export default {
- type: 'form',
- components: [
- {
- label: 'Text Area',
- tableView: true,
- key: 'textArea',
- type: 'textarea',
- input: true,
- isUploadEnabled: false
- },
- {
- label: 'Text Area Ace',
- editor: 'ace',
- tableView: true,
- key: 'textAreaAce',
- type: 'textarea',
- input: true,
- isUploadEnabled: false
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false
- }
- ],
- display: 'form',
+ type: 'form',
+ components: [
+ {
+ label: 'Text Area',
+ tableView: true,
+ key: 'textArea',
+ type: 'textarea',
+ input: true,
+ isUploadEnabled: false,
+ },
+ {
+ label: 'Text Area Ace',
+ editor: 'ace',
+ tableView: true,
+ key: 'textAreaAce',
+ type: 'textarea',
+ input: true,
+ isUploadEnabled: false,
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ display: 'form',
};
diff --git a/test/forms/formWithSelectBoxes.d.ts b/test/forms/formWithSelectBoxes.d.ts
index 066af2ace9..a5f2dc0429 100644
--- a/test/forms/formWithSelectBoxes.d.ts
+++ b/test/forms/formWithSelectBoxes.d.ts
@@ -1,31 +1,34 @@
declare namespace _default {
const _id: string;
const type: string;
- const components: ({
- label: string;
- optionsLabelPosition: string;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- inputType: string;
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- optionsLabelPosition?: undefined;
- values?: undefined;
- inputType?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ optionsLabelPosition: string;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ inputType: string;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ inputType?: undefined;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/formWithSelectBoxes.js b/test/forms/formWithSelectBoxes.js
index a05e748cc4..a833780012 100644
--- a/test/forms/formWithSelectBoxes.js
+++ b/test/forms/formWithSelectBoxes.js
@@ -1,44 +1,44 @@
export default {
- _id: '60eea4803b352ff0441d4843',
- type: 'form',
- components: [
- {
- label: 'Select Boxes',
- optionsLabelPosition: 'right',
- tableView: false,
- values: [
- {
- label: 'a',
- value: 'a',
- shortcut: ''
- },
- {
- label: 'b',
- value: 'b',
- shortcut: ''
- },
- {
- label: 'c',
- value: 'c',
- shortcut: ''
- }
- ],
- key: 'selectBoxes',
- type: 'selectboxes',
- input: true,
- inputType: 'checkbox'
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false
- }
- ],
- title: 'select boxes test',
- display: 'form',
- name: 'selectBoxesTest',
- path: 'selectboxestest',
+ _id: '60eea4803b352ff0441d4843',
+ type: 'form',
+ components: [
+ {
+ label: 'Select Boxes',
+ optionsLabelPosition: 'right',
+ tableView: false,
+ values: [
+ {
+ label: 'a',
+ value: 'a',
+ shortcut: '',
+ },
+ {
+ label: 'b',
+ value: 'b',
+ shortcut: '',
+ },
+ {
+ label: 'c',
+ value: 'c',
+ shortcut: '',
+ },
+ ],
+ key: 'selectBoxes',
+ type: 'selectboxes',
+ input: true,
+ inputType: 'checkbox',
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ title: 'select boxes test',
+ display: 'form',
+ name: 'selectBoxesTest',
+ path: 'selectboxestest',
};
diff --git a/test/forms/formWithSignature.js b/test/forms/formWithSignature.js
index daf3d3fa6d..be0fdb58fb 100644
--- a/test/forms/formWithSignature.js
+++ b/test/forms/formWithSignature.js
@@ -1,34 +1,39 @@
const form = {
- 'type': 'form',
- 'components': [{
- 'title': 'Page 1',
- 'label': 'Page 1',
- 'type': 'panel',
- 'key': 'page1',
- 'components': [{
- 'label': 'Signature',
- 'tableView': false,
- 'key': 'signature',
- 'type': 'signature',
- 'input': true
- }],
- 'input': false,
- 'tableView': false
- }],
- 'title': 'HTMLmode',
- 'display': 'wizard',
- 'name': 'htmLmode',
- 'path': 'htmlmode',
- 'machineName': 'cjksbatcpbhyfbs:htmLmode'
+ type: 'form',
+ components: [
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Signature',
+ tableView: false,
+ key: 'signature',
+ type: 'signature',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ title: 'HTMLmode',
+ display: 'wizard',
+ name: 'htmLmode',
+ path: 'htmlmode',
+ machineName: 'cjksbatcpbhyfbs:htmLmode',
};
const submission = {
- data: {
- signature: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtEAAACWCAYAAAAYC9T6AAAcO0lEQVR4Xu3df4yV1Z3H8TNRgSjCaIlULMMiLah1wG43+0cVGpPNLhBoRd10KMMfm2yAyEjbsB0quBv2D8ZU0k27ZSho2ewuQ0RLrBEWtKS724LUGmKWGU3bpFQZaGsryjDCBv9gZ/M5j9/hYebO3Hvn/jrnue8nMTPO3Ps853mdhzufe+73nKfh4sV3BxwbAggggAACCCCAAAIIFCzQQIgu2IoHIoAAAggggAACCCDgBQjRXAgIIIAAAggggAACCBQpQIguEoyHI4AAAggggAACCCBAiOYaQAABBBBAAAEEEECgSAFCdJFgPBwBBBBAAAEEEEAAAUI01wACCCCAAAIIIIAAAkUKEKKLBOPhCCCAAAIIIIAAAggQorkGEEAAAQQQQAABBBAoUoAQXSQYD0cAAQQQQAABBBBAgBDNNYAAAggggAACCCCAQJEChOgiwXg4AggggAACCCCAAAKEaK4BBBBAAAEEEEAAAQSKFCBEFwnGwxFAAAEEEEAAAQQQIERzDSCAAAIIIIAAAgggUKQAIbpIMB6OAAIIIIAAAggggAAhmmsAAQQQQAABBMoicOrUab+f3t5eN3nyZHfqVK9raGgY3Ld+NnnyJDd37t1lOR47QaCWAoToWupzbAQQQAABBGokcP78eR909bWvr981Nk7yLenufsM1NTVdFYb1mO7uN30A1n96jP5TGNZX/f7IkWNuyZJFfp8WorUT/c42heze3tP+MW1tq93GjV+v0dlzWARKFyBEl27IHhBAAAEEEChZQAFTgdNCp0KrhVCN6J4/3+/6+q4E0iu/O+0DsJ4/adIk19/f75/X1DTdB17bGhsn+28VYC0Az59/rz/e/v0HXVvbGv/7rq5nXGvrcv+9fr506WK/H+1/xozpbsaMJv8c7Uf/b/ssFEDP3b17r9uw4XH3la+sdR0dmwt9Ko9DICgBQnRQ3UFjEEAAAQSyImBh2EocdF4Kw0ePHnMDAwP+NDUCnB6p1c8UTDUSrJ8rsCrApgOwhVYLsLF6NTf/ubvhhuvdq6/+d6ynQLvrXIAQXecXAKePAAIIIFC4gAVehV+VJfT19fmAq6Dc3d3jR231/ZYtT7pNm9r9jn/601fc0qWLfCBWiE6C8ZVR3MKPnq1H3nnnnzqNhD/11HezdWKcTd0IEKLrpqs5UQQQQACBkQRstFghuafnDaeBYiud0M/0+yNHXnFr164eHBVWIFZNsIViPY4Jc4VdY+3tm1xn51PupZde8EGaDYEYBQjRMfYabUYAAQQQyCuQrjFWILb/1xMtGNvIsJVGWBnFggX3Dk6uU72xRo7ZyiPQ1bXXrV79qJ9UaKP15dkze0GgugKE6Op6czQEEEAAgRIELPxqkp2tCmE/U1BWeYV+pxFh/Vyh2EaHbVKcDk85RQmdUMJTVebS0bHVrVjRQhlHCY48NQwBQnQY/UArEEAAgboWyBWONUpsZRb6XpuNGFsJgMLwvHnJmsMKzLFPtsvqRaB+1OjziRM9fmk7RqCz2tP1dV6E6Prqb84WAQQQqImArQ9so8cWkBWe335bk+2m+1pjjRono8RJINb31BnXpMvKdlAr39Dye8899+/UQJdNlh3VWoAQXese4PgIIIBABgQUjhWMe3vP+BttnDjxhj8r/UxLtKVDMQE5Ax1ewCloImZ7++O+7EY3YdEqHNSWFwDHQ6IRIERH01U0FAEEEKidgE3Ks6CsgKT6Y/08XXOskgqVV+grE/Jq11+1PLKuDa28oRu1NDd/2m3duoXR51p2CMeumAAhumK07BgBBBCIS8BKLTRBz27rrNCsMgubiGchmTKLuPq2Gq3VNdPZudPt33/If/qg5QBV/8yGQFYFCNFZ7VnOCwEEEMghkNQm9/o1kJMVLnr8zUC0pJs2m5yXLrkAEoHRBDTyvGXLVv/GS+FZN5bRxEFKN7husi5AiM56D3N+CCBQdwKarNfd/ebgcm8CUFDWltwcZLr/nqBcd5dG2U5Y19iRI8f8nRkVnlW2obs1trYuZ4WUsimzo9AFCNGh9xDtQwABBIYI2K2nFZSdG/C/Vf2pRpkVZLSpDCN9wxCWfuMyKoeAAnNX1zPuwIFD/nrTihsadV65soWR53IAs4+oBAjRUXUXjUUAgXoTsNpkhWCFlm3bdri2tjWDQVmh2QIyH5/X29VR2PnmWoNbz7Q3Y7YXlfio/r2xsdEN6L7nH23jx49zJ0++5Ueef/Obt/xPb7nlFrd+/TpqngvrAh6VUQFCdEY7ltNCAIE4BOxmIqpNVo2y1tRNloSbPnjbaX0/d26zPyFGlOPo12q30kp4kq/JcoO6tlSvXOw2YcIEd+nSpYKeZhNM9amHSoW0lB0bAvUiQIiul57mPBFAoGYCNhLY0/OG6+vrd6dOnfJfNcHPbi6irxoF5K57Neumih5YwVabQqf63bmGvMdLjxTbNTRlysfc2bPv+aCskWPty96I5dphU9P0wTdkdttzvUnTtWbtST/v9df/xx0+/J/u+PHX3Zkzv/W/0qjzZz97j5sz51Pu+uuv9yPYOqaCek+PSoqubDo/TSzcuLGdN3x5e5gHxC5AiI69B2k/AggEI2CjgL29p/1EPo0s/+QnR/26yQoXulW1fc9d+ILptpIaohIHbTbiW2i4HetBFYB1XdmmCX3pN1+2FKEmjRZ6janNOg/VOlvY1/61b5UO6bod7RMQPUfXu56fDtUtLX/tdu3aPtZT5XkIBC9AiA6+i2ggAgiEKKDgoJFlfdXd+TQiqElWKrtIyi+0CkbhQSbEc6RNiYCNvCpoWtmNvo42AlyqnY0gp9fnVli+555md+ONGkmeVNJEPl23mhyo4Js+D13DmiSoWnuF52I3vZnYsOHv3YkTPf6pTzzxj27dukeK3Q2PRyAKAUJ0FN1EIxFAoFYCtpSXTfBTeNKcKwXlZIQuCcqFjvrV6jw4bmECQ98cqbzh4sWLhT05x6MUSvXpg20Wim0SqK4fK68Y+rsxHzTHExWUjx59xY8Y62Yo6VIRtVE1za2tLf7rWCeofvDBB2737mfcz372c/f88y/6Vuzbt8ctWvSX5TwV9oVAMAKE6GC6goYggECtBWxyVvLx9it+1FEBw4KyLRnH5L5a91R5j6/lATUqOzRc5juKBWSbXKevVq5jgTjfPir1e42a69MRhWZdy7lGzVesSEKzapjHGpyt/d/73tNu165/c7/4xa/8j7TCx5IlC93Ond+t1CmyXwRqLkCIrnkX0AAEEKiVgNWCKizr+7ffTtZW1qiyfS01XNTq3Dju6AIKlXv27B1WzpDrWZMm3egWLLhvcIKegnIIE0AVlK8sX3feB+bRJhqqxlnXtT5BsfXES71Oduz4vlu//rGrdtPRsdnNnv0pRqBLxeX5wQsQooPvIhqIAALlELBJf7pBiUbmNOFPgcLKMkr5GLsc7WMf1RHQm6XOzp1+KcGRNo0wK2Sm30xVp3VXHyW9qouthqGvOoehazwPbZ+VaFTq+la5xmOP/cPgCh46/sSJE923vvWEW7jwL9yUKVNqQcYxEaiqACG6qtwcDAEEqiWgsKFROX1Mr0lO+n+NwCkYaSRxLJOmqtV2jlNeAQXOrq5nXWfnjhEnA1pwbmtbXZP6dl2fNlE134iydJIyo+l+ZQ5bJtFu427/P5qirSaiEXVt+rei4HvnnXOGPU2hfdq0j7ve3jPupZcOD5aIpB+of09dXd8nPJf30mVvgQsQogPvIJqHAAL5BRSStO6y1TErkFidqt2ohDrm/I5ZeoSuCatzVs3zSJtWwdCEOoXnapXuJKPJPe7dd8+65557PufIsi1dN9o64vZGUWtOp0entX6zlsHTOtI2Ym2j2jrHCxcuuMuXL+ck+cxn5rn333+/4JVHZs6c4b785S+5jRu/nqXLh3NBoCABQnRBTDwIAQRCE7B6Zt24RGEivaScAnO1AlFoLvXenh/96Mfu2Wf3ub17941KYWsgK0BXclN4TUaWz1z1Jk/HVGCdOPGGj1Z3afardNgSiUko7vch2AKyrnMF40LKOSp5TrbvBx/8gtu8eZObNev2ahyOYyAQnAAhOrguoUEIIDBUwEYVz50773+lEGFrMVPLzPWi+uaXXz7sfve7d9yrr742Ioitgdzauryokg27/hSGbfR36GoXthqHQvGFCxf9aK+u13Pnzg22Z+rUW5z+U9nF7NmfdLq9tvb9zjt/dH/4wx8/upOhK3gUuJCet7IPPValH2pnX1+fu3z5/9y1115b8DEV+K+55hp/Xg899IBraXnY3X77zEKawGMQyKwAITqzXcuJIRCngH38rBrWgYEB/4dfH32rdlOTvUq9yUScKrQ6l0BHx1a/LrHuEDnapqXctIzbWFakWLXqUbdv3w/dhx9+WLFOGD9+fN79Kwzr34KVJeVab9p+V0hNdK6TUTmUJgfefPPNfuUSbfPnfy6IlUgqhs+OEShBgBBdAh5PRQCB0gXso2l9TN3Z+ZSvT9Wm/1fooZa5dOOs7UElPHfd9Wc5T2vcuHHuuuuu8xPkVO88c+afuAkTxg8+VteTTaa7soMBP0J7ZcWLBv+rXbv+1f3gBz/033/iE9PcuHHjffmFRpdPn/7tsOPfddcd/lbZc+bM9iPdemxSl5zcplvfa1MYtk3t0QivapTVhnQZEm8Ys3blcj5ZEyBEZ61HOR8EAhdQaNbEp2SpMYXmL/k60HQ9aOCnQPNqLLBp02b37W935myFRmz7+5PQWs5NpReXLl3yu1RQvrISRnKbd1Z7Kac2+0IgDgFCdBz9RCsRiFJAdaPJ3dJ6/Ufuql1du3bV4OSpsX7sHCUGjS6bwNmzZ93ixQ/6Eog1a/7WTZ061f3yl79yq1b9ja8vtjpkG/kdulKFGqI3cdqGrresUWqNAGvTfr/znU733nvvuwceWOKWLfuCe/jhZWU7D3aEAAJxCxCi4+4/Wo9AUAK6g5pCsyZgKaSopllrMi9Zspi1mYPqKRpTjMD99y9yr7123Gk1imXLvujuv3+Bu+mmxmJ2wWMRQCCDAoToDHYqp4RANQQUknVzCFuxwG7eoIlIdlMTVs6oRk9wjEoL6O58Tz/9L/5a16brW3fl++pX2yp9aPaPAAIBCxCiA+4cmoZAKAK2Vq1Gmm2U2T4Gt9CswExdaCg9RjsqIaDVQLZseXJw17fdNs197WttfqLg4sV/xdrklUBnnwgELECIDrhzaBoCtRJQLfPRo0lJhoVmawuhuVa9wnFDEDh+/HX3zW/+kzt48OVhzdFqMlpKb8mSRQTqEDqLNiBQYQFCdIWB2T0CMQhYaN6//5Bfkzl9IwkFAo0wa6RZEwHZEEDAuRdf/A939ux77tFH1+fk0FKNCtX698OGAALZFCBEZ7NfOSsERhVI1zMrOKdXKNAffYVlyjO4iBDIL3Ds2M/9Ch76xCbX0npa99lu9EKgzu/JIxCISYAQHVNv0VYExiigkWVNAty//+BHS85ducMb5RljROVpCKQE9G9M/766up5xPT1v5rQhUHPJIJAtAUJ0tvqTs0HAC2hkeehyc0ajG0XYKDOrZ3DBIFB+AQJ1+U3ZIwIhChCiQ+wV2oTAGARUoqHgbKPNtgvdwU21mRacuY32GHB5CgJjFFCg7uzc4VQ2pRsO5drSI9T6ZCh96+8xHpanIYBAFQQI0VVA5hAIVEpgz569vhYzuSvg8BINhWcmA1ZKn/0iUJyA3uiq3GO0QK092iof9913r7+lOBsCCIQpQIgOs19oFQI5BRSUDxw4NGy0ualpul9BQxOYKNHg4kEgfIFCSj50FjbJV3f91Cg1GwIIhCNAiA6nL2gJAsMErLY514RA1TYnI1aMNnPpIBCzgAVqfaKkN8kjbSrz0JtkvVlmlDrmHqftWREgRGelJzmPzAjYms27d+/1ZRq2pWub9UeUusnMdDkngsCggN44q0RLJR/69z9SHbWeoFIPvYnWp1DUUnMRIVB9AUJ09c05IgLDBPTHUpMCVS9JbTMXCAIImIDdNVSvESOtRW2PtZsi2VrvKCKAQGUFCNGV9WXvCOQUSJdppG92otHm5OPaZHSJSUVcQAggkBZQmD5xQivxUPrBlYFArQUI0bXuAY5fNwIaYU6vpmEnbus2t7YuZyWNurkaOFEEyiNgI9XJEpcjl3+k70LKnRPLY89eECBEcw0gUEEBTRLSHzdNDNRXbVpJQ3/QNNK8cmULtc0V9GfXCNSbgNVU6/XGAnau25GzjF69XRmcbyUECNGVUGWfdStgf7h0i+1t23YOOqhMo61ttS/VUIBmUmDdXiKcOAJVF8g3Wq3XpPQExao3kAMiEKkAITrSjqPZYQho1Ce5gcJe/1X/3Xrrx93Fi//r5s2726lEg9rmMPqKViCAQCJgr1uaqGivW7YKiK34oZKPpqYm5mVw0SAwigAhmssDgSIFRrrhiXazYkWLe+ihL7o77pjDH58iXXk4AgjUTkBh+tSpXr+0Xnd3z+AqQZ///H1u3bpH3G23TeM1rXbdw5EDFSBEB9oxNCssAf2B0aRA1Tanl6Cz1TRaW1v8x6FsCCCAQBYE9DqnEWstu+lcgw/YKlPbuLHdh2lGqbPQy5xDqQKE6FIFeX5mBfRHZPv2ncOCs05YH3XaxBzqmzN7CXBiCCCQEtDqHzZJWq+PjY3JHRS5JTmXSb0KEKLrtec575wCGnnRihqaFGiradgDtRSdapwVnlm/mQsIAQTqWcBWAUmC9SF/Z0XN/9BcEH1tbr6b18l6vkDq5NwJ0XXS0Zzm6AIKzJ2dGnU+5D/CtM1uta2VNTSDnQ0BBBBAYLiARqbtroq2XrWVfWi0WsF67txPszIRF0+mBAjRmepOTqZYAdU5796917/4pzeNOre1rXFLly7iRb9YVB6PAAJ1L2ChWpMUtQpIT8+b3kTBOgnUzW7+/M8xOFH3V0rcAITouPuP1o9BQCPNnZ1P+Qkz6UmC2pVqnTXqrBd5NgQQQACB8gjodVevt6qptluX6yYwmlNi6+frdVfBmg2BWAQI0bH0FO0sWeDIkWM+OGtN5/RmN0JReGaSYMnM7AABBBAoSCBXCYieqDCdTFhcxEh1QZI8qFYChOhayXPcqgjkmyiokg0tT8eGAAIIIFBbgXSo1oi1Rqo1F0X/JYG6mcmKte0ijj5EgBDNJZFJAVvXWfXO6YmCOlndEIWJgpnsdk4KAQQyJGC3K7cJiwrVGqVuaXnYzZo1k7K7DPV1rKdCiI6152j3MAG90B4+/F/uhRdedCdPvnXV75uapru1a1e7lStbKNng2kEAAQQiE7Caai0/+vvfv+N+/euTflm9TZvanSaCM0odWYdmpLmE6Ix0ZD2ehj76O3o0WaNUs7+HjjjbqLOCMxMF6/EK4ZwRQCCrAnq91yeNNkG8oaHBl31oHX+VfrCWf1Z7PqzzIkSH1R+0ZhQBq29WYNao89CVNeypN93U6L7xjb/zJRtsCCCAAALZFrBaatVR62ZZ2hSiFagfeWQ1gTrb3V/TsyNE15Sfg+cTUHDu6nrWjzYMvYPg0OdSspFPk98jgAAC2RbQ3wx9OpkO1Bqh1qCKRqhZgSnb/V/tsyNEV1uc4xUkoJFmreWsF8J8m8Kz6uK4MUo+KX6PAAII1JeAljTdtm3H4M1eNDqtvxWaYM6GQKkChOhSBXl+WQUUmjs6tuYdddZBtSh/a+tylqgraw+wMwQQQCB7Air56Ozc4UepNSFRI9IK05pwrpFqNgTGIkCIHosazym7gEo12tsfH3b77aEH0o1RNJLAEnVl7wJ2iAACCNSFgAZrFKb37EluvKX6aQ3IaHSaCYl1cQmU7SQJ0WWjZEdjEdDowIYNj+ct26DeeSy6PAcBBBBAYCQBW+HjwAHdivzY4C3ItZrT2rWrgEMgrwAhOi8RD6iUgNb73L5954irbOi4Wv8zqXdeXKlmsF8EEEAAgToX0KehyQj1QV8/rXKPnTv/mb89dX5d5Dt9QnQ+IX5fEQGNAEyb9skR9014rgg7O0UAAQQQyCOgie1ag1oDOJR3cLmMJkCI5vqoiYBepBYufGDYsSnbqEl3cFAEEEAAAQQQKFKAEF0kGA8vn8Ctt85y/f39foeaMKg7Cz755JbyHYA9IYAAAggggAACFRIgRFcIlt3mF1ANmm6iok0zo1lmKL8Zj0AAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISOD/AYTV/3TCUQtkAAAAAElFTkSuQmCC'
- }
+ data: {
+ signature:
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtEAAACWCAYAAAAYC9T6AAAcO0lEQVR4Xu3df4yV1Z3H8TNRgSjCaIlULMMiLah1wG43+0cVGpPNLhBoRd10KMMfm2yAyEjbsB0quBv2D8ZU0k27ZSho2ewuQ0RLrBEWtKS724LUGmKWGU3bpFQZaGsryjDCBv9gZ/M5j9/hYebO3Hvn/jrnue8nMTPO3Ps853mdhzufe+73nKfh4sV3BxwbAggggAACCCCAAAIIFCzQQIgu2IoHIoAAAggggAACCCDgBQjRXAgIIIAAAggggAACCBQpQIguEoyHI4AAAggggAACCCBAiOYaQAABBBBAAAEEEECgSAFCdJFgPBwBBBBAAAEEEEAAAUI01wACCCCAAAIIIIAAAkUKEKKLBOPhCCCAAAIIIIAAAggQorkGEEAAAQQQQAABBBAoUoAQXSQYD0cAAQQQQAABBBBAgBDNNYAAAggggAACCCCAQJEChOgiwXg4AggggAACCCCAAAKEaK4BBBBAAAEEEEAAAQSKFCBEFwnGwxFAAAEEEEAAAQQQIERzDSCAAAIIIIAAAgggUKQAIbpIMB6OAAIIIIAAAggggAAhmmsAAQQQQAABBMoicOrUab+f3t5eN3nyZHfqVK9raGgY3Ld+NnnyJDd37t1lOR47QaCWAoToWupzbAQQQAABBGokcP78eR909bWvr981Nk7yLenufsM1NTVdFYb1mO7uN30A1n96jP5TGNZX/f7IkWNuyZJFfp8WorUT/c42heze3tP+MW1tq93GjV+v0dlzWARKFyBEl27IHhBAAAEEEChZQAFTgdNCp0KrhVCN6J4/3+/6+q4E0iu/O+0DsJ4/adIk19/f75/X1DTdB17bGhsn+28VYC0Az59/rz/e/v0HXVvbGv/7rq5nXGvrcv+9fr506WK/H+1/xozpbsaMJv8c7Uf/b/ssFEDP3b17r9uw4XH3la+sdR0dmwt9Ko9DICgBQnRQ3UFjEEAAAQSyImBh2EocdF4Kw0ePHnMDAwP+NDUCnB6p1c8UTDUSrJ8rsCrApgOwhVYLsLF6NTf/ubvhhuvdq6/+d6ynQLvrXIAQXecXAKePAAIIIFC4gAVehV+VJfT19fmAq6Dc3d3jR231/ZYtT7pNm9r9jn/601fc0qWLfCBWiE6C8ZVR3MKPnq1H3nnnnzqNhD/11HezdWKcTd0IEKLrpqs5UQQQQACBkQRstFghuafnDaeBYiud0M/0+yNHXnFr164eHBVWIFZNsIViPY4Jc4VdY+3tm1xn51PupZde8EGaDYEYBQjRMfYabUYAAQQQyCuQrjFWILb/1xMtGNvIsJVGWBnFggX3Dk6uU72xRo7ZyiPQ1bXXrV79qJ9UaKP15dkze0GgugKE6Op6czQEEEAAgRIELPxqkp2tCmE/U1BWeYV+pxFh/Vyh2EaHbVKcDk85RQmdUMJTVebS0bHVrVjRQhlHCY48NQwBQnQY/UArEEAAgboWyBWONUpsZRb6XpuNGFsJgMLwvHnJmsMKzLFPtsvqRaB+1OjziRM9fmk7RqCz2tP1dV6E6Prqb84WAQQQqImArQ9so8cWkBWe335bk+2m+1pjjRono8RJINb31BnXpMvKdlAr39Dye8899+/UQJdNlh3VWoAQXese4PgIIIBABgQUjhWMe3vP+BttnDjxhj8r/UxLtKVDMQE5Ax1ewCloImZ7++O+7EY3YdEqHNSWFwDHQ6IRIERH01U0FAEEEKidgE3Ks6CsgKT6Y/08XXOskgqVV+grE/Jq11+1PLKuDa28oRu1NDd/2m3duoXR51p2CMeumAAhumK07BgBBBCIS8BKLTRBz27rrNCsMgubiGchmTKLuPq2Gq3VNdPZudPt33/If/qg5QBV/8yGQFYFCNFZ7VnOCwEEEMghkNQm9/o1kJMVLnr8zUC0pJs2m5yXLrkAEoHRBDTyvGXLVv/GS+FZN5bRxEFKN7husi5AiM56D3N+CCBQdwKarNfd/ebgcm8CUFDWltwcZLr/nqBcd5dG2U5Y19iRI8f8nRkVnlW2obs1trYuZ4WUsimzo9AFCNGh9xDtQwABBIYI2K2nFZSdG/C/Vf2pRpkVZLSpDCN9wxCWfuMyKoeAAnNX1zPuwIFD/nrTihsadV65soWR53IAs4+oBAjRUXUXjUUAgXoTsNpkhWCFlm3bdri2tjWDQVmh2QIyH5/X29VR2PnmWoNbz7Q3Y7YXlfio/r2xsdEN6L7nH23jx49zJ0++5Ueef/Obt/xPb7nlFrd+/TpqngvrAh6VUQFCdEY7ltNCAIE4BOxmIqpNVo2y1tRNloSbPnjbaX0/d26zPyFGlOPo12q30kp4kq/JcoO6tlSvXOw2YcIEd+nSpYKeZhNM9amHSoW0lB0bAvUiQIiul57mPBFAoGYCNhLY0/OG6+vrd6dOnfJfNcHPbi6irxoF5K57Neumih5YwVabQqf63bmGvMdLjxTbNTRlysfc2bPv+aCskWPty96I5dphU9P0wTdkdttzvUnTtWbtST/v9df/xx0+/J/u+PHX3Zkzv/W/0qjzZz97j5sz51Pu+uuv9yPYOqaCek+PSoqubDo/TSzcuLGdN3x5e5gHxC5AiI69B2k/AggEI2CjgL29p/1EPo0s/+QnR/26yQoXulW1fc9d+ILptpIaohIHbTbiW2i4HetBFYB1XdmmCX3pN1+2FKEmjRZ6janNOg/VOlvY1/61b5UO6bod7RMQPUfXu56fDtUtLX/tdu3aPtZT5XkIBC9AiA6+i2ggAgiEKKDgoJFlfdXd+TQiqElWKrtIyi+0CkbhQSbEc6RNiYCNvCpoWtmNvo42AlyqnY0gp9fnVli+555md+ONGkmeVNJEPl23mhyo4Js+D13DmiSoWnuF52I3vZnYsOHv3YkTPf6pTzzxj27dukeK3Q2PRyAKAUJ0FN1EIxFAoFYCtpSXTfBTeNKcKwXlZIQuCcqFjvrV6jw4bmECQ98cqbzh4sWLhT05x6MUSvXpg20Wim0SqK4fK68Y+rsxHzTHExWUjx59xY8Y62Yo6VIRtVE1za2tLf7rWCeofvDBB2737mfcz372c/f88y/6Vuzbt8ctWvSX5TwV9oVAMAKE6GC6goYggECtBWxyVvLx9it+1FEBw4KyLRnH5L5a91R5j6/lATUqOzRc5juKBWSbXKevVq5jgTjfPir1e42a69MRhWZdy7lGzVesSEKzapjHGpyt/d/73tNu165/c7/4xa/8j7TCx5IlC93Ond+t1CmyXwRqLkCIrnkX0AAEEKiVgNWCKizr+7ffTtZW1qiyfS01XNTq3Dju6AIKlXv27B1WzpDrWZMm3egWLLhvcIKegnIIE0AVlK8sX3feB+bRJhqqxlnXtT5BsfXES71Oduz4vlu//rGrdtPRsdnNnv0pRqBLxeX5wQsQooPvIhqIAALlELBJf7pBiUbmNOFPgcLKMkr5GLsc7WMf1RHQm6XOzp1+KcGRNo0wK2Sm30xVp3VXHyW9qouthqGvOoehazwPbZ+VaFTq+la5xmOP/cPgCh46/sSJE923vvWEW7jwL9yUKVNqQcYxEaiqACG6qtwcDAEEqiWgsKFROX1Mr0lO+n+NwCkYaSRxLJOmqtV2jlNeAQXOrq5nXWfnjhEnA1pwbmtbXZP6dl2fNlE134iydJIyo+l+ZQ5bJtFu427/P5qirSaiEXVt+rei4HvnnXOGPU2hfdq0j7ve3jPupZcOD5aIpB+of09dXd8nPJf30mVvgQsQogPvIJqHAAL5BRSStO6y1TErkFidqt2ohDrm/I5ZeoSuCatzVs3zSJtWwdCEOoXnapXuJKPJPe7dd8+65557PufIsi1dN9o64vZGUWtOp0entX6zlsHTOtI2Ym2j2jrHCxcuuMuXL+ck+cxn5rn333+/4JVHZs6c4b785S+5jRu/nqXLh3NBoCABQnRBTDwIAQRCE7B6Zt24RGEivaScAnO1AlFoLvXenh/96Mfu2Wf3ub17941KYWsgK0BXclN4TUaWz1z1Jk/HVGCdOPGGj1Z3afardNgSiUko7vch2AKyrnMF40LKOSp5TrbvBx/8gtu8eZObNev2ahyOYyAQnAAhOrguoUEIIDBUwEYVz50773+lEGFrMVPLzPWi+uaXXz7sfve7d9yrr742Ioitgdzauryokg27/hSGbfR36GoXthqHQvGFCxf9aK+u13Pnzg22Z+rUW5z+U9nF7NmfdLq9tvb9zjt/dH/4wx8/upOhK3gUuJCet7IPPValH2pnX1+fu3z5/9y1115b8DEV+K+55hp/Xg899IBraXnY3X77zEKawGMQyKwAITqzXcuJIRCngH38rBrWgYEB/4dfH32rdlOTvUq9yUScKrQ6l0BHx1a/LrHuEDnapqXctIzbWFakWLXqUbdv3w/dhx9+WLFOGD9+fN79Kwzr34KVJeVab9p+V0hNdK6TUTmUJgfefPPNfuUSbfPnfy6IlUgqhs+OEShBgBBdAh5PRQCB0gXso2l9TN3Z+ZSvT9Wm/1fooZa5dOOs7UElPHfd9Wc5T2vcuHHuuuuu8xPkVO88c+afuAkTxg8+VteTTaa7soMBP0J7ZcWLBv+rXbv+1f3gBz/033/iE9PcuHHjffmFRpdPn/7tsOPfddcd/lbZc+bM9iPdemxSl5zcplvfa1MYtk3t0QivapTVhnQZEm8Ys3blcj5ZEyBEZ61HOR8EAhdQaNbEp2SpMYXmL/k60HQ9aOCnQPNqLLBp02b37W935myFRmz7+5PQWs5NpReXLl3yu1RQvrISRnKbd1Z7Kac2+0IgDgFCdBz9RCsRiFJAdaPJ3dJ6/Ufuql1du3bV4OSpsX7sHCUGjS6bwNmzZ93ixQ/6Eog1a/7WTZ061f3yl79yq1b9ja8vtjpkG/kdulKFGqI3cdqGrresUWqNAGvTfr/znU733nvvuwceWOKWLfuCe/jhZWU7D3aEAAJxCxCi4+4/Wo9AUAK6g5pCsyZgKaSopllrMi9Zspi1mYPqKRpTjMD99y9yr7123Gk1imXLvujuv3+Bu+mmxmJ2wWMRQCCDAoToDHYqp4RANQQUknVzCFuxwG7eoIlIdlMTVs6oRk9wjEoL6O58Tz/9L/5a16brW3fl++pX2yp9aPaPAAIBCxCiA+4cmoZAKAK2Vq1Gmm2U2T4Gt9CswExdaCg9RjsqIaDVQLZseXJw17fdNs197WttfqLg4sV/xdrklUBnnwgELECIDrhzaBoCtRJQLfPRo0lJhoVmawuhuVa9wnFDEDh+/HX3zW/+kzt48OVhzdFqMlpKb8mSRQTqEDqLNiBQYQFCdIWB2T0CMQhYaN6//5Bfkzl9IwkFAo0wa6RZEwHZEEDAuRdf/A939ux77tFH1+fk0FKNCtX698OGAALZFCBEZ7NfOSsERhVI1zMrOKdXKNAffYVlyjO4iBDIL3Ds2M/9Ch76xCbX0npa99lu9EKgzu/JIxCISYAQHVNv0VYExiigkWVNAty//+BHS85ducMb5RljROVpCKQE9G9M/766up5xPT1v5rQhUHPJIJAtAUJ0tvqTs0HAC2hkeehyc0ajG0XYKDOrZ3DBIFB+AQJ1+U3ZIwIhChCiQ+wV2oTAGARUoqHgbKPNtgvdwU21mRacuY32GHB5CgJjFFCg7uzc4VQ2pRsO5drSI9T6ZCh96+8xHpanIYBAFQQI0VVA5hAIVEpgz569vhYzuSvg8BINhWcmA1ZKn/0iUJyA3uiq3GO0QK092iof9913r7+lOBsCCIQpQIgOs19oFQI5BRSUDxw4NGy0ualpul9BQxOYKNHg4kEgfIFCSj50FjbJV3f91Cg1GwIIhCNAiA6nL2gJAsMErLY514RA1TYnI1aMNnPpIBCzgAVqfaKkN8kjbSrz0JtkvVlmlDrmHqftWREgRGelJzmPzAjYms27d+/1ZRq2pWub9UeUusnMdDkngsCggN44q0RLJR/69z9SHbWeoFIPvYnWp1DUUnMRIVB9AUJ09c05IgLDBPTHUpMCVS9JbTMXCAIImIDdNVSvESOtRW2PtZsi2VrvKCKAQGUFCNGV9WXvCOQUSJdppG92otHm5OPaZHSJSUVcQAggkBZQmD5xQivxUPrBlYFArQUI0bXuAY5fNwIaYU6vpmEnbus2t7YuZyWNurkaOFEEyiNgI9XJEpcjl3+k70LKnRPLY89eECBEcw0gUEEBTRLSHzdNDNRXbVpJQ3/QNNK8cmULtc0V9GfXCNSbgNVU6/XGAnau25GzjF69XRmcbyUECNGVUGWfdStgf7h0i+1t23YOOqhMo61ttS/VUIBmUmDdXiKcOAJVF8g3Wq3XpPQExao3kAMiEKkAITrSjqPZYQho1Ce5gcJe/1X/3Xrrx93Fi//r5s2726lEg9rmMPqKViCAQCJgr1uaqGivW7YKiK34oZKPpqYm5mVw0SAwigAhmssDgSIFRrrhiXazYkWLe+ihL7o77pjDH58iXXk4AgjUTkBh+tSpXr+0Xnd3z+AqQZ///H1u3bpH3G23TeM1rXbdw5EDFSBEB9oxNCssAf2B0aRA1Tanl6Cz1TRaW1v8x6FsCCCAQBYE9DqnEWstu+lcgw/YKlPbuLHdh2lGqbPQy5xDqQKE6FIFeX5mBfRHZPv2ncOCs05YH3XaxBzqmzN7CXBiCCCQEtDqHzZJWq+PjY3JHRS5JTmXSb0KEKLrtec575wCGnnRihqaFGiradgDtRSdapwVnlm/mQsIAQTqWcBWAUmC9SF/Z0XN/9BcEH1tbr6b18l6vkDq5NwJ0XXS0Zzm6AIKzJ2dGnU+5D/CtM1uta2VNTSDnQ0BBBBAYLiARqbtroq2XrWVfWi0WsF67txPszIRF0+mBAjRmepOTqZYAdU5796917/4pzeNOre1rXFLly7iRb9YVB6PAAJ1L2ChWpMUtQpIT8+b3kTBOgnUzW7+/M8xOFH3V0rcAITouPuP1o9BQCPNnZ1P+Qkz6UmC2pVqnTXqrBd5NgQQQACB8gjodVevt6qptluX6yYwmlNi6+frdVfBmg2BWAQI0bH0FO0sWeDIkWM+OGtN5/RmN0JReGaSYMnM7AABBBAoSCBXCYieqDCdTFhcxEh1QZI8qFYChOhayXPcqgjkmyiokg0tT8eGAAIIIFBbgXSo1oi1Rqo1F0X/JYG6mcmKte0ijj5EgBDNJZFJAVvXWfXO6YmCOlndEIWJgpnsdk4KAQQyJGC3K7cJiwrVGqVuaXnYzZo1k7K7DPV1rKdCiI6152j3MAG90B4+/F/uhRdedCdPvnXV75uapru1a1e7lStbKNng2kEAAQQiE7Caai0/+vvfv+N+/euTflm9TZvanSaCM0odWYdmpLmE6Ix0ZD2ehj76O3o0WaNUs7+HjjjbqLOCMxMF6/EK4ZwRQCCrAnq91yeNNkG8oaHBl31oHX+VfrCWf1Z7PqzzIkSH1R+0ZhQBq29WYNao89CVNeypN93U6L7xjb/zJRtsCCCAAALZFrBaatVR62ZZ2hSiFagfeWQ1gTrb3V/TsyNE15Sfg+cTUHDu6nrWjzYMvYPg0OdSspFPk98jgAAC2RbQ3wx9OpkO1Bqh1qCKRqhZgSnb/V/tsyNEV1uc4xUkoJFmreWsF8J8m8Kz6uK4MUo+KX6PAAII1JeAljTdtm3H4M1eNDqtvxWaYM6GQKkChOhSBXl+WQUUmjs6tuYdddZBtSh/a+tylqgraw+wMwQQQCB7Air56Ozc4UepNSFRI9IK05pwrpFqNgTGIkCIHosazym7gEo12tsfH3b77aEH0o1RNJLAEnVl7wJ2iAACCNSFgAZrFKb37EluvKX6aQ3IaHSaCYl1cQmU7SQJ0WWjZEdjEdDowIYNj+ct26DeeSy6PAcBBBBAYCQBW+HjwAHdivzY4C3ItZrT2rWrgEMgrwAhOi8RD6iUgNb73L5954irbOi4Wv8zqXdeXKlmsF8EEEAAgToX0KehyQj1QV8/rXKPnTv/mb89dX5d5Dt9QnQ+IX5fEQGNAEyb9skR9014rgg7O0UAAQQQyCOgie1ag1oDOJR3cLmMJkCI5vqoiYBepBYufGDYsSnbqEl3cFAEEEAAAQQQKFKAEF0kGA8vn8Ctt85y/f39foeaMKg7Cz755JbyHYA9IYAAAggggAACFRIgRFcIlt3mF1ANmm6iok0zo1lmKL8Zj0AAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISOD/AYTV/3TCUQtkAAAAAElFTkSuQmCC',
+ },
};
export default {
- form: form,
- submission: submission,
+ form: form,
+ submission: submission,
};
diff --git a/test/forms/formWithSurvey.d.ts b/test/forms/formWithSurvey.d.ts
index a1fb4f07ec..e8f81a5add 100644
--- a/test/forms/formWithSurvey.d.ts
+++ b/test/forms/formWithSurvey.d.ts
@@ -1,33 +1,36 @@
declare namespace _default {
const _id: string;
const type: string;
- const components: ({
- label: string;
- tableView: boolean;
- questions: {
- label: string;
- value: string;
- tooltip: string;
- }[];
- values: {
- label: string;
- value: string;
- tooltip: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- showValidations?: undefined;
- } | {
- label: string;
- showValidations: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- questions?: undefined;
- values?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ tableView: boolean;
+ questions: {
+ label: string;
+ value: string;
+ tooltip: string;
+ }[];
+ values: {
+ label: string;
+ value: string;
+ tooltip: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ showValidations?: undefined;
+ }
+ | {
+ label: string;
+ showValidations: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ questions?: undefined;
+ values?: undefined;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/formWithSurvey.js b/test/forms/formWithSurvey.js
index ff26f41a26..25a23f7568 100644
--- a/test/forms/formWithSurvey.js
+++ b/test/forms/formWithSurvey.js
@@ -1,35 +1,35 @@
export default {
- _id: '60e563c2e27f1e9264473826',
- type: 'form',
- components: [
- {
- label: 'Survey',
- tableView: true,
- questions: [
- { label: 'question 1', value: 'question1', tooltip: '' },
- { label: 'question 2', value: 'question2', tooltip: '' }
- ],
- values: [
- { label: 'a1', value: 'a1', tooltip: '' },
- { label: 'a2', value: 'a2', tooltip: '' },
- { label: 'a3', value: 'a3', tooltip: '' }
- ],
- key: 'survey',
- type: 'survey',
- input: true
- },
- {
- label: 'Submit',
- showValidations: false,
- tableView: false,
- key: 'submit',
- type: 'button',
- input: true
- }
- ],
- title: 'survey test',
- display: 'form',
- name: 'surveyTest',
- path: 'surveytest',
- machineName: 'cjksbatcpbhyfbs:surveyTest',
+ _id: '60e563c2e27f1e9264473826',
+ type: 'form',
+ components: [
+ {
+ label: 'Survey',
+ tableView: true,
+ questions: [
+ { label: 'question 1', value: 'question1', tooltip: '' },
+ { label: 'question 2', value: 'question2', tooltip: '' },
+ ],
+ values: [
+ { label: 'a1', value: 'a1', tooltip: '' },
+ { label: 'a2', value: 'a2', tooltip: '' },
+ { label: 'a3', value: 'a3', tooltip: '' },
+ ],
+ key: 'survey',
+ type: 'survey',
+ input: true,
+ },
+ {
+ label: 'Submit',
+ showValidations: false,
+ tableView: false,
+ key: 'submit',
+ type: 'button',
+ input: true,
+ },
+ ],
+ title: 'survey test',
+ display: 'form',
+ name: 'surveyTest',
+ path: 'surveytest',
+ machineName: 'cjksbatcpbhyfbs:surveyTest',
};
diff --git a/test/forms/formWithValidateWhenHidden.js b/test/forms/formWithValidateWhenHidden.js
index 37ae061d35..252f6d6b05 100644
--- a/test/forms/formWithValidateWhenHidden.js
+++ b/test/forms/formWithValidateWhenHidden.js
@@ -1,115 +1,116 @@
export default {
- title: 'form with validation',
- name: 'formWithValidation',
- path: 'formwithvalidation',
- type: 'form',
- display: 'form',
- components: [
- {
- label: 'Number 1',
- applyMaskOn: 'change',
- mask: false,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- truncateMultipleSpaces: false,
- validateWhenHidden: false,
- key: 'number1',
- type: 'number',
- input: true,
- },
- {
- label: 'Number 2',
- applyMaskOn: 'change',
- mask: false,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- truncateMultipleSpaces: false,
- validateWhenHidden: false,
- key: 'number2',
- type: 'number',
- input: true,
- },
- {
- label: 'Number',
- applyMaskOn: 'change',
- hidden: true,
- mask: false,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- truncateMultipleSpaces: false,
- clearOnHide: false,
- calculateValue: 'value = data.number1 + data.number2',
- validate: {
- customMessage: 'The sum of number 1 and number 2 must not exceed 10.',
- max: 10,
- },
- validateWhenHidden: true,
- key: 'number',
- type: 'number',
- input: true,
- },
- {
- label: 'Text Field',
- applyMaskOn: 'change',
- tableView: true,
- validateWhenHidden: false,
- key: 'textField',
- type: 'textfield',
- input: true,
- },
- {
- label: 'Checkbox',
- tableView: false,
- validateWhenHidden: false,
- key: 'checkbox',
- conditional: {
- show: false,
- conjunction: 'all',
- },
- type: 'checkbox',
- input: true,
- defaultValue: false,
- },
- {
- label: 'Text Area',
- applyMaskOn: 'change',
- autoExpand: false,
- tableView: true,
- clearOnHide: false,
- calculateValue: 'value = data.textField;',
- validate: {
- minWords: 3,
- },
- validateWhenHidden: true,
- key: 'textArea',
- conditional: {
- show: false,
- conjunction: 'all',
- conditions: [
- {
- component: 'checkbox',
- operator: 'isEqual',
- value: true,
- },
- ],
- },
- type: 'textarea',
- input: true,
- },
- {
- label: 'Submit',
- showValidations: false,
- tableView: false,
- key: 'submit',
- type: 'button',
- input: true,
- saveOnEnter: false,
- },
- ],
+ title: 'form with validation',
+ name: 'formWithValidation',
+ path: 'formwithvalidation',
+ type: 'form',
+ display: 'form',
+ components: [
+ {
+ label: 'Number 1',
+ applyMaskOn: 'change',
+ mask: false,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ truncateMultipleSpaces: false,
+ validateWhenHidden: false,
+ key: 'number1',
+ type: 'number',
+ input: true,
+ },
+ {
+ label: 'Number 2',
+ applyMaskOn: 'change',
+ mask: false,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ truncateMultipleSpaces: false,
+ validateWhenHidden: false,
+ key: 'number2',
+ type: 'number',
+ input: true,
+ },
+ {
+ label: 'Number',
+ applyMaskOn: 'change',
+ hidden: true,
+ mask: false,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ truncateMultipleSpaces: false,
+ clearOnHide: false,
+ calculateValue: 'value = data.number1 + data.number2',
+ validate: {
+ customMessage:
+ 'The sum of number 1 and number 2 must not exceed 10.',
+ max: 10,
+ },
+ validateWhenHidden: true,
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ {
+ label: 'Text Field',
+ applyMaskOn: 'change',
+ tableView: true,
+ validateWhenHidden: false,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Checkbox',
+ tableView: false,
+ validateWhenHidden: false,
+ key: 'checkbox',
+ conditional: {
+ show: false,
+ conjunction: 'all',
+ },
+ type: 'checkbox',
+ input: true,
+ defaultValue: false,
+ },
+ {
+ label: 'Text Area',
+ applyMaskOn: 'change',
+ autoExpand: false,
+ tableView: true,
+ clearOnHide: false,
+ calculateValue: 'value = data.textField;',
+ validate: {
+ minWords: 3,
+ },
+ validateWhenHidden: true,
+ key: 'textArea',
+ conditional: {
+ show: false,
+ conjunction: 'all',
+ conditions: [
+ {
+ component: 'checkbox',
+ operator: 'isEqual',
+ value: true,
+ },
+ ],
+ },
+ type: 'textarea',
+ input: true,
+ },
+ {
+ label: 'Submit',
+ showValidations: false,
+ tableView: false,
+ key: 'submit',
+ type: 'button',
+ input: true,
+ saveOnEnter: false,
+ },
+ ],
};
diff --git a/test/forms/formWithValidation.js b/test/forms/formWithValidation.js
index 0574e5ef71..5db3f27936 100644
--- a/test/forms/formWithValidation.js
+++ b/test/forms/formWithValidation.js
@@ -1,26 +1,25 @@
export default {
components: [
{
- label: 'Name',
- applyMaskOn: 'change',
- tableView: true,
- validate: {
- required: true,
- minLength: 2,
- maxLength: 5,
- },
- key: 'name',
- type: 'textfield',
- input: true,
+ label: 'Name',
+ applyMaskOn: 'change',
+ tableView: true,
+ validate: {
+ required: true,
+ minLength: 2,
+ maxLength: 5,
+ },
+ key: 'name',
+ type: 'textfield',
+ input: true,
},
{
- type: 'button',
- showValidations: false,
- label: 'Submit',
- key: 'submit',
- input: true,
- tableView: false,
+ type: 'button',
+ showValidations: false,
+ label: 'Submit',
+ key: 'submit',
+ input: true,
+ tableView: false,
},
],
};
-
\ No newline at end of file
diff --git a/test/forms/formsWithAllowOverrideComps.js b/test/forms/formsWithAllowOverrideComps.js
index 55dc5abcce..fad4e60e41 100644
--- a/test/forms/formsWithAllowOverrideComps.js
+++ b/test/forms/formsWithAllowOverrideComps.js
@@ -6,202 +6,14 @@ const withClearOnHide = {
type: 'form',
display: 'form',
components: [
- {
- label: 'Checkbox',
- tableView: false,
- key: 'checkbox',
- type: 'checkbox',
- input: true,
- },
- {
- label: 'Number',
- applyMaskOn: 'change',
- mask: false,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- truncateMultipleSpaces: false,
- allowCalculateOverride: true,
- calculateValue: 'value = 111;',
- key: 'number',
- conditional: {
- show: true,
- conjunction: 'all',
- conditions: [
- {
- component: 'checkbox',
- operator: 'isEqual',
- value: true,
- },
- ],
- },
- type: 'number',
- input: true,
- },
- {
- label: 'Text Field',
- applyMaskOn: 'change',
- tableView: true,
- calculateValue: "value = 'test';",
- allowCalculateOverride: true,
- key: 'textField',
- conditional: {
- show: true,
- conjunction: 'all',
- conditions: [
- {
- component: 'checkbox',
- operator: 'isEqual',
- value: true,
- },
- ],
- },
- type: 'textfield',
- input: true,
- },
- {
- label: 'Text Area',
- applyMaskOn: 'change',
- autoExpand: false,
- tableView: true,
- calculateValue: "value = 'test value';",
- allowCalculateOverride: true,
- key: 'textArea',
- conditional: {
- show: true,
- conjunction: 'all',
- conditions: [
- {
- component: 'checkbox',
- operator: 'isEqual',
- value: true,
- },
- ],
- },
- type: 'textarea',
- input: true,
- },
- {
- label: 'Radio',
- optionsLabelPosition: 'right',
- inline: false,
- tableView: false,
- values: [
- {
- label: 'a',
- value: 'a',
- shortcut: '',
- },
- {
- label: 'b',
- value: 'b',
- shortcut: '',
- },
- {
- label: 'c',
- value: 'c',
- shortcut: '',
- },
- ],
- calculateValue: "value = 'a';\n\n",
- allowCalculateOverride: true,
- key: 'radio',
- conditional: {
- show: true,
- conjunction: 'all',
- conditions: [
- {
- component: 'checkbox',
- operator: 'isEqual',
- value: true,
- },
- ],
- },
- type: 'radio',
- input: true,
- },
- {
- label: 'reset',
- action: 'reset',
- showValidations: false,
- tableView: false,
- key: 'reset',
- type: 'button',
- input: true,
- },
- ],
- };
-
- const withDataGrid = {
- _id: '6597baa341436815946204d1',
- title: 'test clear datagrid first raw',
- name: 'testClearDatagridFirstRaw',
- path: 'testcleardatagridfirstraw',
- type: 'form',
- display: 'form',
- components: [
- {
- label: 'Data Grid',
- reorder: false,
- addAnotherPosition: 'bottom',
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- tableView: false,
- defaultValue: [
- {
- dgRadio: '',
- textField: '',
- textArea: '',
- },
- ],
- key: 'dataGrid',
- type: 'datagrid',
- defaultOpen: false,
- alwaysEnabled: false,
- input: true,
- components: [
- {
- label: 'DG radio',
- optionsLabelPosition: 'right',
- inline: false,
- alwaysEnabled: false,
+ {
+ label: 'Checkbox',
tableView: false,
- values: [
- {
- label: 'A',
- value: 'a',
- shortcut: '',
- },
- {
- label: 'B',
- value: 'b',
- shortcut: '',
- },
- {
- label: 'C',
- value: 'c',
- shortcut: '',
- },
- ],
- allowCalculateOverride: true,
- key: 'dgRadio',
- type: 'radio',
- input: true,
- },
- {
- label: 'Text Field',
- applyMaskOn: 'change',
- tableView: true,
- calculateValue: "if (row.dgRadio == 'a'){value = 'test DataGrid'}",
- allowCalculateOverride: true,
- key: 'textField',
- type: 'textfield',
- alwaysEnabled: false,
+ key: 'checkbox',
+ type: 'checkbox',
input: true,
- },
- {
+ },
+ {
label: 'Number',
applyMaskOn: 'change',
mask: false,
@@ -210,282 +22,472 @@ const withClearOnHide = {
requireDecimal: false,
inputFormat: 'plain',
truncateMultipleSpaces: false,
- calculateValue: 'value = 11111;',
allowCalculateOverride: true,
+ calculateValue: 'value = 111;',
key: 'number',
+ conditional: {
+ show: true,
+ conjunction: 'all',
+ conditions: [
+ {
+ component: 'checkbox',
+ operator: 'isEqual',
+ value: true,
+ },
+ ],
+ },
type: 'number',
input: true,
- },
- {
+ },
+ {
+ label: 'Text Field',
+ applyMaskOn: 'change',
+ tableView: true,
+ calculateValue: "value = 'test';",
+ allowCalculateOverride: true,
+ key: 'textField',
+ conditional: {
+ show: true,
+ conjunction: 'all',
+ conditions: [
+ {
+ component: 'checkbox',
+ operator: 'isEqual',
+ value: true,
+ },
+ ],
+ },
+ type: 'textfield',
+ input: true,
+ },
+ {
label: 'Text Area',
applyMaskOn: 'change',
autoExpand: false,
tableView: true,
- calculateValue: "value = 'test';",
+ calculateValue: "value = 'test value';",
allowCalculateOverride: true,
key: 'textArea',
+ conditional: {
+ show: true,
+ conjunction: 'all',
+ conditions: [
+ {
+ component: 'checkbox',
+ operator: 'isEqual',
+ value: true,
+ },
+ ],
+ },
type: 'textarea',
input: true,
- },
- ],
- path: 'dataGrid',
- },
- ],
- };
-
- const withResetBtn = {
- _id: '6597c00b4143681594622563',
- title: 'recalculate on reset',
- name: 'recalculateOnReset',
- path: 'recalculateonreset',
- type: 'form',
- display: 'form',
- components: [
- {
- label: 'Data Grid',
- reorder: false,
- addAnotherPosition: 'bottom',
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- tableView: false,
- defaultValue: [
- {
- dgRadio: '',
- textField: '',
- textArea: '',
- },
- ],
- key: 'dataGrid',
- type: 'datagrid',
- defaultOpen: false,
- alwaysEnabled: false,
- input: true,
- components: [
- {
- label: 'DG radio',
+ },
+ {
+ label: 'Radio',
optionsLabelPosition: 'right',
inline: false,
- alwaysEnabled: false,
tableView: false,
values: [
- {
- label: 'A',
- value: 'a',
- shortcut: '',
- },
- {
- label: 'B',
- value: 'b',
- shortcut: '',
- },
- {
- label: 'C',
- value: 'c',
- shortcut: '',
- },
+ {
+ label: 'a',
+ value: 'a',
+ shortcut: '',
+ },
+ {
+ label: 'b',
+ value: 'b',
+ shortcut: '',
+ },
+ {
+ label: 'c',
+ value: 'c',
+ shortcut: '',
+ },
],
+ calculateValue: "value = 'a';\n\n",
allowCalculateOverride: true,
- key: 'dgRadio',
+ key: 'radio',
+ conditional: {
+ show: true,
+ conjunction: 'all',
+ conditions: [
+ {
+ component: 'checkbox',
+ operator: 'isEqual',
+ value: true,
+ },
+ ],
+ },
type: 'radio',
input: true,
- },
- {
- label: 'Text Field',
- applyMaskOn: 'change',
- tableView: true,
- calculateValue: "if (row.dgRadio == 'a'){value = 'test DataGrid'}",
- allowCalculateOverride: true,
- key: 'textField',
- type: 'textfield',
+ },
+ {
+ label: 'reset',
+ action: 'reset',
+ showValidations: false,
+ tableView: false,
+ key: 'reset',
+ type: 'button',
+ input: true,
+ },
+ ],
+};
+
+const withDataGrid = {
+ _id: '6597baa341436815946204d1',
+ title: 'test clear datagrid first raw',
+ name: 'testClearDatagridFirstRaw',
+ path: 'testcleardatagridfirstraw',
+ type: 'form',
+ display: 'form',
+ components: [
+ {
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ tableView: false,
+ defaultValue: [
+ {
+ dgRadio: '',
+ textField: '',
+ textArea: '',
+ },
+ ],
+ key: 'dataGrid',
+ type: 'datagrid',
+ defaultOpen: false,
alwaysEnabled: false,
input: true,
- },
- ],
- path: 'dataGrid',
- },
- {
- label: 'Checkbox',
- tableView: false,
- key: 'checkbox',
- type: 'checkbox',
- input: true,
- },
- {
- label: 'Radio',
- optionsLabelPosition: 'right',
- inline: false,
- tableView: false,
- values: [
- {
- label: 'one',
- value: 'one',
- shortcut: '',
- },
- {
- label: 'two',
- value: 'two',
- shortcut: '',
- },
- ],
- calculateValue: "if (data.checkbox) {\n value = 'one';\n}",
- allowCalculateOverride: true,
- key: 'radio',
- type: 'radio',
- input: true,
- },
- {
- label: 'Text Area',
- applyMaskOn: 'change',
- autoExpand: false,
- tableView: true,
- calculateValue: "value = 'test';",
- allowCalculateOverride: true,
- key: 'textArea',
- type: 'textarea',
- input: true,
- },
- {
- label: 'Number',
- applyMaskOn: 'change',
- mask: false,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- truncateMultipleSpaces: false,
- calculateValue: 'value = 11111;',
- allowCalculateOverride: true,
- key: 'number',
- type: 'number',
- input: true,
- },
- {
- label: 'reset',
- action: 'reset',
- showValidations: false,
- tableView: false,
- key: 'reset',
- type: 'button',
- input: true,
- },
+ components: [
+ {
+ label: 'DG radio',
+ optionsLabelPosition: 'right',
+ inline: false,
+ alwaysEnabled: false,
+ tableView: false,
+ values: [
+ {
+ label: 'A',
+ value: 'a',
+ shortcut: '',
+ },
+ {
+ label: 'B',
+ value: 'b',
+ shortcut: '',
+ },
+ {
+ label: 'C',
+ value: 'c',
+ shortcut: '',
+ },
+ ],
+ allowCalculateOverride: true,
+ key: 'dgRadio',
+ type: 'radio',
+ input: true,
+ },
+ {
+ label: 'Text Field',
+ applyMaskOn: 'change',
+ tableView: true,
+ calculateValue:
+ "if (row.dgRadio == 'a'){value = 'test DataGrid'}",
+ allowCalculateOverride: true,
+ key: 'textField',
+ type: 'textfield',
+ alwaysEnabled: false,
+ input: true,
+ },
+ {
+ label: 'Number',
+ applyMaskOn: 'change',
+ mask: false,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ truncateMultipleSpaces: false,
+ calculateValue: 'value = 11111;',
+ allowCalculateOverride: true,
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ {
+ label: 'Text Area',
+ applyMaskOn: 'change',
+ autoExpand: false,
+ tableView: true,
+ calculateValue: "value = 'test';",
+ allowCalculateOverride: true,
+ key: 'textArea',
+ type: 'textarea',
+ input: true,
+ },
+ ],
+ path: 'dataGrid',
+ },
],
- };
-
- const wizard = {
- _id: '65966189ac3dff73a7234dd9',
- title: 'clear rows',
- name: 'clearRows',
- path: 'clearrows',
+};
+
+const withResetBtn = {
+ _id: '6597c00b4143681594622563',
+ title: 'recalculate on reset',
+ name: 'recalculateOnReset',
+ path: 'recalculateonreset',
type: 'form',
- display: 'wizard',
+ display: 'form',
components: [
- {
- title: 'Page 1',
- label: 'Page 1',
- type: 'panel',
- key: 'page1',
- components: [
- {
+ {
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ tableView: false,
+ defaultValue: [
+ {
+ dgRadio: '',
+ textField: '',
+ textArea: '',
+ },
+ ],
+ key: 'dataGrid',
+ type: 'datagrid',
+ defaultOpen: false,
+ alwaysEnabled: false,
+ input: true,
+ components: [
+ {
+ label: 'DG radio',
+ optionsLabelPosition: 'right',
+ inline: false,
+ alwaysEnabled: false,
+ tableView: false,
+ values: [
+ {
+ label: 'A',
+ value: 'a',
+ shortcut: '',
+ },
+ {
+ label: 'B',
+ value: 'b',
+ shortcut: '',
+ },
+ {
+ label: 'C',
+ value: 'c',
+ shortcut: '',
+ },
+ ],
+ allowCalculateOverride: true,
+ key: 'dgRadio',
+ type: 'radio',
+ input: true,
+ },
+ {
+ label: 'Text Field',
+ applyMaskOn: 'change',
+ tableView: true,
+ calculateValue:
+ "if (row.dgRadio == 'a'){value = 'test DataGrid'}",
+ allowCalculateOverride: true,
+ key: 'textField',
+ type: 'textfield',
+ alwaysEnabled: false,
+ input: true,
+ },
+ ],
+ path: 'dataGrid',
+ },
+ {
+ label: 'Checkbox',
+ tableView: false,
+ key: 'checkbox',
+ type: 'checkbox',
+ input: true,
+ },
+ {
label: 'Radio',
optionsLabelPosition: 'right',
inline: false,
- tableView: true,
+ tableView: false,
values: [
- {
- label: ' a',
- value: 'a',
- shortcut: '',
- },
- {
- label: 'b',
- value: 'b',
- shortcut: '',
- },
- {
- label: 'c',
- value: 'c',
- shortcut: '',
- },
+ {
+ label: 'one',
+ value: 'one',
+ shortcut: '',
+ },
+ {
+ label: 'two',
+ value: 'two',
+ shortcut: '',
+ },
],
+ calculateValue: "if (data.checkbox) {\n value = 'one';\n}",
allowCalculateOverride: true,
- key: 'radio1',
+ key: 'radio',
type: 'radio',
- alwaysEnabled: false,
- input: true,
- },
- {
- label: 'Text Field',
- alwaysEnabled: false,
- tableView: true,
- calculateValue: "if (data.radio1 == 'a'){value = 'test data'}",
- allowCalculateOverride: true,
- key: 'textField',
- type: 'textfield',
input: true,
- },
- {
+ },
+ {
label: 'Text Area',
+ applyMaskOn: 'change',
autoExpand: false,
- alwaysEnabled: false,
tableView: true,
- calculateValue: "if (data.radio1 == 'a'){value = 'test data'}",
+ calculateValue: "value = 'test';",
allowCalculateOverride: true,
key: 'textArea',
type: 'textarea',
input: true,
- },
- {
+ },
+ {
label: 'Number',
+ applyMaskOn: 'change',
mask: false,
- alwaysEnabled: false,
tableView: false,
delimiter: false,
requireDecimal: false,
inputFormat: 'plain',
- calculateValue: "if (data.radio1 == 'a'){value = 123}",
+ truncateMultipleSpaces: false,
+ calculateValue: 'value = 11111;',
allowCalculateOverride: true,
key: 'number',
type: 'number',
input: true,
- },
- {
- label: 'Radio',
- optionsLabelPosition: 'right',
- inline: false,
+ },
+ {
+ label: 'reset',
+ action: 'reset',
+ showValidations: false,
tableView: false,
- values: [
- {
- label: 'one',
- value: 'one',
- shortcut: '',
- },
- {
- label: 'two',
- value: 'two',
- shortcut: '',
- },
- ],
- calculateValue: "value = 'one'",
- allowCalculateOverride: true,
- key: 'radio',
- type: 'radio',
+ key: 'reset',
+ type: 'button',
input: true,
- },
- ],
- input: false,
- tableView: false,
- alwaysEnabled: false,
- path: 'page1',
- },
+ },
+ ],
+};
+
+const wizard = {
+ _id: '65966189ac3dff73a7234dd9',
+ title: 'clear rows',
+ name: 'clearRows',
+ path: 'clearrows',
+ type: 'form',
+ display: 'wizard',
+ components: [
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Radio',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: true,
+ values: [
+ {
+ label: ' a',
+ value: 'a',
+ shortcut: '',
+ },
+ {
+ label: 'b',
+ value: 'b',
+ shortcut: '',
+ },
+ {
+ label: 'c',
+ value: 'c',
+ shortcut: '',
+ },
+ ],
+ allowCalculateOverride: true,
+ key: 'radio1',
+ type: 'radio',
+ alwaysEnabled: false,
+ input: true,
+ },
+ {
+ label: 'Text Field',
+ alwaysEnabled: false,
+ tableView: true,
+ calculateValue:
+ "if (data.radio1 == 'a'){value = 'test data'}",
+ allowCalculateOverride: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Text Area',
+ autoExpand: false,
+ alwaysEnabled: false,
+ tableView: true,
+ calculateValue:
+ "if (data.radio1 == 'a'){value = 'test data'}",
+ allowCalculateOverride: true,
+ key: 'textArea',
+ type: 'textarea',
+ input: true,
+ },
+ {
+ label: 'Number',
+ mask: false,
+ alwaysEnabled: false,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ calculateValue: "if (data.radio1 == 'a'){value = 123}",
+ allowCalculateOverride: true,
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ {
+ label: 'Radio',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: false,
+ values: [
+ {
+ label: 'one',
+ value: 'one',
+ shortcut: '',
+ },
+ {
+ label: 'two',
+ value: 'two',
+ shortcut: '',
+ },
+ ],
+ calculateValue: "value = 'one'",
+ allowCalculateOverride: true,
+ key: 'radio',
+ type: 'radio',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ alwaysEnabled: false,
+ path: 'page1',
+ },
],
- };
-
- export default {
+};
+
+export default {
withClearOnHide,
withDataGrid,
withResetBtn,
wizard,
- };
-
-
\ No newline at end of file
+};
diff --git a/test/forms/formsWithNewSimpleConditions.d.ts b/test/forms/formsWithNewSimpleConditions.d.ts
index b51b7e123b..fa6d14eefd 100644
--- a/test/forms/formsWithNewSimpleConditions.d.ts
+++ b/test/forms/formsWithNewSimpleConditions.d.ts
@@ -12,107 +12,117 @@ declare namespace form1 {
const path: string;
const type: string;
const display: string;
- const components: ({
- label: string;
- tableView: boolean;
- key: string;
- conditional: {
- show: boolean;
- conjunction: string;
- conditions: ({
- component: string;
- operator: string;
- value: number;
- } | {
- component: string;
- operator: string;
- value: string;
- } | {
- component: string;
- operator: string;
- value?: undefined;
- })[];
- };
- type: string;
- input: boolean;
- mask?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- disableOnInvalid?: undefined;
- } | {
- label: string;
- mask: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- truncateMultipleSpaces: boolean;
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- disableOnInvalid?: undefined;
- } | {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- mask?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- disableOnInvalid?: undefined;
- } | {
- label: string;
- optionsLabelPosition: string;
- inline: boolean;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- mask?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- conditional?: undefined;
- mask?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ conditional: {
+ show: boolean;
+ conjunction: string;
+ conditions: (
+ | {
+ component: string;
+ operator: string;
+ value: number;
+ }
+ | {
+ component: string;
+ operator: string;
+ value: string;
+ }
+ | {
+ component: string;
+ operator: string;
+ value?: undefined;
+ }
+ )[];
+ };
+ type: string;
+ input: boolean;
+ mask?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ label: string;
+ mask: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ truncateMultipleSpaces: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ mask?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ label: string;
+ optionsLabelPosition: string;
+ inline: boolean;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ mask?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ conditional?: undefined;
+ mask?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ }
+ )[];
const created: string;
const modified: string;
const machineName: string;
@@ -128,402 +138,419 @@ declare namespace form2 {
export { type_1 as type };
const display_1: string;
export { display_1 as display };
- const components_1: ({
- label: string;
- tableView: boolean;
- key: string;
- conditional: {
- show: boolean;
- conjunction: string;
- conditions: ({
- component: string;
- operator: string;
- value: string;
- } | {
- component: string;
- operator: string;
- value: number;
- } | {
- component: string;
- operator: string;
- value?: undefined;
- } | {
- component: string;
- operator: string;
- value: boolean;
- })[];
- };
- type: string;
- input: boolean;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- delimiter?: undefined;
- questions?: undefined;
- values?: undefined;
- multiple?: undefined;
- requireDecimal?: undefined;
- optionsLabelPosition?: undefined;
- inputType?: undefined;
- inline?: undefined;
- widget?: undefined;
- data?: undefined;
- dataSrc?: undefined;
- dataType?: undefined;
- valueProperty?: undefined;
- showValidations?: undefined;
- saveOnEnter?: undefined;
- } | {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- delimiter?: undefined;
- questions?: undefined;
- values?: undefined;
- multiple?: undefined;
- requireDecimal?: undefined;
- optionsLabelPosition?: undefined;
- inputType?: undefined;
- inline?: undefined;
- widget?: undefined;
- data?: undefined;
- dataSrc?: undefined;
- dataType?: undefined;
- valueProperty?: undefined;
- showValidations?: undefined;
- saveOnEnter?: undefined;
- } | {
- label: string;
- hideInputLabels: boolean;
- inputsLabelPosition: string;
- useLocaleSettings: boolean;
- tableView: boolean;
- fields: {
- day: {
- hide: boolean;
- };
- month: {
- hide: boolean;
- };
- year: {
- hide: boolean;
- };
- };
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- delimiter?: undefined;
- questions?: undefined;
- values?: undefined;
- multiple?: undefined;
- requireDecimal?: undefined;
- optionsLabelPosition?: undefined;
- inputType?: undefined;
- inline?: undefined;
- widget?: undefined;
- data?: undefined;
- dataSrc?: undefined;
- dataType?: undefined;
- valueProperty?: undefined;
- showValidations?: undefined;
- saveOnEnter?: undefined;
- } | {
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- currency: string;
- inputFormat: string;
- truncateMultipleSpaces: boolean;
- key: string;
- type: string;
- input: boolean;
- delimiter: boolean;
- conditional?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- questions?: undefined;
- values?: undefined;
- multiple?: undefined;
- requireDecimal?: undefined;
- optionsLabelPosition?: undefined;
- inputType?: undefined;
- inline?: undefined;
- widget?: undefined;
- data?: undefined;
- dataSrc?: undefined;
- dataType?: undefined;
- valueProperty?: undefined;
- showValidations?: undefined;
- saveOnEnter?: undefined;
- } | {
- label: string;
- tableView: boolean;
- questions: {
- label: string;
- value: string;
- tooltip: string;
- }[];
- values: {
- label: string;
- value: string;
- tooltip: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- delimiter?: undefined;
- multiple?: undefined;
- requireDecimal?: undefined;
- optionsLabelPosition?: undefined;
- inputType?: undefined;
- inline?: undefined;
- widget?: undefined;
- data?: undefined;
- dataSrc?: undefined;
- dataType?: undefined;
- valueProperty?: undefined;
- showValidations?: undefined;
- saveOnEnter?: undefined;
- } | {
- label: string;
- mask: boolean;
- tableView: boolean;
- multiple: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- truncateMultipleSpaces: boolean;
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- questions?: undefined;
- values?: undefined;
- optionsLabelPosition?: undefined;
- inputType?: undefined;
- inline?: undefined;
- widget?: undefined;
- data?: undefined;
- dataSrc?: undefined;
- dataType?: undefined;
- valueProperty?: undefined;
- showValidations?: undefined;
- saveOnEnter?: undefined;
- } | {
- label: string;
- optionsLabelPosition: string;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- inputType: string;
- conditional?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- delimiter?: undefined;
- questions?: undefined;
- multiple?: undefined;
- requireDecimal?: undefined;
- inline?: undefined;
- widget?: undefined;
- data?: undefined;
- dataSrc?: undefined;
- dataType?: undefined;
- valueProperty?: undefined;
- showValidations?: undefined;
- saveOnEnter?: undefined;
- } | {
- label: string;
- optionsLabelPosition: string;
- inline: boolean;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- delimiter?: undefined;
- questions?: undefined;
- multiple?: undefined;
- requireDecimal?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- dataSrc?: undefined;
- dataType?: undefined;
- valueProperty?: undefined;
- showValidations?: undefined;
- saveOnEnter?: undefined;
- } | {
- label: string;
- widget: string;
- tableView: boolean;
- data: {
- values: {
- label: string;
- value: string;
- }[];
- };
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- delimiter?: undefined;
- questions?: undefined;
- values?: undefined;
- multiple?: undefined;
- requireDecimal?: undefined;
- optionsLabelPosition?: undefined;
- inputType?: undefined;
- inline?: undefined;
- dataSrc?: undefined;
- dataType?: undefined;
- valueProperty?: undefined;
- showValidations?: undefined;
- saveOnEnter?: undefined;
- } | {
- label: string;
- widget: string;
- tableView: boolean;
- dataSrc: string;
- data: {
- custom: string;
- values?: undefined;
- };
- dataType: string;
- valueProperty: string;
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- delimiter?: undefined;
- questions?: undefined;
- values?: undefined;
- multiple?: undefined;
- requireDecimal?: undefined;
- optionsLabelPosition?: undefined;
- inputType?: undefined;
- inline?: undefined;
- showValidations?: undefined;
- saveOnEnter?: undefined;
- } | {
- label: string;
- showValidations: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- saveOnEnter: boolean;
- conditional?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- delimiter?: undefined;
- questions?: undefined;
- values?: undefined;
- multiple?: undefined;
- requireDecimal?: undefined;
- optionsLabelPosition?: undefined;
- inputType?: undefined;
- inline?: undefined;
- widget?: undefined;
- data?: undefined;
- dataSrc?: undefined;
- dataType?: undefined;
- valueProperty?: undefined;
- })[];
+ const components_1: (
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ conditional: {
+ show: boolean;
+ conjunction: string;
+ conditions: (
+ | {
+ component: string;
+ operator: string;
+ value: string;
+ }
+ | {
+ component: string;
+ operator: string;
+ value: number;
+ }
+ | {
+ component: string;
+ operator: string;
+ value?: undefined;
+ }
+ | {
+ component: string;
+ operator: string;
+ value: boolean;
+ }
+ )[];
+ };
+ type: string;
+ input: boolean;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ delimiter?: undefined;
+ questions?: undefined;
+ values?: undefined;
+ multiple?: undefined;
+ requireDecimal?: undefined;
+ optionsLabelPosition?: undefined;
+ inputType?: undefined;
+ inline?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ dataSrc?: undefined;
+ dataType?: undefined;
+ valueProperty?: undefined;
+ showValidations?: undefined;
+ saveOnEnter?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ delimiter?: undefined;
+ questions?: undefined;
+ values?: undefined;
+ multiple?: undefined;
+ requireDecimal?: undefined;
+ optionsLabelPosition?: undefined;
+ inputType?: undefined;
+ inline?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ dataSrc?: undefined;
+ dataType?: undefined;
+ valueProperty?: undefined;
+ showValidations?: undefined;
+ saveOnEnter?: undefined;
+ }
+ | {
+ label: string;
+ hideInputLabels: boolean;
+ inputsLabelPosition: string;
+ useLocaleSettings: boolean;
+ tableView: boolean;
+ fields: {
+ day: {
+ hide: boolean;
+ };
+ month: {
+ hide: boolean;
+ };
+ year: {
+ hide: boolean;
+ };
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ delimiter?: undefined;
+ questions?: undefined;
+ values?: undefined;
+ multiple?: undefined;
+ requireDecimal?: undefined;
+ optionsLabelPosition?: undefined;
+ inputType?: undefined;
+ inline?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ dataSrc?: undefined;
+ dataType?: undefined;
+ valueProperty?: undefined;
+ showValidations?: undefined;
+ saveOnEnter?: undefined;
+ }
+ | {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ currency: string;
+ inputFormat: string;
+ truncateMultipleSpaces: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ delimiter: boolean;
+ conditional?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ questions?: undefined;
+ values?: undefined;
+ multiple?: undefined;
+ requireDecimal?: undefined;
+ optionsLabelPosition?: undefined;
+ inputType?: undefined;
+ inline?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ dataSrc?: undefined;
+ dataType?: undefined;
+ valueProperty?: undefined;
+ showValidations?: undefined;
+ saveOnEnter?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ questions: {
+ label: string;
+ value: string;
+ tooltip: string;
+ }[];
+ values: {
+ label: string;
+ value: string;
+ tooltip: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ delimiter?: undefined;
+ multiple?: undefined;
+ requireDecimal?: undefined;
+ optionsLabelPosition?: undefined;
+ inputType?: undefined;
+ inline?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ dataSrc?: undefined;
+ dataType?: undefined;
+ valueProperty?: undefined;
+ showValidations?: undefined;
+ saveOnEnter?: undefined;
+ }
+ | {
+ label: string;
+ mask: boolean;
+ tableView: boolean;
+ multiple: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ truncateMultipleSpaces: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ values?: undefined;
+ optionsLabelPosition?: undefined;
+ inputType?: undefined;
+ inline?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ dataSrc?: undefined;
+ dataType?: undefined;
+ valueProperty?: undefined;
+ showValidations?: undefined;
+ saveOnEnter?: undefined;
+ }
+ | {
+ label: string;
+ optionsLabelPosition: string;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ inputType: string;
+ conditional?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ delimiter?: undefined;
+ questions?: undefined;
+ multiple?: undefined;
+ requireDecimal?: undefined;
+ inline?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ dataSrc?: undefined;
+ dataType?: undefined;
+ valueProperty?: undefined;
+ showValidations?: undefined;
+ saveOnEnter?: undefined;
+ }
+ | {
+ label: string;
+ optionsLabelPosition: string;
+ inline: boolean;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ delimiter?: undefined;
+ questions?: undefined;
+ multiple?: undefined;
+ requireDecimal?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ dataSrc?: undefined;
+ dataType?: undefined;
+ valueProperty?: undefined;
+ showValidations?: undefined;
+ saveOnEnter?: undefined;
+ }
+ | {
+ label: string;
+ widget: string;
+ tableView: boolean;
+ data: {
+ values: {
+ label: string;
+ value: string;
+ }[];
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ delimiter?: undefined;
+ questions?: undefined;
+ values?: undefined;
+ multiple?: undefined;
+ requireDecimal?: undefined;
+ optionsLabelPosition?: undefined;
+ inputType?: undefined;
+ inline?: undefined;
+ dataSrc?: undefined;
+ dataType?: undefined;
+ valueProperty?: undefined;
+ showValidations?: undefined;
+ saveOnEnter?: undefined;
+ }
+ | {
+ label: string;
+ widget: string;
+ tableView: boolean;
+ dataSrc: string;
+ data: {
+ custom: string;
+ values?: undefined;
+ };
+ dataType: string;
+ valueProperty: string;
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ delimiter?: undefined;
+ questions?: undefined;
+ values?: undefined;
+ multiple?: undefined;
+ requireDecimal?: undefined;
+ optionsLabelPosition?: undefined;
+ inputType?: undefined;
+ inline?: undefined;
+ showValidations?: undefined;
+ saveOnEnter?: undefined;
+ }
+ | {
+ label: string;
+ showValidations: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ saveOnEnter: boolean;
+ conditional?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ delimiter?: undefined;
+ questions?: undefined;
+ values?: undefined;
+ multiple?: undefined;
+ requireDecimal?: undefined;
+ optionsLabelPosition?: undefined;
+ inputType?: undefined;
+ inline?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ dataSrc?: undefined;
+ dataType?: undefined;
+ valueProperty?: undefined;
+ }
+ )[];
export { components_1 as components };
const created_1: string;
export { created_1 as created };
@@ -543,98 +570,106 @@ declare namespace form3 {
export { type_2 as type };
const display_2: string;
export { display_2 as display };
- const components_2: ({
- label: string;
- mask: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- truncateMultipleSpaces: boolean;
- key: string;
- type: string;
- input: boolean;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- logic?: undefined;
- disableOnInvalid?: undefined;
- } | {
- label: string;
- optionsLabelPosition: string;
- inline: boolean;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- mask?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- logic?: undefined;
- disableOnInvalid?: undefined;
- } | {
- label: string;
- tableView: boolean;
- key: string;
- logic: {
- name: string;
- trigger: {
- type: string;
- simple: {
- show: boolean;
- conjunction: string;
- conditions: ({
- component: string;
- operator: string;
- value: number;
- } | {
- component: string;
- operator: string;
- value: string;
- })[];
- };
- };
- actions: {
- name: string;
- type: string;
- value: string;
- }[];
- }[];
- type: string;
- input: boolean;
- mask?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- mask?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- logic?: undefined;
- })[];
+ const components_2: (
+ | {
+ label: string;
+ mask: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ truncateMultipleSpaces: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ logic?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ label: string;
+ optionsLabelPosition: string;
+ inline: boolean;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ mask?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ logic?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ logic: {
+ name: string;
+ trigger: {
+ type: string;
+ simple: {
+ show: boolean;
+ conjunction: string;
+ conditions: (
+ | {
+ component: string;
+ operator: string;
+ value: number;
+ }
+ | {
+ component: string;
+ operator: string;
+ value: string;
+ }
+ )[];
+ };
+ };
+ actions: {
+ name: string;
+ type: string;
+ value: string;
+ }[];
+ }[];
+ type: string;
+ input: boolean;
+ mask?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ mask?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ logic?: undefined;
+ }
+ )[];
export { components_2 as components };
const created_2: string;
export { created_2 as created };
@@ -654,67 +689,73 @@ declare namespace form4 {
export { type_3 as type };
const display_3: string;
export { display_3 as display };
- const components_3: ({
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- tableView: boolean;
- defaultValue: {}[];
- key: string;
- type: string;
- input: boolean;
- components: ({
- label: string;
- mask: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- truncateMultipleSpaces: boolean;
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- } | {
- label: string;
- tableView: boolean;
- key: string;
- conditional: {
- show: boolean;
- conjunction: string;
- conditions: {
- component: string;
- operator: string;
- value: number;
- }[];
- };
- type: string;
- input: boolean;
- mask?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- })[];
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- defaultValue?: undefined;
- components?: undefined;
- })[];
+ const components_3: (
+ | {
+ label: string;
+ reorder: boolean;
+ addAnotherPosition: string;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ tableView: boolean;
+ defaultValue: {}[];
+ key: string;
+ type: string;
+ input: boolean;
+ components: (
+ | {
+ label: string;
+ mask: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ truncateMultipleSpaces: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ conditional: {
+ show: boolean;
+ conjunction: string;
+ conditions: {
+ component: string;
+ operator: string;
+ value: number;
+ }[];
+ };
+ type: string;
+ input: boolean;
+ mask?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ }
+ )[];
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ defaultValue?: undefined;
+ components?: undefined;
+ }
+ )[];
export { components_3 as components };
const created_3: string;
export { created_3 as created };
@@ -734,392 +775,408 @@ declare namespace form5 {
export { type_4 as type };
const display_4: string;
export { display_4 as display };
- const components_4: ({
- label: string;
- tableView: boolean;
- key: string;
- conditional: {
- show: boolean;
- conjunction: string;
- conditions: ({
- component: string;
- operator: string;
- value: string;
- } | {
- component: string;
- operator: string;
- value: number;
- } | {
- component: string;
- operator: string;
- value?: undefined;
- })[];
- };
- type: string;
- input: boolean;
- datePicker?: undefined;
- enableMinDateInput?: undefined;
- enableMaxDateInput?: undefined;
- widget?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- mask?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- data?: undefined;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- autoExpand?: undefined;
- multiple?: undefined;
- showValidations?: undefined;
- } | {
- label: string;
- tableView: boolean;
- datePicker: {
- disableWeekends: boolean;
- disableWeekdays: boolean;
- };
- enableMinDateInput: boolean;
- enableMaxDateInput: boolean;
- key: string;
- type: string;
- input: boolean;
- widget: {
- type: string;
- displayInTimezone: string;
- locale: string;
- useLocaleSettings: boolean;
- allowInput: boolean;
- mode: string;
- enableTime: boolean;
- noCalendar: boolean;
- format: string;
- hourIncrement: number;
- minuteIncrement: number;
- time_24hr: boolean;
- minDate: null;
- disableWeekends: boolean;
- disableWeekdays: boolean;
- maxDate: null;
- };
- conditional?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- mask?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- data?: undefined;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- autoExpand?: undefined;
- multiple?: undefined;
- showValidations?: undefined;
- } | {
- label: string;
- hideInputLabels: boolean;
- inputsLabelPosition: string;
- useLocaleSettings: boolean;
- tableView: boolean;
- fields: {
- day: {
- hide: boolean;
- };
- month: {
- hide: boolean;
- };
- year: {
- hide: boolean;
- };
- };
- key: string;
- type: string;
- input: boolean;
- defaultValue: string;
- conditional?: undefined;
- datePicker?: undefined;
- enableMinDateInput?: undefined;
- enableMaxDateInput?: undefined;
- widget?: undefined;
- mask?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- data?: undefined;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- autoExpand?: undefined;
- multiple?: undefined;
- showValidations?: undefined;
- } | {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- datePicker?: undefined;
- enableMinDateInput?: undefined;
- enableMaxDateInput?: undefined;
- widget?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- mask?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- data?: undefined;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- autoExpand?: undefined;
- multiple?: undefined;
- showValidations?: undefined;
- } | {
- label: string;
- mask: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- truncateMultipleSpaces: boolean;
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- datePicker?: undefined;
- enableMinDateInput?: undefined;
- enableMaxDateInput?: undefined;
- widget?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- data?: undefined;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- autoExpand?: undefined;
- multiple?: undefined;
- showValidations?: undefined;
- } | {
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- currency: string;
- inputFormat: string;
- truncateMultipleSpaces: boolean;
- key: string;
- type: string;
- input: boolean;
- delimiter: boolean;
- conditional?: undefined;
- datePicker?: undefined;
- enableMinDateInput?: undefined;
- enableMaxDateInput?: undefined;
- widget?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- requireDecimal?: undefined;
- data?: undefined;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- autoExpand?: undefined;
- multiple?: undefined;
- showValidations?: undefined;
- } | {
- label: string;
- widget: string;
- tableView: boolean;
- data: {
- values: {
- label: string;
- value: string;
- }[];
- };
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- datePicker?: undefined;
- enableMinDateInput?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- mask?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- autoExpand?: undefined;
- multiple?: undefined;
- showValidations?: undefined;
- } | {
- label: string;
- optionsLabelPosition: string;
- inline: boolean;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- datePicker?: undefined;
- enableMinDateInput?: undefined;
- enableMaxDateInput?: undefined;
- widget?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- mask?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- data?: undefined;
- autoExpand?: undefined;
- multiple?: undefined;
- showValidations?: undefined;
- } | {
- label: string;
- autoExpand: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- datePicker?: undefined;
- enableMinDateInput?: undefined;
- enableMaxDateInput?: undefined;
- widget?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- mask?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- data?: undefined;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- multiple?: undefined;
- showValidations?: undefined;
- } | {
- label: string;
- mask: boolean;
- tableView: boolean;
- multiple: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- truncateMultipleSpaces: boolean;
- key: string;
- type: string;
- input: boolean;
- defaultValue: null[];
- conditional?: undefined;
- datePicker?: undefined;
- enableMinDateInput?: undefined;
- enableMaxDateInput?: undefined;
- widget?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- data?: undefined;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- autoExpand?: undefined;
- showValidations?: undefined;
- } | {
- label: string;
- showValidations: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- datePicker?: undefined;
- enableMinDateInput?: undefined;
- enableMaxDateInput?: undefined;
- widget?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- mask?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- spellcheck?: undefined;
- currency?: undefined;
- data?: undefined;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- autoExpand?: undefined;
- multiple?: undefined;
- })[];
+ const components_4: (
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ conditional: {
+ show: boolean;
+ conjunction: string;
+ conditions: (
+ | {
+ component: string;
+ operator: string;
+ value: string;
+ }
+ | {
+ component: string;
+ operator: string;
+ value: number;
+ }
+ | {
+ component: string;
+ operator: string;
+ value?: undefined;
+ }
+ )[];
+ };
+ type: string;
+ input: boolean;
+ datePicker?: undefined;
+ enableMinDateInput?: undefined;
+ enableMaxDateInput?: undefined;
+ widget?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ mask?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ data?: undefined;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ autoExpand?: undefined;
+ multiple?: undefined;
+ showValidations?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ datePicker: {
+ disableWeekends: boolean;
+ disableWeekdays: boolean;
+ };
+ enableMinDateInput: boolean;
+ enableMaxDateInput: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ widget: {
+ type: string;
+ displayInTimezone: string;
+ locale: string;
+ useLocaleSettings: boolean;
+ allowInput: boolean;
+ mode: string;
+ enableTime: boolean;
+ noCalendar: boolean;
+ format: string;
+ hourIncrement: number;
+ minuteIncrement: number;
+ time_24hr: boolean;
+ minDate: null;
+ disableWeekends: boolean;
+ disableWeekdays: boolean;
+ maxDate: null;
+ };
+ conditional?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ mask?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ data?: undefined;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ autoExpand?: undefined;
+ multiple?: undefined;
+ showValidations?: undefined;
+ }
+ | {
+ label: string;
+ hideInputLabels: boolean;
+ inputsLabelPosition: string;
+ useLocaleSettings: boolean;
+ tableView: boolean;
+ fields: {
+ day: {
+ hide: boolean;
+ };
+ month: {
+ hide: boolean;
+ };
+ year: {
+ hide: boolean;
+ };
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ defaultValue: string;
+ conditional?: undefined;
+ datePicker?: undefined;
+ enableMinDateInput?: undefined;
+ enableMaxDateInput?: undefined;
+ widget?: undefined;
+ mask?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ data?: undefined;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ autoExpand?: undefined;
+ multiple?: undefined;
+ showValidations?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ datePicker?: undefined;
+ enableMinDateInput?: undefined;
+ enableMaxDateInput?: undefined;
+ widget?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ mask?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ data?: undefined;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ autoExpand?: undefined;
+ multiple?: undefined;
+ showValidations?: undefined;
+ }
+ | {
+ label: string;
+ mask: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ truncateMultipleSpaces: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ datePicker?: undefined;
+ enableMinDateInput?: undefined;
+ enableMaxDateInput?: undefined;
+ widget?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ data?: undefined;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ autoExpand?: undefined;
+ multiple?: undefined;
+ showValidations?: undefined;
+ }
+ | {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ currency: string;
+ inputFormat: string;
+ truncateMultipleSpaces: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ delimiter: boolean;
+ conditional?: undefined;
+ datePicker?: undefined;
+ enableMinDateInput?: undefined;
+ enableMaxDateInput?: undefined;
+ widget?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ requireDecimal?: undefined;
+ data?: undefined;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ autoExpand?: undefined;
+ multiple?: undefined;
+ showValidations?: undefined;
+ }
+ | {
+ label: string;
+ widget: string;
+ tableView: boolean;
+ data: {
+ values: {
+ label: string;
+ value: string;
+ }[];
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ datePicker?: undefined;
+ enableMinDateInput?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ mask?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ autoExpand?: undefined;
+ multiple?: undefined;
+ showValidations?: undefined;
+ }
+ | {
+ label: string;
+ optionsLabelPosition: string;
+ inline: boolean;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ datePicker?: undefined;
+ enableMinDateInput?: undefined;
+ enableMaxDateInput?: undefined;
+ widget?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ mask?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ data?: undefined;
+ autoExpand?: undefined;
+ multiple?: undefined;
+ showValidations?: undefined;
+ }
+ | {
+ label: string;
+ autoExpand: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ datePicker?: undefined;
+ enableMinDateInput?: undefined;
+ enableMaxDateInput?: undefined;
+ widget?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ mask?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ data?: undefined;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ multiple?: undefined;
+ showValidations?: undefined;
+ }
+ | {
+ label: string;
+ mask: boolean;
+ tableView: boolean;
+ multiple: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ truncateMultipleSpaces: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ defaultValue: null[];
+ conditional?: undefined;
+ datePicker?: undefined;
+ enableMinDateInput?: undefined;
+ enableMaxDateInput?: undefined;
+ widget?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ data?: undefined;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ autoExpand?: undefined;
+ showValidations?: undefined;
+ }
+ | {
+ label: string;
+ showValidations: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ datePicker?: undefined;
+ enableMinDateInput?: undefined;
+ enableMaxDateInput?: undefined;
+ widget?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ mask?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ spellcheck?: undefined;
+ currency?: undefined;
+ data?: undefined;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ autoExpand?: undefined;
+ multiple?: undefined;
+ }
+ )[];
export { components_4 as components };
const created_4: string;
export { created_4 as created };
diff --git a/test/forms/formsWithNewSimpleConditions.js b/test/forms/formsWithNewSimpleConditions.js
index dee43a8691..c201d727b6 100644
--- a/test/forms/formsWithNewSimpleConditions.js
+++ b/test/forms/formsWithNewSimpleConditions.js
@@ -1,1032 +1,1031 @@
const form1 = {
- title: 'test new simple conditionals',
- name: 'testNewSimpleConditionals',
- path: 'testnewsimpleconditionals',
- type: 'form',
- display: 'form',
- components: [
- {
- label: 'Conditional Field',
- tableView: true,
- key: 'conditionalField',
- conditional: {
- show: true,
- conjunction: 'all',
- conditions: [
- {
- component: 'number',
- operator: 'lessThan',
- value: 100,
- },
- {
- component: 'email',
- operator: 'endsWith',
- value: '@form.io',
- },
- {
- component: 'radio',
- operator: 'isNotEmpty',
- },
- ],
- },
- type: 'textfield',
- input: true,
- },
- {
- label: 'Number',
- mask: false,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- truncateMultipleSpaces: false,
- key: 'number',
- type: 'number',
- input: true,
- },
- {
- label: 'Email',
- tableView: true,
- key: 'email',
- type: 'email',
- input: true,
- },
- {
- label: 'Radio',
- optionsLabelPosition: 'right',
- inline: false,
- tableView: false,
- values: [
+ title: 'test new simple conditionals',
+ name: 'testNewSimpleConditionals',
+ path: 'testnewsimpleconditionals',
+ type: 'form',
+ display: 'form',
+ components: [
{
- label: 'one',
- value: 'one',
- shortcut: '',
+ label: 'Conditional Field',
+ tableView: true,
+ key: 'conditionalField',
+ conditional: {
+ show: true,
+ conjunction: 'all',
+ conditions: [
+ {
+ component: 'number',
+ operator: 'lessThan',
+ value: 100,
+ },
+ {
+ component: 'email',
+ operator: 'endsWith',
+ value: '@form.io',
+ },
+ {
+ component: 'radio',
+ operator: 'isNotEmpty',
+ },
+ ],
+ },
+ type: 'textfield',
+ input: true,
},
{
- label: 'two',
- value: 'two',
- shortcut: '',
+ label: 'Number',
+ mask: false,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ truncateMultipleSpaces: false,
+ key: 'number',
+ type: 'number',
+ input: true,
},
{
- label: 'three',
- value: 'three',
- shortcut: '',
+ label: 'Email',
+ tableView: true,
+ key: 'email',
+ type: 'email',
+ input: true,
},
- ],
- key: 'radio',
- type: 'radio',
- input: true,
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false,
- },
- ],
- created: '2022-09-29T07:59:47.393Z',
- modified: '2022-09-29T08:02:54.472Z',
- machineName: 'uubnbosxacwjzbk:testNewSimpleConditionals',
+ {
+ label: 'Radio',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: false,
+ values: [
+ {
+ label: 'one',
+ value: 'one',
+ shortcut: '',
+ },
+ {
+ label: 'two',
+ value: 'two',
+ shortcut: '',
+ },
+ {
+ label: 'three',
+ value: 'three',
+ shortcut: '',
+ },
+ ],
+ key: 'radio',
+ type: 'radio',
+ input: true,
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ created: '2022-09-29T07:59:47.393Z',
+ modified: '2022-09-29T08:02:54.472Z',
+ machineName: 'uubnbosxacwjzbk:testNewSimpleConditionals',
};
const form2 = {
- title: 'test conditions',
- name: 'testConditions',
- path: 'testconditions',
- type: 'form',
- display: 'form',
- components: [
- {
- label: 'Text Field CONDITIONAL',
- tableView: true,
- key: 'conditionalField',
- conditional: {
- show: true,
- conjunction: 'all',
- conditions: [
- {
- component: 'email',
- operator: 'endsWith',
- value: '@form.io',
- },
- {
- component: 'day',
- operator: 'dateGreaterThan',
- value: '9/20/2022',
- },
- {
- component: 'currency',
- operator: 'greaterThan',
- value: 30,
- },
- {
- component: 'survey',
- operator: 'isNotEmpty',
- },
- {
- component: 'number',
- operator: 'lessThanOrEqual',
- value: 100,
- },
- {
- component: 'checkbox',
- operator: 'isEqual',
- value: true,
- },
- {
- component: 'selectBoxes',
- operator: 'isEqual',
- value: 'one',
- },
- {
- component: 'radio',
- operator: 'isNotEqual',
- value: 'one',
- },
- {
- component: 'tags',
- operator: 'includes',
- value: 'test',
- },
- {
- component: 'selectValues',
- operator: 'isEqual',
- value: 'one',
- },
- {
- component: 'selectCustomWithValuesOfNumberType',
- operator: 'isNotEqual',
- value: 2,
- },
- ],
- },
- type: 'textfield',
- input: true,
- },
- {
- label: 'Email',
- tableView: true,
- key: 'email',
- type: 'email',
- input: true,
- },
- {
- label: 'Day',
- hideInputLabels: false,
- inputsLabelPosition: 'top',
- useLocaleSettings: false,
- tableView: false,
- fields: {
- day: {
- hide: false,
- },
- month: {
- hide: false,
- },
- year: {
- hide: false,
+ title: 'test conditions',
+ name: 'testConditions',
+ path: 'testconditions',
+ type: 'form',
+ display: 'form',
+ components: [
+ {
+ label: 'Text Field CONDITIONAL',
+ tableView: true,
+ key: 'conditionalField',
+ conditional: {
+ show: true,
+ conjunction: 'all',
+ conditions: [
+ {
+ component: 'email',
+ operator: 'endsWith',
+ value: '@form.io',
+ },
+ {
+ component: 'day',
+ operator: 'dateGreaterThan',
+ value: '9/20/2022',
+ },
+ {
+ component: 'currency',
+ operator: 'greaterThan',
+ value: 30,
+ },
+ {
+ component: 'survey',
+ operator: 'isNotEmpty',
+ },
+ {
+ component: 'number',
+ operator: 'lessThanOrEqual',
+ value: 100,
+ },
+ {
+ component: 'checkbox',
+ operator: 'isEqual',
+ value: true,
+ },
+ {
+ component: 'selectBoxes',
+ operator: 'isEqual',
+ value: 'one',
+ },
+ {
+ component: 'radio',
+ operator: 'isNotEqual',
+ value: 'one',
+ },
+ {
+ component: 'tags',
+ operator: 'includes',
+ value: 'test',
+ },
+ {
+ component: 'selectValues',
+ operator: 'isEqual',
+ value: 'one',
+ },
+ {
+ component: 'selectCustomWithValuesOfNumberType',
+ operator: 'isNotEqual',
+ value: 2,
+ },
+ ],
+ },
+ type: 'textfield',
+ input: true,
},
- },
- key: 'day',
- type: 'day',
- input: true,
- },
- {
- label: 'Currency',
- mask: false,
- spellcheck: true,
- tableView: false,
- currency: 'USD',
- inputFormat: 'plain',
- truncateMultipleSpaces: false,
- key: 'currency',
- type: 'currency',
- input: true,
- delimiter: true,
- },
- {
- label: 'Survey',
- tableView: false,
- questions: [
{
- label: 'q1',
- value: 'q1',
- tooltip: '',
+ label: 'Email',
+ tableView: true,
+ key: 'email',
+ type: 'email',
+ input: true,
},
{
- label: 'q2',
- value: 'q2',
- tooltip: '',
+ label: 'Day',
+ hideInputLabels: false,
+ inputsLabelPosition: 'top',
+ useLocaleSettings: false,
+ tableView: false,
+ fields: {
+ day: {
+ hide: false,
+ },
+ month: {
+ hide: false,
+ },
+ year: {
+ hide: false,
+ },
+ },
+ key: 'day',
+ type: 'day',
+ input: true,
},
- ],
- values: [
{
- label: 'true',
- value: 'true',
- tooltip: '',
+ label: 'Currency',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ currency: 'USD',
+ inputFormat: 'plain',
+ truncateMultipleSpaces: false,
+ key: 'currency',
+ type: 'currency',
+ input: true,
+ delimiter: true,
},
{
- label: 'false',
- value: 'false',
- tooltip: '',
+ label: 'Survey',
+ tableView: false,
+ questions: [
+ {
+ label: 'q1',
+ value: 'q1',
+ tooltip: '',
+ },
+ {
+ label: 'q2',
+ value: 'q2',
+ tooltip: '',
+ },
+ ],
+ values: [
+ {
+ label: 'true',
+ value: 'true',
+ tooltip: '',
+ },
+ {
+ label: 'false',
+ value: 'false',
+ tooltip: '',
+ },
+ ],
+ key: 'survey',
+ type: 'survey',
+ input: true,
},
- ],
- key: 'survey',
- type: 'survey',
- input: true,
- },
- {
- label: 'Number',
- mask: false,
- tableView: false,
- multiple: true,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- truncateMultipleSpaces: false,
- key: 'number',
- type: 'number',
- input: true,
- },
- {
- label: 'Checkbox',
- tableView: false,
- key: 'checkbox',
- type: 'checkbox',
- input: true,
- },
- {
- label: 'Select Boxes',
- optionsLabelPosition: 'right',
- tableView: false,
- values: [
{
- label: 'one',
- value: 'one',
- shortcut: '',
+ label: 'Number',
+ mask: false,
+ tableView: false,
+ multiple: true,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ truncateMultipleSpaces: false,
+ key: 'number',
+ type: 'number',
+ input: true,
},
{
- label: 'two',
- value: 'two',
- shortcut: '',
+ label: 'Checkbox',
+ tableView: false,
+ key: 'checkbox',
+ type: 'checkbox',
+ input: true,
},
{
- label: 'three',
- value: 'three',
- shortcut: '',
+ label: 'Select Boxes',
+ optionsLabelPosition: 'right',
+ tableView: false,
+ values: [
+ {
+ label: 'one',
+ value: 'one',
+ shortcut: '',
+ },
+ {
+ label: 'two',
+ value: 'two',
+ shortcut: '',
+ },
+ {
+ label: 'three',
+ value: 'three',
+ shortcut: '',
+ },
+ {
+ label: 'four',
+ value: 'four',
+ shortcut: '',
+ },
+ {
+ label: 'five',
+ value: 'five',
+ shortcut: '',
+ },
+ ],
+ key: 'selectBoxes',
+ type: 'selectboxes',
+ input: true,
+ inputType: 'checkbox',
},
{
- label: 'four',
- value: 'four',
- shortcut: '',
+ label: 'Radio',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: false,
+ values: [
+ {
+ label: 'one',
+ value: 'one',
+ shortcut: '',
+ },
+ {
+ label: 'two',
+ value: 'two',
+ shortcut: '',
+ },
+ {
+ label: 'three',
+ value: 'three',
+ shortcut: '',
+ },
+ ],
+ key: 'radio',
+ type: 'radio',
+ input: true,
},
{
- label: 'five',
- value: 'five',
- shortcut: '',
+ label: 'Tags',
+ tableView: false,
+ key: 'tags',
+ type: 'tags',
+ input: true,
},
- ],
- key: 'selectBoxes',
- type: 'selectboxes',
- input: true,
- inputType: 'checkbox',
- },
- {
- label: 'Radio',
- optionsLabelPosition: 'right',
- inline: false,
- tableView: false,
- values: [
{
- label: 'one',
- value: 'one',
- shortcut: '',
+ label: 'Select Values',
+ widget: 'choicesjs',
+ tableView: true,
+ data: {
+ values: [
+ {
+ label: 'one',
+ value: 'one',
+ },
+ {
+ label: 'two',
+ value: 'two',
+ },
+ {
+ label: 'three',
+ value: 'three',
+ },
+ ],
+ },
+ key: 'selectValues',
+ type: 'select',
+ input: true,
},
{
- label: 'two',
- value: 'two',
- shortcut: '',
+ label: 'Select custom with values of number type',
+ widget: 'choicesjs',
+ tableView: true,
+ dataSrc: 'custom',
+ data: {
+ custom: "values = [ {label: 'one', value: 1}, {label: 'two', value: 2}, {label: 'three', value: 3}]",
+ },
+ dataType: 'boolean',
+ valueProperty: 'value',
+ key: 'selectCustomWithValuesOfNumberType',
+ type: 'select',
+ input: true,
},
{
- label: 'three',
- value: 'three',
- shortcut: '',
+ label: 'Submit',
+ showValidations: false,
+ tableView: false,
+ key: 'submit',
+ type: 'button',
+ input: true,
+ saveOnEnter: false,
},
- ],
- key: 'radio',
- type: 'radio',
- input: true,
- },
- {
- label: 'Tags',
- tableView: false,
- key: 'tags',
- type: 'tags',
- input: true,
- },
- {
- label: 'Select Values',
- widget: 'choicesjs',
- tableView: true,
- data: {
- values: [
- {
- label: 'one',
- value: 'one',
- },
- {
- label: 'two',
- value: 'two',
- },
- {
- label: 'three',
- value: 'three',
- },
- ],
- },
- key: 'selectValues',
- type: 'select',
- input: true,
- },
- {
- label: 'Select custom with values of number type',
- widget: 'choicesjs',
- tableView: true,
- dataSrc: 'custom',
- data: {
- custom:
- "values = [ {label: 'one', value: 1}, {label: 'two', value: 2}, {label: 'three', value: 3}]",
- },
- dataType: 'boolean',
- valueProperty: 'value',
- key: 'selectCustomWithValuesOfNumberType',
- type: 'select',
- input: true,
- },
- {
- label: 'Submit',
- showValidations: false,
- tableView: false,
- key: 'submit',
- type: 'button',
- input: true,
- saveOnEnter: false,
- },
- ],
- created: '2022-09-16T15:10:25.867Z',
- modified: '2022-09-29T08:37:57.247Z',
- machineName: 'uubnbosxacwjzbk:testConditions',
+ ],
+ created: '2022-09-16T15:10:25.867Z',
+ modified: '2022-09-29T08:37:57.247Z',
+ machineName: 'uubnbosxacwjzbk:testConditions',
};
const form3 = {
- title: 'simple conditional logic',
- name: 'simpleConditionalLogic',
- path: 'simpleconditionallogic',
- type: 'form',
- display: 'form',
- components: [
- {
- label: 'Number',
- mask: false,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- truncateMultipleSpaces: false,
- key: 'number',
- type: 'number',
- input: true,
- },
- {
- label: 'Radio',
- optionsLabelPosition: 'right',
- inline: false,
- tableView: false,
- values: [
+ title: 'simple conditional logic',
+ name: 'simpleConditionalLogic',
+ path: 'simpleconditionallogic',
+ type: 'form',
+ display: 'form',
+ components: [
{
- label: 'one',
- value: 'one',
- shortcut: '',
+ label: 'Number',
+ mask: false,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ truncateMultipleSpaces: false,
+ key: 'number',
+ type: 'number',
+ input: true,
},
{
- label: 'two',
- value: 'two',
- shortcut: '',
- },
- {
- label: 'three',
- value: 'three',
- shortcut: '',
- },
- ],
- key: 'radio',
- type: 'radio',
- input: true,
- },
- {
- label: 'Field With Logic',
- tableView: true,
- key: 'fieldWithLogic',
- logic: [
- {
- name: 'test logic',
- trigger: {
- type: 'simple',
- simple: {
- show: true,
- conjunction: 'all',
- conditions: [
+ label: 'Radio',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: false,
+ values: [
{
- component: 'number',
- operator: 'isEqual',
- value: 2,
+ label: 'one',
+ value: 'one',
+ shortcut: '',
},
{
- component: 'radio',
- operator: 'isEqual',
- value: 'two',
+ label: 'two',
+ value: 'two',
+ shortcut: '',
},
- ],
- },
- },
- actions: [
- {
- name: 'test action',
- type: 'value',
- value: "value = 'logic works';",
- },
- ],
+ {
+ label: 'three',
+ value: 'three',
+ shortcut: '',
+ },
+ ],
+ key: 'radio',
+ type: 'radio',
+ input: true,
+ },
+ {
+ label: 'Field With Logic',
+ tableView: true,
+ key: 'fieldWithLogic',
+ logic: [
+ {
+ name: 'test logic',
+ trigger: {
+ type: 'simple',
+ simple: {
+ show: true,
+ conjunction: 'all',
+ conditions: [
+ {
+ component: 'number',
+ operator: 'isEqual',
+ value: 2,
+ },
+ {
+ component: 'radio',
+ operator: 'isEqual',
+ value: 'two',
+ },
+ ],
+ },
+ },
+ actions: [
+ {
+ name: 'test action',
+ type: 'value',
+ value: "value = 'logic works';",
+ },
+ ],
+ },
+ ],
+ type: 'textfield',
+ input: true,
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
},
- ],
- type: 'textfield',
- input: true,
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false,
- },
- ],
- created: '2022-09-29T08:56:20.643Z',
- modified: '2022-09-29T08:56:20.646Z',
- machineName: 'uubnbosxacwjzbk:simpleConditionalLogic',
+ ],
+ created: '2022-09-29T08:56:20.643Z',
+ modified: '2022-09-29T08:56:20.646Z',
+ machineName: 'uubnbosxacwjzbk:simpleConditionalLogic',
};
const form4 = {
- title: 'simple condition inside the row',
- name: 'simpleConditionInsideTheRow',
- path: 'simpleconditioninsidetherow',
- type: 'form',
- display: 'form',
- components: [
- {
- label: 'Data Grid',
- reorder: false,
- addAnotherPosition: 'bottom',
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- tableView: false,
- defaultValue: [{}],
- key: 'dataGrid',
- type: 'datagrid',
- input: true,
- components: [
+ title: 'simple condition inside the row',
+ name: 'simpleConditionInsideTheRow',
+ path: 'simpleconditioninsidetherow',
+ type: 'form',
+ display: 'form',
+ components: [
{
- label: 'Number',
- mask: false,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- truncateMultipleSpaces: false,
- key: 'number',
- type: 'number',
- input: true,
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ tableView: false,
+ defaultValue: [{}],
+ key: 'dataGrid',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Number',
+ mask: false,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ truncateMultipleSpaces: false,
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ conditional: {
+ show: true,
+ conjunction: 'all',
+ conditions: [
+ {
+ component: 'dataGrid.number',
+ operator: 'lessThanOrEqual',
+ value: 50,
+ },
+ ],
+ },
+ type: 'textfield',
+ input: true,
+ },
+ ],
},
{
- label: 'Text Field',
- tableView: true,
- key: 'textField',
- conditional: {
- show: true,
- conjunction: 'all',
- conditions: [
- {
- component: 'dataGrid.number',
- operator: 'lessThanOrEqual',
- value: 50,
- },
- ],
- },
- type: 'textfield',
- input: true,
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
},
- ],
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false,
- },
- ],
- created: '2022-09-29T09:24:20.768Z',
- modified: '2022-09-29T09:24:20.780Z',
- machineName: 'uubnbosxacwjzbk:simpleConditionInsideTheRow',
+ ],
+ created: '2022-09-29T09:24:20.768Z',
+ modified: '2022-09-29T09:24:20.780Z',
+ machineName: 'uubnbosxacwjzbk:simpleConditionInsideTheRow',
};
const form5 = {
- title: 'test all conditional operators',
- name: 'testAllConditionalOperators',
- path: 'testallconditionaloperators',
- type: 'form',
- display: 'form',
- components: [
- {
- label: 'Text Field CONDITIONAL',
- tableView: true,
- key: 'conditionalField',
- conditional: {
- show: true,
- conjunction: 'all',
- conditions: [
- {
- component: 'dateTime',
- operator: 'dateGreaterThan',
- value: '2021-09-16T12:00:00+03:00',
- },
- {
- component: 'day',
- operator: 'dateGreaterThanOrEqual',
- value: '8/12/2022',
- },
- {
- component: 'dateTime1',
- operator: 'dateLessThan',
- value: '2023-01-19T12:00:00+03:00',
- },
- {
- component: 'day1',
- operator: 'dateLessThanOrEqual',
- value: '10/13/2023',
- },
- {
- component: 'url',
- operator: 'endsWith',
- value: '.form.io',
- },
- {
- component: 'number',
- operator: 'greaterThan',
- value: 50,
- },
- {
- component: 'currency',
- operator: 'greaterThanOrEqual',
- value: 100,
- },
- {
- component: 'textField1',
- operator: 'includes',
- value: 'test',
- },
- {
- component: 'day2',
- operator: 'isDateEqual',
- value: '9/29/2022',
- },
- {
- component: 'select',
- operator: 'isEmpty',
- },
- {
- component: 'radio',
- operator: 'isEqual',
- value: 'one',
- },
- {
- component: 'dateTime3',
- operator: 'isNotDateEqual',
- value: '2022-09-29T12:00:00+03:00',
- },
- {
- component: 'textArea',
- operator: 'isNotEmpty',
- },
- {
- component: 'textField2',
- operator: 'isNotEqual',
- value: 'test',
- },
- {
- component: 'number2',
- operator: 'lessThan',
- value: 150,
- },
- {
- component: 'currency2',
- operator: 'lessThanOrEqual',
- value: 500,
- },
- {
- component: 'email',
- operator: 'notIncludes',
- value: 'test',
- },
- {
- component: 'url2',
- operator: 'startsWith',
- value: 'portal',
- },
- ],
- },
- type: 'textfield',
- input: true,
- },
- {
- label: 'Date / Time',
- tableView: false,
- datePicker: {
- disableWeekends: false,
- disableWeekdays: false,
- },
- enableMinDateInput: false,
- enableMaxDateInput: false,
- key: 'dateTime',
- type: 'datetime',
- input: true,
- widget: {
- type: 'calendar',
- displayInTimezone: 'viewer',
- locale: 'en',
- useLocaleSettings: false,
- allowInput: true,
- mode: 'single',
- enableTime: true,
- noCalendar: false,
- format: 'yyyy-MM-dd hh:mm a',
- hourIncrement: 1,
- minuteIncrement: 1,
- time_24hr: false,
- minDate: null,
- disableWeekends: false,
- disableWeekdays: false,
- maxDate: null,
- },
- },
- {
- label: 'Day',
- hideInputLabels: false,
- inputsLabelPosition: 'top',
- useLocaleSettings: false,
- tableView: false,
- fields: {
- day: {
- hide: false,
+ title: 'test all conditional operators',
+ name: 'testAllConditionalOperators',
+ path: 'testallconditionaloperators',
+ type: 'form',
+ display: 'form',
+ components: [
+ {
+ label: 'Text Field CONDITIONAL',
+ tableView: true,
+ key: 'conditionalField',
+ conditional: {
+ show: true,
+ conjunction: 'all',
+ conditions: [
+ {
+ component: 'dateTime',
+ operator: 'dateGreaterThan',
+ value: '2021-09-16T12:00:00+03:00',
+ },
+ {
+ component: 'day',
+ operator: 'dateGreaterThanOrEqual',
+ value: '8/12/2022',
+ },
+ {
+ component: 'dateTime1',
+ operator: 'dateLessThan',
+ value: '2023-01-19T12:00:00+03:00',
+ },
+ {
+ component: 'day1',
+ operator: 'dateLessThanOrEqual',
+ value: '10/13/2023',
+ },
+ {
+ component: 'url',
+ operator: 'endsWith',
+ value: '.form.io',
+ },
+ {
+ component: 'number',
+ operator: 'greaterThan',
+ value: 50,
+ },
+ {
+ component: 'currency',
+ operator: 'greaterThanOrEqual',
+ value: 100,
+ },
+ {
+ component: 'textField1',
+ operator: 'includes',
+ value: 'test',
+ },
+ {
+ component: 'day2',
+ operator: 'isDateEqual',
+ value: '9/29/2022',
+ },
+ {
+ component: 'select',
+ operator: 'isEmpty',
+ },
+ {
+ component: 'radio',
+ operator: 'isEqual',
+ value: 'one',
+ },
+ {
+ component: 'dateTime3',
+ operator: 'isNotDateEqual',
+ value: '2022-09-29T12:00:00+03:00',
+ },
+ {
+ component: 'textArea',
+ operator: 'isNotEmpty',
+ },
+ {
+ component: 'textField2',
+ operator: 'isNotEqual',
+ value: 'test',
+ },
+ {
+ component: 'number2',
+ operator: 'lessThan',
+ value: 150,
+ },
+ {
+ component: 'currency2',
+ operator: 'lessThanOrEqual',
+ value: 500,
+ },
+ {
+ component: 'email',
+ operator: 'notIncludes',
+ value: 'test',
+ },
+ {
+ component: 'url2',
+ operator: 'startsWith',
+ value: 'portal',
+ },
+ ],
+ },
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Date / Time',
+ tableView: false,
+ datePicker: {
+ disableWeekends: false,
+ disableWeekdays: false,
+ },
+ enableMinDateInput: false,
+ enableMaxDateInput: false,
+ key: 'dateTime',
+ type: 'datetime',
+ input: true,
+ widget: {
+ type: 'calendar',
+ displayInTimezone: 'viewer',
+ locale: 'en',
+ useLocaleSettings: false,
+ allowInput: true,
+ mode: 'single',
+ enableTime: true,
+ noCalendar: false,
+ format: 'yyyy-MM-dd hh:mm a',
+ hourIncrement: 1,
+ minuteIncrement: 1,
+ time_24hr: false,
+ minDate: null,
+ disableWeekends: false,
+ disableWeekdays: false,
+ maxDate: null,
+ },
+ },
+ {
+ label: 'Day',
+ hideInputLabels: false,
+ inputsLabelPosition: 'top',
+ useLocaleSettings: false,
+ tableView: false,
+ fields: {
+ day: {
+ hide: false,
+ },
+ month: {
+ hide: false,
+ },
+ year: {
+ hide: false,
+ },
+ },
+ key: 'day',
+ type: 'day',
+ input: true,
+ defaultValue: '00/00/0000',
+ },
+ {
+ label: 'Date / Time1',
+ tableView: false,
+ datePicker: {
+ disableWeekends: false,
+ disableWeekdays: false,
+ },
+ enableMinDateInput: false,
+ enableMaxDateInput: false,
+ key: 'dateTime1',
+ type: 'datetime',
+ input: true,
+ widget: {
+ type: 'calendar',
+ displayInTimezone: 'viewer',
+ locale: 'en',
+ useLocaleSettings: false,
+ allowInput: true,
+ mode: 'single',
+ enableTime: true,
+ noCalendar: false,
+ format: 'yyyy-MM-dd hh:mm a',
+ hourIncrement: 1,
+ minuteIncrement: 1,
+ time_24hr: false,
+ minDate: null,
+ disableWeekends: false,
+ disableWeekdays: false,
+ maxDate: null,
+ },
+ },
+ {
+ label: 'Day1',
+ hideInputLabels: false,
+ inputsLabelPosition: 'top',
+ useLocaleSettings: false,
+ tableView: false,
+ fields: {
+ day: {
+ hide: false,
+ },
+ month: {
+ hide: false,
+ },
+ year: {
+ hide: false,
+ },
+ },
+ key: 'day1',
+ type: 'day',
+ input: true,
+ defaultValue: '00/00/0000',
+ },
+ {
+ label: 'Url',
+ tableView: true,
+ key: 'url',
+ type: 'url',
+ input: true,
+ },
+ {
+ label: 'Number',
+ mask: false,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ truncateMultipleSpaces: false,
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ {
+ label: 'Currency',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ currency: 'USD',
+ inputFormat: 'plain',
+ truncateMultipleSpaces: false,
+ key: 'currency',
+ type: 'currency',
+ input: true,
+ delimiter: true,
},
- month: {
- hide: false,
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField1',
+ type: 'textfield',
+ input: true,
},
- year: {
- hide: false,
+ {
+ label: 'Day2',
+ hideInputLabels: false,
+ inputsLabelPosition: 'top',
+ useLocaleSettings: false,
+ tableView: false,
+ fields: {
+ day: {
+ hide: false,
+ },
+ month: {
+ hide: false,
+ },
+ year: {
+ hide: false,
+ },
+ },
+ key: 'day2',
+ type: 'day',
+ input: true,
+ defaultValue: '00/00/0000',
},
- },
- key: 'day',
- type: 'day',
- input: true,
- defaultValue: '00/00/0000',
- },
- {
- label: 'Date / Time1',
- tableView: false,
- datePicker: {
- disableWeekends: false,
- disableWeekdays: false,
- },
- enableMinDateInput: false,
- enableMaxDateInput: false,
- key: 'dateTime1',
- type: 'datetime',
- input: true,
- widget: {
- type: 'calendar',
- displayInTimezone: 'viewer',
- locale: 'en',
- useLocaleSettings: false,
- allowInput: true,
- mode: 'single',
- enableTime: true,
- noCalendar: false,
- format: 'yyyy-MM-dd hh:mm a',
- hourIncrement: 1,
- minuteIncrement: 1,
- time_24hr: false,
- minDate: null,
- disableWeekends: false,
- disableWeekdays: false,
- maxDate: null,
- },
- },
- {
- label: 'Day1',
- hideInputLabels: false,
- inputsLabelPosition: 'top',
- useLocaleSettings: false,
- tableView: false,
- fields: {
- day: {
- hide: false,
+ {
+ label: 'Select',
+ widget: 'choicesjs',
+ tableView: true,
+ data: {
+ values: [
+ {
+ label: 'one',
+ value: 'one',
+ },
+ {
+ label: 'two',
+ value: 'two',
+ },
+ ],
+ },
+ key: 'select',
+ type: 'select',
+ input: true,
},
- month: {
- hide: false,
+ {
+ label: 'Radio',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: false,
+ values: [
+ {
+ label: 'one',
+ value: 'one',
+ shortcut: '',
+ },
+ {
+ label: 'two',
+ value: 'two',
+ shortcut: '',
+ },
+ ],
+ key: 'radio',
+ type: 'radio',
+ input: true,
},
- year: {
- hide: false,
+ {
+ label: 'Date / Time3',
+ tableView: false,
+ datePicker: {
+ disableWeekends: false,
+ disableWeekdays: false,
+ },
+ enableMinDateInput: false,
+ enableMaxDateInput: false,
+ key: 'dateTime3',
+ type: 'datetime',
+ input: true,
+ widget: {
+ type: 'calendar',
+ displayInTimezone: 'viewer',
+ locale: 'en',
+ useLocaleSettings: false,
+ allowInput: true,
+ mode: 'single',
+ enableTime: true,
+ noCalendar: false,
+ format: 'yyyy-MM-dd hh:mm a',
+ hourIncrement: 1,
+ minuteIncrement: 1,
+ time_24hr: false,
+ minDate: null,
+ disableWeekends: false,
+ disableWeekdays: false,
+ maxDate: null,
+ },
+ },
+ {
+ label: 'Text Area',
+ autoExpand: false,
+ tableView: true,
+ key: 'textArea',
+ type: 'textarea',
+ input: true,
+ },
+ {
+ label: 'Text Field 2',
+ tableView: true,
+ key: 'textField2',
+ type: 'textfield',
+ input: true,
},
- },
- key: 'day1',
- type: 'day',
- input: true,
- defaultValue: '00/00/0000',
- },
- {
- label: 'Url',
- tableView: true,
- key: 'url',
- type: 'url',
- input: true,
- },
- {
- label: 'Number',
- mask: false,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- truncateMultipleSpaces: false,
- key: 'number',
- type: 'number',
- input: true,
- },
- {
- label: 'Currency',
- mask: false,
- spellcheck: true,
- tableView: false,
- currency: 'USD',
- inputFormat: 'plain',
- truncateMultipleSpaces: false,
- key: 'currency',
- type: 'currency',
- input: true,
- delimiter: true,
- },
- {
- label: 'Text Field',
- tableView: true,
- key: 'textField1',
- type: 'textfield',
- input: true,
- },
- {
- label: 'Day2',
- hideInputLabels: false,
- inputsLabelPosition: 'top',
- useLocaleSettings: false,
- tableView: false,
- fields: {
- day: {
- hide: false,
+ {
+ label: 'Number 2',
+ mask: false,
+ tableView: false,
+ multiple: true,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ truncateMultipleSpaces: false,
+ key: 'number2',
+ type: 'number',
+ input: true,
+ defaultValue: [null],
},
- month: {
- hide: false,
+ {
+ label: 'Currency 2',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ currency: 'USD',
+ inputFormat: 'plain',
+ truncateMultipleSpaces: false,
+ key: 'currency2',
+ type: 'currency',
+ input: true,
+ delimiter: true,
},
- year: {
- hide: false,
+ {
+ label: 'Email',
+ tableView: true,
+ key: 'email',
+ type: 'email',
+ input: true,
},
- },
- key: 'day2',
- type: 'day',
- input: true,
- defaultValue: '00/00/0000',
- },
- {
- label: 'Select',
- widget: 'choicesjs',
- tableView: true,
- data: {
- values: [
- {
- label: 'one',
- value: 'one',
- },
- {
- label: 'two',
- value: 'two',
- },
- ],
- },
- key: 'select',
- type: 'select',
- input: true,
- },
- {
- label: 'Radio',
- optionsLabelPosition: 'right',
- inline: false,
- tableView: false,
- values: [
{
- label: 'one',
- value: 'one',
- shortcut: '',
+ label: 'Url2',
+ tableView: true,
+ key: 'url2',
+ type: 'url',
+ input: true,
},
{
- label: 'two',
- value: 'two',
- shortcut: '',
+ label: 'Submit',
+ showValidations: false,
+ tableView: false,
+ key: 'submit',
+ type: 'button',
+ input: true,
},
- ],
- key: 'radio',
- type: 'radio',
- input: true,
- },
- {
- label: 'Date / Time3',
- tableView: false,
- datePicker: {
- disableWeekends: false,
- disableWeekdays: false,
- },
- enableMinDateInput: false,
- enableMaxDateInput: false,
- key: 'dateTime3',
- type: 'datetime',
- input: true,
- widget: {
- type: 'calendar',
- displayInTimezone: 'viewer',
- locale: 'en',
- useLocaleSettings: false,
- allowInput: true,
- mode: 'single',
- enableTime: true,
- noCalendar: false,
- format: 'yyyy-MM-dd hh:mm a',
- hourIncrement: 1,
- minuteIncrement: 1,
- time_24hr: false,
- minDate: null,
- disableWeekends: false,
- disableWeekdays: false,
- maxDate: null,
- },
- },
- {
- label: 'Text Area',
- autoExpand: false,
- tableView: true,
- key: 'textArea',
- type: 'textarea',
- input: true,
- },
- {
- label: 'Text Field 2',
- tableView: true,
- key: 'textField2',
- type: 'textfield',
- input: true,
- },
- {
- label: 'Number 2',
- mask: false,
- tableView: false,
- multiple: true,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- truncateMultipleSpaces: false,
- key: 'number2',
- type: 'number',
- input: true,
- defaultValue: [null],
- },
- {
- label: 'Currency 2',
- mask: false,
- spellcheck: true,
- tableView: false,
- currency: 'USD',
- inputFormat: 'plain',
- truncateMultipleSpaces: false,
- key: 'currency2',
- type: 'currency',
- input: true,
- delimiter: true,
- },
- {
- label: 'Email',
- tableView: true,
- key: 'email',
- type: 'email',
- input: true,
- },
- {
- label: 'Url2',
- tableView: true,
- key: 'url2',
- type: 'url',
- input: true,
- },
- {
- label: 'Submit',
- showValidations: false,
- tableView: false,
- key: 'submit',
- type: 'button',
- input: true,
- },
- ],
- created: '2022-09-29T09:43:53.720Z',
- modified: '2022-09-29T10:13:37.115Z',
- machineName: 'uubnbosxacwjzbk:testAllConditionalOperators',
+ ],
+ created: '2022-09-29T09:43:53.720Z',
+ modified: '2022-09-29T10:13:37.115Z',
+ machineName: 'uubnbosxacwjzbk:testAllConditionalOperators',
};
const form6 = {
- title: 'select boxes cond',
- name: 'selectBoxesCond',
- path: 'selectboxescond',
- type: 'form',
- display: 'form',
- components: [
- {
- label: 'Text Field',
- applyMaskOn: 'change',
- hidden: true,
- tableView: true,
- key: 'textField',
- conditional: {
- show: true,
- conjunction: 'all',
- conditions: [
- {
- component: 'selectBoxes',
- operator: 'isEqual',
- value: '111',
- },
- ],
- },
- type: 'textfield',
- input: true,
- },
- {
- label: 'Select Boxes',
- optionsLabelPosition: 'right',
- tableView: false,
- values: [
+ title: 'select boxes cond',
+ name: 'selectBoxesCond',
+ path: 'selectboxescond',
+ type: 'form',
+ display: 'form',
+ components: [
{
- label: 'test 1',
- value: '111',
- shortcut: '',
+ label: 'Text Field',
+ applyMaskOn: 'change',
+ hidden: true,
+ tableView: true,
+ key: 'textField',
+ conditional: {
+ show: true,
+ conjunction: 'all',
+ conditions: [
+ {
+ component: 'selectBoxes',
+ operator: 'isEqual',
+ value: '111',
+ },
+ ],
+ },
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Select Boxes',
+ optionsLabelPosition: 'right',
+ tableView: false,
+ values: [
+ {
+ label: 'test 1',
+ value: '111',
+ shortcut: '',
+ },
+ {
+ label: 'test 2',
+ value: '222',
+ shortcut: '',
+ },
+ ],
+ key: 'selectBoxes',
+ type: 'selectboxes',
+ input: true,
+ inputType: 'checkbox',
},
{
- label: 'test 2',
- value: '222',
- shortcut: '',
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
},
- ],
- key: 'selectBoxes',
- type: 'selectboxes',
- input: true,
- inputType: 'checkbox',
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false,
- },
- ],
- created: '2023-11-08T12:37:19.452Z',
- modified: '2023-11-09T08:54:09.529Z',
- machineName: 'cpxkpoxmfvhivle:selectBoxesCond',
+ ],
+ created: '2023-11-08T12:37:19.452Z',
+ modified: '2023-11-09T08:54:09.529Z',
+ machineName: 'cpxkpoxmfvhivle:selectBoxesCond',
};
export default {
- form1,
- form2,
- form3,
- form4,
- form5,
- form6
+ form1,
+ form2,
+ form3,
+ form4,
+ form5,
+ form6,
};
diff --git a/test/forms/helpers/testBasicComponentSettings/basicValues.js b/test/forms/helpers/testBasicComponentSettings/basicValues.js
index fa5d4e1f96..53ffa82db3 100644
--- a/test/forms/helpers/testBasicComponentSettings/basicValues.js
+++ b/test/forms/helpers/testBasicComponentSettings/basicValues.js
@@ -1,76 +1,93 @@
-export default {
- form: {
- data: {
- dataGridChild: [
- { textAreaInsideChildDataGrid: "test value in nested form1" },
- { textAreaInsideChildDataGrid: "test value in nested form2" }
+export default {
+ form: {
+ data: {
+ dataGridChild: [
+ { textAreaInsideChildDataGrid: 'test value in nested form1' },
+ { textAreaInsideChildDataGrid: 'test value in nested form2' },
+ ],
+ numberInsideChildPanel: 111111,
+ textFieldChild: 'test value in nested form',
+ timeChild: '11:55:00',
+ },
+ },
+ textField: 'test value',
+ textArea: 'test value',
+ number: 280,
+ password: 'sOm_paSword123',
+ checkbox: true,
+ selectBoxes: { a: true, b: false, c: true },
+ select: 'a',
+ radio: 'b',
+ email: 'user@example.com',
+ url: 'https://portal.form.io',
+ phoneNumber: '(555) 555-5555',
+ tags: 'tag1',
+ address: {
+ address: {
+ county: 'Dallas County',
+ state: 'Texas',
+ country: 'United States',
+ country_code: 'us',
+ },
+ boundingbox: ['32.5453486', '32.9899027', '-97.0383833', '-96.5168819'],
+ class: 'boundary',
+ display_name: 'Dallas County, Texas, United States',
+ icon: 'https://nominatim.openstreetmap.org/ui/mapicons//poi_boundary_administrative.p.20.png',
+ importance: 0.6662149661993487,
+ lat: '32.7620405',
+ licence:
+ 'Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright',
+ lon: '-96.7790069',
+ osm_id: 1837698,
+ osm_type: 'relation',
+ place_id: 256774876,
+ type: 'administrative',
+ },
+ dateTime: '2021-02-03T12:00:00',
+ day: '01/05/2005',
+ time: '04:15:00',
+ currency: 30000,
+ survey: {
+ question1: 'yes',
+ question2: 'no',
+ },
+ signature:
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtEAAACWCAYAAAAYC9T6AAAcO0lEQVR4Xu3df4yV1Z3H8TNRgSjCaIlULMMiLah1wG43+0cVGpPNLhBoRd10KMMfm2yAyEjbsB0quBv2D8ZU0k27ZSho2ewuQ0RLrBEWtKS724LUGmKWGU3bpFQZaGsryjDCBv9gZ/M5j9/hYebO3Hvn/jrnue8nMTPO3Ps853mdhzufe+73nKfh4sV3BxwbAggggAACCCCAAAIIFCzQQIgu2IoHIoAAAggggAACCCDgBQjRXAgIIIAAAggggAACCBQpQIguEoyHI4AAAggggAACCCBAiOYaQAABBBBAAAEEEECgSAFCdJFgPBwBBBBAAAEEEEAAAUI01wACCCCAAAIIIIAAAkUKEKKLBOPhCCCAAAIIIIAAAggQorkGEEAAAQQQQAABBBAoUoAQXSQYD0cAAQQQQAABBBBAgBDNNYAAAggggAACCCCAQJEChOgiwXg4AggggAACCCCAAAKEaK4BBBBAAAEEEEAAAQSKFCBEFwnGwxFAAAEEEEAAAQQQIERzDSCAAAIIIIAAAgggUKQAIbpIMB6OAAIIIIAAAggggAAhmmsAAQQQQAABBMoicOrUab+f3t5eN3nyZHfqVK9raGgY3Ld+NnnyJDd37t1lOR47QaCWAoToWupzbAQQQAABBGokcP78eR909bWvr981Nk7yLenufsM1NTVdFYb1mO7uN30A1n96jP5TGNZX/f7IkWNuyZJFfp8WorUT/c42heze3tP+MW1tq93GjV+v0dlzWARKFyBEl27IHhBAAAEEEChZQAFTgdNCp0KrhVCN6J4/3+/6+q4E0iu/O+0DsJ4/adIk19/f75/X1DTdB17bGhsn+28VYC0Az59/rz/e/v0HXVvbGv/7rq5nXGvrcv+9fr506WK/H+1/xozpbsaMJv8c7Uf/b/ssFEDP3b17r9uw4XH3la+sdR0dmwt9Ko9DICgBQnRQ3UFjEEAAAQSyImBh2EocdF4Kw0ePHnMDAwP+NDUCnB6p1c8UTDUSrJ8rsCrApgOwhVYLsLF6NTf/ubvhhuvdq6/+d6ynQLvrXIAQXecXAKePAAIIIFC4gAVehV+VJfT19fmAq6Dc3d3jR231/ZYtT7pNm9r9jn/601fc0qWLfCBWiE6C8ZVR3MKPnq1H3nnnnzqNhD/11HezdWKcTd0IEKLrpqs5UQQQQACBkQRstFghuafnDaeBYiud0M/0+yNHXnFr164eHBVWIFZNsIViPY4Jc4VdY+3tm1xn51PupZde8EGaDYEYBQjRMfYabUYAAQQQyCuQrjFWILb/1xMtGNvIsJVGWBnFggX3Dk6uU72xRo7ZyiPQ1bXXrV79qJ9UaKP15dkze0GgugKE6Op6czQEEEAAgRIELPxqkp2tCmE/U1BWeYV+pxFh/Vyh2EaHbVKcDk85RQmdUMJTVebS0bHVrVjRQhlHCY48NQwBQnQY/UArEEAAgboWyBWONUpsZRb6XpuNGFsJgMLwvHnJmsMKzLFPtsvqRaB+1OjziRM9fmk7RqCz2tP1dV6E6Prqb84WAQQQqImArQ9so8cWkBWe335bk+2m+1pjjRono8RJINb31BnXpMvKdlAr39Dye8899+/UQJdNlh3VWoAQXese4PgIIIBABgQUjhWMe3vP+BttnDjxhj8r/UxLtKVDMQE5Ax1ewCloImZ7++O+7EY3YdEqHNSWFwDHQ6IRIERH01U0FAEEEKidgE3Ks6CsgKT6Y/08XXOskgqVV+grE/Jq11+1PLKuDa28oRu1NDd/2m3duoXR51p2CMeumAAhumK07BgBBBCIS8BKLTRBz27rrNCsMgubiGchmTKLuPq2Gq3VNdPZudPt33/If/qg5QBV/8yGQFYFCNFZ7VnOCwEEEMghkNQm9/o1kJMVLnr8zUC0pJs2m5yXLrkAEoHRBDTyvGXLVv/GS+FZN5bRxEFKN7husi5AiM56D3N+CCBQdwKarNfd/ebgcm8CUFDWltwcZLr/nqBcd5dG2U5Y19iRI8f8nRkVnlW2obs1trYuZ4WUsimzo9AFCNGh9xDtQwABBIYI2K2nFZSdG/C/Vf2pRpkVZLSpDCN9wxCWfuMyKoeAAnNX1zPuwIFD/nrTihsadV65soWR53IAs4+oBAjRUXUXjUUAgXoTsNpkhWCFlm3bdri2tjWDQVmh2QIyH5/X29VR2PnmWoNbz7Q3Y7YXlfio/r2xsdEN6L7nH23jx49zJ0++5Ueef/Obt/xPb7nlFrd+/TpqngvrAh6VUQFCdEY7ltNCAIE4BOxmIqpNVo2y1tRNloSbPnjbaX0/d26zPyFGlOPo12q30kp4kq/JcoO6tlSvXOw2YcIEd+nSpYKeZhNM9amHSoW0lB0bAvUiQIiul57mPBFAoGYCNhLY0/OG6+vrd6dOnfJfNcHPbi6irxoF5K57Neumih5YwVabQqf63bmGvMdLjxTbNTRlysfc2bPv+aCskWPty96I5dphU9P0wTdkdttzvUnTtWbtST/v9df/xx0+/J/u+PHX3Zkzv/W/0qjzZz97j5sz51Pu+uuv9yPYOqaCek+PSoqubDo/TSzcuLGdN3x5e5gHxC5AiI69B2k/AggEI2CjgL29p/1EPo0s/+QnR/26yQoXulW1fc9d+ILptpIaohIHbTbiW2i4HetBFYB1XdmmCX3pN1+2FKEmjRZ6janNOg/VOlvY1/61b5UO6bod7RMQPUfXu56fDtUtLX/tdu3aPtZT5XkIBC9AiA6+i2ggAgiEKKDgoJFlfdXd+TQiqElWKrtIyi+0CkbhQSbEc6RNiYCNvCpoWtmNvo42AlyqnY0gp9fnVli+555md+ONGkmeVNJEPl23mhyo4Js+D13DmiSoWnuF52I3vZnYsOHv3YkTPf6pTzzxj27dukeK3Q2PRyAKAUJ0FN1EIxFAoFYCtpSXTfBTeNKcKwXlZIQuCcqFjvrV6jw4bmECQ98cqbzh4sWLhT05x6MUSvXpg20Wim0SqK4fK68Y+rsxHzTHExWUjx59xY8Y62Yo6VIRtVE1za2tLf7rWCeofvDBB2737mfcz372c/f88y/6Vuzbt8ctWvSX5TwV9oVAMAKE6GC6goYggECtBWxyVvLx9it+1FEBw4KyLRnH5L5a91R5j6/lATUqOzRc5juKBWSbXKevVq5jgTjfPir1e42a69MRhWZdy7lGzVesSEKzapjHGpyt/d/73tNu165/c7/4xa/8j7TCx5IlC93Ond+t1CmyXwRqLkCIrnkX0AAEEKiVgNWCKizr+7ffTtZW1qiyfS01XNTq3Dju6AIKlXv27B1WzpDrWZMm3egWLLhvcIKegnIIE0AVlK8sX3feB+bRJhqqxlnXtT5BsfXES71Oduz4vlu//rGrdtPRsdnNnv0pRqBLxeX5wQsQooPvIhqIAALlELBJf7pBiUbmNOFPgcLKMkr5GLsc7WMf1RHQm6XOzp1+KcGRNo0wK2Sm30xVp3VXHyW9qouthqGvOoehazwPbZ+VaFTq+la5xmOP/cPgCh46/sSJE923vvWEW7jwL9yUKVNqQcYxEaiqACG6qtwcDAEEqiWgsKFROX1Mr0lO+n+NwCkYaSRxLJOmqtV2jlNeAQXOrq5nXWfnjhEnA1pwbmtbXZP6dl2fNlE134iydJIyo+l+ZQ5bJtFu427/P5qirSaiEXVt+rei4HvnnXOGPU2hfdq0j7ve3jPupZcOD5aIpB+of09dXd8nPJf30mVvgQsQogPvIJqHAAL5BRSStO6y1TErkFidqt2ohDrm/I5ZeoSuCatzVs3zSJtWwdCEOoXnapXuJKPJPe7dd8+65557PufIsi1dN9o64vZGUWtOp0entX6zlsHTOtI2Ym2j2jrHCxcuuMuXL+ck+cxn5rn333+/4JVHZs6c4b785S+5jRu/nqXLh3NBoCABQnRBTDwIAQRCE7B6Zt24RGEivaScAnO1AlFoLvXenh/96Mfu2Wf3ub17941KYWsgK0BXclN4TUaWz1z1Jk/HVGCdOPGGj1Z3afardNgSiUko7vch2AKyrnMF40LKOSp5TrbvBx/8gtu8eZObNev2ahyOYyAQnAAhOrguoUEIIDBUwEYVz50773+lEGFrMVPLzPWi+uaXXz7sfve7d9yrr742Ioitgdzauryokg27/hSGbfR36GoXthqHQvGFCxf9aK+u13Pnzg22Z+rUW5z+U9nF7NmfdLq9tvb9zjt/dH/4wx8/upOhK3gUuJCet7IPPValH2pnX1+fu3z5/9y1115b8DEV+K+55hp/Xg899IBraXnY3X77zEKawGMQyKwAITqzXcuJIRCngH38rBrWgYEB/4dfH32rdlOTvUq9yUScKrQ6l0BHx1a/LrHuEDnapqXctIzbWFakWLXqUbdv3w/dhx9+WLFOGD9+fN79Kwzr34KVJeVab9p+V0hNdK6TUTmUJgfefPPNfuUSbfPnfy6IlUgqhs+OEShBgBBdAh5PRQCB0gXso2l9TN3Z+ZSvT9Wm/1fooZa5dOOs7UElPHfd9Wc5T2vcuHHuuuuu8xPkVO88c+afuAkTxg8+VteTTaa7soMBP0J7ZcWLBv+rXbv+1f3gBz/033/iE9PcuHHjffmFRpdPn/7tsOPfddcd/lbZc+bM9iPdemxSl5zcplvfa1MYtk3t0QivapTVhnQZEm8Ys3blcj5ZEyBEZ61HOR8EAhdQaNbEp2SpMYXmL/k60HQ9aOCnQPNqLLBp02b37W935myFRmz7+5PQWs5NpReXLl3yu1RQvrISRnKbd1Z7Kac2+0IgDgFCdBz9RCsRiFJAdaPJ3dJ6/Ufuql1du3bV4OSpsX7sHCUGjS6bwNmzZ93ixQ/6Eog1a/7WTZ061f3yl79yq1b9ja8vtjpkG/kdulKFGqI3cdqGrresUWqNAGvTfr/znU733nvvuwceWOKWLfuCe/jhZWU7D3aEAAJxCxCi4+4/Wo9AUAK6g5pCsyZgKaSopllrMi9Zspi1mYPqKRpTjMD99y9yr7123Gk1imXLvujuv3+Bu+mmxmJ2wWMRQCCDAoToDHYqp4RANQQUknVzCFuxwG7eoIlIdlMTVs6oRk9wjEoL6O58Tz/9L/5a16brW3fl++pX2yp9aPaPAAIBCxCiA+4cmoZAKAK2Vq1Gmm2U2T4Gt9CswExdaCg9RjsqIaDVQLZseXJw17fdNs197WttfqLg4sV/xdrklUBnnwgELECIDrhzaBoCtRJQLfPRo0lJhoVmawuhuVa9wnFDEDh+/HX3zW/+kzt48OVhzdFqMlpKb8mSRQTqEDqLNiBQYQFCdIWB2T0CMQhYaN6//5Bfkzl9IwkFAo0wa6RZEwHZEEDAuRdf/A939ux77tFH1+fk0FKNCtX698OGAALZFCBEZ7NfOSsERhVI1zMrOKdXKNAffYVlyjO4iBDIL3Ds2M/9Ch76xCbX0npa99lu9EKgzu/JIxCISYAQHVNv0VYExiigkWVNAty//+BHS85ducMb5RljROVpCKQE9G9M/766up5xPT1v5rQhUHPJIJAtAUJ0tvqTs0HAC2hkeehyc0ajG0XYKDOrZ3DBIFB+AQJ1+U3ZIwIhChCiQ+wV2oTAGARUoqHgbKPNtgvdwU21mRacuY32GHB5CgJjFFCg7uzc4VQ2pRsO5drSI9T6ZCh96+8xHpanIYBAFQQI0VVA5hAIVEpgz569vhYzuSvg8BINhWcmA1ZKn/0iUJyA3uiq3GO0QK092iof9913r7+lOBsCCIQpQIgOs19oFQI5BRSUDxw4NGy0ualpul9BQxOYKNHg4kEgfIFCSj50FjbJV3f91Cg1GwIIhCNAiA6nL2gJAsMErLY514RA1TYnI1aMNnPpIBCzgAVqfaKkN8kjbSrz0JtkvVlmlDrmHqftWREgRGelJzmPzAjYms27d+/1ZRq2pWub9UeUusnMdDkngsCggN44q0RLJR/69z9SHbWeoFIPvYnWp1DUUnMRIVB9AUJ09c05IgLDBPTHUpMCVS9JbTMXCAIImIDdNVSvESOtRW2PtZsi2VrvKCKAQGUFCNGV9WXvCOQUSJdppG92otHm5OPaZHSJSUVcQAggkBZQmD5xQivxUPrBlYFArQUI0bXuAY5fNwIaYU6vpmEnbus2t7YuZyWNurkaOFEEyiNgI9XJEpcjl3+k70LKnRPLY89eECBEcw0gUEEBTRLSHzdNDNRXbVpJQ3/QNNK8cmULtc0V9GfXCNSbgNVU6/XGAnau25GzjF69XRmcbyUECNGVUGWfdStgf7h0i+1t23YOOqhMo61ttS/VUIBmUmDdXiKcOAJVF8g3Wq3XpPQExao3kAMiEKkAITrSjqPZYQho1Ce5gcJe/1X/3Xrrx93Fi//r5s2726lEg9rmMPqKViCAQCJgr1uaqGivW7YKiK34oZKPpqYm5mVw0SAwigAhmssDgSIFRrrhiXazYkWLe+ihL7o77pjDH58iXXk4AgjUTkBh+tSpXr+0Xnd3z+AqQZ///H1u3bpH3G23TeM1rXbdw5EDFSBEB9oxNCssAf2B0aRA1Tanl6Cz1TRaW1v8x6FsCCCAQBYE9DqnEWstu+lcgw/YKlPbuLHdh2lGqbPQy5xDqQKE6FIFeX5mBfRHZPv2ncOCs05YH3XaxBzqmzN7CXBiCCCQEtDqHzZJWq+PjY3JHRS5JTmXSb0KEKLrtec575wCGnnRihqaFGiradgDtRSdapwVnlm/mQsIAQTqWcBWAUmC9SF/Z0XN/9BcEH1tbr6b18l6vkDq5NwJ0XXS0Zzm6AIKzJ2dGnU+5D/CtM1uta2VNTSDnQ0BBBBAYLiARqbtroq2XrWVfWi0WsF67txPszIRF0+mBAjRmepOTqZYAdU5796917/4pzeNOre1rXFLly7iRb9YVB6PAAJ1L2ChWpMUtQpIT8+b3kTBOgnUzW7+/M8xOFH3V0rcAITouPuP1o9BQCPNnZ1P+Qkz6UmC2pVqnTXqrBd5NgQQQACB8gjodVevt6qptluX6yYwmlNi6+frdVfBmg2BWAQI0bH0FO0sWeDIkWM+OGtN5/RmN0JReGaSYMnM7AABBBAoSCBXCYieqDCdTFhcxEh1QZI8qFYChOhayXPcqgjkmyiokg0tT8eGAAIIIFBbgXSo1oi1Rqo1F0X/JYG6mcmKte0ijj5EgBDNJZFJAVvXWfXO6YmCOlndEIWJgpnsdk4KAQQyJGC3K7cJiwrVGqVuaXnYzZo1k7K7DPV1rKdCiI6152j3MAG90B4+/F/uhRdedCdPvnXV75uapru1a1e7lStbKNng2kEAAQQiE7Caai0/+vvfv+N+/euTflm9TZvanSaCM0odWYdmpLmE6Ix0ZD2ehj76O3o0WaNUs7+HjjjbqLOCMxMF6/EK4ZwRQCCrAnq91yeNNkG8oaHBl31oHX+VfrCWf1Z7PqzzIkSH1R+0ZhQBq29WYNao89CVNeypN93U6L7xjb/zJRtsCCCAAALZFrBaatVR62ZZ2hSiFagfeWQ1gTrb3V/TsyNE15Sfg+cTUHDu6nrWjzYMvYPg0OdSspFPk98jgAAC2RbQ3wx9OpkO1Bqh1qCKRqhZgSnb/V/tsyNEV1uc4xUkoJFmreWsF8J8m8Kz6uK4MUo+KX6PAAII1JeAljTdtm3H4M1eNDqtvxWaYM6GQKkChOhSBXl+WQUUmjs6tuYdddZBtSh/a+tylqgraw+wMwQQQCB7Air56Ozc4UepNSFRI9IK05pwrpFqNgTGIkCIHosazym7gEo12tsfH3b77aEH0o1RNJLAEnVl7wJ2iAACCNSFgAZrFKb37EluvKX6aQ3IaHSaCYl1cQmU7SQJ0WWjZEdjEdDowIYNj+ct26DeeSy6PAcBBBBAYCQBW+HjwAHdivzY4C3ItZrT2rWrgEMgrwAhOi8RD6iUgNb73L5954irbOi4Wv8zqXdeXKlmsF8EEEAAgToX0KehyQj1QV8/rXKPnTv/mb89dX5d5Dt9QnQ+IX5fEQGNAEyb9skR9014rgg7O0UAAQQQyCOgie1ag1oDOJR3cLmMJkCI5vqoiYBepBYufGDYsSnbqEl3cFAEEEAAAQQQKFKAEF0kGA8vn8Ctt85y/f39foeaMKg7Cz755JbyHYA9IYAAAggggAACFRIgRFcIlt3mF1ANmm6iok0zo1lmKL8Zj0AAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISOD/AYTV/3TCUQtkAAAAAElFTkSuQmCC',
+ columns: { numberColumn: 1111, textFieldColumn: 'value' },
+ fieldset: { numberFieldset: 222222 },
+ panel: { numberPanel: 66666 },
+ table: {
+ selectTable: 'one',
+ checkboxTable: true,
+ dateTimeTable: '2031-02-03T05:00:00',
+ currencyTable: 4000,
+ },
+ tabs: { numberTab: 123456, textFieldTab: 'value' },
+ well: { textFieldWell: 'value' },
+ hidden: 'hidden value',
+ container: { textFieldContainer: 'value1' },
+ dataMap: { key: 'value1', key1: 'value2' },
+ dataGrid: [
+ { textFieldDataGrid: 'value1' },
+ { textFieldDataGrid: 'value2' },
+ ],
+ editGrid: [
+ { textFieldEditGrid: 'value1' },
+ { textFieldEditGrid: 'value2' },
],
- numberInsideChildPanel: 111111,
- textFieldChild: "test value in nested form",
- timeChild: "11:55:00",
+ tree: {
+ children: [{ children: [], data: { textFieldTree: 'value2' } }],
+ data: { textFieldTree: 'value1' },
},
- },
- textField: 'test value',
- textArea: 'test value',
- number: 280,
- password: 'sOm_paSword123',
- checkbox: true,
- selectBoxes: { a: true, b: false, c: true },
- select: 'a',
- radio: 'b',
- email: 'user@example.com',
- url: 'https://portal.form.io',
- phoneNumber: '(555) 555-5555',
- tags: 'tag1',
- address: {
- address: { county: 'Dallas County', state: 'Texas', country: 'United States', country_code: 'us' },
- boundingbox: ['32.5453486', '32.9899027', '-97.0383833', '-96.5168819'],
- class: 'boundary',
- display_name: 'Dallas County, Texas, United States',
- icon: 'https://nominatim.openstreetmap.org/ui/mapicons//poi_boundary_administrative.p.20.png',
- importance: 0.6662149661993487,
- lat: '32.7620405',
- licence: 'Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright',
- lon: '-96.7790069',
- osm_id: 1837698,
- osm_type: 'relation',
- place_id: 256774876,
- type: 'administrative',
- },
- dateTime: '2021-02-03T12:00:00',
- day: '01/05/2005',
- time: '04:15:00',
- currency: 30000,
- survey: {
- question1: 'yes',
- question2: 'no'
- },
- signature: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtEAAACWCAYAAAAYC9T6AAAcO0lEQVR4Xu3df4yV1Z3H8TNRgSjCaIlULMMiLah1wG43+0cVGpPNLhBoRd10KMMfm2yAyEjbsB0quBv2D8ZU0k27ZSho2ewuQ0RLrBEWtKS724LUGmKWGU3bpFQZaGsryjDCBv9gZ/M5j9/hYebO3Hvn/jrnue8nMTPO3Ps853mdhzufe+73nKfh4sV3BxwbAggggAACCCCAAAIIFCzQQIgu2IoHIoAAAggggAACCCDgBQjRXAgIIIAAAggggAACCBQpQIguEoyHI4AAAggggAACCCBAiOYaQAABBBBAAAEEEECgSAFCdJFgPBwBBBBAAAEEEEAAAUI01wACCCCAAAIIIIAAAkUKEKKLBOPhCCCAAAIIIIAAAggQorkGEEAAAQQQQAABBBAoUoAQXSQYD0cAAQQQQAABBBBAgBDNNYAAAggggAACCCCAQJEChOgiwXg4AggggAACCCCAAAKEaK4BBBBAAAEEEEAAAQSKFCBEFwnGwxFAAAEEEEAAAQQQIERzDSCAAAIIIIAAAgggUKQAIbpIMB6OAAIIIIAAAggggAAhmmsAAQQQQAABBMoicOrUab+f3t5eN3nyZHfqVK9raGgY3Ld+NnnyJDd37t1lOR47QaCWAoToWupzbAQQQAABBGokcP78eR909bWvr981Nk7yLenufsM1NTVdFYb1mO7uN30A1n96jP5TGNZX/f7IkWNuyZJFfp8WorUT/c42heze3tP+MW1tq93GjV+v0dlzWARKFyBEl27IHhBAAAEEEChZQAFTgdNCp0KrhVCN6J4/3+/6+q4E0iu/O+0DsJ4/adIk19/f75/X1DTdB17bGhsn+28VYC0Az59/rz/e/v0HXVvbGv/7rq5nXGvrcv+9fr506WK/H+1/xozpbsaMJv8c7Uf/b/ssFEDP3b17r9uw4XH3la+sdR0dmwt9Ko9DICgBQnRQ3UFjEEAAAQSyImBh2EocdF4Kw0ePHnMDAwP+NDUCnB6p1c8UTDUSrJ8rsCrApgOwhVYLsLF6NTf/ubvhhuvdq6/+d6ynQLvrXIAQXecXAKePAAIIIFC4gAVehV+VJfT19fmAq6Dc3d3jR231/ZYtT7pNm9r9jn/601fc0qWLfCBWiE6C8ZVR3MKPnq1H3nnnnzqNhD/11HezdWKcTd0IEKLrpqs5UQQQQACBkQRstFghuafnDaeBYiud0M/0+yNHXnFr164eHBVWIFZNsIViPY4Jc4VdY+3tm1xn51PupZde8EGaDYEYBQjRMfYabUYAAQQQyCuQrjFWILb/1xMtGNvIsJVGWBnFggX3Dk6uU72xRo7ZyiPQ1bXXrV79qJ9UaKP15dkze0GgugKE6Op6czQEEEAAgRIELPxqkp2tCmE/U1BWeYV+pxFh/Vyh2EaHbVKcDk85RQmdUMJTVebS0bHVrVjRQhlHCY48NQwBQnQY/UArEEAAgboWyBWONUpsZRb6XpuNGFsJgMLwvHnJmsMKzLFPtsvqRaB+1OjziRM9fmk7RqCz2tP1dV6E6Prqb84WAQQQqImArQ9so8cWkBWe335bk+2m+1pjjRono8RJINb31BnXpMvKdlAr39Dye8899+/UQJdNlh3VWoAQXese4PgIIIBABgQUjhWMe3vP+BttnDjxhj8r/UxLtKVDMQE5Ax1ewCloImZ7++O+7EY3YdEqHNSWFwDHQ6IRIERH01U0FAEEEKidgE3Ks6CsgKT6Y/08XXOskgqVV+grE/Jq11+1PLKuDa28oRu1NDd/2m3duoXR51p2CMeumAAhumK07BgBBBCIS8BKLTRBz27rrNCsMgubiGchmTKLuPq2Gq3VNdPZudPt33/If/qg5QBV/8yGQFYFCNFZ7VnOCwEEEMghkNQm9/o1kJMVLnr8zUC0pJs2m5yXLrkAEoHRBDTyvGXLVv/GS+FZN5bRxEFKN7husi5AiM56D3N+CCBQdwKarNfd/ebgcm8CUFDWltwcZLr/nqBcd5dG2U5Y19iRI8f8nRkVnlW2obs1trYuZ4WUsimzo9AFCNGh9xDtQwABBIYI2K2nFZSdG/C/Vf2pRpkVZLSpDCN9wxCWfuMyKoeAAnNX1zPuwIFD/nrTihsadV65soWR53IAs4+oBAjRUXUXjUUAgXoTsNpkhWCFlm3bdri2tjWDQVmh2QIyH5/X29VR2PnmWoNbz7Q3Y7YXlfio/r2xsdEN6L7nH23jx49zJ0++5Ueef/Obt/xPb7nlFrd+/TpqngvrAh6VUQFCdEY7ltNCAIE4BOxmIqpNVo2y1tRNloSbPnjbaX0/d26zPyFGlOPo12q30kp4kq/JcoO6tlSvXOw2YcIEd+nSpYKeZhNM9amHSoW0lB0bAvUiQIiul57mPBFAoGYCNhLY0/OG6+vrd6dOnfJfNcHPbi6irxoF5K57Neumih5YwVabQqf63bmGvMdLjxTbNTRlysfc2bPv+aCskWPty96I5dphU9P0wTdkdttzvUnTtWbtST/v9df/xx0+/J/u+PHX3Zkzv/W/0qjzZz97j5sz51Pu+uuv9yPYOqaCek+PSoqubDo/TSzcuLGdN3x5e5gHxC5AiI69B2k/AggEI2CjgL29p/1EPo0s/+QnR/26yQoXulW1fc9d+ILptpIaohIHbTbiW2i4HetBFYB1XdmmCX3pN1+2FKEmjRZ6janNOg/VOlvY1/61b5UO6bod7RMQPUfXu56fDtUtLX/tdu3aPtZT5XkIBC9AiA6+i2ggAgiEKKDgoJFlfdXd+TQiqElWKrtIyi+0CkbhQSbEc6RNiYCNvCpoWtmNvo42AlyqnY0gp9fnVli+555md+ONGkmeVNJEPl23mhyo4Js+D13DmiSoWnuF52I3vZnYsOHv3YkTPf6pTzzxj27dukeK3Q2PRyAKAUJ0FN1EIxFAoFYCtpSXTfBTeNKcKwXlZIQuCcqFjvrV6jw4bmECQ98cqbzh4sWLhT05x6MUSvXpg20Wim0SqK4fK68Y+rsxHzTHExWUjx59xY8Y62Yo6VIRtVE1za2tLf7rWCeofvDBB2737mfcz372c/f88y/6Vuzbt8ctWvSX5TwV9oVAMAKE6GC6goYggECtBWxyVvLx9it+1FEBw4KyLRnH5L5a91R5j6/lATUqOzRc5juKBWSbXKevVq5jgTjfPir1e42a69MRhWZdy7lGzVesSEKzapjHGpyt/d/73tNu165/c7/4xa/8j7TCx5IlC93Ond+t1CmyXwRqLkCIrnkX0AAEEKiVgNWCKizr+7ffTtZW1qiyfS01XNTq3Dju6AIKlXv27B1WzpDrWZMm3egWLLhvcIKegnIIE0AVlK8sX3feB+bRJhqqxlnXtT5BsfXES71Oduz4vlu//rGrdtPRsdnNnv0pRqBLxeX5wQsQooPvIhqIAALlELBJf7pBiUbmNOFPgcLKMkr5GLsc7WMf1RHQm6XOzp1+KcGRNo0wK2Sm30xVp3VXHyW9qouthqGvOoehazwPbZ+VaFTq+la5xmOP/cPgCh46/sSJE923vvWEW7jwL9yUKVNqQcYxEaiqACG6qtwcDAEEqiWgsKFROX1Mr0lO+n+NwCkYaSRxLJOmqtV2jlNeAQXOrq5nXWfnjhEnA1pwbmtbXZP6dl2fNlE134iydJIyo+l+ZQ5bJtFu427/P5qirSaiEXVt+rei4HvnnXOGPU2hfdq0j7ve3jPupZcOD5aIpB+of09dXd8nPJf30mVvgQsQogPvIJqHAAL5BRSStO6y1TErkFidqt2ohDrm/I5ZeoSuCatzVs3zSJtWwdCEOoXnapXuJKPJPe7dd8+65557PufIsi1dN9o64vZGUWtOp0entX6zlsHTOtI2Ym2j2jrHCxcuuMuXL+ck+cxn5rn333+/4JVHZs6c4b785S+5jRu/nqXLh3NBoCABQnRBTDwIAQRCE7B6Zt24RGEivaScAnO1AlFoLvXenh/96Mfu2Wf3ub17941KYWsgK0BXclN4TUaWz1z1Jk/HVGCdOPGGj1Z3afardNgSiUko7vch2AKyrnMF40LKOSp5TrbvBx/8gtu8eZObNev2ahyOYyAQnAAhOrguoUEIIDBUwEYVz50773+lEGFrMVPLzPWi+uaXXz7sfve7d9yrr742Ioitgdzauryokg27/hSGbfR36GoXthqHQvGFCxf9aK+u13Pnzg22Z+rUW5z+U9nF7NmfdLq9tvb9zjt/dH/4wx8/upOhK3gUuJCet7IPPValH2pnX1+fu3z5/9y1115b8DEV+K+55hp/Xg899IBraXnY3X77zEKawGMQyKwAITqzXcuJIRCngH38rBrWgYEB/4dfH32rdlOTvUq9yUScKrQ6l0BHx1a/LrHuEDnapqXctIzbWFakWLXqUbdv3w/dhx9+WLFOGD9+fN79Kwzr34KVJeVab9p+V0hNdK6TUTmUJgfefPPNfuUSbfPnfy6IlUgqhs+OEShBgBBdAh5PRQCB0gXso2l9TN3Z+ZSvT9Wm/1fooZa5dOOs7UElPHfd9Wc5T2vcuHHuuuuu8xPkVO88c+afuAkTxg8+VteTTaa7soMBP0J7ZcWLBv+rXbv+1f3gBz/033/iE9PcuHHjffmFRpdPn/7tsOPfddcd/lbZc+bM9iPdemxSl5zcplvfa1MYtk3t0QivapTVhnQZEm8Ys3blcj5ZEyBEZ61HOR8EAhdQaNbEp2SpMYXmL/k60HQ9aOCnQPNqLLBp02b37W935myFRmz7+5PQWs5NpReXLl3yu1RQvrISRnKbd1Z7Kac2+0IgDgFCdBz9RCsRiFJAdaPJ3dJ6/Ufuql1du3bV4OSpsX7sHCUGjS6bwNmzZ93ixQ/6Eog1a/7WTZ061f3yl79yq1b9ja8vtjpkG/kdulKFGqI3cdqGrresUWqNAGvTfr/znU733nvvuwceWOKWLfuCe/jhZWU7D3aEAAJxCxCi4+4/Wo9AUAK6g5pCsyZgKaSopllrMi9Zspi1mYPqKRpTjMD99y9yr7123Gk1imXLvujuv3+Bu+mmxmJ2wWMRQCCDAoToDHYqp4RANQQUknVzCFuxwG7eoIlIdlMTVs6oRk9wjEoL6O58Tz/9L/5a16brW3fl++pX2yp9aPaPAAIBCxCiA+4cmoZAKAK2Vq1Gmm2U2T4Gt9CswExdaCg9RjsqIaDVQLZseXJw17fdNs197WttfqLg4sV/xdrklUBnnwgELECIDrhzaBoCtRJQLfPRo0lJhoVmawuhuVa9wnFDEDh+/HX3zW/+kzt48OVhzdFqMlpKb8mSRQTqEDqLNiBQYQFCdIWB2T0CMQhYaN6//5Bfkzl9IwkFAo0wa6RZEwHZEEDAuRdf/A939ux77tFH1+fk0FKNCtX698OGAALZFCBEZ7NfOSsERhVI1zMrOKdXKNAffYVlyjO4iBDIL3Ds2M/9Ch76xCbX0npa99lu9EKgzu/JIxCISYAQHVNv0VYExiigkWVNAty//+BHS85ducMb5RljROVpCKQE9G9M/766up5xPT1v5rQhUHPJIJAtAUJ0tvqTs0HAC2hkeehyc0ajG0XYKDOrZ3DBIFB+AQJ1+U3ZIwIhChCiQ+wV2oTAGARUoqHgbKPNtgvdwU21mRacuY32GHB5CgJjFFCg7uzc4VQ2pRsO5drSI9T6ZCh96+8xHpanIYBAFQQI0VVA5hAIVEpgz569vhYzuSvg8BINhWcmA1ZKn/0iUJyA3uiq3GO0QK092iof9913r7+lOBsCCIQpQIgOs19oFQI5BRSUDxw4NGy0ualpul9BQxOYKNHg4kEgfIFCSj50FjbJV3f91Cg1GwIIhCNAiA6nL2gJAsMErLY514RA1TYnI1aMNnPpIBCzgAVqfaKkN8kjbSrz0JtkvVlmlDrmHqftWREgRGelJzmPzAjYms27d+/1ZRq2pWub9UeUusnMdDkngsCggN44q0RLJR/69z9SHbWeoFIPvYnWp1DUUnMRIVB9AUJ09c05IgLDBPTHUpMCVS9JbTMXCAIImIDdNVSvESOtRW2PtZsi2VrvKCKAQGUFCNGV9WXvCOQUSJdppG92otHm5OPaZHSJSUVcQAggkBZQmD5xQivxUPrBlYFArQUI0bXuAY5fNwIaYU6vpmEnbus2t7YuZyWNurkaOFEEyiNgI9XJEpcjl3+k70LKnRPLY89eECBEcw0gUEEBTRLSHzdNDNRXbVpJQ3/QNNK8cmULtc0V9GfXCNSbgNVU6/XGAnau25GzjF69XRmcbyUECNGVUGWfdStgf7h0i+1t23YOOqhMo61ttS/VUIBmUmDdXiKcOAJVF8g3Wq3XpPQExao3kAMiEKkAITrSjqPZYQho1Ce5gcJe/1X/3Xrrx93Fi//r5s2726lEg9rmMPqKViCAQCJgr1uaqGivW7YKiK34oZKPpqYm5mVw0SAwigAhmssDgSIFRrrhiXazYkWLe+ihL7o77pjDH58iXXk4AgjUTkBh+tSpXr+0Xnd3z+AqQZ///H1u3bpH3G23TeM1rXbdw5EDFSBEB9oxNCssAf2B0aRA1Tanl6Cz1TRaW1v8x6FsCCCAQBYE9DqnEWstu+lcgw/YKlPbuLHdh2lGqbPQy5xDqQKE6FIFeX5mBfRHZPv2ncOCs05YH3XaxBzqmzN7CXBiCCCQEtDqHzZJWq+PjY3JHRS5JTmXSb0KEKLrtec575wCGnnRihqaFGiradgDtRSdapwVnlm/mQsIAQTqWcBWAUmC9SF/Z0XN/9BcEH1tbr6b18l6vkDq5NwJ0XXS0Zzm6AIKzJ2dGnU+5D/CtM1uta2VNTSDnQ0BBBBAYLiARqbtroq2XrWVfWi0WsF67txPszIRF0+mBAjRmepOTqZYAdU5796917/4pzeNOre1rXFLly7iRb9YVB6PAAJ1L2ChWpMUtQpIT8+b3kTBOgnUzW7+/M8xOFH3V0rcAITouPuP1o9BQCPNnZ1P+Qkz6UmC2pVqnTXqrBd5NgQQQACB8gjodVevt6qptluX6yYwmlNi6+frdVfBmg2BWAQI0bH0FO0sWeDIkWM+OGtN5/RmN0JReGaSYMnM7AABBBAoSCBXCYieqDCdTFhcxEh1QZI8qFYChOhayXPcqgjkmyiokg0tT8eGAAIIIFBbgXSo1oi1Rqo1F0X/JYG6mcmKte0ijj5EgBDNJZFJAVvXWfXO6YmCOlndEIWJgpnsdk4KAQQyJGC3K7cJiwrVGqVuaXnYzZo1k7K7DPV1rKdCiI6152j3MAG90B4+/F/uhRdedCdPvnXV75uapru1a1e7lStbKNng2kEAAQQiE7Caai0/+vvfv+N+/euTflm9TZvanSaCM0odWYdmpLmE6Ix0ZD2ehj76O3o0WaNUs7+HjjjbqLOCMxMF6/EK4ZwRQCCrAnq91yeNNkG8oaHBl31oHX+VfrCWf1Z7PqzzIkSH1R+0ZhQBq29WYNao89CVNeypN93U6L7xjb/zJRtsCCCAAALZFrBaatVR62ZZ2hSiFagfeWQ1gTrb3V/TsyNE15Sfg+cTUHDu6nrWjzYMvYPg0OdSspFPk98jgAAC2RbQ3wx9OpkO1Bqh1qCKRqhZgSnb/V/tsyNEV1uc4xUkoJFmreWsF8J8m8Kz6uK4MUo+KX6PAAII1JeAljTdtm3H4M1eNDqtvxWaYM6GQKkChOhSBXl+WQUUmjs6tuYdddZBtSh/a+tylqgraw+wMwQQQCB7Air56Ozc4UepNSFRI9IK05pwrpFqNgTGIkCIHosazym7gEo12tsfH3b77aEH0o1RNJLAEnVl7wJ2iAACCNSFgAZrFKb37EluvKX6aQ3IaHSaCYl1cQmU7SQJ0WWjZEdjEdDowIYNj+ct26DeeSy6PAcBBBBAYCQBW+HjwAHdivzY4C3ItZrT2rWrgEMgrwAhOi8RD6iUgNb73L5954irbOi4Wv8zqXdeXKlmsF8EEEAAgToX0KehyQj1QV8/rXKPnTv/mb89dX5d5Dt9QnQ+IX5fEQGNAEyb9skR9014rgg7O0UAAQQQyCOgie1ag1oDOJR3cLmMJkCI5vqoiYBepBYufGDYsSnbqEl3cFAEEEAAAQQQKFKAEF0kGA8vn8Ctt85y/f39foeaMKg7Cz755JbyHYA9IYAAAggggAACFRIgRFcIlt3mF1ANmm6iok0zo1lmKL8Zj0AAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISOD/AYTV/3TCUQtkAAAAAElFTkSuQmCC',
- columns: { numberColumn: 1111, textFieldColumn: 'value' },
- fieldset: { numberFieldset: 222222 },
- panel: { numberPanel: 66666 },
- table: { selectTable:'one', checkboxTable: true, dateTimeTable: '2031-02-03T05:00:00', currencyTable: 4000 },
- tabs: { numberTab: 123456, textFieldTab: 'value'},
- well: { textFieldWell: 'value'},
- hidden: 'hidden value',
- container: { textFieldContainer: 'value1' },
- dataMap: { key: 'value1', key1: 'value2' },
- dataGrid: [
- { textFieldDataGrid: 'value1' },
- { textFieldDataGrid: 'value2' }
- ],
- editGrid: [{ textFieldEditGrid: 'value1' }, { textFieldEditGrid: 'value2' }],
- tree: {
- children: [{ children: [], data: {textFieldTree: 'value2'} }],
- data: { textFieldTree: 'value1' }
- },
- file: [{
- name: 'test file-15c248a4-401f-4456-aff9-abcbdf0f7bfa.docx',
- originalName: 'test file.docx',
- size: 11396,
- storage: 'base64',
- type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
- url: 'data:application/vnd.openxmlformats-officedocument',
- }],
- submit: true,
-};
\ No newline at end of file
+ file: [
+ {
+ name: 'test file-15c248a4-401f-4456-aff9-abcbdf0f7bfa.docx',
+ originalName: 'test file.docx',
+ size: 11396,
+ storage: 'base64',
+ type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
+ url: 'data:application/vnd.openxmlformats-officedocument',
+ },
+ ],
+ submit: true,
+};
diff --git a/test/forms/helpers/testBasicComponentSettings/form.d.ts b/test/forms/helpers/testBasicComponentSettings/form.d.ts
index 822b7ec6af..3173a70e09 100644
--- a/test/forms/helpers/testBasicComponentSettings/form.d.ts
+++ b/test/forms/helpers/testBasicComponentSettings/form.d.ts
@@ -1,2068 +1,2117 @@
declare namespace _default {
const _id: string;
const type: string;
- const components: ({
- label: string;
- tableView: boolean;
- useOriginalRevision: boolean;
- components: ({
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- inputType?: undefined;
- inputMask?: undefined;
- title?: undefined;
- collapsible?: undefined;
- components?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- defaultValue?: undefined;
- } | {
- label: string;
- inputType: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- inputMask: string;
- title?: undefined;
- collapsible?: undefined;
- components?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- defaultValue?: undefined;
- } | {
- title: string;
- collapsible: boolean;
- key: string;
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: {
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- }[];
- inputType?: undefined;
- inputMask?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- defaultValue?: undefined;
- } | {
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- tableView: boolean;
- defaultValue: {}[];
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- autoExpand: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- inputType?: undefined;
- inputMask?: undefined;
- title?: undefined;
- collapsible?: undefined;
- })[];
- key: string;
- type: string;
- input: boolean;
- form: string;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- autoExpand: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- protected: boolean;
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- optionsLabelPosition: string;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- validate: {
- onlyAvailableItems: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- inputType: string;
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- widget: string;
- tableView: boolean;
- data: {
- values: {
- label: string;
- value: string;
- }[];
- };
- selectThreshold: number;
- validate: {
- onlyAvailableItems: boolean;
- };
- key: string;
- type: string;
- indexeddb: {
- filter: {};
- };
- input: boolean;
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- inputType?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- optionsLabelPosition: string;
- inline: boolean;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- validate: {
- onlyAvailableItems: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- tableView: boolean;
- provider: string;
- key: string;
- type: string;
- providerOptions: {
- params: {
- autocompleteOptions: {};
- };
- };
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- customConditional: string;
- }[];
- useOriginalRevision?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- tableView: boolean;
- enableMinDateInput: boolean;
- datePicker: {
- disableWeekends: boolean;
- disableWeekdays: boolean;
- };
- enableMaxDateInput: boolean;
- key: string;
- type: string;
- input: boolean;
- widget: {
- type: string;
- displayInTimezone: string;
- locale: string;
- useLocaleSettings: boolean;
- allowInput: boolean;
- mode: string;
- enableTime: boolean;
- noCalendar: boolean;
- format: string;
- hourIncrement: number;
- minuteIncrement: number;
- time_24hr: boolean;
- minDate: null;
- disableWeekends: boolean;
- disableWeekdays: boolean;
- maxDate: null;
- };
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- hideInputLabels: boolean;
- inputsLabelPosition: string;
- useLocaleSettings: boolean;
- tableView: boolean;
- fields: {
- day: {
- hide: boolean;
- };
- month: {
- hide: boolean;
- };
- year: {
- hide: boolean;
- };
- };
- key: string;
- type: string;
- input: boolean;
- defaultValue: string;
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- inputMask: string;
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- currency: string;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- delimiter: boolean;
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- requireDecimal?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- tableView: boolean;
- questions: {
- label: string;
- value: string;
- }[];
- values: {
- label: string;
- value: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- attrs: {
- attr: string;
- value: string;
- }[];
- content: string;
- refreshOnChange: boolean;
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- html: string;
- label: string;
- refreshOnChange: boolean;
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- columns: ({
- components: {
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- hideOnChildrenHidden: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- } | {
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- hideOnChildrenHidden: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- })[];
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- legend: string;
- key: string;
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: {
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- }[];
- useOriginalRevision?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- collapsible: boolean;
- key: string;
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: {
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- }[];
- useOriginalRevision?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- cellAlignment: string;
- key: string;
- type: string;
- numRows: number;
- numCols: number;
- input: boolean;
- tableView: boolean;
- rows: (({
- components: {
- label: string;
- widget: string;
- tableView: boolean;
- data: {
- values: {
+ const components: (
+ | {
+ label: string;
+ tableView: boolean;
+ useOriginalRevision: boolean;
+ components: (
+ | {
label: string;
- value: string;
- }[];
- };
- selectThreshold: number;
- validate: {
- onlyAvailableItems: boolean;
- };
- key: string;
- type: string;
- indexeddb: {
- filter: {};
- };
- input: boolean;
- }[];
- } | {
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- defaultValue: boolean;
- }[];
- })[] | ({
- components: {
- label: string;
- tableView: boolean;
- enableMinDateInput: boolean;
- datePicker: {
- disableWeekends: boolean;
- disableWeekdays: boolean;
- };
- enableMaxDateInput: boolean;
- key: string;
- type: string;
- input: boolean;
- widget: {
- type: string;
- displayInTimezone: string;
- locale: string;
- useLocaleSettings: boolean;
- allowInput: boolean;
- mode: string;
- enableTime: boolean;
- noCalendar: boolean;
- format: string;
- hourIncrement: number;
- minuteIncrement: number;
- time_24hr: boolean;
- minDate: null;
- disableWeekends: boolean;
- disableWeekdays: boolean;
- maxDate: null;
- };
- }[];
- } | {
- components: {
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- currency: string;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- delimiter: boolean;
- }[];
- })[])[];
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- components: ({
- label: string;
- key: string;
- components: {
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- }[];
- } | {
- label: string;
- key: string;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- })[];
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- useOriginalRevision?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- useOriginalRevision?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- hideLabel: boolean;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- useOriginalRevision?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- valueComponent: {
- type: string;
- key: string;
- label: string;
- input: boolean;
- hideLabel: boolean;
- tableView: boolean;
- };
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- tableView: boolean;
- defaultValue: {}[];
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- useOriginalRevision?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- tableView: boolean;
- rowDrafts: boolean;
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- useOriginalRevision?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- tree?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- tree: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- useOriginalRevision?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- storage?: undefined;
- webcam?: undefined;
- fileTypes?: undefined;
- } | {
- label: string;
- tableView: boolean;
- storage: string;
- webcam: boolean;
- fileTypes: {
- label: string;
- value: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- useOriginalRevision?: undefined;
- components?: undefined;
- form?: undefined;
- autoExpand?: undefined;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- protected?: undefined;
- optionsLabelPosition?: undefined;
- values?: undefined;
- validate?: undefined;
- inputType?: undefined;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- inline?: undefined;
- provider?: undefined;
- providerOptions?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- hideInputLabels?: undefined;
- inputsLabelPosition?: undefined;
- useLocaleSettings?: undefined;
- fields?: undefined;
- defaultValue?: undefined;
- inputMask?: undefined;
- currency?: undefined;
- questions?: undefined;
- attrs?: undefined;
- content?: undefined;
- refreshOnChange?: undefined;
- html?: undefined;
- columns?: undefined;
- legend?: undefined;
- collapsible?: undefined;
- cellAlignment?: undefined;
- numRows?: undefined;
- numCols?: undefined;
- rows?: undefined;
- hideLabel?: undefined;
- valueComponent?: undefined;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- rowDrafts?: undefined;
- tree?: undefined;
- })[];
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ inputType?: undefined;
+ inputMask?: undefined;
+ title?: undefined;
+ collapsible?: undefined;
+ components?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ defaultValue?: undefined;
+ }
+ | {
+ label: string;
+ inputType: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ inputMask: string;
+ title?: undefined;
+ collapsible?: undefined;
+ components?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ defaultValue?: undefined;
+ }
+ | {
+ title: string;
+ collapsible: boolean;
+ key: string;
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ inputType?: undefined;
+ inputMask?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ defaultValue?: undefined;
+ }
+ | {
+ label: string;
+ reorder: boolean;
+ addAnotherPosition: string;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ tableView: boolean;
+ defaultValue: {}[];
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ autoExpand: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ inputType?: undefined;
+ inputMask?: undefined;
+ title?: undefined;
+ collapsible?: undefined;
+ }
+ )[];
+ key: string;
+ type: string;
+ input: boolean;
+ form: string;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ autoExpand: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ protected: boolean;
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ optionsLabelPosition: string;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ validate: {
+ onlyAvailableItems: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ inputType: string;
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ widget: string;
+ tableView: boolean;
+ data: {
+ values: {
+ label: string;
+ value: string;
+ }[];
+ };
+ selectThreshold: number;
+ validate: {
+ onlyAvailableItems: boolean;
+ };
+ key: string;
+ type: string;
+ indexeddb: {
+ filter: {};
+ };
+ input: boolean;
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ inputType?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ optionsLabelPosition: string;
+ inline: boolean;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ validate: {
+ onlyAvailableItems: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ provider: string;
+ key: string;
+ type: string;
+ providerOptions: {
+ params: {
+ autocompleteOptions: {};
+ };
+ };
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ customConditional: string;
+ }[];
+ useOriginalRevision?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ enableMinDateInput: boolean;
+ datePicker: {
+ disableWeekends: boolean;
+ disableWeekdays: boolean;
+ };
+ enableMaxDateInput: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ widget: {
+ type: string;
+ displayInTimezone: string;
+ locale: string;
+ useLocaleSettings: boolean;
+ allowInput: boolean;
+ mode: string;
+ enableTime: boolean;
+ noCalendar: boolean;
+ format: string;
+ hourIncrement: number;
+ minuteIncrement: number;
+ time_24hr: boolean;
+ minDate: null;
+ disableWeekends: boolean;
+ disableWeekdays: boolean;
+ maxDate: null;
+ };
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ hideInputLabels: boolean;
+ inputsLabelPosition: string;
+ useLocaleSettings: boolean;
+ tableView: boolean;
+ fields: {
+ day: {
+ hide: boolean;
+ };
+ month: {
+ hide: boolean;
+ };
+ year: {
+ hide: boolean;
+ };
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ defaultValue: string;
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ inputMask: string;
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ currency: string;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ delimiter: boolean;
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ requireDecimal?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ questions: {
+ label: string;
+ value: string;
+ }[];
+ values: {
+ label: string;
+ value: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ attrs: {
+ attr: string;
+ value: string;
+ }[];
+ content: string;
+ refreshOnChange: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ html: string;
+ label: string;
+ refreshOnChange: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ columns: (
+ | {
+ components: {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ hideOnChildrenHidden: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ }
+ | {
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ hideOnChildrenHidden: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ }
+ )[];
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ legend: string;
+ key: string;
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ useOriginalRevision?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ collapsible: boolean;
+ key: string;
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ useOriginalRevision?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ cellAlignment: string;
+ key: string;
+ type: string;
+ numRows: number;
+ numCols: number;
+ input: boolean;
+ tableView: boolean;
+ rows: (
+ | (
+ | {
+ components: {
+ label: string;
+ widget: string;
+ tableView: boolean;
+ data: {
+ values: {
+ label: string;
+ value: string;
+ }[];
+ };
+ selectThreshold: number;
+ validate: {
+ onlyAvailableItems: boolean;
+ };
+ key: string;
+ type: string;
+ indexeddb: {
+ filter: {};
+ };
+ input: boolean;
+ }[];
+ }
+ | {
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ defaultValue: boolean;
+ }[];
+ }
+ )[]
+ | (
+ | {
+ components: {
+ label: string;
+ tableView: boolean;
+ enableMinDateInput: boolean;
+ datePicker: {
+ disableWeekends: boolean;
+ disableWeekdays: boolean;
+ };
+ enableMaxDateInput: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ widget: {
+ type: string;
+ displayInTimezone: string;
+ locale: string;
+ useLocaleSettings: boolean;
+ allowInput: boolean;
+ mode: string;
+ enableTime: boolean;
+ noCalendar: boolean;
+ format: string;
+ hourIncrement: number;
+ minuteIncrement: number;
+ time_24hr: boolean;
+ minDate: null;
+ disableWeekends: boolean;
+ disableWeekdays: boolean;
+ maxDate: null;
+ };
+ }[];
+ }
+ | {
+ components: {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ currency: string;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ delimiter: boolean;
+ }[];
+ }
+ )[]
+ )[];
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ components: (
+ | {
+ label: string;
+ key: string;
+ components: {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ }
+ | {
+ label: string;
+ key: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ }
+ )[];
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ useOriginalRevision?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ useOriginalRevision?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ hideLabel: boolean;
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ useOriginalRevision?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ valueComponent: {
+ type: string;
+ key: string;
+ label: string;
+ input: boolean;
+ hideLabel: boolean;
+ tableView: boolean;
+ };
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ reorder: boolean;
+ addAnotherPosition: string;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ tableView: boolean;
+ defaultValue: {}[];
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ useOriginalRevision?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ rowDrafts: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ useOriginalRevision?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ tree?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ tree: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ useOriginalRevision?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ storage?: undefined;
+ webcam?: undefined;
+ fileTypes?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ storage: string;
+ webcam: boolean;
+ fileTypes: {
+ label: string;
+ value: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ useOriginalRevision?: undefined;
+ components?: undefined;
+ form?: undefined;
+ autoExpand?: undefined;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ protected?: undefined;
+ optionsLabelPosition?: undefined;
+ values?: undefined;
+ validate?: undefined;
+ inputType?: undefined;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ inline?: undefined;
+ provider?: undefined;
+ providerOptions?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ hideInputLabels?: undefined;
+ inputsLabelPosition?: undefined;
+ useLocaleSettings?: undefined;
+ fields?: undefined;
+ defaultValue?: undefined;
+ inputMask?: undefined;
+ currency?: undefined;
+ questions?: undefined;
+ attrs?: undefined;
+ content?: undefined;
+ refreshOnChange?: undefined;
+ html?: undefined;
+ columns?: undefined;
+ legend?: undefined;
+ collapsible?: undefined;
+ cellAlignment?: undefined;
+ numRows?: undefined;
+ numCols?: undefined;
+ rows?: undefined;
+ hideLabel?: undefined;
+ valueComponent?: undefined;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ rowDrafts?: undefined;
+ tree?: undefined;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/helpers/testBasicComponentSettings/form.js b/test/forms/helpers/testBasicComponentSettings/form.js
index 060f36b979..b877b6500f 100644
--- a/test/forms/helpers/testBasicComponentSettings/form.js
+++ b/test/forms/helpers/testBasicComponentSettings/form.js
@@ -1,679 +1,800 @@
export default {
- "_id": "60228e64f2e20ca84010999a",
- "type": "form",
- "components": [{
- "label": "Form",
- "tableView": true,
- "useOriginalRevision": false,
- "components": [{
- "label": "Text Field Child",
- "tableView": true,
- "key": "textFieldChild",
- "type": "textfield",
- "input": true
- }, {
- "label": "Time Child",
- "inputType": "text",
- "tableView": true,
- "key": "timeChild",
- "type": "time",
- "input": true,
- "inputMask": "99:99"
- }, {
- "title": "Panel Child",
- "collapsible": false,
- "key": "panelChild",
- "type": "panel",
- "label": "Panel",
- "input": false,
- "tableView": false,
- "components": [{
- "label": "Number Inside Child Panel",
- "mask": false,
- "spellcheck": true,
- "tableView": false,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "key": "numberInsideChildPanel",
- "type": "number",
- "input": true
- }]
- }, {
- "label": "Data Grid Child",
- "reorder": false,
- "addAnotherPosition": "bottom",
- "layoutFixed": false,
- "enableRowGroups": false,
- "initEmpty": false,
- "tableView": false,
- "defaultValue": [{}],
- "key": "dataGridChild",
- "type": "datagrid",
- "input": true,
- "components": [{
- "label": "Text Area Inside Child DataGrid",
- "autoExpand": false,
- "tableView": true,
- "key": "textAreaInsideChildDataGrid",
- "type": "textarea",
- "input": true
- }]
- }],
- "key": "form",
- "type": "form",
- "input": true,
- "form": "6034b4ef914866a81c060533"
- },
- {
- "label": "Text Field",
- "tableView": true,
- "key": "textField",
- "type": "textfield",
- "input": true
- }, {
- "label": "Text Area",
- "autoExpand": false,
- "tableView": true,
- "key": "textArea",
- "type": "textarea",
- "input": true
- }, {
- "label": "Number",
- "mask": false,
- "spellcheck": true,
- "tableView": false,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "key": "number",
- "type": "number",
- "input": true
- }, {
- "label": "Password",
- "tableView": false,
- "key": "password",
- "type": "password",
- "input": true,
- "protected": true
- }, {
- "label": "Checkbox",
- "tableView": false,
- "key": "checkbox",
- "type": "checkbox",
- "input": true
- }, {
- "label": "Select Boxes",
- "optionsLabelPosition": "right",
- "tableView": false,
- "values": [{
- "label": "a",
- "value": "a",
- "shortcut": ""
- }, {
- "label": "b",
- "value": "b",
- "shortcut": ""
- }, {
- "label": "c",
- "value": "c",
- "shortcut": ""
- }],
- "validate": {
- "onlyAvailableItems": false
- },
- "key": "selectBoxes",
- "type": "selectboxes",
- "input": true,
- "inputType": "checkbox",
- }, {
- "label": "Select",
- "widget": "choicesjs",
- "tableView": true,
- "data": {
- "values": [{
- "label": "A",
- "value": "a"
- }, {
- "label": "B",
- "value": "b"
- }, {
- "label": "C",
- "value": "c"
- }]
- },
- "selectThreshold": 0.3,
- "validate": {
- "onlyAvailableItems": false
- },
- "key": "select",
- "type": "select",
- "indexeddb": {
- "filter": {}
- },
- "input": true
- }, {
- "label": "Radio",
- "optionsLabelPosition": "right",
- "inline": false,
- "tableView": false,
- "values": [{
- "label": "a",
- "value": "a",
- "shortcut": ""
- }, {
- "label": "b",
- "value": "b",
- "shortcut": ""
- }, {
- "label": "c",
- "value": "c",
- "shortcut": ""
- }],
- "validate": {
- "onlyAvailableItems": false
- },
- "key": "radio",
- "type": "radio",
- "input": true
- }, {
- "label": "Email",
- "tableView": true,
- "key": "email",
- "type": "email",
- "input": true
- }, {
- "label": "Url",
- "tableView": true,
- "key": "url",
- "type": "url",
- "input": true
- }, {
- "label": "Phone Number",
- "tableView": true,
- "key": "phoneNumber",
- "type": "phoneNumber",
- "input": true
- }, {
- "label": "Tags",
- "tableView": false,
- "key": "tags",
- "type": "tags",
- "input": true
- }, {
- "label": "Address",
- "tableView": false,
- "provider": "nominatim",
- "key": "address",
- "type": "address",
- "providerOptions": {
- "params": {
- "autocompleteOptions": {}
- }
- },
- "input": true,
- "components": [{
- "label": "Address 1",
- "tableView": false,
- "key": "address1",
- "type": "textfield",
- "input": true,
- "customConditional": "show = _.get(instance, 'parent.manualMode', false);"
- }, {
- "label": "Address 2",
- "tableView": false,
- "key": "address2",
- "type": "textfield",
- "input": true,
- "customConditional": "show = _.get(instance, 'parent.manualMode', false);"
- }, {
- "label": "City",
- "tableView": false,
- "key": "city",
- "type": "textfield",
- "input": true,
- "customConditional": "show = _.get(instance, 'parent.manualMode', false);"
- }, {
- "label": "State",
- "tableView": false,
- "key": "state",
- "type": "textfield",
- "input": true,
- "customConditional": "show = _.get(instance, 'parent.manualMode', false);"
- }, {
- "label": "Country",
- "tableView": false,
- "key": "country",
- "type": "textfield",
- "input": true,
- "customConditional": "show = _.get(instance, 'parent.manualMode', false);"
- }, {
- "label": "Zip Code",
- "tableView": false,
- "key": "zip",
- "type": "textfield",
- "input": true,
- "customConditional": "show = _.get(instance, 'parent.manualMode', false);"
- }]
- }, {
- "label": "Date / Time",
- "tableView": false,
- "enableMinDateInput": false,
- "datePicker": {
- "disableWeekends": false,
- "disableWeekdays": false
- },
- "enableMaxDateInput": false,
- "key": "dateTime",
- "type": "datetime",
- "input": true,
- "widget": {
- "type": "calendar",
- "displayInTimezone": "viewer",
- "locale": "en",
- "useLocaleSettings": false,
- "allowInput": true,
- "mode": "single",
- "enableTime": true,
- "noCalendar": false,
- "format": "yyyy-MM-dd hh:mm a",
- "hourIncrement": 1,
- "minuteIncrement": 1,
- "time_24hr": false,
- "minDate": null,
- "disableWeekends": false,
- "disableWeekdays": false,
- "maxDate": null
- }
- }, {
- "label": "Day",
- "hideInputLabels": false,
- "inputsLabelPosition": "top",
- "useLocaleSettings": false,
- "tableView": false,
- "fields": {
- "day": {
- "hide": false
- },
- "month": {
- "hide": false
- },
- "year": {
- "hide": false
- }
- },
- "key": "day",
- "type": "day",
- "input": true,
- "defaultValue": "00/00/0000"
- }, {
- "label": "Time",
- "tableView": true,
- "key": "time",
- "type": "time",
- "input": true,
- "inputMask": "99:99"
- }, {
- "label": "Currency",
- "mask": false,
- "spellcheck": true,
- "tableView": false,
- "currency": "USD",
- "inputFormat": "plain",
- "key": "currency",
- "type": "currency",
- "input": true,
- "delimiter": true
- }, {
- "label": "Survey",
- "tableView": false,
- "questions": [{
- "label": "Question 1",
- "value": "question1"
- }, {
- "label": "Question 2",
- "value": "question2"
- }],
- "values": [{
- "label": "yes",
- "value": "yes"
- }, {
- "label": "no",
- "value": "no"
- }],
- "key": "survey",
- "type": "survey",
- "input": true
- }, {
- "label": "Signature",
- "tableView": false,
- "key": "signature",
- "type": "signature",
- "input": true
- }, {
- "label": "HTML",
- "attrs": [{
- "attr": "",
- "value": ""
- }],
- "content": "some test HTML content",
- "refreshOnChange": false,
- "key": "html",
- "type": "htmlelement",
- "input": false,
- "tableView": false
- }, {
- "html": "
some text content
",
- "label": "Content",
- "refreshOnChange": false,
- "key": "content",
- "type": "content",
- "input": false,
- "tableView": false
- }, {
- "label": "Columns",
- "columns": [{
- "components": [{
- "label": "Number Column",
- "mask": false,
- "spellcheck": true,
- "tableView": false,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "key": "numberColumn",
- "type": "number",
- "input": true,
- "hideOnChildrenHidden": false
- }],
- "width": 6,
- "offset": 0,
- "push": 0,
- "pull": 0,
- "size": "md"
- }, {
- "components": [{
- "label": "Text Field Column",
- "tableView": true,
- "key": "textFieldColumn",
- "type": "textfield",
- "input": true,
- "hideOnChildrenHidden": false
- }],
- "width": 6,
- "offset": 0,
- "push": 0,
- "pull": 0,
- "size": "md"
- }],
- "key": "columns",
- "type": "columns",
- "input": false,
- "tableView": false
- }, {
- "legend": "test legend",
- "key": "fieldset",
- "type": "fieldset",
- "label": "test legend",
- "input": false,
- "tableView": false,
- "components": [{
- "label": "Number Fieldset",
- "mask": false,
- "spellcheck": true,
- "tableView": false,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "key": "numberFieldset",
- "type": "number",
- "input": true
- }]
- }, {
- "collapsible": false,
- "key": "panel",
- "type": "panel",
- "label": "Panel",
- "input": false,
- "tableView": false,
- "components": [{
- "label": "Number Panel",
- "mask": false,
- "spellcheck": true,
- "tableView": false,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "key": "numberPanel",
- "type": "number",
- "input": true
- }]
- }, {
- "label": "Table",
- "cellAlignment": "left",
- "key": "table",
- "type": "table",
- "numRows": 2,
- "numCols": 2,
- "input": false,
- "tableView": false,
- "rows": [
- [{
- "components": [{
- "label": "Select Table",
- "widget": "choicesjs",
- "tableView": true,
- "data": {
- "values": [{
- "label": "one",
- "value": "one"
- }, {
- "label": "two",
- "value": "two"
- }]
+ _id: '60228e64f2e20ca84010999a',
+ type: 'form',
+ components: [
+ {
+ label: 'Form',
+ tableView: true,
+ useOriginalRevision: false,
+ components: [
+ {
+ label: 'Text Field Child',
+ tableView: true,
+ key: 'textFieldChild',
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Time Child',
+ inputType: 'text',
+ tableView: true,
+ key: 'timeChild',
+ type: 'time',
+ input: true,
+ inputMask: '99:99',
+ },
+ {
+ title: 'Panel Child',
+ collapsible: false,
+ key: 'panelChild',
+ type: 'panel',
+ label: 'Panel',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Number Inside Child Panel',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'numberInsideChildPanel',
+ type: 'number',
+ input: true,
+ },
+ ],
+ },
+ {
+ label: 'Data Grid Child',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ tableView: false,
+ defaultValue: [{}],
+ key: 'dataGridChild',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Text Area Inside Child DataGrid',
+ autoExpand: false,
+ tableView: true,
+ key: 'textAreaInsideChildDataGrid',
+ type: 'textarea',
+ input: true,
+ },
+ ],
+ },
+ ],
+ key: 'form',
+ type: 'form',
+ input: true,
+ form: '6034b4ef914866a81c060533',
+ },
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Text Area',
+ autoExpand: false,
+ tableView: true,
+ key: 'textArea',
+ type: 'textarea',
+ input: true,
+ },
+ {
+ label: 'Number',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ {
+ label: 'Password',
+ tableView: false,
+ key: 'password',
+ type: 'password',
+ input: true,
+ protected: true,
+ },
+ {
+ label: 'Checkbox',
+ tableView: false,
+ key: 'checkbox',
+ type: 'checkbox',
+ input: true,
+ },
+ {
+ label: 'Select Boxes',
+ optionsLabelPosition: 'right',
+ tableView: false,
+ values: [
+ {
+ label: 'a',
+ value: 'a',
+ shortcut: '',
+ },
+ {
+ label: 'b',
+ value: 'b',
+ shortcut: '',
+ },
+ {
+ label: 'c',
+ value: 'c',
+ shortcut: '',
+ },
+ ],
+ validate: {
+ onlyAvailableItems: false,
},
- "selectThreshold": 0.3,
- "validate": {
- "onlyAvailableItems": false
+ key: 'selectBoxes',
+ type: 'selectboxes',
+ input: true,
+ inputType: 'checkbox',
+ },
+ {
+ label: 'Select',
+ widget: 'choicesjs',
+ tableView: true,
+ data: {
+ values: [
+ {
+ label: 'A',
+ value: 'a',
+ },
+ {
+ label: 'B',
+ value: 'b',
+ },
+ {
+ label: 'C',
+ value: 'c',
+ },
+ ],
+ },
+ selectThreshold: 0.3,
+ validate: {
+ onlyAvailableItems: false,
},
- "key": "selectTable",
- "type": "select",
- "indexeddb": {
- "filter": {}
+ key: 'select',
+ type: 'select',
+ indexeddb: {
+ filter: {},
},
- "input": true
- }]
- }, {
- "components": [{
- "label": "Checkbox Table",
- "tableView": false,
- "key": "checkboxTable",
- "type": "checkbox",
- "input": true,
- "defaultValue": false
- }]
- }],
- [{
- "components": [{
- "label": "Date / Time Table",
- "tableView": false,
- "enableMinDateInput": false,
- "datePicker": {
- "disableWeekends": false,
- "disableWeekdays": false
+ input: true,
+ },
+ {
+ label: 'Radio',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: false,
+ values: [
+ {
+ label: 'a',
+ value: 'a',
+ shortcut: '',
+ },
+ {
+ label: 'b',
+ value: 'b',
+ shortcut: '',
+ },
+ {
+ label: 'c',
+ value: 'c',
+ shortcut: '',
+ },
+ ],
+ validate: {
+ onlyAvailableItems: false,
},
- "enableMaxDateInput": false,
- "key": "dateTimeTable",
- "type": "datetime",
- "input": true,
- "widget": {
- "type": "calendar",
- "displayInTimezone": "viewer",
- "locale": "en",
- "useLocaleSettings": false,
- "allowInput": true,
- "mode": "single",
- "enableTime": true,
- "noCalendar": false,
- "format": "yyyy-MM-dd hh:mm a",
- "hourIncrement": 1,
- "minuteIncrement": 1,
- "time_24hr": false,
- "minDate": null,
- "disableWeekends": false,
- "disableWeekdays": false,
- "maxDate": null
- }
- }]
- }, {
- "components": [{
- "label": "Currency Table",
- "mask": false,
- "spellcheck": true,
- "tableView": false,
- "currency": "USD",
- "inputFormat": "plain",
- "key": "currencyTable",
- "type": "currency",
- "input": true,
- "delimiter": true
- }]
- }]
- ]
- }, {
- "label": "Tabs",
- "components": [{
- "label": "Tab 1",
- "key": "tab1",
- "components": [{
- "label": "Number Tab",
- "mask": false,
- "spellcheck": true,
- "tableView": false,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "key": "numberTab",
- "type": "number",
- "input": true
- }]
- }, {
- "label": "Tab 2",
- "key": "tab2",
- "components": [{
- "label": "Text Field Tab",
- "tableView": true,
- "key": "textFieldTab",
- "type": "textfield",
- "input": true
- }]
- }],
- "key": "tabs",
- "type": "tabs",
- "input": false,
- "tableView": false
- }, {
- "label": "Well",
- "key": "well",
- "type": "well",
- "input": false,
- "tableView": false,
- "components": [{
- "label": "Text Field Well",
- "tableView": true,
- "key": "textFieldWell",
- "type": "textfield",
- "input": true
- }]
- }, {
- "label": "Hidden",
- "key": "hidden",
- "type": "hidden",
- "input": true,
- "tableView": false
- }, {
- "label": "Container",
- "tableView": false,
- "key": "container",
- "type": "container",
- "hideLabel": false,
- "input": true,
- "components": [{
- "label": "Text Field Container",
- "tableView": true,
- "key": "textFieldContainer",
- "type": "textfield",
- "input": true
- }]
- }, {
- "label": "Data Map",
- "tableView": false,
- "key": "dataMap",
- "type": "datamap",
- "input": true,
- "valueComponent": {
- "type": "textfield",
- "key": "key",
- "label": "Value",
- "input": true,
- "hideLabel": true,
- "tableView": true
- }
- }, {
- "label": "Data Grid",
- "reorder": false,
- "addAnotherPosition": "bottom",
- "layoutFixed": false,
- "enableRowGroups": false,
- "initEmpty": false,
- "tableView": false,
- "defaultValue": [{}],
- "key": "dataGrid",
- "type": "datagrid",
- "input": true,
- "components": [{
- "label": "Text Field DataGrid",
- "tableView": true,
- "key": "textFieldDataGrid",
- "type": "textfield",
- "input": true
- }]
- }, {
- "label": "Edit Grid",
- "tableView": false,
- "rowDrafts": false,
- "key": "editGrid",
- "type": "editgrid",
- "input": true,
- "components": [{
- "label": "Text Field EditGrid",
- "tableView": true,
- "key": "textFieldEditGrid",
- "type": "textfield",
- "input": true
- }]
- }, {
- "label": "Upload",
- "tableView": false,
- "storage": "base64",
- "webcam": false,
- "fileTypes": [{
- "label": "",
- "value": ""
- }],
- "key": "file",
- "type": "file",
- "input": true
- }, {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "input": true,
- "tableView": false
- }
- ],
- "title": "form for automated tests",
- "display": "form",
- "name": "formForAutomatedTests",
- "path": "formforautomatedtests",
-}
+ key: 'radio',
+ type: 'radio',
+ input: true,
+ },
+ {
+ label: 'Email',
+ tableView: true,
+ key: 'email',
+ type: 'email',
+ input: true,
+ },
+ {
+ label: 'Url',
+ tableView: true,
+ key: 'url',
+ type: 'url',
+ input: true,
+ },
+ {
+ label: 'Phone Number',
+ tableView: true,
+ key: 'phoneNumber',
+ type: 'phoneNumber',
+ input: true,
+ },
+ {
+ label: 'Tags',
+ tableView: false,
+ key: 'tags',
+ type: 'tags',
+ input: true,
+ },
+ {
+ label: 'Address',
+ tableView: false,
+ provider: 'nominatim',
+ key: 'address',
+ type: 'address',
+ providerOptions: {
+ params: {
+ autocompleteOptions: {},
+ },
+ },
+ input: true,
+ components: [
+ {
+ label: 'Address 1',
+ tableView: false,
+ key: 'address1',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ "show = _.get(instance, 'parent.manualMode', false);",
+ },
+ {
+ label: 'Address 2',
+ tableView: false,
+ key: 'address2',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ "show = _.get(instance, 'parent.manualMode', false);",
+ },
+ {
+ label: 'City',
+ tableView: false,
+ key: 'city',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ "show = _.get(instance, 'parent.manualMode', false);",
+ },
+ {
+ label: 'State',
+ tableView: false,
+ key: 'state',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ "show = _.get(instance, 'parent.manualMode', false);",
+ },
+ {
+ label: 'Country',
+ tableView: false,
+ key: 'country',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ "show = _.get(instance, 'parent.manualMode', false);",
+ },
+ {
+ label: 'Zip Code',
+ tableView: false,
+ key: 'zip',
+ type: 'textfield',
+ input: true,
+ customConditional:
+ "show = _.get(instance, 'parent.manualMode', false);",
+ },
+ ],
+ },
+ {
+ label: 'Date / Time',
+ tableView: false,
+ enableMinDateInput: false,
+ datePicker: {
+ disableWeekends: false,
+ disableWeekdays: false,
+ },
+ enableMaxDateInput: false,
+ key: 'dateTime',
+ type: 'datetime',
+ input: true,
+ widget: {
+ type: 'calendar',
+ displayInTimezone: 'viewer',
+ locale: 'en',
+ useLocaleSettings: false,
+ allowInput: true,
+ mode: 'single',
+ enableTime: true,
+ noCalendar: false,
+ format: 'yyyy-MM-dd hh:mm a',
+ hourIncrement: 1,
+ minuteIncrement: 1,
+ time_24hr: false,
+ minDate: null,
+ disableWeekends: false,
+ disableWeekdays: false,
+ maxDate: null,
+ },
+ },
+ {
+ label: 'Day',
+ hideInputLabels: false,
+ inputsLabelPosition: 'top',
+ useLocaleSettings: false,
+ tableView: false,
+ fields: {
+ day: {
+ hide: false,
+ },
+ month: {
+ hide: false,
+ },
+ year: {
+ hide: false,
+ },
+ },
+ key: 'day',
+ type: 'day',
+ input: true,
+ defaultValue: '00/00/0000',
+ },
+ {
+ label: 'Time',
+ tableView: true,
+ key: 'time',
+ type: 'time',
+ input: true,
+ inputMask: '99:99',
+ },
+ {
+ label: 'Currency',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ currency: 'USD',
+ inputFormat: 'plain',
+ key: 'currency',
+ type: 'currency',
+ input: true,
+ delimiter: true,
+ },
+ {
+ label: 'Survey',
+ tableView: false,
+ questions: [
+ {
+ label: 'Question 1',
+ value: 'question1',
+ },
+ {
+ label: 'Question 2',
+ value: 'question2',
+ },
+ ],
+ values: [
+ {
+ label: 'yes',
+ value: 'yes',
+ },
+ {
+ label: 'no',
+ value: 'no',
+ },
+ ],
+ key: 'survey',
+ type: 'survey',
+ input: true,
+ },
+ {
+ label: 'Signature',
+ tableView: false,
+ key: 'signature',
+ type: 'signature',
+ input: true,
+ },
+ {
+ label: 'HTML',
+ attrs: [
+ {
+ attr: '',
+ value: '',
+ },
+ ],
+ content: 'some test HTML content',
+ refreshOnChange: false,
+ key: 'html',
+ type: 'htmlelement',
+ input: false,
+ tableView: false,
+ },
+ {
+ html: '
some text content
',
+ label: 'Content',
+ refreshOnChange: false,
+ key: 'content',
+ type: 'content',
+ input: false,
+ tableView: false,
+ },
+ {
+ label: 'Columns',
+ columns: [
+ {
+ components: [
+ {
+ label: 'Number Column',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'numberColumn',
+ type: 'number',
+ input: true,
+ hideOnChildrenHidden: false,
+ },
+ ],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ },
+ {
+ components: [
+ {
+ label: 'Text Field Column',
+ tableView: true,
+ key: 'textFieldColumn',
+ type: 'textfield',
+ input: true,
+ hideOnChildrenHidden: false,
+ },
+ ],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ },
+ ],
+ key: 'columns',
+ type: 'columns',
+ input: false,
+ tableView: false,
+ },
+ {
+ legend: 'test legend',
+ key: 'fieldset',
+ type: 'fieldset',
+ label: 'test legend',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Number Fieldset',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'numberFieldset',
+ type: 'number',
+ input: true,
+ },
+ ],
+ },
+ {
+ collapsible: false,
+ key: 'panel',
+ type: 'panel',
+ label: 'Panel',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Number Panel',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'numberPanel',
+ type: 'number',
+ input: true,
+ },
+ ],
+ },
+ {
+ label: 'Table',
+ cellAlignment: 'left',
+ key: 'table',
+ type: 'table',
+ numRows: 2,
+ numCols: 2,
+ input: false,
+ tableView: false,
+ rows: [
+ [
+ {
+ components: [
+ {
+ label: 'Select Table',
+ widget: 'choicesjs',
+ tableView: true,
+ data: {
+ values: [
+ {
+ label: 'one',
+ value: 'one',
+ },
+ {
+ label: 'two',
+ value: 'two',
+ },
+ ],
+ },
+ selectThreshold: 0.3,
+ validate: {
+ onlyAvailableItems: false,
+ },
+ key: 'selectTable',
+ type: 'select',
+ indexeddb: {
+ filter: {},
+ },
+ input: true,
+ },
+ ],
+ },
+ {
+ components: [
+ {
+ label: 'Checkbox Table',
+ tableView: false,
+ key: 'checkboxTable',
+ type: 'checkbox',
+ input: true,
+ defaultValue: false,
+ },
+ ],
+ },
+ ],
+ [
+ {
+ components: [
+ {
+ label: 'Date / Time Table',
+ tableView: false,
+ enableMinDateInput: false,
+ datePicker: {
+ disableWeekends: false,
+ disableWeekdays: false,
+ },
+ enableMaxDateInput: false,
+ key: 'dateTimeTable',
+ type: 'datetime',
+ input: true,
+ widget: {
+ type: 'calendar',
+ displayInTimezone: 'viewer',
+ locale: 'en',
+ useLocaleSettings: false,
+ allowInput: true,
+ mode: 'single',
+ enableTime: true,
+ noCalendar: false,
+ format: 'yyyy-MM-dd hh:mm a',
+ hourIncrement: 1,
+ minuteIncrement: 1,
+ time_24hr: false,
+ minDate: null,
+ disableWeekends: false,
+ disableWeekdays: false,
+ maxDate: null,
+ },
+ },
+ ],
+ },
+ {
+ components: [
+ {
+ label: 'Currency Table',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ currency: 'USD',
+ inputFormat: 'plain',
+ key: 'currencyTable',
+ type: 'currency',
+ input: true,
+ delimiter: true,
+ },
+ ],
+ },
+ ],
+ ],
+ },
+ {
+ label: 'Tabs',
+ components: [
+ {
+ label: 'Tab 1',
+ key: 'tab1',
+ components: [
+ {
+ label: 'Number Tab',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'numberTab',
+ type: 'number',
+ input: true,
+ },
+ ],
+ },
+ {
+ label: 'Tab 2',
+ key: 'tab2',
+ components: [
+ {
+ label: 'Text Field Tab',
+ tableView: true,
+ key: 'textFieldTab',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ ],
+ key: 'tabs',
+ type: 'tabs',
+ input: false,
+ tableView: false,
+ },
+ {
+ label: 'Well',
+ key: 'well',
+ type: 'well',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Text Field Well',
+ tableView: true,
+ key: 'textFieldWell',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ {
+ label: 'Hidden',
+ key: 'hidden',
+ type: 'hidden',
+ input: true,
+ tableView: false,
+ },
+ {
+ label: 'Container',
+ tableView: false,
+ key: 'container',
+ type: 'container',
+ hideLabel: false,
+ input: true,
+ components: [
+ {
+ label: 'Text Field Container',
+ tableView: true,
+ key: 'textFieldContainer',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ {
+ label: 'Data Map',
+ tableView: false,
+ key: 'dataMap',
+ type: 'datamap',
+ input: true,
+ valueComponent: {
+ type: 'textfield',
+ key: 'key',
+ label: 'Value',
+ input: true,
+ hideLabel: true,
+ tableView: true,
+ },
+ },
+ {
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ tableView: false,
+ defaultValue: [{}],
+ key: 'dataGrid',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Text Field DataGrid',
+ tableView: true,
+ key: 'textFieldDataGrid',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ {
+ label: 'Edit Grid',
+ tableView: false,
+ rowDrafts: false,
+ key: 'editGrid',
+ type: 'editgrid',
+ input: true,
+ components: [
+ {
+ label: 'Text Field EditGrid',
+ tableView: true,
+ key: 'textFieldEditGrid',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ {
+ label: 'Upload',
+ tableView: false,
+ storage: 'base64',
+ webcam: false,
+ fileTypes: [
+ {
+ label: '',
+ value: '',
+ },
+ ],
+ key: 'file',
+ type: 'file',
+ input: true,
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ input: true,
+ tableView: false,
+ },
+ ],
+ title: 'form for automated tests',
+ display: 'form',
+ name: 'formForAutomatedTests',
+ path: 'formforautomatedtests',
+};
diff --git a/test/forms/helpers/testBasicComponentSettings/index.js b/test/forms/helpers/testBasicComponentSettings/index.js
index f1dd124abb..d4e878f561 100644
--- a/test/forms/helpers/testBasicComponentSettings/index.js
+++ b/test/forms/helpers/testBasicComponentSettings/index.js
@@ -3,4 +3,4 @@ import settings from './settings';
import form from './form';
import tests from './tests';
-export default { values, settings, form, tests };
\ No newline at end of file
+export default { values, settings, form, tests };
diff --git a/test/forms/helpers/testBasicComponentSettings/settings.d.ts b/test/forms/helpers/testBasicComponentSettings/settings.d.ts
index e01a940e8d..da70b6604d 100644
--- a/test/forms/helpers/testBasicComponentSettings/settings.d.ts
+++ b/test/forms/helpers/testBasicComponentSettings/settings.d.ts
@@ -241,11 +241,11 @@ declare const _default: {
};
select: {
js: string;
- expectedValue: (basis: any) => "a" | "b";
+ expectedValue: (basis: any) => 'a' | 'b';
};
radio: {
js: string;
- expectedValue: (basis: any) => "b" | "c";
+ expectedValue: (basis: any) => 'b' | 'c';
};
email: {
js: string;
@@ -265,15 +265,17 @@ declare const _default: {
};
dateTime: {
js: string;
- expectedValue: (basis: any) => "2023-03-03T12:00:00" | "2003-12-12T12:00:00";
+ expectedValue: (
+ basis: any
+ ) => '2023-03-03T12:00:00' | '2003-12-12T12:00:00';
};
day: {
js: string;
- expectedValue: (basis: any) => "05/05/2015" | "03/03/2003";
+ expectedValue: (basis: any) => '05/05/2015' | '03/03/2003';
};
time: {
js: string;
- expectedValue: (basis: any) => "04:45:00" | "04:05:00";
+ expectedValue: (basis: any) => '04:45:00' | '04:05:00';
};
currency: {
js: string;
diff --git a/test/forms/helpers/testBasicComponentSettings/settings.js b/test/forms/helpers/testBasicComponentSettings/settings.js
index f72a0d455e..48da3d9a86 100644
--- a/test/forms/helpers/testBasicComponentSettings/settings.js
+++ b/test/forms/helpers/testBasicComponentSettings/settings.js
@@ -3,169 +3,390 @@ import moment from 'moment';
import basicValues from './basicValues';
export default {
- placeholder: _.reduce(
- ["textField", "textArea", "number", "password", "select", "email", "url", "phoneNumber", "tags", "address", "dateTime", "day", "currency"],
- (obj, componentKey, index) => {
- if(componentKey === 'day') {
- obj[componentKey] = { day: "enter day", month: "enter month", year: "enter year" };
- }
- else {
- 'test placeholder' + index;
- }
+ placeholder: _.reduce(
+ [
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'select',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'tags',
+ 'address',
+ 'dateTime',
+ 'day',
+ 'currency',
+ ],
+ (obj, componentKey, index) => {
+ if (componentKey === 'day') {
+ obj[componentKey] = {
+ day: 'enter day',
+ month: 'enter month',
+ year: 'enter year',
+ };
+ } else {
+ 'test placeholder' + index;
+ }
- return obj;
- },
- {}
- ),
- description: _.reduce(
- [
- "textField", "textArea", "number", "password", "checkbox", "selectBoxes", "select", "radio", "email", "url", "phoneNumber", "tags", "address", "dateTime", "day", "time", "currency", "survey",
- //"signature",
- "dataMap", "dataGrid", "editGrid", "tree", "file", "submit"
- ],
- (obj, componentKey, index) => {
- obj[componentKey] = 'test description' + index;
- return obj;
- },
- {}
- ),
- tooltip:_.reduce(
- [
- "textField", "textArea", "number", "password", "checkbox", "selectBoxes", "select", "radio", "email", "url", "phoneNumber", "tags", "address", "dateTime", "day", "time", "currency", "survey",
- //"signature",
- "fieldset", "panel", "container", "dataMap", "dataGrid", "editGrid", "tree", "file", "submit"
- ],
- (obj, componentKey, index) => {
- obj[componentKey] = 'test tooltip' + index;
- return obj;
- },
- {}
- ),
- prefix: _.reduce(
- ["textField", "textArea", "number", "password", "email", "url", "phoneNumber", "currency"],
- (obj, componentKey, index) => {
- obj[componentKey] = 'test prefix' + index;
- return obj;
- },
- {}
- ),
- suffix:_.reduce(
- ["textField", "textArea", "number", "password", "email", "url", "phoneNumber", "currency"],
- (obj, componentKey, index) => {
- obj[componentKey] = 'test suffix' + index;
- return obj;
- },
- {}
- ),
- customClass: _.reduce(
- [
- "form","textField", "textArea", "number", "password", "checkbox", "selectBoxes", "select", "radio", "email", "url", "phoneNumber", "tags", "address", "dateTime", "day", "time", "currency", "survey",
- //"signature",
- "html", "content", "columns", "fieldset", "panel", "table", "tabs", "well", "hidden", "container", "dataMap", "dataGrid", "editGrid", "tree", "file", "submit"
- ],
- (obj, componentKey) => {
- obj[componentKey] = 'test-custom__css_class';
- return obj;
- },
- {}
- ),
- tabindex: _.reduce(
- [
- "textField", "textArea", "number", "password", "checkbox", "selectBoxes", "select", "radio", "email", "url", "phoneNumber",
- //"tags","form", //BUG
- "address", "dateTime",
- //"day", //BUG
- "time", "currency",
- //"survey", //BUG
- //"signature",
- //"fieldset", "dataGrid", "editGrid", "tree", "file", //BUG
- "submit"
- ],
- (obj, componentKey, index) => {
- obj[componentKey] = index;
- return obj;
- },
- {} ),
- hidden: _.reduce(
- [
- "form","textField", "textArea", "number", "password", "checkbox", "selectBoxes", "select", "radio", "email", "url", "phoneNumber", "tags", "address", "dateTime", "day", "time", "currency", "survey",
- //"signature",
- "html", "content", "columns", "fieldset", "panel", "table", "tabs", "well", "container", "dataMap", "dataGrid", "editGrid", "tree", "file", "submit"
- ],
- (obj, componentKey) => {
- obj[componentKey] = true;
- return obj;
- },
- {} ),
- hideLabel: _.reduce(
- [
- "form","textField", "textArea", "number", "password", "checkbox", "selectBoxes", "select", "radio", "email", "url", "phoneNumber", "tags", "address", "dateTime", "day", "time", "currency", "survey",
- //"signature",
- "panel", "container", "dataMap", "dataGrid", "editGrid", "tree", "file"
- ],
- (obj, componentKey) => {
- obj[componentKey] = true;
- return obj;
- },
- {} ),
- disabled: _.reduce(
- [
- "form", "textField", "textArea", "number", "password", "checkbox", "selectBoxes", "select", "radio", "email", "url", "phoneNumber", "tags", "address", "dateTime", "day", "time", "currency", "survey",
- //"signature",
- "fieldset", "panel", "container", "dataMap", "dataGrid", "editGrid", "tree", "file", "submit",
- ],
- (obj, componentKey) => {
- obj[componentKey] = true;
- return obj;
- },
- {} ),
- defaultValue: {
- textField: 'test default value',
- textArea: 'test default value',
- number: 55,
- checkbox: true,
- selectBoxes: {a: true, b: false, c:true},
- select: 'a',
- radio: 'b',
- email: 'user@example.com',
- url: 'https://portal.form.io',
- phoneNumber: '(555) 555-5555',
- tags: 'default',
- address: {
- address: {county: "Dallas County", state: "Texas", country: "United States", country_code: "us"},
- boundingbox: (4) ["32.5453486", "32.9899027", "-97.0383833", "-96.5168819"],
- class: "boundary",
- display_name: "Dallas County, Texas, United States",
- icon: "https://nominatim.openstreetmap.org/ui/mapicons//poi_boundary_administrative.p.20.png",
- importance: 0.6662149661993487,
- lat: "32.7620405",
- licence: "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright",
- lon: "-96.7790069",
- osm_id: 1837698,
- osm_type: "relation",
- place_id: 256774876,
- type: "administrative",
- },
- dateTime: '2021-02-03T12:00:00',
- day: '01/05/2005',
- time: '04:15:00',
- currency: 20,
- survey: {
- question1: 'yes',
- question2: 'no'
- },
- dataGrid: [
- {textFieldDataGrid: "default1"},
- {textFieldDataGrid: "default2"}
- ],
- tree: {
- children: [{ children: [], data: {textFieldTree: 'default2'} }],
- data:{ textFieldTree: 'default1' }
+ return obj;
+ },
+ {},
+ ),
+ description: _.reduce(
+ [
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'checkbox',
+ 'selectBoxes',
+ 'select',
+ 'radio',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'tags',
+ 'address',
+ 'dateTime',
+ 'day',
+ 'time',
+ 'currency',
+ 'survey',
+ //"signature",
+ 'dataMap',
+ 'dataGrid',
+ 'editGrid',
+ 'tree',
+ 'file',
+ 'submit',
+ ],
+ (obj, componentKey, index) => {
+ obj[componentKey] = 'test description' + index;
+ return obj;
+ },
+ {},
+ ),
+ tooltip: _.reduce(
+ [
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'checkbox',
+ 'selectBoxes',
+ 'select',
+ 'radio',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'tags',
+ 'address',
+ 'dateTime',
+ 'day',
+ 'time',
+ 'currency',
+ 'survey',
+ //"signature",
+ 'fieldset',
+ 'panel',
+ 'container',
+ 'dataMap',
+ 'dataGrid',
+ 'editGrid',
+ 'tree',
+ 'file',
+ 'submit',
+ ],
+ (obj, componentKey, index) => {
+ obj[componentKey] = 'test tooltip' + index;
+ return obj;
+ },
+ {},
+ ),
+ prefix: _.reduce(
+ [
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'currency',
+ ],
+ (obj, componentKey, index) => {
+ obj[componentKey] = 'test prefix' + index;
+ return obj;
+ },
+ {},
+ ),
+ suffix: _.reduce(
+ [
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'currency',
+ ],
+ (obj, componentKey, index) => {
+ obj[componentKey] = 'test suffix' + index;
+ return obj;
+ },
+ {},
+ ),
+ customClass: _.reduce(
+ [
+ 'form',
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'checkbox',
+ 'selectBoxes',
+ 'select',
+ 'radio',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'tags',
+ 'address',
+ 'dateTime',
+ 'day',
+ 'time',
+ 'currency',
+ 'survey',
+ //"signature",
+ 'html',
+ 'content',
+ 'columns',
+ 'fieldset',
+ 'panel',
+ 'table',
+ 'tabs',
+ 'well',
+ 'hidden',
+ 'container',
+ 'dataMap',
+ 'dataGrid',
+ 'editGrid',
+ 'tree',
+ 'file',
+ 'submit',
+ ],
+ (obj, componentKey) => {
+ obj[componentKey] = 'test-custom__css_class';
+ return obj;
+ },
+ {},
+ ),
+ tabindex: _.reduce(
+ [
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'checkbox',
+ 'selectBoxes',
+ 'select',
+ 'radio',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ //"tags","form", //BUG
+ 'address',
+ 'dateTime',
+ //"day", //BUG
+ 'time',
+ 'currency',
+ //"survey", //BUG
+ //"signature",
+ //"fieldset", "dataGrid", "editGrid", "tree", "file", //BUG
+ 'submit',
+ ],
+ (obj, componentKey, index) => {
+ obj[componentKey] = index;
+ return obj;
+ },
+ {},
+ ),
+ hidden: _.reduce(
+ [
+ 'form',
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'checkbox',
+ 'selectBoxes',
+ 'select',
+ 'radio',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'tags',
+ 'address',
+ 'dateTime',
+ 'day',
+ 'time',
+ 'currency',
+ 'survey',
+ //"signature",
+ 'html',
+ 'content',
+ 'columns',
+ 'fieldset',
+ 'panel',
+ 'table',
+ 'tabs',
+ 'well',
+ 'container',
+ 'dataMap',
+ 'dataGrid',
+ 'editGrid',
+ 'tree',
+ 'file',
+ 'submit',
+ ],
+ (obj, componentKey) => {
+ obj[componentKey] = true;
+ return obj;
+ },
+ {},
+ ),
+ hideLabel: _.reduce(
+ [
+ 'form',
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'checkbox',
+ 'selectBoxes',
+ 'select',
+ 'radio',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'tags',
+ 'address',
+ 'dateTime',
+ 'day',
+ 'time',
+ 'currency',
+ 'survey',
+ //"signature",
+ 'panel',
+ 'container',
+ 'dataMap',
+ 'dataGrid',
+ 'editGrid',
+ 'tree',
+ 'file',
+ ],
+ (obj, componentKey) => {
+ obj[componentKey] = true;
+ return obj;
+ },
+ {},
+ ),
+ disabled: _.reduce(
+ [
+ 'form',
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'checkbox',
+ 'selectBoxes',
+ 'select',
+ 'radio',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'tags',
+ 'address',
+ 'dateTime',
+ 'day',
+ 'time',
+ 'currency',
+ 'survey',
+ //"signature",
+ 'fieldset',
+ 'panel',
+ 'container',
+ 'dataMap',
+ 'dataGrid',
+ 'editGrid',
+ 'tree',
+ 'file',
+ 'submit',
+ ],
+ (obj, componentKey) => {
+ obj[componentKey] = true;
+ return obj;
+ },
+ {},
+ ),
+ defaultValue: {
+ textField: 'test default value',
+ textArea: 'test default value',
+ number: 55,
+ checkbox: true,
+ selectBoxes: { a: true, b: false, c: true },
+ select: 'a',
+ radio: 'b',
+ email: 'user@example.com',
+ url: 'https://portal.form.io',
+ phoneNumber: '(555) 555-5555',
+ tags: 'default',
+ address: {
+ address: {
+ county: 'Dallas County',
+ state: 'Texas',
+ country: 'United States',
+ country_code: 'us',
+ },
+ boundingbox: (4)[
+ ('32.5453486', '32.9899027', '-97.0383833', '-96.5168819')
+ ],
+ class: 'boundary',
+ display_name: 'Dallas County, Texas, United States',
+ icon: 'https://nominatim.openstreetmap.org/ui/mapicons//poi_boundary_administrative.p.20.png',
+ importance: 0.6662149661993487,
+ lat: '32.7620405',
+ licence:
+ 'Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright',
+ lon: '-96.7790069',
+ osm_id: 1837698,
+ osm_type: 'relation',
+ place_id: 256774876,
+ type: 'administrative',
+ },
+ dateTime: '2021-02-03T12:00:00',
+ day: '01/05/2005',
+ time: '04:15:00',
+ currency: 20,
+ survey: {
+ question1: 'yes',
+ question2: 'no',
+ },
+ dataGrid: [
+ { textFieldDataGrid: 'default1' },
+ { textFieldDataGrid: 'default2' },
+ ],
+ tree: {
+ children: [{ children: [], data: { textFieldTree: 'default2' } }],
+ data: { textFieldTree: 'default1' },
+ },
},
- },
- customDefaultValue: {
- form: {
- js: `value = {
+ customDefaultValue: {
+ form: {
+ js: `value = {
data: {
dataGridChild: [
{ textAreaInsideChildDataGrid: data.basis + " default in nested form1" },
@@ -176,42 +397,109 @@ export default {
timeChild: "11:55:00",
},
}`,
- expectedValue: {
- data: {
- dataGridChild: [
- { textAreaInsideChildDataGrid: "base value default in nested form1" },
- { textAreaInsideChildDataGrid: "base value default in nested form2" }
- ],
- numberInsideChildPanel: 10,
- textFieldChild: "base value default in nested form",
- timeChild: "11:55:00",
+ expectedValue: {
+ data: {
+ dataGridChild: [
+ {
+ textAreaInsideChildDataGrid:
+ 'base value default in nested form1',
+ },
+ {
+ textAreaInsideChildDataGrid:
+ 'base value default in nested form2',
+ },
+ ],
+ numberInsideChildPanel: 10,
+ textFieldChild: 'base value default in nested form',
+ timeChild: '11:55:00',
+ },
+ },
},
- }
- },
- textField: { js:'value = data.basis + " default"', expectedValue: 'base value default'},
- textArea: { js:'value = data.basis + " default"', expectedValue: 'base value default'},
- number: { js: 'value = data.basis.length', expectedValue: 10 },
- //checkbox: { js:'value = data.basis.length > 5', expectedValue: true },// BUG
- selectBoxes: { js:'value = {a: data.basis.length > 5, b: data.basis.length > 10 , c: data.basis.length > 20}', expectedValue: { a: true, b: false , c: false}},
- select: { js:'value = data.basis.length > 5 ? "a" : "b"', expectedValue: 'a'},
- radio: { js:'value = data.basis.length < 5 ? "c" : "b"', expectedValue: 'b'},
- email: { js:'value = `${data.basis.split(" ").join("")}@example.com`', expectedValue: 'basevalue@example.com'},
- url: { js: 'value = `https://${data.basis.split(" ").join("")}.com`', expectedValue: 'https://basevalue.com'},
- phoneNumber: { js:'value = `(${data.basis ? "222":"333"}) 555-5555`', expectedValue: '(222) 555-5555'},
- tags: { js:'value = data.basis.split(" ").join(",")', expectedValue: 'base,value'},
- dateTime: { js:"var date = moment('2005-02-03T12:00:00');var now = moment();value = date < now ? '2023-03-03T12:00:00' : '2003-12-12T12:00:00';", expectedValue: '2023-03-03T12:00:00'},
- day: { js:'value = data.basis.length > 5 ? "05/05/2015" : "03/03/2003"', expectedValue: '05/05/2015'},
- time: { js:'value = data.basis.length > 5 ? "04:45:00" : "04:05:00"', expectedValue: '04:45:00'},
- currency: { js:'value = data.basis.length', expectedValue: 10 },
- survey: { js:"value = { question1: data.basis.length ? 'yes' : 'no', question2: !data.basis.length ? 'yes' : 'no'}", expectedValue: { question1: 'yes' , question2: 'no'}},
- //signature: 'test-custom__css_class',
- hidden: { js:'value = data.basis.length', expectedValue: 10 },
- container: { js:'value = { textFieldContainer: data.basis + " default" }', expectedValue: { textFieldContainer:'base value default'}},
- dataMap: { js:'value = { key: data.basis + " default" }', expectedValue: { key: 'base value default' } },
- dataGrid: { js:'value = [{ textFieldDataGrid: data.basis + " default1" }, { textFieldDataGrid: data.basis + " default2" }]', expectedValue: [{ textFieldDataGrid: 'base value default1' }, { textFieldDataGrid: 'base value default2' }]},
- editGrid: { js:'value = [{textFieldEditGrid: data.basis + " default"}]', expectedValue: [{textFieldEditGrid: 'base value default'}]},
- tree: { js:"value = {children: [], data:{ textFieldTree: data.basis + ' default' } }", expectedValue: {children: [], data:{ textFieldTree: 'base value default' } }},
- file: { js:`
+ textField: {
+ js: 'value = data.basis + " default"',
+ expectedValue: 'base value default',
+ },
+ textArea: {
+ js: 'value = data.basis + " default"',
+ expectedValue: 'base value default',
+ },
+ number: { js: 'value = data.basis.length', expectedValue: 10 },
+ //checkbox: { js:'value = data.basis.length > 5', expectedValue: true },// BUG
+ selectBoxes: {
+ js: 'value = {a: data.basis.length > 5, b: data.basis.length > 10 , c: data.basis.length > 20}',
+ expectedValue: { a: true, b: false, c: false },
+ },
+ select: {
+ js: 'value = data.basis.length > 5 ? "a" : "b"',
+ expectedValue: 'a',
+ },
+ radio: {
+ js: 'value = data.basis.length < 5 ? "c" : "b"',
+ expectedValue: 'b',
+ },
+ email: {
+ js: 'value = `${data.basis.split(" ").join("")}@example.com`',
+ expectedValue: 'basevalue@example.com',
+ },
+ url: {
+ js: 'value = `https://${data.basis.split(" ").join("")}.com`',
+ expectedValue: 'https://basevalue.com',
+ },
+ phoneNumber: {
+ js: 'value = `(${data.basis ? "222":"333"}) 555-5555`',
+ expectedValue: '(222) 555-5555',
+ },
+ tags: {
+ js: 'value = data.basis.split(" ").join(",")',
+ expectedValue: 'base,value',
+ },
+ dateTime: {
+ js: "var date = moment('2005-02-03T12:00:00');var now = moment();value = date < now ? '2023-03-03T12:00:00' : '2003-12-12T12:00:00';",
+ expectedValue: '2023-03-03T12:00:00',
+ },
+ day: {
+ js: 'value = data.basis.length > 5 ? "05/05/2015" : "03/03/2003"',
+ expectedValue: '05/05/2015',
+ },
+ time: {
+ js: 'value = data.basis.length > 5 ? "04:45:00" : "04:05:00"',
+ expectedValue: '04:45:00',
+ },
+ currency: { js: 'value = data.basis.length', expectedValue: 10 },
+ survey: {
+ js: "value = { question1: data.basis.length ? 'yes' : 'no', question2: !data.basis.length ? 'yes' : 'no'}",
+ expectedValue: { question1: 'yes', question2: 'no' },
+ },
+ //signature: 'test-custom__css_class',
+ hidden: { js: 'value = data.basis.length', expectedValue: 10 },
+ container: {
+ js: 'value = { textFieldContainer: data.basis + " default" }',
+ expectedValue: { textFieldContainer: 'base value default' },
+ },
+ dataMap: {
+ js: 'value = { key: data.basis + " default" }',
+ expectedValue: { key: 'base value default' },
+ },
+ dataGrid: {
+ js: 'value = [{ textFieldDataGrid: data.basis + " default1" }, { textFieldDataGrid: data.basis + " default2" }]',
+ expectedValue: [
+ { textFieldDataGrid: 'base value default1' },
+ { textFieldDataGrid: 'base value default2' },
+ ],
+ },
+ editGrid: {
+ js: 'value = [{textFieldEditGrid: data.basis + " default"}]',
+ expectedValue: [{ textFieldEditGrid: 'base value default' }],
+ },
+ tree: {
+ js: "value = {children: [], data:{ textFieldTree: data.basis + ' default' } }",
+ expectedValue: {
+ children: [],
+ data: { textFieldTree: 'base value default' },
+ },
+ },
+ file: {
+ js: `
value = [{
name: "test file-15c248a4-401f-4456-aff9-abcbdf0f7bfa.docx",
originalName: "test file.docx",
@@ -220,55 +508,124 @@ export default {
type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
url: "data:application/vnd.openxmlformats-officedocument",
}]`,
- expectedValue: [{
- name: "test file-15c248a4-401f-4456-aff9-abcbdf0f7bfa.docx",
- originalName: "test file.docx",
- size: 11396,
- storage: "base64",
- type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
- url: "data:application/vnd.openxmlformats-officedocument",
- }]
- }
- },
- redrawOn:_.reduce(
- [
- "textField", "textArea", "number", "password", "checkbox", "selectBoxes", "select", "radio", "email", "url", "phoneNumber", "tags", "address", "dateTime", "day", "time", "currency", "survey",
- //"signature",
- "hidden", "container", "dataMap", "dataGrid", "editGrid", "tree", "file"
- ],
- (obj, componentKey) => {
- obj[componentKey] = 'checkbox';
- return obj;
- },
- {} ),
- multiple:_.reduce(
- [
- "textField", "textArea", "number", "password", "select", "email", "url", "phoneNumber", "address", "dateTime", "time", "currency",
- //"tree"//BUG,
- "file"
- ],
- (obj, componentKey) => {
- obj[componentKey] = true;
- return obj;
- },
- {} ),
- modalEdit:_.reduce(
- [
- "form","textField", "textArea", "number", "password", "checkbox", "selectBoxes", "select", "radio", "email", "url", "phoneNumber", "tags", "address", "dateTime", "day", "time", "currency", "survey",
- //"signature",
- "html", "content",
- "columns", "fieldset", "panel", "table", "tabs", "well", //BUG: they are excluded from some tests of modalEdit setting
- "hidden", "container", "dataMap", "dataGrid", "editGrid", "tree", "file", "submit"
- ],
- (obj, componentKey) => {
- obj[componentKey] = true;
- return obj;
+ expectedValue: [
+ {
+ name: 'test file-15c248a4-401f-4456-aff9-abcbdf0f7bfa.docx',
+ originalName: 'test file.docx',
+ size: 11396,
+ storage: 'base64',
+ type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
+ url: 'data:application/vnd.openxmlformats-officedocument',
+ },
+ ],
+ },
},
- {}
- ),
- calculateValue: {
- form: {
- js: `value = {
+ redrawOn: _.reduce(
+ [
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'checkbox',
+ 'selectBoxes',
+ 'select',
+ 'radio',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'tags',
+ 'address',
+ 'dateTime',
+ 'day',
+ 'time',
+ 'currency',
+ 'survey',
+ //"signature",
+ 'hidden',
+ 'container',
+ 'dataMap',
+ 'dataGrid',
+ 'editGrid',
+ 'tree',
+ 'file',
+ ],
+ (obj, componentKey) => {
+ obj[componentKey] = 'checkbox';
+ return obj;
+ },
+ {},
+ ),
+ multiple: _.reduce(
+ [
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'select',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'address',
+ 'dateTime',
+ 'time',
+ 'currency',
+ //"tree"//BUG,
+ 'file',
+ ],
+ (obj, componentKey) => {
+ obj[componentKey] = true;
+ return obj;
+ },
+ {},
+ ),
+ modalEdit: _.reduce(
+ [
+ 'form',
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'checkbox',
+ 'selectBoxes',
+ 'select',
+ 'radio',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'tags',
+ 'address',
+ 'dateTime',
+ 'day',
+ 'time',
+ 'currency',
+ 'survey',
+ //"signature",
+ 'html',
+ 'content',
+ 'columns',
+ 'fieldset',
+ 'panel',
+ 'table',
+ 'tabs',
+ 'well', //BUG: they are excluded from some tests of modalEdit setting
+ 'hidden',
+ 'container',
+ 'dataMap',
+ 'dataGrid',
+ 'editGrid',
+ 'tree',
+ 'file',
+ 'submit',
+ ],
+ (obj, componentKey) => {
+ obj[componentKey] = true;
+ return obj;
+ },
+ {},
+ ),
+ calculateValue: {
+ form: {
+ js: `value = {
data: {
dataGridChild: [
{ textAreaInsideChildDataGrid: data.basis + " calculated in nested form1" },
@@ -279,276 +636,621 @@ export default {
timeChild: "11:55:00",
},
}`,
- expectedValue: (basis) => {
- return {
- data: {
- dataGridChild: [
- { textAreaInsideChildDataGrid: basis + " calculated in nested form1" },
- { textAreaInsideChildDataGrid: basis + " calculated in nested form2" }
- ],
- numberInsideChildPanel: basis.length,
- textFieldChild: basis + " calculated in nested form",
- timeChild: "11:55:00",
- },
- };
- }
- },
- textField: { js:'value = `${data.basis} calculated`', expectedValue: (basis) => `${basis} calculated` },
- textArea: { js:'value = `${data.basis} calculated`', expectedValue: (basis) => `${basis} calculated`},
- number: { js: 'value = data.basis.length', expectedValue: (basis) => basis.length },
- checkbox: { js:'value = data.basis.length > 5', expectedValue: (basis) => basis.length > 5 },
- selectBoxes: { js:'value = { a: data.basis.length > 5, b: data.basis.length > 10 , c: data.basis.length > 20 }', expectedValue: (basis) => ({ a: basis.length > 5, b: basis.length > 10 , c: basis.length > 20})},
- select: { js:'value = data.basis.length > 5 ? "a" : "b"', expectedValue: (basis) => basis.length > 5 ? "a" : "b"},
- radio: { js:'value = data.basis.length < 5 ? "c" : "b"', expectedValue: (basis) => basis.length < 5 ? "c" : "b"},
- email: { js:'value = `${data.basis.split(" ").join("")}@example.com`', expectedValue: (basis) => `${basis.split(" ").join("")}@example.com`},
- url: { js: 'value = `https://${data.basis.split(" ").join("")}.com`', expectedValue: (basis) => `https://${basis.split(" ").join("")}.com`},
- phoneNumber: { js:'value = `(${data.basis ? "222":"333"}) 555-5555`', expectedValue: (basis) => `(${basis ? "222":"333"}) 555-5555`},
- tags: { js:'value = data.basis.split(" ").join(",")', expectedValue: (basis) => basis.split(" ").join(",")},
- dateTime: { js:"var date = moment('2005-02-03T12:00:00');var now = moment();value = date < now ? '2023-03-03T12:00:00' : '2003-12-12T12:00:00';", expectedValue: () => {
- const date = moment('2005-02-03T12:00:00');
- const now = moment();
+ expectedValue: (basis) => {
+ return {
+ data: {
+ dataGridChild: [
+ {
+ textAreaInsideChildDataGrid:
+ basis + ' calculated in nested form1',
+ },
+ {
+ textAreaInsideChildDataGrid:
+ basis + ' calculated in nested form2',
+ },
+ ],
+ numberInsideChildPanel: basis.length,
+ textFieldChild: basis + ' calculated in nested form',
+ timeChild: '11:55:00',
+ },
+ };
+ },
+ },
+ textField: {
+ js: 'value = `${data.basis} calculated`',
+ expectedValue: (basis) => `${basis} calculated`,
+ },
+ textArea: {
+ js: 'value = `${data.basis} calculated`',
+ expectedValue: (basis) => `${basis} calculated`,
+ },
+ number: {
+ js: 'value = data.basis.length',
+ expectedValue: (basis) => basis.length,
+ },
+ checkbox: {
+ js: 'value = data.basis.length > 5',
+ expectedValue: (basis) => basis.length > 5,
+ },
+ selectBoxes: {
+ js: 'value = { a: data.basis.length > 5, b: data.basis.length > 10 , c: data.basis.length > 20 }',
+ expectedValue: (basis) => ({
+ a: basis.length > 5,
+ b: basis.length > 10,
+ c: basis.length > 20,
+ }),
+ },
+ select: {
+ js: 'value = data.basis.length > 5 ? "a" : "b"',
+ expectedValue: (basis) => (basis.length > 5 ? 'a' : 'b'),
+ },
+ radio: {
+ js: 'value = data.basis.length < 5 ? "c" : "b"',
+ expectedValue: (basis) => (basis.length < 5 ? 'c' : 'b'),
+ },
+ email: {
+ js: 'value = `${data.basis.split(" ").join("")}@example.com`',
+ expectedValue: (basis) =>
+ `${basis.split(' ').join('')}@example.com`,
+ },
+ url: {
+ js: 'value = `https://${data.basis.split(" ").join("")}.com`',
+ expectedValue: (basis) =>
+ `https://${basis.split(' ').join('')}.com`,
+ },
+ phoneNumber: {
+ js: 'value = `(${data.basis ? "222":"333"}) 555-5555`',
+ expectedValue: (basis) => `(${basis ? '222' : '333'}) 555-5555`,
+ },
+ tags: {
+ js: 'value = data.basis.split(" ").join(",")',
+ expectedValue: (basis) => basis.split(' ').join(','),
+ },
+ dateTime: {
+ js: "var date = moment('2005-02-03T12:00:00');var now = moment();value = date < now ? '2023-03-03T12:00:00' : '2003-12-12T12:00:00';",
+ expectedValue: () => {
+ const date = moment('2005-02-03T12:00:00');
+ const now = moment();
- return date < now ? '2023-03-03T12:00:00' : '2003-12-12T12:00:00'
- }},
- day: { js:'value = data.basis.length > 5 ? "05/05/2015" : "03/03/2003"', expectedValue: (basis) => basis.length > 5 ? "05/05/2015" : "03/03/2003"},
- time: { js:'value = data.basis.length > 5 ? "04:45:00" : "04:05:00"', expectedValue: (basis) => basis.length > 5 ? "04:45:00" : "04:05:00"},
- currency: { js:'value = data.basis.length', expectedValue: (basis) => basis.length },
- survey: { js:"value = { question1: data.basis.length ? 'yes' : 'no', question2: !data.basis.length ? 'yes' : 'no'}", expectedValue: (basis) => ({ question1: basis.length ? 'yes' : 'no', question2: !basis.length ? 'yes' : 'no'})},
- hidden: { js:'value = data.basis.length', expectedValue: (basis) => basis.length },
- container: { js:'value = { textFieldContainer: data.basis + " calculated" }', expectedValue: (basis) => ({ textFieldContainer: basis + " calculated" })},
- dataMap: { js:'value = { key: data.basis + " calculated" }', expectedValue: (basis) => ({ key: basis + " calculated" }) },
- dataGrid: { js:'value = [{ textFieldDataGrid: data.basis + " calculated1" }, { textFieldDataGrid: data.basis + " calculated2" }]', expectedValue: (basis) => [{ textFieldDataGrid: basis + " calculated1" }, { textFieldDataGrid: basis + " calculated2" }]},
- editGrid: { js:'value = [{textFieldEditGrid: data.basis + " calculated"}]', expectedValue: (basis) => [{textFieldEditGrid: basis + " calculated"}]},
- tree: { js:"value = {children: [], data:{ textFieldTree: data.basis + ' calculated' } }", expectedValue: (basis) => ({children: [], data:{ textFieldTree: basis + ' calculated' }}) },
- file: { js: 'value = [{ name: `${data.basis}-15c248a4-401f-4456-aff9-abcbdf0f7bfa.docx`, originalName: `${data.basis}.docx`, size: 11396, storage: "base64", type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", url: "data:application/vnd.openxmlformats-officedocument", }]',
- expectedValue: (basis) => [{
- name: `${basis}-15c248a4-401f-4456-aff9-abcbdf0f7bfa.docx`,
- originalName: `${basis}.docx`,
- size: 11396,
- storage: "base64",
- type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
- url: "data:application/vnd.openxmlformats-officedocument",
- }]
- }
- },
- clearOnHide: _.reduce(
- [
- "textField", "textArea", "number", "password", "checkbox", "selectBoxes", "select", "radio", "email", "url", "phoneNumber", "tags", "address", "dateTime", "day", "time", "currency", "survey",
- //"signature",
- "container", "dataMap", "dataGrid", "editGrid", "tree", "file"
- ],
- (obj, componentKey) => {
- obj[componentKey] = true;
- return obj;
- },
- {}
- ),
- 'validate.required':_.reduce(
- [
- "textField", "extArea", "number", "password", "checkbox", "selectBoxes", "select", "radio", "email", "url", "phoneNumber", "tags", "address", "dateTime", "day", "time", "currency", "survey",
- //"signature",
- //"container","dataGrid", // BUG: required validation does not work
- "dataMap", "editGrid", "tree", "file", "submit"
- ],
- (obj, componentKey) => {
- obj[componentKey] = true;
- return obj;
- },
- {}
- ),
- 'validate.custom': _.reduce(
- [
- "textField", "textArea", "number", "password", "checkbox", "selectBoxes", "select", "radio", "email", "url", "phoneNumber", "tags", "address", "dateTime", "day",
- "time", "currency", "survey",
- //"signature",
- "container", "dataMap", "dataGrid", "editGrid", "tree", "file", "submit"
- ],
- (obj, componentKey) => {
- const value = _.get(basicValues, componentKey);
- obj[componentKey] = `valid = !_.isEqual(instance.dataValue, ${_.isNumber(value) ? value : JSON.stringify(value)}) ? true : 'Custom validation message: component is invalid.'` ;
- return obj;
- },
- {}
- ),
- 'validate_nested_components': _.reduce(
- [
- "form","columns", "fieldset", "panel", "table", "tabs", "well", "container", "dataMap", "dataGrid", "editGrid", "tree", "submit"
- ],
- (obj, componentKey) => {
- obj[componentKey] = true;
- return obj;
- },
- {}
- ),
- 'conditional': _.reduce(
- [
- "form","textField", "textArea", "number", "password", "checkbox", "selectBoxes", "select", "radio", "email", "url", "phoneNumber", "tags", "address", "dateTime", "day", "time", "currency", "survey",
- //"signature",
- "html", "content", "columns", "fieldset", "panel", "table", "tabs", "well", "hidden", "container", "dataMap", "dataGrid", "editGrid", "tree", "file", "submit"
- ],
- (obj, componentKey) => {
- obj[componentKey] = { show: true, when: "basis", eq: "show" };
- return obj;
- },
- {}
- ),
- 'customConditional': _.reduce(
- [
- "form","textField", "textArea", "number", "password", "checkbox", "selectBoxes", "select", "radio", "email", "url", "phoneNumber", "tags", "address", "dateTime", "day", "time", "currency", "survey",
- //"signature",
- "html", "content", "columns", "fieldset", "panel", "table", "tabs", "well", "hidden", "container", "dataMap", "dataGrid", "editGrid", "tree", "file", "submit"
- ],
- (obj, componentKey) => {
- obj[componentKey] = "show = _.isEqual(data.basis, 'show');"
- return obj;
+ return date < now
+ ? '2023-03-03T12:00:00'
+ : '2003-12-12T12:00:00';
+ },
+ },
+ day: {
+ js: 'value = data.basis.length > 5 ? "05/05/2015" : "03/03/2003"',
+ expectedValue: (basis) =>
+ basis.length > 5 ? '05/05/2015' : '03/03/2003',
+ },
+ time: {
+ js: 'value = data.basis.length > 5 ? "04:45:00" : "04:05:00"',
+ expectedValue: (basis) =>
+ basis.length > 5 ? '04:45:00' : '04:05:00',
+ },
+ currency: {
+ js: 'value = data.basis.length',
+ expectedValue: (basis) => basis.length,
+ },
+ survey: {
+ js: "value = { question1: data.basis.length ? 'yes' : 'no', question2: !data.basis.length ? 'yes' : 'no'}",
+ expectedValue: (basis) => ({
+ question1: basis.length ? 'yes' : 'no',
+ question2: !basis.length ? 'yes' : 'no',
+ }),
+ },
+ hidden: {
+ js: 'value = data.basis.length',
+ expectedValue: (basis) => basis.length,
+ },
+ container: {
+ js: 'value = { textFieldContainer: data.basis + " calculated" }',
+ expectedValue: (basis) => ({
+ textFieldContainer: basis + ' calculated',
+ }),
+ },
+ dataMap: {
+ js: 'value = { key: data.basis + " calculated" }',
+ expectedValue: (basis) => ({ key: basis + ' calculated' }),
+ },
+ dataGrid: {
+ js: 'value = [{ textFieldDataGrid: data.basis + " calculated1" }, { textFieldDataGrid: data.basis + " calculated2" }]',
+ expectedValue: (basis) => [
+ { textFieldDataGrid: basis + ' calculated1' },
+ { textFieldDataGrid: basis + ' calculated2' },
+ ],
+ },
+ editGrid: {
+ js: 'value = [{textFieldEditGrid: data.basis + " calculated"}]',
+ expectedValue: (basis) => [
+ { textFieldEditGrid: basis + ' calculated' },
+ ],
+ },
+ tree: {
+ js: "value = {children: [], data:{ textFieldTree: data.basis + ' calculated' } }",
+ expectedValue: (basis) => ({
+ children: [],
+ data: { textFieldTree: basis + ' calculated' },
+ }),
+ },
+ file: {
+ js: 'value = [{ name: `${data.basis}-15c248a4-401f-4456-aff9-abcbdf0f7bfa.docx`, originalName: `${data.basis}.docx`, size: 11396, storage: "base64", type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", url: "data:application/vnd.openxmlformats-officedocument", }]',
+ expectedValue: (basis) => [
+ {
+ name: `${basis}-15c248a4-401f-4456-aff9-abcbdf0f7bfa.docx`,
+ originalName: `${basis}.docx`,
+ size: 11396,
+ storage: 'base64',
+ type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
+ url: 'data:application/vnd.openxmlformats-officedocument',
+ },
+ ],
+ },
},
- {}
- ),
- logic: _.reduce(
- [
- "form","textField", "textArea", "number", "password", "checkbox", "selectBoxes", "select", "radio", "email", "url", "phoneNumber", "tags", "address", "dateTime", "day", "time", "currency", "survey",
- //"signature",
- "columns", "fieldset", "panel", "table", "tabs", "well", "hidden", "container", "dataMap", "dataGrid", "editGrid", "tree", "file", "submit"
- ],
- (obj, componentKey) => {
- const value = _.get(basicValues, componentKey);
+ clearOnHide: _.reduce(
+ [
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'checkbox',
+ 'selectBoxes',
+ 'select',
+ 'radio',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'tags',
+ 'address',
+ 'dateTime',
+ 'day',
+ 'time',
+ 'currency',
+ 'survey',
+ //"signature",
+ 'container',
+ 'dataMap',
+ 'dataGrid',
+ 'editGrid',
+ 'tree',
+ 'file',
+ ],
+ (obj, componentKey) => {
+ obj[componentKey] = true;
+ return obj;
+ },
+ {},
+ ),
+ 'validate.required': _.reduce(
+ [
+ 'textField',
+ 'extArea',
+ 'number',
+ 'password',
+ 'checkbox',
+ 'selectBoxes',
+ 'select',
+ 'radio',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'tags',
+ 'address',
+ 'dateTime',
+ 'day',
+ 'time',
+ 'currency',
+ 'survey',
+ //"signature",
+ //"container","dataGrid", // BUG: required validation does not work
+ 'dataMap',
+ 'editGrid',
+ 'tree',
+ 'file',
+ 'submit',
+ ],
+ (obj, componentKey) => {
+ obj[componentKey] = true;
+ return obj;
+ },
+ {},
+ ),
+ 'validate.custom': _.reduce(
+ [
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'checkbox',
+ 'selectBoxes',
+ 'select',
+ 'radio',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'tags',
+ 'address',
+ 'dateTime',
+ 'day',
+ 'time',
+ 'currency',
+ 'survey',
+ //"signature",
+ 'container',
+ 'dataMap',
+ 'dataGrid',
+ 'editGrid',
+ 'tree',
+ 'file',
+ 'submit',
+ ],
+ (obj, componentKey) => {
+ const value = _.get(basicValues, componentKey);
+ obj[componentKey] = `valid = !_.isEqual(instance.dataValue, ${
+ _.isNumber(value) ? value : JSON.stringify(value)
+ }) ? true : 'Custom validation message: component is invalid.'`;
+ return obj;
+ },
+ {},
+ ),
+ validate_nested_components: _.reduce(
+ [
+ 'form',
+ 'columns',
+ 'fieldset',
+ 'panel',
+ 'table',
+ 'tabs',
+ 'well',
+ 'container',
+ 'dataMap',
+ 'dataGrid',
+ 'editGrid',
+ 'tree',
+ 'submit',
+ ],
+ (obj, componentKey) => {
+ obj[componentKey] = true;
+ return obj;
+ },
+ {},
+ ),
+ conditional: _.reduce(
+ [
+ 'form',
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'checkbox',
+ 'selectBoxes',
+ 'select',
+ 'radio',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'tags',
+ 'address',
+ 'dateTime',
+ 'day',
+ 'time',
+ 'currency',
+ 'survey',
+ //"signature",
+ 'html',
+ 'content',
+ 'columns',
+ 'fieldset',
+ 'panel',
+ 'table',
+ 'tabs',
+ 'well',
+ 'hidden',
+ 'container',
+ 'dataMap',
+ 'dataGrid',
+ 'editGrid',
+ 'tree',
+ 'file',
+ 'submit',
+ ],
+ (obj, componentKey) => {
+ obj[componentKey] = { show: true, when: 'basis', eq: 'show' };
+ return obj;
+ },
+ {},
+ ),
+ customConditional: _.reduce(
+ [
+ 'form',
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'checkbox',
+ 'selectBoxes',
+ 'select',
+ 'radio',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'tags',
+ 'address',
+ 'dateTime',
+ 'day',
+ 'time',
+ 'currency',
+ 'survey',
+ //"signature",
+ 'html',
+ 'content',
+ 'columns',
+ 'fieldset',
+ 'panel',
+ 'table',
+ 'tabs',
+ 'well',
+ 'hidden',
+ 'container',
+ 'dataMap',
+ 'dataGrid',
+ 'editGrid',
+ 'tree',
+ 'file',
+ 'submit',
+ ],
+ (obj, componentKey) => {
+ obj[componentKey] = "show = _.isEqual(data.basis, 'show');";
+ return obj;
+ },
+ {},
+ ),
+ logic: _.reduce(
+ [
+ 'form',
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'checkbox',
+ 'selectBoxes',
+ 'select',
+ 'radio',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'tags',
+ 'address',
+ 'dateTime',
+ 'day',
+ 'time',
+ 'currency',
+ 'survey',
+ //"signature",
+ 'columns',
+ 'fieldset',
+ 'panel',
+ 'table',
+ 'tabs',
+ 'well',
+ 'hidden',
+ 'container',
+ 'dataMap',
+ 'dataGrid',
+ 'editGrid',
+ 'tree',
+ 'file',
+ 'submit',
+ ],
+ (obj, componentKey) => {
+ const value = _.get(basicValues, componentKey);
- obj[componentKey] = [{
- 'name': 'test logic name (simple + value)',
- 'trigger': {
- 'type': 'simple',
- 'simple': {
- 'show': true,
- 'when': 'basis',
- 'eq': 'value action'
- }
- },
- 'actions': [{
- 'name': 'test value action',
- 'type': 'value',
- 'value': `value = ${_.isNumber(value) ? value : JSON.stringify(value)}`
- }]
- }, {
- 'name': 'test logic name (simple + property)',
- 'trigger': {
- 'type': 'simple',
- 'simple': {
- 'show': true,
- 'when': 'basis',
- 'eq': 'property action'
- }
- },
- 'actions': [{
- 'name': 'test property action',
- 'type': 'property',
- 'property': {
- 'label': 'Label',
- 'value': 'label',
- 'type': 'string'
- },
- 'text': 'changed label on property action'
- }]
- }, {
- 'name': 'test logic name (simple + merge schema)',
- 'trigger': {
- 'type': 'simple',
- 'simple': {
- 'show': true,
- 'when': 'basis',
- 'eq': 'merge schema action'
- }
- },
- 'actions': [{
- 'name': 'test merge schema action',
- 'type': 'mergeComponentSchema',
- 'schemaDefinition': 'schema = {label: "changed label on merge schema"}'
- }]
- }, {
- 'name': 'test logic name (simple + custom)',
- 'trigger': {
- 'type': 'simple',
- 'simple': {
- 'show': true,
- 'when': 'basis',
- 'eq': 'custom action'
- }
- },
- 'actions': [{
- 'name': 'test custom action',
- 'type': 'customAction',
- 'customAction': `value = ${_.isNumber(value) ? value : JSON.stringify(value)}`
- }]
- }, {
- 'name': 'test logic name (js + value)',
- 'trigger': {
- 'type': 'javascript',
- 'javascript': 'result = data.basis.length > 20'
- },
- 'actions': [{
- 'name': 'test value action',
- 'type': 'value',
- 'value': `value = ${_.isNumber(value) ? value : JSON.stringify(value)}`
- }]
- }, {
- 'name': 'test logic name (json + property)',
- 'trigger': {
- 'type': 'json',
- 'json': {
- 'if': [{
- '==': [{
- 'var': 'data.basis'
- }, 'add class']
- }, true, false]
- }
- },
- 'actions': [{
- 'name': 'test property action',
- 'type': 'property',
- 'property': {
- 'label': 'Container Custom Class',
- 'value': 'customClass',
- 'type': 'string'
- },
- 'text': 'json-logic-class'
- }]
- }, {
- 'name': 'test logic name (event + property)',
- 'trigger': {
- 'type': 'event',
- 'event': 'hide'
- },
- 'actions': [{
- 'name': 'test property action',
- 'type': 'property',
- 'property': {
- 'label': 'Hidden',
- 'value': 'hidden',
- 'type': 'boolean'
- },
- 'state': true
- }]
- }];
+ obj[componentKey] = [
+ {
+ name: 'test logic name (simple + value)',
+ trigger: {
+ type: 'simple',
+ simple: {
+ show: true,
+ when: 'basis',
+ eq: 'value action',
+ },
+ },
+ actions: [
+ {
+ name: 'test value action',
+ type: 'value',
+ value: `value = ${
+ _.isNumber(value)
+ ? value
+ : JSON.stringify(value)
+ }`,
+ },
+ ],
+ },
+ {
+ name: 'test logic name (simple + property)',
+ trigger: {
+ type: 'simple',
+ simple: {
+ show: true,
+ when: 'basis',
+ eq: 'property action',
+ },
+ },
+ actions: [
+ {
+ name: 'test property action',
+ type: 'property',
+ property: {
+ label: 'Label',
+ value: 'label',
+ type: 'string',
+ },
+ text: 'changed label on property action',
+ },
+ ],
+ },
+ {
+ name: 'test logic name (simple + merge schema)',
+ trigger: {
+ type: 'simple',
+ simple: {
+ show: true,
+ when: 'basis',
+ eq: 'merge schema action',
+ },
+ },
+ actions: [
+ {
+ name: 'test merge schema action',
+ type: 'mergeComponentSchema',
+ schemaDefinition:
+ 'schema = {label: "changed label on merge schema"}',
+ },
+ ],
+ },
+ {
+ name: 'test logic name (simple + custom)',
+ trigger: {
+ type: 'simple',
+ simple: {
+ show: true,
+ when: 'basis',
+ eq: 'custom action',
+ },
+ },
+ actions: [
+ {
+ name: 'test custom action',
+ type: 'customAction',
+ customAction: `value = ${
+ _.isNumber(value)
+ ? value
+ : JSON.stringify(value)
+ }`,
+ },
+ ],
+ },
+ {
+ name: 'test logic name (js + value)',
+ trigger: {
+ type: 'javascript',
+ javascript: 'result = data.basis.length > 20',
+ },
+ actions: [
+ {
+ name: 'test value action',
+ type: 'value',
+ value: `value = ${
+ _.isNumber(value)
+ ? value
+ : JSON.stringify(value)
+ }`,
+ },
+ ],
+ },
+ {
+ name: 'test logic name (json + property)',
+ trigger: {
+ type: 'json',
+ json: {
+ if: [
+ {
+ '==': [
+ {
+ var: 'data.basis',
+ },
+ 'add class',
+ ],
+ },
+ true,
+ false,
+ ],
+ },
+ },
+ actions: [
+ {
+ name: 'test property action',
+ type: 'property',
+ property: {
+ label: 'Container Custom Class',
+ value: 'customClass',
+ type: 'string',
+ },
+ text: 'json-logic-class',
+ },
+ ],
+ },
+ {
+ name: 'test logic name (event + property)',
+ trigger: {
+ type: 'event',
+ event: 'hide',
+ },
+ actions: [
+ {
+ name: 'test property action',
+ type: 'property',
+ property: {
+ label: 'Hidden',
+ value: 'hidden',
+ type: 'boolean',
+ },
+ state: true,
+ },
+ ],
+ },
+ ];
- return obj;
- },
- {}
- ),
- 'set_get_value': _.reduce(
- [
- "form","textField", "textArea", "number", "password", "checkbox", "selectBoxes", "select", "radio", "email", "url", "phoneNumber", "tags", "address", "dateTime", "day", "time", "currency", "survey",
- //"signature",
- "columns", "fieldset", "panel", "table", "tabs", "well", "hidden", "container", "dataMap", "dataGrid", "editGrid", "tree", "file", "submit"
- ],
- (obj, componentKey) => {
- obj[componentKey] = true;
- return obj;
- },
- {}
- ),
+ return obj;
+ },
+ {},
+ ),
+ set_get_value: _.reduce(
+ [
+ 'form',
+ 'textField',
+ 'textArea',
+ 'number',
+ 'password',
+ 'checkbox',
+ 'selectBoxes',
+ 'select',
+ 'radio',
+ 'email',
+ 'url',
+ 'phoneNumber',
+ 'tags',
+ 'address',
+ 'dateTime',
+ 'day',
+ 'time',
+ 'currency',
+ 'survey',
+ //"signature",
+ 'columns',
+ 'fieldset',
+ 'panel',
+ 'table',
+ 'tabs',
+ 'well',
+ 'hidden',
+ 'container',
+ 'dataMap',
+ 'dataGrid',
+ 'editGrid',
+ 'tree',
+ 'file',
+ 'submit',
+ ],
+ (obj, componentKey) => {
+ obj[componentKey] = true;
+ return obj;
+ },
+ {},
+ ),
};
-
-
//["textField", "textArea", "number", "password", "checkbox", "selectBoxes", "select", "radio", "email", "url", "phoneNumber", "tags", "address", "dateTime", "day", "time", "currency", "survey", "signature", "html", "content", "columns", "fieldset", "panel", "table", "tabs", "well", "hidden", "container", "dataMap", "dataGrid", "editGrid", "tree", "file", "submit"]
// {
// textField: 'test-custom__css_class',
diff --git a/test/forms/helpers/testBasicComponentSettings/tests.d.ts b/test/forms/helpers/testBasicComponentSettings/tests.d.ts
index 071e6a318d..1bf857e58c 100644
--- a/test/forms/helpers/testBasicComponentSettings/tests.d.ts
+++ b/test/forms/helpers/testBasicComponentSettings/tests.d.ts
@@ -6,7 +6,10 @@ declare const _default: {
'Should show description'(form: any, done: any): void;
};
tooltip: {
- 'Should render tooltip icon and show tooltip description on click'(form: any, done: any): void;
+ 'Should render tooltip icon and show tooltip description on click'(
+ form: any,
+ done: any
+ ): void;
};
prefix: {
'Should show prefix'(form: any, done: any): void;
@@ -39,45 +42,116 @@ declare const _default: {
'Should redrow on checkbox value change'(form: any, done: any): void;
};
multiple: {
- 'Should render component in multiple mode and able to add/remove value'(form: any, done: any): void;
+ 'Should render component in multiple mode and able to add/remove value'(
+ form: any,
+ done: any
+ ): void;
'Should set multiple values'(form: any, done: any): void;
};
modalEdit: {
'Should open and close modal window'(form: any, done: any): void;
- 'Should delete component changes when closing modal window and clicking "delete it" in confirmation dialog'(form: any, done: any): void;
- 'Should save component values and close the modal after clicking "save"'(form: any, done: any): void;
- 'Should highlight modal button if component is invalid'(form: any, done: any, test: any): void;
+ 'Should delete component changes when closing modal window and clicking "delete it" in confirmation dialog'(
+ form: any,
+ done: any
+ ): void;
+ 'Should save component values and close the modal after clicking "save"'(
+ form: any,
+ done: any
+ ): void;
+ 'Should highlight modal button if component is invalid'(
+ form: any,
+ done: any,
+ test: any
+ ): void;
};
calculateValue: {
- 'Should caclulate component value'(form: any, done: any, test: any): void;
- 'Should not allow overriding component colculated value'(form: any, done: any): void;
- 'Should allow overriding component calculated value'(form: any, done: any, test: any): void;
+ 'Should caclulate component value'(
+ form: any,
+ done: any,
+ test: any
+ ): void;
+ 'Should not allow overriding component colculated value'(
+ form: any,
+ done: any
+ ): void;
+ 'Should allow overriding component calculated value'(
+ form: any,
+ done: any,
+ test: any
+ ): void;
};
'validate.required': {
- 'Should show required validation error on submit and remove error if component has value'(form: any, done: any, test: any): void;
- 'Should show custom validation error if component is invalid'(form: any, done: any, test: any): void;
- 'Should show custom validation label if component is invalid'(form: any, done: any, test: any): void;
+ 'Should show required validation error on submit and remove error if component has value'(
+ form: any,
+ done: any,
+ test: any
+ ): void;
+ 'Should show custom validation error if component is invalid'(
+ form: any,
+ done: any,
+ test: any
+ ): void;
+ 'Should show custom validation label if component is invalid'(
+ form: any,
+ done: any,
+ test: any
+ ): void;
};
'validate.custom': {
- 'Should execute custom validation'(form: any, done: any, test: any): void;
+ 'Should execute custom validation'(
+ form: any,
+ done: any,
+ test: any
+ ): void;
};
validate_nested_components: {
- 'Should show validation errors for nested components'(form: any, done: any, test: any): void;
+ 'Should show validation errors for nested components'(
+ form: any,
+ done: any,
+ test: any
+ ): void;
};
conditional: {
- 'Should show component if simple condition is met and hide it if simple condition is not fulfilled'(form: any, done: any, test: any): void;
+ 'Should show component if simple condition is met and hide it if simple condition is not fulfilled'(
+ form: any,
+ done: any,
+ test: any
+ ): void;
};
customConditional: {
- 'Should show component if custom condition is met and hide it if custom condition is not fulfilled'(form: any, done: any, test: any): void;
+ 'Should show component if custom condition is met and hide it if custom condition is not fulfilled'(
+ form: any,
+ done: any,
+ test: any
+ ): void;
};
logic: {
- 'Should execute value/property/merge schema/custom actions if simple logic condition is met'(form: any, done: any, test: any): void;
- 'Should execute value action if js logic condition is met'(form: any, done: any, test: any): void;
- 'Should execute property action if json logic condition is met'(form: any, done: any, test: any): void;
- 'Should execute property action if logic event is emitted'(form: any, done: any): void;
+ 'Should execute value/property/merge schema/custom actions if simple logic condition is met'(
+ form: any,
+ done: any,
+ test: any
+ ): void;
+ 'Should execute value action if js logic condition is met'(
+ form: any,
+ done: any,
+ test: any
+ ): void;
+ 'Should execute property action if json logic condition is met'(
+ form: any,
+ done: any,
+ test: any
+ ): void;
+ 'Should execute property action if logic event is emitted'(
+ form: any,
+ done: any
+ ): void;
};
set_get_value: {
- 'Should set and get components` value (including string value)'(form: any, done: any, test: any): void;
+ 'Should set and get components` value (including string value)'(
+ form: any,
+ done: any,
+ test: any
+ ): void;
'Should set and get submission'(form: any, done: any, test: any): void;
};
};
diff --git a/test/forms/helpers/testBasicComponentSettings/tests.js b/test/forms/helpers/testBasicComponentSettings/tests.js
index 1d0b71ccc6..026ceffe6c 100644
--- a/test/forms/helpers/testBasicComponentSettings/tests.js
+++ b/test/forms/helpers/testBasicComponentSettings/tests.js
@@ -3,1170 +3,1930 @@ import _ from 'lodash';
import settings from './settings';
import values from './values';
-const layoutComponents = ['columns', 'fieldset', 'panel', 'table', 'tabs', 'well'];
+const layoutComponents = [
+ 'columns',
+ 'fieldset',
+ 'panel',
+ 'table',
+ 'tabs',
+ 'well',
+];
export default {
- placeholder: {
- 'Should show placeholder'(form, done) {
- form.components.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
- const compInput = comp.element.querySelector(`[name="data[${compKey}]"]`);
-
- let renderedPlaceholder;
- let expectedPlaceholder;
-
- if (compType === 'day') {
- _.each(comp.component.fields, (fieldSettings, fieldName) => {
- if (fieldSettings.type === 'number') {
- renderedPlaceholder = comp.refs[fieldName].placeholder;
- }
- if (fieldSettings.type === 'select') {
- renderedPlaceholder = comp.refs[fieldName][0].textContent;
- }
-
- expectedPlaceholder = fieldSettings.placeholder;
+ placeholder: {
+ 'Should show placeholder'(form, done) {
+ form.components.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+ const compInput = comp.element.querySelector(
+ `[name="data[${compKey}]"]`,
+ );
- assert.equal(renderedPlaceholder.trim(), expectedPlaceholder.trim(), `Should show placeholder for ${fieldName} in ${compKey} (component ${compType})`);
- });
- }
- else {
- renderedPlaceholder = compType === 'select' ? compInput.attributes.placeholder.value : compInput.placeholder;
- expectedPlaceholder = comp.component.placeholder;
- assert.equal(renderedPlaceholder, expectedPlaceholder, `Should show placeholder for ${compKey} (component ${compType})`);
- }
- });
- done();
+ let renderedPlaceholder;
+ let expectedPlaceholder;
+
+ if (compType === 'day') {
+ _.each(
+ comp.component.fields,
+ (fieldSettings, fieldName) => {
+ if (fieldSettings.type === 'number') {
+ renderedPlaceholder =
+ comp.refs[fieldName].placeholder;
+ }
+ if (fieldSettings.type === 'select') {
+ renderedPlaceholder =
+ comp.refs[fieldName][0].textContent;
+ }
+
+ expectedPlaceholder = fieldSettings.placeholder;
+
+ assert.equal(
+ renderedPlaceholder.trim(),
+ expectedPlaceholder.trim(),
+ `Should show placeholder for ${fieldName} in ${compKey} (component ${compType})`,
+ );
+ },
+ );
+ } else {
+ renderedPlaceholder =
+ compType === 'select'
+ ? compInput.attributes.placeholder.value
+ : compInput.placeholder;
+ expectedPlaceholder = comp.component.placeholder;
+ assert.equal(
+ renderedPlaceholder,
+ expectedPlaceholder,
+ `Should show placeholder for ${compKey} (component ${compType})`,
+ );
+ }
+ });
+ done();
+ },
},
- },
- description: {
- 'Should show description'(form, done) {
- form.components.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
- const compDescription = comp.element.querySelector('.text-muted').textContent;
-
- assert.equal(compDescription, comp.component.description, `Should show description for ${compKey} (component ${compType})`);
- });
- done();
+ description: {
+ 'Should show description'(form, done) {
+ form.components.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+ const compDescription =
+ comp.element.querySelector('.text-muted').textContent;
+
+ assert.equal(
+ compDescription,
+ comp.component.description,
+ `Should show description for ${compKey} (component ${compType})`,
+ );
+ });
+ done();
+ },
},
- },
- tooltip: {
- 'Should render tooltip icon and show tooltip description on click'(form, done) {
- form.components.forEach((comp, index) => {
- const isLastComp = index === (form.components.length - 1);
- const compKey = comp.component.key;
- const compType = comp.component.type;
- const clickEvent = new Event('click');
-
- assert.equal(comp.tooltips.length, 1, `${compKey} (component ${compType}): should contain tooltip objects`);
+ tooltip: {
+ 'Should render tooltip icon and show tooltip description on click'(
+ form,
+ done,
+ ) {
+ form.components.forEach((comp, index) => {
+ const isLastComp = index === form.components.length - 1;
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+ const clickEvent = new Event('click');
+
+ assert.equal(
+ comp.tooltips.length,
+ 1,
+ `${compKey} (component ${compType}): should contain tooltip objects`,
+ );
- const tooltipIcon = comp.refs.tooltip[0];
+ const tooltipIcon = comp.refs.tooltip[0];
- assert.equal(!!tooltipIcon, true, `${compKey} (component ${compType}): should contain ref to tooltip icon`);
+ assert.equal(
+ !!tooltipIcon,
+ true,
+ `${compKey} (component ${compType}): should contain ref to tooltip icon`,
+ );
- tooltipIcon.dispatchEvent(clickEvent);
+ tooltipIcon.dispatchEvent(clickEvent);
- setTimeout(() => {
- const tooltipText = comp.element.querySelector('.tippy-content').textContent.trim();
+ setTimeout(() => {
+ const tooltipText = comp.element
+ .querySelector('.tippy-content')
+ .textContent.trim();
- assert.equal(tooltipText, comp.component.tooltip.trim(), `Should show tooltip for ${compKey} (component ${compType})`);
+ assert.equal(
+ tooltipText,
+ comp.component.tooltip.trim(),
+ `Should show tooltip for ${compKey} (component ${compType})`,
+ );
- if (isLastComp) {
+ if (isLastComp) {
+ done();
+ }
+ });
+ });
+ },
+ },
+ prefix: {
+ 'Should show prefix'(form, done) {
+ form.components.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ assert.equal(
+ comp.refs.prefix[0].textContent.trim(),
+ comp.component.prefix,
+ `Should show prefix for ${compKey} (component ${compType})`,
+ );
+ });
done();
- }
- });
- });
- }
- },
- prefix: {
- 'Should show prefix'(form, done) {
- form.components.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
-
- assert.equal(comp.refs.prefix[0].textContent.trim(), comp.component.prefix, `Should show prefix for ${compKey} (component ${compType})`);
- });
- done();
+ },
},
- },
- suffix: {
- 'Should show suffix'(form, done) {
- form.components.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
-
- assert.equal(comp.refs.suffix[0].textContent.trim(), comp.component.suffix, `Should show suffix for ${compKey} (component ${compType})`);
- });
- done();
+ suffix: {
+ 'Should show suffix'(form, done) {
+ form.components.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ assert.equal(
+ comp.refs.suffix[0].textContent.trim(),
+ comp.component.suffix,
+ `Should show suffix for ${compKey} (component ${compType})`,
+ );
+ });
+ done();
+ },
},
- },
- customClass: {
- 'Should set custom css class'(form, done) {
- form.components.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
-
- assert.equal(comp.element.classList.contains(comp.component.customClass), true, `Should set custom class for ${compKey} (component ${compType})`);
- });
- done();
+ customClass: {
+ 'Should set custom css class'(form, done) {
+ form.components.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ assert.equal(
+ comp.element.classList.contains(comp.component.customClass),
+ true,
+ `Should set custom class for ${compKey} (component ${compType})`,
+ );
+ });
+ done();
+ },
},
- },
- tabindex: {
- 'Should set tabindex'(form, done) {
- form.components.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
- let tabInput;
-
- switch (comp.component.type) {
- case 'address':
- tabInput = comp.refs.searchInput[0].tabIndex;
- break;
- case 'button':
- tabInput = comp.refs.button.tabIndex;
- break;
- case 'select':
- tabInput = comp.element.querySelector('.selection').tabIndex;
- break;
- default:
- tabInput = comp.refs.input[0].tabIndex;
- }
-
- assert.equal(tabInput, comp.component.tabindex, `Should set tab index for ${compKey} (component ${compType})`);
- });
+ tabindex: {
+ 'Should set tabindex'(form, done) {
+ form.components.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+ let tabInput;
+
+ switch (comp.component.type) {
+ case 'address':
+ tabInput = comp.refs.searchInput[0].tabIndex;
+ break;
+ case 'button':
+ tabInput = comp.refs.button.tabIndex;
+ break;
+ case 'select':
+ tabInput =
+ comp.element.querySelector('.selection').tabIndex;
+ break;
+ default:
+ tabInput = comp.refs.input[0].tabIndex;
+ }
- done();
- },
- },
- hidden: {
- 'Should not render hidden component'(form, done) {
- form.components.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
+ assert.equal(
+ tabInput,
+ comp.component.tabindex,
+ `Should set tab index for ${compKey} (component ${compType})`,
+ );
+ });
- assert.equal(comp.visible, false, `Should set visible:false for ${compKey} (component ${compType})`);
- if (compType !== 'well') {
- assert.equal(comp.element.classList.contains('formio-hidden'), true, `Should set formio-hidden class for ${compKey} (component ${compType})`);
- }
- });
- done();
+ done();
+ },
},
- },
- hideLabel: {
- 'Should hide component label'(form, done) {
- form.components.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
- let label;
-
- switch (comp.component.type) {
- case 'checkbox':
- label = comp.element.querySelector('.form-check-label span');
- break;
- case 'panel':
- label = comp.element.querySelector('.card-title');
- break;
- default:
- label = comp.element.querySelector(`label[for="${comp.id}-${compKey}"]`);
- }
-
- assert.equal(!!label, false, `Should hide label for ${compKey} (component ${compType})`);
- });
- done();
+ hidden: {
+ 'Should not render hidden component'(form, done) {
+ form.components.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ assert.equal(
+ comp.visible,
+ false,
+ `Should set visible:false for ${compKey} (component ${compType})`,
+ );
+ if (compType !== 'well') {
+ assert.equal(
+ comp.element.classList.contains('formio-hidden'),
+ true,
+ `Should set formio-hidden class for ${compKey} (component ${compType})`,
+ );
+ }
+ });
+ done();
+ },
},
- },
- disabled: {
- 'Should disable components'(form, done) {
- form.components.forEach(comp => {
- const compType = comp.component.type;
-
- const checkDisabled = (component, child) => {
- const componentType = component.component.type;
- const componentKey = component.component.key;
-
- if (child && componentType === 'datagrid') return; //BUG: remove the check once it is fixed;
-
- const disabled = _.isBoolean(component.disabled) ? component.disabled : component._disabled;
-
- assert.equal(
- disabled,
- true,
- !child ?
- `Should set disabled:true for ${componentKey} (component ${componentType})` :
- `Should set disabled:true for ${componentType} inside ${compType} component`
- );
-
- const compInput = component.element.querySelector(`[name="data[${componentKey}]"]`);
- let compInputs = [];
+ hideLabel: {
+ 'Should hide component label'(form, done) {
+ form.components.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+ let label;
+
+ switch (comp.component.type) {
+ case 'checkbox':
+ label = comp.element.querySelector(
+ '.form-check-label span',
+ );
+ break;
+ case 'panel':
+ label = comp.element.querySelector('.card-title');
+ break;
+ default:
+ label = comp.element.querySelector(
+ `label[for="${comp.id}-${compKey}"]`,
+ );
+ }
- if (componentType === 'day') {
- compInputs = Object.keys(component.component.fields).map(fieldName => {
- return component.element.querySelector(`[ref="${fieldName}"]`);
+ assert.equal(
+ !!label,
+ false,
+ `Should hide label for ${compKey} (component ${compType})`,
+ );
});
- }
-
- if (compInput || compInputs.length) {
- const inputs = compInput ? [compInput] : compInputs;
- _.each(inputs, (input) => {
- assert.equal(
- input.disabled,
- true,
- !child ?
- `Should disable component input for ${componentKey} (component ${componentType})` :
- `Should disable component input for ${componentType} inside ${compType} component`
- );
+ done();
+ },
+ },
+ disabled: {
+ 'Should disable components'(form, done) {
+ form.components.forEach((comp) => {
+ const compType = comp.component.type;
+
+ const checkDisabled = (component, child) => {
+ const componentType = component.component.type;
+ const componentKey = component.component.key;
+
+ if (child && componentType === 'datagrid') return; //BUG: remove the check once it is fixed;
+
+ const disabled = _.isBoolean(component.disabled)
+ ? component.disabled
+ : component._disabled;
+
+ assert.equal(
+ disabled,
+ true,
+ !child
+ ? `Should set disabled:true for ${componentKey} (component ${componentType})`
+ : `Should set disabled:true for ${componentType} inside ${compType} component`,
+ );
+
+ const compInput = component.element.querySelector(
+ `[name="data[${componentKey}]"]`,
+ );
+ let compInputs = [];
+
+ if (componentType === 'day') {
+ compInputs = Object.keys(
+ component.component.fields,
+ ).map((fieldName) => {
+ return component.element.querySelector(
+ `[ref="${fieldName}"]`,
+ );
+ });
+ }
+
+ if (compInput || compInputs.length) {
+ const inputs = compInput ? [compInput] : compInputs;
+ _.each(inputs, (input) => {
+ assert.equal(
+ input.disabled,
+ true,
+ !child
+ ? `Should disable component input for ${componentKey} (component ${componentType})`
+ : `Should disable component input for ${componentType} inside ${compType} component`,
+ );
+ });
+ }
+ };
+
+ checkDisabled(comp, false);
+ const nestedComponents = comp.subForm
+ ? comp.subForm.components
+ : comp.components;
+
+ if (_.isArray(nestedComponents)) {
+ _.each(nestedComponents, (childComp) => {
+ checkDisabled(childComp, true);
+ });
+ }
});
- }
- };
-
- checkDisabled(comp, false);
- const nestedComponents = comp.subForm ? comp.subForm.components : comp.components;
- if (_.isArray(nestedComponents)) {
- _.each(nestedComponents, (childComp) => {
- checkDisabled(childComp, true);
- });
- }
- });
-
- done();
+ done();
+ },
},
- },
- defaultValue: {
- 'Should set default value'(form, done) {
- form.components.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
- const defaultValue = comp.component.defaultValue;
+ defaultValue: {
+ 'Should set default value'(form, done) {
+ form.components.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+ const defaultValue = comp.component.defaultValue;
- assert.deepEqual(comp.defaultValue, defaultValue, `Should correctly define default value for ${compKey} (component ${compType})`);
- assert.deepEqual(comp.dataValue, comp.defaultValue, `Should set default value for ${compKey} (component ${compType})`);
+ assert.deepEqual(
+ comp.defaultValue,
+ defaultValue,
+ `Should correctly define default value for ${compKey} (component ${compType})`,
+ );
+ assert.deepEqual(
+ comp.dataValue,
+ comp.defaultValue,
+ `Should set default value for ${compKey} (component ${compType})`,
+ );
- const inputValue = comp.getValue();
+ const inputValue = comp.getValue();
- assert.deepEqual(
- compType === 'datetime' ? inputValue.startsWith(comp.defaultValue) : inputValue,
- compType === 'datetime' ? true : comp.defaultValue,
- `Got value must be equal to default value for ${compKey} (component ${compType})`);
- });
- done();
+ assert.deepEqual(
+ compType === 'datetime'
+ ? inputValue.startsWith(comp.defaultValue)
+ : inputValue,
+ compType === 'datetime' ? true : comp.defaultValue,
+ `Got value must be equal to default value for ${compKey} (component ${compType})`,
+ );
+ });
+ done();
+ },
},
- },
- customDefaultValue: {
- 'Should correctly set custom default value'(form, done) {
- form.components.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
- if (compKey === 'basis') return;
+ customDefaultValue: {
+ 'Should correctly set custom default value'(form, done) {
+ form.components.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+ if (compKey === 'basis') return;
- const defaultValue = settings.customDefaultValue[`${compKey}`].expectedValue;
+ const defaultValue =
+ settings.customDefaultValue[`${compKey}`].expectedValue;
- _.unset(comp.dataValue, 'metadata');
+ _.unset(comp.dataValue, 'metadata');
- assert.deepEqual(comp.defaultValue, defaultValue, `Should correctly define default value for ${compKey} (component ${compType})`);
- assert.deepEqual(comp.dataValue, comp.defaultValue, `Should set default value for ${compKey} (component ${compType})`);
+ assert.deepEqual(
+ comp.defaultValue,
+ defaultValue,
+ `Should correctly define default value for ${compKey} (component ${compType})`,
+ );
+ assert.deepEqual(
+ comp.dataValue,
+ comp.defaultValue,
+ `Should set default value for ${compKey} (component ${compType})`,
+ );
- const inputValue = comp.getValue();
+ const inputValue = comp.getValue();
- assert.deepEqual(
- compType === 'datetime' ? inputValue.startsWith(comp.defaultValue) : inputValue,
- compType === 'datetime' ? true : comp.defaultValue,
- `Got value must be equal to default value for ${compKey} (component ${compType})`
- );
- });
- done();
+ assert.deepEqual(
+ compType === 'datetime'
+ ? inputValue.startsWith(comp.defaultValue)
+ : inputValue,
+ compType === 'datetime' ? true : comp.defaultValue,
+ `Got value must be equal to default value for ${compKey} (component ${compType})`,
+ );
+ });
+ done();
+ },
},
- },
- redrawOn: {
- 'Should redraw on checkbox value change'(form, done) {
- const checkboxValue = form.data.checkbox;
+ redrawOn: {
+ 'Should redraw on checkbox value change'(form, done) {
+ const checkboxValue = form.data.checkbox;
- assert.deepEqual(checkboxValue, false, 'Should set checkbox value to false');
-
- form.components.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
+ assert.deepEqual(
+ checkboxValue,
+ false,
+ 'Should set checkbox value to false',
+ );
- assert.deepEqual(comp.name.trim().endsWith(checkboxValue.toString()), true, `Should interpolate label using checkbox data for ${compKey} (component ${compType})`);
- });
+ form.components.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
- form.getComponent('checkbox').setValue(true);
+ assert.deepEqual(
+ comp.name.trim().endsWith(checkboxValue.toString()),
+ true,
+ `Should interpolate label using checkbox data for ${compKey} (component ${compType})`,
+ );
+ });
- setTimeout(() => {
- const changedCheckboxValue = form.data.checkbox;
+ form.getComponent('checkbox').setValue(true);
- assert.deepEqual(changedCheckboxValue, true, 'Should change checkbox value to true');
- form.components.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
+ setTimeout(() => {
+ const changedCheckboxValue = form.data.checkbox;
- assert.deepEqual(comp.name.trim().endsWith(changedCheckboxValue.toString()), true, `${compKey} (component ${compType}): should change interpolated label text based on new checkbox value`);
- });
+ assert.deepEqual(
+ changedCheckboxValue,
+ true,
+ 'Should change checkbox value to true',
+ );
+ form.components.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ assert.deepEqual(
+ comp.name
+ .trim()
+ .endsWith(changedCheckboxValue.toString()),
+ true,
+ `${compKey} (component ${compType}): should change interpolated label text based on new checkbox value`,
+ );
+ });
- done();
- });
+ done();
+ });
+ },
},
- },
-
- multiple: {
- 'Should render component in multiple mode and able to add/remove value'(form, done) {
- const testComponents = form.components.filter(comp => !['select', 'file'].includes(comp.component.type));
-
- testComponents.forEach((comp, index) => {
- const isLastComp = index === (testComponents.length - 1);
- const compKey = comp.component.key;
- const compType = comp.component.type;
- const clickEvent = new Event('click');
+ multiple: {
+ 'Should render component in multiple mode and able to add/remove value'(
+ form,
+ done,
+ ) {
+ const testComponents = form.components.filter(
+ (comp) => !['select', 'file'].includes(comp.component.type),
+ );
- const addAnotherBtn = comp.refs.addButton[0] || comp.refs.addButton;
- const removeRowBtns = comp.refs.removeRow;
- const componentInputs = comp.refs.input || comp.refs.searchInput;
+ testComponents.forEach((comp, index) => {
+ const isLastComp = index === testComponents.length - 1;
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
- assert.deepEqual(!!addAnotherBtn, true, `${compKey} (component ${compType}): should show addAnother button in multiple mode `);
- assert.deepEqual(removeRowBtns.length, 1, `${compKey} (component ${compType}): should have remove row button in multiple mode `);
- assert.deepEqual(componentInputs.length, 1, `${compKey} (component ${compType}): should render component input in multiple mode `);
+ const clickEvent = new Event('click');
- addAnotherBtn.dispatchEvent(clickEvent);
+ const addAnotherBtn =
+ comp.refs.addButton[0] || comp.refs.addButton;
+ const removeRowBtns = comp.refs.removeRow;
+ const componentInputs =
+ comp.refs.input || comp.refs.searchInput;
- setTimeout(() => {
- const removeRowBtnsAfterAddingValue = comp.refs.removeRow;
- const componentInputsAfterAddingValue = comp.refs.input || comp.refs.searchInput;
+ assert.deepEqual(
+ !!addAnotherBtn,
+ true,
+ `${compKey} (component ${compType}): should show addAnother button in multiple mode `,
+ );
+ assert.deepEqual(
+ removeRowBtns.length,
+ 1,
+ `${compKey} (component ${compType}): should have remove row button in multiple mode `,
+ );
+ assert.deepEqual(
+ componentInputs.length,
+ 1,
+ `${compKey} (component ${compType}): should render component input in multiple mode `,
+ );
- assert.deepEqual(removeRowBtnsAfterAddingValue.length, 2, `${compKey} (component ${compType}): should add remove value row btn for new row in multiple mode `);
- assert.deepEqual(componentInputsAfterAddingValue.length, 2, `${compKey} (component ${compType}): should add new row in multiple mode `);
- removeRowBtnsAfterAddingValue[0].dispatchEvent(clickEvent);
+ addAnotherBtn.dispatchEvent(clickEvent);
+
+ setTimeout(() => {
+ const removeRowBtnsAfterAddingValue = comp.refs.removeRow;
+ const componentInputsAfterAddingValue =
+ comp.refs.input || comp.refs.searchInput;
+
+ assert.deepEqual(
+ removeRowBtnsAfterAddingValue.length,
+ 2,
+ `${compKey} (component ${compType}): should add remove value row btn for new row in multiple mode `,
+ );
+ assert.deepEqual(
+ componentInputsAfterAddingValue.length,
+ 2,
+ `${compKey} (component ${compType}): should add new row in multiple mode `,
+ );
+ removeRowBtnsAfterAddingValue[0].dispatchEvent(clickEvent);
+
+ setTimeout(() => {
+ const removeRowBtnsAfterRemovingValue =
+ comp.refs.removeRow;
+ const componentInputsAfterRemovingValue =
+ comp.refs.input || comp.refs.searchInput;
+
+ assert.deepEqual(
+ removeRowBtnsAfterRemovingValue.length,
+ 1,
+ `${compKey} (component ${compType}): should remove 'remove value row btn' if row is removed in multiple mode `,
+ );
+ assert.deepEqual(
+ componentInputsAfterRemovingValue.length,
+ 1,
+ `${compKey} (component ${compType}): should add remove row in multiple mode`,
+ );
+
+ if (isLastComp) {
+ done();
+ }
+ }, 100);
+ }, 100);
+ });
+ },
+ 'Should set multiple values'(form, done) {
+ form.components.forEach((comp) => {
+ const compKey = comp.component.key;
+ const value = _.cloneDeep(values.multipleValues[compKey]);
- setTimeout(() => {
- const removeRowBtnsAfterRemovingValue = comp.refs.removeRow;
- const componentInputsAfterRemovingValue = comp.refs.input || comp.refs.searchInput;
+ comp.setValue(value);
+ });
- assert.deepEqual(removeRowBtnsAfterRemovingValue.length, 1, `${compKey} (component ${compType}): should remove 'remove value row btn' if row is removed in multiple mode `);
- assert.deepEqual(componentInputsAfterRemovingValue.length, 1, `${compKey} (component ${compType}): should add remove row in multiple mode`);
+ setTimeout(() => {
+ form.components.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+ const value = _.cloneDeep(values.multipleValues[compKey]);
+ const removeRowBtns = comp.refs.removeRow;
+
+ assert.deepEqual(
+ comp.getValue().length,
+ value.length,
+ `${compKey} (component ${compType}): should set multiple values`,
+ );
+
+ assert.deepEqual(
+ comp.type === 'datetime'
+ ? comp
+ .getValue()
+ .every((val, ind) =>
+ val.startsWith(value[ind]),
+ )
+ : comp.getValue(),
+ comp.type === 'datetime' ? true : value,
+ `${compKey} (component ${compType}): set and get values must be equal in multiple mode`,
+ );
+
+ if (!['select', 'file'].includes(compType)) {
+ const componentInputs =
+ comp.refs.input || comp.refs.searchInput;
+ assert.deepEqual(
+ componentInputs.length,
+ value.length,
+ `${compKey} (component ${compType}): should render multiple inputs`,
+ );
+ assert.deepEqual(
+ removeRowBtns.length,
+ value.length,
+ `${compKey} (component ${compType}): should add remove btn for each row in multiple mode`,
+ );
+ }
+
+ if (compType === 'file') {
+ assert.deepEqual(
+ comp.refs.fileLink.length,
+ value.length,
+ `${compKey} (component ${compType}): should render multiple file links`,
+ );
+ assert.deepEqual(
+ comp.refs.removeLink.length,
+ value.length,
+ `${compKey} (component ${compType}): should add remove link btn for each link in multiple mode`,
+ );
+ }
+ });
- if (isLastComp) {
- done();
- }
- }, 100);
- }, 100);
- });
- },
- 'Should set multiple values'(form, done) {
- form.components.forEach((comp) => {
- const compKey = comp.component.key;
- const value = _.cloneDeep(values.multipleValues[compKey]);
-
- comp.setValue(value);
- });
-
- setTimeout(() => {
- form.components.forEach((comp) => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
- const value = _.cloneDeep(values.multipleValues[compKey]);
- const removeRowBtns = comp.refs.removeRow;
-
- assert.deepEqual(comp.getValue().length, value.length, `${compKey} (component ${compType}): should set multiple values`);
-
- assert.deepEqual(
- comp.type === 'datetime' ? comp.getValue().every((val, ind) => val.startsWith(value[ind])) : comp.getValue(),
- comp.type === 'datetime' ? true : value,
- `${compKey} (component ${compType}): set and get values must be equal in multiple mode`
- );
-
- if (!['select', 'file'].includes(compType)) {
- const componentInputs = comp.refs.input || comp.refs.searchInput;
- assert.deepEqual(componentInputs.length, value.length, `${compKey} (component ${compType}): should render multiple inputs`);
- assert.deepEqual(removeRowBtns.length, value.length, `${compKey} (component ${compType}): should add remove btn for each row in multiple mode`);
- }
-
- if (compType === 'file') {
- assert.deepEqual(comp.refs.fileLink.length, value.length, `${compKey} (component ${compType}): should render multiple file links`);
- assert.deepEqual(comp.refs.removeLink.length, value.length, `${compKey} (component ${compType}): should add remove link btn for each link in multiple mode`);
- }
- });
-
- done();
- }, 500);
+ done();
+ }, 500);
+ },
},
- },
- modalEdit: {
- 'Should open and close modal window'(form, done) {
- const componentsWithBug = ['columns', 'fieldset', 'panel', 'table', 'tabs', 'well']; //BUG: include them in test when it is fixed
- const testComponents = form.components.filter(comp => ![...componentsWithBug, 'button'].includes(comp.component.type));
- testComponents.forEach((comp, index) => {
- const isLastComp = index === (testComponents.length - 1);
- const compKey = comp.component.key;
- const compType = comp.component.type;
- const clickEvent = new Event('click');
-
- const isModalWindowOpened = () => {
- return !comp.refs.modalWrapper.classList.contains('component-rendering-hidden');
- };
-
- assert.deepEqual(isModalWindowOpened(comp), false, `${compKey} (component ${compType}): should keep modal window closed after setting form`);
+ modalEdit: {
+ 'Should open and close modal window'(form, done) {
+ const componentsWithBug = [
+ 'columns',
+ 'fieldset',
+ 'panel',
+ 'table',
+ 'tabs',
+ 'well',
+ ]; //BUG: include them in test when it is fixed
+ const testComponents = form.components.filter(
+ (comp) =>
+ ![...componentsWithBug, 'button'].includes(
+ comp.component.type,
+ ),
+ );
+ testComponents.forEach((comp, index) => {
+ const isLastComp = index === testComponents.length - 1;
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+ const clickEvent = new Event('click');
+
+ const isModalWindowOpened = () => {
+ return !comp.refs.modalWrapper.classList.contains(
+ 'component-rendering-hidden',
+ );
+ };
- const openModalBtn = comp.refs.openModal;
- openModalBtn.dispatchEvent(clickEvent);
-
- setTimeout(() => {
- assert.deepEqual(isModalWindowOpened(comp), true, `${compKey} (component ${compType}): should open modal window`);
-
- const closeModalBtn = comp.componentModal.refs.modalClose;
- closeModalBtn.dispatchEvent(clickEvent);
-
- setTimeout(() => {
- assert.deepEqual(isModalWindowOpened(comp), false, `${compKey} (component ${compType}): should close modal window`);
+ assert.deepEqual(
+ isModalWindowOpened(comp),
+ false,
+ `${compKey} (component ${compType}): should keep modal window closed after setting form`,
+ );
- if (isLastComp) {
- done();
- }
- });
- });
- });
+ const openModalBtn = comp.refs.openModal;
+ openModalBtn.dispatchEvent(clickEvent);
+
+ setTimeout(() => {
+ assert.deepEqual(
+ isModalWindowOpened(comp),
+ true,
+ `${compKey} (component ${compType}): should open modal window`,
+ );
+
+ const closeModalBtn = comp.componentModal.refs.modalClose;
+ closeModalBtn.dispatchEvent(clickEvent);
+
+ setTimeout(() => {
+ assert.deepEqual(
+ isModalWindowOpened(comp),
+ false,
+ `${compKey} (component ${compType}): should close modal window`,
+ );
+
+ if (isLastComp) {
+ done();
+ }
+ });
+ });
+ });
+ },
+ 'Should delete component changes when closing modal window and clicking "delete it" in confirmation dialog'(
+ form,
+ done,
+ ) {
+ const layoutComponents = [
+ 'columns',
+ 'fieldset',
+ 'panel',
+ 'table',
+ 'tabs',
+ 'well',
+ ];
+ const testComponents = form.components.filter(
+ (comp) =>
+ !['htmlelement', 'content', 'button'].includes(
+ comp.component.type,
+ ),
+ );
+
+ testComponents.forEach((comp, index) => {
+ const componentsWithBug = layoutComponents; //BUG: include them in test when it is fixed
+ const isLastComp = index === testComponents.length - 1;
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ const clickEvent = new Event('click');
+ const isModalWindowOpened = () => {
+ return !comp.refs.modalWrapper.classList.contains(
+ 'component-rendering-hidden',
+ );
+ };
+
+ const openModalBtn = comp.refs.openModal;
+ openModalBtn.dispatchEvent(clickEvent);
+
+ setTimeout(() => {
+ assert.deepEqual(
+ isModalWindowOpened(),
+ true,
+ `${compKey} (component ${compType}): should open modal window`,
+ );
+
+ const initialValue = _.cloneDeep(comp.getValue());
+ const value = _.cloneDeep(values.values[compKey]);
+
+ comp.setValue(value);
+
+ setTimeout(() => {
+ if (layoutComponents.includes(compType)) {
+ _.each(comp.components, (child) => {
+ const childType = child.component.type;
+ const childKey = child.component.key;
+ const childDataValue = child.getValue();
+ const childExpectedValue =
+ comp.getValue()[childKey];
+
+ assert.deepEqual(
+ childType === 'datetime'
+ ? childDataValue.startsWith(
+ childExpectedValue,
+ )
+ : childDataValue,
+ childType === 'datetime'
+ ? true
+ : childExpectedValue,
+ `${compKey} (component ${compType}): should set value in modalEdit mode`,
+ );
+ });
+ } else {
+ assert.deepEqual(
+ compType === 'datetime'
+ ? comp.getValue().startsWith(value)
+ : comp.getValue(),
+ compType === 'datetime' ? true : value,
+ `${compKey} (component ${compType}): should set value in modalEdit mode`,
+ );
+ }
+
+ const closeModalBtn = comp.refs.modalClose;
+
+ closeModalBtn.dispatchEvent(clickEvent);
+
+ setTimeout(() => {
+ const confirmationDialog = document.querySelector(
+ '.formio-dialog-content[ref="dialogContents"]',
+ );
+ assert.deepEqual(
+ !!confirmationDialog,
+ true,
+ `${compKey} (component ${compType}): should open confirmation dialog`,
+ );
+
+ const clearChangesBtn =
+ confirmationDialog.querySelector(
+ '[ref="dialogYesButton"]',
+ );
+ clearChangesBtn.dispatchEvent(clickEvent);
+
+ setTimeout(() => {
+ const confirmationDialogAfter =
+ document.querySelector(
+ '.formio-dialog-content[ref="dialogContents"]',
+ );
+ assert.deepEqual(
+ !!confirmationDialogAfter,
+ false,
+ `${compKey} (component ${compType}): should close confirmation dialog`,
+ );
+
+ if (!componentsWithBug.includes(compType)) {
+ if (compType === 'form') {
+ assert.deepEqual(
+ comp.getValue().data,
+ initialValue.data,
+ `${compKey} (component ${compType}): should clear value in modalEdit mode`,
+ );
+ } else {
+ assert.deepEqual(
+ comp.getValue(),
+ initialValue,
+ `${compKey} (component ${compType}): should clear value in modalEdit mode`,
+ );
+ }
+ }
+
+ assert.deepEqual(
+ isModalWindowOpened(),
+ false,
+ `${compKey} (component ${compType}): should close modal window`,
+ );
+
+ if (isLastComp) {
+ done();
+ }
+ }, 50);
+ }, 50);
+ }, 50);
+ });
+ });
+ },
+ 'Should save component values and close the modal after clicking "save"'(
+ form,
+ done,
+ ) {
+ const testComponents = form.components.filter(
+ (comp) =>
+ !['htmlelement', 'content', 'button'].includes(
+ comp.component.type,
+ ),
+ );
+
+ testComponents.forEach((comp, index) => {
+ const isLastComp = index === testComponents.length - 1;
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ const clickEvent = new Event('click');
+ const isModalWindowOpened = () => {
+ return !comp.refs.modalWrapper.classList.contains(
+ 'component-rendering-hidden',
+ );
+ };
+
+ const openModalBtn = comp.refs.openModal;
+ openModalBtn.dispatchEvent(clickEvent);
+
+ setTimeout(() => {
+ assert.deepEqual(
+ isModalWindowOpened(),
+ true,
+ `${compKey} (component ${compType}): should open modal window`,
+ );
+
+ const value = _.cloneDeep(values.values[compKey]);
+ comp.setValue(value);
+
+ setTimeout(() => {
+ const saveModalBtn = comp.refs.modalSave;
+ saveModalBtn.dispatchEvent(clickEvent);
+
+ setTimeout(() => {
+ assert.deepEqual(
+ isModalWindowOpened(),
+ false,
+ `${compKey} (component ${compType}): should close modal window`,
+ );
+
+ if (layoutComponents.includes(compType)) {
+ _.each(comp.components, (child) => {
+ const childType = child.component.type;
+ const childKey = child.component.key;
+ const childDataValue = child.getValue();
+ const childExpectedValue = value[childKey];
+
+ assert.deepEqual(
+ childType === 'datetime'
+ ? childDataValue.startsWith(
+ childExpectedValue,
+ )
+ : childDataValue,
+ childType === 'datetime'
+ ? true
+ : childExpectedValue,
+ `${compKey} (component ${compType}): should save value in modalEdit mode`,
+ );
+ });
+ } else {
+ assert.deepEqual(
+ compType === 'datetime'
+ ? comp.getValue().startsWith(value)
+ : comp.getValue(),
+ compType === 'datetime' ? true : value,
+ `${compKey} (component ${compType}): should save value in modalEdit mode`,
+ );
+ }
+
+ if (isLastComp) {
+ done();
+ }
+ }, 50);
+ }, 50);
+ });
+ });
+ },
+ 'Should highlight modal button if component is invalid'(
+ form,
+ done,
+ test,
+ ) {
+ test.timeout(10000);
+ const testComponents = form.components.filter(
+ (comp) =>
+ !['htmlelement', 'content', 'button'].includes(
+ comp.component.type,
+ ),
+ );
+
+ form.everyComponent((comp) => {
+ comp.component.validate = comp.component.validate || {};
+ comp.component.validate.required = true;
+ });
+ setTimeout(() => {
+ const clickEvent = new Event('click');
+ form.getComponent('submit').refs.button.dispatchEvent(
+ clickEvent,
+ );
+ setTimeout(() => {
+ testComponents
+ .filter((comp) => !comp.component.tree && comp.hasInput)
+ .forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ const isErrorHighlightClass = !!(
+ comp.refs.openModalWrapper.classList.contains(
+ 'formio-error-wrapper',
+ ) ||
+ comp.componentModal.element.classList.contains(
+ 'formio-error-wrapper',
+ )
+ );
+ assert.deepEqual(
+ comp.subForm
+ ? !!comp.subForm.errors.length
+ : !!comp.error,
+ true,
+ `${compKey} (component ${compType}): should contain validation error`,
+ );
+ //BUG in nested forms, remove the check once it is fixed
+ if (compType !== 'form') {
+ assert.deepEqual(
+ isErrorHighlightClass,
+ true,
+ `${compKey} (component ${compType}): should highlight invalid modal button`,
+ );
+ }
+ });
+ done();
+ }, 200);
+ }, 200);
+ },
},
- 'Should delete component changes when closing modal window and clicking "delete it" in confirmation dialog'(form, done) {
- const layoutComponents = ['columns', 'fieldset', 'panel', 'table', 'tabs', 'well'];
- const testComponents = form.components.filter(comp => !['htmlelement', 'content', 'button'].includes(comp.component.type));
+ calculateValue: {
+ 'Should caclulate component value'(form, done, test) {
+ test.timeout(2500);
+
+ const basisComponent = form.getComponent('basis');
+ let basis = basisComponent.getValue();
+
+ const checkCalculatedValue = () => {
+ form.components.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+ if (compKey === 'basis') return;
+
+ const getExpectedCalculatedValue = (basis) =>
+ settings.calculateValue[`${compKey}`].expectedValue(
+ basis,
+ );
+
+ const inputValue = comp.dataValue;
+
+ _.unset(inputValue, 'metadata');
+
+ assert.deepEqual(
+ compType === 'datetime'
+ ? inputValue.startsWith(
+ getExpectedCalculatedValue(basis),
+ )
+ : inputValue,
+ compType === 'datetime'
+ ? true
+ : getExpectedCalculatedValue(basis),
+ `Should calculate component value for ${compKey} (component ${compType})`,
+ );
+ });
+ };
- testComponents.forEach((comp, index) => {
- const componentsWithBug = layoutComponents; //BUG: include them in test when it is fixed
- const isLastComp = index === (testComponents.length - 1);
- const compKey = comp.component.key;
- const compType = comp.component.type;
+ checkCalculatedValue();
- const clickEvent = new Event('click');
- const isModalWindowOpened = () => {
- return !comp.refs.modalWrapper.classList.contains('component-rendering-hidden');
- };
+ let basisComponentNewValue = '';
+ basisComponent.setValue(basisComponentNewValue);
- const openModalBtn = comp.refs.openModal;
- openModalBtn.dispatchEvent(clickEvent);
+ setTimeout(() => {
+ basis = basisComponent.getValue();
+ assert.deepEqual(
+ basis,
+ basisComponentNewValue,
+ 'Should set basis component value',
+ );
+ checkCalculatedValue();
+
+ basisComponentNewValue =
+ 'value for calculation of other components value';
+ basisComponent.setValue(basisComponentNewValue);
+
+ setTimeout(() => {
+ basis = basisComponent.getValue();
+ assert.deepEqual(
+ basis,
+ basisComponentNewValue,
+ 'Should set basis component value',
+ );
+ checkCalculatedValue();
+ done();
+ }, 250);
+ }, 250);
+ },
+ 'Should not allow overriding component colculated value'(form, done) {
+ const basisComponent = form.getComponent('basis');
+ const basis = basisComponent.getValue();
+
+ const checkCalculatedValue = () => {
+ form.components.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+ if (compKey === 'basis') return;
+
+ const getExpectedCalculatedValue = (basis) =>
+ settings.calculateValue[`${compKey}`].expectedValue(
+ basis,
+ );
+
+ const inputValue = comp.dataValue;
+ _.unset(inputValue, 'metadata');
+
+ assert.deepEqual(
+ compType === 'datetime'
+ ? inputValue.startsWith(
+ getExpectedCalculatedValue(basis),
+ )
+ : inputValue,
+ compType === 'datetime'
+ ? true
+ : getExpectedCalculatedValue(basis),
+ `Should calculate component value for ${compKey} (component ${compType})`,
+ );
+ });
+ };
- setTimeout(() => {
- assert.deepEqual(isModalWindowOpened(), true, `${compKey} (component ${compType}): should open modal window`);
+ checkCalculatedValue();
- const initialValue = _.cloneDeep(comp.getValue());
- const value = _.cloneDeep(values.values[compKey]);
+ form.setValue({
+ data: _.cloneDeep(values.values),
+ });
- comp.setValue(value);
+ setTimeout(() => {
+ checkCalculatedValue();
+ done();
+ }, 300);
+ },
+ 'Should allow overriding component calculated value'(form, done, test) {
+ test.timeout(5000);
- setTimeout(() => {
- if (layoutComponents.includes(compType)) {
- _.each(comp.components, (child) => {
- const childType = child.component.type;
- const childKey = child.component.key;
- const childDataValue = child.getValue();
- const childExpectedValue = comp.getValue()[childKey];
+ const basisComponent = form.getComponent('basis');
+ const basis = basisComponent.getValue();
- assert.deepEqual(
- childType === 'datetime' ? childDataValue.startsWith(childExpectedValue) : childDataValue,
- childType === 'datetime' ? true : childExpectedValue,
- `${compKey} (component ${compType}): should set value in modalEdit mode`
+ form.everyComponent((comp) => {
+ if (comp.component.calculateValue) {
+ comp.component.allowCalculateOverride = true;
+ }
+ });
+
+ const checkCalculatedValue = (overriden) => {
+ const testComponents = form.components.filter(
+ (comp) =>
+ !['form'].includes(comp.component.type) &&
+ !['basis'].includes(comp.component.key),
);
- });
- }
- else {
- assert.deepEqual(
- compType === 'datetime' ? comp.getValue().startsWith(value) : comp.getValue(),
- compType === 'datetime' ? true : value,
- `${compKey} (component ${compType}): should set value in modalEdit mode`
- );
- }
- const closeModalBtn = comp.refs.modalClose;
+ testComponents.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ const getExpectedCalculatedValue = (basis) => {
+ return overriden
+ ? values.values[`${compKey}`]
+ : settings.calculateValue[
+ `${compKey}`
+ ].expectedValue(basis);
+ };
+
+ const inputValue = comp.dataValue;
+ _.unset(inputValue, 'metadata');
+
+ assert.deepEqual(
+ compType === 'datetime'
+ ? inputValue.startsWith(
+ getExpectedCalculatedValue(basis),
+ )
+ : inputValue,
+ compType === 'datetime'
+ ? true
+ : getExpectedCalculatedValue(basis),
+ `Should calculate component value for ${compKey} (component ${compType})`,
+ );
+ });
+ };
- closeModalBtn.dispatchEvent(clickEvent);
+ checkCalculatedValue(false);
+ form.setValue({
+ data: _.cloneDeep(values.values),
+ });
setTimeout(() => {
- const confirmationDialog = document.querySelector('.formio-dialog-content[ref="dialogContents"]');
- assert.deepEqual(!!confirmationDialog, true, `${compKey} (component ${compType}): should open confirmation dialog`);
-
- const clearChangesBtn = confirmationDialog.querySelector('[ref="dialogYesButton"]');
- clearChangesBtn.dispatchEvent(clickEvent);
-
- setTimeout(() => {
- const confirmationDialogAfter = document.querySelector('.formio-dialog-content[ref="dialogContents"]');
- assert.deepEqual(!!confirmationDialogAfter, false, `${compKey} (component ${compType}): should close confirmation dialog`);
-
- if (!componentsWithBug.includes(compType)) {
- if (compType === 'form') {
- assert.deepEqual(comp.getValue().data, initialValue.data, `${compKey} (component ${compType}): should clear value in modalEdit mode`);
- }
- else {
- assert.deepEqual(comp.getValue(), initialValue, `${compKey} (component ${compType}): should clear value in modalEdit mode`);
- }
- }
+ checkCalculatedValue(true);
+ done();
+ }, 300);
+ },
+ },
+ 'validate.required': {
+ 'Should show required validation error on submit and remove error if component has value'(
+ form,
+ done,
+ test,
+ ) {
+ test.timeout(5000);
+ const testComponents = form.components.filter(
+ (comp) => !['button'].includes(comp.component.type),
+ );
+
+ const clickEvent = new Event('click');
+ form.getComponent('submit').refs.button.dispatchEvent(clickEvent);
- assert.deepEqual(isModalWindowOpened(), false, `${compKey} (component ${compType}): should close modal window`);
+ setTimeout(() => {
+ assert.deepEqual(
+ form.errors.length,
+ testComponents.length,
+ 'Form should contain references to all components errors',
+ );
+ assert.deepEqual(
+ form.refs.errorRef.length,
+ form.errors.length,
+ 'Should contain references to all components errors in form alert with errors',
+ );
- if (isLastComp) {
- done();
- }
- }, 50);
- }, 50);
- }, 50);
- });
- });
- },
- 'Should save component values and close the modal after clicking "save"'(form, done) {
- const testComponents = form.components.filter(comp => !['htmlelement', 'content', 'button'].includes(comp.component.type));
+ testComponents.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ const getExpectedErrorMessage = () =>
+ `${comp.component.label} is required`;
+
+ assert.deepEqual(
+ !!comp.error,
+ true,
+ `${compKey} (component ${compType}): should have required validation error`,
+ );
+ assert.deepEqual(
+ comp.error.message,
+ getExpectedErrorMessage(),
+ `${compKey} (component ${compType}): should have correct rquired validation message`,
+ );
+ assert.deepEqual(
+ comp.pristine,
+ false,
+ `${compKey} (component ${compType}): should set pristine to false`,
+ );
+ assert.deepEqual(
+ comp.element.classList.contains('formio-error-wrapper'),
+ true,
+ `${compKey} (component ${compType}): should set error class`,
+ );
+ //remove below line once tree validation error display is fixed
+ if (_.includes(['tree'], comp.component.type)) return;
+ assert.deepEqual(
+ comp.refs.messageContainer
+ .querySelector('.error')
+ ?.textContent.trim(),
+ getExpectedErrorMessage(),
+ `${compKey} (component ${compType}): should display error message`,
+ );
+ });
- testComponents.forEach((comp, index) => {
- const isLastComp = index === (testComponents.length - 1);
- const compKey = comp.component.key;
- const compType = comp.component.type;
+ form.setValue({
+ data: _.cloneDeep(values.values),
+ });
- const clickEvent = new Event('click');
- const isModalWindowOpened = () => {
- return !comp.refs.modalWrapper.classList.contains('component-rendering-hidden');
- };
+ setTimeout(() => {
+ assert.deepEqual(
+ form.errors.length,
+ 0,
+ 'Should remove required validation errors after setting values',
+ );
+ testComponents.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ assert.deepEqual(
+ comp.dataValue,
+ _.get(values.values, compKey),
+ `${compKey} (component ${compType}): should set value`,
+ );
+ assert.deepEqual(
+ !!comp.error,
+ false,
+ `${compKey} (component ${compType}): Should remove error`,
+ );
+ assert.deepEqual(
+ comp.element.classList.contains(
+ 'formio-error-wrapper',
+ ),
+ false,
+ `${compKey} (component ${compType}): Should remove error class`,
+ );
+ assert.deepEqual(
+ !!comp.refs.messageContainer.querySelector(
+ '.error',
+ ),
+ false,
+ `${compKey} (component ${compType}): should clear errors`,
+ );
+ });
+ done();
+ }, 300);
+ }, 300);
+ },
+ 'Should show custom validation error if component is invalid'(
+ form,
+ done,
+ test,
+ ) {
+ test.timeout(5000);
+ const testComponents = form.components.filter(
+ (comp) => !['button'].includes(comp.component.type),
+ );
+ _.each(testComponents, (comp) => {
+ _.set(
+ comp.component,
+ 'validate.customMessage',
+ '{{component.key}}: custom validation error',
+ );
+ });
- const openModalBtn = comp.refs.openModal;
- openModalBtn.dispatchEvent(clickEvent);
+ const clickEvent = new Event('click');
+ form.getComponent('submit').refs.button.dispatchEvent(clickEvent);
- setTimeout(() => {
- assert.deepEqual(isModalWindowOpened(), true, `${compKey} (component ${compType}): should open modal window`);
+ setTimeout(() => {
+ assert.deepEqual(
+ form.errors.length,
+ testComponents.length,
+ 'Form should contain references to all components errors',
+ );
+ assert.deepEqual(
+ form.refs.errorRef.length,
+ form.errors.length,
+ 'Should contain references to all components errors in form alert with errors',
+ );
- const value = _.cloneDeep(values.values[compKey]);
- comp.setValue(value);
+ testComponents.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ const getExpectedErrorMessage = () =>
+ `${compKey}: custom validation error`;
+
+ assert.deepEqual(
+ !!comp.error,
+ true,
+ `${compKey} (component ${compType}): should have required validation error`,
+ );
+ assert.deepEqual(
+ comp.error.message,
+ getExpectedErrorMessage(),
+ `${compKey} (component ${compType}): should have correct custom validation message`,
+ );
+ //remove below line once tree validation error display is fixed
+ if (_.includes(['tree'], comp.component.type)) return;
+ assert.deepEqual(
+ comp.refs.messageContainer
+ .querySelector('.error')
+ ?.textContent.trim(),
+ getExpectedErrorMessage(),
+ `${compKey} (component ${compType}): should display custom error message`,
+ );
+ });
+ done();
+ }, 300);
+ },
+ 'Should show custom validation label if component is invalid'(
+ form,
+ done,
+ test,
+ ) {
+ test.timeout(5000);
+ const testComponents = form.components.filter(
+ (comp) => !['button'].includes(comp.component.type),
+ );
+ _.each(testComponents, (comp) => {
+ _.set(
+ comp.component,
+ 'errorLabel',
+ 'Custom label for {{component.key}}',
+ );
+ });
- setTimeout(() => {
- const saveModalBtn = comp.refs.modalSave;
- saveModalBtn.dispatchEvent(clickEvent);
+ const clickEvent = new Event('click');
+ form.getComponent('submit').refs.button.dispatchEvent(clickEvent);
setTimeout(() => {
- assert.deepEqual(isModalWindowOpened(), false, `${compKey} (component ${compType}): should close modal window`);
-
- if (layoutComponents.includes(compType)) {
- _.each(comp.components, (child) => {
- const childType = child.component.type;
- const childKey = child.component.key;
- const childDataValue = child.getValue();
- const childExpectedValue = value[childKey];
-
- assert.deepEqual(
- childType === 'datetime' ? childDataValue.startsWith(childExpectedValue) : childDataValue,
- childType === 'datetime' ? true : childExpectedValue,
- `${compKey} (component ${compType}): should save value in modalEdit mode`
- );
- });
- }
- else {
assert.deepEqual(
- compType === 'datetime' ? comp.getValue().startsWith(value) : comp.getValue(),
- compType === 'datetime' ? true : value,
- `${compKey} (component ${compType}): should save value in modalEdit mode`
+ form.errors.length,
+ testComponents.length,
+ 'Form should contain references to all components errors',
+ );
+ assert.deepEqual(
+ form.refs.errorRef.length,
+ form.errors.length,
+ 'Should contain references to all components errors in form alert with errors',
);
- }
- if (isLastComp) {
+ testComponents.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ const getExpectedErrorMessage = () =>
+ `Custom label for ${compKey} is required`;
+
+ assert.deepEqual(
+ !!comp.error,
+ true,
+ `${compKey} (component ${compType}): should have required validation error with custom label`,
+ );
+ assert.deepEqual(
+ comp.error.message,
+ getExpectedErrorMessage(),
+ `${compKey} (component ${compType}): should have correct required validation message with custom label`,
+ );
+ //remove below line once tree validation error display is fixed
+ if (_.includes(['tree'], comp.component.type)) return;
+ assert.deepEqual(
+ comp.refs.messageContainer
+ .querySelector('.error')
+ ?.textContent.trim(),
+ getExpectedErrorMessage(),
+ `${compKey} (component ${compType}): should display error message with custom label`,
+ );
+ });
done();
- }
- }, 50);
- }, 50);
- });
- });
+ }, 300);
+ },
},
- 'Should highlight modal button if component is invalid'(form, done, test) {
- test.timeout(10000);
- const testComponents = form.components.filter(comp => !['htmlelement', 'content', 'button'].includes(comp.component.type));
-
- form.everyComponent((comp) => {
- comp.component.validate = comp.component.validate || {};
- comp.component.validate.required = true;
- });
- setTimeout(() => {
- const clickEvent = new Event('click');
- form.getComponent('submit').refs.button.dispatchEvent(clickEvent);
- setTimeout(() => {
- testComponents
- .filter(comp => !comp.component.tree && comp.hasInput)
- .forEach((comp) => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
-
- const isErrorHighlightClass = !!(comp.refs.openModalWrapper.classList.contains('formio-error-wrapper') || comp.componentModal.element.classList.contains('formio-error-wrapper'));
- assert.deepEqual(comp.subForm ? !!comp.subForm.errors.length : !!comp.error, true, `${compKey} (component ${compType}): should contain validation error`);
- //BUG in nested forms, remove the check once it is fixed
- if (compType !== 'form') {
- assert.deepEqual(isErrorHighlightClass, true, `${compKey} (component ${compType}): should highlight invalid modal button`);
- }
+ 'validate.custom': {
+ 'Should execute custom validation'(form, done, test) {
+ test.timeout(3000);
+ const testComponents = form.components.filter(
+ (comp) => !['button'].includes(comp.component.type),
+ );
+
+ assert.deepEqual(
+ form.errors.length,
+ 0,
+ 'Should not show validation errors',
+ );
+ form.setPristine(false);
+ form.setValue({
+ data: _.cloneDeep(values.values),
});
- done();
- }, 200);
- }, 200);
- },
- },
- calculateValue: {
- 'Should caclulate component value'(form, done, test) {
- test.timeout(2500);
-
- const basisComponent = form.getComponent('basis');
- let basis = basisComponent.getValue();
-
- const checkCalculatedValue = () => {
- form.components.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
- if (compKey === 'basis') return;
-
- const getExpectedCalculatedValue = (basis) => settings.calculateValue[`${compKey}`].expectedValue(basis);
-
- const inputValue = comp.dataValue;
-
- _.unset(inputValue, 'metadata');
-
- assert.deepEqual(
- compType === 'datetime' ? inputValue.startsWith(getExpectedCalculatedValue(basis)) : inputValue,
- compType === 'datetime' ? true : getExpectedCalculatedValue(basis),
- `Should calculate component value for ${compKey} (component ${compType})`
- );
- });
- };
-
- checkCalculatedValue();
-
- let basisComponentNewValue = '';
- basisComponent.setValue(basisComponentNewValue);
-
- setTimeout(() => {
- basis = basisComponent.getValue();
- assert.deepEqual(basis, basisComponentNewValue, 'Should set basis component value');
- checkCalculatedValue();
-
- basisComponentNewValue = 'value for calculation of other components value';
- basisComponent.setValue(basisComponentNewValue);
-
- setTimeout(() => {
- basis = basisComponent.getValue();
- assert.deepEqual(basis, basisComponentNewValue, 'Should set basis component value');
- checkCalculatedValue();
- done();
- }, 250);
- }, 250);
- },
- 'Should not allow overriding component colculated value'(form, done) {
- const basisComponent = form.getComponent('basis');
- const basis = basisComponent.getValue();
-
- const checkCalculatedValue = () => {
- form.components.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
- if (compKey === 'basis') return;
-
- const getExpectedCalculatedValue = (basis) => settings.calculateValue[`${compKey}`].expectedValue(basis);
-
- const inputValue = comp.dataValue;
- _.unset(inputValue, 'metadata');
-
- assert.deepEqual(
- compType === 'datetime' ? inputValue.startsWith(getExpectedCalculatedValue(basis)) : inputValue,
- compType === 'datetime' ? true : getExpectedCalculatedValue(basis),
- `Should calculate component value for ${compKey} (component ${compType})`
- );
- });
- };
-
- checkCalculatedValue();
-
- form.setValue({
- data: _.cloneDeep(values.values)
- });
-
- setTimeout(() => {
- checkCalculatedValue();
- done();
- }, 300);
- },
- 'Should allow overriding component calculated value'(form, done, test) {
- test.timeout(5000);
- const basisComponent = form.getComponent('basis');
- const basis = basisComponent.getValue();
+ setTimeout(() => {
+ assert.deepEqual(
+ form.errors.length,
+ testComponents.length,
+ 'Form should contain references to all components errors',
+ );
- form.everyComponent((comp) => {
- if (comp.component.calculateValue) {
- comp.component.allowCalculateOverride = true;
- }
- });
-
- const checkCalculatedValue = (overriden) => {
- const testComponents = form.components.filter(comp => !['form'].includes(comp.component.type) && !['basis'].includes(comp.component.key));
-
- testComponents.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
-
- const getExpectedCalculatedValue = (basis) => {
- return overriden ? values.values[`${compKey}`] : settings.calculateValue[`${compKey}`].expectedValue(basis);
- };
-
- const inputValue = comp.dataValue;
- _.unset(inputValue, 'metadata');
-
- assert.deepEqual(
- compType === 'datetime' ? inputValue.startsWith(getExpectedCalculatedValue(basis)) : inputValue,
- compType === 'datetime' ? true : getExpectedCalculatedValue(basis),
- `Should calculate component value for ${compKey} (component ${compType})`
- );
- });
- };
-
- checkCalculatedValue(false);
- form.setValue({
- data: _.cloneDeep(values.values)
- });
-
- setTimeout(() => {
- checkCalculatedValue(true);
- done();
- }, 300);
- },
- },
- 'validate.required': {
- 'Should show required validation error on submit and remove error if component has value'(form, done, test) {
- test.timeout(5000);
- const testComponents = form.components.filter(comp => !['button'].includes(comp.component.type));
-
- const clickEvent = new Event('click');
- form.getComponent('submit').refs.button.dispatchEvent(clickEvent);
-
- setTimeout(() => {
- assert.deepEqual(form.errors.length, testComponents.length, 'Form should contain references to all components errors');
- assert.deepEqual(form.refs.errorRef.length, form.errors.length, 'Should contain references to all components errors in form alert with errors');
-
- testComponents.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
-
- const getExpectedErrorMessage = () => `${comp.component.label} is required`;
-
- assert.deepEqual(!!comp.error, true, `${compKey} (component ${compType}): should have required validation error`);
- assert.deepEqual(comp.error.message, getExpectedErrorMessage(), `${compKey} (component ${compType}): should have correct rquired validation message`);
- assert.deepEqual(comp.pristine, false, `${compKey} (component ${compType}): should set pristine to false`);
- assert.deepEqual(comp.element.classList.contains('formio-error-wrapper'), true, `${compKey} (component ${compType}): should set error class`);
- //remove below line once tree validation error display is fixed
- if (_.includes(['tree'], comp.component.type)) return;
- assert.deepEqual(comp.refs.messageContainer.querySelector('.error')?.textContent.trim(), getExpectedErrorMessage(), `${compKey} (component ${compType}): should display error message`);
- });
-
- form.setValue({
- data: _.cloneDeep(values.values)
- });
-
- setTimeout(() => {
- assert.deepEqual(form.errors.length, 0, 'Should remove required validation errors after setting values');
- testComponents.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
-
- assert.deepEqual(comp.dataValue, _.get(values.values, compKey), `${compKey} (component ${compType}): should set value`);
- assert.deepEqual(!!comp.error, false, `${compKey} (component ${compType}): Should remove error`);
- assert.deepEqual(comp.element.classList.contains('formio-error-wrapper'), false, `${compKey} (component ${compType}): Should remove error class`);
- assert.deepEqual(!!comp.refs.messageContainer.querySelector('.error'), false, `${compKey} (component ${compType}): should clear errors`);
- });
- done();
- }, 300);
- }, 300);
- },
- 'Should show custom validation error if component is invalid'(form, done, test) {
- test.timeout(5000);
- const testComponents = form.components.filter(comp => !['button'].includes(comp.component.type));
- _.each(testComponents, (comp) => {
- _.set(comp.component, 'validate.customMessage', '{{component.key}}: custom validation error');
- });
-
- const clickEvent = new Event('click');
- form.getComponent('submit').refs.button.dispatchEvent(clickEvent);
-
- setTimeout(() => {
- assert.deepEqual(form.errors.length, testComponents.length, 'Form should contain references to all components errors');
- assert.deepEqual(form.refs.errorRef.length, form.errors.length, 'Should contain references to all components errors in form alert with errors');
-
- testComponents.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
-
- const getExpectedErrorMessage = () => `${compKey}: custom validation error`;
-
- assert.deepEqual(!!comp.error, true, `${compKey} (component ${compType}): should have required validation error`);
- assert.deepEqual(comp.error.message, getExpectedErrorMessage(), `${compKey} (component ${compType}): should have correct custom validation message`);
- //remove below line once tree validation error display is fixed
- if (_.includes(['tree'], comp.component.type)) return;
- assert.deepEqual(comp.refs.messageContainer.querySelector('.error')?.textContent.trim(), getExpectedErrorMessage(), `${compKey} (component ${compType}): should display custom error message`);
- });
- done();
- }, 300);
- },
- 'Should show custom validation label if component is invalid'(form, done, test) {
- test.timeout(5000);
- const testComponents = form.components.filter(comp => !['button'].includes(comp.component.type));
- _.each(testComponents, (comp) => {
- _.set(comp.component, 'errorLabel', 'Custom label for {{component.key}}');
- });
-
- const clickEvent = new Event('click');
- form.getComponent('submit').refs.button.dispatchEvent(clickEvent);
-
- setTimeout(() => {
- assert.deepEqual(form.errors.length, testComponents.length, 'Form should contain references to all components errors');
- assert.deepEqual(form.refs.errorRef.length, form.errors.length, 'Should contain references to all components errors in form alert with errors');
-
- testComponents.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
-
- const getExpectedErrorMessage = () => `Custom label for ${compKey} is required`;
-
- assert.deepEqual(!!comp.error, true, `${compKey} (component ${compType}): should have required validation error with custom label`);
- assert.deepEqual(comp.error.message, getExpectedErrorMessage(), `${compKey} (component ${compType}): should have correct required validation message with custom label`);
- //remove below line once tree validation error display is fixed
- if (_.includes(['tree'], comp.component.type)) return;
- assert.deepEqual(comp.refs.messageContainer.querySelector('.error')?.textContent.trim(), getExpectedErrorMessage(), `${compKey} (component ${compType}): should display error message with custom label`);
- });
- done();
- }, 300);
+ testComponents.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+ const getExpectedErrorMessage = () =>
+ 'Custom validation message: component is invalid.';
+
+ assert.deepEqual(
+ comp.dataValue,
+ _.get(values.values, compKey),
+ `${compKey} (component ${compType}): should set value`,
+ );
+ assert.deepEqual(
+ !!comp.error,
+ true,
+ `${compKey} (component ${compType}): should have validation error`,
+ );
+ assert.deepEqual(
+ comp.error.message,
+ getExpectedErrorMessage(),
+ `${compKey} (component ${compType}): should have correct rquired validation message`,
+ );
+ assert.deepEqual(
+ comp.pristine,
+ false,
+ `${compKey} (component ${compType}): should set pristine to false`,
+ );
+ assert.deepEqual(
+ comp.element.classList.contains('has-error'),
+ true,
+ `${compKey} (component ${compType}): should set error class`,
+ );
+
+ //remove below line once tree validation error display is fixed
+ //remove below line once container validation error display is fixed
+ if (_.includes(['tree', 'container'], comp.component.type))
+ return;
+ assert.deepEqual(
+ comp.refs.messageContainer
+ .querySelector('.error')
+ ?.textContent.trim(),
+ getExpectedErrorMessage(),
+ `${compKey} (component ${compType}): should display error message`,
+ );
+ });
+
+ const getSetValue = (comp) => {
+ return _.isNumber(comp.dataValue)
+ ? 33333333
+ : comp.defaultValue;
+ };
+
+ _.each(testComponents, (comp) => {
+ comp.setValue(getSetValue(comp));
+ });
+
+ setTimeout(() => {
+ assert.deepEqual(
+ form.errors.length,
+ 0,
+ 'Should remove validation errors after setting valid values',
+ );
+ testComponents.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ assert.deepEqual(
+ !!comp.error,
+ false,
+ `${compKey} (component ${compType}): Should remove validation error`,
+ );
+ assert.deepEqual(
+ comp.element.classList.contains('has-error'),
+ false,
+ `${compKey} (component ${compType}): Should remove error class`,
+ );
+ assert.deepEqual(
+ !!comp.refs.messageContainer.querySelector(
+ '.error',
+ ),
+ false,
+ `${compKey} (component ${compType}): should clear errors list`,
+ );
+ });
+ done();
+ }, 500);
+ }, 500);
+ },
},
- },
- 'validate.custom': {
- 'Should execute custom validation'(form, done, test) {
- test.timeout(3000);
- const testComponents = form.components.filter(comp => !['button'].includes(comp.component.type));
-
- assert.deepEqual(form.errors.length, 0, 'Should not show validation errors');
- form.setPristine(false);
- form.setValue({
- data: _.cloneDeep(values.values)
- });
-
- setTimeout(() => {
- assert.deepEqual(form.errors.length, testComponents.length, 'Form should contain references to all components errors');
-
- testComponents.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
- const getExpectedErrorMessage = () => 'Custom validation message: component is invalid.';
-
- assert.deepEqual(comp.dataValue, _.get(values.values, compKey), `${compKey} (component ${compType}): should set value`);
- assert.deepEqual(!!comp.error, true, `${compKey} (component ${compType}): should have validation error`);
- assert.deepEqual(comp.error.message, getExpectedErrorMessage(), `${compKey} (component ${compType}): should have correct rquired validation message`);
- assert.deepEqual(comp.pristine, false, `${compKey} (component ${compType}): should set pristine to false`);
- assert.deepEqual(comp.element.classList.contains('has-error'), true, `${compKey} (component ${compType}): should set error class`);
-
- //remove below line once tree validation error display is fixed
- //remove below line once container validation error display is fixed
- if (_.includes(['tree', 'container'], comp.component.type)) return;
- assert.deepEqual(comp.refs.messageContainer.querySelector('.error')?.textContent.trim(), getExpectedErrorMessage(), `${compKey} (component ${compType}): should display error message`);
- });
-
- const getSetValue = (comp) => {
- return _.isNumber(comp.dataValue) ? 33333333 : comp.defaultValue;
- };
+ validate_nested_components: {
+ 'Should show validation errors for nested components'(
+ form,
+ done,
+ test,
+ ) {
+ test.timeout(6000);
+ const testComponents = [];
+ const treeComponent = form.getComponent('tree');
+ form.everyComponent((comp) => {
+ const component = comp.component;
+ //BUG: exclude datagrid from the check once it required validation issue is fixed
+ if (
+ !component.validate_nested_components &&
+ ![...layoutComponents, 'datagrid'].includes(
+ component.type,
+ ) &&
+ (!treeComponent ||
+ !treeComponent.getComponents().includes(comp))
+ ) {
+ _.set(component, 'validate.required', true);
+ testComponents.push(comp);
+ }
+ });
+ setTimeout(() => {
+ const clickEvent = new Event('click');
+ form.getComponent('submit').refs.button.dispatchEvent(
+ clickEvent,
+ );
- _.each(testComponents, (comp) => {
- comp.setValue(getSetValue(comp));
- });
-
- setTimeout(() => {
- assert.deepEqual(form.errors.length, 0, 'Should remove validation errors after setting valid values');
- testComponents.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
-
- assert.deepEqual(!!comp.error, false, `${compKey} (component ${compType}): Should remove validation error`);
- assert.deepEqual(comp.element.classList.contains('has-error'), false, `${compKey} (component ${compType}): Should remove error class`);
- assert.deepEqual(!!comp.refs.messageContainer.querySelector('.error'), false, `${compKey} (component ${compType}): should clear errors list`);
- });
- done();
- }, 500);
- }, 500);
+ setTimeout(() => {
+ assert.deepEqual(
+ form.errors.length,
+ testComponents.length,
+ 'Form should contain references to all components errors',
+ );
+ assert.deepEqual(
+ form.refs.errorRef.length,
+ form.errors.length,
+ 'Should contain references to all components errors in form alert with errors',
+ );
+
+ testComponents.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ const getExpectedErrorMessage = () =>
+ `${comp.component.label} is required`;
+
+ assert.deepEqual(
+ !!comp.error,
+ true,
+ `${compKey} (component ${compType}): should have required validation error`,
+ );
+ assert.deepEqual(
+ comp.error.message,
+ getExpectedErrorMessage(),
+ `${compKey} (component ${compType}): should have correct rquired validation message`,
+ );
+ assert.deepEqual(
+ comp.pristine,
+ false,
+ `${compKey} (component ${compType}): should set pristine to false`,
+ );
+ assert.deepEqual(
+ comp.element.classList.contains(
+ 'formio-error-wrapper',
+ ),
+ true,
+ `${compKey} (component ${compType}): should set error class`,
+ );
+
+ //remove below line once tree validation error display is fixed
+ if (_.includes(['tree'], comp.component.type)) return;
+ assert.deepEqual(
+ comp.refs.messageContainer
+ .querySelector('.error')
+ ?.textContent.trim(),
+ getExpectedErrorMessage(),
+ `${compKey} (component ${compType}): should display error message`,
+ );
+ });
+
+ _.each(form.components, (comp) => {
+ const compKey = comp.component.key;
+ const value = _.cloneDeep(values.values[compKey]);
+
+ if (value) {
+ comp.setValue(value);
+ }
+ });
+
+ setTimeout(() => {
+ assert.deepEqual(
+ form.errors.length,
+ 0,
+ 'Should remove required validation errors after setting values',
+ );
+ testComponents.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ assert.deepEqual(
+ !!comp.error,
+ false,
+ `${compKey} (component ${compType}): Should remove valudation error`,
+ );
+ assert.deepEqual(
+ comp.element.classList.contains(
+ 'formio-error-wrapper',
+ ),
+ false,
+ `${compKey} (component ${compType}): Should remove error class`,
+ );
+ assert.deepEqual(
+ !!comp.refs.messageContainer.querySelector(
+ '.error',
+ ),
+ false,
+ `${compKey} (component ${compType}): should clear errors`,
+ );
+ });
+
+ done();
+ }, 700);
+ }, 300);
+ }, 300);
+ },
},
- },
- 'validate_nested_components': {
- 'Should show validation errors for nested components'(form, done, test) {
- test.timeout(6000);
- const testComponents = [];
- const treeComponent = form.getComponent('tree');
- form.everyComponent((comp) => {
- const component = comp.component;
- //BUG: exclude datagrid from the check once it required validation issue is fixed
- if (!component.validate_nested_components && ![...layoutComponents, 'datagrid'].includes(component.type) && (!treeComponent || !treeComponent.getComponents().includes(comp))) {
- _.set(component, 'validate.required', true);
- testComponents.push(comp);
- }
- });
- setTimeout(() => {
- const clickEvent = new Event('click');
- form.getComponent('submit').refs.button.dispatchEvent(clickEvent);
+ conditional: {
+ 'Should show component if simple condition is met and hide it if simple condition is not fulfilled'(
+ form,
+ done,
+ test,
+ ) {
+ test.timeout(3000);
+ const testComponents = form.components.filter(
+ (comp) => !['basis'].includes(comp.component.key),
+ );
+
+ const testVisibility = (shouldBeVisible) => {
+ testComponents.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ assert.equal(
+ comp.visible,
+ shouldBeVisible,
+ `Should set visible:${shouldBeVisible} for ${compKey} (component ${compType})`,
+ );
+ assert.equal(
+ comp.hasCondition(),
+ true,
+ `${compKey} (component ${compType}): hasCondition should return true`,
+ );
+ assert.equal(
+ comp.conditionallyVisible(),
+ shouldBeVisible,
+ `${compKey} (component ${compType}): should ${
+ shouldBeVisible ? 'not' : ''
+ } be conditionally visible`,
+ );
+
+ if (compType !== 'well') {
+ assert.equal(
+ comp.element.classList.contains('formio-hidden'),
+ !shouldBeVisible,
+ `Should ${
+ shouldBeVisible ? 'not' : ''
+ } set formio-hidden class for ${compKey} (component ${compType})`,
+ );
+ }
+ });
+ };
- setTimeout(() => {
- assert.deepEqual(form.errors.length, testComponents.length, 'Form should contain references to all components errors');
- assert.deepEqual(form.refs.errorRef.length, form.errors.length, 'Should contain references to all components errors in form alert with errors');
+ testVisibility(false);
+ form.getComponent('basis').setValue('show');
- testComponents.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
+ setTimeout(() => {
+ testVisibility(true);
+ form.getComponent('basis').setValue('hide');
- const getExpectedErrorMessage = () => `${comp.component.label} is required`;
+ setTimeout(() => {
+ testVisibility(false);
- assert.deepEqual(!!comp.error, true, `${compKey} (component ${compType}): should have required validation error`);
- assert.deepEqual(comp.error.message, getExpectedErrorMessage(), `${compKey} (component ${compType}): should have correct rquired validation message`);
- assert.deepEqual(comp.pristine, false, `${compKey} (component ${compType}): should set pristine to false`);
- assert.deepEqual(comp.element.classList.contains('formio-error-wrapper'), true, `${compKey} (component ${compType}): should set error class`);
+ done();
+ }, 300);
+ }, 300);
+ },
+ },
+ customConditional: {
+ 'Should show component if custom condition is met and hide it if custom condition is not fulfilled'(
+ form,
+ done,
+ test,
+ ) {
+ test.timeout(3000);
+ const testComponents = form.components.filter(
+ (comp) => !['basis'].includes(comp.component.key),
+ );
+
+ const testVisibility = (shouldBeVisible) => {
+ testComponents.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ assert.equal(
+ comp.visible,
+ shouldBeVisible,
+ `Should set visible:${shouldBeVisible} for ${compKey} (component ${compType})`,
+ );
+ assert.equal(
+ comp.hasCondition(),
+ true,
+ `${compKey} (component ${compType}): hasCondition should return true`,
+ );
+ assert.equal(
+ comp.conditionallyVisible(),
+ shouldBeVisible,
+ `${compKey} (component ${compType}): should ${
+ shouldBeVisible ? 'not' : ''
+ } be conditionally visible`,
+ );
+
+ if (compType !== 'well') {
+ assert.equal(
+ comp.element.classList.contains('formio-hidden'),
+ !shouldBeVisible,
+ `Should ${
+ shouldBeVisible ? 'not' : ''
+ } set formio-hidden class for ${compKey} (component ${compType})`,
+ );
+ }
+ });
+ };
- //remove below line once tree validation error display is fixed
- if (_.includes(['tree'], comp.component.type)) return;
- assert.deepEqual(comp.refs.messageContainer.querySelector('.error')?.textContent.trim(), getExpectedErrorMessage(), `${compKey} (component ${compType}): should display error message`);
- });
+ testVisibility(false);
+ form.getComponent('basis').setValue('show');
- _.each(form.components, (comp) => {
- const compKey = comp.component.key;
- const value = _.cloneDeep(values.values[compKey]);
+ setTimeout(() => {
+ testVisibility(true);
+ form.getComponent('basis').setValue('hide');
- if (value) {
- comp.setValue(value);
- }
- });
+ setTimeout(() => {
+ testVisibility(false);
- setTimeout(() => {
- assert.deepEqual(form.errors.length, 0, 'Should remove required validation errors after setting values');
- testComponents.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
+ done();
+ }, 300);
+ }, 300);
+ },
+ },
+ logic: {
+ 'Should execute value/property/merge schema/custom actions if simple logic condition is met'(
+ form,
+ done,
+ test,
+ ) {
+ test.timeout(8000);
+ const testComponents = form.components.filter(
+ (comp) => !['basis', 'hideBtn'].includes(comp.component.key),
+ );
+
+ form.getComponent('basis').setValue('value action');
+ setTimeout(() => {
+ checkSetValue(
+ testComponents,
+ 'should set value once simple logic value action is executed',
+ );
+ form.getComponent('basis').setValue('property action');
+
+ setTimeout(() => {
+ testComponents.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ assert.deepEqual(
+ comp.component.label,
+ 'changed label on property action',
+ `${compKey} (component ${compType}): should change label once simple logic property action is executed`,
+ );
+ assert.deepEqual(
+ comp.name,
+ 'changed label on property action',
+ `${compKey} (component ${compType}): should change name once simple logic property action is executed`,
+ );
+ });
+
+ _.each(testComponents, (comp) => {
+ comp.setValue(
+ _.isNumber(comp.dataValue) ? 0 : comp.defaultValue,
+ );
+ });
+
+ form.getComponent('basis').setValue('merge schema action');
+
+ setTimeout(() => {
+ testComponents.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ assert.deepEqual(
+ comp.component.label,
+ 'changed label on merge schema',
+ `${compKey} (component ${compType}): should change label once simple logic merge schema action is executed`,
+ );
+ assert.deepEqual(
+ comp.name,
+ 'changed label on merge schema',
+ `${compKey} (component ${compType}): should change name once simple logic property merge schema action is executed`,
+ );
+ });
+
+ form.getComponent('basis').setValue('custom action');
+
+ setTimeout(() => {
+ checkSetValue(
+ testComponents,
+ 'should set value once simple logic custom action is executed',
+ );
+
+ done();
+ }, 500);
+ }, 500);
+ }, 500);
+ }, 500);
+ },
+ 'Should execute value action if js logic condition is met'(
+ form,
+ done,
+ test,
+ ) {
+ test.timeout(5000);
+ const testComponents = form.components.filter(
+ (comp) => !['basis', 'hideBtn'].includes(comp.component.key),
+ );
+
+ form.getComponent('basis').setValue(
+ 'some text value with length over twenty',
+ );
+ setTimeout(() => {
+ checkSetValue(
+ testComponents,
+ 'should set value once js logic value action is executed',
+ );
+ done();
+ }, 500);
+ },
+ 'Should execute property action if json logic condition is met'(
+ form,
+ done,
+ test,
+ ) {
+ test.timeout(3500);
+ const testComponents = form.components.filter(
+ (comp) => !['basis', 'hideBtn'].includes(comp.component.key),
+ );
+
+ form.getComponent('basis').setValue('add class');
+ setTimeout(() => {
+ testComponents.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ assert.deepEqual(
+ comp.element.classList.contains('json-logic-class'),
+ true,
+ `${compKey} (component ${compType}): should set custom class once json logic property action is executed`,
+ );
+ });
+ done();
+ }, 500);
+ },
+ 'Should execute property action if logic event is emitted'(form, done) {
+ const testComponents = form.components.filter(
+ (comp) => !['basis', 'hideBtn'].includes(comp.component.key),
+ );
+ const clickEvent = new Event('click');
+ form.getComponent('hideBtn').refs.button.dispatchEvent(clickEvent);
+
+ testComponents.forEach((comp) => {
+ const compKey = comp.component.key;
+ const compType = comp.component.type;
+
+ assert.equal(
+ comp.visible,
+ false,
+ `Should set visible:false for ${compKey} (component ${compType})`,
+ );
- assert.deepEqual(!!comp.error, false, `${compKey} (component ${compType}): Should remove valudation error`);
- assert.deepEqual(comp.element.classList.contains('formio-error-wrapper'), false, `${compKey} (component ${compType}): Should remove error class`);
- assert.deepEqual(!!comp.refs.messageContainer.querySelector('.error'), false, `${compKey} (component ${compType}): should clear errors`);
+ if (compType !== 'well') {
+ assert.equal(
+ comp.element.classList.contains('formio-hidden'),
+ true,
+ `Should set formio-hidden class for ${compKey} (component ${compType})`,
+ );
+ }
});
done();
- }, 700);
- }, 300);
- }, 300);
+ },
},
- },
- conditional: {
- 'Should show component if simple condition is met and hide it if simple condition is not fulfilled'(form, done, test) {
- test.timeout(3000);
- const testComponents = form.components.filter(comp => !['basis'].includes(comp.component.key));
-
- const testVisibility = (shouldBeVisible) => {
- testComponents.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
-
- assert.equal(comp.visible, shouldBeVisible, `Should set visible:${shouldBeVisible} for ${compKey} (component ${compType})`);
- assert.equal(comp.hasCondition(), true, `${compKey} (component ${compType}): hasCondition should return true`);
- assert.equal(comp.conditionallyVisible(), shouldBeVisible, `${compKey} (component ${compType}): should ${shouldBeVisible ? 'not' : ''} be conditionally visible`);
-
- if (compType !== 'well') {
- assert.equal(comp.element.classList.contains('formio-hidden'), !shouldBeVisible, `Should ${shouldBeVisible ? 'not' : ''} set formio-hidden class for ${compKey} (component ${compType})`);
- }
- });
- };
-
- testVisibility(false);
- form.getComponent('basis').setValue('show');
-
- setTimeout(() => {
- testVisibility(true);
- form.getComponent('basis').setValue('hide');
-
- setTimeout(() => {
- testVisibility(false);
-
- done();
- }, 300);
- }, 300);
- },
- },
- customConditional: {
- 'Should show component if custom condition is met and hide it if custom condition is not fulfilled'(form, done, test) {
- test.timeout(3000);
- const testComponents = form.components.filter(comp => !['basis'].includes(comp.component.key));
-
- const testVisibility = (shouldBeVisible) => {
- testComponents.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
-
- assert.equal(comp.visible, shouldBeVisible, `Should set visible:${shouldBeVisible} for ${compKey} (component ${compType})`);
- assert.equal(comp.hasCondition(), true, `${compKey} (component ${compType}): hasCondition should return true`);
- assert.equal(comp.conditionallyVisible(), shouldBeVisible, `${compKey} (component ${compType}): should ${shouldBeVisible ? 'not' : ''} be conditionally visible`);
-
- if (compType !== 'well') {
- assert.equal(comp.element.classList.contains('formio-hidden'), !shouldBeVisible, `Should ${shouldBeVisible ? 'not' : ''} set formio-hidden class for ${compKey} (component ${compType})`);
- }
- });
- };
-
- testVisibility(false);
- form.getComponent('basis').setValue('show');
-
- setTimeout(() => {
- testVisibility(true);
- form.getComponent('basis').setValue('hide');
-
- setTimeout(() => {
- testVisibility(false);
-
- done();
- }, 300);
- }, 300);
- },
- },
- logic: {
- 'Should execute value/property/merge schema/custom actions if simple logic condition is met'(form, done, test) {
- test.timeout(8000);
- const testComponents = form.components.filter(comp => !['basis', 'hideBtn'].includes(comp.component.key));
-
- form.getComponent('basis').setValue('value action');
- setTimeout(() => {
- checkSetValue(testComponents, 'should set value once simple logic value action is executed');
- form.getComponent('basis').setValue('property action');
-
- setTimeout(() => {
- testComponents.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
-
- assert.deepEqual(comp.component.label, 'changed label on property action', `${compKey} (component ${compType}): should change label once simple logic property action is executed`);
- assert.deepEqual(comp.name, 'changed label on property action', `${compKey} (component ${compType}): should change name once simple logic property action is executed`);
- });
-
- _.each(testComponents, (comp) => {
- comp.setValue(_.isNumber(comp.dataValue) ? 0 : comp.defaultValue);
- });
-
- form.getComponent('basis').setValue('merge schema action');
-
- setTimeout(() => {
- testComponents.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
-
- assert.deepEqual(comp.component.label, 'changed label on merge schema', `${compKey} (component ${compType}): should change label once simple logic merge schema action is executed`);
- assert.deepEqual(comp.name, 'changed label on merge schema', `${compKey} (component ${compType}): should change name once simple logic property merge schema action is executed`);
+ set_get_value: {
+ 'Should set and get components` value (including string value)'(
+ form,
+ done,
+ ) {
+ form.components.forEach((comp) => {
+ comp.setValue(_.cloneDeep(values.values[comp.component.key]));
});
- form.getComponent('basis').setValue('custom action');
-
setTimeout(() => {
- checkSetValue(testComponents, 'should set value once simple logic custom action is executed');
-
- done();
- }, 500);
- }, 500);
- }, 500);
- }, 500);
- },
- 'Should execute value action if js logic condition is met'(form, done, test) {
- test.timeout(5000);
- const testComponents = form.components.filter(comp => !['basis', 'hideBtn'].includes(comp.component.key));
-
- form.getComponent('basis').setValue('some text value with length over twenty');
- setTimeout(() => {
- checkSetValue(testComponents, 'should set value once js logic value action is executed');
- done();
- }, 500);
- },
- 'Should execute property action if json logic condition is met'(form, done, test) {
- test.timeout(3500);
- const testComponents = form.components.filter(comp => !['basis', 'hideBtn'].includes(comp.component.key));
-
- form.getComponent('basis').setValue('add class');
- setTimeout(() => {
- testComponents.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
-
- assert.deepEqual(comp.element.classList.contains('json-logic-class'), true, `${compKey} (component ${compType}): should set custom class once json logic property action is executed`);
- });
- done();
- }, 500);
+ checkSetValue(form.components, 'should set value', true);
+ done();
+ }, 300);
+ },
+ 'Should set and get submission'(form, done) {
+ form.setSubmission({
+ data: values.submission,
+ }).then(() => {
+ setTimeout(() => {
+ checkSetValue(
+ form.components,
+ 'should set submisson',
+ true,
+ );
+ assert.deepEqual(
+ form.submission.data,
+ values.submission,
+ 'Should contain correct submission data',
+ );
+ done();
+ }, 100);
+ });
+ },
},
- 'Should execute property action if logic event is emitted'(form, done) {
- const testComponents = form.components.filter(comp => !['basis', 'hideBtn'].includes(comp.component.key));
- const clickEvent = new Event('click');
- form.getComponent('hideBtn').refs.button.dispatchEvent(clickEvent);
+};
- testComponents.forEach(comp => {
+function checkSetValue(testComponents, message, checkStringValue) {
+ testComponents.forEach((comp) => {
const compKey = comp.component.key;
const compType = comp.component.type;
+ const value = _.get(values.values, compKey);
+
+ const checkValues = (comp, expectedValue, expectedStringValue) => {
+ const key = comp.component.key;
+ const type = comp.component.type;
+ const gotValue = comp.getValue();
+ const dataValue = comp.dataValue;
+
+ _.unset(dataValue, 'metadata');
+ _.unset(gotValue, 'metadata');
+ //not to compare datetime as it depends on timezone
+ if (type !== 'datetime') {
+ assert.deepEqual(
+ gotValue,
+ expectedValue,
+ `${key}111111 (component ${type}): ${message}`,
+ );
+ }
- assert.equal(comp.visible, false, `Should set visible:false for ${compKey} (component ${compType})`);
-
- if (compType !== 'well') {
- assert.equal(comp.element.classList.contains('formio-hidden'), true, `Should set formio-hidden class for ${compKey} (component ${compType})`);
- }
- });
+ assert.deepEqual(
+ dataValue,
+ expectedValue,
+ `${key}22222 (component ${type}): ${message}`,
+ );
- done();
- },
- },
- 'set_get_value': {
- 'Should set and get components` value (including string value)'(form, done) {
- form.components.forEach(comp => {
- comp.setValue(_.cloneDeep(values.values[comp.component.key]));
- });
-
- setTimeout(() => {
- checkSetValue(form.components, 'should set value', true);
- done();
- }, 300);
- },
- 'Should set and get submission'(form, done) {
- form.setSubmission({
- data: values.submission
- }).then(() => {
- setTimeout(() => {
- checkSetValue(form.components, 'should set submisson', true);
- assert.deepEqual(form.submission.data, values.submission, 'Should contain correct submission data');
- done();
- }, 100);
- });
- },
- },
-};
+ if (checkStringValue) {
+ assert.deepEqual(
+ comp.getValueAsString(dataValue),
+ expectedStringValue,
+ `${key} (component ${type}): should get value as string`,
+ );
+ }
+ };
-function checkSetValue(testComponents, message, checkStringValue) {
- testComponents.forEach(comp => {
- const compKey = comp.component.key;
- const compType = comp.component.type;
- const value = _.get(values.values, compKey);
-
- const checkValues = (comp, expectedValue, expectedStringValue) => {
- const key = comp.component.key;
- const type = comp.component.type;
- const gotValue = comp.getValue();
- const dataValue = comp.dataValue;
-
- _.unset(dataValue, 'metadata');
- _.unset(gotValue, 'metadata');
- //not to compare datetime as it depends on timezone
- if (type !== 'datetime') {
- assert.deepEqual(gotValue, expectedValue, `${key}111111 (component ${type}): ${message}`);
- }
-
- assert.deepEqual(dataValue, expectedValue, `${key}22222 (component ${type}): ${message}`);
-
- if (checkStringValue) {
- assert.deepEqual(comp.getValueAsString(dataValue), expectedStringValue, `${key} (component ${type}): should get value as string`);
- }
- };
-
- if (layoutComponents.includes(compType)) {
- _.each(comp.components, (child) => {
- const childKey = child.component.key;
- checkValues(child, value[childKey], values.stringValues[childKey]);
- });
- }
- else {
- checkValues(comp, value, values.stringValues[compKey]);
- }
- });
+ if (layoutComponents.includes(compType)) {
+ _.each(comp.components, (child) => {
+ const childKey = child.component.key;
+ checkValues(
+ child,
+ value[childKey],
+ values.stringValues[childKey],
+ );
+ });
+ } else {
+ checkValues(comp, value, values.stringValues[compKey]);
+ }
+ });
}
diff --git a/test/forms/helpers/testBasicComponentSettings/values.js b/test/forms/helpers/testBasicComponentSettings/values.js
index 891e4459fd..44d850b7fd 100644
--- a/test/forms/helpers/testBasicComponentSettings/values.js
+++ b/test/forms/helpers/testBasicComponentSettings/values.js
@@ -1,164 +1,180 @@
import _ from 'lodash';
import settings from './settings';
import { fastCloneDeep } from '../../../../src/utils/utils';
-import basicValues from './basicValues'
+import basicValues from './basicValues';
const values = basicValues;
const findMultipleValues = (valuesObj) => {
- const componentsWithMultipleValueSetting = {};
- _.each(valuesObj, (compPropertyValue, compKey) => {
- if(settings['multiple'][compKey]) {
- componentsWithMultipleValueSetting[compKey] = fastCloneDeep(compPropertyValue);
- }
- });
- return componentsWithMultipleValueSetting;
+ const componentsWithMultipleValueSetting = {};
+ _.each(valuesObj, (compPropertyValue, compKey) => {
+ if (settings['multiple'][compKey]) {
+ componentsWithMultipleValueSetting[compKey] =
+ fastCloneDeep(compPropertyValue);
+ }
+ });
+ return componentsWithMultipleValueSetting;
};
-const multipleValues = _.mapValues(findMultipleValues(values), (value, compKey) => {
- if (compKey === 'select') {
- return ['a','b']
- }
+const multipleValues = _.mapValues(
+ findMultipleValues(values),
+ (value, compKey) => {
+ if (compKey === 'select') {
+ return ['a', 'b'];
+ }
- if (compKey === 'file') {
- const fileValue = fastCloneDeep(value);
+ if (compKey === 'file') {
+ const fileValue = fastCloneDeep(value);
- fileValue.push({
- name: "after-5c3e3b6b-c8b0-43c1-8cc5-cb4ede1e51cf.jpg",
- originalName: "after.jpg",
- size: 28473,
- storage: "base64",
- type: "image/jpeg",
- url: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAkACQAAD",
- });
+ fileValue.push({
+ name: 'after-5c3e3b6b-c8b0-43c1-8cc5-cb4ede1e51cf.jpg',
+ originalName: 'after.jpg',
+ size: 28473,
+ storage: 'base64',
+ type: 'image/jpeg',
+ url: 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAkACQAAD',
+ });
- return fileValue;
- }
+ return fileValue;
+ }
- return [fastCloneDeep(value), fastCloneDeep(value)];
-});
+ return [fastCloneDeep(value), fastCloneDeep(value)];
+ },
+);
const stringValues = {
- form: '[Complex Data]',
- textField: 'test value',
- textArea: 'test value',
- number: '280',
- password: 'sOm_paSword123',
- checkbox: 'Yes',
- selectBoxes: 'a, c',
- select: '
A ',
- radio: 'b',
- email: 'user@example.com',
- url: 'https://portal.form.io',
- phoneNumber: '(555) 555-5555',
- tags: 'tag1',
- address: 'Dallas County, Texas, United States',
- dateTime: '2021-02-03 12:00 PM',
- day: '01/05/2005',
- time: '04:15',
- currency: '$30,000.00',
- survey: 'Question 1: yes; Question 2: no',
- numberColumn: '1111',
- textFieldColumn: 'value',
- numberFieldset: '222222',
- numberPanel: '66666',
- selectTable: '
one ',
- checkboxTable: 'Yes',
- dateTimeTable: '2031-02-03 05:00 AM',
- currencyTable: '$4,000.00',
- numberTab: '123456',
- textFieldTab: 'value',
- textFieldWell: 'value',
- hidden: 'hidden value',
- container: '[Complex Data]',
- dataMap: '[Complex Data]',
- dataGrid: '[Complex Data]',
- editGrid: '[Complex Data]',
- tree: '[Complex Data]',
- file: 'test file.docx',
- submit: 'true',
+ form: '[Complex Data]',
+ textField: 'test value',
+ textArea: 'test value',
+ number: '280',
+ password: 'sOm_paSword123',
+ checkbox: 'Yes',
+ selectBoxes: 'a, c',
+ select: '
A ',
+ radio: 'b',
+ email: 'user@example.com',
+ url: 'https://portal.form.io',
+ phoneNumber: '(555) 555-5555',
+ tags: 'tag1',
+ address: 'Dallas County, Texas, United States',
+ dateTime: '2021-02-03 12:00 PM',
+ day: '01/05/2005',
+ time: '04:15',
+ currency: '$30,000.00',
+ survey: 'Question 1: yes; Question 2: no',
+ numberColumn: '1111',
+ textFieldColumn: 'value',
+ numberFieldset: '222222',
+ numberPanel: '66666',
+ selectTable: '
one ',
+ checkboxTable: 'Yes',
+ dateTimeTable: '2031-02-03 05:00 AM',
+ currencyTable: '$4,000.00',
+ numberTab: '123456',
+ textFieldTab: 'value',
+ textFieldWell: 'value',
+ hidden: 'hidden value',
+ container: '[Complex Data]',
+ dataMap: '[Complex Data]',
+ dataGrid: '[Complex Data]',
+ editGrid: '[Complex Data]',
+ tree: '[Complex Data]',
+ file: 'test file.docx',
+ submit: 'true',
};
-const submission = {
- form: {
- data: {
- dataGridChild: [
- { textAreaInsideChildDataGrid: "test value in nested form1" },
- { textAreaInsideChildDataGrid: "test value in nested form2" }
+const submission = {
+ form: {
+ data: {
+ dataGridChild: [
+ { textAreaInsideChildDataGrid: 'test value in nested form1' },
+ { textAreaInsideChildDataGrid: 'test value in nested form2' },
+ ],
+ numberInsideChildPanel: 111111,
+ textFieldChild: 'test value in nested form',
+ timeChild: '11:55:00',
+ },
+ },
+ textField: 'test value',
+ textArea: 'test value',
+ number: 280,
+ password: 'sOm_paSword123',
+ checkbox: true,
+ selectBoxes: { a: true, b: false, c: true },
+ select: 'a',
+ radio: 'b',
+ email: 'user@example.com',
+ url: 'https://portal.form.io',
+ phoneNumber: '(555) 555-5555',
+ tags: 'tag1',
+ address: {
+ address: {
+ county: 'Dallas County',
+ state: 'Texas',
+ country: 'United States',
+ country_code: 'us',
+ },
+ boundingbox: ['32.5453486', '32.9899027', '-97.0383833', '-96.5168819'],
+ class: 'boundary',
+ display_name: 'Dallas County, Texas, United States',
+ icon: 'https://nominatim.openstreetmap.org/ui/mapicons//poi_boundary_administrative.p.20.png',
+ importance: 0.6662149661993487,
+ lat: '32.7620405',
+ licence:
+ 'Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright',
+ lon: '-96.7790069',
+ osm_id: 1837698,
+ osm_type: 'relation',
+ place_id: 256774876,
+ type: 'administrative',
+ },
+ dateTime: '2021-02-03T12:00:00',
+ day: '01/05/2005',
+ time: '04:15:00',
+ currency: 30000,
+ survey: {
+ question1: 'yes',
+ question2: 'no',
+ },
+ signature:
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtEAAACWCAYAAAAYC9T6AAAcO0lEQVR4Xu3df4yV1Z3H8TNRgSjCaIlULMMiLah1wG43+0cVGpPNLhBoRd10KMMfm2yAyEjbsB0quBv2D8ZU0k27ZSho2ewuQ0RLrBEWtKS724LUGmKWGU3bpFQZaGsryjDCBv9gZ/M5j9/hYebO3Hvn/jrnue8nMTPO3Ps853mdhzufe+73nKfh4sV3BxwbAggggAACCCCAAAIIFCzQQIgu2IoHIoAAAggggAACCCDgBQjRXAgIIIAAAggggAACCBQpQIguEoyHI4AAAggggAACCCBAiOYaQAABBBBAAAEEEECgSAFCdJFgPBwBBBBAAAEEEEAAAUI01wACCCCAAAIIIIAAAkUKEKKLBOPhCCCAAAIIIIAAAggQorkGEEAAAQQQQAABBBAoUoAQXSQYD0cAAQQQQAABBBBAgBDNNYAAAggggAACCCCAQJEChOgiwXg4AggggAACCCCAAAKEaK4BBBBAAAEEEEAAAQSKFCBEFwnGwxFAAAEEEEAAAQQQIERzDSCAAAIIIIAAAgggUKQAIbpIMB6OAAIIIIAAAggggAAhmmsAAQQQQAABBMoicOrUab+f3t5eN3nyZHfqVK9raGgY3Ld+NnnyJDd37t1lOR47QaCWAoToWupzbAQQQAABBGokcP78eR909bWvr981Nk7yLenufsM1NTVdFYb1mO7uN30A1n96jP5TGNZX/f7IkWNuyZJFfp8WorUT/c42heze3tP+MW1tq93GjV+v0dlzWARKFyBEl27IHhBAAAEEEChZQAFTgdNCp0KrhVCN6J4/3+/6+q4E0iu/O+0DsJ4/adIk19/f75/X1DTdB17bGhsn+28VYC0Az59/rz/e/v0HXVvbGv/7rq5nXGvrcv+9fr506WK/H+1/xozpbsaMJv8c7Uf/b/ssFEDP3b17r9uw4XH3la+sdR0dmwt9Ko9DICgBQnRQ3UFjEEAAAQSyImBh2EocdF4Kw0ePHnMDAwP+NDUCnB6p1c8UTDUSrJ8rsCrApgOwhVYLsLF6NTf/ubvhhuvdq6/+d6ynQLvrXIAQXecXAKePAAIIIFC4gAVehV+VJfT19fmAq6Dc3d3jR231/ZYtT7pNm9r9jn/601fc0qWLfCBWiE6C8ZVR3MKPnq1H3nnnnzqNhD/11HezdWKcTd0IEKLrpqs5UQQQQACBkQRstFghuafnDaeBYiud0M/0+yNHXnFr164eHBVWIFZNsIViPY4Jc4VdY+3tm1xn51PupZde8EGaDYEYBQjRMfYabUYAAQQQyCuQrjFWILb/1xMtGNvIsJVGWBnFggX3Dk6uU72xRo7ZyiPQ1bXXrV79qJ9UaKP15dkze0GgugKE6Op6czQEEEAAgRIELPxqkp2tCmE/U1BWeYV+pxFh/Vyh2EaHbVKcDk85RQmdUMJTVebS0bHVrVjRQhlHCY48NQwBQnQY/UArEEAAgboWyBWONUpsZRb6XpuNGFsJgMLwvHnJmsMKzLFPtsvqRaB+1OjziRM9fmk7RqCz2tP1dV6E6Prqb84WAQQQqImArQ9so8cWkBWe335bk+2m+1pjjRono8RJINb31BnXpMvKdlAr39Dye8899+/UQJdNlh3VWoAQXese4PgIIIBABgQUjhWMe3vP+BttnDjxhj8r/UxLtKVDMQE5Ax1ewCloImZ7++O+7EY3YdEqHNSWFwDHQ6IRIERH01U0FAEEEKidgE3Ks6CsgKT6Y/08XXOskgqVV+grE/Jq11+1PLKuDa28oRu1NDd/2m3duoXR51p2CMeumAAhumK07BgBBBCIS8BKLTRBz27rrNCsMgubiGchmTKLuPq2Gq3VNdPZudPt33/If/qg5QBV/8yGQFYFCNFZ7VnOCwEEEMghkNQm9/o1kJMVLnr8zUC0pJs2m5yXLrkAEoHRBDTyvGXLVv/GS+FZN5bRxEFKN7husi5AiM56D3N+CCBQdwKarNfd/ebgcm8CUFDWltwcZLr/nqBcd5dG2U5Y19iRI8f8nRkVnlW2obs1trYuZ4WUsimzo9AFCNGh9xDtQwABBIYI2K2nFZSdG/C/Vf2pRpkVZLSpDCN9wxCWfuMyKoeAAnNX1zPuwIFD/nrTihsadV65soWR53IAs4+oBAjRUXUXjUUAgXoTsNpkhWCFlm3bdri2tjWDQVmh2QIyH5/X29VR2PnmWoNbz7Q3Y7YXlfio/r2xsdEN6L7nH23jx49zJ0++5Ueef/Obt/xPb7nlFrd+/TpqngvrAh6VUQFCdEY7ltNCAIE4BOxmIqpNVo2y1tRNloSbPnjbaX0/d26zPyFGlOPo12q30kp4kq/JcoO6tlSvXOw2YcIEd+nSpYKeZhNM9amHSoW0lB0bAvUiQIiul57mPBFAoGYCNhLY0/OG6+vrd6dOnfJfNcHPbi6irxoF5K57Neumih5YwVabQqf63bmGvMdLjxTbNTRlysfc2bPv+aCskWPty96I5dphU9P0wTdkdttzvUnTtWbtST/v9df/xx0+/J/u+PHX3Zkzv/W/0qjzZz97j5sz51Pu+uuv9yPYOqaCek+PSoqubDo/TSzcuLGdN3x5e5gHxC5AiI69B2k/AggEI2CjgL29p/1EPo0s/+QnR/26yQoXulW1fc9d+ILptpIaohIHbTbiW2i4HetBFYB1XdmmCX3pN1+2FKEmjRZ6janNOg/VOlvY1/61b5UO6bod7RMQPUfXu56fDtUtLX/tdu3aPtZT5XkIBC9AiA6+i2ggAgiEKKDgoJFlfdXd+TQiqElWKrtIyi+0CkbhQSbEc6RNiYCNvCpoWtmNvo42AlyqnY0gp9fnVli+555md+ONGkmeVNJEPl23mhyo4Js+D13DmiSoWnuF52I3vZnYsOHv3YkTPf6pTzzxj27dukeK3Q2PRyAKAUJ0FN1EIxFAoFYCtpSXTfBTeNKcKwXlZIQuCcqFjvrV6jw4bmECQ98cqbzh4sWLhT05x6MUSvXpg20Wim0SqK4fK68Y+rsxHzTHExWUjx59xY8Y62Yo6VIRtVE1za2tLf7rWCeofvDBB2737mfcz372c/f88y/6Vuzbt8ctWvSX5TwV9oVAMAKE6GC6goYggECtBWxyVvLx9it+1FEBw4KyLRnH5L5a91R5j6/lATUqOzRc5juKBWSbXKevVq5jgTjfPir1e42a69MRhWZdy7lGzVesSEKzapjHGpyt/d/73tNu165/c7/4xa/8j7TCx5IlC93Ond+t1CmyXwRqLkCIrnkX0AAEEKiVgNWCKizr+7ffTtZW1qiyfS01XNTq3Dju6AIKlXv27B1WzpDrWZMm3egWLLhvcIKegnIIE0AVlK8sX3feB+bRJhqqxlnXtT5BsfXES71Oduz4vlu//rGrdtPRsdnNnv0pRqBLxeX5wQsQooPvIhqIAALlELBJf7pBiUbmNOFPgcLKMkr5GLsc7WMf1RHQm6XOzp1+KcGRNo0wK2Sm30xVp3VXHyW9qouthqGvOoehazwPbZ+VaFTq+la5xmOP/cPgCh46/sSJE923vvWEW7jwL9yUKVNqQcYxEaiqACG6qtwcDAEEqiWgsKFROX1Mr0lO+n+NwCkYaSRxLJOmqtV2jlNeAQXOrq5nXWfnjhEnA1pwbmtbXZP6dl2fNlE134iydJIyo+l+ZQ5bJtFu427/P5qirSaiEXVt+rei4HvnnXOGPU2hfdq0j7ve3jPupZcOD5aIpB+of09dXd8nPJf30mVvgQsQogPvIJqHAAL5BRSStO6y1TErkFidqt2ohDrm/I5ZeoSuCatzVs3zSJtWwdCEOoXnapXuJKPJPe7dd8+65557PufIsi1dN9o64vZGUWtOp0entX6zlsHTOtI2Ym2j2jrHCxcuuMuXL+ck+cxn5rn333+/4JVHZs6c4b785S+5jRu/nqXLh3NBoCABQnRBTDwIAQRCE7B6Zt24RGEivaScAnO1AlFoLvXenh/96Mfu2Wf3ub17941KYWsgK0BXclN4TUaWz1z1Jk/HVGCdOPGGj1Z3afardNgSiUko7vch2AKyrnMF40LKOSp5TrbvBx/8gtu8eZObNev2ahyOYyAQnAAhOrguoUEIIDBUwEYVz50773+lEGFrMVPLzPWi+uaXXz7sfve7d9yrr742Ioitgdzauryokg27/hSGbfR36GoXthqHQvGFCxf9aK+u13Pnzg22Z+rUW5z+U9nF7NmfdLq9tvb9zjt/dH/4wx8/upOhK3gUuJCet7IPPValH2pnX1+fu3z5/9y1115b8DEV+K+55hp/Xg899IBraXnY3X77zEKawGMQyKwAITqzXcuJIRCngH38rBrWgYEB/4dfH32rdlOTvUq9yUScKrQ6l0BHx1a/LrHuEDnapqXctIzbWFakWLXqUbdv3w/dhx9+WLFOGD9+fN79Kwzr34KVJeVab9p+V0hNdK6TUTmUJgfefPPNfuUSbfPnfy6IlUgqhs+OEShBgBBdAh5PRQCB0gXso2l9TN3Z+ZSvT9Wm/1fooZa5dOOs7UElPHfd9Wc5T2vcuHHuuuuu8xPkVO88c+afuAkTxg8+VteTTaa7soMBP0J7ZcWLBv+rXbv+1f3gBz/033/iE9PcuHHjffmFRpdPn/7tsOPfddcd/lbZc+bM9iPdemxSl5zcplvfa1MYtk3t0QivapTVhnQZEm8Ys3blcj5ZEyBEZ61HOR8EAhdQaNbEp2SpMYXmL/k60HQ9aOCnQPNqLLBp02b37W935myFRmz7+5PQWs5NpReXLl3yu1RQvrISRnKbd1Z7Kac2+0IgDgFCdBz9RCsRiFJAdaPJ3dJ6/Ufuql1du3bV4OSpsX7sHCUGjS6bwNmzZ93ixQ/6Eog1a/7WTZ061f3yl79yq1b9ja8vtjpkG/kdulKFGqI3cdqGrresUWqNAGvTfr/znU733nvvuwceWOKWLfuCe/jhZWU7D3aEAAJxCxCi4+4/Wo9AUAK6g5pCsyZgKaSopllrMi9Zspi1mYPqKRpTjMD99y9yr7123Gk1imXLvujuv3+Bu+mmxmJ2wWMRQCCDAoToDHYqp4RANQQUknVzCFuxwG7eoIlIdlMTVs6oRk9wjEoL6O58Tz/9L/5a16brW3fl++pX2yp9aPaPAAIBCxCiA+4cmoZAKAK2Vq1Gmm2U2T4Gt9CswExdaCg9RjsqIaDVQLZseXJw17fdNs197WttfqLg4sV/xdrklUBnnwgELECIDrhzaBoCtRJQLfPRo0lJhoVmawuhuVa9wnFDEDh+/HX3zW/+kzt48OVhzdFqMlpKb8mSRQTqEDqLNiBQYQFCdIWB2T0CMQhYaN6//5Bfkzl9IwkFAo0wa6RZEwHZEEDAuRdf/A939ux77tFH1+fk0FKNCtX698OGAALZFCBEZ7NfOSsERhVI1zMrOKdXKNAffYVlyjO4iBDIL3Ds2M/9Ch76xCbX0npa99lu9EKgzu/JIxCISYAQHVNv0VYExiigkWVNAty//+BHS85ducMb5RljROVpCKQE9G9M/766up5xPT1v5rQhUHPJIJAtAUJ0tvqTs0HAC2hkeehyc0ajG0XYKDOrZ3DBIFB+AQJ1+U3ZIwIhChCiQ+wV2oTAGARUoqHgbKPNtgvdwU21mRacuY32GHB5CgJjFFCg7uzc4VQ2pRsO5drSI9T6ZCh96+8xHpanIYBAFQQI0VVA5hAIVEpgz569vhYzuSvg8BINhWcmA1ZKn/0iUJyA3uiq3GO0QK092iof9913r7+lOBsCCIQpQIgOs19oFQI5BRSUDxw4NGy0ualpul9BQxOYKNHg4kEgfIFCSj50FjbJV3f91Cg1GwIIhCNAiA6nL2gJAsMErLY514RA1TYnI1aMNnPpIBCzgAVqfaKkN8kjbSrz0JtkvVlmlDrmHqftWREgRGelJzmPzAjYms27d+/1ZRq2pWub9UeUusnMdDkngsCggN44q0RLJR/69z9SHbWeoFIPvYnWp1DUUnMRIVB9AUJ09c05IgLDBPTHUpMCVS9JbTMXCAIImIDdNVSvESOtRW2PtZsi2VrvKCKAQGUFCNGV9WXvCOQUSJdppG92otHm5OPaZHSJSUVcQAggkBZQmD5xQivxUPrBlYFArQUI0bXuAY5fNwIaYU6vpmEnbus2t7YuZyWNurkaOFEEyiNgI9XJEpcjl3+k70LKnRPLY89eECBEcw0gUEEBTRLSHzdNDNRXbVpJQ3/QNNK8cmULtc0V9GfXCNSbgNVU6/XGAnau25GzjF69XRmcbyUECNGVUGWfdStgf7h0i+1t23YOOqhMo61ttS/VUIBmUmDdXiKcOAJVF8g3Wq3XpPQExao3kAMiEKkAITrSjqPZYQho1Ce5gcJe/1X/3Xrrx93Fi//r5s2726lEg9rmMPqKViCAQCJgr1uaqGivW7YKiK34oZKPpqYm5mVw0SAwigAhmssDgSIFRrrhiXazYkWLe+ihL7o77pjDH58iXXk4AgjUTkBh+tSpXr+0Xnd3z+AqQZ///H1u3bpH3G23TeM1rXbdw5EDFSBEB9oxNCssAf2B0aRA1Tanl6Cz1TRaW1v8x6FsCCCAQBYE9DqnEWstu+lcgw/YKlPbuLHdh2lGqbPQy5xDqQKE6FIFeX5mBfRHZPv2ncOCs05YH3XaxBzqmzN7CXBiCCCQEtDqHzZJWq+PjY3JHRS5JTmXSb0KEKLrtec575wCGnnRihqaFGiradgDtRSdapwVnlm/mQsIAQTqWcBWAUmC9SF/Z0XN/9BcEH1tbr6b18l6vkDq5NwJ0XXS0Zzm6AIKzJ2dGnU+5D/CtM1uta2VNTSDnQ0BBBBAYLiARqbtroq2XrWVfWi0WsF67txPszIRF0+mBAjRmepOTqZYAdU5796917/4pzeNOre1rXFLly7iRb9YVB6PAAJ1L2ChWpMUtQpIT8+b3kTBOgnUzW7+/M8xOFH3V0rcAITouPuP1o9BQCPNnZ1P+Qkz6UmC2pVqnTXqrBd5NgQQQACB8gjodVevt6qptluX6yYwmlNi6+frdVfBmg2BWAQI0bH0FO0sWeDIkWM+OGtN5/RmN0JReGaSYMnM7AABBBAoSCBXCYieqDCdTFhcxEh1QZI8qFYChOhayXPcqgjkmyiokg0tT8eGAAIIIFBbgXSo1oi1Rqo1F0X/JYG6mcmKte0ijj5EgBDNJZFJAVvXWfXO6YmCOlndEIWJgpnsdk4KAQQyJGC3K7cJiwrVGqVuaXnYzZo1k7K7DPV1rKdCiI6152j3MAG90B4+/F/uhRdedCdPvnXV75uapru1a1e7lStbKNng2kEAAQQiE7Caai0/+vvfv+N+/euTflm9TZvanSaCM0odWYdmpLmE6Ix0ZD2ehj76O3o0WaNUs7+HjjjbqLOCMxMF6/EK4ZwRQCCrAnq91yeNNkG8oaHBl31oHX+VfrCWf1Z7PqzzIkSH1R+0ZhQBq29WYNao89CVNeypN93U6L7xjb/zJRtsCCCAAALZFrBaatVR62ZZ2hSiFagfeWQ1gTrb3V/TsyNE15Sfg+cTUHDu6nrWjzYMvYPg0OdSspFPk98jgAAC2RbQ3wx9OpkO1Bqh1qCKRqhZgSnb/V/tsyNEV1uc4xUkoJFmreWsF8J8m8Kz6uK4MUo+KX6PAAII1JeAljTdtm3H4M1eNDqtvxWaYM6GQKkChOhSBXl+WQUUmjs6tuYdddZBtSh/a+tylqgraw+wMwQQQCB7Air56Ozc4UepNSFRI9IK05pwrpFqNgTGIkCIHosazym7gEo12tsfH3b77aEH0o1RNJLAEnVl7wJ2iAACCNSFgAZrFKb37EluvKX6aQ3IaHSaCYl1cQmU7SQJ0WWjZEdjEdDowIYNj+ct26DeeSy6PAcBBBBAYCQBW+HjwAHdivzY4C3ItZrT2rWrgEMgrwAhOi8RD6iUgNb73L5954irbOi4Wv8zqXdeXKlmsF8EEEAAgToX0KehyQj1QV8/rXKPnTv/mb89dX5d5Dt9QnQ+IX5fEQGNAEyb9skR9014rgg7O0UAAQQQyCOgie1ag1oDOJR3cLmMJkCI5vqoiYBepBYufGDYsSnbqEl3cFAEEEAAAQQQKFKAEF0kGA8vn8Ctt85y/f39foeaMKg7Cz755JbyHYA9IYAAAggggAACFRIgRFcIlt3mF1ANmm6iok0zo1lmKL8Zj0AAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISOD/AYTV/3TCUQtkAAAAAElFTkSuQmCC',
+ numberColumn: 1111,
+ textFieldColumn: 'value',
+ numberFieldset: 222222,
+ numberPanel: 66666,
+ selectTable: 'one',
+ checkboxTable: true,
+ dateTimeTable: '2031-02-03T05:00:00',
+ currencyTable: 4000,
+ numberTab: 123456,
+ textFieldTab: 'value',
+ textFieldWell: 'value',
+ hidden: 'hidden value',
+ container: { textFieldContainer: 'value1' },
+ dataMap: { key: 'value1', key1: 'value2' },
+ dataGrid: [
+ { textFieldDataGrid: 'value1' },
+ { textFieldDataGrid: 'value2' },
],
- numberInsideChildPanel: 111111,
- textFieldChild: "test value in nested form",
- timeChild: "11:55:00",
+ editGrid: [
+ { textFieldEditGrid: 'value1' },
+ { textFieldEditGrid: 'value2' },
+ ],
+ tree: {
+ children: [{ children: [], data: { textFieldTree: 'value2' } }],
+ data: { textFieldTree: 'value1' },
},
- },
- textField: 'test value',
- textArea: 'test value',
- number: 280,
- password: 'sOm_paSword123',
- checkbox: true,
- selectBoxes: { a: true, b: false, c: true },
- select: 'a',
- radio: 'b',
- email: 'user@example.com',
- url: 'https://portal.form.io',
- phoneNumber: '(555) 555-5555',
- tags: 'tag1',
- address: {
- address: { county: 'Dallas County', state: 'Texas', country: 'United States', country_code: 'us' },
- boundingbox: ['32.5453486', '32.9899027', '-97.0383833', '-96.5168819'],
- class: 'boundary',
- display_name: 'Dallas County, Texas, United States',
- icon: 'https://nominatim.openstreetmap.org/ui/mapicons//poi_boundary_administrative.p.20.png',
- importance: 0.6662149661993487,
- lat: '32.7620405',
- licence: 'Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright',
- lon: '-96.7790069',
- osm_id: 1837698,
- osm_type: 'relation',
- place_id: 256774876,
- type: 'administrative',
- },
- dateTime: '2021-02-03T12:00:00',
- day: '01/05/2005',
- time: '04:15:00',
- currency: 30000,
- survey: {
- question1: 'yes',
- question2: 'no'
- },
- signature: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtEAAACWCAYAAAAYC9T6AAAcO0lEQVR4Xu3df4yV1Z3H8TNRgSjCaIlULMMiLah1wG43+0cVGpPNLhBoRd10KMMfm2yAyEjbsB0quBv2D8ZU0k27ZSho2ewuQ0RLrBEWtKS724LUGmKWGU3bpFQZaGsryjDCBv9gZ/M5j9/hYebO3Hvn/jrnue8nMTPO3Ps853mdhzufe+73nKfh4sV3BxwbAggggAACCCCAAAIIFCzQQIgu2IoHIoAAAggggAACCCDgBQjRXAgIIIAAAggggAACCBQpQIguEoyHI4AAAggggAACCCBAiOYaQAABBBBAAAEEEECgSAFCdJFgPBwBBBBAAAEEEEAAAUI01wACCCCAAAIIIIAAAkUKEKKLBOPhCCCAAAIIIIAAAggQorkGEEAAAQQQQAABBBAoUoAQXSQYD0cAAQQQQAABBBBAgBDNNYAAAggggAACCCCAQJEChOgiwXg4AggggAACCCCAAAKEaK4BBBBAAAEEEEAAAQSKFCBEFwnGwxFAAAEEEEAAAQQQIERzDSCAAAIIIIAAAgggUKQAIbpIMB6OAAIIIIAAAggggAAhmmsAAQQQQAABBMoicOrUab+f3t5eN3nyZHfqVK9raGgY3Ld+NnnyJDd37t1lOR47QaCWAoToWupzbAQQQAABBGokcP78eR909bWvr981Nk7yLenufsM1NTVdFYb1mO7uN30A1n96jP5TGNZX/f7IkWNuyZJFfp8WorUT/c42heze3tP+MW1tq93GjV+v0dlzWARKFyBEl27IHhBAAAEEEChZQAFTgdNCp0KrhVCN6J4/3+/6+q4E0iu/O+0DsJ4/adIk19/f75/X1DTdB17bGhsn+28VYC0Az59/rz/e/v0HXVvbGv/7rq5nXGvrcv+9fr506WK/H+1/xozpbsaMJv8c7Uf/b/ssFEDP3b17r9uw4XH3la+sdR0dmwt9Ko9DICgBQnRQ3UFjEEAAAQSyImBh2EocdF4Kw0ePHnMDAwP+NDUCnB6p1c8UTDUSrJ8rsCrApgOwhVYLsLF6NTf/ubvhhuvdq6/+d6ynQLvrXIAQXecXAKePAAIIIFC4gAVehV+VJfT19fmAq6Dc3d3jR231/ZYtT7pNm9r9jn/601fc0qWLfCBWiE6C8ZVR3MKPnq1H3nnnnzqNhD/11HezdWKcTd0IEKLrpqs5UQQQQACBkQRstFghuafnDaeBYiud0M/0+yNHXnFr164eHBVWIFZNsIViPY4Jc4VdY+3tm1xn51PupZde8EGaDYEYBQjRMfYabUYAAQQQyCuQrjFWILb/1xMtGNvIsJVGWBnFggX3Dk6uU72xRo7ZyiPQ1bXXrV79qJ9UaKP15dkze0GgugKE6Op6czQEEEAAgRIELPxqkp2tCmE/U1BWeYV+pxFh/Vyh2EaHbVKcDk85RQmdUMJTVebS0bHVrVjRQhlHCY48NQwBQnQY/UArEEAAgboWyBWONUpsZRb6XpuNGFsJgMLwvHnJmsMKzLFPtsvqRaB+1OjziRM9fmk7RqCz2tP1dV6E6Prqb84WAQQQqImArQ9so8cWkBWe335bk+2m+1pjjRono8RJINb31BnXpMvKdlAr39Dye8899+/UQJdNlh3VWoAQXese4PgIIIBABgQUjhWMe3vP+BttnDjxhj8r/UxLtKVDMQE5Ax1ewCloImZ7++O+7EY3YdEqHNSWFwDHQ6IRIERH01U0FAEEEKidgE3Ks6CsgKT6Y/08XXOskgqVV+grE/Jq11+1PLKuDa28oRu1NDd/2m3duoXR51p2CMeumAAhumK07BgBBBCIS8BKLTRBz27rrNCsMgubiGchmTKLuPq2Gq3VNdPZudPt33/If/qg5QBV/8yGQFYFCNFZ7VnOCwEEEMghkNQm9/o1kJMVLnr8zUC0pJs2m5yXLrkAEoHRBDTyvGXLVv/GS+FZN5bRxEFKN7husi5AiM56D3N+CCBQdwKarNfd/ebgcm8CUFDWltwcZLr/nqBcd5dG2U5Y19iRI8f8nRkVnlW2obs1trYuZ4WUsimzo9AFCNGh9xDtQwABBIYI2K2nFZSdG/C/Vf2pRpkVZLSpDCN9wxCWfuMyKoeAAnNX1zPuwIFD/nrTihsadV65soWR53IAs4+oBAjRUXUXjUUAgXoTsNpkhWCFlm3bdri2tjWDQVmh2QIyH5/X29VR2PnmWoNbz7Q3Y7YXlfio/r2xsdEN6L7nH23jx49zJ0++5Ueef/Obt/xPb7nlFrd+/TpqngvrAh6VUQFCdEY7ltNCAIE4BOxmIqpNVo2y1tRNloSbPnjbaX0/d26zPyFGlOPo12q30kp4kq/JcoO6tlSvXOw2YcIEd+nSpYKeZhNM9amHSoW0lB0bAvUiQIiul57mPBFAoGYCNhLY0/OG6+vrd6dOnfJfNcHPbi6irxoF5K57Neumih5YwVabQqf63bmGvMdLjxTbNTRlysfc2bPv+aCskWPty96I5dphU9P0wTdkdttzvUnTtWbtST/v9df/xx0+/J/u+PHX3Zkzv/W/0qjzZz97j5sz51Pu+uuv9yPYOqaCek+PSoqubDo/TSzcuLGdN3x5e5gHxC5AiI69B2k/AggEI2CjgL29p/1EPo0s/+QnR/26yQoXulW1fc9d+ILptpIaohIHbTbiW2i4HetBFYB1XdmmCX3pN1+2FKEmjRZ6janNOg/VOlvY1/61b5UO6bod7RMQPUfXu56fDtUtLX/tdu3aPtZT5XkIBC9AiA6+i2ggAgiEKKDgoJFlfdXd+TQiqElWKrtIyi+0CkbhQSbEc6RNiYCNvCpoWtmNvo42AlyqnY0gp9fnVli+555md+ONGkmeVNJEPl23mhyo4Js+D13DmiSoWnuF52I3vZnYsOHv3YkTPf6pTzzxj27dukeK3Q2PRyAKAUJ0FN1EIxFAoFYCtpSXTfBTeNKcKwXlZIQuCcqFjvrV6jw4bmECQ98cqbzh4sWLhT05x6MUSvXpg20Wim0SqK4fK68Y+rsxHzTHExWUjx59xY8Y62Yo6VIRtVE1za2tLf7rWCeofvDBB2737mfcz372c/f88y/6Vuzbt8ctWvSX5TwV9oVAMAKE6GC6goYggECtBWxyVvLx9it+1FEBw4KyLRnH5L5a91R5j6/lATUqOzRc5juKBWSbXKevVq5jgTjfPir1e42a69MRhWZdy7lGzVesSEKzapjHGpyt/d/73tNu165/c7/4xa/8j7TCx5IlC93Ond+t1CmyXwRqLkCIrnkX0AAEEKiVgNWCKizr+7ffTtZW1qiyfS01XNTq3Dju6AIKlXv27B1WzpDrWZMm3egWLLhvcIKegnIIE0AVlK8sX3feB+bRJhqqxlnXtT5BsfXES71Oduz4vlu//rGrdtPRsdnNnv0pRqBLxeX5wQsQooPvIhqIAALlELBJf7pBiUbmNOFPgcLKMkr5GLsc7WMf1RHQm6XOzp1+KcGRNo0wK2Sm30xVp3VXHyW9qouthqGvOoehazwPbZ+VaFTq+la5xmOP/cPgCh46/sSJE923vvWEW7jwL9yUKVNqQcYxEaiqACG6qtwcDAEEqiWgsKFROX1Mr0lO+n+NwCkYaSRxLJOmqtV2jlNeAQXOrq5nXWfnjhEnA1pwbmtbXZP6dl2fNlE134iydJIyo+l+ZQ5bJtFu427/P5qirSaiEXVt+rei4HvnnXOGPU2hfdq0j7ve3jPupZcOD5aIpB+of09dXd8nPJf30mVvgQsQogPvIJqHAAL5BRSStO6y1TErkFidqt2ohDrm/I5ZeoSuCatzVs3zSJtWwdCEOoXnapXuJKPJPe7dd8+65557PufIsi1dN9o64vZGUWtOp0entX6zlsHTOtI2Ym2j2jrHCxcuuMuXL+ck+cxn5rn333+/4JVHZs6c4b785S+5jRu/nqXLh3NBoCABQnRBTDwIAQRCE7B6Zt24RGEivaScAnO1AlFoLvXenh/96Mfu2Wf3ub17941KYWsgK0BXclN4TUaWz1z1Jk/HVGCdOPGGj1Z3afardNgSiUko7vch2AKyrnMF40LKOSp5TrbvBx/8gtu8eZObNev2ahyOYyAQnAAhOrguoUEIIDBUwEYVz50773+lEGFrMVPLzPWi+uaXXz7sfve7d9yrr742Ioitgdzauryokg27/hSGbfR36GoXthqHQvGFCxf9aK+u13Pnzg22Z+rUW5z+U9nF7NmfdLq9tvb9zjt/dH/4wx8/upOhK3gUuJCet7IPPValH2pnX1+fu3z5/9y1115b8DEV+K+55hp/Xg899IBraXnY3X77zEKawGMQyKwAITqzXcuJIRCngH38rBrWgYEB/4dfH32rdlOTvUq9yUScKrQ6l0BHx1a/LrHuEDnapqXctIzbWFakWLXqUbdv3w/dhx9+WLFOGD9+fN79Kwzr34KVJeVab9p+V0hNdK6TUTmUJgfefPPNfuUSbfPnfy6IlUgqhs+OEShBgBBdAh5PRQCB0gXso2l9TN3Z+ZSvT9Wm/1fooZa5dOOs7UElPHfd9Wc5T2vcuHHuuuuu8xPkVO88c+afuAkTxg8+VteTTaa7soMBP0J7ZcWLBv+rXbv+1f3gBz/033/iE9PcuHHjffmFRpdPn/7tsOPfddcd/lbZc+bM9iPdemxSl5zcplvfa1MYtk3t0QivapTVhnQZEm8Ys3blcj5ZEyBEZ61HOR8EAhdQaNbEp2SpMYXmL/k60HQ9aOCnQPNqLLBp02b37W935myFRmz7+5PQWs5NpReXLl3yu1RQvrISRnKbd1Z7Kac2+0IgDgFCdBz9RCsRiFJAdaPJ3dJ6/Ufuql1du3bV4OSpsX7sHCUGjS6bwNmzZ93ixQ/6Eog1a/7WTZ061f3yl79yq1b9ja8vtjpkG/kdulKFGqI3cdqGrresUWqNAGvTfr/znU733nvvuwceWOKWLfuCe/jhZWU7D3aEAAJxCxCi4+4/Wo9AUAK6g5pCsyZgKaSopllrMi9Zspi1mYPqKRpTjMD99y9yr7123Gk1imXLvujuv3+Bu+mmxmJ2wWMRQCCDAoToDHYqp4RANQQUknVzCFuxwG7eoIlIdlMTVs6oRk9wjEoL6O58Tz/9L/5a16brW3fl++pX2yp9aPaPAAIBCxCiA+4cmoZAKAK2Vq1Gmm2U2T4Gt9CswExdaCg9RjsqIaDVQLZseXJw17fdNs197WttfqLg4sV/xdrklUBnnwgELECIDrhzaBoCtRJQLfPRo0lJhoVmawuhuVa9wnFDEDh+/HX3zW/+kzt48OVhzdFqMlpKb8mSRQTqEDqLNiBQYQFCdIWB2T0CMQhYaN6//5Bfkzl9IwkFAo0wa6RZEwHZEEDAuRdf/A939ux77tFH1+fk0FKNCtX698OGAALZFCBEZ7NfOSsERhVI1zMrOKdXKNAffYVlyjO4iBDIL3Ds2M/9Ch76xCbX0npa99lu9EKgzu/JIxCISYAQHVNv0VYExiigkWVNAty//+BHS85ducMb5RljROVpCKQE9G9M/766up5xPT1v5rQhUHPJIJAtAUJ0tvqTs0HAC2hkeehyc0ajG0XYKDOrZ3DBIFB+AQJ1+U3ZIwIhChCiQ+wV2oTAGARUoqHgbKPNtgvdwU21mRacuY32GHB5CgJjFFCg7uzc4VQ2pRsO5drSI9T6ZCh96+8xHpanIYBAFQQI0VVA5hAIVEpgz569vhYzuSvg8BINhWcmA1ZKn/0iUJyA3uiq3GO0QK092iof9913r7+lOBsCCIQpQIgOs19oFQI5BRSUDxw4NGy0ualpul9BQxOYKNHg4kEgfIFCSj50FjbJV3f91Cg1GwIIhCNAiA6nL2gJAsMErLY514RA1TYnI1aMNnPpIBCzgAVqfaKkN8kjbSrz0JtkvVlmlDrmHqftWREgRGelJzmPzAjYms27d+/1ZRq2pWub9UeUusnMdDkngsCggN44q0RLJR/69z9SHbWeoFIPvYnWp1DUUnMRIVB9AUJ09c05IgLDBPTHUpMCVS9JbTMXCAIImIDdNVSvESOtRW2PtZsi2VrvKCKAQGUFCNGV9WXvCOQUSJdppG92otHm5OPaZHSJSUVcQAggkBZQmD5xQivxUPrBlYFArQUI0bXuAY5fNwIaYU6vpmEnbus2t7YuZyWNurkaOFEEyiNgI9XJEpcjl3+k70LKnRPLY89eECBEcw0gUEEBTRLSHzdNDNRXbVpJQ3/QNNK8cmULtc0V9GfXCNSbgNVU6/XGAnau25GzjF69XRmcbyUECNGVUGWfdStgf7h0i+1t23YOOqhMo61ttS/VUIBmUmDdXiKcOAJVF8g3Wq3XpPQExao3kAMiEKkAITrSjqPZYQho1Ce5gcJe/1X/3Xrrx93Fi//r5s2726lEg9rmMPqKViCAQCJgr1uaqGivW7YKiK34oZKPpqYm5mVw0SAwigAhmssDgSIFRrrhiXazYkWLe+ihL7o77pjDH58iXXk4AgjUTkBh+tSpXr+0Xnd3z+AqQZ///H1u3bpH3G23TeM1rXbdw5EDFSBEB9oxNCssAf2B0aRA1Tanl6Cz1TRaW1v8x6FsCCCAQBYE9DqnEWstu+lcgw/YKlPbuLHdh2lGqbPQy5xDqQKE6FIFeX5mBfRHZPv2ncOCs05YH3XaxBzqmzN7CXBiCCCQEtDqHzZJWq+PjY3JHRS5JTmXSb0KEKLrtec575wCGnnRihqaFGiradgDtRSdapwVnlm/mQsIAQTqWcBWAUmC9SF/Z0XN/9BcEH1tbr6b18l6vkDq5NwJ0XXS0Zzm6AIKzJ2dGnU+5D/CtM1uta2VNTSDnQ0BBBBAYLiARqbtroq2XrWVfWi0WsF67txPszIRF0+mBAjRmepOTqZYAdU5796917/4pzeNOre1rXFLly7iRb9YVB6PAAJ1L2ChWpMUtQpIT8+b3kTBOgnUzW7+/M8xOFH3V0rcAITouPuP1o9BQCPNnZ1P+Qkz6UmC2pVqnTXqrBd5NgQQQACB8gjodVevt6qptluX6yYwmlNi6+frdVfBmg2BWAQI0bH0FO0sWeDIkWM+OGtN5/RmN0JReGaSYMnM7AABBBAoSCBXCYieqDCdTFhcxEh1QZI8qFYChOhayXPcqgjkmyiokg0tT8eGAAIIIFBbgXSo1oi1Rqo1F0X/JYG6mcmKte0ijj5EgBDNJZFJAVvXWfXO6YmCOlndEIWJgpnsdk4KAQQyJGC3K7cJiwrVGqVuaXnYzZo1k7K7DPV1rKdCiI6152j3MAG90B4+/F/uhRdedCdPvnXV75uapru1a1e7lStbKNng2kEAAQQiE7Caai0/+vvfv+N+/euTflm9TZvanSaCM0odWYdmpLmE6Ix0ZD2ehj76O3o0WaNUs7+HjjjbqLOCMxMF6/EK4ZwRQCCrAnq91yeNNkG8oaHBl31oHX+VfrCWf1Z7PqzzIkSH1R+0ZhQBq29WYNao89CVNeypN93U6L7xjb/zJRtsCCCAAALZFrBaatVR62ZZ2hSiFagfeWQ1gTrb3V/TsyNE15Sfg+cTUHDu6nrWjzYMvYPg0OdSspFPk98jgAAC2RbQ3wx9OpkO1Bqh1qCKRqhZgSnb/V/tsyNEV1uc4xUkoJFmreWsF8J8m8Kz6uK4MUo+KX6PAAII1JeAljTdtm3H4M1eNDqtvxWaYM6GQKkChOhSBXl+WQUUmjs6tuYdddZBtSh/a+tylqgraw+wMwQQQCB7Air56Ozc4UepNSFRI9IK05pwrpFqNgTGIkCIHosazym7gEo12tsfH3b77aEH0o1RNJLAEnVl7wJ2iAACCNSFgAZrFKb37EluvKX6aQ3IaHSaCYl1cQmU7SQJ0WWjZEdjEdDowIYNj+ct26DeeSy6PAcBBBBAYCQBW+HjwAHdivzY4C3ItZrT2rWrgEMgrwAhOi8RD6iUgNb73L5954irbOi4Wv8zqXdeXKlmsF8EEEAAgToX0KehyQj1QV8/rXKPnTv/mb89dX5d5Dt9QnQ+IX5fEQGNAEyb9skR9014rgg7O0UAAQQQyCOgie1ag1oDOJR3cLmMJkCI5vqoiYBepBYufGDYsSnbqEl3cFAEEEAAAQQQKFKAEF0kGA8vn8Ctt85y/f39foeaMKg7Cz755JbyHYA9IYAAAggggAACFRIgRFcIlt3mF1ANmm6iok0zo1lmKL8Zj0AAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISIAQHVFn0VQEEEAAAQQQQACBMAQI0WH0A61AAAEEEEAAAQQQiEiAEB1RZ9FUBBBAAAEEEEAAgTAECNFh9AOtQAABBBBAAAEEEIhIgBAdUWfRVAQQQAABBBBAAIEwBAjRYfQDrUAAAQQQQAABBBCISOD/AYTV/3TCUQtkAAAAAElFTkSuQmCC',
- numberColumn: 1111,
- textFieldColumn: 'value',
- numberFieldset: 222222,
- numberPanel: 66666 ,
- selectTable:'one',
- checkboxTable: true,
- dateTimeTable: '2031-02-03T05:00:00',
- currencyTable: 4000,
- numberTab: 123456,
- textFieldTab: 'value',
- textFieldWell: 'value',
- hidden: 'hidden value',
- container: { textFieldContainer: 'value1' },
- dataMap: { key: 'value1', key1: 'value2' },
- dataGrid: [
- { textFieldDataGrid: 'value1' },
- { textFieldDataGrid: 'value2' }
- ],
- editGrid: [{ textFieldEditGrid: 'value1' }, { textFieldEditGrid: 'value2' }],
- tree: {
- children: [{ children: [], data: {textFieldTree: 'value2'} }],
- data: { textFieldTree: 'value1' }
- },
- file: [{
- name: 'test file-15c248a4-401f-4456-aff9-abcbdf0f7bfa.docx',
- originalName: 'test file.docx',
- size: 11396,
- storage: 'base64',
- type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
- url: 'data:application/vnd.openxmlformats-officedocument',
- }],
- submit: true,
+ file: [
+ {
+ name: 'test file-15c248a4-401f-4456-aff9-abcbdf0f7bfa.docx',
+ originalName: 'test file.docx',
+ size: 11396,
+ storage: 'base64',
+ type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
+ url: 'data:application/vnd.openxmlformats-officedocument',
+ },
+ ],
+ submit: true,
};
export default { values, multipleValues, stringValues, submission };
diff --git a/test/forms/htmlRenderMode.d.ts b/test/forms/htmlRenderMode.d.ts
index 0cb18c4dd3..5b77d46163 100644
--- a/test/forms/htmlRenderMode.d.ts
+++ b/test/forms/htmlRenderMode.d.ts
@@ -3,735 +3,756 @@ declare namespace _default {
const display: string;
const type: string;
const name: string;
- const components: ({
- hideLabel: boolean;
- clearOnHide: boolean;
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- theme: string;
- key: string;
- input: boolean;
- components: ({
- hideLabel: boolean;
- type: string;
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- validate: {
- customPrivate: boolean;
- custom: string;
- pattern: string;
- maxLength: string;
- minLength: string;
- required: boolean;
- multiple?: undefined;
- integer?: undefined;
- step?: undefined;
- max?: undefined;
- min?: undefined;
- };
- persistent: boolean;
- unique: boolean;
- protected: boolean;
- defaultValue: string;
- multiple: boolean;
- suffix: string;
- prefix: string;
- placeholder: string;
- key: string;
- label: string;
- inputMask: string;
- inputType: string;
- tableView: boolean;
- input: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- labelPosition?: undefined;
- tags?: undefined;
- properties?: undefined;
- } | {
- hideLabel: boolean;
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- type: string;
- validate: {
- custom: string;
- multiple: string;
- integer: string;
- step: string;
- max: string;
- min: string;
- required: boolean;
- customPrivate?: undefined;
- pattern?: undefined;
- maxLength?: undefined;
- minLength?: undefined;
- };
- persistent: boolean;
- protected: boolean;
- defaultValue: number;
- suffix: string;
- prefix: string;
- placeholder: string;
- key: string;
- label: string;
- inputType: string;
- tableView: boolean;
- input: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- autofocus: boolean;
- labelPosition: string;
- tags: never[];
- properties: {};
- unique?: undefined;
- multiple?: undefined;
- inputMask?: undefined;
- spellcheck?: undefined;
- })[];
- title: string;
- type: string;
- tableView: boolean;
- properties?: undefined;
- tags?: undefined;
- breadcrumb?: undefined;
- disableOnInvalid?: undefined;
- action?: undefined;
- block?: undefined;
- rightIcon?: undefined;
- leftIcon?: undefined;
- size?: undefined;
- label?: undefined;
- } | {
- hideLabel: boolean;
- tableView: boolean;
- clearOnHide: boolean;
- theme: string;
- key: string;
- input: boolean;
- components: ({
- hideLabel: boolean;
- clearOnHide: boolean;
- hidden: boolean;
- type: string;
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- validate: {
- customPrivate: boolean;
- custom: string;
- pattern: string;
- maxLength: string;
- minLength: string;
- required: boolean;
- };
- persistent: boolean;
- unique: boolean;
- protected: boolean;
- defaultValue: string;
- multiple: boolean;
- suffix: string;
- prefix: string;
- placeholder: string;
- key: string;
- label: string;
- inputMask: string;
- inputType: string;
- tableView: boolean;
- input: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- labelPosition: string;
- inputFormat: string;
- tags: never[];
- properties: {};
- data?: undefined;
- dataSrc?: undefined;
- valueProperty?: undefined;
- refreshOn?: undefined;
- filter?: undefined;
- authenticate?: undefined;
- template?: undefined;
- lazyLoad?: undefined;
- widget?: undefined;
- searchField?: undefined;
- components?: undefined;
- legend?: undefined;
- } | {
- input: boolean;
- tableView: boolean;
- label: string;
- key: string;
- placeholder: string;
- data: {
- values: {
- value: string;
- label: string;
- }[];
- json: string;
- url: string;
- resource: string;
- custom: string;
- headers: {
- value: string;
- key: string;
- }[];
- };
- dataSrc: string;
- valueProperty: string;
- defaultValue: string;
- refreshOn: string;
- filter: string;
- authenticate: boolean;
- template: string;
- multiple: boolean;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- validate: {
- required: boolean;
- customPrivate?: undefined;
- pattern?: undefined;
- maxLength?: undefined;
- minLength?: undefined;
- };
- type: string;
- lazyLoad: boolean;
- widget: string;
- hideLabel: boolean;
- labelPosition: string;
- tags: never[];
- conditional: {
- show: string;
- when: null;
- eq: string;
- };
- properties: {};
- searchField: string;
- autofocus: boolean;
- suffix?: undefined;
- prefix?: undefined;
- inputMask?: undefined;
- inputType?: undefined;
- spellcheck?: undefined;
- inputFormat?: undefined;
- components?: undefined;
- legend?: undefined;
- } | {
- hideLabel: boolean;
- clearOnHide: boolean;
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- type: string;
- components: {
- hideLabel: boolean;
- clearOnHide: boolean;
- hidden: boolean;
- type: string;
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- validate: {
- customPrivate: boolean;
- custom: string;
- pattern: string;
- maxLength: string;
- minLength: string;
- required: boolean;
- };
- persistent: boolean;
- unique: boolean;
- protected: boolean;
- defaultValue: string;
- multiple: boolean;
- suffix: string;
- prefix: string;
- placeholder: string;
- key: string;
- label: string;
- inputMask: string;
- inputType: string;
- tableView: boolean;
- input: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- }[];
- legend: string;
- tableView: boolean;
- input: boolean;
- hidden?: undefined;
- validate?: undefined;
- persistent?: undefined;
- unique?: undefined;
- protected?: undefined;
- defaultValue?: undefined;
- multiple?: undefined;
- suffix?: undefined;
- prefix?: undefined;
- placeholder?: undefined;
- key?: undefined;
- label?: undefined;
- inputMask?: undefined;
- inputType?: undefined;
- autofocus?: undefined;
- spellcheck?: undefined;
- labelPosition?: undefined;
- inputFormat?: undefined;
- tags?: undefined;
- properties?: undefined;
- data?: undefined;
- dataSrc?: undefined;
- valueProperty?: undefined;
- refreshOn?: undefined;
- filter?: undefined;
- authenticate?: undefined;
- template?: undefined;
- lazyLoad?: undefined;
- widget?: undefined;
- searchField?: undefined;
- })[];
- title: string;
- type: string;
- conditional?: undefined;
- properties?: undefined;
- tags?: undefined;
- breadcrumb?: undefined;
- disableOnInvalid?: undefined;
- action?: undefined;
- block?: undefined;
- rightIcon?: undefined;
- leftIcon?: undefined;
- size?: undefined;
- label?: undefined;
- } | {
- properties: {
- '': string;
- };
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- tags: never[];
- hideLabel: boolean;
- breadcrumb: string;
- type: string;
- components: ({
- autofocus: boolean;
- input: boolean;
- tableView: boolean;
- inputType: string;
- inputMask: string;
- label: string;
- key: string;
- placeholder: string;
- prefix: string;
- suffix: string;
- multiple: boolean;
- defaultValue: string;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- spellcheck: boolean;
- validate: {
- required: boolean;
- minLength: string;
- maxLength: string;
- pattern: string;
- custom: string;
- customPrivate: boolean;
- };
- conditional: {
- show: string;
- when: null;
- eq: string;
- };
- type: string;
- labelPosition: string;
- inputFormat: string;
- tags: never[];
- properties: {
- ''?: undefined;
- };
- hideLabel?: undefined;
- components?: undefined;
- tree?: undefined;
- data?: undefined;
- widget?: undefined;
- dataSrc?: undefined;
- valueProperty?: undefined;
- refreshOn?: undefined;
- filter?: undefined;
- authenticate?: undefined;
- template?: undefined;
- } | {
- properties: {
- '': string;
- };
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- tags: never[];
- hideLabel: boolean;
- type: string;
- clearOnHide: boolean;
- hidden: boolean;
- persistent: boolean;
- protected: boolean;
- key: string;
- label: string;
- tableView: boolean;
- components: {
- properties: {
- '': string;
- };
- tags: never[];
- labelPosition: string;
- hideLabel: boolean;
- type: string;
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- validate: {
- customPrivate: boolean;
- custom: string;
- pattern: string;
- maxLength: string;
- minLength: string;
- required: boolean;
- };
- clearOnHide: boolean;
- hidden: boolean;
- persistent: boolean;
- unique: boolean;
- protected: boolean;
- defaultValue: string;
- multiple: boolean;
- suffix: string;
- prefix: string;
- placeholder: string;
- key: string;
- label: string;
- inputMask: string;
- inputType: string;
- tableView: boolean;
- input: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- inDataGrid: boolean;
- }[];
- tree: boolean;
- input: boolean;
- autofocus: boolean;
- inputType?: undefined;
- inputMask?: undefined;
- placeholder?: undefined;
- prefix?: undefined;
- suffix?: undefined;
- multiple?: undefined;
- defaultValue?: undefined;
- unique?: undefined;
- spellcheck?: undefined;
- validate?: undefined;
- labelPosition?: undefined;
- inputFormat?: undefined;
- data?: undefined;
- widget?: undefined;
- dataSrc?: undefined;
- valueProperty?: undefined;
- refreshOn?: undefined;
- filter?: undefined;
- authenticate?: undefined;
- template?: undefined;
- } | {
- autofocus: boolean;
- input: boolean;
- tableView: boolean;
- label: string;
- key: string;
- placeholder: string;
- data: {
- values: {
- value: string;
- label: string;
- }[];
- json: string;
- url: string;
- resource: string;
- custom: string;
- };
- widget: string;
- dataSrc: string;
- valueProperty: string;
- defaultValue: string;
- refreshOn: string;
- filter: string;
- authenticate: boolean;
- template: string;
- multiple: boolean;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- validate: {
- required: boolean;
- minLength?: undefined;
- maxLength?: undefined;
- pattern?: undefined;
- customPrivate?: undefined;
- };
- type: string;
- labelPosition: string;
- tags: never[];
- conditional: {
- show: string;
- when: null;
- eq: string;
- };
- properties: {
- ''?: undefined;
- };
- inputType?: undefined;
- inputMask?: undefined;
- prefix?: undefined;
- suffix?: undefined;
- spellcheck?: undefined;
- inputFormat?: undefined;
- hideLabel?: undefined;
- components?: undefined;
- tree?: undefined;
- })[];
- tableView: boolean;
- theme: string;
- title: string;
- input: boolean;
- key: string;
- clearOnHide: boolean;
- disableOnInvalid?: undefined;
- action?: undefined;
- block?: undefined;
- rightIcon?: undefined;
- leftIcon?: undefined;
- size?: undefined;
- label?: undefined;
- } | {
- hideLabel: boolean;
- clearOnHide: boolean;
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- theme: string;
- key: string;
- input: boolean;
- components: ({
- hideLabel: boolean;
- type: string;
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- validate: {
- customPrivate: boolean;
- custom: string;
- pattern: string;
- maxLength: string;
- minLength: string;
- required: boolean;
- };
- persistent: boolean;
- unique: boolean;
- protected: boolean;
- defaultValue: string;
- multiple: boolean;
- suffix: string;
- prefix: string;
- placeholder: string;
- key: string;
- label: string;
- inputMask: string;
- inputType: string;
- tableView: boolean;
- input: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- dataGridLabel?: undefined;
- name?: undefined;
- value?: undefined;
- labelPosition?: undefined;
- tags?: undefined;
- properties?: undefined;
- footer?: undefined;
- width?: undefined;
- height?: undefined;
- penColor?: undefined;
- backgroundColor?: undefined;
- minWidth?: undefined;
- maxWidth?: undefined;
- lockKey?: undefined;
- } | {
- autofocus: boolean;
- input: boolean;
- inputType: string;
- tableView: boolean;
- label: string;
- dataGridLabel: boolean;
- key: string;
- defaultValue: boolean;
- protected: boolean;
- persistent: boolean;
- hidden: boolean;
- name: string;
- value: string;
- clearOnHide: boolean;
- validate: {
- required: boolean;
- customPrivate?: undefined;
- pattern?: undefined;
- maxLength?: undefined;
- minLength?: undefined;
- };
- type: string;
- labelPosition: string;
- hideLabel: boolean;
- tags: never[];
- conditional: {
- show: string;
- when: null;
- eq: string;
- };
- properties: {
- ''?: undefined;
- };
- unique?: undefined;
- multiple?: undefined;
- suffix?: undefined;
- prefix?: undefined;
- placeholder?: undefined;
- inputMask?: undefined;
- spellcheck?: undefined;
- footer?: undefined;
- width?: undefined;
- height?: undefined;
- penColor?: undefined;
- backgroundColor?: undefined;
- minWidth?: undefined;
- maxWidth?: undefined;
- lockKey?: undefined;
- } | {
- input: boolean;
- tableView: boolean;
- label: string;
- key: string;
- placeholder: string;
- footer: string;
- width: string;
- height: string;
- penColor: string;
- backgroundColor: string;
- minWidth: string;
- maxWidth: string;
- protected: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- validate: {
- required: boolean;
- customPrivate?: undefined;
- pattern?: undefined;
- maxLength?: undefined;
- minLength?: undefined;
- };
- type: string;
- hideLabel: boolean;
- tags: never[];
- conditional: {
- show: string;
- when: null;
- eq: string;
- };
- properties: {
- '': string;
- };
- lockKey: boolean;
- unique?: undefined;
- defaultValue?: undefined;
- multiple?: undefined;
- suffix?: undefined;
- prefix?: undefined;
- inputMask?: undefined;
- inputType?: undefined;
- autofocus?: undefined;
- spellcheck?: undefined;
- dataGridLabel?: undefined;
- name?: undefined;
- value?: undefined;
- labelPosition?: undefined;
- })[];
- title: string;
- type: string;
- tableView: boolean;
- properties?: undefined;
- tags?: undefined;
- breadcrumb?: undefined;
- disableOnInvalid?: undefined;
- action?: undefined;
- block?: undefined;
- rightIcon?: undefined;
- leftIcon?: undefined;
- size?: undefined;
- label?: undefined;
- } | {
- hideLabel: boolean;
- type: string;
- theme: string;
- disableOnInvalid: boolean;
- action: string;
- block: boolean;
- rightIcon: string;
- leftIcon: string;
- size: string;
- key: string;
- tableView: boolean;
- label: string;
- input: boolean;
- clearOnHide?: undefined;
- conditional?: undefined;
- components?: undefined;
- title?: undefined;
- properties?: undefined;
- tags?: undefined;
- breadcrumb?: undefined;
- })[];
+ const components: (
+ | {
+ hideLabel: boolean;
+ clearOnHide: boolean;
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ theme: string;
+ key: string;
+ input: boolean;
+ components: (
+ | {
+ hideLabel: boolean;
+ type: string;
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ validate: {
+ customPrivate: boolean;
+ custom: string;
+ pattern: string;
+ maxLength: string;
+ minLength: string;
+ required: boolean;
+ multiple?: undefined;
+ integer?: undefined;
+ step?: undefined;
+ max?: undefined;
+ min?: undefined;
+ };
+ persistent: boolean;
+ unique: boolean;
+ protected: boolean;
+ defaultValue: string;
+ multiple: boolean;
+ suffix: string;
+ prefix: string;
+ placeholder: string;
+ key: string;
+ label: string;
+ inputMask: string;
+ inputType: string;
+ tableView: boolean;
+ input: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ labelPosition?: undefined;
+ tags?: undefined;
+ properties?: undefined;
+ }
+ | {
+ hideLabel: boolean;
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ type: string;
+ validate: {
+ custom: string;
+ multiple: string;
+ integer: string;
+ step: string;
+ max: string;
+ min: string;
+ required: boolean;
+ customPrivate?: undefined;
+ pattern?: undefined;
+ maxLength?: undefined;
+ minLength?: undefined;
+ };
+ persistent: boolean;
+ protected: boolean;
+ defaultValue: number;
+ suffix: string;
+ prefix: string;
+ placeholder: string;
+ key: string;
+ label: string;
+ inputType: string;
+ tableView: boolean;
+ input: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ autofocus: boolean;
+ labelPosition: string;
+ tags: never[];
+ properties: {};
+ unique?: undefined;
+ multiple?: undefined;
+ inputMask?: undefined;
+ spellcheck?: undefined;
+ }
+ )[];
+ title: string;
+ type: string;
+ tableView: boolean;
+ properties?: undefined;
+ tags?: undefined;
+ breadcrumb?: undefined;
+ disableOnInvalid?: undefined;
+ action?: undefined;
+ block?: undefined;
+ rightIcon?: undefined;
+ leftIcon?: undefined;
+ size?: undefined;
+ label?: undefined;
+ }
+ | {
+ hideLabel: boolean;
+ tableView: boolean;
+ clearOnHide: boolean;
+ theme: string;
+ key: string;
+ input: boolean;
+ components: (
+ | {
+ hideLabel: boolean;
+ clearOnHide: boolean;
+ hidden: boolean;
+ type: string;
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ validate: {
+ customPrivate: boolean;
+ custom: string;
+ pattern: string;
+ maxLength: string;
+ minLength: string;
+ required: boolean;
+ };
+ persistent: boolean;
+ unique: boolean;
+ protected: boolean;
+ defaultValue: string;
+ multiple: boolean;
+ suffix: string;
+ prefix: string;
+ placeholder: string;
+ key: string;
+ label: string;
+ inputMask: string;
+ inputType: string;
+ tableView: boolean;
+ input: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ labelPosition: string;
+ inputFormat: string;
+ tags: never[];
+ properties: {};
+ data?: undefined;
+ dataSrc?: undefined;
+ valueProperty?: undefined;
+ refreshOn?: undefined;
+ filter?: undefined;
+ authenticate?: undefined;
+ template?: undefined;
+ lazyLoad?: undefined;
+ widget?: undefined;
+ searchField?: undefined;
+ components?: undefined;
+ legend?: undefined;
+ }
+ | {
+ input: boolean;
+ tableView: boolean;
+ label: string;
+ key: string;
+ placeholder: string;
+ data: {
+ values: {
+ value: string;
+ label: string;
+ }[];
+ json: string;
+ url: string;
+ resource: string;
+ custom: string;
+ headers: {
+ value: string;
+ key: string;
+ }[];
+ };
+ dataSrc: string;
+ valueProperty: string;
+ defaultValue: string;
+ refreshOn: string;
+ filter: string;
+ authenticate: boolean;
+ template: string;
+ multiple: boolean;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ validate: {
+ required: boolean;
+ customPrivate?: undefined;
+ pattern?: undefined;
+ maxLength?: undefined;
+ minLength?: undefined;
+ };
+ type: string;
+ lazyLoad: boolean;
+ widget: string;
+ hideLabel: boolean;
+ labelPosition: string;
+ tags: never[];
+ conditional: {
+ show: string;
+ when: null;
+ eq: string;
+ };
+ properties: {};
+ searchField: string;
+ autofocus: boolean;
+ suffix?: undefined;
+ prefix?: undefined;
+ inputMask?: undefined;
+ inputType?: undefined;
+ spellcheck?: undefined;
+ inputFormat?: undefined;
+ components?: undefined;
+ legend?: undefined;
+ }
+ | {
+ hideLabel: boolean;
+ clearOnHide: boolean;
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ type: string;
+ components: {
+ hideLabel: boolean;
+ clearOnHide: boolean;
+ hidden: boolean;
+ type: string;
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ validate: {
+ customPrivate: boolean;
+ custom: string;
+ pattern: string;
+ maxLength: string;
+ minLength: string;
+ required: boolean;
+ };
+ persistent: boolean;
+ unique: boolean;
+ protected: boolean;
+ defaultValue: string;
+ multiple: boolean;
+ suffix: string;
+ prefix: string;
+ placeholder: string;
+ key: string;
+ label: string;
+ inputMask: string;
+ inputType: string;
+ tableView: boolean;
+ input: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ }[];
+ legend: string;
+ tableView: boolean;
+ input: boolean;
+ hidden?: undefined;
+ validate?: undefined;
+ persistent?: undefined;
+ unique?: undefined;
+ protected?: undefined;
+ defaultValue?: undefined;
+ multiple?: undefined;
+ suffix?: undefined;
+ prefix?: undefined;
+ placeholder?: undefined;
+ key?: undefined;
+ label?: undefined;
+ inputMask?: undefined;
+ inputType?: undefined;
+ autofocus?: undefined;
+ spellcheck?: undefined;
+ labelPosition?: undefined;
+ inputFormat?: undefined;
+ tags?: undefined;
+ properties?: undefined;
+ data?: undefined;
+ dataSrc?: undefined;
+ valueProperty?: undefined;
+ refreshOn?: undefined;
+ filter?: undefined;
+ authenticate?: undefined;
+ template?: undefined;
+ lazyLoad?: undefined;
+ widget?: undefined;
+ searchField?: undefined;
+ }
+ )[];
+ title: string;
+ type: string;
+ conditional?: undefined;
+ properties?: undefined;
+ tags?: undefined;
+ breadcrumb?: undefined;
+ disableOnInvalid?: undefined;
+ action?: undefined;
+ block?: undefined;
+ rightIcon?: undefined;
+ leftIcon?: undefined;
+ size?: undefined;
+ label?: undefined;
+ }
+ | {
+ properties: {
+ '': string;
+ };
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ tags: never[];
+ hideLabel: boolean;
+ breadcrumb: string;
+ type: string;
+ components: (
+ | {
+ autofocus: boolean;
+ input: boolean;
+ tableView: boolean;
+ inputType: string;
+ inputMask: string;
+ label: string;
+ key: string;
+ placeholder: string;
+ prefix: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: string;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ spellcheck: boolean;
+ validate: {
+ required: boolean;
+ minLength: string;
+ maxLength: string;
+ pattern: string;
+ custom: string;
+ customPrivate: boolean;
+ };
+ conditional: {
+ show: string;
+ when: null;
+ eq: string;
+ };
+ type: string;
+ labelPosition: string;
+ inputFormat: string;
+ tags: never[];
+ properties: {
+ ''?: undefined;
+ };
+ hideLabel?: undefined;
+ components?: undefined;
+ tree?: undefined;
+ data?: undefined;
+ widget?: undefined;
+ dataSrc?: undefined;
+ valueProperty?: undefined;
+ refreshOn?: undefined;
+ filter?: undefined;
+ authenticate?: undefined;
+ template?: undefined;
+ }
+ | {
+ properties: {
+ '': string;
+ };
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ tags: never[];
+ hideLabel: boolean;
+ type: string;
+ clearOnHide: boolean;
+ hidden: boolean;
+ persistent: boolean;
+ protected: boolean;
+ key: string;
+ label: string;
+ tableView: boolean;
+ components: {
+ properties: {
+ '': string;
+ };
+ tags: never[];
+ labelPosition: string;
+ hideLabel: boolean;
+ type: string;
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ validate: {
+ customPrivate: boolean;
+ custom: string;
+ pattern: string;
+ maxLength: string;
+ minLength: string;
+ required: boolean;
+ };
+ clearOnHide: boolean;
+ hidden: boolean;
+ persistent: boolean;
+ unique: boolean;
+ protected: boolean;
+ defaultValue: string;
+ multiple: boolean;
+ suffix: string;
+ prefix: string;
+ placeholder: string;
+ key: string;
+ label: string;
+ inputMask: string;
+ inputType: string;
+ tableView: boolean;
+ input: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ inDataGrid: boolean;
+ }[];
+ tree: boolean;
+ input: boolean;
+ autofocus: boolean;
+ inputType?: undefined;
+ inputMask?: undefined;
+ placeholder?: undefined;
+ prefix?: undefined;
+ suffix?: undefined;
+ multiple?: undefined;
+ defaultValue?: undefined;
+ unique?: undefined;
+ spellcheck?: undefined;
+ validate?: undefined;
+ labelPosition?: undefined;
+ inputFormat?: undefined;
+ data?: undefined;
+ widget?: undefined;
+ dataSrc?: undefined;
+ valueProperty?: undefined;
+ refreshOn?: undefined;
+ filter?: undefined;
+ authenticate?: undefined;
+ template?: undefined;
+ }
+ | {
+ autofocus: boolean;
+ input: boolean;
+ tableView: boolean;
+ label: string;
+ key: string;
+ placeholder: string;
+ data: {
+ values: {
+ value: string;
+ label: string;
+ }[];
+ json: string;
+ url: string;
+ resource: string;
+ custom: string;
+ };
+ widget: string;
+ dataSrc: string;
+ valueProperty: string;
+ defaultValue: string;
+ refreshOn: string;
+ filter: string;
+ authenticate: boolean;
+ template: string;
+ multiple: boolean;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ validate: {
+ required: boolean;
+ minLength?: undefined;
+ maxLength?: undefined;
+ pattern?: undefined;
+ customPrivate?: undefined;
+ };
+ type: string;
+ labelPosition: string;
+ tags: never[];
+ conditional: {
+ show: string;
+ when: null;
+ eq: string;
+ };
+ properties: {
+ ''?: undefined;
+ };
+ inputType?: undefined;
+ inputMask?: undefined;
+ prefix?: undefined;
+ suffix?: undefined;
+ spellcheck?: undefined;
+ inputFormat?: undefined;
+ hideLabel?: undefined;
+ components?: undefined;
+ tree?: undefined;
+ }
+ )[];
+ tableView: boolean;
+ theme: string;
+ title: string;
+ input: boolean;
+ key: string;
+ clearOnHide: boolean;
+ disableOnInvalid?: undefined;
+ action?: undefined;
+ block?: undefined;
+ rightIcon?: undefined;
+ leftIcon?: undefined;
+ size?: undefined;
+ label?: undefined;
+ }
+ | {
+ hideLabel: boolean;
+ clearOnHide: boolean;
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ theme: string;
+ key: string;
+ input: boolean;
+ components: (
+ | {
+ hideLabel: boolean;
+ type: string;
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ validate: {
+ customPrivate: boolean;
+ custom: string;
+ pattern: string;
+ maxLength: string;
+ minLength: string;
+ required: boolean;
+ };
+ persistent: boolean;
+ unique: boolean;
+ protected: boolean;
+ defaultValue: string;
+ multiple: boolean;
+ suffix: string;
+ prefix: string;
+ placeholder: string;
+ key: string;
+ label: string;
+ inputMask: string;
+ inputType: string;
+ tableView: boolean;
+ input: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ dataGridLabel?: undefined;
+ name?: undefined;
+ value?: undefined;
+ labelPosition?: undefined;
+ tags?: undefined;
+ properties?: undefined;
+ footer?: undefined;
+ width?: undefined;
+ height?: undefined;
+ penColor?: undefined;
+ backgroundColor?: undefined;
+ minWidth?: undefined;
+ maxWidth?: undefined;
+ lockKey?: undefined;
+ }
+ | {
+ autofocus: boolean;
+ input: boolean;
+ inputType: string;
+ tableView: boolean;
+ label: string;
+ dataGridLabel: boolean;
+ key: string;
+ defaultValue: boolean;
+ protected: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ name: string;
+ value: string;
+ clearOnHide: boolean;
+ validate: {
+ required: boolean;
+ customPrivate?: undefined;
+ pattern?: undefined;
+ maxLength?: undefined;
+ minLength?: undefined;
+ };
+ type: string;
+ labelPosition: string;
+ hideLabel: boolean;
+ tags: never[];
+ conditional: {
+ show: string;
+ when: null;
+ eq: string;
+ };
+ properties: {
+ ''?: undefined;
+ };
+ unique?: undefined;
+ multiple?: undefined;
+ suffix?: undefined;
+ prefix?: undefined;
+ placeholder?: undefined;
+ inputMask?: undefined;
+ spellcheck?: undefined;
+ footer?: undefined;
+ width?: undefined;
+ height?: undefined;
+ penColor?: undefined;
+ backgroundColor?: undefined;
+ minWidth?: undefined;
+ maxWidth?: undefined;
+ lockKey?: undefined;
+ }
+ | {
+ input: boolean;
+ tableView: boolean;
+ label: string;
+ key: string;
+ placeholder: string;
+ footer: string;
+ width: string;
+ height: string;
+ penColor: string;
+ backgroundColor: string;
+ minWidth: string;
+ maxWidth: string;
+ protected: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ validate: {
+ required: boolean;
+ customPrivate?: undefined;
+ pattern?: undefined;
+ maxLength?: undefined;
+ minLength?: undefined;
+ };
+ type: string;
+ hideLabel: boolean;
+ tags: never[];
+ conditional: {
+ show: string;
+ when: null;
+ eq: string;
+ };
+ properties: {
+ '': string;
+ };
+ lockKey: boolean;
+ unique?: undefined;
+ defaultValue?: undefined;
+ multiple?: undefined;
+ suffix?: undefined;
+ prefix?: undefined;
+ inputMask?: undefined;
+ inputType?: undefined;
+ autofocus?: undefined;
+ spellcheck?: undefined;
+ dataGridLabel?: undefined;
+ name?: undefined;
+ value?: undefined;
+ labelPosition?: undefined;
+ }
+ )[];
+ title: string;
+ type: string;
+ tableView: boolean;
+ properties?: undefined;
+ tags?: undefined;
+ breadcrumb?: undefined;
+ disableOnInvalid?: undefined;
+ action?: undefined;
+ block?: undefined;
+ rightIcon?: undefined;
+ leftIcon?: undefined;
+ size?: undefined;
+ label?: undefined;
+ }
+ | {
+ hideLabel: boolean;
+ type: string;
+ theme: string;
+ disableOnInvalid: boolean;
+ action: string;
+ block: boolean;
+ rightIcon: string;
+ leftIcon: string;
+ size: string;
+ key: string;
+ tableView: boolean;
+ label: string;
+ input: boolean;
+ clearOnHide?: undefined;
+ conditional?: undefined;
+ components?: undefined;
+ title?: undefined;
+ properties?: undefined;
+ tags?: undefined;
+ breadcrumb?: undefined;
+ }
+ )[];
}
export default _default;
diff --git a/test/forms/htmlRenderMode.js b/test/forms/htmlRenderMode.js
index 85d2e05132..d348e4644b 100644
--- a/test/forms/htmlRenderMode.js
+++ b/test/forms/htmlRenderMode.js
@@ -1,691 +1,692 @@
export default {
- title: 'Wizard',
- display: 'form',
- type: 'form',
- name: 'wizard',
- components: [
- {
- hideLabel: false,
- clearOnHide: false,
- conditional: {
- eq: '',
- when: null,
- show: ''
- },
- theme: 'default',
- key: 'page1',
- input: false,
- components: [
+ title: 'Wizard',
+ display: 'form',
+ type: 'form',
+ name: 'wizard',
+ components: [
{
- hideLabel: false,
- type: 'textfield',
- conditional: {
- eq: '',
- when: null,
- show: ''
- },
- validate: {
- customPrivate: false,
- custom: '',
- pattern: '',
- maxLength: '',
- minLength: '',
- required: false
- },
- persistent: true,
- unique: false,
- protected: false,
- defaultValue: '',
- multiple: true,
- suffix: '',
- prefix: '',
- placeholder: '',
- key: 'textfieldonpage1',
- label: 'Textfield on page 1',
- inputMask: '',
- inputType: 'text',
- tableView: true,
- input: true,
- hidden: false,
- clearOnHide: true,
- autofocus: false,
- spellcheck: true
- },
- {
- hideLabel: false,
- conditional: {
- eq: '',
- when: null,
- show: ''
- },
- type: 'number',
- validate: {
- custom: '',
- multiple: '',
- integer: '',
- step: 'any',
- max: '',
- min: '',
- required: true
- },
- persistent: true,
- protected: false,
- defaultValue: 0,
- suffix: '',
- prefix: '',
- placeholder: '',
- key: 'numberField',
- label: 'Number Field',
- inputType: 'number',
- tableView: true,
- input: true,
- hidden: false,
- clearOnHide: true,
- autofocus: false,
- labelPosition: 'top',
- tags: [],
- properties: {}
- }
- ],
- title: 'First',
- type: 'panel',
- tableView: false
- },
- {
- hideLabel: false,
- tableView: false,
- clearOnHide: false,
- theme: 'default',
- key: 'page2',
- input: false,
- components: [
- {
- hideLabel: false,
- clearOnHide: true,
- hidden: false,
- type: 'textfield',
- conditional: {
- eq: '',
- when: null,
- show: ''
- },
- validate: {
- customPrivate: false,
- custom: '',
- pattern: '',
- maxLength: '',
- minLength: '',
- required: true
- },
- persistent: true,
- unique: false,
- protected: false,
- defaultValue: '',
- multiple: false,
- suffix: '',
- prefix: '',
- placeholder: '',
- key: 'textfieldonPage2',
- label: 'Textfield on Page 2',
- inputMask: '',
- inputType: 'text',
- tableView: true,
- input: true,
- autofocus: false,
- spellcheck: true,
- labelPosition: 'top',
- inputFormat: 'plain',
- tags: [],
- properties: {}
- },
- {
- input: true,
- tableView: true,
- label: 'Customer',
- key: 'page2Customer',
- placeholder: 'Select a customer',
- data: {
- values: [
- {
- value: '',
- label: ''
- }
- ],
- json: '',
- url: 'https://examples.form.io/customer/submission',
- resource: '',
- custom: '',
- headers: [
- {
- value: '',
- key: ''
- }
- ]
- },
- dataSrc: 'url',
- valueProperty: 'data.email',
- defaultValue: '',
- refreshOn: '',
- filter: '',
- authenticate: false,
- template: '
{{ item.data.firstName }} {{ item.data.lastName }} ',
- multiple: false,
- protected: false,
- unique: false,
- persistent: true,
- hidden: false,
- clearOnHide: true,
- validate: {
- required: false
- },
- type: 'select',
- lazyLoad: true,
- widget: 'html5',
- hideLabel: false,
- labelPosition: 'top',
- tags: [],
- conditional: {
- show: '',
- when: null,
- eq: ''
- },
- properties: {},
- searchField: 'data.email',
- autofocus: false
- },
- {
- hideLabel: false,
- clearOnHide: false,
- conditional: {
- eq: '',
- when: null,
- show: ''
- },
- type: 'fieldset',
- components: [
- {
- hideLabel: false,
- clearOnHide: true,
- hidden: false,
- type: 'textfield',
- conditional: {
+ hideLabel: false,
+ clearOnHide: false,
+ conditional: {
eq: '',
when: null,
- show: ''
- },
- validate: {
- customPrivate: false,
- custom: '',
- pattern: '',
- maxLength: '',
- minLength: '',
- required: false
- },
- persistent: true,
- unique: false,
- protected: false,
- defaultValue: '',
- multiple: false,
- suffix: '',
- prefix: '',
- placeholder: '',
- key: 'textfield',
- label: 'Textfield',
- inputMask: '',
- inputType: 'text',
- tableView: true,
- input: true,
- autofocus: false,
- spellcheck: true
- }
- ],
- legend: 'FieldSet Label',
- tableView: true,
- input: false
- }
- ],
- title: 'Page 2',
- type: 'panel'
- },
- {
- properties: {
- '': ''
- },
- conditional: {
- eq: '',
- when: null,
- show: ''
- },
- tags: [],
- hideLabel: false,
- breadcrumb: 'default',
- type: 'panel',
- components: [
+ show: '',
+ },
+ theme: 'default',
+ key: 'page1',
+ input: false,
+ components: [
+ {
+ hideLabel: false,
+ type: 'textfield',
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: '',
+ minLength: '',
+ required: false,
+ },
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: true,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'textfieldonpage1',
+ label: 'Textfield on page 1',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
+ hidden: false,
+ clearOnHide: true,
+ autofocus: false,
+ spellcheck: true,
+ },
+ {
+ hideLabel: false,
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ type: 'number',
+ validate: {
+ custom: '',
+ multiple: '',
+ integer: '',
+ step: 'any',
+ max: '',
+ min: '',
+ required: true,
+ },
+ persistent: true,
+ protected: false,
+ defaultValue: 0,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'numberField',
+ label: 'Number Field',
+ inputType: 'number',
+ tableView: true,
+ input: true,
+ hidden: false,
+ clearOnHide: true,
+ autofocus: false,
+ labelPosition: 'top',
+ tags: [],
+ properties: {},
+ },
+ ],
+ title: 'First',
+ type: 'panel',
+ tableView: false,
+ },
{
- autofocus: false,
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'Text',
- key: 'panelText',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- hidden: false,
- clearOnHide: true,
- spellcheck: true,
- validate: {
- required: true,
- minLength: '',
- maxLength: '',
- pattern: '',
- custom: '',
- customPrivate: false
- },
- conditional: {
- show: '',
- when: null,
- eq: ''
- },
- type: 'textfield',
- labelPosition: 'top',
- inputFormat: 'plain',
- tags: [],
- properties: {}
+ hideLabel: false,
+ tableView: false,
+ clearOnHide: false,
+ theme: 'default',
+ key: 'page2',
+ input: false,
+ components: [
+ {
+ hideLabel: false,
+ clearOnHide: true,
+ hidden: false,
+ type: 'textfield',
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: '',
+ minLength: '',
+ required: true,
+ },
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: false,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'textfieldonPage2',
+ label: 'Textfield on Page 2',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
+ autofocus: false,
+ spellcheck: true,
+ labelPosition: 'top',
+ inputFormat: 'plain',
+ tags: [],
+ properties: {},
+ },
+ {
+ input: true,
+ tableView: true,
+ label: 'Customer',
+ key: 'page2Customer',
+ placeholder: 'Select a customer',
+ data: {
+ values: [
+ {
+ value: '',
+ label: '',
+ },
+ ],
+ json: '',
+ url: 'https://examples.form.io/customer/submission',
+ resource: '',
+ custom: '',
+ headers: [
+ {
+ value: '',
+ key: '',
+ },
+ ],
+ },
+ dataSrc: 'url',
+ valueProperty: 'data.email',
+ defaultValue: '',
+ refreshOn: '',
+ filter: '',
+ authenticate: false,
+ template:
+ '
{{ item.data.firstName }} {{ item.data.lastName }} ',
+ multiple: false,
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ },
+ type: 'select',
+ lazyLoad: true,
+ widget: 'html5',
+ hideLabel: false,
+ labelPosition: 'top',
+ tags: [],
+ conditional: {
+ show: '',
+ when: null,
+ eq: '',
+ },
+ properties: {},
+ searchField: 'data.email',
+ autofocus: false,
+ },
+ {
+ hideLabel: false,
+ clearOnHide: false,
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ type: 'fieldset',
+ components: [
+ {
+ hideLabel: false,
+ clearOnHide: true,
+ hidden: false,
+ type: 'textfield',
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: '',
+ minLength: '',
+ required: false,
+ },
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: false,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'textfield',
+ label: 'Textfield',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
+ autofocus: false,
+ spellcheck: true,
+ },
+ ],
+ legend: 'FieldSet Label',
+ tableView: true,
+ input: false,
+ },
+ ],
+ title: 'Page 2',
+ type: 'panel',
},
{
- properties: {
- '': ''
- },
- conditional: {
- eq: '',
- when: null,
- show: ''
- },
- tags: [],
- hideLabel: false,
- type: 'datagrid',
- clearOnHide: true,
- hidden: false,
- persistent: true,
- protected: false,
- key: 'panelDataGrid',
- label: 'Data Grid',
- tableView: true,
- components: [
- {
- properties: {
- '': ''
- },
- tags: [],
- labelPosition: 'top',
- hideLabel: true,
- type: 'textfield',
- conditional: {
- eq: '',
- when: null,
- show: ''
- },
- validate: {
- customPrivate: false,
- custom: '',
- pattern: '',
- maxLength: '',
- minLength: '',
- required: false
- },
- clearOnHide: true,
- hidden: false,
- persistent: true,
- unique: false,
- protected: false,
- defaultValue: '',
- multiple: false,
- suffix: '',
- prefix: '',
- placeholder: '',
- key: 'panelDataGridA',
- label: 'A',
- inputMask: '',
- inputType: 'text',
- tableView: true,
- input: true,
- autofocus: false,
- spellcheck: true,
- inDataGrid: true
+ properties: {
+ '': '',
},
- {
- properties: {
- '': ''
- },
- tags: [],
- labelPosition: 'top',
- hideLabel: true,
- type: 'textfield',
- conditional: {
+ conditional: {
eq: '',
when: null,
- show: ''
- },
- validate: {
- customPrivate: false,
- custom: '',
- pattern: '',
- maxLength: '',
- minLength: '',
- required: false
- },
- clearOnHide: true,
- hidden: false,
- persistent: true,
- unique: false,
- protected: false,
- defaultValue: '',
- multiple: false,
- suffix: '',
- prefix: '',
- placeholder: '',
- key: 'panelDataGridB',
- label: 'B',
- inputMask: '',
- inputType: 'text',
- tableView: true,
- input: true,
- autofocus: false,
- spellcheck: true,
- inDataGrid: true
+ show: '',
},
- {
- properties: {
- '': ''
- },
- tags: [],
- labelPosition: 'top',
- hideLabel: true,
- type: 'textfield',
- conditional: {
+ tags: [],
+ hideLabel: false,
+ breadcrumb: 'default',
+ type: 'panel',
+ components: [
+ {
+ autofocus: false,
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'Text',
+ key: 'panelText',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ spellcheck: true,
+ validate: {
+ required: true,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: {
+ show: '',
+ when: null,
+ eq: '',
+ },
+ type: 'textfield',
+ labelPosition: 'top',
+ inputFormat: 'plain',
+ tags: [],
+ properties: {},
+ },
+ {
+ properties: {
+ '': '',
+ },
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ tags: [],
+ hideLabel: false,
+ type: 'datagrid',
+ clearOnHide: true,
+ hidden: false,
+ persistent: true,
+ protected: false,
+ key: 'panelDataGrid',
+ label: 'Data Grid',
+ tableView: true,
+ components: [
+ {
+ properties: {
+ '': '',
+ },
+ tags: [],
+ labelPosition: 'top',
+ hideLabel: true,
+ type: 'textfield',
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: '',
+ minLength: '',
+ required: false,
+ },
+ clearOnHide: true,
+ hidden: false,
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: false,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'panelDataGridA',
+ label: 'A',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
+ autofocus: false,
+ spellcheck: true,
+ inDataGrid: true,
+ },
+ {
+ properties: {
+ '': '',
+ },
+ tags: [],
+ labelPosition: 'top',
+ hideLabel: true,
+ type: 'textfield',
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: '',
+ minLength: '',
+ required: false,
+ },
+ clearOnHide: true,
+ hidden: false,
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: false,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'panelDataGridB',
+ label: 'B',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
+ autofocus: false,
+ spellcheck: true,
+ inDataGrid: true,
+ },
+ {
+ properties: {
+ '': '',
+ },
+ tags: [],
+ labelPosition: 'top',
+ hideLabel: true,
+ type: 'textfield',
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: '',
+ minLength: '',
+ required: false,
+ },
+ clearOnHide: true,
+ hidden: false,
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: false,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'panelDataGridC',
+ label: 'C',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
+ autofocus: false,
+ spellcheck: true,
+ inDataGrid: true,
+ },
+ {
+ properties: {
+ '': '',
+ },
+ tags: [],
+ labelPosition: 'top',
+ hideLabel: true,
+ type: 'textfield',
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: '',
+ minLength: '',
+ required: false,
+ },
+ clearOnHide: true,
+ hidden: false,
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: false,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'panelDataGridD',
+ label: 'D',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
+ autofocus: false,
+ spellcheck: true,
+ inDataGrid: true,
+ },
+ ],
+ tree: true,
+ input: true,
+ autofocus: false,
+ },
+ {
+ autofocus: false,
+ input: true,
+ tableView: true,
+ label: 'HTML5 Select',
+ key: 'panelHtml5Select',
+ placeholder: '',
+ data: {
+ values: [
+ {
+ value: 'orange',
+ label: 'Orange',
+ },
+ {
+ value: 'apple',
+ label: 'Apple',
+ },
+ {
+ value: 'banana',
+ label: 'Banana',
+ },
+ {
+ value: 'strawberry',
+ label: 'Strawberry',
+ },
+ {
+ value: 'kiwi',
+ label: 'Kiwi',
+ },
+ ],
+ json: '',
+ url: '',
+ resource: '',
+ custom: '',
+ },
+ widget: 'html5',
+ dataSrc: 'values',
+ valueProperty: '',
+ defaultValue: '',
+ refreshOn: '',
+ filter: '',
+ authenticate: false,
+ template: '
{{ item.label }} ',
+ multiple: false,
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ },
+ type: 'select',
+ labelPosition: 'top',
+ tags: [],
+ conditional: {
+ show: '',
+ when: null,
+ eq: '',
+ },
+ properties: {},
+ },
+ ],
+ tableView: false,
+ theme: 'default',
+ title: 'Page 3',
+ input: false,
+ key: 'panel',
+ clearOnHide: false,
+ },
+ {
+ hideLabel: false,
+ clearOnHide: false,
+ conditional: {
eq: '',
when: null,
- show: ''
- },
- validate: {
- customPrivate: false,
- custom: '',
- pattern: '',
- maxLength: '',
- minLength: '',
- required: false
- },
- clearOnHide: true,
- hidden: false,
- persistent: true,
- unique: false,
- protected: false,
- defaultValue: '',
- multiple: false,
- suffix: '',
- prefix: '',
- placeholder: '',
- key: 'panelDataGridC',
- label: 'C',
- inputMask: '',
- inputType: 'text',
- tableView: true,
- input: true,
- autofocus: false,
- spellcheck: true,
- inDataGrid: true
+ show: '',
},
- {
- properties: {
- '': ''
- },
- tags: [],
- labelPosition: 'top',
- hideLabel: true,
- type: 'textfield',
- conditional: {
- eq: '',
- when: null,
- show: ''
- },
- validate: {
- customPrivate: false,
- custom: '',
- pattern: '',
- maxLength: '',
- minLength: '',
- required: false
- },
- clearOnHide: true,
- hidden: false,
- persistent: true,
- unique: false,
- protected: false,
- defaultValue: '',
- multiple: false,
- suffix: '',
- prefix: '',
- placeholder: '',
- key: 'panelDataGridD',
- label: 'D',
- inputMask: '',
- inputType: 'text',
- tableView: true,
- input: true,
- autofocus: false,
- spellcheck: true,
- inDataGrid: true
- }
- ],
- tree: true,
- input: true,
- autofocus: false
- },
- {
- autofocus: false,
- input: true,
- tableView: true,
- label: 'HTML5 Select',
- key: 'panelHtml5Select',
- placeholder: '',
- data: {
- values: [
- {
- value: 'orange',
- label: 'Orange'
- },
- {
- value: 'apple',
- label: 'Apple'
- },
- {
- value: 'banana',
- label: 'Banana'
- },
- {
- value: 'strawberry',
- label: 'Strawberry'
- },
- {
- value: 'kiwi',
- label: 'Kiwi'
- }
+ theme: 'default',
+ key: 'page3',
+ input: false,
+ components: [
+ {
+ hideLabel: false,
+ type: 'textfield',
+ conditional: {
+ eq: '',
+ when: null,
+ show: '',
+ },
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: '',
+ minLength: '',
+ required: false,
+ },
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: false,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'textfieldonPage3',
+ label: 'Textfield on Page 3',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
+ hidden: false,
+ clearOnHide: true,
+ autofocus: false,
+ spellcheck: true,
+ },
+ {
+ autofocus: false,
+ input: true,
+ inputType: 'checkbox',
+ tableView: true,
+ label: 'I agree to the follow the rules',
+ dataGridLabel: false,
+ key: 'page3Iagreetothefollowtherules',
+ defaultValue: false,
+ protected: false,
+ persistent: true,
+ hidden: false,
+ name: '',
+ value: '',
+ clearOnHide: true,
+ validate: {
+ required: false,
+ },
+ type: 'checkbox',
+ labelPosition: 'right',
+ hideLabel: false,
+ tags: [],
+ conditional: {
+ show: '',
+ when: null,
+ eq: '',
+ },
+ properties: {},
+ },
+ {
+ input: true,
+ tableView: true,
+ label: 'Signature',
+ key: 'signature',
+ placeholder: '',
+ footer: 'Sign above',
+ width: '100%',
+ height: '150px',
+ penColor: 'black',
+ backgroundColor: 'rgb(245,245,235)',
+ minWidth: '0.5',
+ maxWidth: '2.5',
+ protected: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ },
+ type: 'signature',
+ hideLabel: true,
+ tags: [],
+ conditional: {
+ show: '',
+ when: null,
+ eq: '',
+ },
+ properties: {
+ '': '',
+ },
+ lockKey: true,
+ },
],
- json: '',
- url: '',
- resource: '',
- custom: ''
- },
- widget: 'html5',
- dataSrc: 'values',
- valueProperty: '',
- defaultValue: '',
- refreshOn: '',
- filter: '',
- authenticate: false,
- template: '
{{ item.label }} ',
- multiple: false,
- protected: false,
- unique: false,
- persistent: true,
- hidden: false,
- clearOnHide: true,
- validate: {
- required: false
- },
- type: 'select',
- labelPosition: 'top',
- tags: [],
- conditional: {
- show: '',
- when: null,
- eq: ''
- },
- properties: {}
- }
- ],
- tableView: false,
- theme: 'default',
- title: 'Page 3',
- input: false,
- key: 'panel',
- clearOnHide: false
- },
- {
- hideLabel: false,
- clearOnHide: false,
- conditional: {
- eq: '',
- when: null,
- show: ''
- },
- theme: 'default',
- key: 'page3',
- input: false,
- components: [
- {
- hideLabel: false,
- type: 'textfield',
- conditional: {
- eq: '',
- when: null,
- show: ''
- },
- validate: {
- customPrivate: false,
- custom: '',
- pattern: '',
- maxLength: '',
- minLength: '',
- required: false
- },
- persistent: true,
- unique: false,
- protected: false,
- defaultValue: '',
- multiple: false,
- suffix: '',
- prefix: '',
- placeholder: '',
- key: 'textfieldonPage3',
- label: 'Textfield on Page 3',
- inputMask: '',
- inputType: 'text',
- tableView: true,
- input: true,
- hidden: false,
- clearOnHide: true,
- autofocus: false,
- spellcheck: true
+ title: 'Last',
+ type: 'panel',
+ tableView: false,
},
{
- autofocus: false,
- input: true,
- inputType: 'checkbox',
- tableView: true,
- label: 'I agree to the follow the rules',
- dataGridLabel: false,
- key: 'page3Iagreetothefollowtherules',
- defaultValue: false,
- protected: false,
- persistent: true,
- hidden: false,
- name: '',
- value: '',
- clearOnHide: true,
- validate: {
- required: false
- },
- type: 'checkbox',
- labelPosition: 'right',
- hideLabel: false,
- tags: [],
- conditional: {
- show: '',
- when: null,
- eq: ''
- },
- properties: {}
+ hideLabel: false,
+ type: 'button',
+ theme: 'primary',
+ disableOnInvalid: true,
+ action: 'submit',
+ block: false,
+ rightIcon: '',
+ leftIcon: '',
+ size: 'md',
+ key: 'submit',
+ tableView: false,
+ label: 'Submit',
+ input: true,
},
- {
- input: true,
- tableView: true,
- label: 'Signature',
- key: 'signature',
- placeholder: '',
- footer: 'Sign above',
- width: '100%',
- height: '150px',
- penColor: 'black',
- backgroundColor: 'rgb(245,245,235)',
- minWidth: '0.5',
- maxWidth: '2.5',
- protected: false,
- persistent: true,
- hidden: false,
- clearOnHide: true,
- validate: {
- required: false
- },
- type: 'signature',
- hideLabel: true,
- tags: [],
- conditional: {
- show: '',
- when: null,
- eq: ''
- },
- properties: {
- '': ''
- },
- lockKey: true
- }
- ],
- title: 'Last',
- type: 'panel',
- tableView: false
- },
- {
- hideLabel: false,
- type: 'button',
- theme: 'primary',
- disableOnInvalid: true,
- action: 'submit',
- block: false,
- rightIcon: '',
- leftIcon: '',
- size: 'md',
- key: 'submit',
- tableView: false,
- label: 'Submit',
- input: true
- }
- ],
+ ],
};
diff --git a/test/forms/index.js b/test/forms/index.js
index 1cd07001f6..1a922d871c 100644
--- a/test/forms/index.js
+++ b/test/forms/index.js
@@ -18,22 +18,22 @@ import NestedFormValidation from './nested-form-validation';
import WizardWithPrefixComps from './wizardWithPrefixComps';
export default [
- Simple,
- SubmissionSetter,
- Conditions,
- Calculated,
- DateFields,
- FieldLogic,
- Actions,
- EmailAction,
- // ClearOnHide2,
- // NestedFormTests,
- NestedFormValidation,
- // NestedFormNoSubmit,
- // NestedConditionallyHidden,
- // ChildMetadata,
- // WysiwygCursor
- ClearOnHide,
- WizardWithPrefixComps,
- ...ComponentsBasicSettingsTests,
+ Simple,
+ SubmissionSetter,
+ Conditions,
+ Calculated,
+ DateFields,
+ FieldLogic,
+ Actions,
+ EmailAction,
+ // ClearOnHide2,
+ // NestedFormTests,
+ NestedFormValidation,
+ // NestedFormNoSubmit,
+ // NestedConditionallyHidden,
+ // ChildMetadata,
+ // WysiwygCursor
+ ClearOnHide,
+ WizardWithPrefixComps,
+ ...ComponentsBasicSettingsTests,
];
diff --git a/test/forms/modalEditGrid.d.ts b/test/forms/modalEditGrid.d.ts
index 5f515e9b2b..a33a1cc874 100644
--- a/test/forms/modalEditGrid.d.ts
+++ b/test/forms/modalEditGrid.d.ts
@@ -3,65 +3,71 @@ declare namespace _default {
const type: string;
const tags: never[];
const owner: string;
- const components: ({
- label: string;
- tableView: boolean;
- modal: boolean;
- validate: {
- required: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- components: ({
- label: string;
- components: {
- label: string;
- key: string;
- components: {
- label: string;
- tableView: boolean;
- validate: {
- required: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- }[];
- }[];
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- showValidations?: undefined;
- } | {
- label: string;
- showValidations: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- components?: undefined;
- })[];
- key: string;
- type: string;
- input: boolean;
- }[];
- showValidations?: undefined;
- } | {
- label: string;
- showValidations: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- modal?: undefined;
- validate?: undefined;
- components?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ tableView: boolean;
+ modal: boolean;
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ components: (
+ | {
+ label: string;
+ components: {
+ label: string;
+ key: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ }[];
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ showValidations?: undefined;
+ }
+ | {
+ label: string;
+ showValidations: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ components?: undefined;
+ }
+ )[];
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ showValidations?: undefined;
+ }
+ | {
+ label: string;
+ showValidations: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ modal?: undefined;
+ validate?: undefined;
+ components?: undefined;
+ }
+ )[];
const controller: string;
const revisions: string;
const _vid: number;
diff --git a/test/forms/modalEditGrid.js b/test/forms/modalEditGrid.js
index 62b6a18a36..1ec1990580 100644
--- a/test/forms/modalEditGrid.js
+++ b/test/forms/modalEditGrid.js
@@ -1,108 +1,107 @@
export default {
- _id: '5ece2d11b8c2fe102c726057',
- type: 'form',
- tags: [],
- owner: '5e05a6b7549cdc2ece30c6b0',
- components: [
- {
- label: 'Edit Grid',
- tableView: false,
- modal: true,
- validate: {
- required: true
- },
- key: 'editGrid',
- type: 'editgrid',
- input: true,
- components: [
+ _id: '5ece2d11b8c2fe102c726057',
+ type: 'form',
+ tags: [],
+ owner: '5e05a6b7549cdc2ece30c6b0',
+ components: [
{
- label: 'Form',
- tableView: true,
- components: [
- {
- label: 'Tabs',
- components: [
+ label: 'Edit Grid',
+ tableView: false,
+ modal: true,
+ validate: {
+ required: true,
+ },
+ key: 'editGrid',
+ type: 'editgrid',
+ input: true,
+ components: [
{
- label: 'Tab 1',
- key: 'tab1',
- components: [
- {
- label: 'Text Field',
- tableView: true,
- validate: {
- required: true
- },
- key: 'textField',
- type: 'textfield',
- input: true
- }
- ]
+ label: 'Form',
+ tableView: true,
+ components: [
+ {
+ label: 'Tabs',
+ components: [
+ {
+ label: 'Tab 1',
+ key: 'tab1',
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ validate: {
+ required: true,
+ },
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ {
+ label: 'Tab 2',
+ key: 'tab2',
+ components: [
+ {
+ label: 'Text Field 2',
+ tableView: true,
+ validate: {
+ required: true,
+ },
+ key: 'textField2',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ ],
+ tableView: false,
+ key: 'tabs',
+ type: 'tabs',
+ input: false,
+ },
+ {
+ label: 'Submit',
+ showValidations: false,
+ tableView: false,
+ key: 'submit',
+ type: 'button',
+ input: true,
+ },
+ ],
+ key: 'form',
+ type: 'form',
+ input: true,
},
- {
- label: 'Tab 2',
- key: 'tab2',
- components: [
- {
- label: 'Text Field 2',
- tableView: true,
- validate: {
- required: true
- },
- key: 'textField2',
- type: 'textfield',
- input: true
- }
- ]
- }
- ],
- tableView: false,
- key: 'tabs',
- type: 'tabs',
- input: false
- },
- {
- label: 'Submit',
- showValidations: false,
- tableView: false,
- key: 'submit',
- type: 'button',
- input: true
- }
- ],
- key: 'form',
- type: 'form',
- input: true
- }
- ]
- },
- {
- label: 'Submit',
- showValidations: false,
- tableView: false,
- key: 'submit',
- type: 'button',
- input: true
- }
- ],
- controller: '',
- revisions: '',
- _vid: 0,
- title: 'modalEditGridValidation',
- display: 'form',
- access: [
- {
- roles: [
- '5e96e79ee1c3ad3178454100',
- '5e96e79ee1c3ad3178454101',
- '5e96e79ee1c3ad3178454102'
- ],
- type: 'read_all'
- }
- ],
- submissionAccess: [],
- settings: {},
- properties: {},
- name: 'modalEditGridValidation',
- path: 'modaleditgridvalidation'
+ ],
+ },
+ {
+ label: 'Submit',
+ showValidations: false,
+ tableView: false,
+ key: 'submit',
+ type: 'button',
+ input: true,
+ },
+ ],
+ controller: '',
+ revisions: '',
+ _vid: 0,
+ title: 'modalEditGridValidation',
+ display: 'form',
+ access: [
+ {
+ roles: [
+ '5e96e79ee1c3ad3178454100',
+ '5e96e79ee1c3ad3178454101',
+ '5e96e79ee1c3ad3178454102',
+ ],
+ type: 'read_all',
+ },
+ ],
+ submissionAccess: [],
+ settings: {},
+ properties: {},
+ name: 'modalEditGridValidation',
+ path: 'modaleditgridvalidation',
};
-
diff --git a/test/forms/nested-event-bubbling.js b/test/forms/nested-event-bubbling.js
index de657c8e9a..51b4ea425f 100644
--- a/test/forms/nested-event-bubbling.js
+++ b/test/forms/nested-event-bubbling.js
@@ -4,61 +4,68 @@ import FormComponent from '../../src/components/form/Form';
import Webform from '../../src/Webform.js';
export default {
- title: 'Nested Form Event Bubbling',
- form: { components: [{ key: 'form', type: 'form', components: [{ key: 'name', type: 'textfield' }] }] },
- tests: {
- 'Event should bubble up to parent form'(form, done) {
- try {
- const EPE = 'Parent events not works';
- const ENE = 'Nested events not works';
- const EBB = 'Events not bubbling up';
- const type1 = 'parent.custom.event';
- const type2 = 'nested.custom.event';
- const type3 = 'bubbling.event';
- const listener1 = sinon.spy();
- const listener2 = sinon.spy();
- const listener3parent = sinon.spy();
- const listener3nested = sinon.spy();
- const [formCmp] = form.components;
+ title: 'Nested Form Event Bubbling',
+ form: {
+ components: [
+ {
+ key: 'form',
+ type: 'form',
+ components: [{ key: 'name', type: 'textfield' }],
+ },
+ ],
+ },
+ tests: {
+ 'Event should bubble up to parent form'(form, done) {
+ try {
+ const EPE = 'Parent events not works';
+ const ENE = 'Nested events not works';
+ const EBB = 'Events not bubbling up';
+ const type1 = 'parent.custom.event';
+ const type2 = 'nested.custom.event';
+ const type3 = 'bubbling.event';
+ const listener1 = sinon.spy();
+ const listener2 = sinon.spy();
+ const listener3parent = sinon.spy();
+ const listener3nested = sinon.spy();
+ const [formCmp] = form.components;
- // Check wrapper
- expect(formCmp).to.be.an.instanceof(FormComponent);
+ // Check wrapper
+ expect(formCmp).to.be.an.instanceof(FormComponent);
- formCmp.subFormReady.
- then(subForm => {
- // Check nested form
- expect(subForm).to.be.an.instanceof(Webform);
+ formCmp.subFormReady
+ .then((subForm) => {
+ // Check nested form
+ expect(subForm).to.be.an.instanceof(Webform);
- // Make sure that parent emitter works
- form.on(type1, listener1);
- form.emit(type1);
- expect(listener1.callCount, EPE).to.equal(1);
- form.emit(type1);
- expect(listener1.callCount, EPE).to.equal(2);
+ // Make sure that parent emitter works
+ form.on(type1, listener1);
+ form.emit(type1);
+ expect(listener1.callCount, EPE).to.equal(1);
+ form.emit(type1);
+ expect(listener1.callCount, EPE).to.equal(2);
- // Make sure that nested emitter works
- subForm.on(type2, listener2);
- subForm.emit(type2);
- expect(listener2.callCount, ENE).to.equal(1);
- subForm.emit(type2);
- expect(listener2.callCount, ENE).to.equal(2);
+ // Make sure that nested emitter works
+ subForm.on(type2, listener2);
+ subForm.emit(type2);
+ expect(listener2.callCount, ENE).to.equal(1);
+ subForm.emit(type2);
+ expect(listener2.callCount, ENE).to.equal(2);
- // Check event bubbling;
- form.on(type3, listener3parent);
- subForm.on(type3, listener3nested);
- subForm.emit(type3);
- expect(listener3nested.callCount, ENE).to.equal(1);
- expect(listener3parent.callCount, EBB).to.equal(1);
- subForm.emit(type3);
- expect(listener3nested.callCount, ENE).to.equal(2);
- expect(listener3parent.callCount, EBB).to.equal(2);
- done();
- }, done).
- catch(done);
- }
- catch (error) {
- done(error);
- }
- }
- }
+ // Check event bubbling;
+ form.on(type3, listener3parent);
+ subForm.on(type3, listener3nested);
+ subForm.emit(type3);
+ expect(listener3nested.callCount, ENE).to.equal(1);
+ expect(listener3parent.callCount, EBB).to.equal(1);
+ subForm.emit(type3);
+ expect(listener3nested.callCount, ENE).to.equal(2);
+ expect(listener3parent.callCount, EBB).to.equal(2);
+ done();
+ }, done)
+ .catch(done);
+ } catch (error) {
+ done(error);
+ }
+ },
+ },
};
diff --git a/test/forms/nested-form-validation.d.ts b/test/forms/nested-form-validation.d.ts
index d4480579d3..4325c2a013 100644
--- a/test/forms/nested-form-validation.d.ts
+++ b/test/forms/nested-form-validation.d.ts
@@ -2,8 +2,14 @@ declare namespace _default {
export const title: string;
export { nestedConditionalForm as form };
export const tests: {
- 'Form validation should skip hidden nested form'(form: any, done: any): void;
- 'Form validation should validate nested form'(form: any, done: any): void;
+ 'Form validation should skip hidden nested form'(
+ form: any,
+ done: any
+ ): void;
+ 'Form validation should validate nested form'(
+ form: any,
+ done: any
+ ): void;
};
}
export default _default;
diff --git a/test/forms/nested-form-validation.js b/test/forms/nested-form-validation.js
index ab7323982a..da554ec8a7 100644
--- a/test/forms/nested-form-validation.js
+++ b/test/forms/nested-form-validation.js
@@ -3,43 +3,45 @@ import { expect } from 'chai';
import Harness from '../harness';
export default {
- title: 'Nested Form Tests',
- form: nestedConditionalForm,
- tests: {
- 'Form validation should skip hidden nested form'(form, done) {
- const submission = {
- data: {
- radio: 'no',
- }
- };
+ title: 'Nested Form Tests',
+ form: nestedConditionalForm,
+ tests: {
+ 'Form validation should skip hidden nested form'(form, done) {
+ const submission = {
+ data: {
+ radio: 'no',
+ },
+ };
- Harness.onNext(form, 'change', () => {
- form.submit().then(() => done(), done);
- });
+ Harness.onNext(form, 'change', () => {
+ form.submit().then(() => done(), done);
+ });
- form.submission = submission;
- },
- 'Form validation should validate nested form'(form, done) {
- const submission = {
- data: {
- radio: 'yes',
- }
- };
+ form.submission = submission;
+ },
+ 'Form validation should validate nested form'(form, done) {
+ const submission = {
+ data: {
+ radio: 'yes',
+ },
+ };
- Harness.onNext(form, 'change', () => {
- form.submit()
- .then(
- () => expect.fail('Submit should reject'),
- errors => {
- expect(errors).to.be.lengthOf(1);
- expect(errors[0].message).to.equal('Name is required');
- done();
- }
- )
- .catch(done);
- });
+ Harness.onNext(form, 'change', () => {
+ form.submit()
+ .then(
+ () => expect.fail('Submit should reject'),
+ (errors) => {
+ expect(errors).to.be.lengthOf(1);
+ expect(errors[0].message).to.equal(
+ 'Name is required',
+ );
+ done();
+ },
+ )
+ .catch(done);
+ });
- form.submission = submission;
- }
- }
+ form.submission = submission;
+ },
+ },
};
diff --git a/test/forms/nestedConditionalWizard.d.ts b/test/forms/nestedConditionalWizard.d.ts
index be3197c6bf..3e9876f1a3 100644
--- a/test/forms/nestedConditionalWizard.d.ts
+++ b/test/forms/nestedConditionalWizard.d.ts
@@ -1,213 +1,228 @@
declare namespace _default {
const type: string;
const tags: never[];
- const components: ({
- label: string;
- optionsLabelPosition: string;
- inline: boolean;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- conditional?: undefined;
- components?: undefined;
- useOriginalRevision?: undefined;
- display?: undefined;
- disableOnInvalid?: undefined;
- } | {
- label: string;
- optionsLabelPosition: string;
- inline: boolean;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- key: string;
- conditional: {
- show: boolean;
- when: string;
- eq: string;
- };
- type: string;
- input: boolean;
- components?: undefined;
- useOriginalRevision?: undefined;
- display?: undefined;
- disableOnInvalid?: undefined;
- } | {
- label: string;
- tableView: boolean;
- components: ({
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- optionsLabelPosition: string;
- inline: boolean;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- breadcrumbClickable?: undefined;
- buttonSettings?: undefined;
- collapsible?: undefined;
- conditional?: undefined;
- } | {
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- collapsible: boolean;
- key: string;
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: ({
- label: string;
- inputType: string;
- tableView: boolean;
- key: string;
- type: string;
- name: string;
- value: string;
- input: boolean;
- defaultValue: boolean;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- defaultOpen?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- hideLabel?: undefined;
- components?: undefined;
- } | {
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- defaultOpen: boolean;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- hideLabel: boolean;
- tableView: boolean;
- defaultValue: {
- textField: string;
- }[];
- key: string;
- customConditional: string;
- type: string;
- input: boolean;
- components: ({
- label: string;
- tableView: boolean;
- validate: {
- required: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- mask?: undefined;
- spellcheck?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- } | {
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- validate: {
- required: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- })[];
- inputType?: undefined;
- name?: undefined;
- value?: undefined;
- })[];
- conditional?: undefined;
- } | {
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- collapsible: boolean;
- key: string;
- conditional: {
- show: boolean;
- when: string;
- eq: string;
- };
- type: string;
- label: string;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- })[];
- useOriginalRevision: boolean;
- key: string;
- display: string;
- conditional: {
- show: boolean;
- when: string;
- eq: string;
- };
- type: string;
- input: boolean;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- optionsLabelPosition?: undefined;
- inline?: undefined;
- values?: undefined;
- conditional?: undefined;
- components?: undefined;
- useOriginalRevision?: undefined;
- display?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ optionsLabelPosition: string;
+ inline: boolean;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ conditional?: undefined;
+ components?: undefined;
+ useOriginalRevision?: undefined;
+ display?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ label: string;
+ optionsLabelPosition: string;
+ inline: boolean;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ key: string;
+ conditional: {
+ show: boolean;
+ when: string;
+ eq: string;
+ };
+ type: string;
+ input: boolean;
+ components?: undefined;
+ useOriginalRevision?: undefined;
+ display?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ components: (
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ optionsLabelPosition: string;
+ inline: boolean;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ breadcrumbClickable?: undefined;
+ buttonSettings?: undefined;
+ collapsible?: undefined;
+ conditional?: undefined;
+ }
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ collapsible: boolean;
+ key: string;
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: (
+ | {
+ label: string;
+ inputType: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ name: string;
+ value: string;
+ input: boolean;
+ defaultValue: boolean;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ defaultOpen?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ hideLabel?: undefined;
+ components?: undefined;
+ }
+ | {
+ label: string;
+ reorder: boolean;
+ addAnotherPosition: string;
+ defaultOpen: boolean;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ hideLabel: boolean;
+ tableView: boolean;
+ defaultValue: {
+ textField: string;
+ }[];
+ key: string;
+ customConditional: string;
+ type: string;
+ input: boolean;
+ components: (
+ | {
+ label: string;
+ tableView: boolean;
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ mask?: undefined;
+ spellcheck?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ }
+ | {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ }
+ )[];
+ inputType?: undefined;
+ name?: undefined;
+ value?: undefined;
+ }
+ )[];
+ conditional?: undefined;
+ }
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ collapsible: boolean;
+ key: string;
+ conditional: {
+ show: boolean;
+ when: string;
+ eq: string;
+ };
+ type: string;
+ label: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ }
+ )[];
+ useOriginalRevision: boolean;
+ key: string;
+ display: string;
+ conditional: {
+ show: boolean;
+ when: string;
+ eq: string;
+ };
+ type: string;
+ input: boolean;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ optionsLabelPosition?: undefined;
+ inline?: undefined;
+ values?: undefined;
+ conditional?: undefined;
+ components?: undefined;
+ useOriginalRevision?: undefined;
+ display?: undefined;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/nestedConditionalWizard.js b/test/forms/nestedConditionalWizard.js
index 2505d33ca6..ea680fbfdb 100644
--- a/test/forms/nestedConditionalWizard.js
+++ b/test/forms/nestedConditionalWizard.js
@@ -1,220 +1,233 @@
export default {
- type: 'form',
- tags: [],
- components: [
- {
- label: 'Nested form?',
- optionsLabelPosition: 'right',
- inline: false,
- tableView: false,
- values: [
+ type: 'form',
+ tags: [],
+ components: [
{
- label: 'Yes',
- value: 'yes',
- shortcut: '',
- }, {
- label: 'No',
- value: 'no',
- shortcut: '',
+ label: 'Nested form?',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: false,
+ values: [
+ {
+ label: 'Yes',
+ value: 'yes',
+ shortcut: '',
+ },
+ {
+ label: 'No',
+ value: 'no',
+ shortcut: '',
+ },
+ ],
+ key: 'nestedForm',
+ type: 'radio',
+ input: true,
},
- ],
- key: 'nestedForm',
- type: 'radio',
- input: true,
- }, {
- label: 'second question to open Nested form',
- optionsLabelPosition: 'right',
- inline: false,
- tableView: false,
- values: [
{
- label: 'Open child form',
- value: 'openChildForm',
- shortcut: '',
- }, {
- label: '2',
- value: '2',
- shortcut: '',
- }, {
- label: '3',
- value: '3',
- shortcut: '',
+ label: 'second question to open Nested form',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: false,
+ values: [
+ {
+ label: 'Open child form',
+ value: 'openChildForm',
+ shortcut: '',
+ },
+ {
+ label: '2',
+ value: '2',
+ shortcut: '',
+ },
+ {
+ label: '3',
+ value: '3',
+ shortcut: '',
+ },
+ ],
+ key: 'secondQuestionToOpenNestedForm',
+ conditional: {
+ show: true,
+ when: 'nestedForm',
+ eq: 'yes',
+ },
+ type: 'radio',
+ input: true,
},
- ],
- key: 'secondQuestionToOpenNestedForm',
- conditional: {
- show: true,
- when: 'nestedForm',
- eq: 'yes',
- },
- type: 'radio',
- input: true,
- }, {
- label: 'Form',
- tableView: true,
- components: [
{
- title: 'Page 1',
- label: 'Page 1',
- type: 'panel',
- key: 'page1',
- components: [
- {
- label: 'Radio',
- optionsLabelPosition: 'right',
- inline: false,
- tableView: false,
- values: [
+ label: 'Form',
+ tableView: true,
+ components: [
{
- label: 'unhide page3',
- value: 'unhidePage3',
- shortcut: '',
- }, {
- label: 'Next question',
- value: 'nextQuestion',
- shortcut: '',
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Radio',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: false,
+ values: [
+ {
+ label: 'unhide page3',
+ value: 'unhidePage3',
+ shortcut: '',
+ },
+ {
+ label: 'Next question',
+ value: 'nextQuestion',
+ shortcut: '',
+ },
+ ],
+ key: 'radio1',
+ type: 'radio',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
},
- ],
- key: 'radio1',
- type: 'radio',
- input: true,
- },
- ],
- input: false,
- tableView: false,
- }, {
- title: 'Page 2',
- breadcrumbClickable: true,
- buttonSettings: {
- previous: true,
- cancel: true,
- next: true,
- },
- collapsible: false,
- key: 'page2',
- type: 'panel',
- label: 'Page 2',
- input: false,
- tableView: false,
- components: [
- {
- label: 'Checkbox1',
- inputType: 'radio',
- tableView: false,
- key: 'checkbox1',
- type: 'checkbox',
- name: 'question',
- value: 'Checkbox1',
- input: true,
- defaultValue: false,
- }, {
- label: 'Checkbox2',
- inputType: 'radio',
- tableView: false,
- defaultValue: false,
- key: 'checkbox2',
- type: 'checkbox',
- name: 'question',
- value: 'Checkbox2',
- input: true,
- }, {
- label: 'Data Grid',
- reorder: false,
- addAnotherPosition: 'bottom',
- defaultOpen: false,
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- hideLabel: true,
- tableView: false,
- defaultValue: [
{
- textField: '',
+ title: 'Page 2',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ collapsible: false,
+ key: 'page2',
+ type: 'panel',
+ label: 'Page 2',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Checkbox1',
+ inputType: 'radio',
+ tableView: false,
+ key: 'checkbox1',
+ type: 'checkbox',
+ name: 'question',
+ value: 'Checkbox1',
+ input: true,
+ defaultValue: false,
+ },
+ {
+ label: 'Checkbox2',
+ inputType: 'radio',
+ tableView: false,
+ defaultValue: false,
+ key: 'checkbox2',
+ type: 'checkbox',
+ name: 'question',
+ value: 'Checkbox2',
+ input: true,
+ },
+ {
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ defaultOpen: false,
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ hideLabel: true,
+ tableView: false,
+ defaultValue: [
+ {
+ textField: '',
+ },
+ ],
+ key: 'dataGrid',
+ customConditional:
+ "show = data.question === 'Checkbox2';",
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ validate: {
+ required: true,
+ },
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Number',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ validate: {
+ required: true,
+ },
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ ],
+ },
+ ],
},
- ],
- key: 'dataGrid',
- customConditional: 'show = data.question === \'Checkbox2\';',
- type: 'datagrid',
- input: true,
- components: [
{
- label: 'Text Field',
- tableView: true,
- validate: {
- required: true,
- },
- key: 'textField',
- type: 'textfield',
- input: true,
- }, {
- label: 'Number',
- mask: false,
- spellcheck: true,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- validate: {
- required: true,
- },
- key: 'number',
- type: 'number',
- input: true,
+ title: 'Page 3',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ collapsible: false,
+ key: 'page3',
+ conditional: {
+ show: true,
+ when: 'radio1',
+ eq: 'unhidePage3',
+ },
+ type: 'panel',
+ label: 'Page 3',
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField1',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
},
- ],
+ ],
+ useOriginalRevision: false,
+ key: 'form',
+ display: 'wizard',
+ conditional: {
+ show: true,
+ when: 'secondQuestionToOpenNestedForm',
+ eq: 'openChildForm',
},
- ],
- }, {
- title: 'Page 3',
- breadcrumbClickable: true,
- buttonSettings: {
- previous: true,
- cancel: true,
- next: true,
- },
- collapsible: false,
- key: 'page3',
- conditional: {
- show: true,
- when: 'radio1',
- eq: 'unhidePage3',
- },
- type: 'panel',
- label: 'Page 3',
- components: [
- {
- label: 'Text Field',
- tableView: true,
- key: 'textField1',
- type: 'textfield',
- input: true,
- },
- ],
- input: false,
- tableView: false,
+ type: 'form',
+ input: true,
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
},
- ],
- useOriginalRevision: false,
- key: 'form',
- display: 'wizard',
- conditional: {
- show: true,
- when: 'secondQuestionToOpenNestedForm',
- eq: 'openChildForm',
- },
- type: 'form',
- input: true,
- }, {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false,
- },
- ],
- title: 'FIO-3083 Parent',
- display: 'form',
- name: 'fio3083Parent',
- path: 'fio3083parent',
+ ],
+ title: 'FIO-3083 Parent',
+ display: 'form',
+ name: 'fio3083Parent',
+ path: 'fio3083parent',
};
diff --git a/test/forms/nestedDataGridWithInitEmpty.d.ts b/test/forms/nestedDataGridWithInitEmpty.d.ts
index 2de0b9c3bf..376a17f1e5 100644
--- a/test/forms/nestedDataGridWithInitEmpty.d.ts
+++ b/test/forms/nestedDataGridWithInitEmpty.d.ts
@@ -5,68 +5,74 @@ declare namespace _default {
export default _default;
declare namespace form {
const type: string;
- const components: ({
- label: string;
- tableView: boolean;
- clearOnHide: boolean;
- rowDrafts: boolean;
- key: string;
- type: string;
- displayAsTable: boolean;
- input: boolean;
- components: {
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- tableView: boolean;
- defaultValue: {
- select: string;
- email: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- components: ({
- label: string;
- widget: string;
- hideLabel: boolean;
- tableView: boolean;
- data: {
- values: {
- label: string;
- value: string;
- }[];
- };
- key: string;
- type: string;
- input: boolean;
- } | {
- label: string;
- hideLabel: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- widget?: undefined;
- data?: undefined;
- })[];
- }[];
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- clearOnHide?: undefined;
- rowDrafts?: undefined;
- displayAsTable?: undefined;
- components?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ tableView: boolean;
+ clearOnHide: boolean;
+ rowDrafts: boolean;
+ key: string;
+ type: string;
+ displayAsTable: boolean;
+ input: boolean;
+ components: {
+ label: string;
+ reorder: boolean;
+ addAnotherPosition: string;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ tableView: boolean;
+ defaultValue: {
+ select: string;
+ email: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ components: (
+ | {
+ label: string;
+ widget: string;
+ hideLabel: boolean;
+ tableView: boolean;
+ data: {
+ values: {
+ label: string;
+ value: string;
+ }[];
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ }
+ | {
+ label: string;
+ hideLabel: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ widget?: undefined;
+ data?: undefined;
+ }
+ )[];
+ }[];
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ clearOnHide?: undefined;
+ rowDrafts?: undefined;
+ displayAsTable?: undefined;
+ components?: undefined;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/nestedDataGridWithInitEmpty.js b/test/forms/nestedDataGridWithInitEmpty.js
index f335feb5a1..3579a37ebb 100644
--- a/test/forms/nestedDataGridWithInitEmpty.js
+++ b/test/forms/nestedDataGridWithInitEmpty.js
@@ -1,85 +1,88 @@
const form = {
- type: 'form',
- components: [
- {
- label: 'Edit Grid',
- tableView: false,
- clearOnHide: false,
- rowDrafts: false,
- key: 'editGrid',
- type: 'editgrid',
- displayAsTable: false,
- input: true,
- components: [
+ type: 'form',
+ components: [
{
- label: 'Data Grid',
- reorder: false,
- addAnotherPosition: 'bottom',
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: true,
- tableView: true,
- defaultValue: [{ select: '', email: '' }],
- key: 'dataGrid',
- type: 'datagrid',
- input: true,
- components: [
- {
- label: 'Select',
- widget: 'choicesjs',
- hideLabel: true,
- tableView: true,
- data: {
- values: [
- { label: 'email', value: 'email' },
- { label: 'phone', value: 'phone' },
- ],
- },
- key: 'select',
- type: 'select',
- input: true,
- },
- {
- label: 'Email',
- hideLabel: true,
- tableView: true,
- key: 'email',
- type: 'email',
- input: true,
- },
- ],
+ label: 'Edit Grid',
+ tableView: false,
+ clearOnHide: false,
+ rowDrafts: false,
+ key: 'editGrid',
+ type: 'editgrid',
+ displayAsTable: false,
+ input: true,
+ components: [
+ {
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: true,
+ tableView: true,
+ defaultValue: [{ select: '', email: '' }],
+ key: 'dataGrid',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Select',
+ widget: 'choicesjs',
+ hideLabel: true,
+ tableView: true,
+ data: {
+ values: [
+ { label: 'email', value: 'email' },
+ { label: 'phone', value: 'phone' },
+ ],
+ },
+ key: 'select',
+ type: 'select',
+ input: true,
+ },
+ {
+ label: 'Email',
+ hideLabel: true,
+ tableView: true,
+ key: 'email',
+ type: 'email',
+ input: true,
+ },
+ ],
+ },
+ ],
},
- ],
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false,
- },
- ],
- title: 'FIO-2721',
- display: 'form',
- name: 'fio2721',
- path: 'fio2721',
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ title: 'FIO-2721',
+ display: 'form',
+ name: 'fio2721',
+ path: 'fio2721',
};
const submission = {
- data: {
- editGrid: [{
- dataGrid: [{
- select: 'email',
- email: 'hhh@gmail.com',
- }]
- }],
- submit: true
- }
+ data: {
+ editGrid: [
+ {
+ dataGrid: [
+ {
+ select: 'email',
+ email: 'hhh@gmail.com',
+ },
+ ],
+ },
+ ],
+ submit: true,
+ },
};
export default {
- form,
- submission,
+ form,
+ submission,
};
-
diff --git a/test/forms/nestedDataGridsAndContainers.d.ts b/test/forms/nestedDataGridsAndContainers.d.ts
index ded1f71177..96e096698b 100644
--- a/test/forms/nestedDataGridsAndContainers.d.ts
+++ b/test/forms/nestedDataGridsAndContainers.d.ts
@@ -39,47 +39,50 @@ declare namespace _default {
key: string;
type: string;
input: boolean;
- components: ({
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- defaultValue?: undefined;
- components?: undefined;
- } | {
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- tableView: boolean;
- defaultValue: {
- number: string;
- }[];
- key: string;
- customConditional: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- mask: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- truncateMultipleSpaces: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- })[];
+ components: (
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ defaultValue?: undefined;
+ components?: undefined;
+ }
+ | {
+ label: string;
+ reorder: boolean;
+ addAnotherPosition: string;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ tableView: boolean;
+ defaultValue: {
+ number: string;
+ }[];
+ key: string;
+ customConditional: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ mask: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ truncateMultipleSpaces: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ }
+ )[];
}[];
}[];
}[];
diff --git a/test/forms/nestedDataGridsAndContainers.js b/test/forms/nestedDataGridsAndContainers.js
index db19194f33..b32b54fa14 100644
--- a/test/forms/nestedDataGridsAndContainers.js
+++ b/test/forms/nestedDataGridsAndContainers.js
@@ -1,85 +1,86 @@
export default {
- _id: '60dd99f437685ab150b72a41',
- type: 'form',
- components: [
- {
- label: 'Data Grid',
- reorder: false,
- addAnotherPosition: 'bottom',
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- tableView: false,
- defaultValue: [ { container: { dataGrid6: [ { checkbox: false } ] } } ],
- key: 'dataGrid7',
- type: 'datagrid',
- input: true,
- components: [
- {
- label: 'Container',
- tableView: false,
- key: 'container',
- type: 'container',
- input: true,
- components: [
- {
- label: 'Data Grid',
- reorder: false,
- addAnotherPosition: 'bottom',
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- tableView: false,
- defaultValue: [ { checkbox: false } ],
- key: 'dataGrid6',
- type: 'datagrid',
- input: true,
- components: [
- {
- label: 'Checkbox',
- tableView: false,
- key: 'checkbox',
- type: 'checkbox',
- input: true
- },
- {
- label: 'Data Grid',
- reorder: false,
- addAnotherPosition: 'bottom',
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- tableView: false,
- defaultValue: [ { number: '' } ],
- key: 'dataGrid5',
- customConditional: 'show = row.checkbox === true',
- type: 'datagrid',
- input: true,
- components: [
- {
- label: 'Number',
- mask: false,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- truncateMultipleSpaces: false,
- key: 'number',
- type: 'number',
- input: true
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ],
- title: 'test failure',
- display: 'form',
- name: 'testFailure',
- path: 'testfailure',
- machineName: 'cjksbatcpbhyfbs:testFailure',
+ _id: '60dd99f437685ab150b72a41',
+ type: 'form',
+ components: [
+ {
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ tableView: false,
+ defaultValue: [{ container: { dataGrid6: [{ checkbox: false }] } }],
+ key: 'dataGrid7',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Container',
+ tableView: false,
+ key: 'container',
+ type: 'container',
+ input: true,
+ components: [
+ {
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ tableView: false,
+ defaultValue: [{ checkbox: false }],
+ key: 'dataGrid6',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Checkbox',
+ tableView: false,
+ key: 'checkbox',
+ type: 'checkbox',
+ input: true,
+ },
+ {
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ tableView: false,
+ defaultValue: [{ number: '' }],
+ key: 'dataGrid5',
+ customConditional:
+ 'show = row.checkbox === true',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Number',
+ mask: false,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ truncateMultipleSpaces: false,
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ title: 'test failure',
+ display: 'form',
+ name: 'testFailure',
+ path: 'testfailure',
+ machineName: 'cjksbatcpbhyfbs:testFailure',
};
diff --git a/test/forms/nestedModalWizard.json b/test/forms/nestedModalWizard.json
index c9dbf19d37..eff1c01fb6 100644
--- a/test/forms/nestedModalWizard.json
+++ b/test/forms/nestedModalWizard.json
@@ -1,97 +1,97 @@
{
- "type": "form",
- "owner": "5e05a6b7549cdc2ece30c6b0",
- "components": [
- {
- "label": "Text Field",
- "tableView": true,
- "key": "textField",
- "type": "textfield",
- "input": true
- },
- {
- "label": "Form",
- "tableView": true,
- "modalEdit": true,
- "key": "form",
- "type": "form",
- "input": true,
- "components": [
+ "type": "form",
+ "owner": "5e05a6b7549cdc2ece30c6b0",
+ "components": [
{
- "title": "Page 1",
- "label": "Page 1",
- "type": "panel",
- "key": "page1",
- "components": [
- {
- "label": "Text Field",
- "tableView": true,
- "key": "textField",
- "type": "textfield",
- "input": true
- }
- ],
- "input": false,
- "tableView": false
+ "label": "Text Field",
+ "tableView": true,
+ "key": "textField",
+ "type": "textfield",
+ "input": true
},
{
- "title": "Page 2",
- "label": "Page 2",
- "type": "panel",
- "key": "page2",
- "components": [
- {
- "label": "Text Area",
- "autoExpand": false,
- "tableView": true,
- "key": "textArea",
- "type": "textarea",
- "input": true
- }
- ],
- "input": false,
- "tableView": false
- },
- {
- "title": "Page 3",
- "label": "Page 3",
- "type": "panel",
- "key": "page3",
- "components": [
- {
- "label": "Edit Grid",
- "tableView": false,
- "rowDrafts": false,
- "key": "editGrid",
- "type": "editgrid",
- "input": true,
- "components": [
+ "label": "Form",
+ "tableView": true,
+ "modalEdit": true,
+ "key": "form",
+ "type": "form",
+ "input": true,
+ "components": [
+ {
+ "title": "Page 1",
+ "label": "Page 1",
+ "type": "panel",
+ "key": "page1",
+ "components": [
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ }
+ ],
+ "input": false,
+ "tableView": false
+ },
{
- "label": "Text Field",
- "tableView": true,
- "key": "textField",
- "type": "textfield",
- "input": true
+ "title": "Page 2",
+ "label": "Page 2",
+ "type": "panel",
+ "key": "page2",
+ "components": [
+ {
+ "label": "Text Area",
+ "autoExpand": false,
+ "tableView": true,
+ "key": "textArea",
+ "type": "textarea",
+ "input": true
+ }
+ ],
+ "input": false,
+ "tableView": false
+ },
+ {
+ "title": "Page 3",
+ "label": "Page 3",
+ "type": "panel",
+ "key": "page3",
+ "components": [
+ {
+ "label": "Edit Grid",
+ "tableView": false,
+ "rowDrafts": false,
+ "key": "editGrid",
+ "type": "editgrid",
+ "input": true,
+ "components": [
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ }
+ ]
+ }
+ ],
+ "input": false,
+ "tableView": false
}
- ]
- }
- ],
- "input": false,
- "tableView": false
+ ],
+ "display": "wizard"
+ },
+ {
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
}
- ],
- "display": "wizard"
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }
- ],
- "title": "FJS-756: Parent",
- "display": "form",
- "name": "fjs756Parent"
-}
\ No newline at end of file
+ ],
+ "title": "FJS-756: Parent",
+ "display": "form",
+ "name": "fjs756Parent"
+}
diff --git a/test/forms/optionalSanitize.d.ts b/test/forms/optionalSanitize.d.ts
index 117df6ce40..49fb003bf1 100644
--- a/test/forms/optionalSanitize.d.ts
+++ b/test/forms/optionalSanitize.d.ts
@@ -1,30 +1,34 @@
declare namespace _default {
const type: string;
- const components: ({
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- autoExpand?: undefined;
- disableOnInvalid?: undefined;
- } | {
- label: string;
- autoExpand: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- autoExpand?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ autoExpand?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ label: string;
+ autoExpand: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ autoExpand?: undefined;
+ }
+ )[];
const title: string;
const display: string;
}
diff --git a/test/forms/optionalSanitize.js b/test/forms/optionalSanitize.js
index b12ff0a5ec..42c2a285da 100644
--- a/test/forms/optionalSanitize.js
+++ b/test/forms/optionalSanitize.js
@@ -1,37 +1,37 @@
export default {
- type: 'form',
- components: [
- {
- label: 'Text Field',
- tableView: true,
- key: 'textField',
- type: 'textfield',
- input: true
- },
- {
- label: 'Text Area',
- autoExpand: false,
- tableView: true,
- key: 'textArea',
- type: 'textarea',
- input: true
- },
- {
- label: 'Checkbox',
- tableView: false,
- key: 'checkbox',
- type: 'checkbox',
- input: true
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false
- }
- ],
- title: 'Optional Sanitize Test',
- display: 'form',
+ type: 'form',
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Text Area',
+ autoExpand: false,
+ tableView: true,
+ key: 'textArea',
+ type: 'textarea',
+ input: true,
+ },
+ {
+ label: 'Checkbox',
+ tableView: false,
+ key: 'checkbox',
+ type: 'checkbox',
+ input: true,
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ title: 'Optional Sanitize Test',
+ display: 'form',
};
diff --git a/test/forms/sameApiKeysLayoutComps.d.ts b/test/forms/sameApiKeysLayoutComps.d.ts
index 1712c47e46..c669abbcf7 100644
--- a/test/forms/sameApiKeysLayoutComps.d.ts
+++ b/test/forms/sameApiKeysLayoutComps.d.ts
@@ -1,26 +1,29 @@
declare namespace _default {
const type: string;
- const components: ({
- label: string;
- components: {
- label: string;
- key: string;
- components: never[];
- }[];
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- components?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ components: {
+ label: string;
+ key: string;
+ components: never[];
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ components?: undefined;
+ }
+ )[];
const title: string;
const display: string;
}
diff --git a/test/forms/sameApiKeysLayoutComps.js b/test/forms/sameApiKeysLayoutComps.js
index 4aa91cf073..9238e83f5c 100644
--- a/test/forms/sameApiKeysLayoutComps.js
+++ b/test/forms/sameApiKeysLayoutComps.js
@@ -1,47 +1,43 @@
export default {
- type: 'form',
- components: [
- {
- label: 'Tabs',
- components: [
+ type: 'form',
+ components: [
{
- label: 'Tab 1',
- key: 'tab1',
- components: [
-
- ]
- }
- ],
- key: 'tabs',
- type: 'tabs',
- input: false,
- tableView: false
- },
- {
- label: 'Tabs',
- components: [
+ label: 'Tabs',
+ components: [
+ {
+ label: 'Tab 1',
+ key: 'tab1',
+ components: [],
+ },
+ ],
+ key: 'tabs',
+ type: 'tabs',
+ input: false,
+ tableView: false,
+ },
{
- label: 'Tab 1',
- key: 'tab2',
- components: [
-
- ]
- }
- ],
- key: 'tabs',
- type: 'tabs',
- input: false,
- tableView: false
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false
- }
- ],
- title: 'FIO-249',
- display: 'form',
+ label: 'Tabs',
+ components: [
+ {
+ label: 'Tab 1',
+ key: 'tab2',
+ components: [],
+ },
+ ],
+ key: 'tabs',
+ type: 'tabs',
+ input: false,
+ tableView: false,
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ title: 'FIO-249',
+ display: 'form',
};
diff --git a/test/forms/simple.d.ts b/test/forms/simple.d.ts
index acee5e2ab6..dd47bf2000 100644
--- a/test/forms/simple.d.ts
+++ b/test/forms/simple.d.ts
@@ -11,328 +11,336 @@ declare namespace _default {
export const path: string;
export const project: string;
export const created: string;
- export const components: ({
- tags: never[];
- type: string;
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- validate: {
- customPrivate: boolean;
- custom: string;
- pattern: string;
- maxLength: number;
- minLength: number;
- required: boolean;
- };
- persistent: boolean;
- unique: boolean;
- protected: boolean;
- defaultValue: string;
- multiple: boolean;
- suffix: string;
- prefix: string;
- placeholder: string;
- key: string;
- label: string;
- inputMask: string;
- inputType: string;
- tableView: boolean;
- input: boolean;
- kickbox?: undefined;
- maxDate?: undefined;
- minDate?: undefined;
- format?: undefined;
- enableDate?: undefined;
- enableTime?: undefined;
- defaultDate?: undefined;
- datepickerMode?: undefined;
- datePicker?: undefined;
- timePicker?: undefined;
- theme?: undefined;
- disableOnInvalid?: undefined;
- action?: undefined;
- block?: undefined;
- rightIcon?: undefined;
- leftIcon?: undefined;
- size?: undefined;
- } | {
- tags: never[];
- type: string;
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- validate: {
- customPrivate: boolean;
- custom: string;
- pattern: string;
- maxLength: string;
- minLength: string;
- required: boolean;
- };
- persistent: boolean;
- unique: boolean;
- protected: boolean;
- defaultValue: string;
- multiple: boolean;
- suffix: string;
- prefix: string;
- placeholder: string;
- key: string;
- label: string;
- inputMask: string;
- inputType: string;
- tableView: boolean;
- input: boolean;
- kickbox?: undefined;
- maxDate?: undefined;
- minDate?: undefined;
- format?: undefined;
- enableDate?: undefined;
- enableTime?: undefined;
- defaultDate?: undefined;
- datepickerMode?: undefined;
- datePicker?: undefined;
- timePicker?: undefined;
- theme?: undefined;
- disableOnInvalid?: undefined;
- action?: undefined;
- block?: undefined;
- rightIcon?: undefined;
- leftIcon?: undefined;
- size?: undefined;
- } | {
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- tags: never[];
- type: string;
- kickbox: {
- enabled: boolean;
- };
- persistent: boolean;
- unique: boolean;
- protected: boolean;
- defaultValue: string;
- suffix: string;
- prefix: string;
- placeholder: string;
- key: string;
- label: string;
- inputType: string;
- tableView: boolean;
- input: boolean;
- validate?: undefined;
- multiple?: undefined;
- inputMask?: undefined;
- maxDate?: undefined;
- minDate?: undefined;
- format?: undefined;
- enableDate?: undefined;
- enableTime?: undefined;
- defaultDate?: undefined;
- datepickerMode?: undefined;
- datePicker?: undefined;
- timePicker?: undefined;
- theme?: undefined;
- disableOnInvalid?: undefined;
- action?: undefined;
- block?: undefined;
- rightIcon?: undefined;
- leftIcon?: undefined;
- size?: undefined;
- } | {
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- tags: never[];
- type: string;
- persistent: boolean;
- protected: boolean;
- suffix: string;
- prefix: string;
- placeholder: string;
- key: string;
- label: string;
- inputType: string;
- tableView: boolean;
- input: boolean;
- validate?: undefined;
- unique?: undefined;
- defaultValue?: undefined;
- multiple?: undefined;
- inputMask?: undefined;
- kickbox?: undefined;
- maxDate?: undefined;
- minDate?: undefined;
- format?: undefined;
- enableDate?: undefined;
- enableTime?: undefined;
- defaultDate?: undefined;
- datepickerMode?: undefined;
- datePicker?: undefined;
- timePicker?: undefined;
- theme?: undefined;
- disableOnInvalid?: undefined;
- action?: undefined;
- block?: undefined;
- rightIcon?: undefined;
- leftIcon?: undefined;
- size?: undefined;
- } | {
- validate: {
- custom: string;
- customPrivate?: undefined;
- pattern?: undefined;
- maxLength?: undefined;
- minLength?: undefined;
- required?: undefined;
- };
- conditional: {
- eq: string;
- when: null;
- show: string;
- };
- tags: never[];
- type: string;
- persistent: boolean;
- protected: boolean;
- suffix: string;
- prefix: string;
- placeholder: string;
- key: string;
- label: string;
- inputType: string;
- tableView: boolean;
- input: boolean;
- unique?: undefined;
- defaultValue?: undefined;
- multiple?: undefined;
- inputMask?: undefined;
- kickbox?: undefined;
- maxDate?: undefined;
- minDate?: undefined;
- format?: undefined;
- enableDate?: undefined;
- enableTime?: undefined;
- defaultDate?: undefined;
- datepickerMode?: undefined;
- datePicker?: undefined;
- timePicker?: undefined;
- theme?: undefined;
- disableOnInvalid?: undefined;
- action?: undefined;
- block?: undefined;
- rightIcon?: undefined;
- leftIcon?: undefined;
- size?: undefined;
- } | {
- maxDate: null;
- minDate: null;
- input: boolean;
- tableView: boolean;
- label: string;
- key: string;
- placeholder: string;
- format: string;
- enableDate: boolean;
- enableTime: boolean;
- defaultDate: string;
- datepickerMode: string;
- datePicker: {
- showWeeks: boolean;
- startingDay: number;
- initDate: string;
- minMode: string;
- maxMode: string;
- yearRange: string;
- datepickerMode: string;
- };
- timePicker: {
- hourStep: number;
- minuteStep: number;
- showMeridian: boolean;
- readonlyInput: boolean;
- mousewheel: boolean;
- arrowkeys: boolean;
- };
- protected: boolean;
- persistent: boolean;
- validate: {
- required: boolean;
- custom: string;
- customPrivate?: undefined;
- pattern?: undefined;
- maxLength?: undefined;
- minLength?: undefined;
- };
- type: string;
- tags: never[];
- conditional: {
- show: string;
- when: null;
- eq: string;
- };
- unique?: undefined;
- defaultValue?: undefined;
- multiple?: undefined;
- suffix?: undefined;
- prefix?: undefined;
- inputMask?: undefined;
- inputType?: undefined;
- kickbox?: undefined;
- theme?: undefined;
- disableOnInvalid?: undefined;
- action?: undefined;
- block?: undefined;
- rightIcon?: undefined;
- leftIcon?: undefined;
- size?: undefined;
- } | {
- type: string;
- theme: string;
- disableOnInvalid: boolean;
- action: string;
- block: boolean;
- rightIcon: string;
- leftIcon: string;
- size: string;
- key: string;
- tableView: boolean;
- label: string;
- input: boolean;
- tags?: undefined;
- conditional?: undefined;
- validate?: undefined;
- persistent?: undefined;
- unique?: undefined;
- protected?: undefined;
- defaultValue?: undefined;
- multiple?: undefined;
- suffix?: undefined;
- prefix?: undefined;
- placeholder?: undefined;
- inputMask?: undefined;
- inputType?: undefined;
- kickbox?: undefined;
- maxDate?: undefined;
- minDate?: undefined;
- format?: undefined;
- enableDate?: undefined;
- enableTime?: undefined;
- defaultDate?: undefined;
- datepickerMode?: undefined;
- datePicker?: undefined;
- timePicker?: undefined;
- })[];
+ export const components: (
+ | {
+ tags: never[];
+ type: string;
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ validate: {
+ customPrivate: boolean;
+ custom: string;
+ pattern: string;
+ maxLength: number;
+ minLength: number;
+ required: boolean;
+ };
+ persistent: boolean;
+ unique: boolean;
+ protected: boolean;
+ defaultValue: string;
+ multiple: boolean;
+ suffix: string;
+ prefix: string;
+ placeholder: string;
+ key: string;
+ label: string;
+ inputMask: string;
+ inputType: string;
+ tableView: boolean;
+ input: boolean;
+ kickbox?: undefined;
+ maxDate?: undefined;
+ minDate?: undefined;
+ format?: undefined;
+ enableDate?: undefined;
+ enableTime?: undefined;
+ defaultDate?: undefined;
+ datepickerMode?: undefined;
+ datePicker?: undefined;
+ timePicker?: undefined;
+ theme?: undefined;
+ disableOnInvalid?: undefined;
+ action?: undefined;
+ block?: undefined;
+ rightIcon?: undefined;
+ leftIcon?: undefined;
+ size?: undefined;
+ }
+ | {
+ tags: never[];
+ type: string;
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ validate: {
+ customPrivate: boolean;
+ custom: string;
+ pattern: string;
+ maxLength: string;
+ minLength: string;
+ required: boolean;
+ };
+ persistent: boolean;
+ unique: boolean;
+ protected: boolean;
+ defaultValue: string;
+ multiple: boolean;
+ suffix: string;
+ prefix: string;
+ placeholder: string;
+ key: string;
+ label: string;
+ inputMask: string;
+ inputType: string;
+ tableView: boolean;
+ input: boolean;
+ kickbox?: undefined;
+ maxDate?: undefined;
+ minDate?: undefined;
+ format?: undefined;
+ enableDate?: undefined;
+ enableTime?: undefined;
+ defaultDate?: undefined;
+ datepickerMode?: undefined;
+ datePicker?: undefined;
+ timePicker?: undefined;
+ theme?: undefined;
+ disableOnInvalid?: undefined;
+ action?: undefined;
+ block?: undefined;
+ rightIcon?: undefined;
+ leftIcon?: undefined;
+ size?: undefined;
+ }
+ | {
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ tags: never[];
+ type: string;
+ kickbox: {
+ enabled: boolean;
+ };
+ persistent: boolean;
+ unique: boolean;
+ protected: boolean;
+ defaultValue: string;
+ suffix: string;
+ prefix: string;
+ placeholder: string;
+ key: string;
+ label: string;
+ inputType: string;
+ tableView: boolean;
+ input: boolean;
+ validate?: undefined;
+ multiple?: undefined;
+ inputMask?: undefined;
+ maxDate?: undefined;
+ minDate?: undefined;
+ format?: undefined;
+ enableDate?: undefined;
+ enableTime?: undefined;
+ defaultDate?: undefined;
+ datepickerMode?: undefined;
+ datePicker?: undefined;
+ timePicker?: undefined;
+ theme?: undefined;
+ disableOnInvalid?: undefined;
+ action?: undefined;
+ block?: undefined;
+ rightIcon?: undefined;
+ leftIcon?: undefined;
+ size?: undefined;
+ }
+ | {
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ tags: never[];
+ type: string;
+ persistent: boolean;
+ protected: boolean;
+ suffix: string;
+ prefix: string;
+ placeholder: string;
+ key: string;
+ label: string;
+ inputType: string;
+ tableView: boolean;
+ input: boolean;
+ validate?: undefined;
+ unique?: undefined;
+ defaultValue?: undefined;
+ multiple?: undefined;
+ inputMask?: undefined;
+ kickbox?: undefined;
+ maxDate?: undefined;
+ minDate?: undefined;
+ format?: undefined;
+ enableDate?: undefined;
+ enableTime?: undefined;
+ defaultDate?: undefined;
+ datepickerMode?: undefined;
+ datePicker?: undefined;
+ timePicker?: undefined;
+ theme?: undefined;
+ disableOnInvalid?: undefined;
+ action?: undefined;
+ block?: undefined;
+ rightIcon?: undefined;
+ leftIcon?: undefined;
+ size?: undefined;
+ }
+ | {
+ validate: {
+ custom: string;
+ customPrivate?: undefined;
+ pattern?: undefined;
+ maxLength?: undefined;
+ minLength?: undefined;
+ required?: undefined;
+ };
+ conditional: {
+ eq: string;
+ when: null;
+ show: string;
+ };
+ tags: never[];
+ type: string;
+ persistent: boolean;
+ protected: boolean;
+ suffix: string;
+ prefix: string;
+ placeholder: string;
+ key: string;
+ label: string;
+ inputType: string;
+ tableView: boolean;
+ input: boolean;
+ unique?: undefined;
+ defaultValue?: undefined;
+ multiple?: undefined;
+ inputMask?: undefined;
+ kickbox?: undefined;
+ maxDate?: undefined;
+ minDate?: undefined;
+ format?: undefined;
+ enableDate?: undefined;
+ enableTime?: undefined;
+ defaultDate?: undefined;
+ datepickerMode?: undefined;
+ datePicker?: undefined;
+ timePicker?: undefined;
+ theme?: undefined;
+ disableOnInvalid?: undefined;
+ action?: undefined;
+ block?: undefined;
+ rightIcon?: undefined;
+ leftIcon?: undefined;
+ size?: undefined;
+ }
+ | {
+ maxDate: null;
+ minDate: null;
+ input: boolean;
+ tableView: boolean;
+ label: string;
+ key: string;
+ placeholder: string;
+ format: string;
+ enableDate: boolean;
+ enableTime: boolean;
+ defaultDate: string;
+ datepickerMode: string;
+ datePicker: {
+ showWeeks: boolean;
+ startingDay: number;
+ initDate: string;
+ minMode: string;
+ maxMode: string;
+ yearRange: string;
+ datepickerMode: string;
+ };
+ timePicker: {
+ hourStep: number;
+ minuteStep: number;
+ showMeridian: boolean;
+ readonlyInput: boolean;
+ mousewheel: boolean;
+ arrowkeys: boolean;
+ };
+ protected: boolean;
+ persistent: boolean;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate?: undefined;
+ pattern?: undefined;
+ maxLength?: undefined;
+ minLength?: undefined;
+ };
+ type: string;
+ tags: never[];
+ conditional: {
+ show: string;
+ when: null;
+ eq: string;
+ };
+ unique?: undefined;
+ defaultValue?: undefined;
+ multiple?: undefined;
+ suffix?: undefined;
+ prefix?: undefined;
+ inputMask?: undefined;
+ inputType?: undefined;
+ kickbox?: undefined;
+ theme?: undefined;
+ disableOnInvalid?: undefined;
+ action?: undefined;
+ block?: undefined;
+ rightIcon?: undefined;
+ leftIcon?: undefined;
+ size?: undefined;
+ }
+ | {
+ type: string;
+ theme: string;
+ disableOnInvalid: boolean;
+ action: string;
+ block: boolean;
+ rightIcon: string;
+ leftIcon: string;
+ size: string;
+ key: string;
+ tableView: boolean;
+ label: string;
+ input: boolean;
+ tags?: undefined;
+ conditional?: undefined;
+ validate?: undefined;
+ persistent?: undefined;
+ unique?: undefined;
+ protected?: undefined;
+ defaultValue?: undefined;
+ multiple?: undefined;
+ suffix?: undefined;
+ prefix?: undefined;
+ placeholder?: undefined;
+ inputMask?: undefined;
+ inputType?: undefined;
+ kickbox?: undefined;
+ maxDate?: undefined;
+ minDate?: undefined;
+ format?: undefined;
+ enableDate?: undefined;
+ enableTime?: undefined;
+ defaultDate?: undefined;
+ datepickerMode?: undefined;
+ datePicker?: undefined;
+ timePicker?: undefined;
+ }
+ )[];
export const owner: string;
export const submissionAccess: {
type: string;
diff --git a/test/forms/simple.js b/test/forms/simple.js
index b0e6b9bfa5..bbe55e5b61 100644
--- a/test/forms/simple.js
+++ b/test/forms/simple.js
@@ -1,221 +1,266 @@
import Harness from '../harness';
export default {
- title: 'Simple Form Test',
+ title: 'Simple Form Test',
- /** https://lyozsrwunugzxwe.form.io/basic */
- form: {
- '_id': '58813a6cf6267a006d569892',
- 'modified': '2017-01-29T05:40:54.825Z',
- 'title': 'Basic Form',
- 'display': 'form',
- 'type': 'form',
- 'name': 'basicForm',
- 'path': 'basic',
- 'project': '58704bed7cc4b7006c4b8a6c',
- 'created': '2017-01-19T22:15:08.941Z',
- 'components': [{
- 'tags': [],
- 'type': 'textfield',
- 'conditional': {'eq': '', 'when': null, 'show': ''},
- 'validate': {
- 'customPrivate': false,
- 'custom': '',
- 'pattern': '',
- 'maxLength': 10,
- 'minLength': 2,
- 'required': false
- },
- 'persistent': true,
- 'unique': false,
- 'protected': false,
- 'defaultValue': '',
- 'multiple': false,
- 'suffix': '',
- 'prefix': '',
- 'placeholder': '',
- 'key': 'firstName',
- 'label': 'First Name',
- 'inputMask': '',
- 'inputType': 'text',
- 'tableView': true,
- 'input': true
- }, {
- 'tags': [],
- 'type': 'textfield',
- 'conditional': {'eq': '', 'when': null, 'show': ''},
- 'validate': {
- 'customPrivate': false,
- 'custom': '',
- 'pattern': '',
- 'maxLength': '',
- 'minLength': '',
- 'required': false
- },
- 'persistent': true,
- 'unique': false,
- 'protected': false,
- 'defaultValue': '',
- 'multiple': false,
- 'suffix': '',
- 'prefix': '',
- 'placeholder': '',
- 'key': 'lastName',
- 'label': 'Last Name',
- 'inputMask': '',
- 'inputType': 'text',
- 'tableView': true,
- 'input': true
- }, {
- 'conditional': {'eq': '', 'when': null, 'show': ''},
- 'tags': [],
- 'type': 'email',
- 'kickbox': {'enabled': false},
- 'persistent': true,
- 'unique': false,
- 'protected': false,
- 'defaultValue': '',
- 'suffix': '',
- 'prefix': '',
- 'placeholder': '',
- 'key': 'email',
- 'label': 'Email',
- 'inputType': 'email',
- 'tableView': true,
- 'input': true
- }, {
- 'conditional': {'eq': '', 'when': null, 'show': ''},
- 'tags': [],
- 'type': 'password',
- 'persistent': true,
- 'protected': true,
- 'suffix': '',
- 'prefix': '',
- 'placeholder': '',
- 'key': 'password',
- 'label': 'Password',
- 'inputType': 'password',
- 'tableView': false,
- 'input': true
- }, {
- 'validate': {'custom': "valid = (input == '{{ password }}') ? true : 'Passwords must match.';"},
- 'conditional': {'eq': '', 'when': null, 'show': ''},
- 'tags': [],
- 'type': 'password',
- 'persistent': true,
- 'protected': true,
- 'suffix': '',
- 'prefix': '',
- 'placeholder': '',
- 'key': 'verifyPassword',
- 'label': 'Verify Password',
- 'inputType': 'password',
- 'tableView': false,
- 'input': true
- }, {
- 'maxDate': null,
- 'minDate': null,
- 'input': true,
- 'tableView': true,
- 'label': 'Date',
- 'key': 'date',
- 'placeholder': '',
- 'format': 'yyyy-MM-dd hh:mm',
- 'enableDate': true,
- 'enableTime': true,
- 'defaultDate': '',
- 'datepickerMode': 'day',
- 'datePicker': {
- 'showWeeks': true,
- 'startingDay': 0,
- 'initDate': '',
- 'minMode': 'day',
- 'maxMode': 'year',
- 'yearRange': '20',
- 'datepickerMode': 'day'
- },
- 'timePicker': {
- 'hourStep': 1,
- 'minuteStep': 1,
- 'showMeridian': true,
- 'readonlyInput': false,
- 'mousewheel': true,
- 'arrowkeys': true
- },
- 'protected': false,
- 'persistent': true,
- 'validate': {'required': false, 'custom': ''},
- 'type': 'datetime',
- 'tags': [],
- 'conditional': {'show': '', 'when': null, 'eq': ''}
- }, {
- 'type': 'button',
- 'theme': 'primary',
- 'disableOnInvalid': false,
- 'action': 'submit',
- 'block': false,
- 'rightIcon': '',
- 'leftIcon': '',
- 'size': 'md',
- 'key': 'submit',
- 'tableView': false,
- 'label': 'Submit',
- 'input': true
- }],
- 'owner': '553dbfc08d22d5cb1a7024f2',
- 'submissionAccess': [{'type': 'create_all', 'roles': []}, {
- 'type': 'read_all',
- 'roles': ['58704bed7cc4b7006c4b8a6f']
- }, {'type': 'update_all', 'roles': []}, {'type': 'delete_all', 'roles': []}, {
- 'type': 'create_own',
- 'roles': ['58704bed7cc4b7006c4b8a6f']
- }, {'type': 'read_own', 'roles': []}, {'type': 'update_own', 'roles': []}, {
- 'type': 'delete_own',
- 'roles': []
- }, {'type': 'team_read', 'roles': []}, {'type': 'team_write', 'roles': []}, {'type': 'team_admin', 'roles': []}],
- 'access': [{'type': 'create_all', 'roles': []}, {
- 'type': 'read_all',
- 'roles': ['58704bed7cc4b7006c4b8a6d', '58704bed7cc4b7006c4b8a6e', '58704bed7cc4b7006c4b8a6f']
- }, {'type': 'update_all', 'roles': []}, {'type': 'delete_all', 'roles': []}, {
- 'type': 'create_own',
- 'roles': []
- }, {'type': 'read_own', 'roles': []}, {'type': 'update_own', 'roles': []}, {
- 'type': 'delete_own',
- 'roles': []
- }, {'type': 'team_read', 'roles': []}, {'type': 'team_write', 'roles': []}, {'type': 'team_admin', 'roles': []}],
- 'tags': []
- },
- tests: {
- 'Test valid submission'(form, done) {
- Harness.testElements(form, 'input[type="text"]', 3);
- Harness.testSubmission(form, {
- data: {
- firstName: 'Joe',
- lastName: 'Smith',
- email: 'test@example.com',
- password: '123test',
- verifyPassword: '123test',
- date: Harness.getDate(),
- submit: false
- }
- });
- done();
+ /** https://lyozsrwunugzxwe.form.io/basic */
+ form: {
+ _id: '58813a6cf6267a006d569892',
+ modified: '2017-01-29T05:40:54.825Z',
+ title: 'Basic Form',
+ display: 'form',
+ type: 'form',
+ name: 'basicForm',
+ path: 'basic',
+ project: '58704bed7cc4b7006c4b8a6c',
+ created: '2017-01-19T22:15:08.941Z',
+ components: [
+ {
+ tags: [],
+ type: 'textfield',
+ conditional: { eq: '', when: null, show: '' },
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: 10,
+ minLength: 2,
+ required: false,
+ },
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: false,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'firstName',
+ label: 'First Name',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
+ },
+ {
+ tags: [],
+ type: 'textfield',
+ conditional: { eq: '', when: null, show: '' },
+ validate: {
+ customPrivate: false,
+ custom: '',
+ pattern: '',
+ maxLength: '',
+ minLength: '',
+ required: false,
+ },
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ multiple: false,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'lastName',
+ label: 'Last Name',
+ inputMask: '',
+ inputType: 'text',
+ tableView: true,
+ input: true,
+ },
+ {
+ conditional: { eq: '', when: null, show: '' },
+ tags: [],
+ type: 'email',
+ kickbox: { enabled: false },
+ persistent: true,
+ unique: false,
+ protected: false,
+ defaultValue: '',
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'email',
+ label: 'Email',
+ inputType: 'email',
+ tableView: true,
+ input: true,
+ },
+ {
+ conditional: { eq: '', when: null, show: '' },
+ tags: [],
+ type: 'password',
+ persistent: true,
+ protected: true,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'password',
+ label: 'Password',
+ inputType: 'password',
+ tableView: false,
+ input: true,
+ },
+ {
+ validate: {
+ custom: "valid = (input == '{{ password }}') ? true : 'Passwords must match.';",
+ },
+ conditional: { eq: '', when: null, show: '' },
+ tags: [],
+ type: 'password',
+ persistent: true,
+ protected: true,
+ suffix: '',
+ prefix: '',
+ placeholder: '',
+ key: 'verifyPassword',
+ label: 'Verify Password',
+ inputType: 'password',
+ tableView: false,
+ input: true,
+ },
+ {
+ maxDate: null,
+ minDate: null,
+ input: true,
+ tableView: true,
+ label: 'Date',
+ key: 'date',
+ placeholder: '',
+ format: 'yyyy-MM-dd hh:mm',
+ enableDate: true,
+ enableTime: true,
+ defaultDate: '',
+ datepickerMode: 'day',
+ datePicker: {
+ showWeeks: true,
+ startingDay: 0,
+ initDate: '',
+ minMode: 'day',
+ maxMode: 'year',
+ yearRange: '20',
+ datepickerMode: 'day',
+ },
+ timePicker: {
+ hourStep: 1,
+ minuteStep: 1,
+ showMeridian: true,
+ readonlyInput: false,
+ mousewheel: true,
+ arrowkeys: true,
+ },
+ protected: false,
+ persistent: true,
+ validate: { required: false, custom: '' },
+ type: 'datetime',
+ tags: [],
+ conditional: { show: '', when: null, eq: '' },
+ },
+ {
+ type: 'button',
+ theme: 'primary',
+ disableOnInvalid: false,
+ action: 'submit',
+ block: false,
+ rightIcon: '',
+ leftIcon: '',
+ size: 'md',
+ key: 'submit',
+ tableView: false,
+ label: 'Submit',
+ input: true,
+ },
+ ],
+ owner: '553dbfc08d22d5cb1a7024f2',
+ submissionAccess: [
+ { type: 'create_all', roles: [] },
+ {
+ type: 'read_all',
+ roles: ['58704bed7cc4b7006c4b8a6f'],
+ },
+ { type: 'update_all', roles: [] },
+ { type: 'delete_all', roles: [] },
+ {
+ type: 'create_own',
+ roles: ['58704bed7cc4b7006c4b8a6f'],
+ },
+ { type: 'read_own', roles: [] },
+ { type: 'update_own', roles: [] },
+ {
+ type: 'delete_own',
+ roles: [],
+ },
+ { type: 'team_read', roles: [] },
+ { type: 'team_write', roles: [] },
+ { type: 'team_admin', roles: [] },
+ ],
+ access: [
+ { type: 'create_all', roles: [] },
+ {
+ type: 'read_all',
+ roles: [
+ '58704bed7cc4b7006c4b8a6d',
+ '58704bed7cc4b7006c4b8a6e',
+ '58704bed7cc4b7006c4b8a6f',
+ ],
+ },
+ { type: 'update_all', roles: [] },
+ { type: 'delete_all', roles: [] },
+ {
+ type: 'create_own',
+ roles: [],
+ },
+ { type: 'read_own', roles: [] },
+ { type: 'update_own', roles: [] },
+ {
+ type: 'delete_own',
+ roles: [],
+ },
+ { type: 'team_read', roles: [] },
+ { type: 'team_write', roles: [] },
+ { type: 'team_admin', roles: [] },
+ ],
+ tags: [],
+ },
+ tests: {
+ 'Test valid submission'(form, done) {
+ Harness.testElements(form, 'input[type="text"]', 3);
+ Harness.testSubmission(form, {
+ data: {
+ firstName: 'Joe',
+ lastName: 'Smith',
+ email: 'test@example.com',
+ password: '123test',
+ verifyPassword: '123test',
+ date: Harness.getDate(),
+ submit: false,
+ },
+ });
+ done();
+ },
+ 'Test invalid email'(form, done) {
+ Harness.testErrors(
+ form,
+ {
+ data: {
+ date: Harness.getDate(),
+ firstName: 'test',
+ lastName: 'test2',
+ email: 'bademail',
+ submit: false,
+ password: '',
+ verifyPassword: '',
+ },
+ },
+ [
+ {
+ component: 'email',
+ message: 'Email must be a valid email.',
+ },
+ ],
+ done,
+ );
+ },
},
- 'Test invalid email'(form, done) {
- Harness.testErrors(form, {
- data: {
- date: Harness.getDate(),
- firstName: 'test',
- lastName: 'test2',
- email: 'bademail',
- submit: false,
- password: '',
- verifyPassword: ''
- }
- }, [{
- component: 'email',
- message: 'Email must be a valid email.'
- }], done);
- }
- }
};
diff --git a/test/forms/simpleTwoPagesWizard.js b/test/forms/simpleTwoPagesWizard.js
index 74058176a6..427cb438f8 100644
--- a/test/forms/simpleTwoPagesWizard.js
+++ b/test/forms/simpleTwoPagesWizard.js
@@ -1,167 +1,167 @@
export default {
- '_id': '60817a3afc88e7048cbe5260',
- 'type': 'form',
- 'tags': [],
- 'owner': '6038bed737595d104cfc358a',
- 'components': [
- {
- 'title': 'Wizard Page 1',
- 'breadcrumbClickable': true,
- 'buttonSettings': {
- 'previous': true,
- 'cancel': true,
- 'next': true
- },
- 'scrollToTop': false,
- 'collapsible': false,
- 'key': 'wizardPage1',
- 'type': 'panel',
- 'label': 'Page 1',
- 'components': [
- {
- 'label': 'Text Field',
- 'tableView': true,
- 'key': 'textField',
- 'type': 'textfield',
- 'input': true
- }
- ],
- 'input': false,
- 'tableView': false
- },
- {
- 'title': 'Wizard Page 2',
- 'breadcrumbClickable': true,
- 'buttonSettings': {
- 'previous': true,
- 'cancel': true,
- 'next': true
- },
- 'scrollToTop': false,
- 'collapsible': false,
- 'key': 'wizardPage2',
- 'type': 'panel',
- 'label': 'Page 2',
- 'components': [
- {
- 'label': 'Text Field',
- 'tableView': true,
- 'key': 'textField1',
- 'type': 'textfield',
- 'input': true
- }
- ],
- 'input': false,
- 'tableView': false
- }
- ],
- 'revisions': '',
- '_vid': 0,
- 'title': 'Simple Two Page Wizard',
- 'display': 'wizard',
- 'access': [
- {
- 'roles': [],
- 'type': 'create_own'
- },
- {
- 'roles': [],
- 'type': 'create_all'
- },
- {
- 'roles': [],
- 'type': 'read_own'
- },
- {
- 'roles': [
- '6038c83637595d104cfc3594',
- '6038c83637595d104cfc3595',
- '6038c83637595d104cfc3596'
- ],
- 'type': 'read_all'
- },
- {
- 'roles': [],
- 'type': 'update_own'
- },
- {
- 'roles': [],
- 'type': 'update_all'
- },
- {
- 'roles': [],
- 'type': 'delete_own'
- },
- {
- 'roles': [],
- 'type': 'delete_all'
- },
- {
- 'roles': [],
- 'type': 'team_read'
- },
- {
- 'roles': [],
- 'type': 'team_write'
- },
- {
- 'roles': [],
- 'type': 'team_admin'
- }
- ],
- 'submissionAccess': [
- {
- 'roles': [],
- 'type': 'create_own'
- },
- {
- 'roles': [],
- 'type': 'create_all'
- },
- {
- 'roles': [],
- 'type': 'read_own'
- },
- {
- 'roles': [],
- 'type': 'read_all'
- },
- {
- 'roles': [],
- 'type': 'update_own'
- },
- {
- 'roles': [],
- 'type': 'update_all'
- },
- {
- 'roles': [],
- 'type': 'delete_own'
- },
- {
- 'roles': [],
- 'type': 'delete_all'
- },
- {
- 'roles': [],
- 'type': 'team_read'
- },
- {
- 'roles': [],
- 'type': 'team_write'
- },
- {
- 'roles': [],
- 'type': 'team_admin'
- }
- ],
- 'controller': '',
- 'properties': {},
- 'settings': {},
- 'name': 'simpleTwoPageWizard',
- 'path': 'simpletwopagewizard',
- 'project': '6038c83637595d104cfc3593',
- 'created': '2021-04-22T13:29:30.495Z',
- 'modified': '2021-04-22T13:42:43.365Z',
- 'machineName': 'dqroghuntybetsh:simpleTwoPageWizard'
+ _id: '60817a3afc88e7048cbe5260',
+ type: 'form',
+ tags: [],
+ owner: '6038bed737595d104cfc358a',
+ components: [
+ {
+ title: 'Wizard Page 1',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'wizardPage1',
+ type: 'panel',
+ label: 'Page 1',
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ {
+ title: 'Wizard Page 2',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'wizardPage2',
+ type: 'panel',
+ label: 'Page 2',
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField1',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'Simple Two Page Wizard',
+ display: 'wizard',
+ access: [
+ {
+ roles: [],
+ type: 'create_own',
+ },
+ {
+ roles: [],
+ type: 'create_all',
+ },
+ {
+ roles: [],
+ type: 'read_own',
+ },
+ {
+ roles: [
+ '6038c83637595d104cfc3594',
+ '6038c83637595d104cfc3595',
+ '6038c83637595d104cfc3596',
+ ],
+ type: 'read_all',
+ },
+ {
+ roles: [],
+ type: 'update_own',
+ },
+ {
+ roles: [],
+ type: 'update_all',
+ },
+ {
+ roles: [],
+ type: 'delete_own',
+ },
+ {
+ roles: [],
+ type: 'delete_all',
+ },
+ {
+ roles: [],
+ type: 'team_read',
+ },
+ {
+ roles: [],
+ type: 'team_write',
+ },
+ {
+ roles: [],
+ type: 'team_admin',
+ },
+ ],
+ submissionAccess: [
+ {
+ roles: [],
+ type: 'create_own',
+ },
+ {
+ roles: [],
+ type: 'create_all',
+ },
+ {
+ roles: [],
+ type: 'read_own',
+ },
+ {
+ roles: [],
+ type: 'read_all',
+ },
+ {
+ roles: [],
+ type: 'update_own',
+ },
+ {
+ roles: [],
+ type: 'update_all',
+ },
+ {
+ roles: [],
+ type: 'delete_own',
+ },
+ {
+ roles: [],
+ type: 'delete_all',
+ },
+ {
+ roles: [],
+ type: 'team_read',
+ },
+ {
+ roles: [],
+ type: 'team_write',
+ },
+ {
+ roles: [],
+ type: 'team_admin',
+ },
+ ],
+ controller: '',
+ properties: {},
+ settings: {},
+ name: 'simpleTwoPageWizard',
+ path: 'simpletwopagewizard',
+ project: '6038c83637595d104cfc3593',
+ created: '2021-04-22T13:29:30.495Z',
+ modified: '2021-04-22T13:42:43.365Z',
+ machineName: 'dqroghuntybetsh:simpleTwoPageWizard',
};
diff --git a/test/forms/simpleWizard.js b/test/forms/simpleWizard.js
index 0a3881b6d5..3ed6a399c6 100644
--- a/test/forms/simpleWizard.js
+++ b/test/forms/simpleWizard.js
@@ -1,912 +1,912 @@
export default {
- components: [
- {
- title: 'Page 1',
- label: 'Page 1',
- type: 'panel',
- key: 'page1',
- components: [
+ components: [
{
- label: 'Date / Time',
- tableView: false,
- datePicker: {
- disableWeekends: false,
- disableWeekdays: false,
- showWeeks: true,
- startingDay: 0,
- initDate: '',
- minMode: 'day',
- maxMode: 'year',
- yearRows: 4,
- yearColumns: 5,
- minDate: null,
- maxDate: null
- },
- enableMinDateInput: false,
- enableMaxDateInput: false,
- key: 'dateTime',
- type: 'datetime',
- input: true,
- widget: {
- type: 'calendar',
- displayInTimezone: 'viewer',
- locale: 'en',
- useLocaleSettings: false,
- allowInput: true,
- mode: 'single',
- enableTime: true,
- noCalendar: false,
- format: 'yyyy-MM-dd hh:mm a',
- hourIncrement: 1,
- minuteIncrement: 1,
- time_24hr: false,
- minDate: null,
- disableWeekends: false,
- disableWeekdays: false,
- maxDate: null
- },
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- hidden: false,
- clearOnHide: true,
- refreshOn: '',
- redrawOn: '',
- modalEdit: false,
- dataGridLabel: false,
- labelPosition: 'top',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- attributes: {},
- validateOn: 'change',
- validate: {
- required: false,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Date / Time',
+ tableView: false,
+ datePicker: {
+ disableWeekends: false,
+ disableWeekdays: false,
+ showWeeks: true,
+ startingDay: 0,
+ initDate: '',
+ minMode: 'day',
+ maxMode: 'year',
+ yearRows: 4,
+ yearColumns: 5,
+ minDate: null,
+ maxDate: null,
+ },
+ enableMinDateInput: false,
+ enableMaxDateInput: false,
+ key: 'dateTime',
+ type: 'datetime',
+ input: true,
+ widget: {
+ type: 'calendar',
+ displayInTimezone: 'viewer',
+ locale: 'en',
+ useLocaleSettings: false,
+ allowInput: true,
+ mode: 'single',
+ enableTime: true,
+ noCalendar: false,
+ format: 'yyyy-MM-dd hh:mm a',
+ hourIncrement: 1,
+ minuteIncrement: 1,
+ time_24hr: false,
+ minDate: null,
+ disableWeekends: false,
+ disableWeekdays: false,
+ maxDate: null,
+ },
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ refreshOn: '',
+ redrawOn: '',
+ modalEdit: false,
+ dataGridLabel: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ addons: [],
+ format: 'yyyy-MM-dd hh:mm a',
+ useLocaleSettings: false,
+ allowInput: true,
+ enableDate: true,
+ enableTime: true,
+ defaultDate: '',
+ displayInTimezone: 'viewer',
+ timezone: '',
+ datepickerMode: 'day',
+ timePicker: {
+ hourStep: 1,
+ minuteStep: 1,
+ showMeridian: true,
+ readonlyInput: false,
+ mousewheel: true,
+ arrowkeys: true,
+ },
+ customOptions: {},
+ id: 'en3rnqk',
+ },
+ ],
+ input: false,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
multiple: false,
- unique: false
- },
- conditional: {
- show: null,
- when: null,
- eq: ''
- },
- overlay: {
- style: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
- properties: {},
- allowMultipleMasks: false,
- addons: [],
- format: 'yyyy-MM-dd hh:mm a',
- useLocaleSettings: false,
- allowInput: true,
- enableDate: true,
- enableTime: true,
- defaultDate: '',
- displayInTimezone: 'viewer',
- timezone: '',
- datepickerMode: 'day',
- timePicker: {
- hourStep: 1,
- minuteStep: 1,
- showMeridian: true,
- readonlyInput: false,
- mousewheel: true,
- arrowkeys: true
- },
- customOptions: {},
- id: 'en3rnqk'
- }
- ],
- input: false,
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- defaultValue: null,
- protected: false,
- unique: false,
- persistent: false,
- hidden: false,
- clearOnHide: false,
- refreshOn: '',
- redrawOn: '',
- tableView: false,
- modalEdit: false,
- dataGridLabel: false,
- labelPosition: 'top',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- widget: null,
- attributes: {},
- validateOn: 'change',
- validate: {
- required: false,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- conditional: {
- show: null,
- when: null,
- eq: ''
- },
- overlay: {
- style: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
- properties: {},
- allowMultipleMasks: false,
- addons: [],
- tree: false,
- lazyLoad: false,
- theme: 'default',
- breadcrumb: 'default',
- id: 'elx26b'
- },
- {
- title: 'Page 2',
- label: 'Page 2',
- type: 'panel',
- key: 'page2',
- components: [
- {
- label: 'Text Field',
- labelPosition: 'top',
- placeholder: '',
- description: '',
- tooltip: '',
- prefix: '',
- suffix: '',
- widget: {
- type: 'input'
- },
- inputMask: '',
- displayMask: '',
- allowMultipleMasks: false,
- customClass: '',
- tabindex: '',
- autocomplete: '',
- hidden: false,
- hideLabel: false,
- showWordCount: false,
- showCharCount: false,
- mask: false,
- autofocus: false,
- spellcheck: true,
- disabled: false,
- tableView: true,
- modalEdit: false,
- multiple: false,
- persistent: true,
- inputFormat: 'plain',
- protected: false,
- dbIndex: false,
- case: '',
- truncateMultipleSpaces: false,
- encrypted: false,
- redrawOn: '',
- clearOnHide: true,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- allowCalculateOverride: false,
- validateOn: 'change',
- validate: {
- required: false,
- pattern: '',
- customMessage: '',
- custom: '',
- customPrivate: false,
- json: '',
- minLength: '',
- maxLength: '',
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- unique: false,
- errorLabel: '',
- errors: '',
- key: 'textField',
- tags: [],
- properties: {},
- conditional: {
- show: null,
- when: null,
- eq: '',
- json: ''
- },
- customConditional: '',
- logic: [],
- attributes: {},
- overlay: {
- style: '',
- page: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- type: 'textfield',
- input: true,
- refreshOn: '',
- dataGridLabel: false,
- addons: [],
- inputType: 'text',
- id: 'euivbgw',
- defaultValue: null
- }
- ],
- input: false,
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- defaultValue: null,
- protected: false,
- unique: false,
- persistent: false,
- hidden: false,
- clearOnHide: false,
- refreshOn: '',
- redrawOn: '',
- tableView: false,
- modalEdit: false,
- dataGridLabel: false,
- labelPosition: 'top',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- widget: null,
- attributes: {},
- validateOn: 'change',
- validate: {
- required: false,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- conditional: {
- show: null,
- when: null,
- eq: ''
- },
- overlay: {
- style: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
- properties: {},
- allowMultipleMasks: false,
- addons: [],
- tree: false,
- lazyLoad: false,
- theme: 'default',
- breadcrumb: 'default',
- id: 'edm9ey'
- },
- {
- title: 'Page 3',
- label: 'Page 3',
- type: 'panel',
- key: 'page3',
- components: [
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ dataGridLabel: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: null,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ addons: [],
+ tree: false,
+ lazyLoad: false,
+ theme: 'default',
+ breadcrumb: 'default',
+ id: 'elx26b',
+ },
{
- label: 'Text Field',
- labelPosition: 'top',
- placeholder: '',
- description: '',
- tooltip: '',
- prefix: '',
- suffix: '',
- widget: {
- type: 'input'
- },
- inputMask: '',
- displayMask: '',
- allowMultipleMasks: false,
- customClass: '',
- tabindex: '',
- autocomplete: '',
- hidden: false,
- hideLabel: false,
- showWordCount: false,
- showCharCount: false,
- mask: false,
- autofocus: false,
- spellcheck: true,
- disabled: false,
- tableView: true,
- modalEdit: false,
- multiple: false,
- persistent: true,
- inputFormat: 'plain',
- protected: false,
- dbIndex: false,
- case: '',
- truncateMultipleSpaces: false,
- encrypted: false,
- redrawOn: '',
- clearOnHide: true,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- allowCalculateOverride: false,
- validateOn: 'change',
- validate: {
- required: false,
- pattern: '',
- customMessage: '',
- custom: '',
- customPrivate: false,
- json: '',
- minLength: '',
- maxLength: '',
- strictDateValidation: false,
+ title: 'Page 2',
+ label: 'Page 2',
+ type: 'panel',
+ key: 'page2',
+ components: [
+ {
+ label: 'Text Field',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ inputMask: '',
+ displayMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ autocomplete: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ truncateMultipleSpaces: false,
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ pattern: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength: '',
+ maxLength: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ errors: '',
+ key: 'textField',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ dataGridLabel: false,
+ addons: [],
+ inputType: 'text',
+ id: 'euivbgw',
+ defaultValue: null,
+ },
+ ],
+ input: false,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
multiple: false,
- unique: false
- },
- unique: false,
- errorLabel: '',
- errors: '',
- key: 'textField1',
- tags: [],
- properties: {},
- conditional: {
- show: null,
- when: null,
- eq: '',
- json: ''
- },
- customConditional: '',
- logic: [],
- attributes: {},
- overlay: {
- style: '',
- page: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- type: 'textfield',
- input: true,
- refreshOn: '',
- dataGridLabel: false,
- addons: [],
- inputType: 'text',
- id: 'ea1kbm9',
- defaultValue: null
- }
- ],
- input: false,
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- defaultValue: null,
- protected: false,
- unique: false,
- persistent: false,
- hidden: false,
- clearOnHide: false,
- refreshOn: '',
- redrawOn: '',
- tableView: false,
- modalEdit: false,
- dataGridLabel: false,
- labelPosition: 'top',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- widget: null,
- attributes: {},
- validateOn: 'change',
- validate: {
- required: false,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- conditional: {
- show: null,
- when: null,
- eq: ''
- },
- overlay: {
- style: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
- properties: {},
- allowMultipleMasks: false,
- addons: [],
- tree: false,
- lazyLoad: false,
- theme: 'default',
- breadcrumb: 'default',
- id: 'ej30156'
- },
- {
- title: 'Page 4',
- label: 'Page 4',
- type: 'panel',
- key: 'page4',
- components: [
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ dataGridLabel: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: null,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ addons: [],
+ tree: false,
+ lazyLoad: false,
+ theme: 'default',
+ breadcrumb: 'default',
+ id: 'edm9ey',
+ },
{
- label: 'Text Field',
- labelPosition: 'top',
- placeholder: '',
- description: '',
- tooltip: '',
- prefix: '',
- suffix: '',
- widget: {
- type: 'input'
- },
- inputMask: '',
- displayMask: '',
- allowMultipleMasks: false,
- customClass: '',
- tabindex: '',
- autocomplete: '',
- hidden: false,
- hideLabel: false,
- showWordCount: false,
- showCharCount: false,
- mask: false,
- autofocus: false,
- spellcheck: true,
- disabled: false,
- tableView: true,
- modalEdit: false,
- multiple: false,
- persistent: true,
- inputFormat: 'plain',
- protected: false,
- dbIndex: false,
- case: '',
- truncateMultipleSpaces: false,
- encrypted: false,
- redrawOn: '',
- clearOnHide: true,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- allowCalculateOverride: false,
- validateOn: 'change',
- validate: {
- required: false,
- pattern: '',
- customMessage: '',
- custom: '',
- customPrivate: false,
- json: '',
- minLength: '',
- maxLength: '',
- strictDateValidation: false,
+ title: 'Page 3',
+ label: 'Page 3',
+ type: 'panel',
+ key: 'page3',
+ components: [
+ {
+ label: 'Text Field',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ inputMask: '',
+ displayMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ autocomplete: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ truncateMultipleSpaces: false,
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ pattern: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength: '',
+ maxLength: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ errors: '',
+ key: 'textField1',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ dataGridLabel: false,
+ addons: [],
+ inputType: 'text',
+ id: 'ea1kbm9',
+ defaultValue: null,
+ },
+ ],
+ input: false,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
multiple: false,
- unique: false
- },
- unique: false,
- errorLabel: '',
- errors: '',
- key: 'textField2',
- tags: [],
- properties: {},
- conditional: {
- show: null,
- when: null,
- eq: '',
- json: ''
- },
- customConditional: '',
- logic: [],
- attributes: {},
- overlay: {
- style: '',
- page: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- type: 'textfield',
- input: true,
- refreshOn: '',
- dataGridLabel: false,
- addons: [],
- inputType: 'text',
- id: 'e6qc7ks',
- defaultValue: null
- }
- ],
- input: false,
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- defaultValue: null,
- protected: false,
- unique: false,
- persistent: false,
- hidden: false,
- clearOnHide: false,
- refreshOn: '',
- redrawOn: '',
- tableView: false,
- modalEdit: false,
- dataGridLabel: false,
- labelPosition: 'top',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- widget: null,
- attributes: {},
- validateOn: 'change',
- validate: {
- required: false,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- conditional: {
- show: null,
- when: null,
- eq: ''
- },
- overlay: {
- style: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
- properties: {},
- allowMultipleMasks: false,
- addons: [],
- tree: false,
- lazyLoad: false,
- theme: 'default',
- breadcrumb: 'default',
- id: 'e6kih4r'
- },
- {
- title: 'Page 5',
- label: 'Page 5',
- type: 'panel',
- key: 'page5',
- components: [
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ dataGridLabel: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: null,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ addons: [],
+ tree: false,
+ lazyLoad: false,
+ theme: 'default',
+ breadcrumb: 'default',
+ id: 'ej30156',
+ },
{
- label: 'Text Field',
- labelPosition: 'top',
- placeholder: '',
- description: '',
- tooltip: '',
- prefix: '',
- suffix: '',
- widget: {
- type: 'input'
- },
- inputMask: '',
- displayMask: '',
- allowMultipleMasks: false,
- customClass: '',
- tabindex: '',
- autocomplete: '',
- hidden: false,
- hideLabel: false,
- showWordCount: false,
- showCharCount: false,
- mask: false,
- autofocus: false,
- spellcheck: true,
- disabled: false,
- tableView: true,
- modalEdit: false,
- multiple: false,
- persistent: true,
- inputFormat: 'plain',
- protected: false,
- dbIndex: false,
- case: '',
- truncateMultipleSpaces: false,
- encrypted: false,
- redrawOn: '',
- clearOnHide: true,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- allowCalculateOverride: false,
- validateOn: 'change',
- validate: {
- required: false,
- pattern: '',
- customMessage: '',
- custom: '',
- customPrivate: false,
- json: '',
- minLength: '',
- maxLength: '',
- strictDateValidation: false,
+ title: 'Page 4',
+ label: 'Page 4',
+ type: 'panel',
+ key: 'page4',
+ components: [
+ {
+ label: 'Text Field',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ inputMask: '',
+ displayMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ autocomplete: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ truncateMultipleSpaces: false,
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ pattern: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength: '',
+ maxLength: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ errors: '',
+ key: 'textField2',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ dataGridLabel: false,
+ addons: [],
+ inputType: 'text',
+ id: 'e6qc7ks',
+ defaultValue: null,
+ },
+ ],
+ input: false,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
multiple: false,
- unique: false
- },
- unique: false,
- errorLabel: '',
- errors: '',
- key: 'textField3',
- tags: [],
- properties: {},
- conditional: {
- show: null,
- when: null,
- eq: '',
- json: ''
- },
- customConditional: '',
- logic: [],
- attributes: {},
- overlay: {
- style: '',
- page: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- type: 'textfield',
- input: true,
- refreshOn: '',
- dataGridLabel: false,
- addons: [],
- inputType: 'text',
- id: 'edk9c1d',
- defaultValue: null
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ dataGridLabel: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: null,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ addons: [],
+ tree: false,
+ lazyLoad: false,
+ theme: 'default',
+ breadcrumb: 'default',
+ id: 'e6kih4r',
},
{
- input: true,
- key: 'textArea',
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- defaultValue: null,
- protected: false,
- unique: false,
- persistent: true,
- hidden: false,
- clearOnHide: true,
- refreshOn: '',
- redrawOn: '',
- tableView: true,
- modalEdit: false,
- label: 'Text Area',
- dataGridLabel: false,
- labelPosition: 'top',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- widget: {
- type: 'input'
- },
- attributes: {},
- validateOn: 'change',
- validate: {
- required: false,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
+ title: 'Page 5',
+ label: 'Page 5',
+ type: 'panel',
+ key: 'page5',
+ components: [
+ {
+ label: 'Text Field',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ inputMask: '',
+ displayMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ autocomplete: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ truncateMultipleSpaces: false,
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ pattern: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength: '',
+ maxLength: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ errors: '',
+ key: 'textField3',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ dataGridLabel: false,
+ addons: [],
+ inputType: 'text',
+ id: 'edk9c1d',
+ defaultValue: null,
+ },
+ {
+ input: true,
+ key: 'textArea',
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: true,
+ modalEdit: false,
+ label: 'Text Area',
+ dataGridLabel: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: {
+ type: 'input',
+ },
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ minWords: '',
+ maxWords: '',
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ addons: [],
+ type: 'textarea',
+ mask: false,
+ inputType: 'text',
+ inputFormat: 'html',
+ inputMask: '',
+ displayMask: '',
+ spellcheck: true,
+ truncateMultipleSpaces: false,
+ rows: 3,
+ wysiwyg: false,
+ editor: '',
+ fixedSize: true,
+ id: 'e7dd0e8',
+ },
+ ],
+ input: false,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
multiple: false,
+ defaultValue: null,
+ protected: false,
unique: false,
- minLength: '',
- maxLength: '',
- pattern: '',
- minWords: '',
- maxWords: ''
- },
- conditional: {
- show: null,
- when: null,
- eq: ''
- },
- overlay: {
- style: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
- properties: {},
- allowMultipleMasks: false,
- addons: [],
- type: 'textarea',
- mask: false,
- inputType: 'text',
- inputFormat: 'html',
- inputMask: '',
- displayMask: '',
- spellcheck: true,
- truncateMultipleSpaces: false,
- rows: 3,
- wysiwyg: false,
- editor: '',
- fixedSize: true,
- id: 'e7dd0e8'
- }
- ],
- input: false,
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- defaultValue: null,
- protected: false,
- unique: false,
- persistent: false,
- hidden: false,
- clearOnHide: false,
- refreshOn: '',
- redrawOn: '',
- tableView: false,
- modalEdit: false,
- dataGridLabel: false,
- labelPosition: 'top',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- widget: null,
- attributes: {},
- validateOn: 'change',
- validate: {
- required: false,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- conditional: {
- show: null,
- when: null,
- eq: ''
- },
- overlay: {
- style: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
- properties: {},
- allowMultipleMasks: false,
- addons: [],
- tree: false,
- lazyLoad: false,
- theme: 'default',
- breadcrumb: 'default',
- id: 'euq9qhq'
- }
- ],
- display: 'wizard',
- type: 'form',
+ persistent: false,
+ hidden: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ dataGridLabel: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: null,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ addons: [],
+ tree: false,
+ lazyLoad: false,
+ theme: 'default',
+ breadcrumb: 'default',
+ id: 'euq9qhq',
+ },
+ ],
+ display: 'wizard',
+ type: 'form',
};
diff --git a/test/forms/submissionSetter.d.ts b/test/forms/submissionSetter.d.ts
index 811bea0075..e8a8c04153 100644
--- a/test/forms/submissionSetter.d.ts
+++ b/test/forms/submissionSetter.d.ts
@@ -1,457 +1,469 @@
declare namespace _default {
const title: string;
namespace form {
- const components: ({
- label: string;
- mask: boolean;
- tableView: boolean;
- type: string;
- input: boolean;
- key: string;
- components: ({
- label: string;
- allowMultipleMasks: boolean;
- showWordCount: boolean;
- showCharCount: boolean;
- tableView: boolean;
- type: string;
- input: boolean;
- key: string;
- widget: {
- type: string;
- };
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- dataGridLabel: boolean;
- labelPosition: string;
- labelWidth: number;
- labelMargin: number;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- refreshOn: string;
- clearOnRefresh: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- minLength: string;
- maxLength: string;
- minWords: string;
- maxWords: string;
- pattern: string;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- json?: undefined;
- };
- mask: boolean;
- inputType: string;
- inputMask: string;
- id: string;
- columns?: undefined;
- autoAdjust?: undefined;
- } | {
- columns: ({
- components: {
- label: string;
- allowMultipleMasks: boolean;
- showWordCount: boolean;
- showCharCount: boolean;
- tableView: boolean;
- type: string;
- input: boolean;
- key: string;
- widget: {
+ const components: (
+ | {
+ label: string;
+ mask: boolean;
+ tableView: boolean;
+ type: string;
+ input: boolean;
+ key: string;
+ components: (
+ | {
+ label: string;
+ allowMultipleMasks: boolean;
+ showWordCount: boolean;
+ showCharCount: boolean;
+ tableView: boolean;
type: string;
- };
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- dataGridLabel: boolean;
- labelPosition: string;
- labelWidth: number;
- labelMargin: number;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- refreshOn: string;
- clearOnRefresh: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- minLength: string;
- maxLength: string;
- minWords: string;
- maxWords: string;
- pattern: string;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- };
- mask: boolean;
- inputType: string;
- inputMask: string;
- id: string;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- type: string;
- input: boolean;
- key: string;
- tableView: boolean;
- label: string;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- dataGridLabel: boolean;
- labelPosition: string;
- labelWidth: number;
- labelMargin: number;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- widget: null;
- refreshOn: string;
- clearOnRefresh: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- };
- id: string;
- } | {
- components: {
- label: string;
- mask: boolean;
- tableView: boolean;
- type: string;
- input: boolean;
- key: string;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- dataGridLabel: boolean;
- labelPosition: string;
- labelWidth: number;
- labelMargin: number;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- widget: null;
- refreshOn: string;
- clearOnRefresh: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- min: string;
- max: string;
- step: string;
- integer: string;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- };
- id: string;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- type: string;
- input: boolean;
- key: string;
- tableView: boolean;
- label: string;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- dataGridLabel: boolean;
- labelPosition: string;
- labelWidth: number;
- labelMargin: number;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- widget: null;
- refreshOn: string;
- clearOnRefresh: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- };
- id: string;
- })[];
- label: string;
- mask: boolean;
- tableView: boolean;
- type: string;
- input: boolean;
- key: string;
- conditional: {
- show: string;
- when: string;
- json: string;
- eq: string;
- };
- customConditional: string;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- dataGridLabel: boolean;
- labelPosition: string;
- labelWidth: number;
- labelMargin: number;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- widget: null;
- refreshOn: string;
- clearOnRefresh: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- minLength?: undefined;
- maxLength?: undefined;
- minWords?: undefined;
- maxWords?: undefined;
- pattern?: undefined;
- };
- autoAdjust: boolean;
- id: string;
- allowMultipleMasks?: undefined;
- showWordCount?: undefined;
- showCharCount?: undefined;
- inputType?: undefined;
- inputMask?: undefined;
- })[];
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- dataGridLabel: boolean;
- labelPosition: string;
- labelWidth: number;
- labelMargin: number;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- widget: null;
- refreshOn: string;
- clearOnRefresh: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- };
- tree: boolean;
- id: string;
- disableOnInvalid?: undefined;
- theme?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- theme: string;
- input: boolean;
- tableView: boolean;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- dataGridLabel: boolean;
- labelPosition: string;
- labelWidth: number;
- labelMargin: number;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- widget: null;
- refreshOn: string;
- clearOnRefresh: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- };
- size: string;
- leftIcon: string;
- rightIcon: string;
- block: boolean;
- action: string;
- id: string;
- mask?: undefined;
- components?: undefined;
- tree?: undefined;
- })[];
+ input: boolean;
+ key: string;
+ widget: {
+ type: string;
+ };
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ dataGridLabel: boolean;
+ labelPosition: string;
+ labelWidth: number;
+ labelMargin: number;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ refreshOn: string;
+ clearOnRefresh: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ minLength: string;
+ maxLength: string;
+ minWords: string;
+ maxWords: string;
+ pattern: string;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json?: undefined;
+ };
+ mask: boolean;
+ inputType: string;
+ inputMask: string;
+ id: string;
+ columns?: undefined;
+ autoAdjust?: undefined;
+ }
+ | {
+ columns: (
+ | {
+ components: {
+ label: string;
+ allowMultipleMasks: boolean;
+ showWordCount: boolean;
+ showCharCount: boolean;
+ tableView: boolean;
+ type: string;
+ input: boolean;
+ key: string;
+ widget: {
+ type: string;
+ };
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ dataGridLabel: boolean;
+ labelPosition: string;
+ labelWidth: number;
+ labelMargin: number;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ refreshOn: string;
+ clearOnRefresh: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ minLength: string;
+ maxLength: string;
+ minWords: string;
+ maxWords: string;
+ pattern: string;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ };
+ mask: boolean;
+ inputType: string;
+ inputMask: string;
+ id: string;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ type: string;
+ input: boolean;
+ key: string;
+ tableView: boolean;
+ label: string;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ dataGridLabel: boolean;
+ labelPosition: string;
+ labelWidth: number;
+ labelMargin: number;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ widget: null;
+ refreshOn: string;
+ clearOnRefresh: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ };
+ id: string;
+ }
+ | {
+ components: {
+ label: string;
+ mask: boolean;
+ tableView: boolean;
+ type: string;
+ input: boolean;
+ key: string;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ dataGridLabel: boolean;
+ labelPosition: string;
+ labelWidth: number;
+ labelMargin: number;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ widget: null;
+ refreshOn: string;
+ clearOnRefresh: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ min: string;
+ max: string;
+ step: string;
+ integer: string;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ };
+ id: string;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ type: string;
+ input: boolean;
+ key: string;
+ tableView: boolean;
+ label: string;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ dataGridLabel: boolean;
+ labelPosition: string;
+ labelWidth: number;
+ labelMargin: number;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ widget: null;
+ refreshOn: string;
+ clearOnRefresh: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ };
+ id: string;
+ }
+ )[];
+ label: string;
+ mask: boolean;
+ tableView: boolean;
+ type: string;
+ input: boolean;
+ key: string;
+ conditional: {
+ show: string;
+ when: string;
+ json: string;
+ eq: string;
+ };
+ customConditional: string;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ dataGridLabel: boolean;
+ labelPosition: string;
+ labelWidth: number;
+ labelMargin: number;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ widget: null;
+ refreshOn: string;
+ clearOnRefresh: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ minLength?: undefined;
+ maxLength?: undefined;
+ minWords?: undefined;
+ maxWords?: undefined;
+ pattern?: undefined;
+ };
+ autoAdjust: boolean;
+ id: string;
+ allowMultipleMasks?: undefined;
+ showWordCount?: undefined;
+ showCharCount?: undefined;
+ inputType?: undefined;
+ inputMask?: undefined;
+ }
+ )[];
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ dataGridLabel: boolean;
+ labelPosition: string;
+ labelWidth: number;
+ labelMargin: number;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ widget: null;
+ refreshOn: string;
+ clearOnRefresh: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ };
+ tree: boolean;
+ id: string;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ theme: string;
+ input: boolean;
+ tableView: boolean;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ dataGridLabel: boolean;
+ labelPosition: string;
+ labelWidth: number;
+ labelMargin: number;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ widget: null;
+ refreshOn: string;
+ clearOnRefresh: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ };
+ size: string;
+ leftIcon: string;
+ rightIcon: string;
+ block: boolean;
+ action: string;
+ id: string;
+ mask?: undefined;
+ components?: undefined;
+ tree?: undefined;
+ }
+ )[];
}
const tests: {
- 'Should set submittion in form with container and layout components'(form: any, done: any): void;
+ 'Should set submittion in form with container and layout components'(
+ form: any,
+ done: any
+ ): void;
};
}
export default _default;
diff --git a/test/forms/submissionSetter.js b/test/forms/submissionSetter.js
index d94b68910e..07e6afea6e 100644
--- a/test/forms/submissionSetter.js
+++ b/test/forms/submissionSetter.js
@@ -1,450 +1,466 @@
import Harness from '../../test/harness';
const initData = {
- "data": {
- "container": {
- "name": "Alex",
- "lastName": "Blume",
- "age": 15
+ data: {
+ container: {
+ name: 'Alex',
+ lastName: 'Blume',
+ age: 15,
+ },
+ submit: false,
},
- "submit": false,
- },
- "metadata": {}
-}
+ metadata: {},
+};
export default {
- title: 'Submittion test.',
- form: {
- components: [{
- "label": "Container",
- "mask": false,
- "tableView": true,
- "type": "container",
- "input": true,
- "key": "container",
- "components": [{
- "label": "Name",
- "allowMultipleMasks": false,
- "showWordCount": false,
- "showCharCount": false,
- "tableView": true,
- "type": "textfield",
- "input": true,
- "key": "name",
- "widget": {
- "type": ""
- },
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "refreshOn": "",
- "clearOnRefresh": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "minWords": "",
- "maxWords": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "ecdnsr"
- }, {
- "columns": [{
- "components": [{
- "label": "Last Name",
- "allowMultipleMasks": false,
- "showWordCount": false,
- "showCharCount": false,
- "tableView": true,
- "type": "textfield",
- "input": true,
- "key": "lastName",
- "widget": {
- "type": ""
- },
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "refreshOn": "",
- "clearOnRefresh": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "minWords": "",
- "maxWords": "",
- "pattern": ""
+ title: 'Submittion test.',
+ form: {
+ components: [
+ {
+ label: 'Container',
+ mask: false,
+ tableView: true,
+ type: 'container',
+ input: true,
+ key: 'container',
+ components: [
+ {
+ label: 'Name',
+ allowMultipleMasks: false,
+ showWordCount: false,
+ showCharCount: false,
+ tableView: true,
+ type: 'textfield',
+ input: true,
+ key: 'name',
+ widget: {
+ type: '',
+ },
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ dataGridLabel: false,
+ labelPosition: 'top',
+ labelWidth: 30,
+ labelMargin: 3,
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ refreshOn: '',
+ clearOnRefresh: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ minLength: '',
+ maxLength: '',
+ minWords: '',
+ maxWords: '',
+ pattern: '',
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ mask: false,
+ inputType: 'text',
+ inputMask: '',
+ id: 'ecdnsr',
+ },
+ {
+ columns: [
+ {
+ components: [
+ {
+ label: 'Last Name',
+ allowMultipleMasks: false,
+ showWordCount: false,
+ showCharCount: false,
+ tableView: true,
+ type: 'textfield',
+ input: true,
+ key: 'lastName',
+ widget: {
+ type: '',
+ },
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ dataGridLabel: false,
+ labelPosition: 'top',
+ labelWidth: 30,
+ labelMargin: 3,
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ refreshOn: '',
+ clearOnRefresh: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ minLength: '',
+ maxLength: '',
+ minWords: '',
+ maxWords: '',
+ pattern: '',
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ mask: false,
+ inputType: 'text',
+ inputMask: '',
+ id: 'entjs8',
+ },
+ ],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ type: 'column',
+ input: true,
+ key: '',
+ tableView: true,
+ label: '',
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ dataGridLabel: false,
+ labelPosition: 'top',
+ labelWidth: 30,
+ labelMargin: 3,
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ widget: null,
+ refreshOn: '',
+ clearOnRefresh: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ id: 'ejvq5sq',
+ },
+ {
+ components: [
+ {
+ label: 'Age',
+ mask: false,
+ tableView: true,
+ type: 'number',
+ input: true,
+ key: 'age',
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ dataGridLabel: false,
+ labelPosition: 'top',
+ labelWidth: 30,
+ labelMargin: 3,
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ widget: null,
+ refreshOn: '',
+ clearOnRefresh: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ min: '',
+ max: '',
+ step: 'any',
+ integer: '',
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ id: 'etzejs8',
+ },
+ ],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ type: 'column',
+ input: true,
+ key: '',
+ tableView: true,
+ label: '',
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ dataGridLabel: false,
+ labelPosition: 'top',
+ labelWidth: 30,
+ labelMargin: 3,
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ widget: null,
+ refreshOn: '',
+ clearOnRefresh: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ id: 'e3h50ec',
+ },
+ ],
+ label: 'Columns',
+ mask: false,
+ tableView: false,
+ type: 'columns',
+ input: false,
+ key: 'columns',
+ conditional: {
+ show: '',
+ when: '',
+ json: '',
+ eq: '',
+ },
+ customConditional: '',
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: false,
+ dataGridLabel: false,
+ labelPosition: 'top',
+ labelWidth: 30,
+ labelMargin: 3,
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ widget: null,
+ refreshOn: '',
+ clearOnRefresh: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ },
+ autoAdjust: false,
+ id: 'egl50l',
+ },
+ ],
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ dataGridLabel: false,
+ labelPosition: 'top',
+ labelWidth: 30,
+ labelMargin: 3,
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ widget: null,
+ refreshOn: '',
+ clearOnRefresh: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ tree: true,
+ id: 'enm95bq',
},
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ theme: 'primary',
+ input: true,
+ tableView: true,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: true,
+ dataGridLabel: true,
+ labelPosition: 'top',
+ labelWidth: 30,
+ labelMargin: 3,
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ widget: null,
+ refreshOn: '',
+ clearOnRefresh: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ size: 'md',
+ leftIcon: '',
+ rightIcon: '',
+ block: false,
+ action: 'submit',
+ id: 'elaidi',
},
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "entjs8"
- }],
- "width": 6,
- "offset": 0,
- "push": 0,
- "pull": 0,
- "type": "column",
- "input": true,
- "key": "",
- "tableView": true,
- "label": "",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": null,
- "refreshOn": "",
- "clearOnRefresh": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "id": "ejvq5sq"
- }, {
- "components": [{
- "label": "Age",
- "mask": false,
- "tableView": true,
- "type": "number",
- "input": true,
- "key": "age",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": null,
- "refreshOn": "",
- "clearOnRefresh": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "min": "",
- "max": "",
- "step": "any",
- "integer": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "id": "etzejs8"
- }],
- "width": 6,
- "offset": 0,
- "push": 0,
- "pull": 0,
- "type": "column",
- "input": true,
- "key": "",
- "tableView": true,
- "label": "",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": null,
- "refreshOn": "",
- "clearOnRefresh": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "id": "e3h50ec"
- }],
- "label": "Columns",
- "mask": false,
- "tableView": false,
- "type": "columns",
- "input": false,
- "key": "columns",
- "conditional": {
- "show": "",
- "when": "",
- "json": "",
- "eq": ""
- },
- "customConditional": "",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": false,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": null,
- "refreshOn": "",
- "clearOnRefresh": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
+ ],
+ },
+ tests: {
+ 'Should set submittion in form with container and layout components'(
+ form,
+ done,
+ ) {
+ Harness.testSubmission(form, initData);
+ done();
},
- "autoAdjust": false,
- "id": "egl50l"
- }],
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": null,
- "refreshOn": "",
- "clearOnRefresh": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "tree": true,
- "id": "enm95bq"
- }, {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "theme": "primary",
- "input": true,
- "tableView": true,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": true,
- "dataGridLabel": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": null,
- "refreshOn": "",
- "clearOnRefresh": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "size": "md",
- "leftIcon": "",
- "rightIcon": "",
- "block": false,
- "action": "submit",
- "id": "elaidi"
- }]
- },
- tests: {
- 'Should set submittion in form with container and layout components'(form, done) {
- Harness.testSubmission(form, initData);
- done();
- }
- }
-}
+ },
+};
diff --git a/test/forms/testApiKeysUniquifying.d.ts b/test/forms/testApiKeysUniquifying.d.ts
index 6e91de72be..d30a4f04ee 100644
--- a/test/forms/testApiKeysUniquifying.d.ts
+++ b/test/forms/testApiKeysUniquifying.d.ts
@@ -1,121 +1,128 @@
declare namespace _default {
const type: string;
- const components: ({
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- rowDrafts: boolean;
- key: string;
- type: string;
- displayAsTable: boolean;
- input: boolean;
- components: {
- label: string;
- columns: {
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- currentWidth: number;
- }[];
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- }[];
- }[];
- collapsible?: undefined;
- disableOnInvalid?: undefined;
- } | {
- collapsible: boolean;
- key: string;
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: {
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- tableView: boolean;
- defaultValue: {}[];
- key: string;
- type: string;
- input: boolean;
- components: ({
- key: string;
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: {
- label: string;
- columns: {
- components: {
+ const components: (
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ rowDrafts: boolean;
+ key: string;
+ type: string;
+ displayAsTable: boolean;
+ input: boolean;
+ components: {
+ label: string;
+ columns: {
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ currentWidth: number;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ }[];
+ }[];
+ collapsible?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ collapsible: boolean;
+ key: string;
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: {
+ label: string;
+ reorder: boolean;
+ addAnotherPosition: string;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ tableView: boolean;
+ defaultValue: {}[];
+ key: string;
+ type: string;
+ input: boolean;
+ components: (
+ | {
+ key: string;
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: {
+ label: string;
+ columns: {
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ currentWidth: number;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ }[];
+ mask?: undefined;
+ delimiter?: undefined;
+ requireDecimal?: undefined;
+ inputFormat?: undefined;
+ truncateMultipleSpaces?: undefined;
+ }
+ | {
label: string;
+ mask: boolean;
tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ truncateMultipleSpaces: boolean;
key: string;
type: string;
input: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- currentWidth: number;
- }[];
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- }[];
- mask?: undefined;
- delimiter?: undefined;
- requireDecimal?: undefined;
- inputFormat?: undefined;
- truncateMultipleSpaces?: undefined;
- } | {
- label: string;
- mask: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- truncateMultipleSpaces: boolean;
- key: string;
- type: string;
- input: boolean;
- components?: undefined;
- })[];
- }[];
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- components?: undefined;
- collapsible?: undefined;
- })[];
+ components?: undefined;
+ }
+ )[];
+ }[];
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ components?: undefined;
+ collapsible?: undefined;
+ }
+ )[];
const title: string;
const display: string;
}
diff --git a/test/forms/testApiKeysUniquifying.js b/test/forms/testApiKeysUniquifying.js
index 65843e0b9e..65743c8642 100644
--- a/test/forms/testApiKeysUniquifying.js
+++ b/test/forms/testApiKeysUniquifying.js
@@ -1,153 +1,151 @@
export default {
- type: 'form',
- components: [
- {
- label: 'Container',
- tableView: false,
- key: 'container',
- type: 'container',
- input: true,
- components: [
+ type: 'form',
+ components: [
{
- label: 'Edit Grid',
- tableView: false,
- rowDrafts: false,
- key: 'editGrid',
- type: 'editgrid',
- displayAsTable: false,
- input: true,
- components: [
- {
- label: 'Columns',
- columns: [
+ label: 'Container',
+ tableView: false,
+ key: 'container',
+ type: 'container',
+ input: true,
+ components: [
{
- components: [
- {
- label: 'Text Field',
- tableView: true,
- key: 'textField',
- type: 'textfield',
- input: true
- }
- ],
- width: 6,
- offset: 0,
- push: 0,
- pull: 0,
- size: 'md',
- currentWidth: 6
+ label: 'Edit Grid',
+ tableView: false,
+ rowDrafts: false,
+ key: 'editGrid',
+ type: 'editgrid',
+ displayAsTable: false,
+ input: true,
+ components: [
+ {
+ label: 'Columns',
+ columns: [
+ {
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ currentWidth: 6,
+ },
+ {
+ components: [],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ currentWidth: 6,
+ },
+ ],
+ key: 'columns',
+ type: 'columns',
+ input: false,
+ tableView: false,
+ },
+ ],
},
- {
- components: [],
- width: 6,
- offset: 0,
- push: 0,
- pull: 0,
- size: 'md',
- currentWidth: 6
- }
- ],
- key: 'columns',
- type: 'columns',
- input: false,
- tableView: false
- }
- ]
- }
- ]
- },
- {
- collapsible: false,
- key: 'panel',
- type: 'panel',
- label: 'Panel',
- input: false,
- tableView: false,
- components: [
+ ],
+ },
{
- label: 'Data Grid',
- reorder: false,
- addAnotherPosition: 'bottom',
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- tableView: false,
- defaultValue: [
- {}
- ],
- key: 'dataGrid',
- type: 'datagrid',
- input: true,
- components: [
- {
- key: 'fieldSet',
- type: 'fieldset',
- label: 'Field Set',
- input: false,
- tableView: false,
- components: [
+ collapsible: false,
+ key: 'panel',
+ type: 'panel',
+ label: 'Panel',
+ input: false,
+ tableView: false,
+ components: [
{
- label: 'Columns',
- columns: [
- {
- components: [
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ tableView: false,
+ defaultValue: [{}],
+ key: 'dataGrid',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ key: 'fieldSet',
+ type: 'fieldset',
+ label: 'Field Set',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Columns',
+ columns: [
+ {
+ components: [
+ {
+ label: 'Checkbox',
+ tableView: false,
+ key: 'checkbox',
+ type: 'checkbox',
+ input: true,
+ },
+ ],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ currentWidth: 6,
+ },
+ {
+ components: [],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ currentWidth: 6,
+ },
+ ],
+ key: 'columns',
+ type: 'columns',
+ input: false,
+ tableView: false,
+ },
+ ],
+ },
{
- label: 'Checkbox',
- tableView: false,
- key: 'checkbox',
- type: 'checkbox',
- input: true
- }
- ],
- width: 6,
- offset: 0,
- push: 0,
- pull: 0,
- size: 'md',
- currentWidth: 6
- },
- {
- components: [],
- width: 6,
- offset: 0,
- push: 0,
- pull: 0,
- size: 'md',
- currentWidth: 6
- }
- ],
- key: 'columns',
- type: 'columns',
- input: false,
- tableView: false
- }
- ]
- },
- {
- label: 'Number',
- mask: false,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- truncateMultipleSpaces: false,
- key: 'number',
- type: 'number',
- input: true
- }
- ]
- }
- ]
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false
- }
- ],
- title: 'FIO-3476',
- display: 'form',
+ label: 'Number',
+ mask: false,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ truncateMultipleSpaces: false,
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ ],
+ },
+ ],
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ title: 'FIO-3476',
+ display: 'form',
};
diff --git a/test/forms/translationTestForm.d.ts b/test/forms/translationTestForm.d.ts
index a9f1eb0b02..abb4669069 100644
--- a/test/forms/translationTestForm.d.ts
+++ b/test/forms/translationTestForm.d.ts
@@ -1,38 +1,41 @@
declare namespace _default {
const type: string;
- const components: ({
- label: string;
- tableView: boolean;
- data: {
- values: {
- label: string;
- value: string;
- }[];
- };
- selectThreshold: number;
- validate: {
- required: boolean;
- onlyAvailableItems: boolean;
- };
- key: string;
- type: string;
- indexeddb: {
- filter: {};
- };
- input: boolean;
- showValidations?: undefined;
- } | {
- label: string;
- showValidations: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- data?: undefined;
- selectThreshold?: undefined;
- validate?: undefined;
- indexeddb?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ tableView: boolean;
+ data: {
+ values: {
+ label: string;
+ value: string;
+ }[];
+ };
+ selectThreshold: number;
+ validate: {
+ required: boolean;
+ onlyAvailableItems: boolean;
+ };
+ key: string;
+ type: string;
+ indexeddb: {
+ filter: {};
+ };
+ input: boolean;
+ showValidations?: undefined;
+ }
+ | {
+ label: string;
+ showValidations: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ data?: undefined;
+ selectThreshold?: undefined;
+ validate?: undefined;
+ indexeddb?: undefined;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/translationTestForm.js b/test/forms/translationTestForm.js
index ed1d10e390..6eabee9fd9 100644
--- a/test/forms/translationTestForm.js
+++ b/test/forms/translationTestForm.js
@@ -1,22 +1,34 @@
export default {
- "type": "form",
- "components": [
- {
- "label": "select",
- "tableView": true,
- "data": { "values": [ { "label": "select", "value": "select" }, { "label": "error", "value": "error" } ] },
- "selectThreshold": 0.3,
- "validate": { "required": true, "onlyAvailableItems": false },
- "key": "select",
- "type": "select",
- "indexeddb": { "filter": {} },
- "input": true
- },
- { "label": "Submit", "showValidations": false, "tableView": false, "key": "submit", "type": "button", "input": true }
- ],
- "title": "test translation",
- "display": "form",
- "name": "testTranslation",
- "path": "testtranslation",
- "machineName": "cjksbatcpbhyfbs:testTranslation",
+ type: 'form',
+ components: [
+ {
+ label: 'select',
+ tableView: true,
+ data: {
+ values: [
+ { label: 'select', value: 'select' },
+ { label: 'error', value: 'error' },
+ ],
+ },
+ selectThreshold: 0.3,
+ validate: { required: true, onlyAvailableItems: false },
+ key: 'select',
+ type: 'select',
+ indexeddb: { filter: {} },
+ input: true,
+ },
+ {
+ label: 'Submit',
+ showValidations: false,
+ tableView: false,
+ key: 'submit',
+ type: 'button',
+ input: true,
+ },
+ ],
+ title: 'test translation',
+ display: 'form',
+ name: 'testTranslation',
+ path: 'testtranslation',
+ machineName: 'cjksbatcpbhyfbs:testTranslation',
};
diff --git a/test/forms/truncateMultipleSpaces.d.ts b/test/forms/truncateMultipleSpaces.d.ts
index 468d748448..2cb4682799 100644
--- a/test/forms/truncateMultipleSpaces.d.ts
+++ b/test/forms/truncateMultipleSpaces.d.ts
@@ -1,58 +1,63 @@
declare namespace _default {
const type: string;
- const components: ({
- label: string;
- tableView: boolean;
- truncateMultipleSpaces: boolean;
- validate: {
- required: boolean;
- minLength?: undefined;
- maxLength?: undefined;
- };
- key: string;
- type: string;
- input: boolean;
- autoExpand?: undefined;
- disableOnInvalid?: undefined;
- } | {
- label: string;
- tableView: boolean;
- validate: {
- minLength: number;
- maxLength: number;
- required?: undefined;
- };
- key: string;
- type: string;
- input: boolean;
- truncateMultipleSpaces: boolean;
- autoExpand?: undefined;
- disableOnInvalid?: undefined;
- } | {
- label: string;
- autoExpand: boolean;
- tableView: boolean;
- validate: {
- minLength: number;
- maxLength: number;
- required?: undefined;
- };
- key: string;
- type: string;
- input: boolean;
- truncateMultipleSpaces: boolean;
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- truncateMultipleSpaces?: undefined;
- validate?: undefined;
- autoExpand?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ tableView: boolean;
+ truncateMultipleSpaces: boolean;
+ validate: {
+ required: boolean;
+ minLength?: undefined;
+ maxLength?: undefined;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ autoExpand?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ validate: {
+ minLength: number;
+ maxLength: number;
+ required?: undefined;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ truncateMultipleSpaces: boolean;
+ autoExpand?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ label: string;
+ autoExpand: boolean;
+ tableView: boolean;
+ validate: {
+ minLength: number;
+ maxLength: number;
+ required?: undefined;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ truncateMultipleSpaces: boolean;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ truncateMultipleSpaces?: undefined;
+ validate?: undefined;
+ autoExpand?: undefined;
+ }
+ )[];
const title: string;
const display: string;
}
diff --git a/test/forms/truncateMultipleSpaces.js b/test/forms/truncateMultipleSpaces.js
index c58c3cff23..ef8fc77ea6 100644
--- a/test/forms/truncateMultipleSpaces.js
+++ b/test/forms/truncateMultipleSpaces.js
@@ -1,51 +1,51 @@
export default {
- type: 'form',
- components: [
- {
- label: 'Text Field',
- tableView: true,
- truncateMultipleSpaces: true,
- validate: {
- required: true
- },
- key: 'textField1',
- type: 'textfield',
- input: true
- },
- {
- label: 'Text Field',
- tableView: true,
- validate: {
- minLength: 5,
- maxLength: 10
- },
- key: 'textField',
- type: 'textfield',
- input: true,
- truncateMultipleSpaces: true
- },
- {
- label: 'Text Area',
- autoExpand: false,
- tableView: true,
- validate: {
- minLength: 5,
- maxLength: 10
- },
- key: 'textArea',
- type: 'textarea',
- input: true,
- truncateMultipleSpaces: true
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false
- }
- ],
- title: 'FIO-2503',
- display: 'form',
+ type: 'form',
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ truncateMultipleSpaces: true,
+ validate: {
+ required: true,
+ },
+ key: 'textField1',
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Text Field',
+ tableView: true,
+ validate: {
+ minLength: 5,
+ maxLength: 10,
+ },
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ truncateMultipleSpaces: true,
+ },
+ {
+ label: 'Text Area',
+ autoExpand: false,
+ tableView: true,
+ validate: {
+ minLength: 5,
+ maxLength: 10,
+ },
+ key: 'textArea',
+ type: 'textarea',
+ input: true,
+ truncateMultipleSpaces: true,
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ title: 'FIO-2503',
+ display: 'form',
};
diff --git a/test/forms/updateErrorClasses-widgets.d.ts b/test/forms/updateErrorClasses-widgets.d.ts
index b35d1c3064..df6d3ca522 100644
--- a/test/forms/updateErrorClasses-widgets.d.ts
+++ b/test/forms/updateErrorClasses-widgets.d.ts
@@ -1,334 +1,338 @@
declare namespace _default {
const type: string;
- const components: ({
- label: string;
- description: string;
- tooltip: string;
- shortcut: string;
- inputType: string;
- customClass: string;
- tabindex: string;
- hidden: boolean;
- hideLabel: boolean;
- autofocus: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- persistent: boolean;
- protected: boolean;
- dbIndex: boolean;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validate: {
- required: boolean;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- errorLabel: string;
- key: string;
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- name: string;
- value: string;
- input: boolean;
- placeholder: string;
- prefix: string;
- suffix: string;
- multiple: boolean;
- unique: boolean;
- refreshOn: string;
- labelPosition: string;
- widget: null;
- validateOn: string;
- showCharCount: boolean;
- showWordCount: boolean;
- allowMultipleMasks: boolean;
- dataGridLabel: boolean;
- id: string;
- defaultValue: boolean;
- displayInTimezone?: undefined;
- useLocaleSettings?: undefined;
- allowInput?: undefined;
- format?: undefined;
- enableDate?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- enableTime?: undefined;
- timePicker?: undefined;
- defaultDate?: undefined;
- timezone?: undefined;
- datepickerMode?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- } | {
- label: string;
- labelPosition: string;
- displayInTimezone: string;
- useLocaleSettings: boolean;
- allowInput: boolean;
- format: string;
- placeholder: string;
- description: string;
- tooltip: string;
- customClass: string;
- tabindex: string;
- hidden: boolean;
- hideLabel: boolean;
- autofocus: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- enableDate: boolean;
- enableMinDateInput: boolean;
- datePicker: {
- minDate: null;
- maxDate: null;
- disable: string;
- disableFunction: string;
- disableWeekends: boolean;
- disableWeekdays: boolean;
- showWeeks: boolean;
- startingDay: number;
- initDate: string;
- minMode: string;
- maxMode: string;
- yearRows: number;
- yearColumns: number;
- };
- enableMaxDateInput: boolean;
- enableTime: boolean;
- timePicker: {
- showMeridian: boolean;
- hourStep: number;
- minuteStep: number;
- readonlyInput: boolean;
- mousewheel: boolean;
- arrowkeys: boolean;
- };
- multiple: boolean;
- defaultValue: string;
- defaultDate: string;
- persistent: boolean;
- protected: boolean;
- dbIndex: boolean;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validate: {
- required: boolean;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- unique: boolean;
- validateOn: string;
- errorLabel: string;
- key: string;
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- timezone: string;
- input: boolean;
- widget: {
- type: string;
- displayInTimezone: string;
- locale: string;
- useLocaleSettings: boolean;
- allowInput: boolean;
- mode: string;
- enableTime: boolean;
- noCalendar: boolean;
- format: string;
- hourIncrement: number;
- minuteIncrement: number;
- time_24hr: boolean;
- minDate: null;
- disabledDates: string;
- disableWeekends: boolean;
- disableWeekdays: boolean;
- disableFunction: string;
- maxDate: null;
- };
- prefix: string;
- suffix: string;
- refreshOn: string;
- showCharCount: boolean;
- showWordCount: boolean;
- allowMultipleMasks: boolean;
- datepickerMode: string;
- id: string;
- shortcut?: undefined;
- inputType?: undefined;
- name?: undefined;
- value?: undefined;
- dataGridLabel?: undefined;
- size?: undefined;
- leftIcon?: undefined;
- rightIcon?: undefined;
- block?: undefined;
- action?: undefined;
- disableOnInvalid?: undefined;
- theme?: undefined;
- } | {
- input: boolean;
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- modalEdit: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- widget: {
- type: string;
- displayInTimezone?: undefined;
- locale?: undefined;
- useLocaleSettings?: undefined;
- allowInput?: undefined;
- mode?: undefined;
- enableTime?: undefined;
- noCalendar?: undefined;
- format?: undefined;
- hourIncrement?: undefined;
- minuteIncrement?: undefined;
- time_24hr?: undefined;
- minDate?: undefined;
- disabledDates?: undefined;
- disableWeekends?: undefined;
- disableWeekdays?: undefined;
- disableFunction?: undefined;
- maxDate?: undefined;
- };
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- customMessage?: undefined;
- json?: undefined;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- json?: undefined;
- };
- overlay: {
- style: string;
- left: string;
- top: string;
- width: string;
- height: string;
- page?: undefined;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- allowMultipleMasks: boolean;
- size: string;
- leftIcon: string;
- rightIcon: string;
- block: boolean;
- action: string;
- disableOnInvalid: boolean;
- theme: string;
- dataGridLabel: boolean;
- id: string;
- shortcut?: undefined;
- inputType?: undefined;
- name?: undefined;
- value?: undefined;
- displayInTimezone?: undefined;
- useLocaleSettings?: undefined;
- allowInput?: undefined;
- format?: undefined;
- enableDate?: undefined;
- enableMinDateInput?: undefined;
- datePicker?: undefined;
- enableMaxDateInput?: undefined;
- enableTime?: undefined;
- timePicker?: undefined;
- defaultDate?: undefined;
- timezone?: undefined;
- datepickerMode?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ description: string;
+ tooltip: string;
+ shortcut: string;
+ inputType: string;
+ customClass: string;
+ tabindex: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ autofocus: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ persistent: boolean;
+ protected: boolean;
+ dbIndex: boolean;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validate: {
+ required: boolean;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ errorLabel: string;
+ key: string;
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ name: string;
+ value: string;
+ input: boolean;
+ placeholder: string;
+ prefix: string;
+ suffix: string;
+ multiple: boolean;
+ unique: boolean;
+ refreshOn: string;
+ labelPosition: string;
+ widget: null;
+ validateOn: string;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ allowMultipleMasks: boolean;
+ dataGridLabel: boolean;
+ id: string;
+ defaultValue: boolean;
+ displayInTimezone?: undefined;
+ useLocaleSettings?: undefined;
+ allowInput?: undefined;
+ format?: undefined;
+ enableDate?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ enableTime?: undefined;
+ timePicker?: undefined;
+ defaultDate?: undefined;
+ timezone?: undefined;
+ datepickerMode?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ }
+ | {
+ label: string;
+ labelPosition: string;
+ displayInTimezone: string;
+ useLocaleSettings: boolean;
+ allowInput: boolean;
+ format: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ customClass: string;
+ tabindex: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ autofocus: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ enableDate: boolean;
+ enableMinDateInput: boolean;
+ datePicker: {
+ minDate: null;
+ maxDate: null;
+ disable: string;
+ disableFunction: string;
+ disableWeekends: boolean;
+ disableWeekdays: boolean;
+ showWeeks: boolean;
+ startingDay: number;
+ initDate: string;
+ minMode: string;
+ maxMode: string;
+ yearRows: number;
+ yearColumns: number;
+ };
+ enableMaxDateInput: boolean;
+ enableTime: boolean;
+ timePicker: {
+ showMeridian: boolean;
+ hourStep: number;
+ minuteStep: number;
+ readonlyInput: boolean;
+ mousewheel: boolean;
+ arrowkeys: boolean;
+ };
+ multiple: boolean;
+ defaultValue: string;
+ defaultDate: string;
+ persistent: boolean;
+ protected: boolean;
+ dbIndex: boolean;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validate: {
+ required: boolean;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ unique: boolean;
+ validateOn: string;
+ errorLabel: string;
+ key: string;
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ timezone: string;
+ input: boolean;
+ widget: {
+ type: string;
+ displayInTimezone: string;
+ locale: string;
+ useLocaleSettings: boolean;
+ allowInput: boolean;
+ mode: string;
+ enableTime: boolean;
+ noCalendar: boolean;
+ format: string;
+ hourIncrement: number;
+ minuteIncrement: number;
+ time_24hr: boolean;
+ minDate: null;
+ disabledDates: string;
+ disableWeekends: boolean;
+ disableWeekdays: boolean;
+ disableFunction: string;
+ maxDate: null;
+ };
+ prefix: string;
+ suffix: string;
+ refreshOn: string;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ allowMultipleMasks: boolean;
+ datepickerMode: string;
+ id: string;
+ shortcut?: undefined;
+ inputType?: undefined;
+ name?: undefined;
+ value?: undefined;
+ dataGridLabel?: undefined;
+ size?: undefined;
+ leftIcon?: undefined;
+ rightIcon?: undefined;
+ block?: undefined;
+ action?: undefined;
+ disableOnInvalid?: undefined;
+ theme?: undefined;
+ }
+ | {
+ input: boolean;
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ modalEdit: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ widget: {
+ type: string;
+ displayInTimezone?: undefined;
+ locale?: undefined;
+ useLocaleSettings?: undefined;
+ allowInput?: undefined;
+ mode?: undefined;
+ enableTime?: undefined;
+ noCalendar?: undefined;
+ format?: undefined;
+ hourIncrement?: undefined;
+ minuteIncrement?: undefined;
+ time_24hr?: undefined;
+ minDate?: undefined;
+ disabledDates?: undefined;
+ disableWeekends?: undefined;
+ disableWeekdays?: undefined;
+ disableFunction?: undefined;
+ maxDate?: undefined;
+ };
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ customMessage?: undefined;
+ json?: undefined;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json?: undefined;
+ };
+ overlay: {
+ style: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ page?: undefined;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ allowMultipleMasks: boolean;
+ size: string;
+ leftIcon: string;
+ rightIcon: string;
+ block: boolean;
+ action: string;
+ disableOnInvalid: boolean;
+ theme: string;
+ dataGridLabel: boolean;
+ id: string;
+ shortcut?: undefined;
+ inputType?: undefined;
+ name?: undefined;
+ value?: undefined;
+ displayInTimezone?: undefined;
+ useLocaleSettings?: undefined;
+ allowInput?: undefined;
+ format?: undefined;
+ enableDate?: undefined;
+ enableMinDateInput?: undefined;
+ datePicker?: undefined;
+ enableMaxDateInput?: undefined;
+ enableTime?: undefined;
+ timePicker?: undefined;
+ defaultDate?: undefined;
+ timezone?: undefined;
+ datepickerMode?: undefined;
+ }
+ )[];
const revisions: string;
const _vid: number;
const title: string;
diff --git a/test/forms/updateErrorClasses-widgets.js b/test/forms/updateErrorClasses-widgets.js
index e8bbcb8aed..7f5ebdc867 100644
--- a/test/forms/updateErrorClasses-widgets.js
+++ b/test/forms/updateErrorClasses-widgets.js
@@ -1,274 +1,274 @@
export default {
- 'type': 'form',
- 'components': [
- {
- 'label': 'Show date',
- 'description': '',
- 'tooltip': '',
- 'shortcut': '',
- 'inputType': 'checkbox',
- 'customClass': '',
- 'tabindex': '',
- 'hidden': false,
- 'hideLabel': false,
- 'autofocus': false,
- 'disabled': false,
- 'tableView': false,
- 'modalEdit': false,
- 'persistent': true,
- 'protected': false,
- 'dbIndex': false,
- 'encrypted': false,
- 'redrawOn': '',
- 'clearOnHide': true,
- 'customDefaultValue': '',
- 'calculateValue': '',
- 'calculateServer': false,
- 'allowCalculateOverride': false,
- 'validate': {
- 'required': false,
- 'customMessage': '',
- 'custom': '',
- 'customPrivate': false,
- 'json': '',
- 'strictDateValidation': false,
- 'multiple': false,
- 'unique': false
+ type: 'form',
+ components: [
+ {
+ label: 'Show date',
+ description: '',
+ tooltip: '',
+ shortcut: '',
+ inputType: 'checkbox',
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ autofocus: false,
+ disabled: false,
+ tableView: false,
+ modalEdit: false,
+ persistent: true,
+ protected: false,
+ dbIndex: false,
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validate: {
+ required: false,
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ errorLabel: '',
+ key: 'showDate',
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'checkbox',
+ name: '',
+ value: '',
+ input: true,
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ unique: false,
+ refreshOn: '',
+ labelPosition: 'right',
+ widget: null,
+ validateOn: 'change',
+ showCharCount: false,
+ showWordCount: false,
+ allowMultipleMasks: false,
+ dataGridLabel: true,
+ id: 'ehdh7jr',
+ defaultValue: false,
},
- 'errorLabel': '',
- 'key': 'showDate',
- 'conditional': {
- 'show': null,
- 'when': null,
- 'eq': '',
- 'json': ''
+ {
+ label: 'condtional date',
+ labelPosition: 'top',
+ displayInTimezone: 'viewer',
+ useLocaleSettings: false,
+ allowInput: true,
+ format: 'yyyy-MM-dd',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ autofocus: false,
+ disabled: false,
+ tableView: false,
+ modalEdit: false,
+ enableDate: true,
+ enableMinDateInput: false,
+ datePicker: {
+ minDate: null,
+ maxDate: null,
+ disable: '',
+ disableFunction: '',
+ disableWeekends: false,
+ disableWeekdays: false,
+ showWeeks: true,
+ startingDay: 0,
+ initDate: '',
+ minMode: 'day',
+ maxMode: 'year',
+ yearRows: 4,
+ yearColumns: 5,
+ },
+ enableMaxDateInput: false,
+ enableTime: false,
+ timePicker: {
+ showMeridian: true,
+ hourStep: 1,
+ minuteStep: 1,
+ readonlyInput: false,
+ mousewheel: true,
+ arrowkeys: true,
+ },
+ multiple: false,
+ defaultValue: '',
+ defaultDate: '',
+ persistent: true,
+ protected: false,
+ dbIndex: false,
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validate: {
+ required: true,
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ validateOn: 'change',
+ errorLabel: '',
+ key: 'condtionalDate',
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: 'show = data.showDate',
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'datetime',
+ timezone: '',
+ input: true,
+ widget: {
+ type: 'calendar',
+ displayInTimezone: 'viewer',
+ locale: 'en',
+ useLocaleSettings: false,
+ allowInput: true,
+ mode: 'single',
+ enableTime: false,
+ noCalendar: false,
+ format: 'yyyy-MM-dd',
+ hourIncrement: 1,
+ minuteIncrement: 1,
+ time_24hr: false,
+ minDate: null,
+ disabledDates: '',
+ disableWeekends: false,
+ disableWeekdays: false,
+ disableFunction: '',
+ maxDate: null,
+ },
+ prefix: '',
+ suffix: '',
+ refreshOn: '',
+ showCharCount: false,
+ showWordCount: false,
+ allowMultipleMasks: false,
+ datepickerMode: 'day',
+ id: 'e7l3bu6',
},
- 'customConditional': '',
- 'overlay': {
- 'style': '',
- 'page': '',
- 'left': '',
- 'top': '',
- 'width': '',
- 'height': ''
+ {
+ input: true,
+ label: 'Submit',
+ tableView: false,
+ key: 'submit',
+ type: 'button',
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: true,
+ refreshOn: '',
+ redrawOn: '',
+ modalEdit: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: {
+ type: 'input',
+ },
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ allowMultipleMasks: false,
+ size: 'md',
+ leftIcon: '',
+ rightIcon: '',
+ block: false,
+ action: 'submit',
+ disableOnInvalid: false,
+ theme: 'primary',
+ dataGridLabel: true,
+ id: 'e70j2cm',
},
- 'type': 'checkbox',
- 'name': '',
- 'value': '',
- 'input': true,
- 'placeholder': '',
- 'prefix': '',
- 'suffix': '',
- 'multiple': false,
- 'unique': false,
- 'refreshOn': '',
- 'labelPosition': 'right',
- 'widget': null,
- 'validateOn': 'change',
- 'showCharCount': false,
- 'showWordCount': false,
- 'allowMultipleMasks': false,
- 'dataGridLabel': true,
- 'id': 'ehdh7jr',
- 'defaultValue': false
- },
- {
- 'label': 'condtional date',
- 'labelPosition': 'top',
- 'displayInTimezone': 'viewer',
- 'useLocaleSettings': false,
- 'allowInput': true,
- 'format': 'yyyy-MM-dd',
- 'placeholder': '',
- 'description': '',
- 'tooltip': '',
- 'customClass': '',
- 'tabindex': '',
- 'hidden': false,
- 'hideLabel': false,
- 'autofocus': false,
- 'disabled': false,
- 'tableView': false,
- 'modalEdit': false,
- 'enableDate': true,
- 'enableMinDateInput': false,
- 'datePicker': {
- 'minDate': null,
- 'maxDate': null,
- 'disable': '',
- 'disableFunction': '',
- 'disableWeekends': false,
- 'disableWeekdays': false,
- 'showWeeks': true,
- 'startingDay': 0,
- 'initDate': '',
- 'minMode': 'day',
- 'maxMode': 'year',
- 'yearRows': 4,
- 'yearColumns': 5
- },
- 'enableMaxDateInput': false,
- 'enableTime': false,
- 'timePicker': {
- 'showMeridian': true,
- 'hourStep': 1,
- 'minuteStep': 1,
- 'readonlyInput': false,
- 'mousewheel': true,
- 'arrowkeys': true
- },
- 'multiple': false,
- 'defaultValue': '',
- 'defaultDate': '',
- 'persistent': true,
- 'protected': false,
- 'dbIndex': false,
- 'encrypted': false,
- 'redrawOn': '',
- 'clearOnHide': true,
- 'customDefaultValue': '',
- 'calculateValue': '',
- 'calculateServer': false,
- 'allowCalculateOverride': false,
- 'validate': {
- 'required': true,
- 'customMessage': '',
- 'custom': '',
- 'customPrivate': false,
- 'json': '',
- 'strictDateValidation': false,
- 'multiple': false,
- 'unique': false
- },
- 'unique': false,
- 'validateOn': 'change',
- 'errorLabel': '',
- 'key': 'condtionalDate',
- 'conditional': {
- 'show': null,
- 'when': null,
- 'eq': '',
- 'json': ''
- },
- 'customConditional': 'show = data.showDate',
- 'overlay': {
- 'style': '',
- 'page': '',
- 'left': '',
- 'top': '',
- 'width': '',
- 'height': ''
- },
- 'type': 'datetime',
- 'timezone': '',
- 'input': true,
- 'widget': {
- 'type': 'calendar',
- 'displayInTimezone': 'viewer',
- 'locale': 'en',
- 'useLocaleSettings': false,
- 'allowInput': true,
- 'mode': 'single',
- 'enableTime': false,
- 'noCalendar': false,
- 'format': 'yyyy-MM-dd',
- 'hourIncrement': 1,
- 'minuteIncrement': 1,
- 'time_24hr': false,
- 'minDate': null,
- 'disabledDates': '',
- 'disableWeekends': false,
- 'disableWeekdays': false,
- 'disableFunction': '',
- 'maxDate': null
- },
- 'prefix': '',
- 'suffix': '',
- 'refreshOn': '',
- 'showCharCount': false,
- 'showWordCount': false,
- 'allowMultipleMasks': false,
- 'datepickerMode': 'day',
- 'id': 'e7l3bu6'
- },
- {
- 'input': true,
- 'label': 'Submit',
- 'tableView': false,
- 'key': 'submit',
- 'type': 'button',
- 'placeholder': '',
- 'prefix': '',
- 'customClass': '',
- 'suffix': '',
- 'multiple': false,
- 'defaultValue': null,
- 'protected': false,
- 'unique': false,
- 'persistent': false,
- 'hidden': false,
- 'clearOnHide': true,
- 'refreshOn': '',
- 'redrawOn': '',
- 'modalEdit': false,
- 'labelPosition': 'top',
- 'description': '',
- 'errorLabel': '',
- 'tooltip': '',
- 'hideLabel': false,
- 'tabindex': '',
- 'disabled': false,
- 'autofocus': false,
- 'dbIndex': false,
- 'customDefaultValue': '',
- 'calculateValue': '',
- 'calculateServer': false,
- 'widget': {
- 'type': 'input'
- },
- 'validateOn': 'change',
- 'validate': {
- 'required': false,
- 'custom': '',
- 'customPrivate': false,
- 'strictDateValidation': false,
- 'multiple': false,
- 'unique': false
- },
- 'conditional': {
- 'show': null,
- 'when': null,
- 'eq': ''
- },
- 'overlay': {
- 'style': '',
- 'left': '',
- 'top': '',
- 'width': '',
- 'height': ''
- },
- 'allowCalculateOverride': false,
- 'encrypted': false,
- 'showCharCount': false,
- 'showWordCount': false,
- 'allowMultipleMasks': false,
- 'size': 'md',
- 'leftIcon': '',
- 'rightIcon': '',
- 'block': false,
- 'action': 'submit',
- 'disableOnInvalid': false,
- 'theme': 'primary',
- 'dataGridLabel': true,
- 'id': 'e70j2cm'
- }
],
- 'revisions': '',
- '_vid': 0,
- 'title': 'Test Form',
- 'display': 'form',
- 'name': 'testForm',
- 'path': 'testform',
- 'project': '5d1f50939cf719592fa10249',
- 'controller': ''
- };
+ revisions: '',
+ _vid: 0,
+ title: 'Test Form',
+ display: 'form',
+ name: 'testForm',
+ path: 'testform',
+ project: '5d1f50939cf719592fa10249',
+ controller: '',
+};
diff --git a/test/forms/validationCalls.js b/test/forms/validationCalls.js
index 6a1478ac42..93a3d3d134 100644
--- a/test/forms/validationCalls.js
+++ b/test/forms/validationCalls.js
@@ -3,113 +3,119 @@ import assert from 'power-assert';
import Harness from '../harness';
export default {
- title: 'Form Validation Test',
- /* eslint-disable */
- form: {
- "components": [
- {
- "label": "validationCall Text 1",
- "allowMultipleMasks": false,
- "showWordCount": false,
- "showCharCount": false,
- "tableView": true,
- "alwaysEnabled": false,
- "type": "textfield",
- "input": true,
- "key": "textField",
- "defaultValue": "",
- "validate": {
- "custom": "console.log('1');\nvalid = true;",
- "unique": false,
- "customMessage": "",
- "json": ""
- },
- "inputFormat": "plain",
- "encrypted": false
- },
- {
- "label": "validationCall Number 1",
- "mask": false,
- "tableView": true,
- "alwaysEnabled": false,
- "type": "number",
- "input": true,
- "key": "number",
- "validate": {
- "custom": "console.log('2');\nvalid = true;",
- "customMessage": "",
- "json": ""
- },
- "delimiter": false,
- "requireDecimal": false,
- "encrypted": false,
- "properties": {},
- "tags": []
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "theme": "primary",
- "input": true,
- "tableView": true
- }
- ]
- },
- /* eslint-enable */
- tests: {
- 'validationCall Text 1 change should not trigger number validation'(form, done) {
- const [textfield, number] = form.components;
- const textCheckSpy = sinon.spy(textfield, 'checkValidity');
- const textEvalSpy = sinon.spy(textfield, 'evaluate');
- const numberCheckSpy = sinon.spy(number, 'checkValidity');
- const numberEvalSpy = sinon.spy(number, 'evaluate');
+ title: 'Form Validation Test',
+ /* eslint-disable */
+ form: {
+ components: [
+ {
+ label: 'validationCall Text 1',
+ allowMultipleMasks: false,
+ showWordCount: false,
+ showCharCount: false,
+ tableView: true,
+ alwaysEnabled: false,
+ type: 'textfield',
+ input: true,
+ key: 'textField',
+ defaultValue: '',
+ validate: {
+ custom: "console.log('1');\nvalid = true;",
+ unique: false,
+ customMessage: '',
+ json: '',
+ },
+ inputFormat: 'plain',
+ encrypted: false,
+ },
+ {
+ label: 'validationCall Number 1',
+ mask: false,
+ tableView: true,
+ alwaysEnabled: false,
+ type: 'number',
+ input: true,
+ key: 'number',
+ validate: {
+ custom: "console.log('2');\nvalid = true;",
+ customMessage: '',
+ json: '',
+ },
+ delimiter: false,
+ requireDecimal: false,
+ encrypted: false,
+ properties: {},
+ tags: [],
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ theme: 'primary',
+ input: true,
+ tableView: true,
+ },
+ ],
+ },
+ /* eslint-enable */
+ tests: {
+ 'validationCall Text 1 change should not trigger number validation'(
+ form,
+ done,
+ ) {
+ const [textfield, number] = form.components;
+ const textCheckSpy = sinon.spy(textfield, 'checkValidity');
+ const textEvalSpy = sinon.spy(textfield, 'evaluate');
+ const numberCheckSpy = sinon.spy(number, 'checkValidity');
+ const numberEvalSpy = sinon.spy(number, 'evaluate');
- Harness.setInputValue(textfield, 'data[textField]', 'a');
+ Harness.setInputValue(textfield, 'data[textField]', 'a');
- setTimeout(() => {
- assert.equal(textCheckSpy.callCount, 2);
- assert.equal(textEvalSpy.callCount, 1);
- assert.equal(numberCheckSpy.callCount, 2);
- assert.equal(numberEvalSpy.callCount, 0);
- done();
- }, 250);
- },
- 'validationCall Number 1 change should not trigger text validation'(form, done) {
- const [textfield, number] = form.components;
- const textCheckSpy = sinon.spy(textfield, 'checkValidity');
- const textEvalSpy = sinon.spy(textfield, 'evaluate');
- const numberCheckSpy = sinon.spy(number, 'checkValidity');
- const numberEvalSpy = sinon.spy(number, 'evaluate');
+ setTimeout(() => {
+ assert.equal(textCheckSpy.callCount, 2);
+ assert.equal(textEvalSpy.callCount, 1);
+ assert.equal(numberCheckSpy.callCount, 2);
+ assert.equal(numberEvalSpy.callCount, 0);
+ done();
+ }, 250);
+ },
+ 'validationCall Number 1 change should not trigger text validation'(
+ form,
+ done,
+ ) {
+ const [textfield, number] = form.components;
+ const textCheckSpy = sinon.spy(textfield, 'checkValidity');
+ const textEvalSpy = sinon.spy(textfield, 'evaluate');
+ const numberCheckSpy = sinon.spy(number, 'checkValidity');
+ const numberEvalSpy = sinon.spy(number, 'evaluate');
- Harness.setInputValue(number, 'data[number]', 1);
+ Harness.setInputValue(number, 'data[number]', 1);
- setTimeout(() => {
- assert.equal(textCheckSpy.callCount, 2);
- assert.equal(textEvalSpy.callCount, 0);
- assert.equal(numberCheckSpy.callCount, 2);
- assert.equal(numberEvalSpy.callCount, 1);
- done();
- }, 250);
- },
- 'All validations should trigger when fileds are touched.'(form, done) {
- const [textfield, number] = form.components;
- const textCheckSpy = sinon.spy(textfield, 'checkValidity');
- const textEvalSpy = sinon.spy(textfield, 'evaluate');
- const numberCheckSpy = sinon.spy(number, 'checkValidity');
- const numberEvalSpy = sinon.spy(number, 'evaluate');
+ setTimeout(() => {
+ assert.equal(textCheckSpy.callCount, 2);
+ assert.equal(textEvalSpy.callCount, 0);
+ assert.equal(numberCheckSpy.callCount, 2);
+ assert.equal(numberEvalSpy.callCount, 1);
+ done();
+ }, 250);
+ },
+ 'All validations should trigger when fileds are touched.'(form, done) {
+ const [textfield, number] = form.components;
+ const textCheckSpy = sinon.spy(textfield, 'checkValidity');
+ const textEvalSpy = sinon.spy(textfield, 'evaluate');
+ const numberCheckSpy = sinon.spy(number, 'checkValidity');
+ const numberEvalSpy = sinon.spy(number, 'evaluate');
- Harness.setInputValue(textfield, 'data[textField]', 'a');
- Harness.setInputValue(number, 'data[number]', 1);
+ Harness.setInputValue(textfield, 'data[textField]', 'a');
+ Harness.setInputValue(number, 'data[number]', 1);
- setTimeout(() => {
- assert.equal(textCheckSpy.callCount, 2);
- assert.equal(textEvalSpy.callCount, 1);
- assert.equal(numberCheckSpy.callCount, 2);
- assert.equal(numberEvalSpy.callCount, 1);
- done();
- }, 250);
- }
- }
+ setTimeout(() => {
+ assert.equal(textCheckSpy.callCount, 2);
+ assert.equal(textEvalSpy.callCount, 1);
+ assert.equal(numberCheckSpy.callCount, 2);
+ assert.equal(numberEvalSpy.callCount, 1);
+ done();
+ }, 250);
+ },
+ },
};
diff --git a/test/forms/wizardChildForm.js b/test/forms/wizardChildForm.js
index d7c6b8a109..bb4d2ab2e7 100644
--- a/test/forms/wizardChildForm.js
+++ b/test/forms/wizardChildForm.js
@@ -1,82 +1,82 @@
export default {
- '_id': '605aef5b8363cd1d20e40be7',
- 'type': 'form',
- 'tags': [],
- 'owner': '6038bed737595d104cfc358a',
- 'components': [
- {
- 'title': 'Child Page 1',
- 'breadcrumbClickable': true,
- 'buttonSettings': {
- 'previous': true,
- 'cancel': true,
- 'next': true
- },
- 'scrollToTop': false,
- 'collapsible': false,
- 'key': 'childPage1',
- 'type': 'panel',
- 'label': 'Page 1',
- 'components': [
+ _id: '605aef5b8363cd1d20e40be7',
+ type: 'form',
+ tags: [],
+ owner: '6038bed737595d104cfc358a',
+ components: [
{
- 'label': 'Text Field',
- 'tableView': true,
- 'key': 'textField',
- 'type': 'textfield',
- 'input': true
- }
- ],
- 'input': false,
- 'tableView': false
- },
- {
- 'title': 'Child Page 2',
- 'breadcrumbClickable': true,
- 'buttonSettings': {
- 'previous': true,
- 'cancel': true,
- 'next': true
- },
- 'scrollToTop': false,
- 'collapsible': false,
- 'key': 'childPage2',
- 'type': 'panel',
- 'label': 'Child Page 2',
- 'components': [
+ title: 'Child Page 1',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'childPage1',
+ type: 'panel',
+ label: 'Page 1',
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
{
- 'label': 'Text Field',
- 'tableView': true,
- 'key': 'textField1',
- 'type': 'textfield',
- 'input': true
- }
- ],
- 'input': false,
- 'tableView': false
- }
- ],
- 'revisions': '',
- '_vid': 0,
- 'title': 'Child-Wizard',
- 'display': 'wizard',
- 'access': [
- {
- 'roles': [
- '6038c83637595d104cfc3594',
- '6038c83637595d104cfc3595',
- '6038c83637595d104cfc3596'
- ],
- 'type': 'read_all'
- }
- ],
- 'submissionAccess': [],
- 'controller': '',
- 'properties': {},
- 'settings': {},
- 'name': 'childWizard',
- 'path': 'childwizard',
- 'project': '6038c83637595d104cfc3593',
- 'created': '2021-03-24T07:50:51.842Z',
- 'modified': '2021-03-24T07:50:51.855Z',
- 'machineName': 'dqroghuntybetsh:childWizard'
+ title: 'Child Page 2',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'childPage2',
+ type: 'panel',
+ label: 'Child Page 2',
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField1',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'Child-Wizard',
+ display: 'wizard',
+ access: [
+ {
+ roles: [
+ '6038c83637595d104cfc3594',
+ '6038c83637595d104cfc3595',
+ '6038c83637595d104cfc3596',
+ ],
+ type: 'read_all',
+ },
+ ],
+ submissionAccess: [],
+ controller: '',
+ properties: {},
+ settings: {},
+ name: 'childWizard',
+ path: 'childwizard',
+ project: '6038c83637595d104cfc3593',
+ created: '2021-03-24T07:50:51.842Z',
+ modified: '2021-03-24T07:50:51.855Z',
+ machineName: 'dqroghuntybetsh:childWizard',
};
diff --git a/test/forms/wizardConditionalPages.d.ts b/test/forms/wizardConditionalPages.d.ts
index 907f65945b..40d7605b4c 100644
--- a/test/forms/wizardConditionalPages.d.ts
+++ b/test/forms/wizardConditionalPages.d.ts
@@ -3,70 +3,74 @@ declare namespace _default {
const type: string;
const tags: never[];
const owner: string;
- const components: ({
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- defaultValue: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- breadcrumbClickable?: undefined;
- buttonSettings?: undefined;
- collapsible?: undefined;
- conditional?: undefined;
- } | {
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- breadcrumbClickable?: undefined;
- buttonSettings?: undefined;
- collapsible?: undefined;
- conditional?: undefined;
- } | {
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- collapsible: boolean;
- tableView: boolean;
- key: string;
- conditional: {
- show: boolean;
- when: string;
- eq: string;
- };
- type: string;
- label: string;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- })[];
+ const components: (
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ defaultValue: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ breadcrumbClickable?: undefined;
+ buttonSettings?: undefined;
+ collapsible?: undefined;
+ conditional?: undefined;
+ }
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ breadcrumbClickable?: undefined;
+ buttonSettings?: undefined;
+ collapsible?: undefined;
+ conditional?: undefined;
+ }
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ collapsible: boolean;
+ tableView: boolean;
+ key: string;
+ conditional: {
+ show: boolean;
+ when: string;
+ eq: string;
+ };
+ type: string;
+ label: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ }
+ )[];
const revisions: string;
const _vid: number;
const title: string;
diff --git a/test/forms/wizardConditionalPages.js b/test/forms/wizardConditionalPages.js
index 114d600119..8afacc4eb5 100644
--- a/test/forms/wizardConditionalPages.js
+++ b/test/forms/wizardConditionalPages.js
@@ -1,96 +1,96 @@
export default {
- '_id': '5f47eb138aeb8509a99f61d6',
- 'type': 'form',
- 'tags': [],
- 'owner': '5e7d0c4ddae30a69f1c75eee',
- 'components': [
- {
- 'title': 'Page 1',
- 'label': 'Page 1',
- 'type': 'panel',
- 'key': 'page1',
- 'components': [
+ _id: '5f47eb138aeb8509a99f61d6',
+ type: 'form',
+ tags: [],
+ owner: '5e7d0c4ddae30a69f1c75eee',
+ components: [
{
- 'label': 'A',
- 'tableView': false,
- 'key': 'a',
- 'type': 'checkbox',
- 'input': true,
- 'defaultValue': false
- }
- ],
- 'input': false,
- 'tableView': false
- },
- {
- 'title': 'Page 2',
- 'label': 'Page 2',
- 'type': 'panel',
- 'key': 'page2',
- 'components': [
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'A',
+ tableView: false,
+ key: 'a',
+ type: 'checkbox',
+ input: true,
+ defaultValue: false,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
{
- 'label': 'B',
- 'tableView': true,
- 'key': 'b',
- 'type': 'textfield',
- 'input': true
- }
- ],
- 'input': false,
- 'tableView': false
- },
- {
- 'title': 'Page 3',
- 'breadcrumbClickable': true,
- 'buttonSettings': {
- 'previous': true,
- 'cancel': true,
- 'next': true
- },
- 'collapsible': false,
- 'tableView': false,
- 'key': 'page3',
- 'conditional': {
- 'show': true,
- 'when': 'a',
- 'eq': 'true'
- },
- 'type': 'panel',
- 'label': 'Page 3',
- 'components': [
+ title: 'Page 2',
+ label: 'Page 2',
+ type: 'panel',
+ key: 'page2',
+ components: [
+ {
+ label: 'B',
+ tableView: true,
+ key: 'b',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
{
- 'label': 'C',
- 'tableView': true,
- 'key': 'c',
- 'type': 'textfield',
- 'input': true
- }
- ],
- 'input': false
- }
- ],
- 'revisions': '',
- '_vid': 0,
- 'title': 'Conditional Wizard Test',
- 'display': 'wizard',
- 'access': [
- {
- 'roles': [
- '5f47eadc8aeb8509a99f61b6',
- '5f47eadc8aeb8509a99f61b7',
- '5f47eadc8aeb8509a99f61b8'
- ],
- 'type': 'read_all'
- }
- ],
- 'submissionAccess': [],
- 'controller': '',
- 'properties': {},
- 'settings': {},
- 'name': 'conditionalWizardTest',
- 'path': 'conditionalwizardtest',
- 'project': '5f47eadc8aeb8509a99f61b5',
- 'created': '2020-08-27T17:19:15.128Z',
- 'modified': '2020-08-27T17:19:15.131Z',
- 'machineName': 'ywvqkdghljvoegd:conditionalWizardTest'
+ title: 'Page 3',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ collapsible: false,
+ tableView: false,
+ key: 'page3',
+ conditional: {
+ show: true,
+ when: 'a',
+ eq: 'true',
+ },
+ type: 'panel',
+ label: 'Page 3',
+ components: [
+ {
+ label: 'C',
+ tableView: true,
+ key: 'c',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'Conditional Wizard Test',
+ display: 'wizard',
+ access: [
+ {
+ roles: [
+ '5f47eadc8aeb8509a99f61b6',
+ '5f47eadc8aeb8509a99f61b7',
+ '5f47eadc8aeb8509a99f61b8',
+ ],
+ type: 'read_all',
+ },
+ ],
+ submissionAccess: [],
+ controller: '',
+ properties: {},
+ settings: {},
+ name: 'conditionalWizardTest',
+ path: 'conditionalwizardtest',
+ project: '5f47eadc8aeb8509a99f61b5',
+ created: '2020-08-27T17:19:15.128Z',
+ modified: '2020-08-27T17:19:15.131Z',
+ machineName: 'ywvqkdghljvoegd:conditionalWizardTest',
};
diff --git a/test/forms/wizardForHtmlRenderModeTest.d.ts b/test/forms/wizardForHtmlRenderModeTest.d.ts
index f19ec2b03b..a9ad7c614e 100644
--- a/test/forms/wizardForHtmlRenderModeTest.d.ts
+++ b/test/forms/wizardForHtmlRenderModeTest.d.ts
@@ -5,307 +5,310 @@ declare namespace _default {
export default _default;
declare namespace form {
const type: string;
- const components: ({
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- labelPosition: string;
- placeholder: string;
- description: string;
- tooltip: string;
- prefix: string;
- suffix: string;
- widget: {
- type: string;
- };
- customClass: string;
- tabindex: string;
- autocomplete: string;
- hidden: boolean;
- hideLabel: boolean;
- mask: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- multiple: boolean;
- persistent: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- protected: boolean;
- dbIndex: boolean;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- min: string;
- max: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- step: string;
- integer: string;
- };
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- input: boolean;
- unique: boolean;
- refreshOn: string;
- dataGridLabel: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- allowMultipleMasks: boolean;
- id: string;
- defaultValue: null;
- }[];
- input: boolean;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- tableView: boolean;
- modalEdit: boolean;
- dataGridLabel: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- widget: null;
- attributes: {};
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- };
- overlay: {
- style: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- properties: {};
- allowMultipleMasks: boolean;
- tree: boolean;
- theme: string;
- breadcrumb: string;
- id: string;
- } | {
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- labelPosition: string;
- placeholder: string;
- description: string;
- tooltip: string;
- prefix: string;
- suffix: string;
- widget: {
- type: string;
- };
- inputMask: string;
- allowMultipleMasks: boolean;
- customClass: string;
- tabindex: string;
- autocomplete: string;
- hidden: boolean;
- hideLabel: boolean;
- showWordCount: boolean;
- showCharCount: boolean;
- mask: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- multiple: boolean;
- persistent: boolean;
- inputFormat: string;
- protected: boolean;
- dbIndex: boolean;
- case: string;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- pattern: string;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- minLength: string;
- maxLength: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- unique: boolean;
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- input: boolean;
- refreshOn: string;
- dataGridLabel: boolean;
- inputType: string;
- id: string;
- defaultValue: null;
- }[];
- input: boolean;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- tableView: boolean;
- modalEdit: boolean;
- dataGridLabel: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- widget: null;
- attributes: {};
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- };
- overlay: {
- style: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- properties: {};
- allowMultipleMasks: boolean;
- tree: boolean;
- theme: string;
- breadcrumb: string;
- id: string;
- })[];
+ const components: (
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ labelPosition: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ prefix: string;
+ suffix: string;
+ widget: {
+ type: string;
+ };
+ customClass: string;
+ tabindex: string;
+ autocomplete: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ mask: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ multiple: boolean;
+ persistent: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ protected: boolean;
+ dbIndex: boolean;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ min: string;
+ max: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ step: string;
+ integer: string;
+ };
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ input: boolean;
+ unique: boolean;
+ refreshOn: string;
+ dataGridLabel: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ allowMultipleMasks: boolean;
+ id: string;
+ defaultValue: null;
+ }[];
+ input: boolean;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ tableView: boolean;
+ modalEdit: boolean;
+ dataGridLabel: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ widget: null;
+ attributes: {};
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ };
+ overlay: {
+ style: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ properties: {};
+ allowMultipleMasks: boolean;
+ tree: boolean;
+ theme: string;
+ breadcrumb: string;
+ id: string;
+ }
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ labelPosition: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ prefix: string;
+ suffix: string;
+ widget: {
+ type: string;
+ };
+ inputMask: string;
+ allowMultipleMasks: boolean;
+ customClass: string;
+ tabindex: string;
+ autocomplete: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ showWordCount: boolean;
+ showCharCount: boolean;
+ mask: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ multiple: boolean;
+ persistent: boolean;
+ inputFormat: string;
+ protected: boolean;
+ dbIndex: boolean;
+ case: string;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ pattern: string;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ minLength: string;
+ maxLength: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ unique: boolean;
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ input: boolean;
+ refreshOn: string;
+ dataGridLabel: boolean;
+ inputType: string;
+ id: string;
+ defaultValue: null;
+ }[];
+ input: boolean;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ tableView: boolean;
+ modalEdit: boolean;
+ dataGridLabel: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ widget: null;
+ attributes: {};
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ };
+ overlay: {
+ style: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ properties: {};
+ allowMultipleMasks: boolean;
+ tree: boolean;
+ theme: string;
+ breadcrumb: string;
+ id: string;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/wizardForHtmlRenderModeTest.js b/test/forms/wizardForHtmlRenderModeTest.js
index 04c5dcb486..6ba73371a8 100644
--- a/test/forms/wizardForHtmlRenderModeTest.js
+++ b/test/forms/wizardForHtmlRenderModeTest.js
@@ -1,320 +1,327 @@
const form = {
- "type": "form",
- "components": [{
- "title": "Page 1",
- "label": "Page 1",
- "type": "panel",
- "key": "page1",
- "components": [{
- "label": "Number",
- "labelPosition": "top",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "prefix": "",
- "suffix": "",
- "widget": {
- "type": "input"
- },
- "customClass": "",
- "tabindex": "",
- "autocomplete": "",
- "hidden": false,
- "hideLabel": false,
- "mask": false,
- "autofocus": false,
- "spellcheck": true,
- "disabled": false,
- "tableView": false,
- "modalEdit": false,
- "multiple": false,
- "persistent": true,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "protected": false,
- "dbIndex": false,
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "min": "",
- "max": "",
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "step": "any",
- "integer": ""
- },
- "errorLabel": "",
- "key": "number",
- "tags": [],
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "number",
- "input": true,
- "unique": false,
- "refreshOn": "",
- "dataGridLabel": false,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "id": "exvx54",
- "defaultValue": null
- }],
- "input": false,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": false,
- "refreshOn": "",
- "redrawOn": "",
- "tableView": false,
- "modalEdit": false,
- "dataGridLabel": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": null,
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "tree": false,
- "theme": "default",
- "breadcrumb": "default",
- "id": "er8pwjk"
- }, {
- "title": "Page 2",
- "label": "Page 2",
- "type": "panel",
- "key": "page2",
- "components": [{
- "label": "Text Field",
- "labelPosition": "top",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "prefix": "",
- "suffix": "",
- "widget": {
- "type": "input"
- },
- "inputMask": "",
- "allowMultipleMasks": false,
- "customClass": "",
- "tabindex": "",
- "autocomplete": "",
- "hidden": false,
- "hideLabel": false,
- "showWordCount": false,
- "showCharCount": false,
- "mask": false,
- "autofocus": false,
- "spellcheck": true,
- "disabled": false,
- "tableView": true,
- "modalEdit": false,
- "multiple": false,
- "persistent": true,
- "inputFormat": "plain",
- "protected": false,
- "dbIndex": false,
- "case": "",
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "pattern": "",
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "minLength": "",
- "maxLength": "",
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "unique": false,
- "errorLabel": "",
- "key": "textField",
- "tags": [],
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "textfield",
- "input": true,
- "refreshOn": "",
- "dataGridLabel": false,
- "inputType": "text",
- "id": "ejmj41t",
- "defaultValue": null
- }],
- "input": false,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": false,
- "refreshOn": "",
- "redrawOn": "",
- "tableView": false,
- "modalEdit": false,
- "dataGridLabel": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": null,
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "tree": false,
- "theme": "default",
- "breadcrumb": "default",
- "id": "ew0o7w"
- }],
- "title": "wizard first page subm test",
- "display": "wizard",
- "name": "wizardFirstPageSubmTest",
- "path": "wizardfirstpagesubmtest",
+ type: 'form',
+ components: [
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Number',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ customClass: '',
+ tabindex: '',
+ autocomplete: '',
+ hidden: false,
+ hideLabel: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: false,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ min: '',
+ max: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ step: 'any',
+ integer: '',
+ },
+ errorLabel: '',
+ key: 'number',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'number',
+ input: true,
+ unique: false,
+ refreshOn: '',
+ dataGridLabel: false,
+ showCharCount: false,
+ showWordCount: false,
+ allowMultipleMasks: false,
+ id: 'exvx54',
+ defaultValue: null,
+ },
+ ],
+ input: false,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ dataGridLabel: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: null,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ tree: false,
+ theme: 'default',
+ breadcrumb: 'default',
+ id: 'er8pwjk',
+ },
+ {
+ title: 'Page 2',
+ label: 'Page 2',
+ type: 'panel',
+ key: 'page2',
+ components: [
+ {
+ label: 'Text Field',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ inputMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ autocomplete: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ pattern: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength: '',
+ maxLength: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'textField',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ dataGridLabel: false,
+ inputType: 'text',
+ id: 'ejmj41t',
+ defaultValue: null,
+ },
+ ],
+ input: false,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ dataGridLabel: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: null,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ tree: false,
+ theme: 'default',
+ breadcrumb: 'default',
+ id: 'ew0o7w',
+ },
+ ],
+ title: 'wizard first page subm test',
+ display: 'wizard',
+ name: 'wizardFirstPageSubmTest',
+ path: 'wizardfirstpagesubmtest',
};
const submission = {
- data: {
- number: 111,
- textField: 'test'
- }
+ data: {
+ number: 111,
+ textField: 'test',
+ },
};
export default {
- form: form,
- submission: submission,
+ form: form,
+ submission: submission,
};
diff --git a/test/forms/wizardNavigateOrSaveOnEnter.d.ts b/test/forms/wizardNavigateOrSaveOnEnter.d.ts
index e059dca74d..83b08996ef 100644
--- a/test/forms/wizardNavigateOrSaveOnEnter.d.ts
+++ b/test/forms/wizardNavigateOrSaveOnEnter.d.ts
@@ -4,37 +4,40 @@ declare namespace _default {
export default _default;
declare namespace form {
const display: string;
- const components: ({
- title: string;
- label: string;
- type: string;
- key: string;
- navigateOnEnter: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- saveOnEnter?: undefined;
- } | {
- title: string;
- label: string;
- type: string;
- key: string;
- saveOnEnter: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- navigateOnEnter?: undefined;
- })[];
+ const components: (
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ navigateOnEnter: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ saveOnEnter?: undefined;
+ }
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ saveOnEnter: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ navigateOnEnter?: undefined;
+ }
+ )[];
}
diff --git a/test/forms/wizardNavigateOrSaveOnEnter.js b/test/forms/wizardNavigateOrSaveOnEnter.js
index 494f15eb54..31dbbed00d 100644
--- a/test/forms/wizardNavigateOrSaveOnEnter.js
+++ b/test/forms/wizardNavigateOrSaveOnEnter.js
@@ -1,51 +1,61 @@
const form = {
- display: "wizard",
- components: [{
- title: "Page 1",
- label: "Page 1",
- type: "panel",
- key: "page1",
- navigateOnEnter: true,
- components: [{
- label: "Text Field",
- tableView: true,
- key: "textField",
- type: "textfield",
- input: true
- }],
- input: false,
- tableView: false
- }, {
- title: "Page 2",
- label: "Page 2",
- type: "panel",
- key: "page2",
- navigateOnEnter: true,
- components: [{
- label: "Text Field",
- tableView: true,
- key: "textField1",
- type: "textfield",
- input: true
- }],
- input: false,
- tableView: false
- }, {
- title: "Page 3",
- label: "Page 3",
- type: "panel",
- key: "page3",
- saveOnEnter: true,
- components: [{
- label: "Text Field",
- tableView: true,
- key: "textField2",
- type: "textfield",
- input: true
- }],
- input: false,
- tableView: false
- }]
+ display: 'wizard',
+ components: [
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ navigateOnEnter: true,
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ {
+ title: 'Page 2',
+ label: 'Page 2',
+ type: 'panel',
+ key: 'page2',
+ navigateOnEnter: true,
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField1',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ {
+ title: 'Page 3',
+ label: 'Page 3',
+ type: 'panel',
+ key: 'page3',
+ saveOnEnter: true,
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField2',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
};
export default { form };
diff --git a/test/forms/wizardParentForm.js b/test/forms/wizardParentForm.js
index 3e41f74740..6ba871f9d8 100644
--- a/test/forms/wizardParentForm.js
+++ b/test/forms/wizardParentForm.js
@@ -1,225 +1,225 @@
export default {
- '_id': '605aefc88363cd1d20e40bee',
- 'type': 'form',
- 'tags': [],
- 'owner': '6038bed737595d104cfc358a',
- 'components': [
- {
- 'title': 'Page 1',
- 'label': 'Page 1',
- 'type': 'panel',
- 'key': 'page1',
- 'components': [
- {
- 'label': 'Radio',
- 'optionsLabelPosition': 'right',
- 'inline': false,
- 'tableView': false,
- 'values': [
- {
- 'label': 'yes',
- 'value': 'yes',
- 'shortcut': ''
+ _id: '605aefc88363cd1d20e40bee',
+ type: 'form',
+ tags: [],
+ owner: '6038bed737595d104cfc358a',
+ components: [
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Radio',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: false,
+ values: [
+ {
+ label: 'yes',
+ value: 'yes',
+ shortcut: '',
+ },
+ {
+ label: 'no',
+ value: 'no',
+ shortcut: '',
+ },
+ ],
+ validate: {
+ onlyAvailableItems: false,
+ },
+ key: 'radio1',
+ type: 'radio',
+ input: true,
+ },
+ {
+ label: 'Checkbox',
+ tableView: false,
+ key: 'checkbox',
+ type: 'checkbox',
+ input: true,
+ defaultValue: false,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ {
+ title: 'Page 2',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'page2',
+ conditional: {
+ show: true,
+ when: 'radio1',
+ eq: 'yes',
},
- {
- 'label': 'no',
- 'value': 'no',
- 'shortcut': ''
- }
- ],
- 'validate': {
- 'onlyAvailableItems': false
- },
- 'key': 'radio1',
- 'type': 'radio',
- 'input': true
- },
- {
- 'label': 'Checkbox',
- 'tableView': false,
- 'key': 'checkbox',
- 'type': 'checkbox',
- 'input': true,
- 'defaultValue': false
- }
- ],
- 'input': false,
- 'tableView': false
- },
- {
- 'title': 'Page 2',
- 'breadcrumbClickable': true,
- 'buttonSettings': {
- 'previous': true,
- 'cancel': true,
- 'next': true
- },
- 'scrollToTop': false,
- 'collapsible': false,
- 'key': 'page2',
- 'conditional': {
- 'show': true,
- 'when': 'radio1',
- 'eq': 'yes'
- },
- 'type': 'panel',
- 'label': 'Page 2',
- 'components': [
- {
- 'label': 'Text Field',
- 'tableView': true,
- 'key': 'textFieldNearForm',
- 'conditional': {
- 'show': true,
- 'when': 'checkbox',
- 'eq': 'true'
- },
- 'type': 'textfield',
- 'input': true
- },
- {
- 'label': 'Form',
- 'tableView': true,
- // 'form': '605aef5b8363cd1d20e40be7',
- 'useOriginalRevision': false,
- 'key': 'formNested',
- 'type': 'form',
- 'input': true
- }
- ],
- 'input': false,
- 'tableView': false
- },
- {
- 'title': 'Page 3',
- 'label': 'Page 3',
- 'type': 'panel',
- 'key': 'page3',
- 'components': [
- {
- 'label': 'Number',
- 'mask': false,
- 'spellcheck': true,
- 'tableView': false,
- 'delimiter': false,
- 'requireDecimal': false,
- 'inputFormat': 'plain',
- 'key': 'number',
- 'type': 'number',
- 'input': true
- }
- ],
- 'input': false,
- 'tableView': false
- }
- ],
- 'revisions': '',
- '_vid': 0,
- 'title': 'Parent-Wizard',
- 'display': 'wizard',
- 'access': [
- {
- 'roles': [],
- 'type': 'create_own'
- },
- {
- 'roles': [],
- 'type': 'create_all'
- },
- {
- 'roles': [],
- 'type': 'read_own'
- },
- {
- 'roles': [
- '6038c83637595d104cfc3594',
- '6038c83637595d104cfc3595',
- '6038c83637595d104cfc3596'
- ],
- 'type': 'read_all'
- },
- {
- 'roles': [],
- 'type': 'update_own'
- },
- {
- 'roles': [],
- 'type': 'update_all'
- },
- {
- 'roles': [],
- 'type': 'delete_own'
- },
- {
- 'roles': [],
- 'type': 'delete_all'
- },
- {
- 'roles': [],
- 'type': 'team_read'
- },
- {
- 'roles': [],
- 'type': 'team_write'
- },
- {
- 'roles': [],
- 'type': 'team_admin'
- }
- ],
- 'submissionAccess': [
- {
- 'roles': [],
- 'type': 'create_own'
- },
- {
- 'roles': [],
- 'type': 'create_all'
- },
- {
- 'roles': [],
- 'type': 'read_own'
- },
- {
- 'roles': [],
- 'type': 'read_all'
- },
- {
- 'roles': [],
- 'type': 'update_own'
- },
- {
- 'roles': [],
- 'type': 'update_all'
- },
- {
- 'roles': [],
- 'type': 'delete_own'
- },
- {
- 'roles': [],
- 'type': 'delete_all'
- },
- {
- 'roles': [],
- 'type': 'team_read'
- },
- {
- 'roles': [],
- 'type': 'team_write'
- },
- {
- 'roles': [],
- 'type': 'team_admin'
- }
- ],
- 'controller': '',
- 'properties': {},
- 'settings': {},
- 'name': 'parentWizard',
- 'path': 'parentwizard',
- 'project': '6038c83637595d104cfc3593',
- 'created': '2021-03-24T07:52:40.971Z',
- 'modified': '2021-03-25T07:50:31.265Z',
- 'machineName': 'dqroghuntybetsh:parentWizard'
+ type: 'panel',
+ label: 'Page 2',
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textFieldNearForm',
+ conditional: {
+ show: true,
+ when: 'checkbox',
+ eq: 'true',
+ },
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Form',
+ tableView: true,
+ // 'form': '605aef5b8363cd1d20e40be7',
+ useOriginalRevision: false,
+ key: 'formNested',
+ type: 'form',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ {
+ title: 'Page 3',
+ label: 'Page 3',
+ type: 'panel',
+ key: 'page3',
+ components: [
+ {
+ label: 'Number',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'Parent-Wizard',
+ display: 'wizard',
+ access: [
+ {
+ roles: [],
+ type: 'create_own',
+ },
+ {
+ roles: [],
+ type: 'create_all',
+ },
+ {
+ roles: [],
+ type: 'read_own',
+ },
+ {
+ roles: [
+ '6038c83637595d104cfc3594',
+ '6038c83637595d104cfc3595',
+ '6038c83637595d104cfc3596',
+ ],
+ type: 'read_all',
+ },
+ {
+ roles: [],
+ type: 'update_own',
+ },
+ {
+ roles: [],
+ type: 'update_all',
+ },
+ {
+ roles: [],
+ type: 'delete_own',
+ },
+ {
+ roles: [],
+ type: 'delete_all',
+ },
+ {
+ roles: [],
+ type: 'team_read',
+ },
+ {
+ roles: [],
+ type: 'team_write',
+ },
+ {
+ roles: [],
+ type: 'team_admin',
+ },
+ ],
+ submissionAccess: [
+ {
+ roles: [],
+ type: 'create_own',
+ },
+ {
+ roles: [],
+ type: 'create_all',
+ },
+ {
+ roles: [],
+ type: 'read_own',
+ },
+ {
+ roles: [],
+ type: 'read_all',
+ },
+ {
+ roles: [],
+ type: 'update_own',
+ },
+ {
+ roles: [],
+ type: 'update_all',
+ },
+ {
+ roles: [],
+ type: 'delete_own',
+ },
+ {
+ roles: [],
+ type: 'delete_all',
+ },
+ {
+ roles: [],
+ type: 'team_read',
+ },
+ {
+ roles: [],
+ type: 'team_write',
+ },
+ {
+ roles: [],
+ type: 'team_admin',
+ },
+ ],
+ controller: '',
+ properties: {},
+ settings: {},
+ name: 'parentWizard',
+ path: 'parentwizard',
+ project: '6038c83637595d104cfc3593',
+ created: '2021-03-24T07:52:40.971Z',
+ modified: '2021-03-25T07:50:31.265Z',
+ machineName: 'dqroghuntybetsh:parentWizard',
};
diff --git a/test/forms/wizardPermission.js b/test/forms/wizardPermission.js
index 67c6ea733f..357ef1c54d 100644
--- a/test/forms/wizardPermission.js
+++ b/test/forms/wizardPermission.js
@@ -1,192 +1,192 @@
export default {
- _id: '635a43f6bacc97a571abf412',
- title: 'Test wizard',
- name: 'testWizard',
- path: 'testwizard',
- type: 'form',
- display: 'wizard',
- tags: [],
- access: [
- {
- type: 'create_own',
- roles: [],
- },
- {
- type: 'create_all',
- roles: [],
- },
- {
- type: 'read_own',
- roles: [],
- },
- {
- type: 'read_all',
- roles: [
- '62ead292aeb6eb30ebf49a58',
- '62ead292aeb6eb30ebf49a5d',
- '62ead292aeb6eb30ebf49a62',
- ],
- },
- {
- type: 'update_own',
- roles: [],
- },
- {
- type: 'update_all',
- roles: [],
- },
- {
- type: 'delete_own',
- roles: [],
- },
- {
- type: 'delete_all',
- roles: [],
- },
- {
- type: 'team_read',
- roles: [],
- },
- {
- type: 'team_write',
- roles: [],
- },
- {
- type: 'team_admin',
- roles: [],
- },
- ],
- submissionAccess: [
- {
- type: 'create_own',
- roles: [],
- },
- {
- type: 'create_all',
- roles: ['62ead292aeb6eb30ebf49a5d'],
- },
- {
- type: 'read_own',
- roles: [],
- },
- {
- type: 'read_all',
- roles: [],
- },
- {
- type: 'update_own',
- roles: [],
- },
- {
- type: 'update_all',
- roles: [],
- },
- {
- type: 'delete_own',
- roles: [],
- },
- {
- type: 'delete_all',
- roles: [],
- },
- {
- type: 'team_read',
- roles: [],
- },
- {
- type: 'team_write',
- roles: [],
- },
- {
- type: 'team_admin',
- roles: [],
- },
- ],
- owner: '62e1332c98da5d30a9ea6510',
- components: [
- {
- title: 'Page 1',
- label: 'Page 1',
- type: 'panel',
- key: 'page1',
- components: [
- {
- label: 'Text Field',
- tableView: true,
- key: 'textField',
- type: 'textfield',
- input: true,
- },
- ],
- input: false,
- tableView: false,
- },
- ],
- settings: {},
- properties: {},
- project: '62ead292aeb6eb30ebf49a51',
- controller: '',
- revisions: '',
- submissionRevisions: '',
- _vid: 0,
- created: '2022-10-27T08:40:22.643Z',
- modified: '2022-10-27T08:54:42.134Z',
- machineName: 'dixchvckjljeoyb:testWizard',
- fieldMatchAccess: {
- read: [
- {
- formFieldPath: '',
- value: '',
- operator: '$eq',
- valueType: 'string',
- roles: [],
- },
- ],
- write: [
- {
- formFieldPath: '',
- value: '',
- operator: '$eq',
- valueType: 'string',
- roles: [],
- },
- ],
- create: [
- {
- formFieldPath: '',
- value: '',
- operator: '$eq',
- valueType: 'string',
- roles: [],
- },
- ],
- admin: [
- {
- formFieldPath: '',
- value: '',
- operator: '$eq',
- valueType: 'string',
- roles: [],
- },
+ _id: '635a43f6bacc97a571abf412',
+ title: 'Test wizard',
+ name: 'testWizard',
+ path: 'testwizard',
+ type: 'form',
+ display: 'wizard',
+ tags: [],
+ access: [
+ {
+ type: 'create_own',
+ roles: [],
+ },
+ {
+ type: 'create_all',
+ roles: [],
+ },
+ {
+ type: 'read_own',
+ roles: [],
+ },
+ {
+ type: 'read_all',
+ roles: [
+ '62ead292aeb6eb30ebf49a58',
+ '62ead292aeb6eb30ebf49a5d',
+ '62ead292aeb6eb30ebf49a62',
+ ],
+ },
+ {
+ type: 'update_own',
+ roles: [],
+ },
+ {
+ type: 'update_all',
+ roles: [],
+ },
+ {
+ type: 'delete_own',
+ roles: [],
+ },
+ {
+ type: 'delete_all',
+ roles: [],
+ },
+ {
+ type: 'team_read',
+ roles: [],
+ },
+ {
+ type: 'team_write',
+ roles: [],
+ },
+ {
+ type: 'team_admin',
+ roles: [],
+ },
],
- delete: [
- {
- formFieldPath: '',
- value: '',
- operator: '$eq',
- valueType: 'string',
- roles: [],
- },
+ submissionAccess: [
+ {
+ type: 'create_own',
+ roles: [],
+ },
+ {
+ type: 'create_all',
+ roles: ['62ead292aeb6eb30ebf49a5d'],
+ },
+ {
+ type: 'read_own',
+ roles: [],
+ },
+ {
+ type: 'read_all',
+ roles: [],
+ },
+ {
+ type: 'update_own',
+ roles: [],
+ },
+ {
+ type: 'update_all',
+ roles: [],
+ },
+ {
+ type: 'delete_own',
+ roles: [],
+ },
+ {
+ type: 'delete_all',
+ roles: [],
+ },
+ {
+ type: 'team_read',
+ roles: [],
+ },
+ {
+ type: 'team_write',
+ roles: [],
+ },
+ {
+ type: 'team_admin',
+ roles: [],
+ },
],
- update: [
- {
- formFieldPath: '',
- value: '',
- operator: '$eq',
- valueType: 'string',
- roles: [],
- },
+ owner: '62e1332c98da5d30a9ea6510',
+ components: [
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
],
- _id: '635a4752bacc97a571abf58c',
- },
+ settings: {},
+ properties: {},
+ project: '62ead292aeb6eb30ebf49a51',
+ controller: '',
+ revisions: '',
+ submissionRevisions: '',
+ _vid: 0,
+ created: '2022-10-27T08:40:22.643Z',
+ modified: '2022-10-27T08:54:42.134Z',
+ machineName: 'dixchvckjljeoyb:testWizard',
+ fieldMatchAccess: {
+ read: [
+ {
+ formFieldPath: '',
+ value: '',
+ operator: '$eq',
+ valueType: 'string',
+ roles: [],
+ },
+ ],
+ write: [
+ {
+ formFieldPath: '',
+ value: '',
+ operator: '$eq',
+ valueType: 'string',
+ roles: [],
+ },
+ ],
+ create: [
+ {
+ formFieldPath: '',
+ value: '',
+ operator: '$eq',
+ valueType: 'string',
+ roles: [],
+ },
+ ],
+ admin: [
+ {
+ formFieldPath: '',
+ value: '',
+ operator: '$eq',
+ valueType: 'string',
+ roles: [],
+ },
+ ],
+ delete: [
+ {
+ formFieldPath: '',
+ value: '',
+ operator: '$eq',
+ valueType: 'string',
+ roles: [],
+ },
+ ],
+ update: [
+ {
+ formFieldPath: '',
+ value: '',
+ operator: '$eq',
+ valueType: 'string',
+ roles: [],
+ },
+ ],
+ _id: '635a4752bacc97a571abf58c',
+ },
};
diff --git a/test/forms/wizardTestForm.d.ts b/test/forms/wizardTestForm.d.ts
index bff6392262..f31bc9ccde 100644
--- a/test/forms/wizardTestForm.d.ts
+++ b/test/forms/wizardTestForm.d.ts
@@ -6,235 +6,252 @@ declare namespace _default {
export default _default;
declare namespace form {
const type: string;
- const components: ({
- title: string;
- label: string;
- type: string;
- key: string;
- input: boolean;
- tableView: boolean;
- components: ({
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- breadcrumbClickable?: undefined;
- buttonSettings?: undefined;
- scrollToTop?: undefined;
- collapsible?: undefined;
- components?: undefined;
- rowDrafts?: undefined;
- } | {
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- scrollToTop: boolean;
- collapsible: boolean;
- key: string;
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: {
- label: string;
- tableView: boolean;
- validate: {
- required: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- }[];
- rowDrafts?: undefined;
- } | {
- label: string;
- tableView: boolean;
- rowDrafts: boolean;
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- data: {
- values: {
+ const components: (
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ input: boolean;
+ tableView: boolean;
+ components: (
+ | {
label: string;
- value: string;
- }[];
- };
- selectThreshold: number;
- validate: {
- onlyAvailableItems: boolean;
- };
- key: string;
- type: string;
- indexeddb: {
- filter: {};
- };
- input: boolean;
- }[];
- breadcrumbClickable?: undefined;
- buttonSettings?: undefined;
- scrollToTop?: undefined;
- collapsible?: undefined;
- })[];
- } | {
- title: string;
- label: string;
- type: string;
- key: string;
- components: ({
- label: string;
- columns: ({
- components: {
- label: string;
- tableView: boolean;
- validate: {
- required: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- hideOnChildrenHidden: boolean;
- defaultValue: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- } | {
- components: {
- label: string;
- displayInTimezone: string;
- format: string;
- tableView: boolean;
- enableMinDateInput: boolean;
- datePicker: {
- disableWeekends: boolean;
- disableWeekdays: boolean;
- };
- enableMaxDateInput: boolean;
- enableTime: boolean;
- timePicker: {
- showMeridian: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- widget: {
+ tableView: boolean;
+ key: string;
type: string;
- displayInTimezone: string;
- locale: string;
- useLocaleSettings: boolean;
- allowInput: boolean;
- mode: string;
- enableTime: boolean;
- noCalendar: boolean;
- format: string;
- hourIncrement: number;
- minuteIncrement: number;
- time_24hr: boolean;
- minDate: null;
- disableWeekends: boolean;
- disableWeekdays: boolean;
- maxDate: null;
- };
- hideOnChildrenHidden: boolean;
- }[];
- width: number;
- offset: number;
- push: number;
- pull: number;
- size: string;
- })[];
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- reorder?: undefined;
- addAnotherPosition?: undefined;
- layoutFixed?: undefined;
- enableRowGroups?: undefined;
- initEmpty?: undefined;
- defaultValue?: undefined;
- components?: undefined;
- } | {
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- tableView: boolean;
- defaultValue: {}[];
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- columns?: undefined;
- })[];
- input: boolean;
- tableView: boolean;
- } | {
- title: string;
- label: string;
- type: string;
- key: string;
- components: ({
- label: string;
- key: string;
- type: string;
- input: boolean;
- tableView: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- } | {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- data: {
- values: {
+ input: boolean;
+ breadcrumbClickable?: undefined;
+ buttonSettings?: undefined;
+ scrollToTop?: undefined;
+ collapsible?: undefined;
+ components?: undefined;
+ rowDrafts?: undefined;
+ }
+ | {
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ scrollToTop: boolean;
+ collapsible: boolean;
+ key: string;
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ rowDrafts?: undefined;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ rowDrafts: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ data: {
+ values: {
+ label: string;
+ value: string;
+ }[];
+ };
+ selectThreshold: number;
+ validate: {
+ onlyAvailableItems: boolean;
+ };
+ key: string;
+ type: string;
+ indexeddb: {
+ filter: {};
+ };
+ input: boolean;
+ }[];
+ breadcrumbClickable?: undefined;
+ buttonSettings?: undefined;
+ scrollToTop?: undefined;
+ collapsible?: undefined;
+ }
+ )[];
+ }
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: (
+ | {
+ label: string;
+ columns: (
+ | {
+ components: {
+ label: string;
+ tableView: boolean;
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ hideOnChildrenHidden: boolean;
+ defaultValue: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ }
+ | {
+ components: {
+ label: string;
+ displayInTimezone: string;
+ format: string;
+ tableView: boolean;
+ enableMinDateInput: boolean;
+ datePicker: {
+ disableWeekends: boolean;
+ disableWeekdays: boolean;
+ };
+ enableMaxDateInput: boolean;
+ enableTime: boolean;
+ timePicker: {
+ showMeridian: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ widget: {
+ type: string;
+ displayInTimezone: string;
+ locale: string;
+ useLocaleSettings: boolean;
+ allowInput: boolean;
+ mode: string;
+ enableTime: boolean;
+ noCalendar: boolean;
+ format: string;
+ hourIncrement: number;
+ minuteIncrement: number;
+ time_24hr: boolean;
+ minDate: null;
+ disableWeekends: boolean;
+ disableWeekdays: boolean;
+ maxDate: null;
+ };
+ hideOnChildrenHidden: boolean;
+ }[];
+ width: number;
+ offset: number;
+ push: number;
+ pull: number;
+ size: string;
+ }
+ )[];
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ reorder?: undefined;
+ addAnotherPosition?: undefined;
+ layoutFixed?: undefined;
+ enableRowGroups?: undefined;
+ initEmpty?: undefined;
+ defaultValue?: undefined;
+ components?: undefined;
+ }
+ | {
label: string;
- value: string;
- }[];
- };
- selectThreshold: number;
- validate: {
- required: boolean;
- onlyAvailableItems: boolean;
- };
- key: string;
- type: string;
- indexeddb: {
- filter: {};
- };
- input: boolean;
- }[];
- })[];
- input: boolean;
- tableView: boolean;
- })[];
+ reorder: boolean;
+ addAnotherPosition: string;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ tableView: boolean;
+ defaultValue: {}[];
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ columns?: undefined;
+ }
+ )[];
+ input: boolean;
+ tableView: boolean;
+ }
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: (
+ | {
+ label: string;
+ key: string;
+ type: string;
+ input: boolean;
+ tableView: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ data: {
+ values: {
+ label: string;
+ value: string;
+ }[];
+ };
+ selectThreshold: number;
+ validate: {
+ required: boolean;
+ onlyAvailableItems: boolean;
+ };
+ key: string;
+ type: string;
+ indexeddb: {
+ filter: {};
+ };
+ input: boolean;
+ }[];
+ }
+ )[];
+ input: boolean;
+ tableView: boolean;
+ }
+ )[];
const revisions: string;
const _vid: number;
const title: string;
diff --git a/test/forms/wizardTestForm.js b/test/forms/wizardTestForm.js
index d03752ff64..6876c6cc80 100644
--- a/test/forms/wizardTestForm.js
+++ b/test/forms/wizardTestForm.js
@@ -1,276 +1,326 @@
const form = {
- 'type': 'form',
- 'components': [{
- 'title': 'Page 1',
- 'label': 'Page 1',
- 'type': 'panel',
- 'key': 'page1',
- 'input': false,
- 'tableView': false,
- 'components': [{
- 'label': 'Tags',
- 'tableView': false,
- 'key': 'tags',
- 'type': 'tags',
- 'input': true
- }, {
- 'breadcrumbClickable': true,
- 'buttonSettings': {
- 'previous': true,
- 'cancel': true,
- 'next': true
- },
- 'scrollToTop': false,
- 'collapsible': false,
- 'key': 'panel',
- 'type': 'panel',
- 'label': 'Panel',
- 'input': false,
- 'tableView': false,
- 'components': [{
- 'label': 'Text Field',
- 'tableView': true,
- 'validate': {
- 'required': true
+ type: 'form',
+ components: [
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Tags',
+ tableView: false,
+ key: 'tags',
+ type: 'tags',
+ input: true,
+ },
+ {
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'panel',
+ type: 'panel',
+ label: 'Panel',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ validate: {
+ required: true,
+ },
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ {
+ label: 'Edit Grid',
+ tableView: false,
+ rowDrafts: false,
+ key: 'editGrid',
+ type: 'editgrid',
+ input: true,
+ components: [
+ {
+ label: 'Select',
+ tableView: true,
+ data: {
+ values: [
+ {
+ label: 'a',
+ value: 'a',
+ },
+ {
+ label: 'b',
+ value: 'b',
+ },
+ {
+ label: 'c',
+ value: 'c',
+ },
+ ],
+ },
+ selectThreshold: 0.3,
+ validate: {
+ onlyAvailableItems: false,
+ },
+ key: 'select',
+ type: 'select',
+ indexeddb: {
+ filter: {},
+ },
+ input: true,
+ },
+ ],
+ },
+ ],
},
- 'key': 'textField',
- 'type': 'textfield',
- 'input': true
- }]
- }, {
- 'label': 'Edit Grid',
- 'tableView': false,
- 'rowDrafts': false,
- 'key': 'editGrid',
- 'type': 'editgrid',
- 'input': true,
- 'components': [{
- 'label': 'Select',
- 'tableView': true,
- 'data': {
- 'values': [{
- 'label': 'a',
- 'value': 'a'
- }, {
- 'label': 'b',
- 'value': 'b'
- }, {
- 'label': 'c',
- 'value': 'c'
- }]
+ {
+ title: 'Page 2',
+ label: 'Page 2',
+ type: 'panel',
+ key: 'page2',
+ components: [
+ {
+ label: 'Columns',
+ columns: [
+ {
+ components: [
+ {
+ label: 'Checkbox',
+ tableView: false,
+ validate: {
+ required: true,
+ },
+ key: 'checkbox',
+ type: 'checkbox',
+ input: true,
+ hideOnChildrenHidden: false,
+ defaultValue: false,
+ },
+ ],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ },
+ {
+ components: [
+ {
+ label: 'Date / Time',
+ displayInTimezone: 'utc',
+ format: 'yyyy-MM-dd',
+ tableView: false,
+ enableMinDateInput: false,
+ datePicker: {
+ disableWeekends: false,
+ disableWeekdays: false,
+ },
+ enableMaxDateInput: false,
+ enableTime: false,
+ timePicker: {
+ showMeridian: false,
+ },
+ key: 'dateTime',
+ type: 'datetime',
+ input: true,
+ widget: {
+ type: 'calendar',
+ displayInTimezone: 'utc',
+ locale: 'en',
+ useLocaleSettings: false,
+ allowInput: true,
+ mode: 'single',
+ enableTime: false,
+ noCalendar: false,
+ format: 'yyyy-MM-dd',
+ hourIncrement: 1,
+ minuteIncrement: 1,
+ time_24hr: true,
+ minDate: null,
+ disableWeekends: false,
+ disableWeekdays: false,
+ maxDate: null,
+ },
+ hideOnChildrenHidden: false,
+ },
+ ],
+ width: 6,
+ offset: 0,
+ push: 0,
+ pull: 0,
+ size: 'md',
+ },
+ ],
+ key: 'columns',
+ type: 'columns',
+ input: false,
+ tableView: false,
+ },
+ {
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ tableView: false,
+ defaultValue: [{}],
+ key: 'dataGrid',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField1',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ ],
+ input: false,
+ tableView: false,
},
- 'selectThreshold': 0.3,
- 'validate': {
- 'onlyAvailableItems': false
+ {
+ title: 'Page 3',
+ label: 'Page 3',
+ type: 'panel',
+ key: 'page3',
+ components: [
+ {
+ label: 'Well',
+ key: 'well1',
+ type: 'well',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Email',
+ tableView: true,
+ key: 'email',
+ type: 'email',
+ input: true,
+ },
+ ],
+ },
+ {
+ label: 'Container',
+ tableView: false,
+ key: 'container',
+ type: 'container',
+ input: true,
+ components: [
+ {
+ label: 'Select',
+ tableView: true,
+ data: {
+ values: [
+ {
+ label: 'value1',
+ value: 'value1',
+ },
+ {
+ label: 'value2',
+ value: 'value2',
+ },
+ ],
+ },
+ selectThreshold: 0.3,
+ validate: {
+ required: true,
+ onlyAvailableItems: false,
+ },
+ key: 'select',
+ type: 'select',
+ indexeddb: {
+ filter: {},
+ },
+ input: true,
+ },
+ ],
+ },
+ ],
+ input: false,
+ tableView: false,
},
- 'key': 'select',
- 'type': 'select',
- 'indexeddb': {
- 'filter': {}
- },
- 'input': true
- }]
- }]
- }, {
- 'title': 'Page 2',
- 'label': 'Page 2',
- 'type': 'panel',
- 'key': 'page2',
- 'components': [{
- 'label': 'Columns',
- 'columns': [{
- 'components': [{
- 'label': 'Checkbox',
- 'tableView': false,
- 'validate': {
- 'required': true
- },
- 'key': 'checkbox',
- 'type': 'checkbox',
- 'input': true,
- 'hideOnChildrenHidden': false,
- 'defaultValue': false
- }],
- 'width': 6,
- 'offset': 0,
- 'push': 0,
- 'pull': 0,
- 'size': 'md'
- }, {
- 'components': [{
- 'label': 'Date / Time',
- 'displayInTimezone': 'utc',
- 'format': 'yyyy-MM-dd',
- 'tableView': false,
- 'enableMinDateInput': false,
- 'datePicker': {
- 'disableWeekends': false,
- 'disableWeekdays': false
- },
- 'enableMaxDateInput': false,
- 'enableTime': false,
- 'timePicker': {
- 'showMeridian': false
- },
- 'key': 'dateTime',
- 'type': 'datetime',
- 'input': true,
- 'widget': {
- 'type': 'calendar',
- 'displayInTimezone': 'utc',
- 'locale': 'en',
- 'useLocaleSettings': false,
- 'allowInput': true,
- 'mode': 'single',
- 'enableTime': false,
- 'noCalendar': false,
- 'format': 'yyyy-MM-dd',
- 'hourIncrement': 1,
- 'minuteIncrement': 1,
- 'time_24hr': true,
- 'minDate': null,
- 'disableWeekends': false,
- 'disableWeekdays': false,
- 'maxDate': null
- },
- 'hideOnChildrenHidden': false
- }],
- 'width': 6,
- 'offset': 0,
- 'push': 0,
- 'pull': 0,
- 'size': 'md'
- }],
- 'key': 'columns',
- 'type': 'columns',
- 'input': false,
- 'tableView': false
- }, {
- 'label': 'Data Grid',
- 'reorder': false,
- 'addAnotherPosition': 'bottom',
- 'layoutFixed': false,
- 'enableRowGroups': false,
- 'initEmpty': false,
- 'tableView': false,
- 'defaultValue': [{}],
- 'key': 'dataGrid',
- 'type': 'datagrid',
- 'input': true,
- 'components': [{
- 'label': 'Text Field',
- 'tableView': true,
- 'key': 'textField1',
- 'type': 'textfield',
- 'input': true
- }]
- }],
- 'input': false,
- 'tableView': false
- }, {
- 'title': 'Page 3',
- 'label': 'Page 3',
- 'type': 'panel',
- 'key': 'page3',
- 'components': [{
- 'label': 'Well',
- 'key': 'well1',
- 'type': 'well',
- 'input': false,
- 'tableView': false,
- 'components': [{
- 'label': 'Email',
- 'tableView': true,
- 'key': 'email',
- 'type': 'email',
- 'input': true
- }]
- }, {
- 'label': 'Container',
- 'tableView': false,
- 'key': 'container',
- 'type': 'container',
- 'input': true,
- 'components': [{
- 'label': 'Select',
- 'tableView': true,
- 'data': {
- 'values': [{
- 'label': 'value1',
- 'value': 'value1'
- }, {
- 'label': 'value2',
- 'value': 'value2'
- }]
- },
- 'selectThreshold': 0.3,
- 'validate': {
- 'required': true,
- 'onlyAvailableItems': false
- },
- 'key': 'select',
- 'type': 'select',
- 'indexeddb': {
- 'filter': {}
- },
- 'input': true
- }]
- }],
- 'input': false,
- 'tableView': false
- }],
- 'revisions': '',
- '_vid': 0,
- 'title': 'wizard form for automated tests',
- 'display': 'wizard',
- 'name': 'wizardFormForAutomatedTests',
- 'path': 'wizardformforautomatedtests',
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'wizard form for automated tests',
+ display: 'wizard',
+ name: 'wizardFormForAutomatedTests',
+ path: 'wizardformforautomatedtests',
};
const submission = {
- '_id': '6038a77ba21f9daee0ffdb6d',
- 'state': 'submitted',
- 'data': {
- 'tags': 'tag1,tag2',
- 'textField': 'text',
- 'editGrid': [{
- 'select': 'a'
- }, {
- 'select': 'b'
- }],
- 'checkbox': true,
- 'dateTime': '2021-02-16T21:00:00.000',
- 'dataGrid': [{
- 'textField1': 'text1'
- }, {
- 'textField1': 'text2'
- }],
- 'email': 'user@example.com',
- 'container': {
- 'select': 'value1'
- }
- },
+ _id: '6038a77ba21f9daee0ffdb6d',
+ state: 'submitted',
+ data: {
+ tags: 'tag1,tag2',
+ textField: 'text',
+ editGrid: [
+ {
+ select: 'a',
+ },
+ {
+ select: 'b',
+ },
+ ],
+ checkbox: true,
+ dateTime: '2021-02-16T21:00:00.000',
+ dataGrid: [
+ {
+ textField1: 'text1',
+ },
+ {
+ textField1: 'text2',
+ },
+ ],
+ email: 'user@example.com',
+ container: {
+ select: 'value1',
+ },
+ },
};
const htmlModeValues = {
- 'tags': 'tag1,tag2',
- 'textField': 'text',
- 'editGrid': [{
- 'select': 'a'
- }, {
- 'select': 'b'
- }],
- 'checkbox': 'True',
- 'dateTime': '2021-02-16T21:00:00.000Z',
- 'dataGrid': [{
- 'textField1': 'text1'
- }, {
- 'textField1': 'text2'
- }],
- 'email': 'user@example.com',
- 'container': {
- 'select': 'value1'
- }
+ tags: 'tag1,tag2',
+ textField: 'text',
+ editGrid: [
+ {
+ select: 'a',
+ },
+ {
+ select: 'b',
+ },
+ ],
+ checkbox: 'True',
+ dateTime: '2021-02-16T21:00:00.000Z',
+ dataGrid: [
+ {
+ textField1: 'text1',
+ },
+ {
+ textField1: 'text2',
+ },
+ ],
+ email: 'user@example.com',
+ container: {
+ select: 'value1',
+ },
};
export default { form, submission, htmlModeValues };
diff --git a/test/forms/wizardTestFormWithNestedComponents.d.ts b/test/forms/wizardTestFormWithNestedComponents.d.ts
index d3f0a2b252..a2029ad07a 100644
--- a/test/forms/wizardTestFormWithNestedComponents.d.ts
+++ b/test/forms/wizardTestFormWithNestedComponents.d.ts
@@ -41,75 +41,79 @@ declare namespace form {
label: string;
input: boolean;
tableView: boolean;
- components: ({
- legend: string;
- key: string;
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: {
- label: string;
- optionsLabelPosition: string;
- inline: boolean;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- validate: {
- required: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- }[];
- } | {
- legend: string;
- key: string;
- customConditional: string;
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: {
- label: string;
- optionsLabelPosition: string;
- inline: boolean;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- validate: {
- required: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- }[];
- } | {
- legend: string;
- key: string;
- customConditional: string;
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: {
- label: string;
- tableView: boolean;
- defaultValue: boolean;
- validate: {
- required: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- }[];
- })[];
+ components: (
+ | {
+ legend: string;
+ key: string;
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: {
+ label: string;
+ optionsLabelPosition: string;
+ inline: boolean;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ }
+ | {
+ legend: string;
+ key: string;
+ customConditional: string;
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: {
+ label: string;
+ optionsLabelPosition: string;
+ inline: boolean;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ }
+ | {
+ legend: string;
+ key: string;
+ customConditional: string;
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ defaultValue: boolean;
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ }
+ )[];
}[];
}[];
}[];
@@ -122,13 +126,16 @@ declare namespace form {
namespace config {
const containerDataSource: {
firstComponent: string;
- types: ({
- secondComponent: string;
- requiredComponent: string;
- } | {
- secondComponent: string;
- requiredComponent: {};
- })[];
+ types: (
+ | {
+ secondComponent: string;
+ requiredComponent: string;
+ }
+ | {
+ secondComponent: string;
+ requiredComponent: {};
+ }
+ )[];
}[];
}
}
diff --git a/test/forms/wizardTestFormWithNestedComponents.js b/test/forms/wizardTestFormWithNestedComponents.js
index a3b746a718..565b123436 100644
--- a/test/forms/wizardTestFormWithNestedComponents.js
+++ b/test/forms/wizardTestFormWithNestedComponents.js
@@ -1,235 +1,236 @@
const form = {
- title: 'Test Form With Nested Components',
- name: 'testFormWithNestedComponents',
- path: 'testFormWithNestedComponents',
- type: 'form',
- display: 'wizard',
- tags: [],
- components: [
- {
- title: 'Page 1',
- breadcrumbClickable: true,
- buttonSettings: {
- previous: true,
- cancel: true,
- next: true,
- },
- navigateOnEnter: false,
- saveOnEnter: false,
- scrollToTop: true,
- collapsible: false,
- key: 'page1',
- type: 'panel',
- label: 'Page 1',
- input: false,
- tableView: false,
- components: [
+ title: 'Test Form With Nested Components',
+ name: 'testFormWithNestedComponents',
+ path: 'testFormWithNestedComponents',
+ type: 'form',
+ display: 'wizard',
+ tags: [],
+ components: [
{
- label: 'Outer Container',
- tableView: false,
- calculateValue: '',
- key: 'outerContainer',
- type: 'container',
- input: true,
- components: [
- {
- legend: 'Inner Field Set',
- customClass: 'form-page',
- key: 'innerFieldSet',
- type: 'fieldset',
- label: 'Inner Field Set',
- input: false,
- tableView: false,
- components: [
+ title: 'Page 1',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ navigateOnEnter: false,
+ saveOnEnter: false,
+ scrollToTop: true,
+ collapsible: false,
+ key: 'page1',
+ type: 'panel',
+ label: 'Page 1',
+ input: false,
+ tableView: false,
+ components: [
{
- legend: 'Innermost Field Set A',
- key: 'innermostFieldSetA',
- type: 'fieldset',
- label: 'Innermost Field Set A',
- input: false,
- tableView: false,
- components: [
- {
- label: 'First Component',
- optionsLabelPosition: 'right',
- inline: false,
- tableView: false,
- values: [
- {
- label: 'a',
- value: 'a',
- shortcut: '',
- },
- {
- label: 'b',
- value: 'b',
- shortcut: '',
- },
+ label: 'Outer Container',
+ tableView: false,
+ calculateValue: '',
+ key: 'outerContainer',
+ type: 'container',
+ input: true,
+ components: [
{
- label: 'c',
- value: 'c',
- shortcut: '',
+ legend: 'Inner Field Set',
+ customClass: 'form-page',
+ key: 'innerFieldSet',
+ type: 'fieldset',
+ label: 'Inner Field Set',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ legend: 'Innermost Field Set A',
+ key: 'innermostFieldSetA',
+ type: 'fieldset',
+ label: 'Innermost Field Set A',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'First Component',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: false,
+ values: [
+ {
+ label: 'a',
+ value: 'a',
+ shortcut: '',
+ },
+ {
+ label: 'b',
+ value: 'b',
+ shortcut: '',
+ },
+ {
+ label: 'c',
+ value: 'c',
+ shortcut: '',
+ },
+ ],
+ validate: {
+ required: true,
+ },
+ key: 'firstComponent',
+ type: 'radio',
+ input: true,
+ },
+ ],
+ },
+ {
+ legend: 'Innermost Field Set B',
+ key: 'innermostFieldSetB',
+ customConditional:
+ "show=!!_.get(data,'outerContainer.firstComponent');",
+ type: 'fieldset',
+ label: 'Field Set',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Second Component',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: false,
+ values: [
+ {
+ label: 'q',
+ value: 'q',
+ shortcut: '',
+ },
+ {
+ label: 'w',
+ value: 'w',
+ shortcut: '',
+ },
+ {
+ label: 'e',
+ value: 'e',
+ shortcut: '',
+ },
+ ],
+ validate: {
+ required: true,
+ },
+ key: 'secondComponent',
+ type: 'radio',
+ input: true,
+ },
+ ],
+ },
+ {
+ legend: 'Innermost Field Set C',
+ key: 'innermostFieldSetC',
+ customConditional:
+ "let firstComponent=row.firstComponent;\nlet secondComponent=row.secondComponent;\nshow=false;\nif (!!firstComponent && !!secondComponent) {\n let selected=_.find(_.find(_.get(form,'config.containerDataSource',[]),item=>item.firstComponent===firstComponent).types,item=>item.secondComponent===secondComponent);\n show=_.isEmpty(_.get(selected,'requiredComponent'))===false;\n}\n",
+ type: 'fieldset',
+ label: 'Innermost Field Set C',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Required Component',
+ tableView: false,
+ defaultValue: false,
+ validate: {
+ required: true,
+ },
+ key: 'requiredComponent',
+ type: 'checkbox',
+ input: true,
+ },
+ ],
+ },
+ ],
},
- ],
- validate: {
- required: true,
- },
- key: 'firstComponent',
- type: 'radio',
- input: true,
- },
- ],
+ ],
},
- {
- legend: 'Innermost Field Set B',
- key: 'innermostFieldSetB',
- customConditional:
- "show=!!_.get(data,'outerContainer.firstComponent');",
- type: 'fieldset',
- label: 'Field Set',
- input: false,
- tableView: false,
- components: [
+ ],
+ },
+ {
+ title: 'Page 2',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ navigateOnEnter: false,
+ saveOnEnter: false,
+ scrollToTop: false,
+ collapsible: false,
+ key: 'page3',
+ type: 'panel',
+ label: 'Page 3',
+ input: false,
+ tableView: false,
+ components: [],
+ },
+ ],
+ settings: {},
+ properties: {},
+ controller: '',
+ revisions: '',
+ submissionRevisions: '',
+ _vid: 0,
+ config: {
+ containerDataSource: [
+ {
+ firstComponent: 'a',
+ types: [
{
- label: 'Second Component',
- optionsLabelPosition: 'right',
- inline: false,
- tableView: false,
- values: [
- {
- label: 'q',
- value: 'q',
- shortcut: '',
- },
- {
- label: 'w',
- value: 'w',
- shortcut: '',
- },
- {
- label: 'e',
- value: 'e',
- shortcut: '',
- },
- ],
- validate: {
- required: true,
- },
- key: 'secondComponent',
- type: 'radio',
- input: true,
+ secondComponent: 'q',
+ requiredComponent: {},
},
- ],
- },
- {
- legend: 'Innermost Field Set C',
- key: 'innermostFieldSetC',
- customConditional: "let firstComponent=row.firstComponent;\nlet secondComponent=row.secondComponent;\nshow=false;\nif (!!firstComponent && !!secondComponent) {\n let selected=_.find(_.find(_.get(form,'config.containerDataSource',[]),item=>item.firstComponent===firstComponent).types,item=>item.secondComponent===secondComponent);\n show=_.isEmpty(_.get(selected,'requiredComponent'))===false;\n}\n",
- type: 'fieldset',
- label: 'Innermost Field Set C',
- input: false,
- tableView: false,
- components: [
{
- label: 'Required Component',
- tableView: false,
- defaultValue: false,
- validate: {
- required: true,
- },
- key: 'requiredComponent',
- type: 'checkbox',
- input: true,
+ secondComponent: 'w',
+ requiredComponent: {},
},
- ],
- },
- ],
+ {
+ secondComponent: 'e',
+ requiredComponent: {},
+ },
+ ],
+ },
+ {
+ firstComponent: 'b',
+ types: [
+ {
+ secondComponent: 'q',
+ requiredComponent: {},
+ },
+ {
+ secondComponent: 'w',
+ requiredComponent: {},
+ },
+ {
+ secondComponent: 'e',
+ requiredComponent: {},
+ },
+ ],
+ },
+ {
+ firstComponent: 'c',
+ types: [
+ {
+ secondComponent: 'q',
+ requiredComponent: 'Hello, world!',
+ },
+ {
+ secondComponent: 'w',
+ requiredComponent: {},
+ },
+ {
+ secondComponent: 'e',
+ requiredComponent: {},
+ },
+ ],
},
- ],
- },
- ],
- },
- {
- title: 'Page 2',
- breadcrumbClickable: true,
- buttonSettings: {
- previous: true,
- cancel: true,
- next: true,
- },
- navigateOnEnter: false,
- saveOnEnter: false,
- scrollToTop: false,
- collapsible: false,
- key: 'page3',
- type: 'panel',
- label: 'Page 3',
- input: false,
- tableView: false,
- components: [],
- },
- ],
- settings: {},
- properties: {},
- controller: '',
- revisions: '',
- submissionRevisions: '',
- _vid: 0,
- config: {
- containerDataSource: [
- {
- firstComponent: 'a',
- types: [
- {
- secondComponent: 'q',
- requiredComponent: {},
- },
- {
- secondComponent: 'w',
- requiredComponent: {},
- },
- {
- secondComponent: 'e',
- requiredComponent: {},
- },
- ],
- },
- {
- firstComponent: 'b',
- types: [
- {
- secondComponent: 'q',
- requiredComponent: {},
- },
- {
- secondComponent: 'w',
- requiredComponent: {},
- },
- {
- secondComponent: 'e',
- requiredComponent: {},
- },
- ],
- },
- {
- firstComponent: 'c',
- types: [
- {
- secondComponent: 'q',
- requiredComponent: 'Hello, world!',
- },
- {
- secondComponent: 'w',
- requiredComponent: {},
- },
- {
- secondComponent: 'e',
- requiredComponent: {},
- },
],
- },
- ],
- },
+ },
};
export default { form };
diff --git a/test/forms/wizardValidate.js b/test/forms/wizardValidate.js
index e8e4f272ab..f2710dc278 100644
--- a/test/forms/wizardValidate.js
+++ b/test/forms/wizardValidate.js
@@ -1,401 +1,444 @@
export default {
- _id: '5e64067f93407e755d4745eb',
- type: 'form',
- tags: [],
- owner: '5d20ecfe633c7486ffc33270',
- components: [{
- title: 'Page 1',
- label: 'Page 1',
- type: 'panel',
- key: 'page1',
- components: [{
- label: 'A',
- labelPosition: 'top',
- placeholder: '',
- description: '',
- tooltip: '',
- prefix: '',
- suffix: '',
- widget: {type: 'input'},
- inputMask: '',
- allowMultipleMasks: false,
- customClass: '',
- tabindex: '',
- hidden: false,
- hideLabel: false,
- showWordCount: false,
- showCharCount: false,
- mask: false,
- autofocus: false,
- spellcheck: true,
- disabled: false,
- tableView: true,
- modalEdit: false,
- multiple: false,
- persistent: true,
- inputFormat: 'plain',
- protected: false,
- dbIndex: false,
- case: '',
- encrypted: false,
- redrawOn: '',
- clearOnHide: true,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- allowCalculateOverride: false,
- validateOn: 'change',
- validate: {
- required: true,
- pattern: '',
- customMessage: '',
- custom: '',
- customPrivate: false,
- json: '',
- minLength: '',
- maxLength: '',
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- unique: false,
- errorLabel: '',
- key: 'a',
- tags: [],
- properties: {},
- conditional: {show: null, when: null, eq: '', json: ''},
- customConditional: '',
- logic: [],
- attributes: {},
- overlay: {style: '', page: '', left: '', top: '', width: '', height: ''},
- type: 'textfield',
- input: true,
- refreshOn: '',
- inputType: 'text',
- id: 'es79aho',
- defaultValue: ''
- }, {
- label: 'B',
- labelPosition: 'top',
- placeholder: '',
- description: '',
- tooltip: '',
- prefix: '',
- suffix: '',
- widget: {type: 'input'},
- inputMask: '',
- allowMultipleMasks: false,
- customClass: '',
- tabindex: '',
- hidden: false,
- hideLabel: false,
- showWordCount: false,
- showCharCount: false,
- mask: false,
- autofocus: false,
- spellcheck: true,
- disabled: false,
- tableView: true,
- modalEdit: false,
- multiple: false,
- persistent: true,
- inputFormat: 'plain',
- protected: false,
- dbIndex: false,
- case: '',
- encrypted: false,
- redrawOn: '',
- clearOnHide: true,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- allowCalculateOverride: false,
- validateOn: 'change',
- validate: {
- required: true,
- pattern: '',
- customMessage: '',
- custom: '',
- customPrivate: false,
- json: '',
- minLength: '',
- maxLength: '',
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- unique: false,
- errorLabel: '',
- key: 'b',
- tags: [],
- properties: {},
- conditional: {show: null, when: null, eq: '', json: ''},
- customConditional: '',
- logic: [],
- attributes: {},
- overlay: {style: '', page: '', left: '', top: '', width: '', height: ''},
- type: 'textfield',
- input: true,
- refreshOn: '',
- inputType: 'text',
- id: 'eu0fw',
- defaultValue: ''
- }],
- input: false,
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- defaultValue: null,
- protected: false,
- unique: false,
- persistent: false,
- hidden: false,
- clearOnHide: false,
- refreshOn: '',
- redrawOn: '',
- tableView: false,
- modalEdit: false,
- labelPosition: 'top',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateValue: '',
- widget: null,
- attributes: {},
- validateOn: 'change',
- validate: {
- required: false,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- conditional: {show: null, when: null, eq: ''},
- overlay: {style: '', left: '', top: '', width: '', height: ''},
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
+ _id: '5e64067f93407e755d4745eb',
+ type: 'form',
+ tags: [],
+ owner: '5d20ecfe633c7486ffc33270',
+ components: [
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'A',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: { type: 'input' },
+ inputMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: true,
+ pattern: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength: '',
+ maxLength: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'a',
+ tags: [],
+ properties: {},
+ conditional: { show: null, when: null, eq: '', json: '' },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ inputType: 'text',
+ id: 'es79aho',
+ defaultValue: '',
+ },
+ {
+ label: 'B',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: { type: 'input' },
+ inputMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: true,
+ pattern: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength: '',
+ maxLength: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'b',
+ tags: [],
+ properties: {},
+ conditional: { show: null, when: null, eq: '', json: '' },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ inputType: 'text',
+ id: 'eu0fw',
+ defaultValue: '',
+ },
+ ],
+ input: false,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ widget: null,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: { show: null, when: null, eq: '' },
+ overlay: { style: '', left: '', top: '', width: '', height: '' },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ tree: false,
+ theme: 'default',
+ breadcrumb: 'default',
+ id: 'eidma3j',
+ },
+ {
+ title: 'Page 2',
+ label: 'Page 2',
+ type: 'panel',
+ key: 'page2',
+ components: [
+ {
+ label: 'C',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: { type: 'input' },
+ inputMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: true,
+ pattern: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength: '',
+ maxLength: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'c',
+ tags: [],
+ properties: {},
+ conditional: { show: null, when: null, eq: '', json: '' },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ inputType: 'text',
+ id: 'eszf3hm',
+ defaultValue: '',
+ },
+ {
+ label: 'D',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: { type: 'input' },
+ inputMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: true,
+ pattern: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength: '',
+ maxLength: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'd',
+ tags: [],
+ properties: {},
+ conditional: { show: null, when: null, eq: '', json: '' },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ inputType: 'text',
+ id: 'eyv6tv',
+ defaultValue: '',
+ },
+ ],
+ input: false,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ widget: null,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: { show: null, when: null, eq: '' },
+ overlay: { style: '', left: '', top: '', width: '', height: '' },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ tree: false,
+ theme: 'default',
+ breadcrumb: 'default',
+ id: 'eauobna',
+ },
+ ],
+ controller: '',
+ revisions: '',
+ _vid: 0,
+ title: 'WIZARD',
+ display: 'wizard',
+ access: [
+ {
+ roles: [
+ '5e61b28b4600135be0bf681f',
+ '5e61b28b4600135be0bf6820',
+ '5e61b28b4600135be0bf6821',
+ ],
+ type: 'read_all',
+ },
+ ],
+ submissionAccess: [],
+ settings: {},
properties: {},
- allowMultipleMasks: false,
- tree: false,
- theme: 'default',
- breadcrumb: 'default',
- id: 'eidma3j'
- }, {
- title: 'Page 2',
- label: 'Page 2',
- type: 'panel',
- key: 'page2',
- components: [{
- label: 'C',
- labelPosition: 'top',
- placeholder: '',
- description: '',
- tooltip: '',
- prefix: '',
- suffix: '',
- widget: {type: 'input'},
- inputMask: '',
- allowMultipleMasks: false,
- customClass: '',
- tabindex: '',
- hidden: false,
- hideLabel: false,
- showWordCount: false,
- showCharCount: false,
- mask: false,
- autofocus: false,
- spellcheck: true,
- disabled: false,
- tableView: true,
- modalEdit: false,
- multiple: false,
- persistent: true,
- inputFormat: 'plain',
- protected: false,
- dbIndex: false,
- case: '',
- encrypted: false,
- redrawOn: '',
- clearOnHide: true,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- allowCalculateOverride: false,
- validateOn: 'change',
- validate: {
- required: true,
- pattern: '',
- customMessage: '',
- custom: '',
- customPrivate: false,
- json: '',
- minLength: '',
- maxLength: '',
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- unique: false,
- errorLabel: '',
- key: 'c',
- tags: [],
- properties: {},
- conditional: {show: null, when: null, eq: '', json: ''},
- customConditional: '',
- logic: [],
- attributes: {},
- overlay: {style: '', page: '', left: '', top: '', width: '', height: ''},
- type: 'textfield',
- input: true,
- refreshOn: '',
- inputType: 'text',
- id: 'eszf3hm',
- defaultValue: ''
- }, {
- label: 'D',
- labelPosition: 'top',
- placeholder: '',
- description: '',
- tooltip: '',
- prefix: '',
- suffix: '',
- widget: {type: 'input'},
- inputMask: '',
- allowMultipleMasks: false,
- customClass: '',
- tabindex: '',
- hidden: false,
- hideLabel: false,
- showWordCount: false,
- showCharCount: false,
- mask: false,
- autofocus: false,
- spellcheck: true,
- disabled: false,
- tableView: true,
- modalEdit: false,
- multiple: false,
- persistent: true,
- inputFormat: 'plain',
- protected: false,
- dbIndex: false,
- case: '',
- encrypted: false,
- redrawOn: '',
- clearOnHide: true,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- allowCalculateOverride: false,
- validateOn: 'change',
- validate: {
- required: true,
- pattern: '',
- customMessage: '',
- custom: '',
- customPrivate: false,
- json: '',
- minLength: '',
- maxLength: '',
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- unique: false,
- errorLabel: '',
- key: 'd',
- tags: [],
- properties: {},
- conditional: {show: null, when: null, eq: '', json: ''},
- customConditional: '',
- logic: [],
- attributes: {},
- overlay: {style: '', page: '', left: '', top: '', width: '', height: ''},
- type: 'textfield',
- input: true,
- refreshOn: '',
- inputType: 'text',
- id: 'eyv6tv',
- defaultValue: ''
- }],
- input: false,
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- defaultValue: null,
- protected: false,
- unique: false,
- persistent: false,
- hidden: false,
- clearOnHide: false,
- refreshOn: '',
- redrawOn: '',
- tableView: false,
- modalEdit: false,
- labelPosition: 'top',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateValue: '',
- widget: null,
- attributes: {},
- validateOn: 'change',
- validate: {
- required: false,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- conditional: {show: null, when: null, eq: ''},
- overlay: {style: '', left: '', top: '', width: '', height: ''},
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
- properties: {},
- allowMultipleMasks: false,
- tree: false,
- theme: 'default',
- breadcrumb: 'default',
- id: 'eauobna'
- }],
- controller: '',
- revisions: '',
- _vid: 0,
- title: 'WIZARD',
- display: 'wizard',
- access: [{
- roles: ['5e61b28b4600135be0bf681f', '5e61b28b4600135be0bf6820', '5e61b28b4600135be0bf6821'],
- type: 'read_all'
- }],
- submissionAccess: [],
- settings: {},
- properties: {},
- name: 'wizard',
- path: 'wizard',
- project: '5e61b28b4600135be0bf681e',
- created: '2020-03-07T20:39:27.702Z',
- modified: '2020-03-07T20:39:27.712Z',
- machineName: 'nduruyqyruanuvd:wizard'
+ name: 'wizard',
+ path: 'wizard',
+ project: '5e61b28b4600135be0bf681e',
+ created: '2020-03-07T20:39:27.702Z',
+ modified: '2020-03-07T20:39:27.712Z',
+ machineName: 'nduruyqyruanuvd:wizard',
};
diff --git a/test/forms/wizardValidationOnNextBtn.d.ts b/test/forms/wizardValidationOnNextBtn.d.ts
index 0cc2dc64d4..2a5b93ffa4 100644
--- a/test/forms/wizardValidationOnNextBtn.d.ts
+++ b/test/forms/wizardValidationOnNextBtn.d.ts
@@ -5,167 +5,170 @@ declare namespace _default {
label: string;
type: string;
key: string;
- components: ({
- label: string;
- labelPosition: string;
- placeholder: string;
- description: string;
- tooltip: string;
- prefix: string;
- suffix: string;
- widget: {
- type: string;
- };
- inputMask: string;
- allowMultipleMasks: boolean;
- customClass: string;
- tabindex: string;
- hidden: boolean;
- hideLabel: boolean;
- showWordCount: boolean;
- showCharCount: boolean;
- mask: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- multiple: boolean;
- persistent: boolean;
- inputFormat: string;
- protected: boolean;
- dbIndex: boolean;
- case: string;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- pattern: string;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- minLength: string;
- maxLength: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- unique: boolean;
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- input: boolean;
- refreshOn: string;
- inputType: string;
- id: string;
- defaultValue: string;
- } | {
- label: string;
- labelPosition: string;
- placeholder: string;
- description: string;
- tooltip: string;
- prefix: string;
- suffix: string;
- widget: {
- type: string;
- };
- inputMask: string;
- allowMultipleMasks: boolean;
- customClass: string;
- tabindex: string;
- hidden: boolean;
- hideLabel: boolean;
- showWordCount: boolean;
- showCharCount: boolean;
- mask: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- multiple: boolean;
- persistent: boolean;
- inputFormat: string;
- protected: boolean;
- dbIndex: boolean;
- case: string;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- pattern: string;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- minLength: string;
- maxLength: number;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- unique: boolean;
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- input: boolean;
- refreshOn: string;
- inputType: string;
- id: string;
- defaultValue: string;
- })[];
+ components: (
+ | {
+ label: string;
+ labelPosition: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ prefix: string;
+ suffix: string;
+ widget: {
+ type: string;
+ };
+ inputMask: string;
+ allowMultipleMasks: boolean;
+ customClass: string;
+ tabindex: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ showWordCount: boolean;
+ showCharCount: boolean;
+ mask: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ multiple: boolean;
+ persistent: boolean;
+ inputFormat: string;
+ protected: boolean;
+ dbIndex: boolean;
+ case: string;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ pattern: string;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ minLength: string;
+ maxLength: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ unique: boolean;
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ input: boolean;
+ refreshOn: string;
+ inputType: string;
+ id: string;
+ defaultValue: string;
+ }
+ | {
+ label: string;
+ labelPosition: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ prefix: string;
+ suffix: string;
+ widget: {
+ type: string;
+ };
+ inputMask: string;
+ allowMultipleMasks: boolean;
+ customClass: string;
+ tabindex: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ showWordCount: boolean;
+ showCharCount: boolean;
+ mask: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ multiple: boolean;
+ persistent: boolean;
+ inputFormat: string;
+ protected: boolean;
+ dbIndex: boolean;
+ case: string;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ pattern: string;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ minLength: string;
+ maxLength: number;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ unique: boolean;
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ input: boolean;
+ refreshOn: string;
+ inputType: string;
+ id: string;
+ defaultValue: string;
+ }
+ )[];
input: boolean;
placeholder: string;
prefix: string;
diff --git a/test/forms/wizardValidationOnNextBtn.js b/test/forms/wizardValidationOnNextBtn.js
index b71d996d9a..a45aee94c0 100644
--- a/test/forms/wizardValidationOnNextBtn.js
+++ b/test/forms/wizardValidationOnNextBtn.js
@@ -1,385 +1,384 @@
export default {
- title: 'Wizard Form',
- components: [
- {
- title: 'Page 1',
- label: 'Page 1',
- type: 'panel',
- key: 'page1',
- components: [
+ title: 'Wizard Form',
+ components: [
{
- label: 'a',
- labelPosition: 'top',
- placeholder: '',
- description: '',
- tooltip: '',
- prefix: '',
- suffix: '',
- widget: {
- type: 'input'
- },
- inputMask: '',
- allowMultipleMasks: false,
- customClass: '',
- tabindex: '',
- hidden: false,
- hideLabel: false,
- showWordCount: false,
- showCharCount: false,
- mask: false,
- autofocus: false,
- spellcheck: true,
- disabled: false,
- tableView: true,
- modalEdit: false,
- multiple: false,
- persistent: true,
- inputFormat: 'plain',
- 'protected': false,
- dbIndex: false,
- 'case': '',
- encrypted: false,
- redrawOn: '',
- clearOnHide: true,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- allowCalculateOverride: false,
- validateOn: 'change',
- validate: {
- required: true,
- pattern: '',
- customMessage: '',
- custom: '',
- customPrivate: false,
- json: '',
- minLength: '',
- maxLength: '',
- strictDateValidation: false,
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'a',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ inputMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: true,
+ pattern: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength: '',
+ maxLength: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'a',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ inputType: 'text',
+ id: 'eap4fh',
+ defaultValue: '',
+ },
+ {
+ label: 'b',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ inputMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: true,
+ pattern: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength: '',
+ maxLength: 4,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'b',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ inputType: 'text',
+ id: 'eo1khi9',
+ defaultValue: '',
+ },
+ ],
+ input: false,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
multiple: false,
- unique: false
- },
- unique: false,
- errorLabel: '',
- key: 'a',
- tags: [],
- properties: {},
- conditional: {
- show: null,
- when: null,
- eq: '',
- json: ''
- },
- customConditional: '',
- logic: [],
- attributes: {},
- overlay: {
- style: '',
- page: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- type: 'textfield',
- input: true,
- refreshOn: '',
- inputType: 'text',
- id: 'eap4fh',
- defaultValue: ''
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ widget: null,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: true,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ tree: false,
+ theme: 'default',
+ breadcrumb: 'default',
+ id: 'etrhlbe',
},
{
- label: 'b',
- labelPosition: 'top',
- placeholder: '',
- description: '',
- tooltip: '',
- prefix: '',
- suffix: '',
- widget: {
- type: 'input'
- },
- inputMask: '',
- allowMultipleMasks: false,
- customClass: '',
- tabindex: '',
- hidden: false,
- hideLabel: false,
- showWordCount: false,
- showCharCount: false,
- mask: false,
- autofocus: false,
- spellcheck: true,
- disabled: false,
- tableView: true,
- modalEdit: false,
- multiple: false,
- persistent: true,
- inputFormat: 'plain',
- 'protected': false,
- dbIndex: false,
- 'case': '',
- encrypted: false,
- redrawOn: '',
- clearOnHide: true,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- allowCalculateOverride: false,
- validateOn: 'change',
- validate: {
- required: true,
- pattern: '',
- customMessage: '',
- custom: '',
- customPrivate: false,
- json: '',
- minLength: '',
- maxLength: 4,
- strictDateValidation: false,
+ title: 'Page 2',
+ label: 'Page 2',
+ type: 'panel',
+ key: 'page2',
+ components: [
+ {
+ label: 'c',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ inputMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ pattern: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength: '',
+ maxLength: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'c',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ inputType: 'text',
+ id: 'euovhcc',
+ defaultValue: '',
+ },
+ ],
+ input: false,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
multiple: false,
- unique: false
- },
- unique: false,
- errorLabel: '',
- key: 'b',
- tags: [],
- properties: {},
- conditional: {
- show: null,
- when: null,
- eq: '',
- json: ''
- },
- customConditional: '',
- logic: [],
- attributes: {},
- overlay: {
- style: '',
- page: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- type: 'textfield',
- input: true,
- refreshOn: '',
- inputType: 'text',
- id: 'eo1khi9',
- defaultValue: ''
- }
- ],
- input: false,
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- defaultValue: null,
- 'protected': false,
- unique: false,
- persistent: false,
- hidden: false,
- clearOnHide: false,
- refreshOn: '',
- redrawOn: '',
- tableView: false,
- modalEdit: false,
- labelPosition: 'top',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateValue: '',
- widget: null,
- attributes: {},
- validateOn: 'change',
- validate: {
- required: true,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- conditional: {
- show: null,
- when: null,
- eq: ''
- },
- overlay: {
- style: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
- properties: {},
- allowMultipleMasks: false,
- tree: false,
- theme: 'default',
- breadcrumb: 'default',
- id: 'etrhlbe'
- },
- {
- title: 'Page 2',
- label: 'Page 2',
- type: 'panel',
- key: 'page2',
- components: [
- {
- label: 'c',
- labelPosition: 'top',
- placeholder: '',
- description: '',
- tooltip: '',
- prefix: '',
- suffix: '',
- widget: {
- type: 'input'
- },
- inputMask: '',
- allowMultipleMasks: false,
- customClass: '',
- tabindex: '',
- hidden: false,
- hideLabel: false,
- showWordCount: false,
- showCharCount: false,
- mask: false,
- autofocus: false,
- spellcheck: true,
- disabled: false,
- tableView: true,
- modalEdit: false,
- multiple: false,
- persistent: true,
- inputFormat: 'plain',
- 'protected': false,
- dbIndex: false,
- 'case': '',
- encrypted: false,
- redrawOn: '',
- clearOnHide: true,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- allowCalculateOverride: false,
- validateOn: 'change',
- validate: {
- required: false,
- pattern: '',
- customMessage: '',
- custom: '',
- customPrivate: false,
- json: '',
- minLength: '',
- maxLength: '',
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- unique: false,
- errorLabel: '',
- key: 'c',
- tags: [],
- properties: {},
- conditional: {
- show: null,
- when: null,
- eq: '',
- json: ''
- },
- customConditional: '',
- logic: [],
- attributes: {},
- overlay: {
- style: '',
- page: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- type: 'textfield',
- input: true,
- refreshOn: '',
- inputType: 'text',
- id: 'euovhcc',
- defaultValue: ''
- }
- ],
- input: false,
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- defaultValue: null,
- 'protected': false,
- unique: false,
- persistent: false,
- hidden: false,
- clearOnHide: false,
- refreshOn: '',
- redrawOn: '',
- tableView: false,
- modalEdit: false,
- labelPosition: 'top',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateValue: '',
- widget: null,
- attributes: {},
- validateOn: 'change',
- validate: {
- required: false,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- conditional: {
- show: null,
- when: null,
- eq: ''
- },
- overlay: {
- style: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
- properties: {},
- allowMultipleMasks: false,
- tree: false,
- theme: 'default',
- breadcrumb: 'default',
- id: 'eij9ua'
- }
- ],
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ widget: null,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ tree: false,
+ theme: 'default',
+ breadcrumb: 'default',
+ id: 'eij9ua',
+ },
+ ],
};
-
diff --git a/test/forms/wizardValidationOnPageChanged.d.ts b/test/forms/wizardValidationOnPageChanged.d.ts
index 2abee6e9d6..312c517e80 100644
--- a/test/forms/wizardValidationOnPageChanged.d.ts
+++ b/test/forms/wizardValidationOnPageChanged.d.ts
@@ -1,443 +1,447 @@
declare namespace _default {
const title: string;
- const components: ({
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- labelPosition: string;
- placeholder: string;
- description: string;
- tooltip: string;
- prefix: string;
- suffix: string;
- widget: {
- type: string;
- };
- inputMask: string;
- allowMultipleMasks: boolean;
- customClass: string;
- tabindex: string;
- hidden: boolean;
- hideLabel: boolean;
- showWordCount: boolean;
- showCharCount: boolean;
- mask: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- multiple: boolean;
- persistent: boolean;
- inputFormat: string;
- protected: boolean;
- dbIndex: boolean;
- case: string;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- pattern: string;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- minLength: number;
- maxLength: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- unique: boolean;
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- input: boolean;
- refreshOn: string;
- inputType: string;
- id: string;
- defaultValue: string;
- }[];
- input: boolean;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- tableView: boolean;
- modalEdit: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- widget: null;
- attributes: {};
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- };
- overlay: {
- style: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- properties: {};
- allowMultipleMasks: boolean;
- tree: boolean;
- theme: string;
- breadcrumb: string;
- id: string;
- } | {
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- labelPosition: string;
- placeholder: string;
- description: string;
- tooltip: string;
- prefix: string;
- suffix: string;
- widget: {
- type: string;
- };
- inputMask: string;
- allowMultipleMasks: boolean;
- customClass: string;
- tabindex: string;
- hidden: boolean;
- hideLabel: boolean;
- showWordCount: boolean;
- showCharCount: boolean;
- mask: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- multiple: boolean;
- persistent: boolean;
- inputFormat: string;
- protected: boolean;
- dbIndex: boolean;
- case: string;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- pattern: string;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- minLength: string;
- maxLength: number;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- unique: boolean;
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- input: boolean;
- refreshOn: string;
- inputType: string;
- id: string;
- defaultValue: string;
- }[];
- input: boolean;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- tableView: boolean;
- modalEdit: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- widget: null;
- attributes: {};
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- };
- overlay: {
- style: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- properties: {};
- allowMultipleMasks: boolean;
- tree: boolean;
- theme: string;
- breadcrumb: string;
- id: string;
- } | {
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- labelPosition: string;
- placeholder: string;
- description: string;
- tooltip: string;
- prefix: string;
- suffix: string;
- widget: {
- type: string;
- };
- inputMask: string;
- allowMultipleMasks: boolean;
- customClass: string;
- tabindex: string;
- hidden: boolean;
- hideLabel: boolean;
- showWordCount: boolean;
- showCharCount: boolean;
- mask: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- multiple: boolean;
- persistent: boolean;
- inputFormat: string;
- protected: boolean;
- dbIndex: boolean;
- case: string;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- pattern: string;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- minLength: string;
- maxLength: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- unique: boolean;
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- input: boolean;
- refreshOn: string;
- inputType: string;
- id: string;
- defaultValue: string;
- }[];
- input: boolean;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- tableView: boolean;
- modalEdit: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- widget: null;
- attributes: {};
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- };
- overlay: {
- style: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- properties: {};
- allowMultipleMasks: boolean;
- tree: boolean;
- theme: string;
- breadcrumb: string;
- id: string;
- })[];
+ const components: (
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ labelPosition: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ prefix: string;
+ suffix: string;
+ widget: {
+ type: string;
+ };
+ inputMask: string;
+ allowMultipleMasks: boolean;
+ customClass: string;
+ tabindex: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ showWordCount: boolean;
+ showCharCount: boolean;
+ mask: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ multiple: boolean;
+ persistent: boolean;
+ inputFormat: string;
+ protected: boolean;
+ dbIndex: boolean;
+ case: string;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ pattern: string;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ minLength: number;
+ maxLength: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ unique: boolean;
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ input: boolean;
+ refreshOn: string;
+ inputType: string;
+ id: string;
+ defaultValue: string;
+ }[];
+ input: boolean;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ tableView: boolean;
+ modalEdit: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ widget: null;
+ attributes: {};
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ };
+ overlay: {
+ style: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ properties: {};
+ allowMultipleMasks: boolean;
+ tree: boolean;
+ theme: string;
+ breadcrumb: string;
+ id: string;
+ }
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ labelPosition: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ prefix: string;
+ suffix: string;
+ widget: {
+ type: string;
+ };
+ inputMask: string;
+ allowMultipleMasks: boolean;
+ customClass: string;
+ tabindex: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ showWordCount: boolean;
+ showCharCount: boolean;
+ mask: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ multiple: boolean;
+ persistent: boolean;
+ inputFormat: string;
+ protected: boolean;
+ dbIndex: boolean;
+ case: string;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ pattern: string;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ minLength: string;
+ maxLength: number;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ unique: boolean;
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ input: boolean;
+ refreshOn: string;
+ inputType: string;
+ id: string;
+ defaultValue: string;
+ }[];
+ input: boolean;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ tableView: boolean;
+ modalEdit: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ widget: null;
+ attributes: {};
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ };
+ overlay: {
+ style: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ properties: {};
+ allowMultipleMasks: boolean;
+ tree: boolean;
+ theme: string;
+ breadcrumb: string;
+ id: string;
+ }
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ labelPosition: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ prefix: string;
+ suffix: string;
+ widget: {
+ type: string;
+ };
+ inputMask: string;
+ allowMultipleMasks: boolean;
+ customClass: string;
+ tabindex: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ showWordCount: boolean;
+ showCharCount: boolean;
+ mask: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ multiple: boolean;
+ persistent: boolean;
+ inputFormat: string;
+ protected: boolean;
+ dbIndex: boolean;
+ case: string;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ pattern: string;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ minLength: string;
+ maxLength: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ unique: boolean;
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ input: boolean;
+ refreshOn: string;
+ inputType: string;
+ id: string;
+ defaultValue: string;
+ }[];
+ input: boolean;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ tableView: boolean;
+ modalEdit: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ widget: null;
+ attributes: {};
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ };
+ overlay: {
+ style: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ properties: {};
+ allowMultipleMasks: boolean;
+ tree: boolean;
+ theme: string;
+ breadcrumb: string;
+ id: string;
+ }
+ )[];
}
export default _default;
diff --git a/test/forms/wizardValidationOnPageChanged.js b/test/forms/wizardValidationOnPageChanged.js
index 1746536179..0ec81b1133 100644
--- a/test/forms/wizardValidationOnPageChanged.js
+++ b/test/forms/wizardValidationOnPageChanged.js
@@ -1,452 +1,452 @@
export default {
- title: 'Wizard Form',
- components: [
- {
- title: 'Page 1',
- label: 'Page 1',
- type: 'panel',
- key: 'page1',
- components: [
+ title: 'Wizard Form',
+ components: [
{
- label: 'a',
- labelPosition: 'top',
- placeholder: '',
- description: '',
- tooltip: '',
- prefix: '',
- suffix: '',
- widget: {
- type: 'input'
- },
- inputMask: '',
- allowMultipleMasks: false,
- customClass: '',
- tabindex: '',
- hidden: false,
- hideLabel: false,
- showWordCount: false,
- showCharCount: false,
- mask: false,
- autofocus: false,
- spellcheck: true,
- disabled: false,
- tableView: true,
- modalEdit: false,
- multiple: false,
- persistent: true,
- inputFormat: 'plain',
- 'protected': false,
- dbIndex: false,
- 'case': '',
- encrypted: false,
- redrawOn: '',
- clearOnHide: true,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- allowCalculateOverride: false,
- validateOn: 'change',
- validate: {
- required: false,
- pattern: '',
- customMessage: '',
- custom: '',
- customPrivate: false,
- json: '',
- minLength: 4,
- maxLength: '',
- strictDateValidation: false,
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'a',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ inputMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ pattern: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength: 4,
+ maxLength: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'a',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ inputType: 'text',
+ id: 'eap4fh',
+ defaultValue: '',
+ },
+ ],
+ input: false,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
multiple: false,
- unique: false
- },
- unique: false,
- errorLabel: '',
- key: 'a',
- tags: [],
- properties: {},
- conditional: {
- show: null,
- when: null,
- eq: '',
- json: ''
- },
- customConditional: '',
- logic: [],
- attributes: {},
- overlay: {
- style: '',
- page: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- type: 'textfield',
- input: true,
- refreshOn: '',
- inputType: 'text',
- id: 'eap4fh',
- defaultValue: ''
- }
- ],
- input: false,
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- defaultValue: null,
- 'protected': false,
- unique: false,
- persistent: false,
- hidden: false,
- clearOnHide: false,
- refreshOn: '',
- redrawOn: '',
- tableView: false,
- modalEdit: false,
- labelPosition: 'top',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateValue: '',
- widget: null,
- attributes: {},
- validateOn: 'change',
- validate: {
- required: false,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- conditional: {
- show: null,
- when: null,
- eq: ''
- },
- overlay: {
- style: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
- properties: {},
- allowMultipleMasks: false,
- tree: false,
- theme: 'default',
- breadcrumb: 'default',
- id: 'etrhlbe'
- },
- {
- title: 'Page 2',
- label: 'Page 2',
- type: 'panel',
- key: 'page2',
- components: [
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ widget: null,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ tree: false,
+ theme: 'default',
+ breadcrumb: 'default',
+ id: 'etrhlbe',
+ },
{
- label: 'b',
- labelPosition: 'top',
- placeholder: '',
- description: '',
- tooltip: '',
- prefix: '',
- suffix: '',
- widget: {
- type: 'input'
- },
- inputMask: '',
- allowMultipleMasks: false,
- customClass: '',
- tabindex: '',
- hidden: false,
- hideLabel: false,
- showWordCount: false,
- showCharCount: false,
- mask: false,
- autofocus: false,
- spellcheck: true,
- disabled: false,
- tableView: true,
- modalEdit: false,
- multiple: false,
- persistent: true,
- inputFormat: 'plain',
- 'protected': false,
- dbIndex: false,
- 'case': '',
- encrypted: false,
- redrawOn: '',
- clearOnHide: true,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- allowCalculateOverride: false,
- validateOn: 'change',
- validate: {
- required: false,
- pattern: '',
- customMessage: '',
- custom: '',
- customPrivate: false,
- json: '',
- minLength: '',
- maxLength: 4,
- strictDateValidation: false,
+ title: 'Page 2',
+ label: 'Page 2',
+ type: 'panel',
+ key: 'page2',
+ components: [
+ {
+ label: 'b',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ inputMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ pattern: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength: '',
+ maxLength: 4,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'textField',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ inputType: 'text',
+ id: 'eo1khi9',
+ defaultValue: '',
+ },
+ ],
+ input: false,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
multiple: false,
- unique: false
- },
- unique: false,
- errorLabel: '',
- key: 'textField',
- tags: [],
- properties: {},
- conditional: {
- show: null,
- when: null,
- eq: '',
- json: ''
- },
- customConditional: '',
- logic: [],
- attributes: {},
- overlay: {
- style: '',
- page: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- type: 'textfield',
- input: true,
- refreshOn: '',
- inputType: 'text',
- id: 'eo1khi9',
- defaultValue: ''
- }
- ],
- input: false,
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- defaultValue: null,
- 'protected': false,
- unique: false,
- persistent: false,
- hidden: false,
- clearOnHide: false,
- refreshOn: '',
- redrawOn: '',
- tableView: false,
- modalEdit: false,
- labelPosition: 'top',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateValue: '',
- widget: null,
- attributes: {},
- validateOn: 'change',
- validate: {
- required: false,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- conditional: {
- show: null,
- when: null,
- eq: ''
- },
- overlay: {
- style: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
- properties: {},
- allowMultipleMasks: false,
- tree: false,
- theme: 'default',
- breadcrumb: 'default',
- id: 'eij9ua'
- },
- {
- title: 'Page 3',
- label: 'Page 3',
- type: 'panel',
- key: 'page3',
- components: [
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ widget: null,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ tree: false,
+ theme: 'default',
+ breadcrumb: 'default',
+ id: 'eij9ua',
+ },
{
- label: 'c',
- labelPosition: 'top',
- placeholder: '',
- description: '',
- tooltip: '',
- prefix: '',
- suffix: '',
- widget: {
- type: 'input'
- },
- inputMask: '',
- allowMultipleMasks: false,
- customClass: '',
- tabindex: '',
- hidden: false,
- hideLabel: false,
- showWordCount: false,
- showCharCount: false,
- mask: false,
- autofocus: false,
- spellcheck: true,
- disabled: false,
- tableView: true,
- modalEdit: false,
- multiple: false,
- persistent: true,
- inputFormat: 'plain',
- 'protected': false,
- dbIndex: false,
- 'case': '',
- encrypted: false,
- redrawOn: '',
- clearOnHide: true,
- customDefaultValue: '',
- calculateValue: '',
- calculateServer: false,
- allowCalculateOverride: false,
- validateOn: 'change',
- validate: {
- required: false,
- pattern: '',
- customMessage: '',
- custom: '',
- customPrivate: false,
- json: '',
- minLength: '',
- maxLength: '',
- strictDateValidation: false,
+ title: 'Page 3',
+ label: 'Page 3',
+ type: 'panel',
+ key: 'page3',
+ components: [
+ {
+ label: 'c',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ inputMask: '',
+ allowMultipleMasks: false,
+ customClass: '',
+ tabindex: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ pattern: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength: '',
+ maxLength: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'c',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'textfield',
+ input: true,
+ refreshOn: '',
+ inputType: 'text',
+ id: 'euovhcc',
+ defaultValue: '',
+ },
+ ],
+ input: false,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
multiple: false,
- unique: false
- },
- unique: false,
- errorLabel: '',
- key: 'c',
- tags: [],
- properties: {},
- conditional: {
- show: null,
- when: null,
- eq: '',
- json: ''
- },
- customConditional: '',
- logic: [],
- attributes: {},
- overlay: {
- style: '',
- page: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- type: 'textfield',
- input: true,
- refreshOn: '',
- inputType: 'text',
- id: 'euovhcc',
- defaultValue: ''
- }
- ],
- input: false,
- placeholder: '',
- prefix: '',
- customClass: '',
- suffix: '',
- multiple: false,
- defaultValue: null,
- 'protected': false,
- unique: false,
- persistent: false,
- hidden: false,
- clearOnHide: false,
- refreshOn: '',
- redrawOn: '',
- tableView: false,
- modalEdit: false,
- labelPosition: 'top',
- description: '',
- errorLabel: '',
- tooltip: '',
- hideLabel: false,
- tabindex: '',
- disabled: false,
- autofocus: false,
- dbIndex: false,
- customDefaultValue: '',
- calculateValue: '',
- widget: null,
- attributes: {},
- validateOn: 'change',
- validate: {
- required: false,
- custom: '',
- customPrivate: false,
- strictDateValidation: false,
- multiple: false,
- unique: false
- },
- conditional: {
- show: null,
- when: null,
- eq: ''
- },
- overlay: {
- style: '',
- left: '',
- top: '',
- width: '',
- height: ''
- },
- allowCalculateOverride: false,
- encrypted: false,
- showCharCount: false,
- showWordCount: false,
- properties: {},
- allowMultipleMasks: false,
- tree: false,
- theme: 'default',
- breadcrumb: 'default',
- id: 'ebug75q'
- }
- ],
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ widget: null,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ tree: false,
+ theme: 'default',
+ breadcrumb: 'default',
+ id: 'ebug75q',
+ },
+ ],
};
diff --git a/test/forms/wizardWithAllowPrevious.d.ts b/test/forms/wizardWithAllowPrevious.d.ts
index fbd457d55a..fb136c9471 100644
--- a/test/forms/wizardWithAllowPrevious.d.ts
+++ b/test/forms/wizardWithAllowPrevious.d.ts
@@ -1,36 +1,39 @@
declare namespace _default {
const type: string;
const tags: never[];
- const components: ({
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- defaultValue: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- } | {
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- })[];
+ const components: (
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ defaultValue: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ }
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ }
+ )[];
const title: string;
const display: string;
}
diff --git a/test/forms/wizardWithAllowPrevious.js b/test/forms/wizardWithAllowPrevious.js
index 9a7d33bb3f..940afc9a0f 100644
--- a/test/forms/wizardWithAllowPrevious.js
+++ b/test/forms/wizardWithAllowPrevious.js
@@ -1,43 +1,43 @@
export default {
- 'type': 'form',
- 'tags': [],
- 'components': [
- {
- 'title': 'Page 1',
- 'label': 'Page 1',
- 'type': 'panel',
- 'key': 'page1',
- 'components': [
+ type: 'form',
+ tags: [],
+ components: [
{
- 'label': 'A',
- 'tableView': false,
- 'key': 'a',
- 'type': 'checkbox',
- 'input': true,
- 'defaultValue': false
- }
- ],
- 'input': false,
- 'tableView': false
- },
- {
- 'title': 'Page 2',
- 'label': 'Page 2',
- 'type': 'panel',
- 'key': 'page2',
- 'components': [
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'A',
+ tableView: false,
+ key: 'a',
+ type: 'checkbox',
+ input: true,
+ defaultValue: false,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
{
- 'label': 'B',
- 'tableView': true,
- 'key': 'b',
- 'type': 'textfield',
- 'input': true
- }
- ],
- 'input': false,
- 'tableView': false
- },
- ],
- 'title': 'wizardWithAllowPreviousTest',
- 'display': 'wizard',
+ title: 'Page 2',
+ label: 'Page 2',
+ type: 'panel',
+ key: 'page2',
+ components: [
+ {
+ label: 'B',
+ tableView: true,
+ key: 'b',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ title: 'wizardWithAllowPreviousTest',
+ display: 'wizard',
};
diff --git a/test/forms/wizardWithComponentsWithSameApi.d.ts b/test/forms/wizardWithComponentsWithSameApi.d.ts
index 354505705e..d6e2245e9c 100644
--- a/test/forms/wizardWithComponentsWithSameApi.d.ts
+++ b/test/forms/wizardWithComponentsWithSameApi.d.ts
@@ -1,44 +1,47 @@
declare namespace _default {
const type: string;
- const components: ({
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- tableView: boolean;
- validate: {
- required: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- } | {
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- }[];
- input: boolean;
- tableView: boolean;
- })[];
+ const components: (
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ }
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ }[];
+ input: boolean;
+ tableView: boolean;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/wizardWithComponentsWithSameApi.js b/test/forms/wizardWithComponentsWithSameApi.js
index c091a81b68..3725060f98 100644
--- a/test/forms/wizardWithComponentsWithSameApi.js
+++ b/test/forms/wizardWithComponentsWithSameApi.js
@@ -1,56 +1,56 @@
export default {
- type: 'form',
- components: [
- {
- title: 'Page 1',
- label: 'Page 1',
- type: 'panel',
- key: 'page1',
- components: [
+ type: 'form',
+ components: [
{
- label: 'Text Field',
- tableView: true,
- validate: {
- required: true,
- },
- key: 'textField',
- type: 'textfield',
- input: true,
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ validate: {
+ required: true,
+ },
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
},
- ],
- input: false,
- tableView: false,
- },
- {
- title: 'Page 2',
- label: 'Page 2',
- type: 'panel',
- key: 'page2',
- components: [
{
- label: 'Container',
- tableView: false,
- key: 'container',
- type: 'container',
- input: true,
- components: [
- {
- label: 'Text Field',
- tableView: true,
- key: 'textField',
- type: 'textfield',
- input: true,
- },
- ],
+ title: 'Page 2',
+ label: 'Page 2',
+ type: 'panel',
+ key: 'page2',
+ components: [
+ {
+ label: 'Container',
+ tableView: false,
+ key: 'container',
+ type: 'container',
+ input: true,
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ ],
+ input: false,
+ tableView: false,
},
- ],
- input: false,
- tableView: false,
- },
- ],
- title: 'FIO-2492',
- display: 'wizard',
- name: 'fio2492',
- path: 'fio2492',
- machineName: 'eynzpktnbannula:fio2492',
+ ],
+ title: 'FIO-2492',
+ display: 'wizard',
+ name: 'fio2492',
+ path: 'fio2492',
+ machineName: 'eynzpktnbannula:fio2492',
};
diff --git a/test/forms/wizardWithCustomConditionalPage.d.ts b/test/forms/wizardWithCustomConditionalPage.d.ts
index 0e827e1b91..f5b362b9ff 100644
--- a/test/forms/wizardWithCustomConditionalPage.d.ts
+++ b/test/forms/wizardWithCustomConditionalPage.d.ts
@@ -1,52 +1,55 @@
declare namespace _default {
const type: string;
const tags: never[];
- const components: ({
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- defaultValue: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- breadcrumbClickable?: undefined;
- buttonSettings?: undefined;
- collapsible?: undefined;
- } | {
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- collapsible: boolean;
- tableView: boolean;
- key: string;
- customConditional: string;
- type: string;
- label: string;
- components: {
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- })[];
+ const components: (
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ defaultValue: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ breadcrumbClickable?: undefined;
+ buttonSettings?: undefined;
+ collapsible?: undefined;
+ }
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ collapsible: boolean;
+ tableView: boolean;
+ key: string;
+ customConditional: string;
+ type: string;
+ label: string;
+ components: {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/wizardWithCustomConditionalPage.js b/test/forms/wizardWithCustomConditionalPage.js
index 2a505088be..2e8aee1c09 100644
--- a/test/forms/wizardWithCustomConditionalPage.js
+++ b/test/forms/wizardWithCustomConditionalPage.js
@@ -1,52 +1,59 @@
export default {
- "type": "form",
- "tags": [],
- "components": [{
- "title": "Page 1",
- "label": "Page 1",
- "type": "panel",
- "key": "page1",
- "components": [{
- "label": "Checkbox",
- "tableView": false,
- "key": "checkbox",
- "type": "checkbox",
- "input": true,
- "defaultValue": false
- }],
- "input": false,
- "tableView": false
- }, {
- "title": "Page 2",
- "breadcrumbClickable": true,
- "buttonSettings": {
- "previous": true,
- "cancel": true,
- "next": true
- },
- "collapsible": false,
- "tableView": false,
- "key": "page2",
- "customConditional": "show = data.checkbox === true;",
- "type": "panel",
- "label": "Page 2",
- "components": [{
- "label": "Number",
- "mask": false,
- "spellcheck": true,
- "tableView": false,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "key": "number",
- "type": "number",
- "input": true
- }],
- "input": false
- }],
- "title": "wizard test",
- "display": "wizard",
- "name": "wizardTest",
- "path": "wizardtest",
- "machineName": "nyisrmnbdpnjfut:wizardTest"
+ type: 'form',
+ tags: [],
+ components: [
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Checkbox',
+ tableView: false,
+ key: 'checkbox',
+ type: 'checkbox',
+ input: true,
+ defaultValue: false,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ {
+ title: 'Page 2',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ collapsible: false,
+ tableView: false,
+ key: 'page2',
+ customConditional: 'show = data.checkbox === true;',
+ type: 'panel',
+ label: 'Page 2',
+ components: [
+ {
+ label: 'Number',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ ],
+ input: false,
+ },
+ ],
+ title: 'wizard test',
+ display: 'wizard',
+ name: 'wizardTest',
+ path: 'wizardtest',
+ machineName: 'nyisrmnbdpnjfut:wizardTest',
};
diff --git a/test/forms/wizardWithDataGridAndEditGrid.d.ts b/test/forms/wizardWithDataGridAndEditGrid.d.ts
index 91942f8618..3d004808ef 100644
--- a/test/forms/wizardWithDataGridAndEditGrid.d.ts
+++ b/test/forms/wizardWithDataGridAndEditGrid.d.ts
@@ -5,65 +5,68 @@ declare namespace _default {
label: string;
type: string;
key: string;
- components: ({
- label: string;
- tableView: boolean;
- rowDrafts: boolean;
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- breadcrumbClickable?: undefined;
- buttonSettings?: undefined;
- scrollToTop?: undefined;
- collapsible?: undefined;
- } | {
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- scrollToTop: boolean;
- collapsible: boolean;
- key: string;
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: {
- label: string;
- reorder: boolean;
- addAnotherPosition: string;
- layoutFixed: boolean;
- enableRowGroups: boolean;
- initEmpty: boolean;
- tableView: boolean;
- defaultValue: {}[];
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- }[];
- }[];
- rowDrafts?: undefined;
- })[];
+ components: (
+ | {
+ label: string;
+ tableView: boolean;
+ rowDrafts: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ breadcrumbClickable?: undefined;
+ buttonSettings?: undefined;
+ scrollToTop?: undefined;
+ collapsible?: undefined;
+ }
+ | {
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ scrollToTop: boolean;
+ collapsible: boolean;
+ key: string;
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: {
+ label: string;
+ reorder: boolean;
+ addAnotherPosition: string;
+ layoutFixed: boolean;
+ enableRowGroups: boolean;
+ initEmpty: boolean;
+ tableView: boolean;
+ defaultValue: {}[];
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ }[];
+ rowDrafts?: undefined;
+ }
+ )[];
input: boolean;
tableView: boolean;
}[];
diff --git a/test/forms/wizardWithDataGridAndEditGrid.js b/test/forms/wizardWithDataGridAndEditGrid.js
index fa2b2fde30..9c2574336c 100644
--- a/test/forms/wizardWithDataGridAndEditGrid.js
+++ b/test/forms/wizardWithDataGridAndEditGrid.js
@@ -1,70 +1,80 @@
export default {
- type: 'form',
- components: [
- {
- title: 'Page 1',
- label: 'Page 1',
- type: 'panel',
- key: 'page1',
- components: [
- {
- label: 'Edit Grid',
- tableView: false,
- rowDrafts: false,
- key: 'editGrid',
- type: 'editgrid',
- input: true,
- components: [
- { label: 'Text Field', tableView: true, key: 'textField', type: 'textfield', input: true }
- ]
- },
- {
- breadcrumbClickable: true,
- buttonSettings: { previous: true, cancel: true, next: true },
- scrollToTop: false,
- collapsible: false,
- key: 'panel',
- type: 'panel',
- label: 'Panel',
- input: false,
- tableView: false,
- components: [
- {
- label: 'Data Grid',
- reorder: false,
- addAnotherPosition: 'bottom',
- layoutFixed: false,
- enableRowGroups: false,
- initEmpty: false,
- tableView: false,
- defaultValue: [ {} ],
- key: 'dataGrid',
- type: 'datagrid',
- input: true,
- components: [
- {
- label: 'Number',
- mask: false,
- spellcheck: true,
- tableView: false,
- delimiter: false,
- requireDecimal: false,
- inputFormat: 'plain',
- key: 'number',
- type: 'number',
- input: true
- }
- ]
- }
- ]
- }
- ],
- input: false,
- tableView: false
- }
- ],
- title: 'test saving data',
- display: 'wizard',
- name: 'testSavingData',
- path: 'testsavingdata',
+ type: 'form',
+ components: [
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Edit Grid',
+ tableView: false,
+ rowDrafts: false,
+ key: 'editGrid',
+ type: 'editgrid',
+ input: true,
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ {
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'panel',
+ type: 'panel',
+ label: 'Panel',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Data Grid',
+ reorder: false,
+ addAnotherPosition: 'bottom',
+ layoutFixed: false,
+ enableRowGroups: false,
+ initEmpty: false,
+ tableView: false,
+ defaultValue: [{}],
+ key: 'dataGrid',
+ type: 'datagrid',
+ input: true,
+ components: [
+ {
+ label: 'Number',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ title: 'test saving data',
+ display: 'wizard',
+ name: 'testSavingData',
+ path: 'testsavingdata',
};
diff --git a/test/forms/wizardWithEditGrid.d.ts b/test/forms/wizardWithEditGrid.d.ts
index 8bfda0840d..cf25f41566 100644
--- a/test/forms/wizardWithEditGrid.d.ts
+++ b/test/forms/wizardWithEditGrid.d.ts
@@ -1,50 +1,53 @@
declare namespace _default {
const type: string;
const tags: never[];
- const components: ({
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- disabled?: undefined;
- } | {
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- tableView: boolean;
- rowDrafts: boolean;
- key: string;
- type: string;
- input: boolean;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- }[];
- input: boolean;
- tableView: boolean;
- disabled: boolean;
- })[];
+ const components: (
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ disabled?: undefined;
+ }
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ rowDrafts: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ }[];
+ input: boolean;
+ tableView: boolean;
+ disabled: boolean;
+ }
+ )[];
const title: string;
const display: string;
}
diff --git a/test/forms/wizardWithEditGrid.js b/test/forms/wizardWithEditGrid.js
index 6676298f31..32216656e5 100644
--- a/test/forms/wizardWithEditGrid.js
+++ b/test/forms/wizardWithEditGrid.js
@@ -1,49 +1,58 @@
export default {
- 'type': 'form',
- 'tags': [],
- 'components': [{
- 'title': 'Page 1',
- 'label': 'Page 1',
- 'type': 'panel',
- 'key': 'page1',
- 'components': [{
- 'label': 'Number',
- 'mask': false,
- 'spellcheck': true,
- 'tableView': false,
- 'delimiter': false,
- 'requireDecimal': false,
- 'inputFormat': 'plain',
- 'key': 'number',
- 'type': 'number',
- 'input': true
- }],
- 'input': false,
- 'tableView': false
- }, {
- 'title': 'Page 2',
- 'label': 'Page 2',
- 'type': 'panel',
- 'key': 'page2',
- 'components': [{
- 'label': 'Edit Grid',
- 'tableView': false,
- 'rowDrafts': false,
- 'key': 'editGrid',
- 'type': 'editgrid',
- 'input': true,
- 'components': [{
- 'label': 'Text Field',
- 'tableView': true,
- 'key': 'textField',
- 'type': 'textfield',
- 'input': true
- }]
- }],
- 'input': false,
- 'tableView': false,
- 'disabled': true,
- }],
- 'title': 'editGridInsideWizardTest',
- 'display': 'wizard',
+ type: 'form',
+ tags: [],
+ components: [
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Number',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ {
+ title: 'Page 2',
+ label: 'Page 2',
+ type: 'panel',
+ key: 'page2',
+ components: [
+ {
+ label: 'Edit Grid',
+ tableView: false,
+ rowDrafts: false,
+ key: 'editGrid',
+ type: 'editgrid',
+ input: true,
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ ],
+ input: false,
+ tableView: false,
+ disabled: true,
+ },
+ ],
+ title: 'editGridInsideWizardTest',
+ display: 'wizard',
};
diff --git a/test/forms/wizardWithFieldsValidationChild.d.ts b/test/forms/wizardWithFieldsValidationChild.d.ts
index 2fdfcb5446..8b9ecc20a9 100644
--- a/test/forms/wizardWithFieldsValidationChild.d.ts
+++ b/test/forms/wizardWithFieldsValidationChild.d.ts
@@ -3,69 +3,75 @@ declare namespace _default {
const type: string;
const tags: never[];
const owner: string;
- const components: ({
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- scrollToTop: boolean;
- collapsible: boolean;
- key: string;
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: ({
- label: string;
- tableView: boolean;
- validate: {
- required: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- } | {
- label: string;
- tableView: boolean;
- validate: {
- required: boolean;
- custom: string;
- };
- key: string;
- type: string;
- input: boolean;
- })[];
- } | {
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- scrollToTop: boolean;
- collapsible: boolean;
- key: string;
- type: string;
- label: string;
- components: {
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- })[];
+ const components: (
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ scrollToTop: boolean;
+ collapsible: boolean;
+ key: string;
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: (
+ | {
+ label: string;
+ tableView: boolean;
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ }
+ | {
+ label: string;
+ tableView: boolean;
+ validate: {
+ required: boolean;
+ custom: string;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ }
+ )[];
+ }
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ scrollToTop: boolean;
+ collapsible: boolean;
+ key: string;
+ type: string;
+ label: string;
+ components: {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ }
+ )[];
const revisions: string;
const _vid: number;
const title: string;
diff --git a/test/forms/wizardWithFieldsValidationChild.js b/test/forms/wizardWithFieldsValidationChild.js
index b33c4747cb..e495c40d14 100644
--- a/test/forms/wizardWithFieldsValidationChild.js
+++ b/test/forms/wizardWithFieldsValidationChild.js
@@ -1,186 +1,186 @@
export default {
- '_id': '60b0aa39b332da2f881e34d7',
- 'type': 'form',
- 'tags': [],
- 'owner': '6038bed737595d104cfc358a',
- 'components': [
- {
- 'title': 'Page 1',
- 'breadcrumbClickable': true,
- 'buttonSettings': {
- 'previous': true,
- 'cancel': true,
- 'next': true
- },
- 'scrollToTop': false,
- 'collapsible': false,
- 'key': 'page1',
- 'type': 'panel',
- 'label': 'Page 2',
- 'input': false,
- 'tableView': false,
- 'components': [
- {
- 'label': "One when 'one'",
- 'tableView': true,
- 'validate': {
- 'required': true
- },
- 'key': 'textField',
- 'type': 'textfield',
- 'input': true
- },
- {
- 'label': 'Test Validation',
- 'tableView': true,
- 'validate': {
- 'required': true,
- 'custom': "valid = ( input === data.textField ) ? true : 'These do not match'"
- },
- 'key': 'testValidation',
- 'type': 'textfield',
- 'input': true
- }
- ]
- },
- {
- 'title': 'Page 2',
- 'breadcrumbClickable': true,
- 'buttonSettings': {
- 'previous': true,
- 'cancel': true,
- 'next': true
- },
- 'scrollToTop': false,
- 'collapsible': false,
- 'key': 'page2',
- 'type': 'panel',
- 'label': 'Page 2',
- 'components': [
- {
- 'label': 'Number',
- 'mask': false,
- 'spellcheck': true,
- 'tableView': false,
- 'delimiter': false,
- 'requireDecimal': false,
- 'inputFormat': 'plain',
- 'key': 'number',
- 'type': 'number',
- 'input': true
- }
- ],
- 'input': false,
- 'tableView': false
- }
- ],
- 'revisions': '',
- '_vid': 0,
- 'title': 'tr-test',
- 'display': 'wizard',
- 'access': [
- {
- 'roles': [],
- 'type': 'create_own'
- },
- {
- 'roles': [],
- 'type': 'create_all'
- },
- {
- 'roles': [],
- 'type': 'read_own'
- },
- {
- 'roles': [
- '6038c83637595d104cfc3594',
- '6038c83637595d104cfc3595',
- '6038c83637595d104cfc3596'
- ],
- 'type': 'read_all'
- },
- {
- 'roles': [],
- 'type': 'update_own'
- },
- {
- 'roles': [],
- 'type': 'update_all'
- },
- {
- 'roles': [],
- 'type': 'delete_own'
- },
- {
- 'roles': [],
- 'type': 'delete_all'
- },
- {
- 'roles': [],
- 'type': 'team_read'
- },
- {
- 'roles': [],
- 'type': 'team_write'
- },
- {
- 'roles': [],
- 'type': 'team_admin'
- }
- ],
- 'submissionAccess': [
- {
- 'roles': [],
- 'type': 'create_own'
- },
- {
- 'roles': [],
- 'type': 'create_all'
- },
- {
- 'roles': [],
- 'type': 'read_own'
- },
- {
- 'roles': [],
- 'type': 'read_all'
- },
- {
- 'roles': [],
- 'type': 'update_own'
- },
- {
- 'roles': [],
- 'type': 'update_all'
- },
- {
- 'roles': [],
- 'type': 'delete_own'
- },
- {
- 'roles': [],
- 'type': 'delete_all'
- },
- {
- 'roles': [],
- 'type': 'team_read'
- },
- {
- 'roles': [],
- 'type': 'team_write'
- },
- {
- 'roles': [],
- 'type': 'team_admin'
- }
- ],
- 'controller': '',
- 'properties': {},
- 'settings': {},
- 'name': 'trTest',
- 'path': 'trtest',
- 'project': '6038c83637595d104cfc3593',
- 'created': '2021-05-28T08:30:49.627Z',
- 'modified': '2021-05-28T10:22:08.797Z',
- 'machineName': 'dqroghuntybetsh:trTest'
+ _id: '60b0aa39b332da2f881e34d7',
+ type: 'form',
+ tags: [],
+ owner: '6038bed737595d104cfc358a',
+ components: [
+ {
+ title: 'Page 1',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'page1',
+ type: 'panel',
+ label: 'Page 2',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: "One when 'one'",
+ tableView: true,
+ validate: {
+ required: true,
+ },
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Test Validation',
+ tableView: true,
+ validate: {
+ required: true,
+ custom: "valid = ( input === data.textField ) ? true : 'These do not match'",
+ },
+ key: 'testValidation',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ },
+ {
+ title: 'Page 2',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'page2',
+ type: 'panel',
+ label: 'Page 2',
+ components: [
+ {
+ label: 'Number',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'tr-test',
+ display: 'wizard',
+ access: [
+ {
+ roles: [],
+ type: 'create_own',
+ },
+ {
+ roles: [],
+ type: 'create_all',
+ },
+ {
+ roles: [],
+ type: 'read_own',
+ },
+ {
+ roles: [
+ '6038c83637595d104cfc3594',
+ '6038c83637595d104cfc3595',
+ '6038c83637595d104cfc3596',
+ ],
+ type: 'read_all',
+ },
+ {
+ roles: [],
+ type: 'update_own',
+ },
+ {
+ roles: [],
+ type: 'update_all',
+ },
+ {
+ roles: [],
+ type: 'delete_own',
+ },
+ {
+ roles: [],
+ type: 'delete_all',
+ },
+ {
+ roles: [],
+ type: 'team_read',
+ },
+ {
+ roles: [],
+ type: 'team_write',
+ },
+ {
+ roles: [],
+ type: 'team_admin',
+ },
+ ],
+ submissionAccess: [
+ {
+ roles: [],
+ type: 'create_own',
+ },
+ {
+ roles: [],
+ type: 'create_all',
+ },
+ {
+ roles: [],
+ type: 'read_own',
+ },
+ {
+ roles: [],
+ type: 'read_all',
+ },
+ {
+ roles: [],
+ type: 'update_own',
+ },
+ {
+ roles: [],
+ type: 'update_all',
+ },
+ {
+ roles: [],
+ type: 'delete_own',
+ },
+ {
+ roles: [],
+ type: 'delete_all',
+ },
+ {
+ roles: [],
+ type: 'team_read',
+ },
+ {
+ roles: [],
+ type: 'team_write',
+ },
+ {
+ roles: [],
+ type: 'team_admin',
+ },
+ ],
+ controller: '',
+ properties: {},
+ settings: {},
+ name: 'trTest',
+ path: 'trtest',
+ project: '6038c83637595d104cfc3593',
+ created: '2021-05-28T08:30:49.627Z',
+ modified: '2021-05-28T10:22:08.797Z',
+ machineName: 'dqroghuntybetsh:trTest',
};
diff --git a/test/forms/wizardWithFieldsValidationParent.js b/test/forms/wizardWithFieldsValidationParent.js
index 42a2c7c23f..eefc3019c8 100644
--- a/test/forms/wizardWithFieldsValidationParent.js
+++ b/test/forms/wizardWithFieldsValidationParent.js
@@ -1,51 +1,51 @@
export default {
- '_id': '60b0abf1b332da2f881e34f4',
- 'type': 'form',
- 'tags': [],
- 'owner': '6038bed737595d104cfc358a',
- 'components': [
- {
- 'title': 'Page 1',
- 'label': 'Page 1',
- 'type': 'panel',
- 'key': 'page1',
- 'components': [
+ _id: '60b0abf1b332da2f881e34f4',
+ type: 'form',
+ tags: [],
+ owner: '6038bed737595d104cfc358a',
+ components: [
{
- 'label': 'Form',
- 'tableView': true,
- // 'form': '60b0aa39b332da2f881e34d7',
- 'useOriginalRevision': false,
- 'key': 'formNested',
- 'type': 'form',
- 'input': true
- }
- ],
- 'input': false,
- 'tableView': false
- }
- ],
- 'revisions': '',
- '_vid': 0,
- 'title': 'tr-test-parent',
- 'display': 'wizard',
- 'access': [
- {
- 'roles': [
- '6038c83637595d104cfc3594',
- '6038c83637595d104cfc3595',
- '6038c83637595d104cfc3596'
- ],
- 'type': 'read_all'
- }
- ],
- 'submissionAccess': [],
- 'controller': '',
- 'properties': {},
- 'settings': {},
- 'name': 'trTestParent',
- 'path': 'trtestparent',
- 'project': '6038c83637595d104cfc3593',
- 'created': '2021-05-28T08:38:09.740Z',
- 'modified': '2021-05-28T08:38:09.746Z',
- 'machineName': 'dqroghuntybetsh:trTestParent'
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Form',
+ tableView: true,
+ // 'form': '60b0aa39b332da2f881e34d7',
+ useOriginalRevision: false,
+ key: 'formNested',
+ type: 'form',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'tr-test-parent',
+ display: 'wizard',
+ access: [
+ {
+ roles: [
+ '6038c83637595d104cfc3594',
+ '6038c83637595d104cfc3595',
+ '6038c83637595d104cfc3596',
+ ],
+ type: 'read_all',
+ },
+ ],
+ submissionAccess: [],
+ controller: '',
+ properties: {},
+ settings: {},
+ name: 'trTestParent',
+ path: 'trtestparent',
+ project: '6038c83637595d104cfc3593',
+ created: '2021-05-28T08:38:09.740Z',
+ modified: '2021-05-28T08:38:09.746Z',
+ machineName: 'dqroghuntybetsh:trTestParent',
};
diff --git a/test/forms/wizardWithFirstConditionalPage.d.ts b/test/forms/wizardWithFirstConditionalPage.d.ts
index b8be1b8ecb..f99e9862c5 100644
--- a/test/forms/wizardWithFirstConditionalPage.d.ts
+++ b/test/forms/wizardWithFirstConditionalPage.d.ts
@@ -3,54 +3,57 @@ declare namespace _default {
const type: string;
const tags: never[];
const owner: string;
- const components: ({
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- collapsible: boolean;
- key: string;
- conditional: {
- show: boolean;
- when: string;
- eq: string;
- };
- type: string;
- label: string;
- components: {
- label: string;
- tableView: boolean;
- validate: {
- required: boolean;
- };
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- } | {
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- breadcrumbClickable?: undefined;
- buttonSettings?: undefined;
- collapsible?: undefined;
- conditional?: undefined;
- })[];
+ const components: (
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ collapsible: boolean;
+ key: string;
+ conditional: {
+ show: boolean;
+ when: string;
+ eq: string;
+ };
+ type: string;
+ label: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ validate: {
+ required: boolean;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ }
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ breadcrumbClickable?: undefined;
+ buttonSettings?: undefined;
+ collapsible?: undefined;
+ conditional?: undefined;
+ }
+ )[];
const revisions: string;
const _vid: number;
const title: string;
diff --git a/test/forms/wizardWithFirstConditionalPage.js b/test/forms/wizardWithFirstConditionalPage.js
index 7d7c2d7f77..4007c6b6c2 100644
--- a/test/forms/wizardWithFirstConditionalPage.js
+++ b/test/forms/wizardWithFirstConditionalPage.js
@@ -1,81 +1,81 @@
export default {
- _id: '5f9149b4d0f4d37edc66e759',
- type: 'form',
- tags: [],
- owner: '5f04635a0b7e4512160f3d9f',
- components: [
- {
- title: 'Page 1',
- breadcrumbClickable: true,
- buttonSettings: {
- previous: true,
- cancel: true,
- next: true,
- },
- collapsible: false,
- key: 'page1',
- conditional: {
- show: true,
- when: 'b',
- eq: 'true',
- },
- type: 'panel',
- label: 'Page 1',
- components: [
+ _id: '5f9149b4d0f4d37edc66e759',
+ type: 'form',
+ tags: [],
+ owner: '5f04635a0b7e4512160f3d9f',
+ components: [
{
- label: 'Parent A',
- tableView: true,
- validate: {
- required: true,
- },
- key: 'parentA',
- type: 'textfield',
- input: true,
+ title: 'Page 1',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ collapsible: false,
+ key: 'page1',
+ conditional: {
+ show: true,
+ when: 'b',
+ eq: 'true',
+ },
+ type: 'panel',
+ label: 'Page 1',
+ components: [
+ {
+ label: 'Parent A',
+ tableView: true,
+ validate: {
+ required: true,
+ },
+ key: 'parentA',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
},
- ],
- input: false,
- tableView: false,
- },
- {
- title: 'Page 2',
- label: 'Page 2',
- type: 'panel',
- key: 'page2',
- components: [
{
- label: 'Parent B',
- tableView: true,
- key: 'b',
- type: 'textfield',
- input: true,
+ title: 'Page 2',
+ label: 'Page 2',
+ type: 'panel',
+ key: 'page2',
+ components: [
+ {
+ label: 'Parent B',
+ tableView: true,
+ key: 'b',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
},
- ],
- input: false,
- tableView: false,
- },
- ],
- revisions: '',
- _vid: 0,
- title: 'FJS-1299',
- display: 'wizard',
- access: [
- {
- roles: [
- '5f47eadc8aeb8509a99f61b6',
- '5f47eadc8aeb8509a99f61b7',
- '5f47eadc8aeb8509a99f61b8',
- ],
- type: 'read_all',
- },
- ],
- submissionAccess: [],
- controller: '',
- properties: {},
- settings: {},
- name: 'conditionalWizardTest',
- path: 'conditionalwizardtest',
- project: '5f47eadc8aeb8509a99f61b5',
- created: '2020-08-27T17:19:15.128Z',
- modified: '2020-08-27T17:19:15.131Z',
- machineName: 'ywvqkdghljvoegd:conditionalWizardTest',
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'FJS-1299',
+ display: 'wizard',
+ access: [
+ {
+ roles: [
+ '5f47eadc8aeb8509a99f61b6',
+ '5f47eadc8aeb8509a99f61b7',
+ '5f47eadc8aeb8509a99f61b8',
+ ],
+ type: 'read_all',
+ },
+ ],
+ submissionAccess: [],
+ controller: '',
+ properties: {},
+ settings: {},
+ name: 'conditionalWizardTest',
+ path: 'conditionalwizardtest',
+ project: '5f47eadc8aeb8509a99f61b5',
+ created: '2020-08-27T17:19:15.128Z',
+ modified: '2020-08-27T17:19:15.131Z',
+ machineName: 'ywvqkdghljvoegd:conditionalWizardTest',
};
diff --git a/test/forms/wizardWithHiddenPanel.d.ts b/test/forms/wizardWithHiddenPanel.d.ts
index 92953a1cf7..ca1b8b1e9f 100644
--- a/test/forms/wizardWithHiddenPanel.d.ts
+++ b/test/forms/wizardWithHiddenPanel.d.ts
@@ -1,478 +1,482 @@
declare namespace _default {
const _id: string;
const type: string;
- const components: ({
- title: string;
- label: string;
- type: string;
- key: string;
- input: boolean;
- tableView: boolean;
- components: {
- label: string;
- labelPosition: string;
- placeholder: string;
- description: string;
- tooltip: string;
- prefix: string;
- suffix: string;
- widget: {
- type: string;
- };
- customClass: string;
- tabindex: string;
- autocomplete: string;
- hidden: boolean;
- hideLabel: boolean;
- mask: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- multiple: boolean;
- persistent: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- protected: boolean;
- dbIndex: boolean;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- min: string;
- max: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- step: string;
- integer: string;
- };
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- input: boolean;
- unique: boolean;
- refreshOn: string;
- showCharCount: boolean;
- showWordCount: boolean;
- allowMultipleMasks: boolean;
- id: string;
- defaultValue: null;
- }[];
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- modalEdit: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- widget: null;
- attributes: {};
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- json?: undefined;
- };
- overlay: {
- style: string;
- left: string;
- top: string;
- width: string;
- height: string;
- page?: undefined;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- properties: {};
- allowMultipleMasks: boolean;
- tree: boolean;
- theme: string;
- breadcrumb: string;
- id: string;
- breadcrumbClickable?: undefined;
- buttonSettings?: undefined;
- collapsible?: undefined;
- tags?: undefined;
- nextPage?: undefined;
- logic?: undefined;
- } | {
- title: string;
- theme: string;
- breadcrumb: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- tooltip: string;
- customClass: string;
- collapsible: boolean;
- hidden: boolean;
- hideLabel: boolean;
- disabled: boolean;
- modalEdit: boolean;
- key: string;
- tags: never[];
- properties: {};
- customConditional: string;
- conditional: {
- json: string;
- show: null;
- when: null;
- eq: string;
- };
- nextPage: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- label: string;
- tabindex: string;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- modalEdit: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- widget: {
- type: string;
- };
- attributes: {};
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- minLength: string;
- maxLength: string;
- pattern: string;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- };
- overlay: {
- style: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- properties: {};
- allowMultipleMasks: boolean;
- mask: boolean;
- inputType: string;
- inputFormat: string;
- inputMask: string;
- spellcheck: boolean;
- id: string;
- }[];
- input: boolean;
- tableView: boolean;
- placeholder: string;
- prefix: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- labelPosition: string;
- description: string;
- errorLabel: string;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- widget: null;
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- allowMultipleMasks: boolean;
- tree: boolean;
- id: string;
- } | {
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- labelPosition: string;
- placeholder: string;
- description: string;
- tooltip: string;
- prefix: string;
- suffix: string;
- widget: {
- type: string;
- };
- editor: string;
- autoExpand: boolean;
- customClass: string;
- tabindex: string;
- autocomplete: string;
- hidden: boolean;
- hideLabel: boolean;
- showWordCount: boolean;
- showCharCount: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- multiple: boolean;
- persistent: boolean;
- inputFormat: string;
- protected: boolean;
- dbIndex: boolean;
- case: string;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- pattern: string;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- minLength: string;
- maxLength: string;
- minWords: string;
- maxWords: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- unique: boolean;
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- fixedSize: boolean;
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- attributes: {};
- type: string;
- rows: number;
- wysiwyg: boolean;
- input: boolean;
- refreshOn: string;
- allowMultipleMasks: boolean;
- mask: boolean;
- inputType: string;
- inputMask: string;
- id: string;
- defaultValue: null;
- }[];
- input: boolean;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- tableView: boolean;
- modalEdit: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- widget: null;
- attributes: {};
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- json?: undefined;
- };
- overlay: {
- style: string;
- left: string;
- top: string;
- width: string;
- height: string;
- page?: undefined;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- properties: {};
- allowMultipleMasks: boolean;
- tree: boolean;
- theme: string;
- breadcrumb: string;
- id: string;
- breadcrumbClickable?: undefined;
- buttonSettings?: undefined;
- collapsible?: undefined;
- tags?: undefined;
- nextPage?: undefined;
- logic?: undefined;
- })[];
+ const components: (
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ input: boolean;
+ tableView: boolean;
+ components: {
+ label: string;
+ labelPosition: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ prefix: string;
+ suffix: string;
+ widget: {
+ type: string;
+ };
+ customClass: string;
+ tabindex: string;
+ autocomplete: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ mask: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ multiple: boolean;
+ persistent: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ protected: boolean;
+ dbIndex: boolean;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ min: string;
+ max: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ step: string;
+ integer: string;
+ };
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ input: boolean;
+ unique: boolean;
+ refreshOn: string;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ allowMultipleMasks: boolean;
+ id: string;
+ defaultValue: null;
+ }[];
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ modalEdit: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ widget: null;
+ attributes: {};
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json?: undefined;
+ };
+ overlay: {
+ style: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ page?: undefined;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ properties: {};
+ allowMultipleMasks: boolean;
+ tree: boolean;
+ theme: string;
+ breadcrumb: string;
+ id: string;
+ breadcrumbClickable?: undefined;
+ buttonSettings?: undefined;
+ collapsible?: undefined;
+ tags?: undefined;
+ nextPage?: undefined;
+ logic?: undefined;
+ }
+ | {
+ title: string;
+ theme: string;
+ breadcrumb: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ tooltip: string;
+ customClass: string;
+ collapsible: boolean;
+ hidden: boolean;
+ hideLabel: boolean;
+ disabled: boolean;
+ modalEdit: boolean;
+ key: string;
+ tags: never[];
+ properties: {};
+ customConditional: string;
+ conditional: {
+ json: string;
+ show: null;
+ when: null;
+ eq: string;
+ };
+ nextPage: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ label: string;
+ tabindex: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ modalEdit: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ widget: {
+ type: string;
+ };
+ attributes: {};
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ minLength: string;
+ maxLength: string;
+ pattern: string;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ };
+ overlay: {
+ style: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ properties: {};
+ allowMultipleMasks: boolean;
+ mask: boolean;
+ inputType: string;
+ inputFormat: string;
+ inputMask: string;
+ spellcheck: boolean;
+ id: string;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ placeholder: string;
+ prefix: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ widget: null;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ allowMultipleMasks: boolean;
+ tree: boolean;
+ id: string;
+ }
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ labelPosition: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ prefix: string;
+ suffix: string;
+ widget: {
+ type: string;
+ };
+ editor: string;
+ autoExpand: boolean;
+ customClass: string;
+ tabindex: string;
+ autocomplete: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ showWordCount: boolean;
+ showCharCount: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ multiple: boolean;
+ persistent: boolean;
+ inputFormat: string;
+ protected: boolean;
+ dbIndex: boolean;
+ case: string;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ pattern: string;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ minLength: string;
+ maxLength: string;
+ minWords: string;
+ maxWords: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ unique: boolean;
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ fixedSize: boolean;
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ attributes: {};
+ type: string;
+ rows: number;
+ wysiwyg: boolean;
+ input: boolean;
+ refreshOn: string;
+ allowMultipleMasks: boolean;
+ mask: boolean;
+ inputType: string;
+ inputMask: string;
+ id: string;
+ defaultValue: null;
+ }[];
+ input: boolean;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ tableView: boolean;
+ modalEdit: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ widget: null;
+ attributes: {};
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json?: undefined;
+ };
+ overlay: {
+ style: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ page?: undefined;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ properties: {};
+ allowMultipleMasks: boolean;
+ tree: boolean;
+ theme: string;
+ breadcrumb: string;
+ id: string;
+ breadcrumbClickable?: undefined;
+ buttonSettings?: undefined;
+ collapsible?: undefined;
+ tags?: undefined;
+ nextPage?: undefined;
+ logic?: undefined;
+ }
+ )[];
const revisions: string;
const _vid: number;
const title: string;
diff --git a/test/forms/wizardWithHiddenPanel.js b/test/forms/wizardWithHiddenPanel.js
index d2e4401e86..8fa8582986 100644
--- a/test/forms/wizardWithHiddenPanel.js
+++ b/test/forms/wizardWithHiddenPanel.js
@@ -1,467 +1,477 @@
export default {
- "_id": "5fad32107fabb08b982efcbc",
- "type": "form",
- "components": [{
- "title": "Page 1",
- "label": "Page 1",
- "type": "panel",
- "key": "page1",
- "input": false,
- "tableView": false,
- "components": [{
- "label": "Number",
- "labelPosition": "top",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "prefix": "",
- "suffix": "",
- "widget": {
- "type": "input"
- },
- "customClass": "",
- "tabindex": "",
- "autocomplete": "",
- "hidden": false,
- "hideLabel": false,
- "mask": false,
- "autofocus": false,
- "spellcheck": true,
- "disabled": false,
- "tableView": false,
- "modalEdit": false,
- "multiple": false,
- "persistent": true,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "protected": false,
- "dbIndex": false,
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "min": "",
- "max": "",
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "step": "any",
- "integer": ""
- },
- "errorLabel": "",
- "key": "number",
- "tags": [],
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "number",
- "input": true,
- "unique": false,
- "refreshOn": "",
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "id": "evnv4vv",
- "defaultValue": null
- }],
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": false,
- "refreshOn": "",
- "redrawOn": "",
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": null,
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "tree": false,
- "theme": "default",
- "breadcrumb": "default",
- "id": "e3zq9o"
- }, {
- "title": "Page 2",
- "theme": "default",
- "breadcrumb": "default",
- "breadcrumbClickable": true,
- "buttonSettings": {
- "previous": true,
- "cancel": true,
- "next": true
- },
- "tooltip": "",
- "customClass": "",
- "collapsible": false,
- "hidden": true,
- "hideLabel": false,
- "disabled": false,
- "modalEdit": false,
- "key": "page2",
- "tags": [],
- "properties": {},
- "customConditional": "",
- "conditional": {
- "json": "",
- "show": null,
- "when": null,
- "eq": ""
- },
- "nextPage": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "panel",
- "label": "Page 2",
- "tabindex": "",
- "components": [{
- "label": "Text Field",
- "tableView": true,
- "key": "textField",
- "type": "textfield",
- "input": true,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": {
- "type": "input"
- },
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "mask": false,
- "inputType": "text",
- "inputFormat": "plain",
- "inputMask": "",
- "spellcheck": true,
- "id": "efg5kvc"
- }],
- "input": false,
- "tableView": false,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "clearOnHide": false,
- "refreshOn": "",
- "redrawOn": "",
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": null,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "tree": false,
- "id": "efbo5r6"
- }, {
- "title": "Page 3",
- "label": "Page 3",
- "type": "panel",
- "key": "page3",
- "components": [{
- "label": "Text Area",
- "labelPosition": "top",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "prefix": "",
- "suffix": "",
- "widget": {
- "type": "input"
- },
- "editor": "",
- "autoExpand": false,
- "customClass": "",
- "tabindex": "",
- "autocomplete": "",
- "hidden": false,
- "hideLabel": false,
- "showWordCount": false,
- "showCharCount": false,
- "autofocus": false,
- "spellcheck": true,
- "disabled": false,
- "tableView": true,
- "modalEdit": false,
- "multiple": false,
- "persistent": true,
- "inputFormat": "html",
- "protected": false,
- "dbIndex": false,
- "case": "",
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "pattern": "",
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "minLength": "",
- "maxLength": "",
- "minWords": "",
- "maxWords": "",
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "unique": false,
- "errorLabel": "",
- "key": "textArea",
- "tags": [],
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "fixedSize": true,
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "attributes": {},
- "type": "textarea",
- "rows": 3,
- "wysiwyg": false,
- "input": true,
- "refreshOn": "",
- "allowMultipleMasks": false,
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "ew497n",
- "defaultValue": null
- }],
- "input": false,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": false,
- "refreshOn": "",
- "redrawOn": "",
- "tableView": false,
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": null,
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "tree": false,
- "theme": "default",
- "breadcrumb": "default",
- "id": "eqgqlyk"
- }],
- "revisions": "",
- "_vid": 0,
- "title": "testHiddenWIzardPannel",
- "display": "wizard",
- "name": "testHiddenWIzardPannel",
- "path": "testhiddenwizardpannel",
- "machineName": "cjksbatcpbhyfbs:testHiddenWIzardPannel"
-}
+ _id: '5fad32107fabb08b982efcbc',
+ type: 'form',
+ components: [
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Number',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ customClass: '',
+ tabindex: '',
+ autocomplete: '',
+ hidden: false,
+ hideLabel: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: false,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ min: '',
+ max: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ step: 'any',
+ integer: '',
+ },
+ errorLabel: '',
+ key: 'number',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'number',
+ input: true,
+ unique: false,
+ refreshOn: '',
+ showCharCount: false,
+ showWordCount: false,
+ allowMultipleMasks: false,
+ id: 'evnv4vv',
+ defaultValue: null,
+ },
+ ],
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ modalEdit: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: null,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ tree: false,
+ theme: 'default',
+ breadcrumb: 'default',
+ id: 'e3zq9o',
+ },
+ {
+ title: 'Page 2',
+ theme: 'default',
+ breadcrumb: 'default',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ tooltip: '',
+ customClass: '',
+ collapsible: false,
+ hidden: true,
+ hideLabel: false,
+ disabled: false,
+ modalEdit: false,
+ key: 'page2',
+ tags: [],
+ properties: {},
+ customConditional: '',
+ conditional: {
+ json: '',
+ show: null,
+ when: null,
+ eq: '',
+ },
+ nextPage: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'panel',
+ label: 'Page 2',
+ tabindex: '',
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ refreshOn: '',
+ redrawOn: '',
+ modalEdit: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: {
+ type: 'input',
+ },
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ mask: false,
+ inputType: 'text',
+ inputFormat: 'plain',
+ inputMask: '',
+ spellcheck: true,
+ id: 'efg5kvc',
+ },
+ ],
+ input: false,
+ tableView: false,
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: null,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ allowMultipleMasks: false,
+ tree: false,
+ id: 'efbo5r6',
+ },
+ {
+ title: 'Page 3',
+ label: 'Page 3',
+ type: 'panel',
+ key: 'page3',
+ components: [
+ {
+ label: 'Text Area',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ editor: '',
+ autoExpand: false,
+ customClass: '',
+ tabindex: '',
+ autocomplete: '',
+ hidden: false,
+ hideLabel: false,
+ showWordCount: false,
+ showCharCount: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: true,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ inputFormat: 'html',
+ protected: false,
+ dbIndex: false,
+ case: '',
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ pattern: '',
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ minLength: '',
+ maxLength: '',
+ minWords: '',
+ maxWords: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ unique: false,
+ errorLabel: '',
+ key: 'textArea',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ fixedSize: true,
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ attributes: {},
+ type: 'textarea',
+ rows: 3,
+ wysiwyg: false,
+ input: true,
+ refreshOn: '',
+ allowMultipleMasks: false,
+ mask: false,
+ inputType: 'text',
+ inputMask: '',
+ id: 'ew497n',
+ defaultValue: null,
+ },
+ ],
+ input: false,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ hidden: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ tableView: false,
+ modalEdit: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: null,
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ tree: false,
+ theme: 'default',
+ breadcrumb: 'default',
+ id: 'eqgqlyk',
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'testHiddenWIzardPannel',
+ display: 'wizard',
+ name: 'testHiddenWIzardPannel',
+ path: 'testhiddenwizardpannel',
+ machineName: 'cjksbatcpbhyfbs:testHiddenWIzardPannel',
+};
diff --git a/test/forms/wizardWithHighPages.json b/test/forms/wizardWithHighPages.json
index 120af524b2..31f3b9faf5 100644
--- a/test/forms/wizardWithHighPages.json
+++ b/test/forms/wizardWithHighPages.json
@@ -1,126 +1,126 @@
{
- "type": "form",
- "owner": "5e05a6b7549cdc2ece30c6b0",
- "components": [
- {
- "title": "Page 1",
- "label": "Page 1",
- "type": "panel",
- "key": "page1",
- "scrollToTop": true,
- "breadcrumb": "none",
- "components": [
+ "type": "form",
+ "owner": "5e05a6b7549cdc2ece30c6b0",
+ "components": [
{
- "label": "Text Area",
- "autoExpand": false,
- "tableView": true,
- "key": "textArea3",
- "type": "textarea",
- "input": true
+ "title": "Page 1",
+ "label": "Page 1",
+ "type": "panel",
+ "key": "page1",
+ "scrollToTop": true,
+ "breadcrumb": "none",
+ "components": [
+ {
+ "label": "Text Area",
+ "autoExpand": false,
+ "tableView": true,
+ "key": "textArea3",
+ "type": "textarea",
+ "input": true
+ },
+ {
+ "label": "Text Area",
+ "autoExpand": false,
+ "tableView": true,
+ "key": "textArea6",
+ "type": "textarea",
+ "input": true
+ },
+ {
+ "label": "Text Area",
+ "autoExpand": false,
+ "tableView": true,
+ "key": "textArea5",
+ "type": "textarea",
+ "input": true
+ },
+ {
+ "label": "Text Area",
+ "autoExpand": false,
+ "tableView": true,
+ "key": "textArea4",
+ "type": "textarea",
+ "input": true
+ },
+ {
+ "breadcrumbClickable": true,
+ "buttonSettings": {
+ "previous": true,
+ "cancel": true,
+ "next": true
+ },
+ "collapsible": false,
+ "key": "panel",
+ "type": "panel",
+ "label": "Panel",
+ "input": false,
+ "tableView": false,
+ "components": [
+ {
+ "label": "Text Area",
+ "autoExpand": false,
+ "tableView": true,
+ "key": "textArea7",
+ "type": "textarea",
+ "input": true
+ }
+ ]
+ }
+ ],
+ "input": false,
+ "tableView": false
},
{
- "label": "Text Area",
- "autoExpand": false,
- "tableView": true,
- "key": "textArea6",
- "type": "textarea",
- "input": true
- },
- {
- "label": "Text Area",
- "autoExpand": false,
- "tableView": true,
- "key": "textArea5",
- "type": "textarea",
- "input": true
- },
- {
- "label": "Text Area",
- "autoExpand": false,
- "tableView": true,
- "key": "textArea4",
- "type": "textarea",
- "input": true
- },
- {
- "breadcrumbClickable": true,
- "buttonSettings": {
- "previous": true,
- "cancel": true,
- "next": true
- },
- "collapsible": false,
- "key": "panel",
- "type": "panel",
- "label": "Panel",
- "input": false,
- "tableView": false,
- "components": [
- {
- "label": "Text Area",
- "autoExpand": false,
- "tableView": true,
- "key": "textArea7",
- "type": "textarea",
- "input": true
- }
- ]
- }
- ],
- "input": false,
- "tableView": false
- },
- {
- "title": "Page 2",
- "label": "Page 2",
- "type": "panel",
- "key": "page2",
- "scrollToTop": true,
- "components": [
- {
- "label": "Text Area",
- "autoExpand": false,
- "tableView": true,
- "key": "textArea",
- "type": "textarea",
- "input": true
- },
- {
- "label": "Text Area",
- "autoExpand": false,
- "tableView": true,
- "key": "textArea1",
- "type": "textarea",
- "input": true
- },
- {
- "label": "Text Field",
- "tableView": true,
- "key": "textField",
- "type": "textfield",
- "input": true
- },
- {
- "label": "Text Area",
- "autoExpand": false,
- "tableView": true,
- "key": "textArea2",
- "type": "textarea",
- "input": true
- },
- {
- "label": "Checkbox",
- "tableView": false,
- "key": "checkbox",
- "type": "checkbox",
- "input": true
+ "title": "Page 2",
+ "label": "Page 2",
+ "type": "panel",
+ "key": "page2",
+ "scrollToTop": true,
+ "components": [
+ {
+ "label": "Text Area",
+ "autoExpand": false,
+ "tableView": true,
+ "key": "textArea",
+ "type": "textarea",
+ "input": true
+ },
+ {
+ "label": "Text Area",
+ "autoExpand": false,
+ "tableView": true,
+ "key": "textArea1",
+ "type": "textarea",
+ "input": true
+ },
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "Text Area",
+ "autoExpand": false,
+ "tableView": true,
+ "key": "textArea2",
+ "type": "textarea",
+ "input": true
+ },
+ {
+ "label": "Checkbox",
+ "tableView": false,
+ "key": "checkbox",
+ "type": "checkbox",
+ "input": true
+ }
+ ],
+ "input": false,
+ "tableView": false
}
- ],
- "input": false,
- "tableView": false
- }
- ],
- "title": "Simple Wizard",
- "display": "wizard",
- "name": "simpleWizard"
+ ],
+ "title": "Simple Wizard",
+ "display": "wizard",
+ "name": "simpleWizard"
}
diff --git a/test/forms/wizardWithNestedWizard.d.ts b/test/forms/wizardWithNestedWizard.d.ts
index 4b9c50d154..45026be909 100644
--- a/test/forms/wizardWithNestedWizard.d.ts
+++ b/test/forms/wizardWithNestedWizard.d.ts
@@ -21,47 +21,50 @@ declare namespace _default {
type: string;
tags: never[];
owner: string;
- components: ({
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- optionsLabelPosition: string;
- inline: boolean;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- } | {
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- conditional: {
- show: boolean;
- when: string;
- eq: string;
- };
- type: string;
- input: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- })[];
+ components: (
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ optionsLabelPosition: string;
+ inline: boolean;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ }
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ conditional: {
+ show: boolean;
+ when: string;
+ eq: string;
+ };
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ }
+ )[];
revisions: string;
_vid: number;
title: string;
diff --git a/test/forms/wizardWithNestedWizard.js b/test/forms/wizardWithNestedWizard.js
index 8c74db54b5..538e7b95c5 100644
--- a/test/forms/wizardWithNestedWizard.js
+++ b/test/forms/wizardWithNestedWizard.js
@@ -1,278 +1,251 @@
export default {
- '_id': '602f96f83c44983fdb716195',
- 'type': 'form',
- 'tags': [
- ],
- 'owner': '5f0d6449e8072d87fbc559b1',
- 'components': [
- {
- 'title': 'Parent Page 1',
- 'breadcrumbClickable': true,
- 'buttonSettings': {
- 'previous': true,
- 'cancel': true,
- 'next': true
- },
- 'scrollToTop': false,
- 'collapsible': false,
- 'key': 'page1',
- 'type': 'panel',
- 'label': 'Page 1',
- 'components': [
+ _id: '602f96f83c44983fdb716195',
+ type: 'form',
+ tags: [],
+ owner: '5f0d6449e8072d87fbc559b1',
+ components: [
{
- '_id': '602d249a907df059111efe72',
- 'type': 'form',
- 'tags': [],
- 'owner': '5f0d6449e8072d87fbc559b1',
- 'components': [
- {
- 'title': 'Page 1',
- 'label': 'Page 1',
- 'type': 'panel',
- 'key': 'page1',
- 'components': [
- {
- 'label': 'Radio',
- 'optionsLabelPosition': 'right',
- 'inline': false,
- 'tableView': false,
- 'values': [
- {
- 'label': 'one',
- 'value': 'one',
- 'shortcut': ''
- },
- {
- 'label': 'two',
- 'value': 'two',
- 'shortcut': ''
- },
- {
- 'label': 'three',
- 'value': 'three',
- 'shortcut': ''
- }
- ],
- 'key': 'radio1',
- 'type': 'radio',
- 'input': true
- }
- ],
- 'input': false,
- 'tableView': false
+ title: 'Parent Page 1',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
},
- {
- 'title': 'Page 2',
- 'label': 'Page 2',
- 'type': 'panel',
- 'key': 'page2',
- 'components': [
- {
- 'label': 'One',
- 'tableView': true,
- 'key': 'textField',
- 'conditional': {
- 'show': true,
- 'when': 'radio1',
- 'eq': 'one'
- },
- 'type': 'textfield',
- 'input': true
- },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'page1',
+ type: 'panel',
+ label: 'Page 1',
+ components: [
{
- 'label': 'Two',
- 'tableView': true,
- 'key': 'textField1',
- 'conditional': {
- 'show': true,
- 'when': 'radio1',
- 'eq': 'two'
- },
- 'type': 'textfield',
- 'input': true
+ _id: '602d249a907df059111efe72',
+ type: 'form',
+ tags: [],
+ owner: '5f0d6449e8072d87fbc559b1',
+ components: [
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Radio',
+ optionsLabelPosition: 'right',
+ inline: false,
+ tableView: false,
+ values: [
+ {
+ label: 'one',
+ value: 'one',
+ shortcut: '',
+ },
+ {
+ label: 'two',
+ value: 'two',
+ shortcut: '',
+ },
+ {
+ label: 'three',
+ value: 'three',
+ shortcut: '',
+ },
+ ],
+ key: 'radio1',
+ type: 'radio',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ {
+ title: 'Page 2',
+ label: 'Page 2',
+ type: 'panel',
+ key: 'page2',
+ components: [
+ {
+ label: 'One',
+ tableView: true,
+ key: 'textField',
+ conditional: {
+ show: true,
+ when: 'radio1',
+ eq: 'one',
+ },
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Two',
+ tableView: true,
+ key: 'textField1',
+ conditional: {
+ show: true,
+ when: 'radio1',
+ eq: 'two',
+ },
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Three',
+ tableView: true,
+ key: 'textField2',
+ conditional: {
+ show: true,
+ when: 'radio1',
+ eq: 'three',
+ },
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'Child Wizard Display Test',
+ display: 'wizard',
+ access: [
+ {
+ roles: [
+ '5cef8c28ed02e550f760a50e',
+ '5cef8c28ed02e525c560a50f',
+ '5cef8c28ed02e569ec60a510',
+ '5f68ca5eaaf6804cdd6124ef',
+ ],
+ type: 'read_all',
+ },
+ ],
+ submissionAccess: [],
+ controller: '',
+ properties: {},
+ settings: {},
+ name: 'childWizardDisplayTest',
+ path: 'childwizarddisplaytest',
+ project: '5cef8c28ed02e5396860a50d',
+ created: '2021-02-17T14:13:46.163Z',
+ modified: '2021-02-17T14:13:46.168Z',
+ machineName: 'ieroeaewjerkyws:childWizardDisplayTest',
},
- {
- 'label': 'Three',
- 'tableView': true,
- 'key': 'textField2',
- 'conditional': {
- 'show': true,
- 'when': 'radio1',
- 'eq': 'three'
- },
- 'type': 'textfield',
- 'input': true
- }
- ],
- 'input': false,
- 'tableView': false
- }
- ],
- 'revisions': '',
- '_vid': 0,
- 'title': 'Child Wizard Display Test',
- 'display': 'wizard',
- 'access': [
- {
- 'roles': [
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'Nested Wizard Test With Additional components',
+ display: 'wizard',
+ access: [
+ {
+ roles: [],
+ type: 'create_own',
+ },
+ {
+ roles: [],
+ type: 'create_all',
+ },
+ {
+ roles: [],
+ type: 'read_own',
+ },
+ {
+ roles: [
'5cef8c28ed02e550f760a50e',
'5cef8c28ed02e525c560a50f',
'5cef8c28ed02e569ec60a510',
- '5f68ca5eaaf6804cdd6124ef'
- ],
- 'type': 'read_all'
- }
- ],
- 'submissionAccess': [
- ],
- 'controller': '',
- 'properties': {
- },
- 'settings': {
- },
- 'name': 'childWizardDisplayTest',
- 'path': 'childwizarddisplaytest',
- 'project': '5cef8c28ed02e5396860a50d',
- 'created': '2021-02-17T14:13:46.163Z',
- 'modified': '2021-02-17T14:13:46.168Z',
- 'machineName': 'ieroeaewjerkyws:childWizardDisplayTest',
- }
- ],
- 'input': false,
- 'tableView': false,
- }
- ],
- 'revisions': '',
- '_vid': 0,
- 'title': 'Nested Wizard Test With Additional components',
- 'display': 'wizard',
- 'access': [
- {
- 'roles': [
- ],
- 'type': 'create_own'
- },
- {
- 'roles': [
- ],
- 'type': 'create_all'
- },
- {
- 'roles': [
- ],
- 'type': 'read_own'
- },
- {
- 'roles': [
- '5cef8c28ed02e550f760a50e',
- '5cef8c28ed02e525c560a50f',
- '5cef8c28ed02e569ec60a510',
- '5f68ca5eaaf6804cdd6124ef'
- ],
- 'type': 'read_all'
- },
- {
- 'roles': [
- ],
- 'type': 'update_own'
- },
- {
- 'roles': [
- ],
- 'type': 'update_all'
- },
- {
- 'roles': [
- ],
- 'type': 'delete_own'
- },
- {
- 'roles': [
- ],
- 'type': 'delete_all'
- },
- {
- 'roles': [
- ],
- 'type': 'team_read'
- },
- {
- 'roles': [
- ],
- 'type': 'team_write'
- },
- {
- 'roles': [
- ],
- 'type': 'team_admin'
- }
- ],
- 'submissionAccess': [
- {
- 'roles': [
- ],
- 'type': 'create_own'
- },
- {
- 'roles': [
- ],
- 'type': 'create_all'
- },
- {
- 'roles': [
- ],
- 'type': 'read_own'
- },
- {
- 'roles': [
- ],
- 'type': 'read_all'
- },
- {
- 'roles': [
- ],
- 'type': 'update_own'
- },
- {
- 'roles': [
- ],
- 'type': 'update_all'
- },
- {
- 'roles': [
- ],
- 'type': 'delete_own'
- },
- {
- 'roles': [
- ],
- 'type': 'delete_all'
- },
- {
- 'roles': [
- ],
- 'type': 'team_read'
- },
- {
- 'roles': [
- ],
- 'type': 'team_write'
- },
- {
- 'roles': [
- ],
- 'type': 'team_admin'
- }
- ],
- 'controller': '',
- 'properties': {
- },
- 'settings': {
- },
- 'name': 'nestedWizardTestWithAdditionalComponents',
- 'path': 'nestedwizardtestwithadditionalcomponents',
- 'project': '5cef8c28ed02e5396860a50d',
- 'created': '2021-02-19T10:46:16.031Z',
- 'modified': '2021-02-22T11:14:27.829Z',
- 'machineName': 'ieroeaewjerkyws:nestedWizardTestWithAdditionalComponents',
+ '5f68ca5eaaf6804cdd6124ef',
+ ],
+ type: 'read_all',
+ },
+ {
+ roles: [],
+ type: 'update_own',
+ },
+ {
+ roles: [],
+ type: 'update_all',
+ },
+ {
+ roles: [],
+ type: 'delete_own',
+ },
+ {
+ roles: [],
+ type: 'delete_all',
+ },
+ {
+ roles: [],
+ type: 'team_read',
+ },
+ {
+ roles: [],
+ type: 'team_write',
+ },
+ {
+ roles: [],
+ type: 'team_admin',
+ },
+ ],
+ submissionAccess: [
+ {
+ roles: [],
+ type: 'create_own',
+ },
+ {
+ roles: [],
+ type: 'create_all',
+ },
+ {
+ roles: [],
+ type: 'read_own',
+ },
+ {
+ roles: [],
+ type: 'read_all',
+ },
+ {
+ roles: [],
+ type: 'update_own',
+ },
+ {
+ roles: [],
+ type: 'update_all',
+ },
+ {
+ roles: [],
+ type: 'delete_own',
+ },
+ {
+ roles: [],
+ type: 'delete_all',
+ },
+ {
+ roles: [],
+ type: 'team_read',
+ },
+ {
+ roles: [],
+ type: 'team_write',
+ },
+ {
+ roles: [],
+ type: 'team_admin',
+ },
+ ],
+ controller: '',
+ properties: {},
+ settings: {},
+ name: 'nestedWizardTestWithAdditionalComponents',
+ path: 'nestedwizardtestwithadditionalcomponents',
+ project: '5cef8c28ed02e5396860a50d',
+ created: '2021-02-19T10:46:16.031Z',
+ modified: '2021-02-22T11:14:27.829Z',
+ machineName: 'ieroeaewjerkyws:nestedWizardTestWithAdditionalComponents',
};
diff --git a/test/forms/wizardWithNestedWizardInEditGrid.js b/test/forms/wizardWithNestedWizardInEditGrid.js
index a96915fe9a..4c80fa118a 100644
--- a/test/forms/wizardWithNestedWizardInEditGrid.js
+++ b/test/forms/wizardWithNestedWizardInEditGrid.js
@@ -1,146 +1,146 @@
export default {
- '_id': '6081766efc88e7048cbe5245',
- 'type': 'form',
- 'tags': [],
- 'owner': '6038bed737595d104cfc358a',
- 'components': [
- {
- 'title': 'Page 1',
- 'label': 'Page 1',
- 'type': 'panel',
- 'key': 'page1',
- 'components': [
- {
- 'label': 'Edit Grid',
- 'tableView': false,
- 'rowDrafts': false,
- 'key': 'editGrid',
- 'type': 'editgrid',
- 'input': true,
- 'components': [
- {
- 'label': 'Form',
- 'tableView': true,
- // 'form': '60817a3afc88e7048cbe5260',
- 'useOriginalRevision': false,
- 'key': 'formNested',
- 'type': 'form',
- 'input': true
- }
- ]
- }
- ],
- 'input': false,
- 'tableView': false
- }
- ],
- 'revisions': '',
- '_vid': 0,
- 'title': 'Wizard with Nested Wizard in Edit Grid',
- 'display': 'wizard',
- 'access': [
- {
- 'roles': [],
- 'type': 'create_own'
- },
- {
- 'roles': [],
- 'type': 'create_all'
- },
- {
- 'roles': [],
- 'type': 'read_own'
- },
- {
- 'roles': [
- '6038c83637595d104cfc3594',
- '6038c83637595d104cfc3595',
- '6038c83637595d104cfc3596'
- ],
- 'type': 'read_all'
- },
- {
- 'roles': [],
- 'type': 'update_own'
- },
- {
- 'roles': [],
- 'type': 'update_all'
- },
- {
- 'roles': [],
- 'type': 'delete_own'
- },
- {
- 'roles': [],
- 'type': 'delete_all'
- },
- {
- 'roles': [],
- 'type': 'team_read'
- },
- {
- 'roles': [],
- 'type': 'team_write'
- },
- {
- 'roles': [],
- 'type': 'team_admin'
- }
- ],
- 'submissionAccess': [
- {
- 'roles': [],
- 'type': 'create_own'
- },
- {
- 'roles': [],
- 'type': 'create_all'
- },
- {
- 'roles': [],
- 'type': 'read_own'
- },
- {
- 'roles': [],
- 'type': 'read_all'
- },
- {
- 'roles': [],
- 'type': 'update_own'
- },
- {
- 'roles': [],
- 'type': 'update_all'
- },
- {
- 'roles': [],
- 'type': 'delete_own'
- },
- {
- 'roles': [],
- 'type': 'delete_all'
- },
- {
- 'roles': [],
- 'type': 'team_read'
- },
- {
- 'roles': [],
- 'type': 'team_write'
- },
- {
- 'roles': [],
- 'type': 'team_admin'
- }
- ],
- 'controller': '',
- 'properties': {},
- 'settings': {},
- 'name': 'wizardWithNestedWizardInEditGrid',
- 'path': 'wizardwithnestedwizardineditgrid',
- 'project': '6038c83637595d104cfc3593',
- 'created': '2021-04-22T13:13:18.336Z',
- 'modified': '2021-04-22T14:21:14.725Z',
- 'machineName': 'dqroghuntybetsh:11112'
+ _id: '6081766efc88e7048cbe5245',
+ type: 'form',
+ tags: [],
+ owner: '6038bed737595d104cfc358a',
+ components: [
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Edit Grid',
+ tableView: false,
+ rowDrafts: false,
+ key: 'editGrid',
+ type: 'editgrid',
+ input: true,
+ components: [
+ {
+ label: 'Form',
+ tableView: true,
+ // 'form': '60817a3afc88e7048cbe5260',
+ useOriginalRevision: false,
+ key: 'formNested',
+ type: 'form',
+ input: true,
+ },
+ ],
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'Wizard with Nested Wizard in Edit Grid',
+ display: 'wizard',
+ access: [
+ {
+ roles: [],
+ type: 'create_own',
+ },
+ {
+ roles: [],
+ type: 'create_all',
+ },
+ {
+ roles: [],
+ type: 'read_own',
+ },
+ {
+ roles: [
+ '6038c83637595d104cfc3594',
+ '6038c83637595d104cfc3595',
+ '6038c83637595d104cfc3596',
+ ],
+ type: 'read_all',
+ },
+ {
+ roles: [],
+ type: 'update_own',
+ },
+ {
+ roles: [],
+ type: 'update_all',
+ },
+ {
+ roles: [],
+ type: 'delete_own',
+ },
+ {
+ roles: [],
+ type: 'delete_all',
+ },
+ {
+ roles: [],
+ type: 'team_read',
+ },
+ {
+ roles: [],
+ type: 'team_write',
+ },
+ {
+ roles: [],
+ type: 'team_admin',
+ },
+ ],
+ submissionAccess: [
+ {
+ roles: [],
+ type: 'create_own',
+ },
+ {
+ roles: [],
+ type: 'create_all',
+ },
+ {
+ roles: [],
+ type: 'read_own',
+ },
+ {
+ roles: [],
+ type: 'read_all',
+ },
+ {
+ roles: [],
+ type: 'update_own',
+ },
+ {
+ roles: [],
+ type: 'update_all',
+ },
+ {
+ roles: [],
+ type: 'delete_own',
+ },
+ {
+ roles: [],
+ type: 'delete_all',
+ },
+ {
+ roles: [],
+ type: 'team_read',
+ },
+ {
+ roles: [],
+ type: 'team_write',
+ },
+ {
+ roles: [],
+ type: 'team_admin',
+ },
+ ],
+ controller: '',
+ properties: {},
+ settings: {},
+ name: 'wizardWithNestedWizardInEditGrid',
+ path: 'wizardwithnestedwizardineditgrid',
+ project: '6038c83637595d104cfc3593',
+ created: '2021-04-22T13:13:18.336Z',
+ modified: '2021-04-22T14:21:14.725Z',
+ machineName: 'dqroghuntybetsh:11112',
};
diff --git a/test/forms/wizardWithPanel.js b/test/forms/wizardWithPanel.js
index e593cfd039..dc95ac6655 100644
--- a/test/forms/wizardWithPanel.js
+++ b/test/forms/wizardWithPanel.js
@@ -1,153 +1,153 @@
export default {
- '_id': '6086964cae4deb1b602846da',
- 'type': 'form',
- 'tags': [],
- 'owner': '6038bed737595d104cfc358a',
- 'components': [
- {
- 'title': 'Page 1',
- 'label': 'Page 1',
- 'type': 'panel',
- 'key': 'page1',
- 'components': [
- {
- 'breadcrumbClickable': true,
- 'buttonSettings': {
- 'previous': true,
- 'cancel': true,
- 'next': true
- },
- 'scrollToTop': false,
- 'collapsible': false,
- 'key': 'panel',
- 'type': 'panel',
- 'label': 'Panel',
- 'input': false,
- 'tableView': false,
- 'components': [
- {
- 'label': 'Form',
- 'tableView': true,
- // 'form': '60869600ae4deb1b602846d3',
- 'useOriginalRevision': false,
- 'key': 'middleForm',
- 'type': 'form',
- 'input': true
- }
- ]
- }
- ],
- 'input': false,
- 'tableView': false
- }
- ],
- 'revisions': '',
- '_vid': 0,
- 'title': 'Wizard with Panel',
- 'display': 'wizard',
- 'access': [
- {
- 'roles': [],
- 'type': 'create_own'
- },
- {
- 'roles': [],
- 'type': 'create_all'
- },
- {
- 'roles': [],
- 'type': 'read_own'
- },
- {
- 'roles': [
- '6038c83637595d104cfc3594',
- '6038c83637595d104cfc3595',
- '6038c83637595d104cfc3596'
- ],
- 'type': 'read_all'
- },
- {
- 'roles': [],
- 'type': 'update_own'
- },
- {
- 'roles': [],
- 'type': 'update_all'
- },
- {
- 'roles': [],
- 'type': 'delete_own'
- },
- {
- 'roles': [],
- 'type': 'delete_all'
- },
- {
- 'roles': [],
- 'type': 'team_read'
- },
- {
- 'roles': [],
- 'type': 'team_write'
- },
- {
- 'roles': [],
- 'type': 'team_admin'
- }
- ],
- 'submissionAccess': [
- {
- 'roles': [],
- 'type': 'create_own'
- },
- {
- 'roles': [],
- 'type': 'create_all'
- },
- {
- 'roles': [],
- 'type': 'read_own'
- },
- {
- 'roles': [],
- 'type': 'read_all'
- },
- {
- 'roles': [],
- 'type': 'update_own'
- },
- {
- 'roles': [],
- 'type': 'update_all'
- },
- {
- 'roles': [],
- 'type': 'delete_own'
- },
- {
- 'roles': [],
- 'type': 'delete_all'
- },
- {
- 'roles': [],
- 'type': 'team_read'
- },
- {
- 'roles': [],
- 'type': 'team_write'
- },
- {
- 'roles': [],
- 'type': 'team_admin'
- }
- ],
- 'controller': '',
- 'properties': {},
- 'settings': {},
- 'name': 'wizardWithPanel',
- 'path': 'wizardwithpanel',
- 'project': '6038c83637595d104cfc3593',
- 'created': '2021-04-26T10:30:36.217Z',
- 'modified': '2021-04-26T10:36:27.653Z',
- 'machineName': 'dqroghuntybetsh:wizardWithPanel'
+ _id: '6086964cae4deb1b602846da',
+ type: 'form',
+ tags: [],
+ owner: '6038bed737595d104cfc358a',
+ components: [
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'panel',
+ type: 'panel',
+ label: 'Panel',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Form',
+ tableView: true,
+ // 'form': '60869600ae4deb1b602846d3',
+ useOriginalRevision: false,
+ key: 'middleForm',
+ type: 'form',
+ input: true,
+ },
+ ],
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'Wizard with Panel',
+ display: 'wizard',
+ access: [
+ {
+ roles: [],
+ type: 'create_own',
+ },
+ {
+ roles: [],
+ type: 'create_all',
+ },
+ {
+ roles: [],
+ type: 'read_own',
+ },
+ {
+ roles: [
+ '6038c83637595d104cfc3594',
+ '6038c83637595d104cfc3595',
+ '6038c83637595d104cfc3596',
+ ],
+ type: 'read_all',
+ },
+ {
+ roles: [],
+ type: 'update_own',
+ },
+ {
+ roles: [],
+ type: 'update_all',
+ },
+ {
+ roles: [],
+ type: 'delete_own',
+ },
+ {
+ roles: [],
+ type: 'delete_all',
+ },
+ {
+ roles: [],
+ type: 'team_read',
+ },
+ {
+ roles: [],
+ type: 'team_write',
+ },
+ {
+ roles: [],
+ type: 'team_admin',
+ },
+ ],
+ submissionAccess: [
+ {
+ roles: [],
+ type: 'create_own',
+ },
+ {
+ roles: [],
+ type: 'create_all',
+ },
+ {
+ roles: [],
+ type: 'read_own',
+ },
+ {
+ roles: [],
+ type: 'read_all',
+ },
+ {
+ roles: [],
+ type: 'update_own',
+ },
+ {
+ roles: [],
+ type: 'update_all',
+ },
+ {
+ roles: [],
+ type: 'delete_own',
+ },
+ {
+ roles: [],
+ type: 'delete_all',
+ },
+ {
+ roles: [],
+ type: 'team_read',
+ },
+ {
+ roles: [],
+ type: 'team_write',
+ },
+ {
+ roles: [],
+ type: 'team_admin',
+ },
+ ],
+ controller: '',
+ properties: {},
+ settings: {},
+ name: 'wizardWithPanel',
+ path: 'wizardwithpanel',
+ project: '6038c83637595d104cfc3593',
+ created: '2021-04-26T10:30:36.217Z',
+ modified: '2021-04-26T10:36:27.653Z',
+ machineName: 'dqroghuntybetsh:wizardWithPanel',
};
diff --git a/test/forms/wizardWithPrefixComps.d.ts b/test/forms/wizardWithPrefixComps.d.ts
index dc7a9590b2..5bfb784e6d 100644
--- a/test/forms/wizardWithPrefixComps.d.ts
+++ b/test/forms/wizardWithPrefixComps.d.ts
@@ -9,29 +9,32 @@ declare namespace form {
const display: string;
const name: string;
const path: string;
- const components: ({
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- title?: undefined;
- components?: undefined;
- } | {
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- })[];
+ const components: (
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ title?: undefined;
+ components?: undefined;
+ }
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ }
+ )[];
}
declare namespace submission {
namespace data {
diff --git a/test/forms/wizardWithPrefixComps.js b/test/forms/wizardWithPrefixComps.js
index 8131d27a48..050bc19079 100644
--- a/test/forms/wizardWithPrefixComps.js
+++ b/test/forms/wizardWithPrefixComps.js
@@ -1,68 +1,71 @@
const form = {
- "type": "form",
- "title": "wizard with prefix Components test",
- "display": "wizard",
- "name": "5904",
- "path": "5904",
- "components": [
- {
- "label": "Prefix Text Field",
- "tableView": true,
- "key": "prefixTextField",
- "type": "textfield",
- "input": true
- },
- {
- "title": "Page 1",
- "label": "Page 1",
- "type": "panel",
- "key": "page1",
- "components": [
- {
- "label": "Page 1 Text Field",
- "tableView": true,
- "key": "page1TextField",
- "type": "textfield",
- "input": true
- }],
- "input": false,
- "tableView": false
- },
- {
- "title": "Page 2",
- "label": "Page 2",
- "type": "panel",
- "key": "page2",
- "components": [
- {
- "label": "Page 2 Text Field",
- "tableView": true,
- "key": "page2TextField",
- "type": "textfield",
- "input": true
- }],
- "input": false,
- "tableView": false
- },
- {
- "label": "Suffix Text Field",
- "tableView": true,
- "key": "suffixTextField",
- "type": "textfield",
- "input": true
- }],
+ type: 'form',
+ title: 'wizard with prefix Components test',
+ display: 'wizard',
+ name: '5904',
+ path: '5904',
+ components: [
+ {
+ label: 'Prefix Text Field',
+ tableView: true,
+ key: 'prefixTextField',
+ type: 'textfield',
+ input: true,
+ },
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Page 1 Text Field',
+ tableView: true,
+ key: 'page1TextField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ {
+ title: 'Page 2',
+ label: 'Page 2',
+ type: 'panel',
+ key: 'page2',
+ components: [
+ {
+ label: 'Page 2 Text Field',
+ tableView: true,
+ key: 'page2TextField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ {
+ label: 'Suffix Text Field',
+ tableView: true,
+ key: 'suffixTextField',
+ type: 'textfield',
+ input: true,
+ },
+ ],
};
const submission = {
- data: {
- "prefixTextField":"prefix",
- "page1TextField":"page1",
- "page2TextField":"page2",
- "suffixTextField":"suffix",
- }
+ data: {
+ prefixTextField: 'prefix',
+ page1TextField: 'page1',
+ page2TextField: 'page2',
+ suffixTextField: 'suffix',
+ },
};
export default {
- form: form,
- submission: submission,
+ form: form,
+ submission: submission,
};
diff --git a/test/forms/wizardWithSelectBoxes.d.ts b/test/forms/wizardWithSelectBoxes.d.ts
index faed85865c..dd97ba5fb3 100644
--- a/test/forms/wizardWithSelectBoxes.d.ts
+++ b/test/forms/wizardWithSelectBoxes.d.ts
@@ -1,54 +1,57 @@
declare namespace _default {
const type: string;
- const components: ({
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- optionsLabelPosition: string;
- tableView: boolean;
- values: {
- label: string;
- value: string;
- shortcut: string;
- }[];
- validate: {
- onlyAvailableItems: boolean;
- minSelectedCount: number;
- maxSelectedCount: number;
- };
- key: string;
- type: string;
- input: boolean;
- inputType: string;
- defaultValue: {
- one: boolean;
- two: boolean;
- three: boolean;
- four: boolean;
- five: boolean;
- };
- }[];
- input: boolean;
- tableView: boolean;
- } | {
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- autoExpand: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- })[];
+ const components: (
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ optionsLabelPosition: string;
+ tableView: boolean;
+ values: {
+ label: string;
+ value: string;
+ shortcut: string;
+ }[];
+ validate: {
+ onlyAvailableItems: boolean;
+ minSelectedCount: number;
+ maxSelectedCount: number;
+ };
+ key: string;
+ type: string;
+ input: boolean;
+ inputType: string;
+ defaultValue: {
+ one: boolean;
+ two: boolean;
+ three: boolean;
+ four: boolean;
+ five: boolean;
+ };
+ }[];
+ input: boolean;
+ tableView: boolean;
+ }
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ autoExpand: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ }
+ )[];
const display: string;
}
export default _default;
diff --git a/test/forms/wizardWithSelectBoxes.js b/test/forms/wizardWithSelectBoxes.js
index a62474f706..ba3e917d11 100644
--- a/test/forms/wizardWithSelectBoxes.js
+++ b/test/forms/wizardWithSelectBoxes.js
@@ -1,82 +1,82 @@
export default {
- type: 'form',
- components: [
- {
- title: 'Page 1',
- label: 'Page 1',
- type: 'panel',
- key: 'page1',
- components: [
+ type: 'form',
+ components: [
{
- label: 'Select Boxes',
- optionsLabelPosition: 'right',
- tableView: true,
- values: [
- {
- label: 'One',
- value: 'one',
- shortcut: ''
- },
- {
- label: 'Two',
- value: 'two',
- shortcut: ''
- },
- {
- label: 'Three',
- value: 'three',
- shortcut: ''
- },
- {
- label: 'Four',
- value: 'four',
- shortcut: ''
- },
- {
- label: 'Five',
- value: 'five',
- shortcut: ''
- }
- ],
- validate: {
- onlyAvailableItems: false,
- minSelectedCount: 2,
- maxSelectedCount: 4
- },
- key: 'selectBoxes',
- type: 'selectboxes',
- input: true,
- inputType: 'checkbox',
- defaultValue: {
- one: false,
- two: false,
- three: false,
- four: false,
- five: false
- }
- }
- ],
- input: false,
- tableView: false
- },
- {
- title: 'Page 2',
- label: 'Page 2',
- type: 'panel',
- key: 'page2',
- components: [
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Select Boxes',
+ optionsLabelPosition: 'right',
+ tableView: true,
+ values: [
+ {
+ label: 'One',
+ value: 'one',
+ shortcut: '',
+ },
+ {
+ label: 'Two',
+ value: 'two',
+ shortcut: '',
+ },
+ {
+ label: 'Three',
+ value: 'three',
+ shortcut: '',
+ },
+ {
+ label: 'Four',
+ value: 'four',
+ shortcut: '',
+ },
+ {
+ label: 'Five',
+ value: 'five',
+ shortcut: '',
+ },
+ ],
+ validate: {
+ onlyAvailableItems: false,
+ minSelectedCount: 2,
+ maxSelectedCount: 4,
+ },
+ key: 'selectBoxes',
+ type: 'selectboxes',
+ input: true,
+ inputType: 'checkbox',
+ defaultValue: {
+ one: false,
+ two: false,
+ three: false,
+ four: false,
+ five: false,
+ },
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
{
- label: 'Text Area',
- autoExpand: false,
- tableView: true,
- key: 'textArea',
- type: 'textarea',
- input: true
- }
- ],
- input: false,
- tableView: false
- }
- ],
- display: 'wizard',
+ title: 'Page 2',
+ label: 'Page 2',
+ type: 'panel',
+ key: 'page2',
+ components: [
+ {
+ label: 'Text Area',
+ autoExpand: false,
+ tableView: true,
+ key: 'textArea',
+ type: 'textarea',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ display: 'wizard',
};
diff --git a/test/forms/wizardWithSimpleConditionalPage.d.ts b/test/forms/wizardWithSimpleConditionalPage.d.ts
index e93b494fb6..a20cdd8490 100644
--- a/test/forms/wizardWithSimpleConditionalPage.d.ts
+++ b/test/forms/wizardWithSimpleConditionalPage.d.ts
@@ -1,57 +1,60 @@
declare namespace _default {
const type: string;
const tags: never[];
- const components: ({
- title: string;
- label: string;
- type: string;
- key: string;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- defaultValue: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- breadcrumbClickable?: undefined;
- buttonSettings?: undefined;
- collapsible?: undefined;
- conditional?: undefined;
- } | {
- title: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- collapsible: boolean;
- key: string;
- conditional: {
- show: boolean;
- when: string;
- eq: string;
- };
- type: string;
- label: string;
- components: {
- label: string;
- mask: boolean;
- spellcheck: boolean;
- tableView: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- key: string;
- type: string;
- input: boolean;
- }[];
- input: boolean;
- tableView: boolean;
- })[];
+ const components: (
+ | {
+ title: string;
+ label: string;
+ type: string;
+ key: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ defaultValue: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ breadcrumbClickable?: undefined;
+ buttonSettings?: undefined;
+ collapsible?: undefined;
+ conditional?: undefined;
+ }
+ | {
+ title: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ collapsible: boolean;
+ key: string;
+ conditional: {
+ show: boolean;
+ when: string;
+ eq: string;
+ };
+ type: string;
+ label: string;
+ components: {
+ label: string;
+ mask: boolean;
+ spellcheck: boolean;
+ tableView: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ key: string;
+ type: string;
+ input: boolean;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/wizardWithSimpleConditionalPage.js b/test/forms/wizardWithSimpleConditionalPage.js
index 27962d150a..4cbd2d0eaa 100644
--- a/test/forms/wizardWithSimpleConditionalPage.js
+++ b/test/forms/wizardWithSimpleConditionalPage.js
@@ -1,56 +1,63 @@
export default {
- "type": "form",
- "tags": [],
- "components": [{
- "title": "Page 1",
- "label": "Page 1",
- "type": "panel",
- "key": "page1",
- "components": [{
- "label": "Checkbox",
- "tableView": false,
- "key": "checkbox",
- "type": "checkbox",
- "input": true,
- "defaultValue": false
- }],
- "input": false,
- "tableView": false
- }, {
- "title": "Page 2",
- "breadcrumbClickable": true,
- "buttonSettings": {
- "previous": true,
- "cancel": true,
- "next": true
- },
- "collapsible": false,
- "key": "page2",
- "conditional": {
- "show": true,
- "when": "checkbox",
- "eq": "true"
- },
- "type": "panel",
- "label": "Page 2",
- "components": [{
- "label": "Number",
- "mask": false,
- "spellcheck": true,
- "tableView": false,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "key": "number",
- "type": "number",
- "input": true
- }],
- "input": false,
- "tableView": false
- }],
- "title": "wizard test",
- "display": "wizard",
- "name": "wizardTest",
- "path": "wizardtest",
- "machineName": "nyisrmnbdpnjfut:wizardTest"
+ type: 'form',
+ tags: [],
+ components: [
+ {
+ title: 'Page 1',
+ label: 'Page 1',
+ type: 'panel',
+ key: 'page1',
+ components: [
+ {
+ label: 'Checkbox',
+ tableView: false,
+ key: 'checkbox',
+ type: 'checkbox',
+ input: true,
+ defaultValue: false,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ {
+ title: 'Page 2',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ collapsible: false,
+ key: 'page2',
+ conditional: {
+ show: true,
+ when: 'checkbox',
+ eq: 'true',
+ },
+ type: 'panel',
+ label: 'Page 2',
+ components: [
+ {
+ label: 'Number',
+ mask: false,
+ spellcheck: true,
+ tableView: false,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ key: 'number',
+ type: 'number',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ title: 'wizard test',
+ display: 'wizard',
+ name: 'wizardTest',
+ path: 'wizardtest',
+ machineName: 'nyisrmnbdpnjfut:wizardTest',
};
diff --git a/test/forms/wizardWithTooltip.d.ts b/test/forms/wizardWithTooltip.d.ts
index ef76c8ed84..99eea6e5d6 100644
--- a/test/forms/wizardWithTooltip.d.ts
+++ b/test/forms/wizardWithTooltip.d.ts
@@ -1,324 +1,327 @@
declare namespace _default {
const _id: string;
const type: string;
- const components: ({
- title: string;
- theme: string;
- breadcrumb: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- tooltip: string;
- customClass: string;
- collapsible: boolean;
- hidden: boolean;
- hideLabel: boolean;
- disabled: boolean;
- modalEdit: boolean;
- key: string;
- tags: never[];
- properties: {};
- customConditional: string;
- conditional: {
- json: string;
- show: null;
- when: null;
- eq: string;
- };
- nextPage: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- label: string;
- tabindex: string;
- components: {
- label: string;
- labelPosition: string;
- placeholder: string;
- description: string;
- tooltip: string;
- prefix: string;
- suffix: string;
- widget: {
- type: string;
- };
- customClass: string;
- tabindex: string;
- autocomplete: string;
- hidden: boolean;
- hideLabel: boolean;
- mask: boolean;
- autofocus: boolean;
- spellcheck: boolean;
- disabled: boolean;
- tableView: boolean;
- modalEdit: boolean;
- multiple: boolean;
- persistent: boolean;
- delimiter: boolean;
- requireDecimal: boolean;
- inputFormat: string;
- protected: boolean;
- dbIndex: boolean;
- encrypted: boolean;
- redrawOn: string;
- clearOnHide: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- allowCalculateOverride: boolean;
- validateOn: string;
- validate: {
- required: boolean;
- customMessage: string;
- custom: string;
- customPrivate: boolean;
- json: string;
- min: string;
- max: string;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- step: string;
- integer: string;
- };
- errorLabel: string;
- key: string;
- tags: never[];
- properties: {};
- conditional: {
- show: null;
- when: null;
- eq: string;
- json: string;
- };
- customConditional: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- input: boolean;
- unique: boolean;
- refreshOn: string;
- dataGridLabel: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- allowMultipleMasks: boolean;
- id: string;
- defaultValue: null;
- }[];
- input: boolean;
- tableView: boolean;
- placeholder: string;
- prefix: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- dataGridLabel: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- widget: null;
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- allowMultipleMasks: boolean;
- tree: boolean;
- id: string;
- } | {
- title: string;
- theme: string;
- breadcrumb: string;
- breadcrumbClickable: boolean;
- buttonSettings: {
- previous: boolean;
- cancel: boolean;
- next: boolean;
- };
- tooltip: string;
- customClass: string;
- collapsible: boolean;
- hidden: boolean;
- hideLabel: boolean;
- disabled: boolean;
- modalEdit: boolean;
- key: string;
- tags: never[];
- properties: {};
- customConditional: string;
- conditional: {
- json: string;
- show: null;
- when: null;
- eq: string;
- };
- nextPage: string;
- logic: never[];
- attributes: {};
- overlay: {
- style: string;
- page: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- type: string;
- label: string;
- tabindex: string;
- components: {
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- placeholder: string;
- prefix: string;
- customClass: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- hidden: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- modalEdit: boolean;
- dataGridLabel: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- tooltip: string;
- hideLabel: boolean;
- tabindex: string;
- disabled: boolean;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- widget: {
- type: string;
- };
- attributes: {};
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- minLength: string;
- maxLength: string;
- pattern: string;
- };
- conditional: {
- show: null;
- when: null;
- eq: string;
- };
- overlay: {
- style: string;
- left: string;
- top: string;
- width: string;
- height: string;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- properties: {};
- allowMultipleMasks: boolean;
- mask: boolean;
- inputType: string;
- inputFormat: string;
- inputMask: string;
- spellcheck: boolean;
- id: string;
- }[];
- input: boolean;
- tableView: boolean;
- placeholder: string;
- prefix: string;
- suffix: string;
- multiple: boolean;
- defaultValue: null;
- protected: boolean;
- unique: boolean;
- persistent: boolean;
- clearOnHide: boolean;
- refreshOn: string;
- redrawOn: string;
- dataGridLabel: boolean;
- labelPosition: string;
- description: string;
- errorLabel: string;
- autofocus: boolean;
- dbIndex: boolean;
- customDefaultValue: string;
- calculateValue: string;
- calculateServer: boolean;
- widget: null;
- validateOn: string;
- validate: {
- required: boolean;
- custom: string;
- customPrivate: boolean;
- strictDateValidation: boolean;
- multiple: boolean;
- unique: boolean;
- };
- allowCalculateOverride: boolean;
- encrypted: boolean;
- showCharCount: boolean;
- showWordCount: boolean;
- allowMultipleMasks: boolean;
- tree: boolean;
- id: string;
- })[];
+ const components: (
+ | {
+ title: string;
+ theme: string;
+ breadcrumb: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ tooltip: string;
+ customClass: string;
+ collapsible: boolean;
+ hidden: boolean;
+ hideLabel: boolean;
+ disabled: boolean;
+ modalEdit: boolean;
+ key: string;
+ tags: never[];
+ properties: {};
+ customConditional: string;
+ conditional: {
+ json: string;
+ show: null;
+ when: null;
+ eq: string;
+ };
+ nextPage: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ label: string;
+ tabindex: string;
+ components: {
+ label: string;
+ labelPosition: string;
+ placeholder: string;
+ description: string;
+ tooltip: string;
+ prefix: string;
+ suffix: string;
+ widget: {
+ type: string;
+ };
+ customClass: string;
+ tabindex: string;
+ autocomplete: string;
+ hidden: boolean;
+ hideLabel: boolean;
+ mask: boolean;
+ autofocus: boolean;
+ spellcheck: boolean;
+ disabled: boolean;
+ tableView: boolean;
+ modalEdit: boolean;
+ multiple: boolean;
+ persistent: boolean;
+ delimiter: boolean;
+ requireDecimal: boolean;
+ inputFormat: string;
+ protected: boolean;
+ dbIndex: boolean;
+ encrypted: boolean;
+ redrawOn: string;
+ clearOnHide: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ allowCalculateOverride: boolean;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ customMessage: string;
+ custom: string;
+ customPrivate: boolean;
+ json: string;
+ min: string;
+ max: string;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ step: string;
+ integer: string;
+ };
+ errorLabel: string;
+ key: string;
+ tags: never[];
+ properties: {};
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ json: string;
+ };
+ customConditional: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ input: boolean;
+ unique: boolean;
+ refreshOn: string;
+ dataGridLabel: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ allowMultipleMasks: boolean;
+ id: string;
+ defaultValue: null;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ placeholder: string;
+ prefix: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ dataGridLabel: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ widget: null;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ allowMultipleMasks: boolean;
+ tree: boolean;
+ id: string;
+ }
+ | {
+ title: string;
+ theme: string;
+ breadcrumb: string;
+ breadcrumbClickable: boolean;
+ buttonSettings: {
+ previous: boolean;
+ cancel: boolean;
+ next: boolean;
+ };
+ tooltip: string;
+ customClass: string;
+ collapsible: boolean;
+ hidden: boolean;
+ hideLabel: boolean;
+ disabled: boolean;
+ modalEdit: boolean;
+ key: string;
+ tags: never[];
+ properties: {};
+ customConditional: string;
+ conditional: {
+ json: string;
+ show: null;
+ when: null;
+ eq: string;
+ };
+ nextPage: string;
+ logic: never[];
+ attributes: {};
+ overlay: {
+ style: string;
+ page: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ type: string;
+ label: string;
+ tabindex: string;
+ components: {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ placeholder: string;
+ prefix: string;
+ customClass: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ hidden: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ modalEdit: boolean;
+ dataGridLabel: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ tooltip: string;
+ hideLabel: boolean;
+ tabindex: string;
+ disabled: boolean;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ widget: {
+ type: string;
+ };
+ attributes: {};
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ minLength: string;
+ maxLength: string;
+ pattern: string;
+ };
+ conditional: {
+ show: null;
+ when: null;
+ eq: string;
+ };
+ overlay: {
+ style: string;
+ left: string;
+ top: string;
+ width: string;
+ height: string;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ properties: {};
+ allowMultipleMasks: boolean;
+ mask: boolean;
+ inputType: string;
+ inputFormat: string;
+ inputMask: string;
+ spellcheck: boolean;
+ id: string;
+ }[];
+ input: boolean;
+ tableView: boolean;
+ placeholder: string;
+ prefix: string;
+ suffix: string;
+ multiple: boolean;
+ defaultValue: null;
+ protected: boolean;
+ unique: boolean;
+ persistent: boolean;
+ clearOnHide: boolean;
+ refreshOn: string;
+ redrawOn: string;
+ dataGridLabel: boolean;
+ labelPosition: string;
+ description: string;
+ errorLabel: string;
+ autofocus: boolean;
+ dbIndex: boolean;
+ customDefaultValue: string;
+ calculateValue: string;
+ calculateServer: boolean;
+ widget: null;
+ validateOn: string;
+ validate: {
+ required: boolean;
+ custom: string;
+ customPrivate: boolean;
+ strictDateValidation: boolean;
+ multiple: boolean;
+ unique: boolean;
+ };
+ allowCalculateOverride: boolean;
+ encrypted: boolean;
+ showCharCount: boolean;
+ showWordCount: boolean;
+ allowMultipleMasks: boolean;
+ tree: boolean;
+ id: string;
+ }
+ )[];
const title: string;
const display: string;
const name: string;
diff --git a/test/forms/wizardWithTooltip.js b/test/forms/wizardWithTooltip.js
index c55a4ca5d3..3d08bd4059 100644
--- a/test/forms/wizardWithTooltip.js
+++ b/test/forms/wizardWithTooltip.js
@@ -1,326 +1,333 @@
export default {
- "_id": "5fec7ca48da957762c7842ee",
- "type": "form",
- "components": [{
- "title": "Page 1 title",
- "theme": "default",
- "breadcrumb": "default",
- "breadcrumbClickable": true,
- "buttonSettings": {
- "previous": true,
- "cancel": true,
- "next": true
- },
- "tooltip": "tooltip for page 1",
- "customClass": "",
- "collapsible": false,
- "hidden": false,
- "hideLabel": false,
- "disabled": false,
- "modalEdit": false,
- "key": "page1",
- "tags": [],
- "properties": {},
- "customConditional": "",
- "conditional": {
- "json": "",
- "show": null,
- "when": null,
- "eq": ""
- },
- "nextPage": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "panel",
- "label": "Page 1 title",
- "tabindex": "",
- "components": [{
- "label": "Number",
- "labelPosition": "top",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "prefix": "",
- "suffix": "",
- "widget": {
- "type": "input"
- },
- "customClass": "",
- "tabindex": "",
- "autocomplete": "",
- "hidden": false,
- "hideLabel": false,
- "mask": false,
- "autofocus": false,
- "spellcheck": true,
- "disabled": false,
- "tableView": false,
- "modalEdit": false,
- "multiple": false,
- "persistent": true,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "protected": false,
- "dbIndex": false,
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "min": "",
- "max": "",
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "step": "any",
- "integer": ""
- },
- "errorLabel": "",
- "key": "number",
- "tags": [],
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "number",
- "input": true,
- "unique": false,
- "refreshOn": "",
- "dataGridLabel": false,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "id": "eb4c1oj",
- "defaultValue": null
- }],
- "input": false,
- "tableView": false,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "clearOnHide": false,
- "refreshOn": "",
- "redrawOn": "",
- "dataGridLabel": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": null,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "tree": false,
- "id": "epqpqle"
- }, {
- "title": "Page 2 title",
- "theme": "default",
- "breadcrumb": "default",
- "breadcrumbClickable": true,
- "buttonSettings": {
- "previous": true,
- "cancel": true,
- "next": true
- },
- "tooltip": "tooltip for page 2",
- "customClass": "",
- "collapsible": false,
- "hidden": false,
- "hideLabel": false,
- "disabled": false,
- "modalEdit": false,
- "key": "page2",
- "tags": [],
- "properties": {},
- "customConditional": "",
- "conditional": {
- "json": "",
- "show": null,
- "when": null,
- "eq": ""
- },
- "nextPage": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "panel",
- "label": "Page 2 title",
- "tabindex": "",
- "components": [{
- "label": "Text Field",
- "tableView": true,
- "key": "textField",
- "type": "textfield",
- "input": true,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "modalEdit": false,
- "dataGridLabel": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": {
- "type": "input"
- },
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "mask": false,
- "inputType": "text",
- "inputFormat": "plain",
- "inputMask": "",
- "spellcheck": true,
- "id": "eh695m"
- }],
- "input": false,
- "tableView": false,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "clearOnHide": false,
- "refreshOn": "",
- "redrawOn": "",
- "dataGridLabel": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": null,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "tree": false,
- "id": "eexnju"
- }],
- "title": "testTooltips",
- "display": "wizard",
- "name": "testTooltips",
- "path": "testtooltips",
-}
+ _id: '5fec7ca48da957762c7842ee',
+ type: 'form',
+ components: [
+ {
+ title: 'Page 1 title',
+ theme: 'default',
+ breadcrumb: 'default',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ tooltip: 'tooltip for page 1',
+ customClass: '',
+ collapsible: false,
+ hidden: false,
+ hideLabel: false,
+ disabled: false,
+ modalEdit: false,
+ key: 'page1',
+ tags: [],
+ properties: {},
+ customConditional: '',
+ conditional: {
+ json: '',
+ show: null,
+ when: null,
+ eq: '',
+ },
+ nextPage: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'panel',
+ label: 'Page 1 title',
+ tabindex: '',
+ components: [
+ {
+ label: 'Number',
+ labelPosition: 'top',
+ placeholder: '',
+ description: '',
+ tooltip: '',
+ prefix: '',
+ suffix: '',
+ widget: {
+ type: 'input',
+ },
+ customClass: '',
+ tabindex: '',
+ autocomplete: '',
+ hidden: false,
+ hideLabel: false,
+ mask: false,
+ autofocus: false,
+ spellcheck: true,
+ disabled: false,
+ tableView: false,
+ modalEdit: false,
+ multiple: false,
+ persistent: true,
+ delimiter: false,
+ requireDecimal: false,
+ inputFormat: 'plain',
+ protected: false,
+ dbIndex: false,
+ encrypted: false,
+ redrawOn: '',
+ clearOnHide: true,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ allowCalculateOverride: false,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ customMessage: '',
+ custom: '',
+ customPrivate: false,
+ json: '',
+ min: '',
+ max: '',
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ step: 'any',
+ integer: '',
+ },
+ errorLabel: '',
+ key: 'number',
+ tags: [],
+ properties: {},
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ json: '',
+ },
+ customConditional: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'number',
+ input: true,
+ unique: false,
+ refreshOn: '',
+ dataGridLabel: false,
+ showCharCount: false,
+ showWordCount: false,
+ allowMultipleMasks: false,
+ id: 'eb4c1oj',
+ defaultValue: null,
+ },
+ ],
+ input: false,
+ tableView: false,
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ dataGridLabel: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: null,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ allowMultipleMasks: false,
+ tree: false,
+ id: 'epqpqle',
+ },
+ {
+ title: 'Page 2 title',
+ theme: 'default',
+ breadcrumb: 'default',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ tooltip: 'tooltip for page 2',
+ customClass: '',
+ collapsible: false,
+ hidden: false,
+ hideLabel: false,
+ disabled: false,
+ modalEdit: false,
+ key: 'page2',
+ tags: [],
+ properties: {},
+ customConditional: '',
+ conditional: {
+ json: '',
+ show: null,
+ when: null,
+ eq: '',
+ },
+ nextPage: '',
+ logic: [],
+ attributes: {},
+ overlay: {
+ style: '',
+ page: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ type: 'panel',
+ label: 'Page 2 title',
+ tabindex: '',
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ placeholder: '',
+ prefix: '',
+ customClass: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: true,
+ hidden: false,
+ clearOnHide: true,
+ refreshOn: '',
+ redrawOn: '',
+ modalEdit: false,
+ dataGridLabel: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ tooltip: '',
+ hideLabel: false,
+ tabindex: '',
+ disabled: false,
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: {
+ type: 'input',
+ },
+ attributes: {},
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ },
+ conditional: {
+ show: null,
+ when: null,
+ eq: '',
+ },
+ overlay: {
+ style: '',
+ left: '',
+ top: '',
+ width: '',
+ height: '',
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ properties: {},
+ allowMultipleMasks: false,
+ mask: false,
+ inputType: 'text',
+ inputFormat: 'plain',
+ inputMask: '',
+ spellcheck: true,
+ id: 'eh695m',
+ },
+ ],
+ input: false,
+ tableView: false,
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: null,
+ protected: false,
+ unique: false,
+ persistent: false,
+ clearOnHide: false,
+ refreshOn: '',
+ redrawOn: '',
+ dataGridLabel: false,
+ labelPosition: 'top',
+ description: '',
+ errorLabel: '',
+ autofocus: false,
+ dbIndex: false,
+ customDefaultValue: '',
+ calculateValue: '',
+ calculateServer: false,
+ widget: null,
+ validateOn: 'change',
+ validate: {
+ required: false,
+ custom: '',
+ customPrivate: false,
+ strictDateValidation: false,
+ multiple: false,
+ unique: false,
+ },
+ allowCalculateOverride: false,
+ encrypted: false,
+ showCharCount: false,
+ showWordCount: false,
+ allowMultipleMasks: false,
+ tree: false,
+ id: 'eexnju',
+ },
+ ],
+ title: 'testTooltips',
+ display: 'wizard',
+ name: 'testTooltips',
+ path: 'testtooltips',
+};
diff --git a/test/forms/wizardWithWizard.js b/test/forms/wizardWithWizard.js
index f5c17893d6..48bd45f9cd 100644
--- a/test/forms/wizardWithWizard.js
+++ b/test/forms/wizardWithWizard.js
@@ -1,144 +1,144 @@
export default {
- '_id': '60869600ae4deb1b602846d3',
- 'type': 'form',
- 'tags': [],
- 'owner': '6038bed737595d104cfc358a',
- 'components': [
- {
- 'title': 'Page 1',
- 'breadcrumbClickable': true,
- 'buttonSettings': {
- 'previous': true,
- 'cancel': true,
- 'next': true
- },
- 'scrollToTop': false,
- 'collapsible': false,
- 'key': 'page1',
- 'type': 'panel',
- 'label': 'Page 2',
- 'components': [
- {
- 'label': 'Form',
- 'tableView': true,
- // 'form': '60817a3afc88e7048cbe5260',
- 'useOriginalRevision': false,
- 'key': 'childForm',
- 'type': 'form',
- 'input': true
- }
- ],
- 'input': false,
- 'tableView': false
- }
- ],
- 'revisions': '',
- '_vid': 0,
- 'title': 'Wizard With Wizard',
- 'display': 'wizard',
- 'access': [
- {
- 'roles': [],
- 'type': 'create_own'
- },
- {
- 'roles': [],
- 'type': 'create_all'
- },
- {
- 'roles': [],
- 'type': 'read_own'
- },
- {
- 'roles': [
- '6038c83637595d104cfc3594',
- '6038c83637595d104cfc3595',
- '6038c83637595d104cfc3596'
- ],
- 'type': 'read_all'
- },
- {
- 'roles': [],
- 'type': 'update_own'
- },
- {
- 'roles': [],
- 'type': 'update_all'
- },
- {
- 'roles': [],
- 'type': 'delete_own'
- },
- {
- 'roles': [],
- 'type': 'delete_all'
- },
- {
- 'roles': [],
- 'type': 'team_read'
- },
- {
- 'roles': [],
- 'type': 'team_write'
- },
- {
- 'roles': [],
- 'type': 'team_admin'
- }
- ],
- 'submissionAccess': [
- {
- 'roles': [],
- 'type': 'create_own'
- },
- {
- 'roles': [],
- 'type': 'create_all'
- },
- {
- 'roles': [],
- 'type': 'read_own'
- },
- {
- 'roles': [],
- 'type': 'read_all'
- },
- {
- 'roles': [],
- 'type': 'update_own'
- },
- {
- 'roles': [],
- 'type': 'update_all'
- },
- {
- 'roles': [],
- 'type': 'delete_own'
- },
- {
- 'roles': [],
- 'type': 'delete_all'
- },
- {
- 'roles': [],
- 'type': 'team_read'
- },
- {
- 'roles': [],
- 'type': 'team_write'
- },
- {
- 'roles': [],
- 'type': 'team_admin'
- }
- ],
- 'controller': '',
- 'properties': {},
- 'settings': {},
- 'name': 'wizardWithWizard',
- 'path': 'wizardwithwizard',
- 'project': '6038c83637595d104cfc3593',
- 'created': '2021-04-26T10:29:20.041Z',
- 'modified': '2021-04-26T11:09:02.497Z',
- 'machineName': 'dqroghuntybetsh:wizardWithWizard'
+ _id: '60869600ae4deb1b602846d3',
+ type: 'form',
+ tags: [],
+ owner: '6038bed737595d104cfc358a',
+ components: [
+ {
+ title: 'Page 1',
+ breadcrumbClickable: true,
+ buttonSettings: {
+ previous: true,
+ cancel: true,
+ next: true,
+ },
+ scrollToTop: false,
+ collapsible: false,
+ key: 'page1',
+ type: 'panel',
+ label: 'Page 2',
+ components: [
+ {
+ label: 'Form',
+ tableView: true,
+ // 'form': '60817a3afc88e7048cbe5260',
+ useOriginalRevision: false,
+ key: 'childForm',
+ type: 'form',
+ input: true,
+ },
+ ],
+ input: false,
+ tableView: false,
+ },
+ ],
+ revisions: '',
+ _vid: 0,
+ title: 'Wizard With Wizard',
+ display: 'wizard',
+ access: [
+ {
+ roles: [],
+ type: 'create_own',
+ },
+ {
+ roles: [],
+ type: 'create_all',
+ },
+ {
+ roles: [],
+ type: 'read_own',
+ },
+ {
+ roles: [
+ '6038c83637595d104cfc3594',
+ '6038c83637595d104cfc3595',
+ '6038c83637595d104cfc3596',
+ ],
+ type: 'read_all',
+ },
+ {
+ roles: [],
+ type: 'update_own',
+ },
+ {
+ roles: [],
+ type: 'update_all',
+ },
+ {
+ roles: [],
+ type: 'delete_own',
+ },
+ {
+ roles: [],
+ type: 'delete_all',
+ },
+ {
+ roles: [],
+ type: 'team_read',
+ },
+ {
+ roles: [],
+ type: 'team_write',
+ },
+ {
+ roles: [],
+ type: 'team_admin',
+ },
+ ],
+ submissionAccess: [
+ {
+ roles: [],
+ type: 'create_own',
+ },
+ {
+ roles: [],
+ type: 'create_all',
+ },
+ {
+ roles: [],
+ type: 'read_own',
+ },
+ {
+ roles: [],
+ type: 'read_all',
+ },
+ {
+ roles: [],
+ type: 'update_own',
+ },
+ {
+ roles: [],
+ type: 'update_all',
+ },
+ {
+ roles: [],
+ type: 'delete_own',
+ },
+ {
+ roles: [],
+ type: 'delete_all',
+ },
+ {
+ roles: [],
+ type: 'team_read',
+ },
+ {
+ roles: [],
+ type: 'team_write',
+ },
+ {
+ roles: [],
+ type: 'team_admin',
+ },
+ ],
+ controller: '',
+ properties: {},
+ settings: {},
+ name: 'wizardWithWizard',
+ path: 'wizardwithwizard',
+ project: '6038c83637595d104cfc3593',
+ created: '2021-04-26T10:29:20.041Z',
+ modified: '2021-04-26T11:09:02.497Z',
+ machineName: 'dqroghuntybetsh:wizardWithWizard',
};
diff --git a/test/formtest/advanced.json b/test/formtest/advanced.json
index df80c58116..daf13d5ce5 100644
--- a/test/formtest/advanced.json
+++ b/test/formtest/advanced.json
@@ -1,748 +1,746 @@
{
- "type": "form",
- "tags": [],
- "owner": "55673dc04f0405dd28205bb7",
- "components": [
- {
- "input": true,
- "label": "Email",
- "key": "email",
- "defaultValue": "",
- "type": "email",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "mask": false,
- "inputType": "email",
- "inputMask": "",
- "kickbox": {
- "enabled": false
- },
- "id": "ep3f9h"
- },
- {
- "input": true,
- "label": "Phone Number",
- "key": "phoneNumber",
- "defaultValue": "",
- "type": "phoneNumber",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "mask": false,
- "inputType": "tel",
- "inputMask": "(999) 999-9999",
- "id": "eu5wr6i"
- },
- {
- "input": true,
- "label": "Address",
- "key": "address",
- "map": {
- "key": "",
- "region": ""
- },
- "type": "address",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "ec9t5ex"
- },
- {
- "input": true,
- "label": "Date Time",
- "key": "dateTime",
- "format": "yyyy-MM-dd hh:mm a",
- "datePicker": {
- "datepickerMode": "day",
- "showWeeks": true,
- "startingDay": 0,
- "initDate": "",
- "minMode": "day",
- "maxMode": "year",
- "yearRows": 4,
- "yearColumns": 5,
- "minDate": null,
- "maxDate": null
- },
- "type": "datetime",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "suffix": true,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "enableDate": true,
- "enableTime": true,
- "defaultDate": "",
- "datepickerMode": "day",
- "timePicker": {
- "hourStep": 1,
- "minuteStep": 1,
- "showMeridian": true,
- "readonlyInput": false,
- "mousewheel": true,
- "arrowkeys": true
- },
- "id": "eugbw7"
- },
- {
- "input": true,
- "label": "Day",
- "key": "day",
- "fields": {
- "day": {
- "type": "number",
- "placeholder": "",
- "required": false
+ "type": "form",
+ "tags": [],
+ "owner": "55673dc04f0405dd28205bb7",
+ "components": [
+ {
+ "input": true,
+ "label": "Email",
+ "key": "email",
+ "defaultValue": "",
+ "type": "email",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "mask": false,
+ "inputType": "email",
+ "inputMask": "",
+ "kickbox": {
+ "enabled": false
+ },
+ "id": "ep3f9h"
+ },
+ {
+ "input": true,
+ "label": "Phone Number",
+ "key": "phoneNumber",
+ "defaultValue": "",
+ "type": "phoneNumber",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "mask": false,
+ "inputType": "tel",
+ "inputMask": "(999) 999-9999",
+ "id": "eu5wr6i"
+ },
+ {
+ "input": true,
+ "label": "Address",
+ "key": "address",
+ "map": {
+ "key": "",
+ "region": ""
+ },
+ "type": "address",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "ec9t5ex"
+ },
+ {
+ "input": true,
+ "label": "Date Time",
+ "key": "dateTime",
+ "format": "yyyy-MM-dd hh:mm a",
+ "datePicker": {
+ "datepickerMode": "day",
+ "showWeeks": true,
+ "startingDay": 0,
+ "initDate": "",
+ "minMode": "day",
+ "maxMode": "year",
+ "yearRows": 4,
+ "yearColumns": 5,
+ "minDate": null,
+ "maxDate": null
+ },
+ "type": "datetime",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "suffix": true,
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "enableDate": true,
+ "enableTime": true,
+ "defaultDate": "",
+ "datepickerMode": "day",
+ "timePicker": {
+ "hourStep": 1,
+ "minuteStep": 1,
+ "showMeridian": true,
+ "readonlyInput": false,
+ "mousewheel": true,
+ "arrowkeys": true
+ },
+ "id": "eugbw7"
},
- "month": {
- "type": "select",
- "placeholder": "",
- "required": false
+ {
+ "input": true,
+ "label": "Day",
+ "key": "day",
+ "fields": {
+ "day": {
+ "type": "number",
+ "placeholder": "",
+ "required": false
+ },
+ "month": {
+ "type": "select",
+ "placeholder": "",
+ "required": false
+ },
+ "year": {
+ "type": "number",
+ "placeholder": "",
+ "required": false
+ }
+ },
+ "type": "day",
+ "inputsLabelPosition": "top",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "dayFirst": false,
+ "id": "egok6s"
},
- "year": {
- "type": "number",
- "placeholder": "",
- "required": false
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "time",
+ "format": "HH:mm",
+ "label": "Time",
+ "key": "time",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "type": "time",
+ "labelPosition": "top",
+ "inputFormat": "plain",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {}
+ },
+ {
+ "input": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Currency",
+ "key": "currency",
+ "defaultValue": "",
+ "delimiter": true,
+ "decimalLimit": 2,
+ "requireDecimals": true,
+ "validate": {
+ "multiple": "",
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "min": "",
+ "max": "",
+ "step": "any",
+ "integer": ""
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "currency",
+ "tags": [],
+ "properties": {},
+ "requireDecimal": true,
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "id": "e3j2bv7"
+ },
+ {
+ "input": true,
+ "label": "Signature",
+ "key": "signature",
+ "height": "150px",
+ "validate": {
+ "required": true,
+ "custom": "",
+ "customPrivate": false
+ },
+ "type": "signature",
+ "hideLabel": true,
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "footer": "Sign above",
+ "width": "100%",
+ "penColor": "black",
+ "backgroundColor": "rgb(245,245,235)",
+ "minWidth": "0.5",
+ "maxWidth": "2.5",
+ "id": "exd46q9"
+ },
+ {
+ "label": "Tags",
+ "mask": false,
+ "type": "tags",
+ "input": true,
+ "key": "tags",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "delimeter": ",",
+ "storeas": "string",
+ "maxTags": 0,
+ "id": "ep2v8ws"
+ },
+ {
+ "input": true,
+ "label": "Survey",
+ "key": "survey",
+ "questions": [
+ {
+ "value": "a",
+ "label": "A"
+ },
+ {
+ "value": "b",
+ "label": "B"
+ }
+ ],
+ "values": [
+ {
+ "value": "1",
+ "label": "1"
+ },
+ {
+ "value": "2",
+ "label": "2"
+ }
+ ],
+ "defaultValue": "",
+ "type": "survey",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "id": "e4r5an9"
+ },
+ {
+ "label": "Location",
+ "mask": false,
+ "type": "location",
+ "input": true,
+ "key": "location",
+ "map": {
+ "key": "",
+ "region": "",
+ "gmapId": "",
+ "autocompleteOptions": {}
+ },
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "id": "eb1jdfw"
+ },
+ {
+ "input": true,
+ "label": "Submit",
+ "tableView": false,
+ "key": "submit",
+ "theme": "primary",
+ "type": "button",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "clearOnHide": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "size": "md",
+ "leftIcon": "",
+ "rightIcon": "",
+ "block": false,
+ "action": "submit",
+ "disableOnInvalid": false,
+ "id": "espm3rj"
}
- },
- "type": "day",
- "inputsLabelPosition": "top",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "dayFirst": false,
- "id": "egok6s"
- },
- {
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "time",
- "format": "HH:mm",
- "label": "Time",
- "key": "time",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "type": "time",
- "labelPosition": "top",
- "inputFormat": "plain",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {}
- },
- {
- "input": true,
- "inputType": "text",
- "inputMask": "",
- "label": "Currency",
- "key": "currency",
- "defaultValue": "",
- "delimiter": true,
- "decimalLimit": 2,
- "requireDecimals": true,
- "validate": {
- "multiple": "",
- "required": false,
- "custom": "",
- "customPrivate": false,
- "min": "",
- "max": "",
- "step": "any",
- "integer": ""
- },
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "currency",
- "tags": [],
- "properties": {},
- "requireDecimal": true,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "id": "e3j2bv7"
- },
- {
- "input": true,
- "label": "Signature",
- "key": "signature",
- "height": "150px",
- "validate": {
- "required": true,
- "custom": "",
- "customPrivate": false
- },
- "type": "signature",
- "hideLabel": true,
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "footer": "Sign above",
- "width": "100%",
- "penColor": "black",
- "backgroundColor": "rgb(245,245,235)",
- "minWidth": "0.5",
- "maxWidth": "2.5",
- "id": "exd46q9"
- },
- {
- "label": "Tags",
- "mask": false,
- "type": "tags",
- "input": true,
- "key": "tags",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "delimeter": ",",
- "storeas": "string",
- "maxTags": 0,
- "id": "ep2v8ws"
- },
- {
- "input": true,
- "label": "Survey",
- "key": "survey",
- "questions": [
- {
- "value": "a",
- "label": "A"
+ ],
+ "revisions": "",
+ "_vid": 0,
+ "_id": "5b197db53b99cb596148d01e",
+ "title": "Advanced",
+ "display": "form",
+ "access": [
+ {
+ "roles": [],
+ "type": "create_own"
+ },
+ {
+ "roles": [],
+ "type": "create_all"
+ },
+ {
+ "roles": [],
+ "type": "read_own"
+ },
+ {
+ "roles": [
+ "5692b920d1028f01000407e4",
+ "5692b920d1028f01000407e5",
+ "5692b920d1028f01000407e6"
+ ],
+ "type": "read_all"
+ },
+ {
+ "roles": [],
+ "type": "update_own"
+ },
+ {
+ "roles": [],
+ "type": "update_all"
+ },
+ {
+ "roles": [],
+ "type": "delete_own"
+ },
+ {
+ "roles": [],
+ "type": "delete_all"
},
{
- "value": "b",
- "label": "B"
+ "roles": [],
+ "type": "team_read"
+ },
+ {
+ "roles": [],
+ "type": "team_write"
+ },
+ {
+ "roles": [],
+ "type": "team_admin"
}
- ],
- "values": [
+ ],
+ "submissionAccess": [
+ {
+ "roles": [],
+ "type": "create_own"
+ },
+ {
+ "roles": [],
+ "type": "create_all"
+ },
+ {
+ "roles": [],
+ "type": "read_own"
+ },
+ {
+ "roles": ["5692b920d1028f01000407e6"],
+ "type": "read_all"
+ },
+ {
+ "roles": [],
+ "type": "update_own"
+ },
+ {
+ "roles": [],
+ "type": "update_all"
+ },
+ {
+ "roles": [],
+ "type": "delete_own"
+ },
+ {
+ "roles": [],
+ "type": "delete_all"
+ },
+ {
+ "roles": [],
+ "type": "team_read"
+ },
{
- "value": "1",
- "label": "1"
+ "roles": [],
+ "type": "team_write"
},
{
- "value": "2",
- "label": "2"
+ "roles": [],
+ "type": "team_admin"
}
- ],
- "defaultValue": "",
- "type": "survey",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "id": "e4r5an9"
- },
- {
- "label": "Location",
- "mask": false,
- "type": "location",
- "input": true,
- "key": "location",
- "map": {
- "key": "",
- "region": "",
- "gmapId": "",
- "autocompleteOptions": {}
- },
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "id": "eb1jdfw"
- },
- {
- "input": true,
- "label": "Submit",
- "tableView": false,
- "key": "submit",
- "theme": "primary",
- "type": "button",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "size": "md",
- "leftIcon": "",
- "rightIcon": "",
- "block": false,
- "action": "submit",
- "disableOnInvalid": false,
- "id": "espm3rj"
- }
- ],
- "revisions": "",
- "_vid": 0,
- "_id": "5b197db53b99cb596148d01e",
- "title": "Advanced",
- "display": "form",
- "access": [
- {
- "roles": [],
- "type": "create_own"
- },
- {
- "roles": [],
- "type": "create_all"
- },
- {
- "roles": [],
- "type": "read_own"
- },
- {
- "roles": [
- "5692b920d1028f01000407e4",
- "5692b920d1028f01000407e5",
- "5692b920d1028f01000407e6"
- ],
- "type": "read_all"
- },
- {
- "roles": [],
- "type": "update_own"
- },
- {
- "roles": [],
- "type": "update_all"
- },
- {
- "roles": [],
- "type": "delete_own"
- },
- {
- "roles": [],
- "type": "delete_all"
- },
- {
- "roles": [],
- "type": "team_read"
- },
- {
- "roles": [],
- "type": "team_write"
- },
- {
- "roles": [],
- "type": "team_admin"
- }
- ],
- "submissionAccess": [
- {
- "roles": [],
- "type": "create_own"
- },
- {
- "roles": [],
- "type": "create_all"
- },
- {
- "roles": [],
- "type": "read_own"
- },
- {
- "roles": [
- "5692b920d1028f01000407e6"
- ],
- "type": "read_all"
- },
- {
- "roles": [],
- "type": "update_own"
- },
- {
- "roles": [],
- "type": "update_all"
- },
- {
- "roles": [],
- "type": "delete_own"
- },
- {
- "roles": [],
- "type": "delete_all"
- },
- {
- "roles": [],
- "type": "team_read"
- },
- {
- "roles": [],
- "type": "team_write"
- },
- {
- "roles": [],
- "type": "team_admin"
- }
- ],
- "settings": {},
- "name": "advanced",
- "path": "advanced",
- "project": "5692b91fd1028f01000407e3",
- "created": "2018-06-07T18:47:17.872Z",
- "modified": "2018-08-03T02:57:10.081Z",
- "machineName": "examples:advanced"
+ ],
+ "settings": {},
+ "name": "advanced",
+ "path": "advanced",
+ "project": "5692b91fd1028f01000407e3",
+ "created": "2018-06-07T18:47:17.872Z",
+ "modified": "2018-08-03T02:57:10.081Z",
+ "machineName": "examples:advanced"
}
diff --git a/test/formtest/advancedLogicForm.json b/test/formtest/advancedLogicForm.json
index 95c1bd2abe..a55cbbcd65 100644
--- a/test/formtest/advancedLogicForm.json
+++ b/test/formtest/advancedLogicForm.json
@@ -1,52 +1,60 @@
{
- "type": "form",
- "components": [{
- "label": "Checkbox",
- "tableView": false,
- "defaultValue": false,
- "key": "requestedCovers.HOUSECONTENT_JEWELRY",
- "type": "checkbox",
- "input": true
- }, {
- "label": "Currency",
- "mask": false,
- "spellcheck": true,
- "tableView": false,
- "currency": "USD",
- "inputFormat": "plain",
- "key": "currency",
- "logic": [{
- "name": "Logic",
- "trigger": {
- "type": "simple",
- "simple": {
- "show": true,
- "when": "requestedCovers.HOUSECONTENT_JEWELRY",
- "eq": "true"
- }
- },
- "actions": [{
- "name": "Action",
- "type": "property",
- "property": {
- "label": "Disabled",
- "value": "disabled",
- "type": "boolean"
+ "type": "form",
+ "components": [
+ {
+ "label": "Checkbox",
+ "tableView": false,
+ "defaultValue": false,
+ "key": "requestedCovers.HOUSECONTENT_JEWELRY",
+ "type": "checkbox",
+ "input": true
+ },
+ {
+ "label": "Currency",
+ "mask": false,
+ "spellcheck": true,
+ "tableView": false,
+ "currency": "USD",
+ "inputFormat": "plain",
+ "key": "currency",
+ "logic": [
+ {
+ "name": "Logic",
+ "trigger": {
+ "type": "simple",
+ "simple": {
+ "show": true,
+ "when": "requestedCovers.HOUSECONTENT_JEWELRY",
+ "eq": "true"
+ }
+ },
+ "actions": [
+ {
+ "name": "Action",
+ "type": "property",
+ "property": {
+ "label": "Disabled",
+ "value": "disabled",
+ "type": "boolean"
+ },
+ "state": true
+ }
+ ]
+ }
+ ],
+ "type": "currency",
+ "input": true,
+ "delimiter": true
},
- "state": true
- }]
- }],
- "type": "currency",
- "input": true,
- "delimiter": true
- }, {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }],
- "title": "dotNotation",
- "display": "form"
+ {
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
+ }
+ ],
+ "title": "dotNotation",
+ "display": "form"
}
diff --git a/test/formtest/basic.json b/test/formtest/basic.json
index e59719d0f3..f49d600355 100644
--- a/test/formtest/basic.json
+++ b/test/formtest/basic.json
@@ -1,596 +1,594 @@
{
- "type": "form",
- "tags": [],
- "owner": "55673dc04f0405dd28205bb7",
- "components": [
- {
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "text",
- "inputMask": "",
- "label": "Text",
- "key": "text",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": true,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "labelPosition": "top",
- "tags": [],
- "properties": {},
- "inputFormat": "plain",
- "disabled": false
- },
- {
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "text",
- "inputMask": "",
- "label": "Multiple",
- "key": "multiple",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": true,
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "labelPosition": "top",
- "tags": [],
- "properties": {}
- },
- {
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "text",
- "inputMask": "AAAAA",
- "label": "Everything",
- "key": "everything",
- "placeholder": "Placeholder",
- "prefix": "Prefix",
- "suffix": "Suffix",
- "multiple": true,
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": true,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "labelPosition": "top",
- "tags": [],
- "properties": {},
- "description": "Description",
- "tooltip": "Tooltip",
- "errorLabel": "Error Label",
- "customClass": "CustomCssClass",
- "tabindex": "1"
- },
- {
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "number",
- "label": "Number",
- "key": "number",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "defaultValue": "",
- "protected": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "validate": {
- "required": false,
- "min": "",
- "max": "",
- "step": "any",
- "integer": "",
- "multiple": "",
- "custom": ""
- },
- "type": "number",
- "labelPosition": "top",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {}
- },
- {
- "autofocus": false,
- "input": true,
- "tableView": false,
- "inputType": "password",
- "label": "Password",
- "key": "password",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "protected": true,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "type": "password",
- "labelPosition": "top",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {}
- },
- {
- "autofocus": false,
- "input": true,
- "tableView": true,
- "label": "Text Area",
- "key": "textArea",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "rows": 3,
- "multiple": false,
- "defaultValue": "",
- "protected": false,
- "persistent": true,
- "hidden": false,
- "wysiwyg": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": ""
- },
- "type": "textarea",
- "labelPosition": "top",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {}
- },
- {
- "autofocus": false,
- "input": true,
- "inputType": "checkbox",
- "tableView": true,
- "label": "Checkbox",
- "dataGridLabel": false,
- "key": "checkbox",
- "defaultValue": false,
- "protected": false,
- "persistent": true,
- "hidden": false,
- "name": "",
- "value": "",
- "clearOnHide": true,
- "validate": {
- "required": false
- },
- "type": "checkbox",
- "labelPosition": "right",
- "hideLabel": false,
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {}
- },
- {
- "autofocus": false,
- "input": true,
- "tableView": true,
- "label": "Select Boxes",
- "key": "selectBoxes",
- "values": [
- {
- "value": "one",
- "label": "One",
- "shortcut": ""
- },
- {
- "value": "two",
- "label": "Two",
- "shortcut": ""
- },
- {
- "value": "three",
- "label": "Three",
- "shortcut": ""
- }
- ],
- "inline": false,
- "protected": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "validate": {
- "required": false
- },
- "type": "selectboxes",
- "labelPosition": "top",
- "optionsLabelPosition": "right",
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- }
- },
- {
- "autofocus": false,
- "input": true,
- "tableView": true,
- "label": "Select",
- "key": "select",
- "placeholder": "",
- "data": {
- "values": [
- {
- "value": "one",
- "label": "One"
- },
- {
- "value": "two",
- "label": "Two"
- },
- {
- "value": "three",
- "label": "Three"
- }
- ],
- "json": "",
- "url": "",
- "resource": "",
- "custom": ""
- },
- "dataSrc": "values",
- "valueProperty": "",
- "defaultValue": "",
- "refreshOn": "",
- "filter": "",
- "authenticate": false,
- "template": "
{{ item.label }} ",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "validate": {
- "required": false
- },
- "type": "select",
- "labelPosition": "top",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {}
- },
- {
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "radio",
- "label": "Radio",
- "key": "radio",
- "values": [
- {
- "value": "one",
- "label": "One",
- "shortcut": ""
- },
- {
- "value": "two",
- "label": "Two",
- "shortcut": ""
- },
- {
- "value": "three",
- "label": "Three",
- "shortcut": ""
+ "type": "form",
+ "tags": [],
+ "owner": "55673dc04f0405dd28205bb7",
+ "components": [
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Text",
+ "key": "text",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": true,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "labelPosition": "top",
+ "tags": [],
+ "properties": {},
+ "inputFormat": "plain",
+ "disabled": false
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Multiple",
+ "key": "multiple",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": true,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "labelPosition": "top",
+ "tags": [],
+ "properties": {}
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "AAAAA",
+ "label": "Everything",
+ "key": "everything",
+ "placeholder": "Placeholder",
+ "prefix": "Prefix",
+ "suffix": "Suffix",
+ "multiple": true,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": true,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "labelPosition": "top",
+ "tags": [],
+ "properties": {},
+ "description": "Description",
+ "tooltip": "Tooltip",
+ "errorLabel": "Error Label",
+ "customClass": "CustomCssClass",
+ "tabindex": "1"
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "number",
+ "label": "Number",
+ "key": "number",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "defaultValue": "",
+ "protected": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "validate": {
+ "required": false,
+ "min": "",
+ "max": "",
+ "step": "any",
+ "integer": "",
+ "multiple": "",
+ "custom": ""
+ },
+ "type": "number",
+ "labelPosition": "top",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {}
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": false,
+ "inputType": "password",
+ "label": "Password",
+ "key": "password",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "protected": true,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "type": "password",
+ "labelPosition": "top",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {}
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "label": "Text Area",
+ "key": "textArea",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "rows": 3,
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "persistent": true,
+ "hidden": false,
+ "wysiwyg": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": ""
+ },
+ "type": "textarea",
+ "labelPosition": "top",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {}
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "inputType": "checkbox",
+ "tableView": true,
+ "label": "Checkbox",
+ "dataGridLabel": false,
+ "key": "checkbox",
+ "defaultValue": false,
+ "protected": false,
+ "persistent": true,
+ "hidden": false,
+ "name": "",
+ "value": "",
+ "clearOnHide": true,
+ "validate": {
+ "required": false
+ },
+ "type": "checkbox",
+ "labelPosition": "right",
+ "hideLabel": false,
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {}
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "label": "Select Boxes",
+ "key": "selectBoxes",
+ "values": [
+ {
+ "value": "one",
+ "label": "One",
+ "shortcut": ""
+ },
+ {
+ "value": "two",
+ "label": "Two",
+ "shortcut": ""
+ },
+ {
+ "value": "three",
+ "label": "Three",
+ "shortcut": ""
+ }
+ ],
+ "inline": false,
+ "protected": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "validate": {
+ "required": false
+ },
+ "type": "selectboxes",
+ "labelPosition": "top",
+ "optionsLabelPosition": "right",
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ }
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "label": "Select",
+ "key": "select",
+ "placeholder": "",
+ "data": {
+ "values": [
+ {
+ "value": "one",
+ "label": "One"
+ },
+ {
+ "value": "two",
+ "label": "Two"
+ },
+ {
+ "value": "three",
+ "label": "Three"
+ }
+ ],
+ "json": "",
+ "url": "",
+ "resource": "",
+ "custom": ""
+ },
+ "dataSrc": "values",
+ "valueProperty": "",
+ "defaultValue": "",
+ "refreshOn": "",
+ "filter": "",
+ "authenticate": false,
+ "template": "
{{ item.label }} ",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "validate": {
+ "required": false
+ },
+ "type": "select",
+ "labelPosition": "top",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {}
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "radio",
+ "label": "Radio",
+ "key": "radio",
+ "values": [
+ {
+ "value": "one",
+ "label": "One",
+ "shortcut": ""
+ },
+ {
+ "value": "two",
+ "label": "Two",
+ "shortcut": ""
+ },
+ {
+ "value": "three",
+ "label": "Three",
+ "shortcut": ""
+ }
+ ],
+ "defaultValue": "",
+ "protected": false,
+ "fieldSet": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "type": "radio",
+ "labelPosition": "top",
+ "optionsLabelPosition": "right",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {}
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "radio",
+ "label": "Radio Inline",
+ "key": "radioInline",
+ "values": [
+ {
+ "value": "one",
+ "label": "One",
+ "shortcut": ""
+ },
+ {
+ "value": "two",
+ "label": "Two",
+ "shortcut": ""
+ },
+ {
+ "value": "three",
+ "label": "Three",
+ "shortcut": ""
+ }
+ ],
+ "defaultValue": "",
+ "protected": false,
+ "fieldSet": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "type": "radio",
+ "labelPosition": "top",
+ "optionsLabelPosition": "right",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "inline": true
+ },
+ {
+ "key": "content",
+ "label": "Content",
+ "input": false,
+ "tag": "p",
+ "attrs": [
+ {
+ "value": "value",
+ "attr": "attribute"
+ }
+ ],
+ "className": "cssclass",
+ "content": "HTML Content",
+ "type": "htmlelement",
+ "hideLabel": true,
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {}
+ },
+ {
+ "key": "content2",
+ "input": false,
+ "html": "
Content Bold
\n",
+ "type": "content",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "label": "content2",
+ "hideLabel": true
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "label": "Submit",
+ "tableView": false,
+ "key": "submit",
+ "size": "md",
+ "leftIcon": "",
+ "rightIcon": "",
+ "block": false,
+ "action": "submit",
+ "disableOnInvalid": false,
+ "theme": "primary",
+ "type": "button"
}
- ],
- "defaultValue": "",
- "protected": false,
- "fieldSet": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "type": "radio",
- "labelPosition": "top",
- "optionsLabelPosition": "right",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {}
- },
- {
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "radio",
- "label": "Radio Inline",
- "key": "radioInline",
- "values": [
- {
- "value": "one",
- "label": "One",
- "shortcut": ""
- },
- {
- "value": "two",
- "label": "Two",
- "shortcut": ""
- },
- {
- "value": "three",
- "label": "Three",
- "shortcut": ""
+ ],
+ "revisions": "",
+ "_vid": 0,
+ "_id": "5b197df9bf4cd0c648ae0bcc",
+ "title": "Basic",
+ "display": "form",
+ "access": [
+ {
+ "roles": [],
+ "type": "create_own"
+ },
+ {
+ "roles": [],
+ "type": "create_all"
+ },
+ {
+ "roles": [],
+ "type": "read_own"
+ },
+ {
+ "roles": [
+ "5692b920d1028f01000407e4",
+ "5692b920d1028f01000407e5",
+ "5692b920d1028f01000407e6"
+ ],
+ "type": "read_all"
+ },
+ {
+ "roles": [],
+ "type": "update_own"
+ },
+ {
+ "roles": [],
+ "type": "update_all"
+ },
+ {
+ "roles": [],
+ "type": "delete_own"
+ },
+ {
+ "roles": [],
+ "type": "delete_all"
+ },
+ {
+ "roles": [],
+ "type": "team_read"
+ },
+ {
+ "roles": [],
+ "type": "team_write"
+ },
+ {
+ "roles": [],
+ "type": "team_admin"
}
- ],
- "defaultValue": "",
- "protected": false,
- "fieldSet": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "type": "radio",
- "labelPosition": "top",
- "optionsLabelPosition": "right",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "inline": true
- },
- {
- "key": "content",
- "label": "Content",
- "input": false,
- "tag": "p",
- "attrs": [
- {
- "value": "value",
- "attr": "attribute"
+ ],
+ "submissionAccess": [
+ {
+ "roles": [],
+ "type": "create_own"
+ },
+ {
+ "roles": [],
+ "type": "create_all"
+ },
+ {
+ "roles": [],
+ "type": "read_own"
+ },
+ {
+ "roles": ["5692b920d1028f01000407e6"],
+ "type": "read_all"
+ },
+ {
+ "roles": [],
+ "type": "update_own"
+ },
+ {
+ "roles": [],
+ "type": "update_all"
+ },
+ {
+ "roles": [],
+ "type": "delete_own"
+ },
+ {
+ "roles": [],
+ "type": "delete_all"
+ },
+ {
+ "roles": [],
+ "type": "team_read"
+ },
+ {
+ "roles": [],
+ "type": "team_write"
+ },
+ {
+ "roles": [],
+ "type": "team_admin"
}
- ],
- "className": "cssclass",
- "content": "HTML Content",
- "type": "htmlelement",
- "hideLabel": true,
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {}
- },
- {
- "key": "content2",
- "input": false,
- "html": "
Content Bold
\n",
- "type": "content",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "label": "content2",
- "hideLabel": true
- },
- {
- "autofocus": false,
- "input": true,
- "label": "Submit",
- "tableView": false,
- "key": "submit",
- "size": "md",
- "leftIcon": "",
- "rightIcon": "",
- "block": false,
- "action": "submit",
- "disableOnInvalid": false,
- "theme": "primary",
- "type": "button"
- }
- ],
- "revisions": "",
- "_vid": 0,
- "_id": "5b197df9bf4cd0c648ae0bcc",
- "title": "Basic",
- "display": "form",
- "access": [
- {
- "roles": [],
- "type": "create_own"
- },
- {
- "roles": [],
- "type": "create_all"
- },
- {
- "roles": [],
- "type": "read_own"
- },
- {
- "roles": [
- "5692b920d1028f01000407e4",
- "5692b920d1028f01000407e5",
- "5692b920d1028f01000407e6"
- ],
- "type": "read_all"
- },
- {
- "roles": [],
- "type": "update_own"
- },
- {
- "roles": [],
- "type": "update_all"
- },
- {
- "roles": [],
- "type": "delete_own"
- },
- {
- "roles": [],
- "type": "delete_all"
- },
- {
- "roles": [],
- "type": "team_read"
- },
- {
- "roles": [],
- "type": "team_write"
- },
- {
- "roles": [],
- "type": "team_admin"
- }
- ],
- "submissionAccess": [
- {
- "roles": [],
- "type": "create_own"
- },
- {
- "roles": [],
- "type": "create_all"
- },
- {
- "roles": [],
- "type": "read_own"
- },
- {
- "roles": [
- "5692b920d1028f01000407e6"
- ],
- "type": "read_all"
- },
- {
- "roles": [],
- "type": "update_own"
- },
- {
- "roles": [],
- "type": "update_all"
- },
- {
- "roles": [],
- "type": "delete_own"
- },
- {
- "roles": [],
- "type": "delete_all"
- },
- {
- "roles": [],
- "type": "team_read"
- },
- {
- "roles": [],
- "type": "team_write"
- },
- {
- "roles": [],
- "type": "team_admin"
- }
- ],
- "settings": {},
- "name": "basic",
- "path": "basic",
- "project": "5692b91fd1028f01000407e3",
- "created": "2018-06-07T18:48:25.460Z",
- "modified": "2018-06-19T20:44:06.984Z",
- "machineName": "examples:basic1"
+ ],
+ "settings": {},
+ "name": "basic",
+ "path": "basic",
+ "project": "5692b91fd1028f01000407e3",
+ "created": "2018-06-07T18:48:25.460Z",
+ "modified": "2018-06-19T20:44:06.984Z",
+ "machineName": "examples:basic1"
}
diff --git a/test/formtest/blurValidationInsidePanel.json b/test/formtest/blurValidationInsidePanel.json
index 21ca341fb6..f90c614b17 100644
--- a/test/formtest/blurValidationInsidePanel.json
+++ b/test/formtest/blurValidationInsidePanel.json
@@ -1,34 +1,39 @@
{
- "type": "form",
- "_id":"5f05ddf647b38b48d175d76f",
- "components": [{
- "collapsible": false,
- "tableView": false,
- "key": "panel",
- "type": "panel",
- "label": "Panel",
- "input": false,
- "components": [{
- "label": "Text Field",
- "tableView": true,
- "validateOn": "blur",
- "validate": {
- "minLength": 5
- },
- "key": "textField",
- "type": "textfield",
- "input": true
- }]
- }, {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }],
- "title": "blurInsidePanel",
- "display": "form",
- "name": "blurInsidePanel",
- "path": "blurinsidepanel"
+ "type": "form",
+ "_id": "5f05ddf647b38b48d175d76f",
+ "components": [
+ {
+ "collapsible": false,
+ "tableView": false,
+ "key": "panel",
+ "type": "panel",
+ "label": "Panel",
+ "input": false,
+ "components": [
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "validateOn": "blur",
+ "validate": {
+ "minLength": 5
+ },
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ }
+ ]
+ },
+ {
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
+ }
+ ],
+ "title": "blurInsidePanel",
+ "display": "form",
+ "name": "blurInsidePanel",
+ "path": "blurinsidepanel"
}
diff --git a/test/formtest/calculateValueInEditingMode.json b/test/formtest/calculateValueInEditingMode.json
index aa082b75b4..ff4c2d6ac8 100644
--- a/test/formtest/calculateValueInEditingMode.json
+++ b/test/formtest/calculateValueInEditingMode.json
@@ -1,79 +1,79 @@
{
- "type": "form",
- "owner": "6062c5aa6bf99c5218e80077",
+ "type": "form",
+ "owner": "6062c5aa6bf99c5218e80077",
- "components": [
- {
- "label": "Select",
- "widget": "choicesjs",
- "tableView": true,
- "data": {
- "values": [
- { "label": "Dummy #1", "value": "dummy1" },
- { "label": "Dummy #2", "value": "dummy2" }
- ]
- },
- "selectThreshold": 0.3,
- "key": "select",
- "type": "select",
- "indexeddb": { "filter": {} },
- "input": true
- },
- {
- "label": "Data Source",
- "persistent": false,
- "clearOnHide": false,
- "trigger": { "init": false, "server": false },
- "refreshOn": "select3",
- "dataSrc": "url",
- "fetch": {
- "url": "https://form-issues.free.beeceptor.com/dummy",
- "method": "get",
- "headers": [{ "key": "", "value": "" }],
- "forwardHeaders": false,
- "authenticate": false
- },
- "allowCaching": true,
- "key": "datasource",
- "type": "datasource",
- "input": true,
- "tableView": false
- },
- {
- "label": "Filters",
- "disabled": true,
- "tableView": true,
- "inputFormat": "raw",
- "clearOnHide": false,
- "calculateValue": "value = data.datasource && data.datasource.value;",
- "key": "dataSourceDisplay",
- "type": "textfield",
- "input": true
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }
- ],
+ "components": [
+ {
+ "label": "Select",
+ "widget": "choicesjs",
+ "tableView": true,
+ "data": {
+ "values": [
+ { "label": "Dummy #1", "value": "dummy1" },
+ { "label": "Dummy #2", "value": "dummy2" }
+ ]
+ },
+ "selectThreshold": 0.3,
+ "key": "select",
+ "type": "select",
+ "indexeddb": { "filter": {} },
+ "input": true
+ },
+ {
+ "label": "Data Source",
+ "persistent": false,
+ "clearOnHide": false,
+ "trigger": { "init": false, "server": false },
+ "refreshOn": "select3",
+ "dataSrc": "url",
+ "fetch": {
+ "url": "https://form-issues.free.beeceptor.com/dummy",
+ "method": "get",
+ "headers": [{ "key": "", "value": "" }],
+ "forwardHeaders": false,
+ "authenticate": false
+ },
+ "allowCaching": true,
+ "key": "datasource",
+ "type": "datasource",
+ "input": true,
+ "tableView": false
+ },
+ {
+ "label": "Filters",
+ "disabled": true,
+ "tableView": true,
+ "inputFormat": "raw",
+ "clearOnHide": false,
+ "calculateValue": "value = data.datasource && data.datasource.value;",
+ "key": "dataSourceDisplay",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
+ }
+ ],
- "access": [
- {
- "roles": [
- "5ebb002541fe5bae34e9fd0c",
- "5ebb002541fe5b081de9fd0d",
- "5ebb002541fe5b6664e9fd0e"
- ],
- "type": "read_all"
- }
- ],
- "revisions": "",
- "_vid": 0,
- "title": "calculateValueInEditingMode",
- "display": "form",
- "name": "calculateValueInEditingMode",
- "path": "calculatevalueineditingmode"
+ "access": [
+ {
+ "roles": [
+ "5ebb002541fe5bae34e9fd0c",
+ "5ebb002541fe5b081de9fd0d",
+ "5ebb002541fe5b6664e9fd0e"
+ ],
+ "type": "read_all"
+ }
+ ],
+ "revisions": "",
+ "_vid": 0,
+ "title": "calculateValueInEditingMode",
+ "display": "form",
+ "name": "calculateValueInEditingMode",
+ "path": "calculatevalueineditingmode"
}
diff --git a/test/formtest/calculateValueWithManualOverride.json b/test/formtest/calculateValueWithManualOverride.json
index e98fb89858..c526060bea 100644
--- a/test/formtest/calculateValueWithManualOverride.json
+++ b/test/formtest/calculateValueWithManualOverride.json
@@ -1,536 +1,496 @@
{
- "_id": "5ebbcbbd555a6e16803b2510",
- "type": "form",
- "tags": [
-
- ],
- "owner": "5e05a6b7549cdc2ece30c6b0",
- "components": [
- {
- "label": "Tabs",
- "components": [
+ "_id": "5ebbcbbd555a6e16803b2510",
+ "type": "form",
+ "tags": [],
+ "owner": "5e05a6b7549cdc2ece30c6b0",
+ "components": [
{
- "label": "Tab 1",
- "key": "tab1",
- "components": [
- {
- "label": "hide",
- "description": "",
- "tooltip": "",
- "shortcut": "",
- "inputType": "checkbox",
- "customClass": "",
- "tabindex": "",
- "hidden": false,
- "hideLabel": false,
- "autofocus": false,
- "disabled": false,
- "tableView": false,
- "modalEdit": false,
- "persistent": true,
- "protected": false,
- "dbIndex": false,
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "allowCalculateOverride": false,
- "validate": {
+ "label": "Tabs",
+ "components": [
+ {
+ "label": "Tab 1",
+ "key": "tab1",
+ "components": [
+ {
+ "label": "hide",
+ "description": "",
+ "tooltip": "",
+ "shortcut": "",
+ "inputType": "checkbox",
+ "customClass": "",
+ "tabindex": "",
+ "hidden": false,
+ "hideLabel": false,
+ "autofocus": false,
+ "disabled": false,
+ "tableView": false,
+ "modalEdit": false,
+ "persistent": true,
+ "protected": false,
+ "dbIndex": false,
+ "encrypted": false,
+ "redrawOn": "",
+ "clearOnHide": true,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "calculateServer": false,
+ "allowCalculateOverride": false,
+ "validate": {
+ "required": false,
+ "customMessage": "",
+ "custom": "",
+ "customPrivate": false,
+ "json": "",
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "errorLabel": "",
+ "key": "checkbox",
+ "tags": [],
+ "properties": {},
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "checkbox",
+ "name": "",
+ "value": "",
+ "input": true,
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "unique": false,
+ "refreshOn": "",
+ "labelPosition": "right",
+ "widget": null,
+ "validateOn": "change",
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "dataGridLabel": true,
+ "id": "ekm493zo",
+ "defaultValue": false
+ }
+ ]
+ },
+ {
+ "label": "Tab 2",
+ "key": "tab2",
+ "components": [
+ {
+ "label": "grid",
+ "labelPosition": "top",
+ "description": "",
+ "tooltip": "",
+ "disableAddingRemovingRows": false,
+ "conditionalAddButton": "",
+ "reorder": false,
+ "addAnother": "",
+ "addAnotherPosition": "bottom",
+ "defaultOpen": false,
+ "layoutFixed": false,
+ "enableRowGroups": false,
+ "customClass": "",
+ "tabindex": "",
+ "hidden": false,
+ "hideLabel": false,
+ "autofocus": false,
+ "disabled": false,
+ "tableView": false,
+ "modalEdit": false,
+ "defaultValue": [
+ {
+ "label": "",
+ "value": ""
+ }
+ ],
+ "persistent": true,
+ "protected": false,
+ "dbIndex": false,
+ "encrypted": false,
+ "redrawOn": "",
+ "clearOnHide": true,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "calculateServer": false,
+ "allowCalculateOverride": false,
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "customMessage": "",
+ "custom": "",
+ "customPrivate": false,
+ "json": "",
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "unique": false,
+ "errorLabel": "",
+ "key": "dataGrid",
+ "tags": [],
+ "properties": {},
+ "conditional": {
+ "show": false,
+ "when": "checkbox",
+ "eq": "true",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "datagrid",
+ "input": true,
+ "components": [
+ {
+ "label": "Label",
+ "tableView": true,
+ "clearOnHide": false,
+ "key": "label",
+ "type": "textfield",
+ "input": true,
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "refreshOn": "",
+ "redrawOn": "",
+ "modalEdit": false,
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "calculateServer": false,
+ "widget": {
+ "type": "input"
+ },
+ "attributes": {},
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "overlay": {
+ "style": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "properties": {},
+ "allowMultipleMasks": false,
+ "mask": false,
+ "inputType": "text",
+ "inputFormat": "plain",
+ "inputMask": "",
+ "spellcheck": true,
+ "id": "ecqfpbb"
+ },
+ {
+ "label": "Value",
+ "tableView": true,
+ "calculateValue": {
+ "_camelCase": [
+ {
+ "var": "row.label"
+ }
+ ]
+ },
+ "allowCalculateOverride": true,
+ "key": "value",
+ "type": "textfield",
+ "input": true,
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "refreshOn": "",
+ "redrawOn": "",
+ "modalEdit": false,
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateServer": false,
+ "widget": {
+ "type": "input"
+ },
+ "attributes": {},
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "overlay": {
+ "style": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "properties": {},
+ "allowMultipleMasks": false,
+ "mask": false,
+ "inputType": "text",
+ "inputFormat": "plain",
+ "inputMask": "",
+ "spellcheck": true,
+ "id": "ec66h16"
+ }
+ ],
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "refreshOn": "",
+ "widget": null,
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "tree": true,
+ "id": "evaa52"
+ }
+ ]
+ }
+ ],
+ "tableView": false,
+ "key": "tabs",
+ "type": "tabs",
+ "input": false,
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "clearOnHide": true,
+ "refreshOn": "",
+ "redrawOn": "",
+ "modalEdit": false,
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "widget": null,
+ "attributes": {},
+ "validateOn": "change",
+ "validate": {
"required": false,
- "customMessage": "",
"custom": "",
"customPrivate": false,
- "json": "",
"strictDateValidation": false,
"multiple": false,
"unique": false
- },
- "errorLabel": "",
- "key": "checkbox",
- "tags": [
-
- ],
- "properties": {
-
- },
- "conditional": {
+ },
+ "conditional": {
"show": null,
"when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [
-
- ],
- "attributes": {
-
- },
- "overlay": {
+ "eq": ""
+ },
+ "overlay": {
"style": "",
- "page": "",
"left": "",
"top": "",
"width": "",
"height": ""
- },
- "type": "checkbox",
- "name": "",
- "value": "",
- "input": true,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "unique": false,
- "refreshOn": "",
- "labelPosition": "right",
- "widget": null,
- "validateOn": "change",
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "dataGridLabel": true,
- "id": "ekm493zo",
- "defaultValue": false
- }
- ]
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "properties": {},
+ "allowMultipleMasks": false,
+ "tree": false,
+ "id": "erit9d9",
+ "calculateServer": false
},
{
- "label": "Tab 2",
- "key": "tab2",
- "components": [
- {
- "label": "grid",
- "labelPosition": "top",
- "description": "",
- "tooltip": "",
- "disableAddingRemovingRows": false,
- "conditionalAddButton": "",
- "reorder": false,
- "addAnother": "",
- "addAnotherPosition": "bottom",
- "defaultOpen": false,
- "layoutFixed": false,
- "enableRowGroups": false,
- "customClass": "",
- "tabindex": "",
- "hidden": false,
- "hideLabel": false,
- "autofocus": false,
- "disabled": false,
- "tableView": false,
- "modalEdit": false,
- "defaultValue": [
- {
- "label": "",
- "value": ""
- }
- ],
- "persistent": true,
- "protected": false,
- "dbIndex": false,
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false,
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "clearOnHide": true,
+ "refreshOn": "",
+ "redrawOn": "",
+ "modalEdit": false,
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "widget": {
+ "type": "input"
+ },
+ "attributes": {},
+ "validateOn": "change",
+ "validate": {
"required": false,
- "customMessage": "",
"custom": "",
"customPrivate": false,
- "json": "",
"strictDateValidation": false,
"multiple": false,
"unique": false
- },
- "unique": false,
- "errorLabel": "",
- "key": "dataGrid",
- "tags": [
-
- ],
- "properties": {
-
- },
- "conditional": {
- "show": false,
- "when": "checkbox",
- "eq": "true",
- "json": ""
- },
- "customConditional": "",
- "logic": [
-
- ],
- "attributes": {
-
- },
- "overlay": {
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "overlay": {
"style": "",
- "page": "",
"left": "",
"top": "",
"width": "",
"height": ""
- },
- "type": "datagrid",
- "input": true,
- "components": [
- {
- "label": "Label",
- "tableView": true,
- "clearOnHide": false,
- "key": "label",
- "type": "textfield",
- "input": true,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "refreshOn": "",
- "redrawOn": "",
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": {
- "type": "input"
- },
- "attributes": {
-
- },
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {
-
- },
- "allowMultipleMasks": false,
- "mask": false,
- "inputType": "text",
- "inputFormat": "plain",
- "inputMask": "",
- "spellcheck": true,
- "id": "ecqfpbb"
- },
- {
- "label": "Value",
- "tableView": true,
- "calculateValue": {
- "_camelCase": [
- {
- "var": "row.label"
- }
- ]
- },
- "allowCalculateOverride": true,
- "key": "value",
- "type": "textfield",
- "input": true,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateServer": false,
- "widget": {
- "type": "input"
- },
- "attributes": {
-
- },
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {
-
- },
- "allowMultipleMasks": false,
- "mask": false,
- "inputType": "text",
- "inputFormat": "plain",
- "inputMask": "",
- "spellcheck": true,
- "id": "ec66h16"
- }
- ],
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "refreshOn": "",
- "widget": null,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "tree": true,
- "id": "evaa52"
- }
- ]
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "properties": {},
+ "allowMultipleMasks": false,
+ "size": "md",
+ "leftIcon": "",
+ "rightIcon": "",
+ "block": false,
+ "action": "submit",
+ "theme": "primary",
+ "dataGridLabel": true,
+ "id": "exq0i3o",
+ "calculateServer": false
+ }
+ ],
+ "controller": "",
+ "revisions": "",
+ "_vid": 0,
+ "title": "ccc",
+ "display": "form",
+ "access": [
+ {
+ "roles": [
+ "5e96e79ee1c3ad3178454100",
+ "5e96e79ee1c3ad3178454101",
+ "5e96e79ee1c3ad3178454102"
+ ],
+ "type": "read_all"
}
- ],
- "tableView": false,
- "key": "tabs",
- "type": "tabs",
- "input": false,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": null,
- "attributes": {
-
- },
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {
-
- },
- "allowMultipleMasks": false,
- "tree": false,
- "id": "erit9d9",
- "calculateServer": false
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": {
- "type": "input"
- },
- "attributes": {
-
- },
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {
-
- },
- "allowMultipleMasks": false,
- "size": "md",
- "leftIcon": "",
- "rightIcon": "",
- "block": false,
- "action": "submit",
- "theme": "primary",
- "dataGridLabel": true,
- "id": "exq0i3o",
- "calculateServer": false
- }
- ],
- "controller": "",
- "revisions": "",
- "_vid": 0,
- "title": "ccc",
- "display": "form",
- "access": [
- {
- "roles": [
- "5e96e79ee1c3ad3178454100",
- "5e96e79ee1c3ad3178454101",
- "5e96e79ee1c3ad3178454102"
- ],
- "type": "read_all"
- }
- ],
- "submissionAccess": [
-
- ],
- "settings": {
-
- },
- "properties": {
-
- },
- "name": "ccc",
- "path": "ccc",
- "project": "5e96e79ee1c3ad31784540ff",
- "created": "2020-05-13T10:28:13.106Z",
- "modified": "2020-05-13T10:41:32.712Z",
- "machineName": "mnmuxbuchypflyn:ccc"
+ ],
+ "submissionAccess": [],
+ "settings": {},
+ "properties": {},
+ "name": "ccc",
+ "path": "ccc",
+ "project": "5e96e79ee1c3ad31784540ff",
+ "created": "2020-05-13T10:28:13.106Z",
+ "modified": "2020-05-13T10:41:32.712Z",
+ "machineName": "mnmuxbuchypflyn:ccc"
}
diff --git a/test/formtest/calculateValueWithSubmissionMetadata.json b/test/formtest/calculateValueWithSubmissionMetadata.json
index 7f5542c8dc..511e8b3e4d 100644
--- a/test/formtest/calculateValueWithSubmissionMetadata.json
+++ b/test/formtest/calculateValueWithSubmissionMetadata.json
@@ -1,33 +1,33 @@
{
- "title": "calculate value metadata",
- "name": "calculateValueMetadata",
- "path": "calculatevaluemetadata",
- "type": "form",
- "display": "form",
- "components": [
- {
- "label": "Text Field",
- "tableView": true,
- "key": "textField",
- "type": "textfield",
- "input": true
- },
- {
- "label": "Text Area",
- "autoExpand": false,
- "tableView": true,
- "calculateValue": "value = data.textField;\r\nlet parsedSubmission = JSON.parse(JSON.stringify(submission));\r\nif (!!parsedSubmission.metadata && !!parsedSubmission.metadata.timezone) {\r\n value += parsedSubmission.metadata.timezone;\r\n}",
- "key": "textArea",
- "type": "textarea",
- "input": true
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }
- ]
+ "title": "calculate value metadata",
+ "name": "calculateValueMetadata",
+ "path": "calculatevaluemetadata",
+ "type": "form",
+ "display": "form",
+ "components": [
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "Text Area",
+ "autoExpand": false,
+ "tableView": true,
+ "calculateValue": "value = data.textField;\r\nlet parsedSubmission = JSON.parse(JSON.stringify(submission));\r\nif (!!parsedSubmission.metadata && !!parsedSubmission.metadata.timezone) {\r\n value += parsedSubmission.metadata.timezone;\r\n}",
+ "key": "textArea",
+ "type": "textarea",
+ "input": true
+ },
+ {
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
+ }
+ ]
}
diff --git a/test/formtest/calculateZeroValue.json b/test/formtest/calculateZeroValue.json
index 3c0d24f473..37143c390e 100644
--- a/test/formtest/calculateZeroValue.json
+++ b/test/formtest/calculateZeroValue.json
@@ -1,42 +1,42 @@
{
- "type": "form",
- "components": [
- {
- "label": "A",
- "tableView": true,
- "key": "a",
- "type": "textfield",
- "input": true
- },
- {
- "label": "B",
- "tableView": true,
- "key": "b",
- "type": "textfield",
- "input": true
- },
- {
- "label": "Sum",
- "tableView": true,
- "calculateValue": "value = +data.a + +data.b",
- "key": "number",
- "type": "textfield",
- "input": true
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }
- ],
- "controller": "",
- "revisions": "",
- "_vid": 0,
- "title": "calcWithFalseValue",
- "display": "form",
- "name": "calcWithFalseValue",
- "path": "calcwithfalsevalue"
-}
\ No newline at end of file
+ "type": "form",
+ "components": [
+ {
+ "label": "A",
+ "tableView": true,
+ "key": "a",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "B",
+ "tableView": true,
+ "key": "b",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "Sum",
+ "tableView": true,
+ "calculateValue": "value = +data.a + +data.b",
+ "key": "number",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
+ }
+ ],
+ "controller": "",
+ "revisions": "",
+ "_vid": 0,
+ "title": "calcWithFalseValue",
+ "display": "form",
+ "name": "calcWithFalseValue",
+ "path": "calcwithfalsevalue"
+}
diff --git a/test/formtest/calculatedNotPersistentValue.json b/test/formtest/calculatedNotPersistentValue.json
index 9ef8c46b5a..ed9da4d5ea 100644
--- a/test/formtest/calculatedNotPersistentValue.json
+++ b/test/formtest/calculatedNotPersistentValue.json
@@ -1,38 +1,38 @@
{
- "type": "form",
- "owner": "5e39236b2bf5349fa47e70ef",
- "components": [
- {
- "label": "Text Field",
- "tableView": true,
- "key": "a",
- "type": "textfield",
- "input": true
- },
- {
- "label": "Text Field",
- "tableView": true,
- "calculateValue": "value = data.a;",
- "key": "textField",
- "type": "textfield",
- "input": true,
- "persistent": false
- }
- ],
- "revisions": "",
- "_vid": 0,
- "title": "Test Calculated Value",
- "display": "form",
- "access": [
- {
- "roles": [
- "5ebb002541fe5bae34e9fd0c",
- "5ebb002541fe5b081de9fd0d",
- "5ebb002541fe5b6664e9fd0e"
- ],
- "type": "read_all"
- }
- ],
- "name": "testCalculatedValue",
- "path": "testcalculatedvalue"
+ "type": "form",
+ "owner": "5e39236b2bf5349fa47e70ef",
+ "components": [
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "key": "a",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "calculateValue": "value = data.a;",
+ "key": "textField",
+ "type": "textfield",
+ "input": true,
+ "persistent": false
+ }
+ ],
+ "revisions": "",
+ "_vid": 0,
+ "title": "Test Calculated Value",
+ "display": "form",
+ "access": [
+ {
+ "roles": [
+ "5ebb002541fe5bae34e9fd0c",
+ "5ebb002541fe5b081de9fd0d",
+ "5ebb002541fe5b6664e9fd0e"
+ ],
+ "type": "read_all"
+ }
+ ],
+ "name": "testCalculatedValue",
+ "path": "testcalculatedvalue"
}
diff --git a/test/formtest/calculatedSelectboxes.json b/test/formtest/calculatedSelectboxes.json
index 52c090cbd9..f3e6e8ddbe 100644
--- a/test/formtest/calculatedSelectboxes.json
+++ b/test/formtest/calculatedSelectboxes.json
@@ -1,87 +1,87 @@
{
- "_id": "5ee38279e92e482bb9b332a1",
- "type": "form",
- "owner": "5e8f2b72d248941a2bec61ad",
- "components": [
- {
- "label": "Radio",
- "optionsLabelPosition": "right",
- "inline": false,
- "tableView": false,
- "values": [
+ "_id": "5ee38279e92e482bb9b332a1",
+ "type": "form",
+ "owner": "5e8f2b72d248941a2bec61ad",
+ "components": [
{
- "label": "a",
- "value": "a",
- "shortcut": ""
+ "label": "Radio",
+ "optionsLabelPosition": "right",
+ "inline": false,
+ "tableView": false,
+ "values": [
+ {
+ "label": "a",
+ "value": "a",
+ "shortcut": ""
+ },
+ {
+ "label": "b",
+ "value": "b",
+ "shortcut": ""
+ }
+ ],
+ "key": "radio",
+ "type": "radio",
+ "input": true
},
{
- "label": "b",
- "value": "b",
- "shortcut": ""
- }
- ],
- "key": "radio",
- "type": "radio",
- "input": true
- },
- {
- "label": "Select Boxes",
- "optionsLabelPosition": "right",
- "tableView": false,
- "defaultValue": {
- "": false,
- "a": false,
- "b": false,
- "c": false
- },
- "values": [
- {
- "label": "a",
- "value": "a",
- "shortcut": ""
+ "label": "Select Boxes",
+ "optionsLabelPosition": "right",
+ "tableView": false,
+ "defaultValue": {
+ "": false,
+ "a": false,
+ "b": false,
+ "c": false
+ },
+ "values": [
+ {
+ "label": "a",
+ "value": "a",
+ "shortcut": ""
+ },
+ {
+ "label": "b",
+ "value": "b",
+ "shortcut": ""
+ },
+ {
+ "label": "c",
+ "value": "c",
+ "shortcut": ""
+ }
+ ],
+ "calculateValue": "if (data.radio === 'a') { value = 'a' }",
+ "allowCalculateOverride": true,
+ "key": "selectBoxes",
+ "type": "selectboxes",
+ "input": true,
+ "inputType": "checkbox"
},
{
- "label": "b",
- "value": "b",
- "shortcut": ""
- },
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
+ }
+ ],
+ "controller": "",
+ "revisions": "",
+ "_vid": 0,
+ "title": "blurValidation",
+ "display": "form",
+ "access": [
{
- "label": "c",
- "value": "c",
- "shortcut": ""
+ "roles": [
+ "5ec618dbca7d5e849d3266f7",
+ "5ec618dbca7d5eac193266f8",
+ "5ec618dbca7d5e4ab43266f9"
+ ],
+ "type": "read_all"
}
- ],
- "calculateValue": "if (data.radio === 'a') { value = 'a' }",
- "allowCalculateOverride": true,
- "key": "selectBoxes",
- "type": "selectboxes",
- "input": true,
- "inputType": "checkbox"
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }
- ],
- "controller": "",
- "revisions": "",
- "_vid": 0,
- "title": "blurValidation",
- "display": "form",
- "access": [
- {
- "roles": [
- "5ec618dbca7d5e849d3266f7",
- "5ec618dbca7d5eac193266f8",
- "5ec618dbca7d5e4ab43266f9"
- ],
- "type": "read_all"
- }
- ],
- "name": "blurValidation",
- "path": "blurvalidation"
+ ],
+ "name": "blurValidation",
+ "path": "blurvalidation"
}
diff --git a/test/formtest/calculatedValueForm.json b/test/formtest/calculatedValueForm.json
index 07c9eb5441..d8e5c00a6e 100644
--- a/test/formtest/calculatedValueForm.json
+++ b/test/formtest/calculatedValueForm.json
@@ -1,47 +1,52 @@
{
- "type": "form",
- "components": [{
- "input": true,
- "tableView": true,
- "inputType": "text",
- "label": "Amount 1",
- "key": "amount1",
- "delimiter": true,
- "decimalLimit": 2,
- "requireDecimal": true,
- "type": "currency"
- }, {
- "input": true,
- "tableView": true,
- "inputType": "text",
- "label": "Amount 2",
- "key": "amount2",
- "delimiter": true,
- "decimalLimit": 2,
- "requireDecimal": true,
- "type": "currency"
- }, {
- "label": "Total",
- "mask": false,
- "spellcheck": true,
- "tableView": true,
- "currency": "USD",
- "inputFormat": "plain",
- "calculateValue": "var temp = [data.amount1, data.amount2];\nvar total = 0;\n\nfor (var i = 0; i < temp.length; i++) {\n total += !isNaN(temp[i]) ? temp[i] : 0;\n}\n\nvalue = total;",
- "key": "currency",
- "type": "currency",
- "input": true,
- "inputType": "text",
- "delimiter": true,
- "decimalLimit": 2,
- "requireDecimal": true
- }, {
- "input": true,
- "label": "Submit",
- "tableView": false,
- "key": "submit",
- "type": "button"
- }],
- "name": "preventOverriding",
- "path": "preventoverriding"
+ "type": "form",
+ "components": [
+ {
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "label": "Amount 1",
+ "key": "amount1",
+ "delimiter": true,
+ "decimalLimit": 2,
+ "requireDecimal": true,
+ "type": "currency"
+ },
+ {
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "label": "Amount 2",
+ "key": "amount2",
+ "delimiter": true,
+ "decimalLimit": 2,
+ "requireDecimal": true,
+ "type": "currency"
+ },
+ {
+ "label": "Total",
+ "mask": false,
+ "spellcheck": true,
+ "tableView": true,
+ "currency": "USD",
+ "inputFormat": "plain",
+ "calculateValue": "var temp = [data.amount1, data.amount2];\nvar total = 0;\n\nfor (var i = 0; i < temp.length; i++) {\n total += !isNaN(temp[i]) ? temp[i] : 0;\n}\n\nvalue = total;",
+ "key": "currency",
+ "type": "currency",
+ "input": true,
+ "inputType": "text",
+ "delimiter": true,
+ "decimalLimit": 2,
+ "requireDecimal": true
+ },
+ {
+ "input": true,
+ "label": "Submit",
+ "tableView": false,
+ "key": "submit",
+ "type": "button"
+ }
+ ],
+ "name": "preventOverriding",
+ "path": "preventoverriding"
}
diff --git a/test/formtest/clearOnHide.json b/test/formtest/clearOnHide.json
index 30537e23f7..cf575f004a 100644
--- a/test/formtest/clearOnHide.json
+++ b/test/formtest/clearOnHide.json
@@ -1,41 +1,41 @@
{
- "type": "form",
- "components": [
- {
- "label": "visible",
- "spellcheck": true,
- "tableView": true,
- "calculateServer": false,
- "key": "visible",
- "type": "textfield",
- "input": true,
- "defaultValue": "yes"
- },
- {
- "label": "ClearOnHide Field",
- "spellcheck": true,
- "tableView": true,
- "calculateServer": false,
- "key": "clearOnHideField",
- "conditional": {
- "show": true,
- "when": "visible",
- "eq": "yes"
- },
- "type": "textfield",
- "input": true
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }
- ],
- "title": "submissionClearOnHide",
- "display": "form",
- "name": "submissionClearOnHide",
- "path": "submissionclearonhide"
+ "type": "form",
+ "components": [
+ {
+ "label": "visible",
+ "spellcheck": true,
+ "tableView": true,
+ "calculateServer": false,
+ "key": "visible",
+ "type": "textfield",
+ "input": true,
+ "defaultValue": "yes"
+ },
+ {
+ "label": "ClearOnHide Field",
+ "spellcheck": true,
+ "tableView": true,
+ "calculateServer": false,
+ "key": "clearOnHideField",
+ "conditional": {
+ "show": true,
+ "when": "visible",
+ "eq": "yes"
+ },
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
+ }
+ ],
+ "title": "submissionClearOnHide",
+ "display": "form",
+ "name": "submissionClearOnHide",
+ "path": "submissionclearonhide"
}
diff --git a/test/formtest/columnsForm.json b/test/formtest/columnsForm.json
index ecb39bea1f..662f26661d 100644
--- a/test/formtest/columnsForm.json
+++ b/test/formtest/columnsForm.json
@@ -1,53 +1,49 @@
{
- "_id": "5ee74f389aa2572d3c988bda",
- "type": "form",
- "owner": "5e8f2b72d248941a2bec61ad",
- "components": [
- {
- "label": "Columns",
- "columns": [
+ "_id": "5ee74f389aa2572d3c988bda",
+ "type": "form",
+ "owner": "5e8f2b72d248941a2bec61ad",
+ "components": [
{
- "components": [
-
- ],
- "width": 6,
- "offset": 0,
- "push": 0,
- "pull": 0,
- "size": "md"
- },
+ "label": "Columns",
+ "columns": [
+ {
+ "components": [],
+ "width": 6,
+ "offset": 0,
+ "push": 0,
+ "pull": 0,
+ "size": "md"
+ },
+ {
+ "components": [],
+ "width": 6,
+ "offset": 0,
+ "push": 0,
+ "pull": 0,
+ "size": "md"
+ }
+ ],
+ "tableView": false,
+ "key": "columns",
+ "type": "columns",
+ "input": false
+ }
+ ],
+ "controller": "",
+ "revisions": "",
+ "_vid": 0,
+ "title": "columns",
+ "display": "form",
+ "access": [
{
- "components": [
-
- ],
- "width": 6,
- "offset": 0,
- "push": 0,
- "pull": 0,
- "size": "md"
+ "roles": [
+ "5ec618dbca7d5e849d3266f7",
+ "5ec618dbca7d5eac193266f8",
+ "5ec618dbca7d5e4ab43266f9"
+ ],
+ "type": "read_all"
}
- ],
- "tableView": false,
- "key": "columns",
- "type": "columns",
- "input": false
- }
- ],
- "controller": "",
- "revisions": "",
- "_vid": 0,
- "title": "columns",
- "display": "form",
- "access": [
- {
- "roles": [
- "5ec618dbca7d5e849d3266f7",
- "5ec618dbca7d5eac193266f8",
- "5ec618dbca7d5e4ab43266f9"
- ],
- "type": "read_all"
- }
- ],
- "name": "columns",
- "path": "columns"
+ ],
+ "name": "columns",
+ "path": "columns"
}
diff --git a/test/formtest/conditionalLogicForm.json b/test/formtest/conditionalLogicForm.json
index 64d3153af7..7f83622f0a 100644
--- a/test/formtest/conditionalLogicForm.json
+++ b/test/formtest/conditionalLogicForm.json
@@ -1,77 +1,92 @@
{
- "type": "form",
- "components": [{
- "label": "Container",
- "tableView": false,
- "key": "container1",
- "type": "container",
- "input": true,
- "components": [{
- "label": "Radio",
- "optionsLabelPosition": "right",
- "inline": false,
- "tableView": false,
- "values": [{
- "label": "yes",
- "value": "yes",
- "shortcut": ""
- }, {
- "label": "no",
- "value": "no",
- "shortcut": ""
- }],
- "key": "radio1",
- "type": "radio",
- "input": true
- }, {
- "label": "Text Field",
- "tableView": true,
- "key": "textField",
- "conditional": {
- "show": true,
- "when": "container1.radio1",
- "eq": "yes"
- },
- "type": "textfield",
- "input": true
- }]
- }, {
- "label": "Container",
- "tableView": false,
- "key": "container2",
- "type": "container",
- "input": true,
- "components": [{
- "label": "Radio",
- "optionsLabelPosition": "right",
- "inline": false,
- "tableView": false,
- "values": [{
- "label": "yes",
- "value": "yes",
- "shortcut": ""
- }, {
- "label": "no",
- "value": "no",
- "shortcut": ""
- }],
- "key": "radio1",
- "type": "radio",
- "input": true
- }, {
- "label": "Text Field",
- "tableView": true,
- "key": "textField",
- "conditional": {
- "show": true,
- "when": "container2.radio1",
- "eq": "yes"
- },
- "type": "textfield",
- "input": true
- }]
- }],
- "title": "equalKeys",
- "display": "form",
- "path": "equalkeys"
+ "type": "form",
+ "components": [
+ {
+ "label": "Container",
+ "tableView": false,
+ "key": "container1",
+ "type": "container",
+ "input": true,
+ "components": [
+ {
+ "label": "Radio",
+ "optionsLabelPosition": "right",
+ "inline": false,
+ "tableView": false,
+ "values": [
+ {
+ "label": "yes",
+ "value": "yes",
+ "shortcut": ""
+ },
+ {
+ "label": "no",
+ "value": "no",
+ "shortcut": ""
+ }
+ ],
+ "key": "radio1",
+ "type": "radio",
+ "input": true
+ },
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "key": "textField",
+ "conditional": {
+ "show": true,
+ "when": "container1.radio1",
+ "eq": "yes"
+ },
+ "type": "textfield",
+ "input": true
+ }
+ ]
+ },
+ {
+ "label": "Container",
+ "tableView": false,
+ "key": "container2",
+ "type": "container",
+ "input": true,
+ "components": [
+ {
+ "label": "Radio",
+ "optionsLabelPosition": "right",
+ "inline": false,
+ "tableView": false,
+ "values": [
+ {
+ "label": "yes",
+ "value": "yes",
+ "shortcut": ""
+ },
+ {
+ "label": "no",
+ "value": "no",
+ "shortcut": ""
+ }
+ ],
+ "key": "radio1",
+ "type": "radio",
+ "input": true
+ },
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "key": "textField",
+ "conditional": {
+ "show": true,
+ "when": "container2.radio1",
+ "eq": "yes"
+ },
+ "type": "textfield",
+ "input": true
+ }
+ ]
+ }
+ ],
+ "title": "equalKeys",
+ "display": "form",
+ "path": "equalkeys"
}
diff --git a/test/formtest/data.json b/test/formtest/data.json
index 618777694c..8dd465b442 100644
--- a/test/formtest/data.json
+++ b/test/formtest/data.json
@@ -1,766 +1,764 @@
{
- "type": "form",
- "tags": [],
- "owner": "55673dc04f0405dd28205bb7",
- "components": [
- {
- "input": true,
- "tableView": true,
- "key": "test",
- "label": "test",
- "protected": false,
- "unique": false,
- "persistent": true,
- "type": "hidden",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {}
- },
- {
- "input": true,
- "tree": true,
- "components": [
+ "type": "form",
+ "tags": [],
+ "owner": "55673dc04f0405dd28205bb7",
+ "components": [
{
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "text",
- "inputMask": "",
- "label": "Text",
- "key": "containerText",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "labelPosition": "top",
- "inputFormat": "plain",
- "tags": [],
- "properties": {}
- }
- ],
- "tableView": true,
- "label": "Container",
- "key": "container",
- "protected": false,
- "persistent": true,
- "clearOnHide": true,
- "type": "container",
- "labelPosition": "top",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {}
- },
- {
- "autofocus": false,
- "input": true,
- "tree": true,
- "components": [
+ "input": true,
+ "tableView": true,
+ "key": "test",
+ "label": "test",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "type": "hidden",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {}
+ },
{
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "text",
- "inputMask": "",
- "label": "Show Header",
- "key": "dataGridText",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "inDataGrid": true,
- "labelPosition": "top",
- "inputFormat": "plain",
- "tags": [],
- "properties": {},
- "tooltip": "My Tooltip"
+ "input": true,
+ "tree": true,
+ "components": [
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Text",
+ "key": "containerText",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "labelPosition": "top",
+ "inputFormat": "plain",
+ "tags": [],
+ "properties": {}
+ }
+ ],
+ "tableView": true,
+ "label": "Container",
+ "key": "container",
+ "protected": false,
+ "persistent": true,
+ "clearOnHide": true,
+ "type": "container",
+ "labelPosition": "top",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {}
},
{
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "text",
- "inputMask": "",
- "label": "Show Neither",
- "key": "dataGridText3",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "inDataGrid": true,
- "labelPosition": "top",
- "inputFormat": "plain",
- "tags": [],
- "properties": {},
- "hideLabel": true
+ "autofocus": false,
+ "input": true,
+ "tree": true,
+ "components": [
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Show Header",
+ "key": "dataGridText",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "inDataGrid": true,
+ "labelPosition": "top",
+ "inputFormat": "plain",
+ "tags": [],
+ "properties": {},
+ "tooltip": "My Tooltip"
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Show Neither",
+ "key": "dataGridText3",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "inDataGrid": true,
+ "labelPosition": "top",
+ "inputFormat": "plain",
+ "tags": [],
+ "properties": {},
+ "hideLabel": true
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Show Row",
+ "key": "dataGridText2",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "inDataGrid": true,
+ "labelPosition": "top",
+ "inputFormat": "plain",
+ "tags": [],
+ "properties": {},
+ "dataGridLabel": true,
+ "hideLabel": true
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Show Both",
+ "key": "dataGridText4",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "inDataGrid": true,
+ "labelPosition": "top",
+ "inputFormat": "plain",
+ "tags": [],
+ "properties": {},
+ "dataGridLabel": true
+ }
+ ],
+ "tableView": true,
+ "label": "Data Grid",
+ "key": "dataGrid",
+ "protected": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "type": "datagrid",
+ "addAnotherPosition": "bottom",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "validate": {
+ "minLength": 3,
+ "maxLength": 5
+ },
+ "bordered": true
},
{
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "text",
- "inputMask": "",
- "label": "Show Row",
- "key": "dataGridText2",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "inDataGrid": true,
- "labelPosition": "top",
- "inputFormat": "plain",
- "tags": [],
- "properties": {},
- "dataGridLabel": true,
- "hideLabel": true
+ "autofocus": false,
+ "input": true,
+ "tree": true,
+ "components": [
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Text",
+ "key": "dataGrid2Text",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "inDataGrid": true,
+ "labelPosition": "top",
+ "inputFormat": "plain",
+ "tags": [],
+ "properties": {},
+ "hideLabel": true
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Text",
+ "key": "text",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "labelPosition": "top",
+ "inputFormat": "plain",
+ "tags": [],
+ "properties": {},
+ "inDataGrid": true,
+ "hideLabel": true
+ }
+ ],
+ "tableView": true,
+ "label": "Data Grid",
+ "key": "dataGrid2",
+ "protected": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "type": "datagrid",
+ "addAnotherPosition": "bottom",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "bordered": true
},
{
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "text",
- "inputMask": "",
- "label": "Show Both",
- "key": "dataGridText4",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "inDataGrid": true,
- "labelPosition": "top",
- "inputFormat": "plain",
- "tags": [],
- "properties": {},
- "dataGridLabel": true
- }
- ],
- "tableView": true,
- "label": "Data Grid",
- "key": "dataGrid",
- "protected": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "type": "datagrid",
- "addAnotherPosition": "bottom",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "validate": {
- "minLength": 3,
- "maxLength": 5
- },
- "bordered": true
- },
- {
- "autofocus": false,
- "input": true,
- "tree": true,
- "components": [
+ "autofocus": false,
+ "input": true,
+ "inputType": "checkbox",
+ "tableView": true,
+ "label": "Show",
+ "dataGridLabel": false,
+ "key": "show",
+ "defaultValue": false,
+ "protected": false,
+ "persistent": true,
+ "hidden": false,
+ "name": "",
+ "value": "",
+ "clearOnHide": true,
+ "validate": {
+ "required": false
+ },
+ "type": "checkbox",
+ "labelPosition": "right",
+ "hideLabel": false,
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {}
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "tree": true,
+ "components": [
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Checkbox",
+ "key": "conditionalDataGridCheckbox",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "true",
+ "when": "show",
+ "eq": "true"
+ },
+ "type": "textfield",
+ "inDataGrid": true,
+ "labelPosition": "top",
+ "inputFormat": "plain",
+ "tags": [],
+ "properties": {}
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "inputType": "checkbox",
+ "tableView": true,
+ "label": "Show2",
+ "dataGridLabel": false,
+ "key": "conditionalDataGridShow2",
+ "defaultValue": false,
+ "protected": false,
+ "persistent": true,
+ "hidden": false,
+ "name": "",
+ "value": "",
+ "clearOnHide": true,
+ "validate": {
+ "required": false
+ },
+ "type": "checkbox",
+ "labelPosition": "right",
+ "inDataGrid": true,
+ "hideLabel": false,
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {}
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Internal",
+ "key": "conditionalDataGridInternal",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "true",
+ "when": "conditionalDataGridShow2",
+ "eq": "true"
+ },
+ "type": "textfield",
+ "inDataGrid": true,
+ "labelPosition": "top",
+ "inputFormat": "plain",
+ "tags": [],
+ "properties": {}
+ }
+ ],
+ "tableView": true,
+ "label": "Conditional Data Grid",
+ "key": "conditionalDataGrid",
+ "protected": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "type": "datagrid",
+ "addAnotherPosition": "bottom",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "bordered": true
+ },
{
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "text",
- "inputMask": "",
- "label": "Text",
- "key": "dataGrid2Text",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "inDataGrid": true,
- "labelPosition": "top",
- "inputFormat": "plain",
- "tags": [],
- "properties": {},
- "hideLabel": true
+ "input": true,
+ "tree": true,
+ "components": [
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Text",
+ "key": "editGridText",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "labelPosition": "top",
+ "inputFormat": "plain",
+ "tags": [],
+ "properties": {}
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Text",
+ "key": "editGridText2",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "labelPosition": "top",
+ "inputFormat": "plain",
+ "tags": [],
+ "properties": {}
+ }
+ ],
+ "multiple": false,
+ "tableView": true,
+ "label": "Edit Grid",
+ "key": "editGrid",
+ "protected": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "templates": {
+ "header": "
\n {%util.eachComponent(components, function(component) { %} \n
\n {{ component.label }} \n
\n {% }) %} \n
",
+ "row": "
\n {%util.eachComponent(components, function(component) { %} \n
\n {{ getView(component, row[component.key]) }} \n
\n {% }) %} \n
\n
",
+ "footer": ""
+ },
+ "type": "editgrid",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "removeRow": "Cancel"
},
{
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "text",
- "inputMask": "",
- "label": "Text",
- "key": "text",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "labelPosition": "top",
- "inputFormat": "plain",
- "tags": [],
- "properties": {},
- "inDataGrid": true,
- "hideLabel": true
+ "autofocus": false,
+ "input": true,
+ "label": "Submit",
+ "tableView": false,
+ "key": "submit",
+ "size": "md",
+ "leftIcon": "",
+ "rightIcon": "",
+ "block": false,
+ "action": "submit",
+ "disableOnInvalid": false,
+ "theme": "primary",
+ "type": "button"
}
- ],
- "tableView": true,
- "label": "Data Grid",
- "key": "dataGrid2",
- "protected": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "type": "datagrid",
- "addAnotherPosition": "bottom",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "bordered": true
- },
- {
- "autofocus": false,
- "input": true,
- "inputType": "checkbox",
- "tableView": true,
- "label": "Show",
- "dataGridLabel": false,
- "key": "show",
- "defaultValue": false,
- "protected": false,
- "persistent": true,
- "hidden": false,
- "name": "",
- "value": "",
- "clearOnHide": true,
- "validate": {
- "required": false
- },
- "type": "checkbox",
- "labelPosition": "right",
- "hideLabel": false,
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {}
- },
- {
- "autofocus": false,
- "input": true,
- "tree": true,
- "components": [
+ ],
+ "revisions": "",
+ "_vid": 0,
+ "_id": "5b202662f417cc387d12fbc2",
+ "title": "Data",
+ "display": "form",
+ "access": [
+ {
+ "roles": [],
+ "type": "create_own"
+ },
+ {
+ "roles": [],
+ "type": "create_all"
+ },
+ {
+ "roles": [],
+ "type": "read_own"
+ },
+ {
+ "roles": [
+ "5692b920d1028f01000407e4",
+ "5692b920d1028f01000407e5",
+ "5692b920d1028f01000407e6"
+ ],
+ "type": "read_all"
+ },
+ {
+ "roles": [],
+ "type": "update_own"
+ },
+ {
+ "roles": [],
+ "type": "update_all"
+ },
+ {
+ "roles": [],
+ "type": "delete_own"
+ },
{
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "text",
- "inputMask": "",
- "label": "Checkbox",
- "key": "conditionalDataGridCheckbox",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": "true",
- "when": "show",
- "eq": "true"
- },
- "type": "textfield",
- "inDataGrid": true,
- "labelPosition": "top",
- "inputFormat": "plain",
- "tags": [],
- "properties": {}
+ "roles": [],
+ "type": "delete_all"
},
{
- "autofocus": false,
- "input": true,
- "inputType": "checkbox",
- "tableView": true,
- "label": "Show2",
- "dataGridLabel": false,
- "key": "conditionalDataGridShow2",
- "defaultValue": false,
- "protected": false,
- "persistent": true,
- "hidden": false,
- "name": "",
- "value": "",
- "clearOnHide": true,
- "validate": {
- "required": false
- },
- "type": "checkbox",
- "labelPosition": "right",
- "inDataGrid": true,
- "hideLabel": false,
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {}
+ "roles": [],
+ "type": "team_read"
},
{
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "text",
- "inputMask": "",
- "label": "Internal",
- "key": "conditionalDataGridInternal",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": "true",
- "when": "conditionalDataGridShow2",
- "eq": "true"
- },
- "type": "textfield",
- "inDataGrid": true,
- "labelPosition": "top",
- "inputFormat": "plain",
- "tags": [],
- "properties": {}
+ "roles": [],
+ "type": "team_write"
+ },
+ {
+ "roles": [],
+ "type": "team_admin"
}
- ],
- "tableView": true,
- "label": "Conditional Data Grid",
- "key": "conditionalDataGrid",
- "protected": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "type": "datagrid",
- "addAnotherPosition": "bottom",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "bordered": true
- },
- {
- "input": true,
- "tree": true,
- "components": [
+ ],
+ "submissionAccess": [
+ {
+ "roles": [],
+ "type": "create_own"
+ },
+ {
+ "roles": [],
+ "type": "create_all"
+ },
+ {
+ "roles": [],
+ "type": "read_own"
+ },
+ {
+ "roles": ["5692b920d1028f01000407e6"],
+ "type": "read_all"
+ },
+ {
+ "roles": [],
+ "type": "update_own"
+ },
+ {
+ "roles": [],
+ "type": "update_all"
+ },
+ {
+ "roles": [],
+ "type": "delete_own"
+ },
+ {
+ "roles": [],
+ "type": "delete_all"
+ },
+ {
+ "roles": [],
+ "type": "team_read"
+ },
{
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "text",
- "inputMask": "",
- "label": "Text",
- "key": "editGridText",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "labelPosition": "top",
- "inputFormat": "plain",
- "tags": [],
- "properties": {}
+ "roles": [],
+ "type": "team_write"
},
{
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "text",
- "inputMask": "",
- "label": "Text",
- "key": "editGridText2",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "labelPosition": "top",
- "inputFormat": "plain",
- "tags": [],
- "properties": {}
+ "roles": [],
+ "type": "team_admin"
}
- ],
- "multiple": false,
- "tableView": true,
- "label": "Edit Grid",
- "key": "editGrid",
- "protected": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "templates": {
- "header": "
\n {%util.eachComponent(components, function(component) { %} \n
\n {{ component.label }} \n
\n {% }) %} \n
",
- "row": "
\n {%util.eachComponent(components, function(component) { %} \n
\n {{ getView(component, row[component.key]) }} \n
\n {% }) %} \n
\n
",
- "footer": ""
- },
- "type": "editgrid",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "removeRow": "Cancel"
- },
- {
- "autofocus": false,
- "input": true,
- "label": "Submit",
- "tableView": false,
- "key": "submit",
- "size": "md",
- "leftIcon": "",
- "rightIcon": "",
- "block": false,
- "action": "submit",
- "disableOnInvalid": false,
- "theme": "primary",
- "type": "button"
- }
- ],
- "revisions": "",
- "_vid": 0,
- "_id": "5b202662f417cc387d12fbc2",
- "title": "Data",
- "display": "form",
- "access": [
- {
- "roles": [],
- "type": "create_own"
- },
- {
- "roles": [],
- "type": "create_all"
- },
- {
- "roles": [],
- "type": "read_own"
- },
- {
- "roles": [
- "5692b920d1028f01000407e4",
- "5692b920d1028f01000407e5",
- "5692b920d1028f01000407e6"
- ],
- "type": "read_all"
- },
- {
- "roles": [],
- "type": "update_own"
- },
- {
- "roles": [],
- "type": "update_all"
- },
- {
- "roles": [],
- "type": "delete_own"
- },
- {
- "roles": [],
- "type": "delete_all"
- },
- {
- "roles": [],
- "type": "team_read"
- },
- {
- "roles": [],
- "type": "team_write"
- },
- {
- "roles": [],
- "type": "team_admin"
- }
- ],
- "submissionAccess": [
- {
- "roles": [],
- "type": "create_own"
- },
- {
- "roles": [],
- "type": "create_all"
- },
- {
- "roles": [],
- "type": "read_own"
- },
- {
- "roles": [
- "5692b920d1028f01000407e6"
- ],
- "type": "read_all"
- },
- {
- "roles": [],
- "type": "update_own"
- },
- {
- "roles": [],
- "type": "update_all"
- },
- {
- "roles": [],
- "type": "delete_own"
- },
- {
- "roles": [],
- "type": "delete_all"
- },
- {
- "roles": [],
- "type": "team_read"
- },
- {
- "roles": [],
- "type": "team_write"
- },
- {
- "roles": [],
- "type": "team_admin"
- }
- ],
- "settings": {},
- "name": "data",
- "path": "data",
- "project": "5692b91fd1028f01000407e3",
- "created": "2018-06-12T20:00:34.303Z",
- "modified": "2018-08-02T21:55:24.962Z",
- "machineName": "examples:data1"
+ ],
+ "settings": {},
+ "name": "data",
+ "path": "data",
+ "project": "5692b91fd1028f01000407e3",
+ "created": "2018-06-12T20:00:34.303Z",
+ "modified": "2018-08-02T21:55:24.962Z",
+ "machineName": "examples:data1"
}
diff --git a/test/formtest/defaults.json b/test/formtest/defaults.json
index 0d37434e25..929ec66171 100644
--- a/test/formtest/defaults.json
+++ b/test/formtest/defaults.json
@@ -1,998 +1,647 @@
{
- "type": "form",
- "tags": [],
- "owner": "55673dc04f0405dd28205bb7",
- "components": [
- {
- "input": true,
- "label": "Text",
- "key": "text",
- "defaultValue": "Text Default",
- "spellcheck": true,
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "inputFormat": "plain",
- "tags": [],
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "minWords": "",
- "maxWords": "",
- "pattern": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "es6l4ro"
- },
- {
- "input": true,
- "label": "Text",
- "key": "text2",
- "defaultValue": "",
- "spellcheck": true,
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "inputFormat": "plain",
- "tags": [],
- "properties": {},
- "customDefaultValue": "value = 'Text Calculated Default';",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "minWords": "",
- "maxWords": "",
- "pattern": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "ea1t7w"
- },
- {
- "input": true,
- "inputType": "number",
- "label": "Number",
- "key": "number",
- "defaultValue": "1",
- "validate": {
- "multiple": "",
- "required": false,
- "custom": "",
- "customPrivate": false,
- "min": "",
- "max": "",
- "step": "any",
- "integer": ""
- },
- "type": "number",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "id": "ej8aifh"
- },
- {
- "input": true,
- "label": "Text Area",
- "key": "textArea",
- "defaultValue": "Area default",
- "spellcheck": true,
- "type": "textarea",
- "inputFormat": "plain",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "minWords": "",
- "maxWords": "",
- "pattern": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "rows": 3,
- "wysiwyg": false,
- "editor": "",
- "id": "e60pg6b"
- },
- {
- "input": true,
- "label": "Checkbox False",
- "dataGridLabel": false,
- "key": "checkboxFalse",
- "defaultValue": false,
- "type": "checkbox",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "right",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "inputType": "checkbox",
- "value": "",
- "name": "",
- "id": "eiqx07"
- },
- {
- "input": true,
- "label": "Checkbox True",
- "dataGridLabel": false,
- "key": "checkboxTrue",
- "defaultValue": "true",
- "type": "checkbox",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "right",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "inputType": "checkbox",
- "value": "",
- "name": "",
- "id": "e9x6baw"
- },
- {
- "optionsLabelPosition": "right",
- "values": [
+ "type": "form",
+ "tags": [],
+ "owner": "55673dc04f0405dd28205bb7",
+ "components": [
{
- "value": "one",
- "label": "One",
- "shortcut": ""
+ "input": true,
+ "label": "Text",
+ "key": "text",
+ "defaultValue": "Text Default",
+ "spellcheck": true,
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "inputFormat": "plain",
+ "tags": [],
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "minWords": "",
+ "maxWords": "",
+ "pattern": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "es6l4ro"
},
{
- "value": "two",
- "label": "Two",
- "shortcut": ""
+ "input": true,
+ "label": "Text",
+ "key": "text2",
+ "defaultValue": "",
+ "spellcheck": true,
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "inputFormat": "plain",
+ "tags": [],
+ "properties": {},
+ "customDefaultValue": "value = 'Text Calculated Default';",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "minWords": "",
+ "maxWords": "",
+ "pattern": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "ea1t7w"
},
{
- "value": "three",
- "label": "Three",
- "shortcut": ""
- }
- ],
- "label": "Select Boxes",
- "mask": false,
- "type": "selectboxes",
- "input": true,
- "key": "selectBoxes",
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "defaultValue": {
- "one": true,
- "two": false,
- "three": true
- },
- "inputType": "checkbox",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "fieldSet": false,
- "inline": false,
- "id": "e4afdeu"
- },
- {
- "input": true,
- "label": "Radio",
- "key": "radio",
- "values": [
- {
- "value": "one",
- "label": "One",
- "shortcut": ""
+ "input": true,
+ "inputType": "number",
+ "label": "Number",
+ "key": "number",
+ "defaultValue": "1",
+ "validate": {
+ "multiple": "",
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "min": "",
+ "max": "",
+ "step": "any",
+ "integer": ""
+ },
+ "type": "number",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "id": "ej8aifh"
},
{
- "value": "two",
- "label": "Two",
- "shortcut": ""
+ "input": true,
+ "label": "Text Area",
+ "key": "textArea",
+ "defaultValue": "Area default",
+ "spellcheck": true,
+ "type": "textarea",
+ "inputFormat": "plain",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "minWords": "",
+ "maxWords": "",
+ "pattern": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "rows": 3,
+ "wysiwyg": false,
+ "editor": "",
+ "id": "e60pg6b"
},
{
- "value": "three",
- "label": "Three",
- "shortcut": ""
- }
- ],
- "defaultValue": "two",
- "type": "radio",
- "optionsLabelPosition": "right",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "inputType": "radio",
- "fieldSet": false,
- "id": "egr3yzp"
- },
- {
- "label": "Select",
- "mask": false,
- "type": "select",
- "input": true,
- "key": "select",
- "data": {
- "values": [
- {
- "label": "One",
- "value": "one"
- },
- {
- "label": "Two",
- "value": "two"
- },
- {
- "label": "Three",
- "value": "three"
- }
- ],
- "json": "",
- "url": "",
- "resource": "",
- "custom": ""
- },
- "defaultValue": "two",
- "lazyLoad": false,
- "selectValues": "",
- "disableLimit": false,
- "searchField": "",
- "clearOnRefresh": false,
- "reference": false,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "dataSrc": "values",
- "valueProperty": "value",
- "refreshOn": "",
- "filter": "",
- "searchEnabled": true,
- "authenticate": false,
- "template": "
{{ item.label }} ",
- "selectFields": "",
- "id": "e8oaol"
- },
- {
- "label": "Date / Time",
- "useLocaleSettings": false,
- "mask": false,
- "type": "datetime",
- "input": true,
- "key": "dateTime",
- "suffix": true,
- "defaultValue": "2018-08-03T17:53:52",
- "defaultDate": "2018-08-03T17:53:04",
- "datePicker": {
- "yearRows": "4",
- "yearColumns": "5",
- "minDate": "",
- "maxDate": "",
- "showWeeks": true,
- "startingDay": 0,
- "initDate": "",
- "minMode": "day",
- "maxMode": "year"
- },
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "format": "yyyy-MM-dd",
- "enableDate": true,
- "enableTime": true,
- "datepickerMode": "day",
- "timePicker": {
- "hourStep": 1,
- "minuteStep": 1,
- "showMeridian": true,
- "readonlyInput": false,
- "mousewheel": true,
- "arrowkeys": true
- },
- "id": "epbk9f"
- },
- {
- "label": "Time",
- "type": "time",
- "input": true,
- "key": "time",
- "defaultValue": "13:57:00",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "minWords": "",
- "maxWords": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "mask": false,
- "inputType": "time",
- "inputMask": "",
- "format": "HH:mm",
- "id": "eq6a3f"
- },
- {
- "input": true,
- "key": "day",
- "label": "Day",
- "type": "day",
- "fields": {
- "day": {
- "type": "number",
- "placeholder": "",
- "required": false
+ "input": true,
+ "label": "Checkbox False",
+ "dataGridLabel": false,
+ "key": "checkboxFalse",
+ "defaultValue": false,
+ "type": "checkbox",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "right",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "inputType": "checkbox",
+ "value": "",
+ "name": "",
+ "id": "eiqx07"
},
- "month": {
- "type": "select",
- "placeholder": "",
- "required": false
+ {
+ "input": true,
+ "label": "Checkbox True",
+ "dataGridLabel": false,
+ "key": "checkboxTrue",
+ "defaultValue": "true",
+ "type": "checkbox",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "right",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "inputType": "checkbox",
+ "value": "",
+ "name": "",
+ "id": "e9x6baw"
},
- "year": {
- "type": "number",
- "placeholder": "",
- "required": false
- }
- },
- "defaultValue": "02/03/2004",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "dayFirst": false,
- "id": "eery3u"
- },
- {
- "label": "Currency",
- "mask": false,
- "type": "currency",
- "input": true,
- "key": "currency",
- "defaultValue": 100.01,
- "delimiter": true,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "min": "",
- "max": "",
- "step": "any",
- "integer": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "id": "edmg5c8"
- },
- {
- "label": "Signature",
- "mask": false,
- "type": "signature",
- "input": true,
- "key": "signature",
- "defaultValue": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaAAAACdCAYAAADypayeAAAgAElEQVR4Xu2dB3jNZ/vHvzaJldh7z9aqFST2aG3VIlSNiiBmvR2qVV7VaqmitFatIvb8UxQVWxW1ib1HrMTe/+t+8ibOyUlITs45v3G+93W5XOT8nvG5n/y+51n3neTevbAXoJEACZAACZCAiwkkoQC5mDirIwESIAESUAQoQBwIJEACJEACmhCgAGmCnZWSAAmQAAlQgDgGSIAESIAENCFAAdIEOyslARIgARKgAHEMkAAJkAAJaEKAAqQJdlZKAiRAAiRAAeIYIAESIAES0IQABUgT7KyUBEiABEiAAsQxQAIkQAIkoAkBCpAm2FkpCZAACZAABYhjgARIgARIQBMCFCBNsLNSEiABEiABChDHAAmQAAmQgCYEKECaYGelJEACJEACFCCOARIgARIgAU0IUIA0wc5KSYAESIAEKEAcAyRAAiRAApoQoABpgp2VkgAJkAAJUIA4BkiABEiABDQhQAHSBDsrJQESIAESoABxDJAACZAACWhCgAKkCXZWSgIkQAIkQAHiGCABEiABEtCEAAVIE+yslARIgARIgALEMUACJEACJKAJAQqQJthZKQmQAAmQAAWIY4AESIAESEATAhQgTbCzUhIgARIgAQoQxwAJkAAJkIAmBChAmmBnpSRAAiRAAhQgjgESIAESIAFNCFCANMHOSkmABEiABChAHAMkQAIkQAKaEKAAaYKdlZIACZAACVCAOAZIgARIgAQ0IUAB0gQ7KyUBEiABEqAAcQyQAAmQAAloQoACpAl2VkoCJEACJEAB4hggARIgARLQhIDmAnTo0BFs2rQFRYsWhq9vVaRKlUoTEKyUBEiABEjAtQQ0FaC1a9ehRQv/6B6//34LTJ8+ybUEWBsJkAAJkIAmBDQVoB49+mLGjNlWHQ8Pv4zkyZNrAoOVkgAJkAAJuI6ApgL02WdfYty4iVa9lRmQzIRoJEACJEAC5iagqQAtXLgUHToE2BC+dy/M3NTZOxIgARIgAWgqQC9evEDatFkpQByIJEACJOCGBDQVIOHt6ZnFBvuZM0eQJUtmN3QHu0wCJEAC7kNAcwHy8amFAwcOWhHPnz8fDh36x328wJ6SAAmQgBsS0FyAbt68hTx5inIZzg0HH7tMAiTg3gQ0F6C4luHOnTuGTJm83ds77D0JkAAJmJiALgTo5MlTKF26shXmunVrY9myeSZGz66RAAmQgHsT0IUAiQvkPpDcC4qyHDmy48SJA+7tHfaeBEiABExMQDcCJIwrV66BgwcPR+MODp6Opk0bmRg/u0YCJEAC7ktAVwL08OFDlC1bBefPX4j2yK1bF5EyZUr39RB7TgIkQAImJaArARLGoaEnUK5clWjcgYEfYdSo4SbFz26RAAmQgPsS0J0ARS7F1cTBg4eivXL06F7kyZPbfb3EnpMACZCACQnoUoBkCa548XJWuBkfzoSjj10iARJwawK6FCDxSKtW7bFy5epo58yf/zsaNXrbrZ3FzpMACZCAmQjoVoCePXuG9OmzcxZkptHGvpAACZCABQHdCpC0cdasYAQG9o5urr9/K0yZMp4OJAESIAESMAEBXQuQ8I0ZLfvy5VNInz6dCdCzCyRAAiTg3gR0L0AhIVvQsOHLDKkpUqTA7duX3Ntr7D0JkAAJmICA7gVIGHt758ajR4+ica9fvxI+PpVMgJ9dIAESIAH3JWAIATp+/CTKlvWx8hKPZbvvoGXPSYAEzEHAEAIkqKtXr4/du/dGU//kk74YPHigObzAXpAACZCAGxIwjAC9ePECadNmtXIRDyS44Yhll0mABExDwDACJMR37PgbdepYR8fmUpxpxiI7QgIk4GYEDCVA4puYx7JXr14GP7+qbuY2dpcESIAEjE/AcAJ0//59ZMmSz4o8Z0HGH4jsAQmQgPsRMJwAiYsmTJiC/v0HRHvrrbfKYvPmP93Pe+wxCZAACRiYgCEFKLaluH37dqJw4YIGdoV5mn7s2HHs3r0H48dPwr//7n9lx4oWLaL8tmrVmld+zsMjDcqXL4ft2//G06dPX/lZT09Plb4jV66cWL/+rzg/mzx5cnTt2gmBgV04duKgJDEZN2/ehpCQzdi7dz+ePn2CbNmyInv27KhatTIKFMiPpEmTonjxouYZwOyJywgYVoDkYqpcULU0LsW5bNzYVHTo0BE0b94aly5d1q4Riaw5S5bMOHToH4iAuavJEvdPP43Dt9+OsBtBjx4BGDp0EFKnTm13GXzQPQgYVoDEPYcPH0XFin7Rnho+fCh69ermHp7TuJfh4RE4cOAQZs+ei/37D752pqNxcxNcfevWLVGwYAFUreqDTJm81axLZgOPHz/Bkyfy5zHu3r2HR48eI02a1Pjjjz+xdu06AEnUDCFTJi/1Ak6b1hOZM2dGqlQpITPD1avjv1ScN28eeHllhIeHB7Zv34lUqVKpiCAyc8uaNQvy5curZm7e3t5KNENDQ/HgwUOsW/eXVeSQ13U+Z84cKr6iXPiWPjrK/vhjKapXr+ao4liOCQkYWoDEH126BCE4eH60a8LCzqpfWJpjCcyYMRs9evS1q9B27VqjWbPG6kUuyzW3b9/G06fPkC5dOqRIkRxp0qTB9es31ItdXrKZM2dSL1mJ+5cyZQo8f/4cSZIkgdwFu3Dhknq5Hjx4WL3w7927rwQgbdq0qvwcObIjQ4b0SJYsOUqWLI4XL56rz4hwyGnJ7NmzqXLOnj2nyjxz5hx+/XUyVqxYFWvfouq1q+N8CCtWLETt2jVIggRi//26dy/shZHZxMwbVK2aD9auXWHkLumu7f7+HbF8+cp4t+vLLz/Dp5/2Q7JkyeL9jNYfFJFbtGgZBg4cjIsXXwa7FcGUnznChIcjZxiWbRKhFpF1pSVPnkx9kXiVeXt74fz5UFc2i3UZiIDhZ0DC+t69e8iaNX809j17tqFYsSIGcoN+mxpbBIqYra1cuSLGj/8JJUoU029H7GxZWNh1XLlyRb3cZXnrn3/24Nq1MDx48AA3btxQy3Cy1JYsWVIUK1YUlSqVR/LkKSD7STKTkxmdjE/hKC9j+fzDhw/VizssLAznz19Uy3lJkyZTsz4REilPZoWpU6dSM0aZtYlJ/TL7i5oZyuelXJmlyezvzp27quwnT57i7t27mD9/ESZNmqbaGtNkmTB37lx4882S6m9ZgpO61q/fqOqQ5cImTRqiceN31GGO1/0+iUjLYQXLyPVRdZ4+fVgtGerJIiLuoHv3Pti0aQvq1autxq8wp7mWgCkESJDt3bsPvr51o+nxQIJjBpLMBooWLWNV2LhxoyB7JFzqdAxjs5US87L4yZMHo0VUL32dM2ceAgJ6WjXnzp2rSoRpriNgGgESZEFB/TB9+ixFb9q0iWjV6l3XkTRpTfJtv0CBkla9o7ib1NkO6lZMAdLjeAkOXoAuXXpY9VgOfRw5ssdBFFhMfAiYSoBkOUJOxR05ckz1PTR0n1o+oNlPILYlOD2+UOzvIZ90NAFLAZLlxBs3zju6ikSXJ0twOXLY3hv84AN/TJw4NtHls4D4ETCVAEmX5bhshgw5VO/bt/fHhAkcTPEbCnF/KuY32oiIK4Y6YJDY/vP5+BN4/PgxvLxyRT/QpUtHjBlj/52i+Nec8E9u2bIdDRo0tXlw3ryZau+L5nwCphMgQXbjxk3kzRu5Ib5hwyrIJjnNfgIxBahFi6aYNes3+wvkk6YlEHPGLF8A5YugXm3NmnV4913b9q1Zswy+vgxy7Gy/mVKABNrSpSvQrl1ndfdDImbT7CcwcuRofP31MKsCuAxnP08zPymn4dKlizy1JybLWbKspWfbunUH6tdvYtPEb74ZhH79eum56YZvm2kFSDwzbtxE/PDDKHz11ecICOhkeGdp1YHY9oH69OmBb78dolWTWK9OCVgugUsTly9fgDp1auq0tS+bNXfuQnz0UXebdv7443fo1q2L7ttv1AaaWoDkLkSFCn44f/6CmgUxb5D9w7Rjx65YsGCJVQHbtm1AmTKl7C+UT5qOQMwZ0JYt61CunPUxfr12um/fTzF58jSb5skhCsa1c47XTC1Agiwqi6pc5jt8eLe6GEhLOIG4LqQKU4lJRiOBKAKWe4Y7d4aoy65GMLmwmzmz7Vhmuhfnec/0AiToBg4cgtGjx6Fjxw/UjWeafQQkWGXZsj42D1+6dFLFX6ORgBCwFKD161fCx6eSYcDEtRTHMe4cF7qFAAm68uWr4ejRUKxatQQ1avg6h6YblCpLFLJUEdMuXz6lwrnQSKBo0dK4eDEyLcfixcFo0OBlhBIj0GnWrDXWrdtg1dQ33iiBv//eZITmG6qNbiNAEsOrRo0GyjlXr55W0ZNp9hEYPHgYRowYbfPw7duXVJwymnsTsJwBffRRB4wdO9JQQCR2X8mS5VWEdku7desiUqZMaai+6L2xbiNA4ohOnQIxf/5iBAZ+hFGjhuvdN7pu35Qp09GnzydWbaxQ4S2sXLmI4q5rzzm/cVWq1FI5osQkArhcXDaaTZ06E7169bdqNpfwHe9FtxIgyTeTMWNkaB7edk78YPrrr01o3LilTUEnThxQeXlo7klg1Kix+OqrodGdN+qdsZgXsKVDRu2LXkeiWwmQOCEkZEt0yPi7d6+pUPY0+wmcPn0G1avXx82bt6wKkdTW+fPns79gPmlYAjIW8uQpangB6tfvM0yaNNXKDxQgxw5LtxMgwVenTiN1PNuI69OOdb9jSov5wokqddKkn9GuXRvHVMJSDEXAcvZg1DQH8+YtQufO3ShAThx5bilA4eERyJmzkMLKU3GOGV2WTC1LrFixPNat+z+VbI3mPgQsBejMmSMqQZ+RLGZQVWl7hw7t8MsvtodvjNQvvbXVLQVInDBnznwEBAQpf/D0lmOGZVwiJKVLOKTPP7fe1HVMrSxFjwRq126InTt3qaaFh1823BcQOQV39uw5K7TLls1D3bq19YjbsG1yWwESj0V9S+NNZ8eO3+bN2+DPP9fHWqiE5pcQ/TRzEyhR4i2cOxeZB+jChePw8spomA5LojpJWBfTuP/jeBe6tQDJNxz5piO2dOlc1KtXx/GE3bTEuC6sRuFYu3YFqlWzjargprhM1+3ixcupGIxiYWFnDZO+/c8/N6B589Y2/uAdIOcMUbcWIEH6888T8PnnXym6Rlyrds6wcFypsQUxtSxdwt0PGNAfnp6ejquUJWlOICryiDTEKKdNY0bylrZLxHeJ/E5zDgG3FyDBmjVrfsjtZwlYevJk5AU6muMIyIbuxx9/jmnTfo+z0OnTJ+Hdd5sy06rjsGtaUsuWbbF69Z+qDUZZuoq579OyZTPMnDlFU45mr5wCBOD+/fvIkiXyzgqjJDh3yMvekOwRxWb16tXGF198gkqVKji3ESzd6QQ+/LALFi2KTARpBAHatGkr3nmnuRUXpp53+jABBeh/jC9evISiRSPzlhgph4nzh4hzarh9Oxxr165X9ywk1YOlNWvWGAMG/AelSr3hnMpZqtMJdOvWG7//HmwIAdq//wBq1WqIhw8fRnORqwNVqlR2Oid3r4ACZDEC5Naz3H4WO38+FN7eXu4+PlzSfzmuO336LMycOcemvgkTxqBt29ZcmnOJJxxXieyryv6q3mdAe/fug6+vdbTuGTMm4733rGdDjiPDkiwJUIBijIeVK1ejVav26n8vXjyBjBkzcMS4iIDsFQUFfYw5c+bZ1Ch5nOQiIEMnucgZiaxmxozZCArqhxIlimHXrs2JLM05j8e27DZ37kw0afKOcypkqTYEKECxDIrAwN6YNStYzYDOnj2KpEmTcui4kICE9mnRog0khUZM4/KoCx2RiKrk90d+j/Q6A9q2bQfq1Wti1UOZaU+ePC4RveajCSVAAYqFmOxJdO/eR61hN2r0NubPj/v0VkKB8/PxJ/Dvv/tRrVrsd7PmzJkG2Sui6ZOA5ezi5s0LSJUqlW4aKnEgJR6kpWXLllWdgOUM27VuogC9grdk/pQLlRJCRkLJ0LQhcOnSZRQpUjrWymVp7sMP23KWqo1r4qz10aNH8PbOrX6+Zs1y+PpW0UULY8vzkzlzJoSG7tOVSOoClgsaQQF6DeSAgJ5qT0KyOkr0bJp2BGRG5OdXD8+fP7dphGwa//bbr4aLOaYdTefXHBXqqmnTRggOnu78Cl9Tw759B1Cz5tuQvcYoY0R8bd1CAXoNf1mOk3srkiNeXnBt2rynrcdYu0qVXKlSdVy9es2GhoeHBw4f3m246MtmdKssY0edbNT6LtDYsb9iwIBBVpiXLAlG/frWJ+DM6Ac994kCFA/vPHjwABKgcOvWHSo0R9u2reLxFD/ibAISvUJOWi1YsCTWqiZOHIvmzZswRbizHRFH+cePn0TZspHx/v75Z4s6EedqCwu7jkqVauDaNesvKyEha1GhQjlXN4f1xSBAAYrnkJA4UW3adMAff6xVOUHkSDBNPwRi21iOal3//n0QGNgZuXJFpmOnuY5A1DJc69YtMXVq5L0gV9nGjZvRqNG7NtVt3LgakqeKpj0BClACfCDLcS1a+KtUA1Om/AJ///cT8DQ/6ioCcrlQZkay5m9pDRs2QN++QahQ4S1uOLvIGXIfqEePvqo2V4W2kQMQgwYNhWQ0lRmQpV2/fg5p0qRxUe9ZzesIUIBeRyjGz2UmVL9+U5Vsa9iwr9G3b88ElsCPu5LAhg0hGDPmF7WHZ2mdO3+IHj26arIs5Mr+a12XhLfJlCmPasbChbPxzjv1ndqk2bPnomvXXjZ17NixkaGdnErevsIpQHZwkzhmzZq1Uhcl33+/BSSSM03fBORb8e7de/Hrr5OxePHy6MbKJWMRIwmCKndBaI4nELUMJ1FFJLqIM2zZsv9D27adbIoePHgg+vfvzWP6zoDugDIpQHZClGyP5cpVVQEMKUJ2QtTosVu3bmP58pXRS0OWzZBsrV988R9ky5ZNo9aZr9qhQ4dj+PAfVcccfRpu+/adqFs39gvJ27dvQOnSpcwH1EQ9ogAlwplyDLhKlVrqOLDsL8ydO4NBMxPB09WPyn2iJUtWQJLmxXa3qEmThhg+/L/Inz8yVQfNPgLHjh3HW29VVQ87KirClStX8dlnX2LhwqU2jeKdPfv8pMVTFCAHUK9evb5a3ilXrgw2bVrL6b4DmLq6iCdPnqiXmRy3j81q1PBVe0YNGtRFihQpXN08Q9f311+b0LhxS9WHGzfOI3Xq1Inqj/hpyJBhOHXqjFU5ixcHK//QjEOAAuQAX929exfFipWF7A1lzZoFx4/v5418B3DVqgj5dr158zb06/cpZLkuNpPsrTVrVoePTyUUKlQg0S9Vrfrq7HplZpku3cvlzMQswckBoPfe+0CdQrW02bOnqvteNOMRoAA5yGfPnj1TAQ537dqtSjx16iD3ERzEVuti5LBJcPACyJFiuZQcm0mwzSFDvlSz4LJlS7n95Ve5siAznyZNXkYO6dEjACNGfGuXOy9fvoLCha33cyRvj6TNZgBRu5Dq4iEKkIPd0KfPJ5gyJTLulSuOnTq4+SwuHgTOn7+A0NAT6p7Rnj3/YsmSl6fqLB8vWbI4PvjAH/Xr13Gb495y3H3SpGmQWaQsS0eZn19VrF4dmaI7oXbixCmUKfMyO6mcXJRVhuzZeVAkoSz19nkKkBM8IhG0JZK22DffDEK/frb3EpxQLYvUiIAs0x07FoqQkC3YsGEjtmzZHmdLZDx07NgeXl4ZNWqt46uVQzjjx0/Cjz+OsSo8Q4b0yJs3L8aPH4Xy5RMe9iYi4g6++OJrTJv2Mh3K999/g549Ax3fCZaoCQEKkJOwHz58FBUr+qnSK1euCMkxz8R2ToKtw2JPnz6j8klJEMy4lu2k2X369FB5jSQ6Q7JkyXTYk9ibJP3bs2efOokmy2OWJqcHGzd+G/7+rRLcJ/m9kbLHj5+oBN3SVq1aAjkMQjMPAQqQE3157VoYChQoGV3Dzp0hePPNl/92YtUsWkcEZCNelurmz1+kZgqvsuLFi2LgwE9RokRx3S3bySEAiYU4evR4SOw9S3vjjRIYNGgA/PyqQWY+cZmIi/A4efIUVq1aq06yrV//l/q4PBceHmHzqIjOggWz4OnpqSOvsimOIEABcgTFV5Qhx3vlaG/UfYUvv/wMAwb8x8m1sng9E5AX8KJFyzB79jybE11xtVvSw0sAzWrVfODl5aVO33l6eqjDDnfu3HHqXSU5EShj+MKFi1bNS5cuLX766QfUrOmHHDmyq5/JnR+Z8cmy5ObNW5XQrFy55pWzwKhCpY8ZMmRAwYIFUKRIITXbkVxCNPMSoAC5yLcTJ/6Gjz+OzKqaO3cu7Nq1GenTp3NR7axG7wRu3rylZkgSUkbSWSfEUqZMCcnqKfdrbt26pe4pyQvc29sbckUgffr0iIiIUFEBJNzQixfP8ejRYzUTkVmN/Hny5KlKT1CkSGH1/6Ghx/HbbzPUcXRLS5EiOfLkyYNChQrGWzxj9kXESmZ4jRo1gORvqlSpghKwV82cEsKDnzUOAQqQC30lLwNJLS2bq2IrVy5W3x5pJPAqAlevXsWtW+EqsrOkJ5dN/1SpUqq9FxEO+SIjgiGicvjwEXUX7cKFS7h9+3ac95icTVxO/pUtWxq1atWAl1cGvPFGSe6BOhu6AcunAGngtAkTpqB//wGq5oCAThg1ajh/OTXwgztWKeIlS2Ryb+3SpSs4c+as2oOJLalfzpw51J6lpC8QkZMZ1IMH99Xx53z58sHDI436uczAaCRgDwEKkD3UHPDMwYOHUblyjeiSTp06xGjMDuDKIl5PQJb71q/fqHImSVZZS5OU8x06fICqVSszmsfrUfITiSRAAUokwMQ8Lmvv/v4dsWrVGi7JJQYkn40XARGdb78dYXOCTTb727dvywSL8aLIDzmSAAXIkTTtLMtyNvT111/gk0/6MryInSz5mDWB69dvKNGRQzCWJvszffoEoVUr25TVZEgCriJAAXIV6dfUI6FLWrRog/37D6J69WqYM2e6qW7L6wSzWzRDDrl8990IdQk2pk2cOBZ16tSKPjbtFkDYSd0SoADpyDWyMTx16szoMD5MqKUj5+i8KZIYUQRnyBDbYJ8TJoxR8eiYZE/nTnTD5lGAdOh0CUfSu3d/nDx5GkFBXdGrV3dItGUaCVgSkIjTEqU7ICDIBoyE+AkKCkSuXDkJjQR0S4ACpFPXyMtFbp/PnbsQLVo0xaRJP6tLezQSmDlzDnr2/FgdpbY0yYkj4XCKFStCSCRgCAIUIJ27acyYX1REYAlTsmbNckiIf5p7EZBwTitXrsbIkWOwd+8+q877+laBHFypWtXHvaCwt6YgQAEygBtXrFiFNm06qFArEtC0cOGCBmg1m5hYApLcsFGjljZ3dSR0Te/e3dGwYQMuzSYWMp/XlAAFSFP88a9csnLWqNFAPbB163oV5oRmLgISg02iTX///SirZG7SS4k2PXLkd+qEJI0EzEKAAmQgT0pIfz+/eqrFR4/uRZ48uQ3UejY1NgISH3D+/MXo3fs/kH0/S5PI13379kSDBnUTnFeHtEnACAQoQEbwkkUbLS+tHjr0j1PD8BsMjWGaK3e+fv55AkaPHmfTZomULrEBGzV62zD9YUNJwF4CFCB7yWn43M6du1C7dkNkyuSNEycOMBikhr6Ib9VytH7kyNGYN2+RzSOS82bw4IE8vRZfmPycaQhQgAzqSlm26dQpUIXel+U43hPSnyMla+iwYSOwYcNGm8Z1794F/fv3YUQC/bmNLXIhAQqQC2E7uqoBAwap2+/vv98C06e/OtWzo+tmebYEZHn0hx9GqWynMU2O0ffs2Q3duwcwESEHDwn8jwAFyMBDQTatS5WqhNOnz6i7IJ9+2s/AvTFe08+dO69CJ0mUaTkgEtMaN35HRbGQuzo0EiABWwIUIIOPikePHsHbO/I0nOwHSWpjmnMISGbSWbPmYs2addi6dYdNJeXKlUHLls0QGPgRo1Y4xwUs1WQEKEAmcKjcjvf1rat6cu7cMXU4gZY4ApI1NDT0BNat24D//nc4JHdTTJOLoB06tFMXQpMmTZq4Cvk0CbghAQqQSZz+3Xcj8c0336ve3L17jfmEEuBXCXVz7Nhx7Nu3HyEhWzF79txYn5Y8TXXr1oaPT0VmC00AX36UBOIiQAEy0dho1qy1+sbevr0/JkwYa6KeOa4rjx8/VjMbOTDwyy+TbCIORNVUokQxdOvWBbVqVUehQgx95DgPsCQSeEmAAmSi0SAv1xw5CkFywwwfPhS9enUzUe8S1pV79+7h3LkL+Pff/Thw4BAWLFiMS5cux1qIRI/u3LmDyplTsGB+zm4ShpqfJgG7CVCA7EanzwctDyUsWRKM+vUj94bMaidPnsL9+/exYcMmhIYeV/lxhEFsJnem2rR5D76+VVG+fDlkz57NrFjYLxIwBAEKkCHclLBGhodHIGfOQuqh4ODpkJv2RrUzZ86qvDcS/eHq1WvYtGkrRHQkWV9sliJFCpQpU0otnRUvXgyVK1dA3rx5GEvNqAOA7TY1AQqQSd0bFnYd+fOXUL2rV68OZs6crKsLkDdu3FQzFTldJm3dvv1v3LlzB9u27cTNmzfV0llcVqBAfhQsWEAdBhCh8fLyUmFskiRJYlJvslskYE4CFCBz+lX1Sl7u1avXx759B9S/Z836TWVXdZZJfRcuXMTjx0+QOnUqNUu5fPmK+j+ZwaRMmVLdoYlriUzaVbr0m0iXLi2qVauCDBkyqHtNknoiY8b0yJaNS2bO8h3LJQEtCFCAtKDu4jqXLl2Bdu06R9dap04tBAV1Rc2afq+NIScnxtKm9URExB21mR8REYGMGTOqDf09e/aqMkNCtkAOQNy6dTvWnsnzst8iS2JyOEASqkkqCZnJFCiQT81cZJmMRgIk4F4EKEBu4m9JdrZq1RoMHjwMR44ci7XXnp6eyJgxg9ovkRgavcYAAACeSURBVL+vX79hc3IsW7askLQ1xYoVjt7Ez5kzp5q5iD1//gwVKpRXMyARHZn10EiABEggNgIUIDccFzJTCQ8Px7ZtO3DtWhgOHz6G69evq5TfHh5p4OdXDblz51QJ0h49egwJMePh4aH2aJgEzw0HDLtMAk4iQAFyElgWSwIkQAIk8GoCFCCOEBIgARIgAU0IUIA0wc5KSYAESIAE/h9qJmFW+y+3vgAAAABJRU5ErkJggg==",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "footer": "Sign above",
- "width": "100%",
- "height": "150",
- "penColor": "black",
- "backgroundColor": "rgb(245,245,235)",
- "minWidth": "0.5",
- "maxWidth": "2.5",
- "id": "ea4tt5"
- },
- {
- "label": "Tags",
- "mask": false,
- "type": "tags",
- "input": true,
- "key": "tags",
- "defaultValue": "one,two,three",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "delimeter": ",",
- "storeas": "string",
- "maxTags": 0,
- "id": "eawi6sl"
- },
- {
- "questions": [
{
- "label": "One",
- "value": "one"
+ "optionsLabelPosition": "right",
+ "values": [
+ {
+ "value": "one",
+ "label": "One",
+ "shortcut": ""
+ },
+ {
+ "value": "two",
+ "label": "Two",
+ "shortcut": ""
+ },
+ {
+ "value": "three",
+ "label": "Three",
+ "shortcut": ""
+ }
+ ],
+ "label": "Select Boxes",
+ "mask": false,
+ "type": "selectboxes",
+ "input": true,
+ "key": "selectBoxes",
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "defaultValue": {
+ "one": true,
+ "two": false,
+ "three": true
+ },
+ "inputType": "checkbox",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "fieldSet": false,
+ "inline": false,
+ "id": "e4afdeu"
},
{
- "label": "Two",
- "value": "two"
- }
- ],
- "values": [
+ "input": true,
+ "label": "Radio",
+ "key": "radio",
+ "values": [
+ {
+ "value": "one",
+ "label": "One",
+ "shortcut": ""
+ },
+ {
+ "value": "two",
+ "label": "Two",
+ "shortcut": ""
+ },
+ {
+ "value": "three",
+ "label": "Three",
+ "shortcut": ""
+ }
+ ],
+ "defaultValue": "two",
+ "type": "radio",
+ "optionsLabelPosition": "right",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "inputType": "radio",
+ "fieldSet": false,
+ "id": "egr3yzp"
+ },
{
- "label": "A",
- "value": "a"
+ "label": "Select",
+ "mask": false,
+ "type": "select",
+ "input": true,
+ "key": "select",
+ "data": {
+ "values": [
+ {
+ "label": "One",
+ "value": "one"
+ },
+ {
+ "label": "Two",
+ "value": "two"
+ },
+ {
+ "label": "Three",
+ "value": "three"
+ }
+ ],
+ "json": "",
+ "url": "",
+ "resource": "",
+ "custom": ""
+ },
+ "defaultValue": "two",
+ "lazyLoad": false,
+ "selectValues": "",
+ "disableLimit": false,
+ "searchField": "",
+ "clearOnRefresh": false,
+ "reference": false,
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "dataSrc": "values",
+ "valueProperty": "value",
+ "refreshOn": "",
+ "filter": "",
+ "searchEnabled": true,
+ "authenticate": false,
+ "template": "
{{ item.label }} ",
+ "selectFields": "",
+ "id": "e8oaol"
},
{
- "label": "B",
- "value": "b"
- }
- ],
- "label": "Survey",
- "mask": false,
- "type": "survey",
- "input": true,
- "key": "survey",
- "defaultValue": {
- "one": "a",
- "two": "b"
- },
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "id": "e2zpll"
- },
- {
- "input": false,
- "key": "columns",
- "label": "Columns",
- "type": "columns",
- "columns": [
+ "label": "Date / Time",
+ "useLocaleSettings": false,
+ "mask": false,
+ "type": "datetime",
+ "input": true,
+ "key": "dateTime",
+ "suffix": true,
+ "defaultValue": "2018-08-03T17:53:52",
+ "defaultDate": "2018-08-03T17:53:04",
+ "datePicker": {
+ "yearRows": "4",
+ "yearColumns": "5",
+ "minDate": "",
+ "maxDate": "",
+ "showWeeks": true,
+ "startingDay": 0,
+ "initDate": "",
+ "minMode": "day",
+ "maxMode": "year"
+ },
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "format": "yyyy-MM-dd",
+ "enableDate": true,
+ "enableTime": true,
+ "datepickerMode": "day",
+ "timePicker": {
+ "hourStep": 1,
+ "minuteStep": 1,
+ "showMeridian": true,
+ "readonlyInput": false,
+ "mousewheel": true,
+ "arrowkeys": true
+ },
+ "id": "epbk9f"
+ },
{
- "components": [
- {
- "label": "Text Field",
- "allowMultipleMasks": false,
- "inputMasks": [
- {
- "label": "",
- "mask": ""
- }
- ],
- "showWordCount": false,
- "showCharCount": false,
- "type": "textfield",
- "input": true,
- "key": "textField",
- "defaultValue": "Column Default",
- "inputFormat": "plain",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
+ "label": "Time",
+ "type": "time",
+ "input": true,
+ "key": "time",
+ "defaultValue": "13:57:00",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
"required": false,
"custom": "",
"customPrivate": false,
@@ -1001,879 +650,1230 @@
"minWords": "",
"maxWords": "",
"pattern": ""
- },
- "conditional": {
+ },
+ "conditional": {
"show": null,
"when": null,
"eq": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "esa35b"
- }
- ],
- "width": 6,
- "offset": 0,
- "push": 0,
- "pull": 0,
- "type": "column",
- "input": true,
- "key": "",
- "label": "",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "id": "efcsuh"
+ },
+ "mask": false,
+ "inputType": "time",
+ "inputMask": "",
+ "format": "HH:mm",
+ "id": "eq6a3f"
},
{
- "components": [],
- "width": 6,
- "offset": 0,
- "push": 0,
- "pull": 0,
- "type": "column",
- "input": true,
- "key": "",
- "label": "",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "id": "e22rvqb"
- }
- ],
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": false,
- "tableView": false,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "id": "e4vhhx"
- },
- {
- "input": false,
- "key": "fieldSet",
- "label": "Field Set",
- "type": "fieldset",
- "components": [
+ "input": true,
+ "key": "day",
+ "label": "Day",
+ "type": "day",
+ "fields": {
+ "day": {
+ "type": "number",
+ "placeholder": "",
+ "required": false
+ },
+ "month": {
+ "type": "select",
+ "placeholder": "",
+ "required": false
+ },
+ "year": {
+ "type": "number",
+ "placeholder": "",
+ "required": false
+ }
+ },
+ "defaultValue": "02/03/2004",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "dayFirst": false,
+ "id": "eery3u"
+ },
{
- "label": "Text Field",
- "allowMultipleMasks": false,
- "inputMasks": [
- {
- "label": "",
- "mask": ""
- }
- ],
- "showWordCount": false,
- "showCharCount": false,
- "type": "textfield",
- "input": true,
- "key": "textField2",
- "defaultValue": "Fieldset Default",
- "inputFormat": "plain",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "minWords": "",
- "maxWords": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "ewbh32t"
- }
- ],
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "legend": "",
- "id": "efkqzz"
- },
- {
- "input": false,
- "key": "panel",
- "label": "Panel",
- "type": "panel",
- "components": [
+ "label": "Currency",
+ "mask": false,
+ "type": "currency",
+ "input": true,
+ "key": "currency",
+ "defaultValue": 100.01,
+ "delimiter": true,
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "min": "",
+ "max": "",
+ "step": "any",
+ "integer": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "id": "edmg5c8"
+ },
{
- "allowMultipleMasks": false,
- "inputMasks": [
- {
- "label": "",
- "mask": ""
- }
- ],
- "showWordCount": false,
- "showCharCount": false,
- "type": "textfield",
- "input": true,
- "key": "textField3",
- "defaultValue": "Panel Default",
- "label": "Text Field",
- "inputFormat": "plain",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "minWords": "",
- "maxWords": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "ec6g34"
- }
- ],
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": false,
- "tableView": false,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "title": "",
- "theme": "default",
- "breadcrumb": "default",
- "id": "e0qnrc9"
- },
- {
- "input": false,
- "key": "table",
- "label": "",
- "type": "table",
- "rows": [
- [
- {
- "components": []
- },
- {
- "components": [
- {
- "allowMultipleMasks": false,
- "inputMasks": [
- {
- "label": "",
- "mask": ""
- }
- ],
- "showWordCount": false,
- "showCharCount": false,
- "type": "textfield",
- "input": true,
- "key": "textField4",
- "defaultValue": "Table Default",
- "label": "Text Field",
- "inputFormat": "plain",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "minWords": "",
- "maxWords": "",
- "pattern": ""
+ "label": "Signature",
+ "mask": false,
+ "type": "signature",
+ "input": true,
+ "key": "signature",
+ "defaultValue": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaAAAACdCAYAAADypayeAAAgAElEQVR4Xu2dB3jNZ/vHvzaJldh7z9aqFST2aG3VIlSNiiBmvR2qVV7VaqmitFatIvb8UxQVWxW1ib1HrMTe/+t+8ibOyUlITs45v3G+93W5XOT8nvG5n/y+51n3neTevbAXoJEACZAACZCAiwkkoQC5mDirIwESIAESUAQoQBwIJEACJEACmhCgAGmCnZWSAAmQAAlQgDgGSIAESIAENCFAAdIEOyslARIgARKgAHEMkAAJkAAJaEKAAqQJdlZKAiRAAiRAAeIYIAESIAES0IQABUgT7KyUBEiABEiAAsQxQAIkQAIkoAkBCpAm2FkpCZAACZAABYhjgARIgARIQBMCFCBNsLNSEiABEiABChDHAAmQAAmQgCYEKECaYGelJEACJEACFCCOARIgARIgAU0IUIA0wc5KSYAESIAEKEAcAyRAAiRAApoQoABpgp2VkgAJkAAJUIA4BkiABEiABDQhQAHSBDsrJQESIAESoABxDJAACZAACWhCgAKkCXZWSgIkQAIkQAHiGCABEiABEtCEAAVIE+yslARIgARIgALEMUACJEACJKAJAQqQJthZKQmQAAmQAAWIY4AESIAESEATAhQgTbCzUhIgARIgAQoQxwAJkAAJkIAmBChAmmBnpSRAAiRAAhQgjgESIAESIAFNCFCANMHOSkmABEiABChAHAMkQAIkQAKaEKAAaYKdlZIACZAACVCAOAZIgARIgAQ0IUAB0gQ7KyUBEiABEqAAcQyQAAmQAAloQoACpAl2VkoCJEACJEAB4hggARIgARLQhIDmAnTo0BFs2rQFRYsWhq9vVaRKlUoTEKyUBEiABEjAtQQ0FaC1a9ehRQv/6B6//34LTJ8+ybUEWBsJkAAJkIAmBDQVoB49+mLGjNlWHQ8Pv4zkyZNrAoOVkgAJkAAJuI6ApgL02WdfYty4iVa9lRmQzIRoJEACJEAC5iagqQAtXLgUHToE2BC+dy/M3NTZOxIgARIgAWgqQC9evEDatFkpQByIJEACJOCGBDQVIOHt6ZnFBvuZM0eQJUtmN3QHu0wCJEAC7kNAcwHy8amFAwcOWhHPnz8fDh36x328wJ6SAAmQgBsS0FyAbt68hTx5inIZzg0HH7tMAiTg3gQ0F6C4luHOnTuGTJm83ds77D0JkAAJmJiALgTo5MlTKF26shXmunVrY9myeSZGz66RAAmQgHsT0IUAiQvkPpDcC4qyHDmy48SJA+7tHfaeBEiABExMQDcCJIwrV66BgwcPR+MODp6Opk0bmRg/u0YCJEAC7ktAVwL08OFDlC1bBefPX4j2yK1bF5EyZUr39RB7TgIkQAImJaArARLGoaEnUK5clWjcgYEfYdSo4SbFz26RAAmQgPsS0J0ARS7F1cTBg4eivXL06F7kyZPbfb3EnpMACZCACQnoUoBkCa548XJWuBkfzoSjj10iARJwawK6FCDxSKtW7bFy5epo58yf/zsaNXrbrZ3FzpMACZCAmQjoVoCePXuG9OmzcxZkptHGvpAACZCABQHdCpC0cdasYAQG9o5urr9/K0yZMp4OJAESIAESMAEBXQuQ8I0ZLfvy5VNInz6dCdCzCyRAAiTg3gR0L0AhIVvQsOHLDKkpUqTA7duX3Ntr7D0JkAAJmICA7gVIGHt758ajR4+ica9fvxI+PpVMgJ9dIAESIAH3JWAIATp+/CTKlvWx8hKPZbvvoGXPSYAEzEHAEAIkqKtXr4/du/dGU//kk74YPHigObzAXpAACZCAGxIwjAC9ePECadNmtXIRDyS44Yhll0mABExDwDACJMR37PgbdepYR8fmUpxpxiI7QgIk4GYEDCVA4puYx7JXr14GP7+qbuY2dpcESIAEjE/AcAJ0//59ZMmSz4o8Z0HGH4jsAQmQgPsRMJwAiYsmTJiC/v0HRHvrrbfKYvPmP93Pe+wxCZAACRiYgCEFKLaluH37dqJw4YIGdoV5mn7s2HHs3r0H48dPwr//7n9lx4oWLaL8tmrVmld+zsMjDcqXL4ft2//G06dPX/lZT09Plb4jV66cWL/+rzg/mzx5cnTt2gmBgV04duKgJDEZN2/ehpCQzdi7dz+ePn2CbNmyInv27KhatTIKFMiPpEmTonjxouYZwOyJywgYVoDkYqpcULU0LsW5bNzYVHTo0BE0b94aly5d1q4Riaw5S5bMOHToH4iAuavJEvdPP43Dt9+OsBtBjx4BGDp0EFKnTm13GXzQPQgYVoDEPYcPH0XFin7Rnho+fCh69ermHp7TuJfh4RE4cOAQZs+ei/37D752pqNxcxNcfevWLVGwYAFUreqDTJm81axLZgOPHz/Bkyfy5zHu3r2HR48eI02a1Pjjjz+xdu06AEnUDCFTJi/1Ak6b1hOZM2dGqlQpITPD1avjv1ScN28eeHllhIeHB7Zv34lUqVKpiCAyc8uaNQvy5curZm7e3t5KNENDQ/HgwUOsW/eXVeSQ13U+Z84cKr6iXPiWPjrK/vhjKapXr+ao4liOCQkYWoDEH126BCE4eH60a8LCzqpfWJpjCcyYMRs9evS1q9B27VqjWbPG6kUuyzW3b9/G06fPkC5dOqRIkRxp0qTB9es31ItdXrKZM2dSL1mJ+5cyZQo8f/4cSZIkgdwFu3Dhknq5Hjx4WL3w7927rwQgbdq0qvwcObIjQ4b0SJYsOUqWLI4XL56rz4hwyGnJ7NmzqXLOnj2nyjxz5hx+/XUyVqxYFWvfouq1q+N8CCtWLETt2jVIggRi//26dy/shZHZxMwbVK2aD9auXWHkLumu7f7+HbF8+cp4t+vLLz/Dp5/2Q7JkyeL9jNYfFJFbtGgZBg4cjIsXXwa7FcGUnznChIcjZxiWbRKhFpF1pSVPnkx9kXiVeXt74fz5UFc2i3UZiIDhZ0DC+t69e8iaNX809j17tqFYsSIGcoN+mxpbBIqYra1cuSLGj/8JJUoU029H7GxZWNh1XLlyRb3cZXnrn3/24Nq1MDx48AA3btxQy3Cy1JYsWVIUK1YUlSqVR/LkKSD7STKTkxmdjE/hKC9j+fzDhw/VizssLAznz19Uy3lJkyZTsz4REilPZoWpU6dSM0aZtYlJ/TL7i5oZyuelXJmlyezvzp27quwnT57i7t27mD9/ESZNmqbaGtNkmTB37lx4882S6m9ZgpO61q/fqOqQ5cImTRqiceN31GGO1/0+iUjLYQXLyPVRdZ4+fVgtGerJIiLuoHv3Pti0aQvq1autxq8wp7mWgCkESJDt3bsPvr51o+nxQIJjBpLMBooWLWNV2LhxoyB7JFzqdAxjs5US87L4yZMHo0VUL32dM2ceAgJ6WjXnzp2rSoRpriNgGgESZEFB/TB9+ixFb9q0iWjV6l3XkTRpTfJtv0CBkla9o7ib1NkO6lZMAdLjeAkOXoAuXXpY9VgOfRw5ssdBFFhMfAiYSoBkOUJOxR05ckz1PTR0n1o+oNlPILYlOD2+UOzvIZ90NAFLAZLlxBs3zju6ikSXJ0twOXLY3hv84AN/TJw4NtHls4D4ETCVAEmX5bhshgw5VO/bt/fHhAkcTPEbCnF/KuY32oiIK4Y6YJDY/vP5+BN4/PgxvLxyRT/QpUtHjBlj/52i+Nec8E9u2bIdDRo0tXlw3ryZau+L5nwCphMgQXbjxk3kzRu5Ib5hwyrIJjnNfgIxBahFi6aYNes3+wvkk6YlEHPGLF8A5YugXm3NmnV4913b9q1Zswy+vgxy7Gy/mVKABNrSpSvQrl1ndfdDImbT7CcwcuRofP31MKsCuAxnP08zPymn4dKlizy1JybLWbKspWfbunUH6tdvYtPEb74ZhH79eum56YZvm2kFSDwzbtxE/PDDKHz11ecICOhkeGdp1YHY9oH69OmBb78dolWTWK9OCVgugUsTly9fgDp1auq0tS+bNXfuQnz0UXebdv7443fo1q2L7ttv1AaaWoDkLkSFCn44f/6CmgUxb5D9w7Rjx65YsGCJVQHbtm1AmTKl7C+UT5qOQMwZ0JYt61CunPUxfr12um/fTzF58jSb5skhCsa1c47XTC1Agiwqi6pc5jt8eLe6GEhLOIG4LqQKU4lJRiOBKAKWe4Y7d4aoy65GMLmwmzmz7Vhmuhfnec/0AiToBg4cgtGjx6Fjxw/UjWeafQQkWGXZsj42D1+6dFLFX6ORgBCwFKD161fCx6eSYcDEtRTHMe4cF7qFAAm68uWr4ejRUKxatQQ1avg6h6YblCpLFLJUEdMuXz6lwrnQSKBo0dK4eDEyLcfixcFo0OBlhBIj0GnWrDXWrdtg1dQ33iiBv//eZITmG6qNbiNAEsOrRo0GyjlXr55W0ZNp9hEYPHgYRowYbfPw7duXVJwymnsTsJwBffRRB4wdO9JQQCR2X8mS5VWEdku7desiUqZMaai+6L2xbiNA4ohOnQIxf/5iBAZ+hFGjhuvdN7pu35Qp09GnzydWbaxQ4S2sXLmI4q5rzzm/cVWq1FI5osQkArhcXDaaTZ06E7169bdqNpfwHe9FtxIgyTeTMWNkaB7edk78YPrrr01o3LilTUEnThxQeXlo7klg1Kix+OqrodGdN+qdsZgXsKVDRu2LXkeiWwmQOCEkZEt0yPi7d6+pUPY0+wmcPn0G1avXx82bt6wKkdTW+fPns79gPmlYAjIW8uQpangB6tfvM0yaNNXKDxQgxw5LtxMgwVenTiN1PNuI69OOdb9jSov5wokqddKkn9GuXRvHVMJSDEXAcvZg1DQH8+YtQufO3ShAThx5bilA4eERyJmzkMLKU3GOGV2WTC1LrFixPNat+z+VbI3mPgQsBejMmSMqQZ+RLGZQVWl7hw7t8MsvtodvjNQvvbXVLQVInDBnznwEBAQpf/D0lmOGZVwiJKVLOKTPP7fe1HVMrSxFjwRq126InTt3qaaFh1823BcQOQV39uw5K7TLls1D3bq19YjbsG1yWwESj0V9S+NNZ8eO3+bN2+DPP9fHWqiE5pcQ/TRzEyhR4i2cOxeZB+jChePw8spomA5LojpJWBfTuP/jeBe6tQDJNxz5piO2dOlc1KtXx/GE3bTEuC6sRuFYu3YFqlWzjargprhM1+3ixcupGIxiYWFnDZO+/c8/N6B589Y2/uAdIOcMUbcWIEH6888T8PnnXym6Rlyrds6wcFypsQUxtSxdwt0PGNAfnp6ejquUJWlOICryiDTEKKdNY0bylrZLxHeJ/E5zDgG3FyDBmjVrfsjtZwlYevJk5AU6muMIyIbuxx9/jmnTfo+z0OnTJ+Hdd5sy06rjsGtaUsuWbbF69Z+qDUZZuoq579OyZTPMnDlFU45mr5wCBOD+/fvIkiXyzgqjJDh3yMvekOwRxWb16tXGF198gkqVKji3ESzd6QQ+/LALFi2KTARpBAHatGkr3nmnuRUXpp53+jABBeh/jC9evISiRSPzlhgph4nzh4hzarh9Oxxr165X9ywk1YOlNWvWGAMG/AelSr3hnMpZqtMJdOvWG7//HmwIAdq//wBq1WqIhw8fRnORqwNVqlR2Oid3r4ACZDEC5Naz3H4WO38+FN7eXu4+PlzSfzmuO336LMycOcemvgkTxqBt29ZcmnOJJxxXieyryv6q3mdAe/fug6+vdbTuGTMm4733rGdDjiPDkiwJUIBijIeVK1ejVav26n8vXjyBjBkzcMS4iIDsFQUFfYw5c+bZ1Ch5nOQiIEMnucgZiaxmxozZCArqhxIlimHXrs2JLM05j8e27DZ37kw0afKOcypkqTYEKECxDIrAwN6YNStYzYDOnj2KpEmTcui4kICE9mnRog0khUZM4/KoCx2RiKrk90d+j/Q6A9q2bQfq1Wti1UOZaU+ePC4RveajCSVAAYqFmOxJdO/eR61hN2r0NubPj/v0VkKB8/PxJ/Dvv/tRrVrsd7PmzJkG2Sui6ZOA5ezi5s0LSJUqlW4aKnEgJR6kpWXLllWdgOUM27VuogC9grdk/pQLlRJCRkLJ0LQhcOnSZRQpUjrWymVp7sMP23KWqo1r4qz10aNH8PbOrX6+Zs1y+PpW0UULY8vzkzlzJoSG7tOVSOoClgsaQQF6DeSAgJ5qT0KyOkr0bJp2BGRG5OdXD8+fP7dphGwa//bbr4aLOaYdTefXHBXqqmnTRggOnu78Cl9Tw759B1Cz5tuQvcYoY0R8bd1CAXoNf1mOk3srkiNeXnBt2rynrcdYu0qVXKlSdVy9es2GhoeHBw4f3m246MtmdKssY0edbNT6LtDYsb9iwIBBVpiXLAlG/frWJ+DM6Ac994kCFA/vPHjwABKgcOvWHSo0R9u2reLxFD/ibAISvUJOWi1YsCTWqiZOHIvmzZswRbizHRFH+cePn0TZspHx/v75Z4s6EedqCwu7jkqVauDaNesvKyEha1GhQjlXN4f1xSBAAYrnkJA4UW3adMAff6xVOUHkSDBNPwRi21iOal3//n0QGNgZuXJFpmOnuY5A1DJc69YtMXVq5L0gV9nGjZvRqNG7NtVt3LgakqeKpj0BClACfCDLcS1a+KtUA1Om/AJ///cT8DQ/6ioCcrlQZkay5m9pDRs2QN++QahQ4S1uOLvIGXIfqEePvqo2V4W2kQMQgwYNhWQ0lRmQpV2/fg5p0qRxUe9ZzesIUIBeRyjGz2UmVL9+U5Vsa9iwr9G3b88ElsCPu5LAhg0hGDPmF7WHZ2mdO3+IHj26arIs5Mr+a12XhLfJlCmPasbChbPxzjv1ndqk2bPnomvXXjZ17NixkaGdnErevsIpQHZwkzhmzZq1Uhcl33+/BSSSM03fBORb8e7de/Hrr5OxePHy6MbKJWMRIwmCKndBaI4nELUMJ1FFJLqIM2zZsv9D27adbIoePHgg+vfvzWP6zoDugDIpQHZClGyP5cpVVQEMKUJ2QtTosVu3bmP58pXRS0OWzZBsrV988R9ky5ZNo9aZr9qhQ4dj+PAfVcccfRpu+/adqFs39gvJ27dvQOnSpcwH1EQ9ogAlwplyDLhKlVrqOLDsL8ydO4NBMxPB09WPyn2iJUtWQJLmxXa3qEmThhg+/L/Inz8yVQfNPgLHjh3HW29VVQ87KirClStX8dlnX2LhwqU2jeKdPfv8pMVTFCAHUK9evb5a3ilXrgw2bVrL6b4DmLq6iCdPnqiXmRy3j81q1PBVe0YNGtRFihQpXN08Q9f311+b0LhxS9WHGzfOI3Xq1Inqj/hpyJBhOHXqjFU5ixcHK//QjEOAAuQAX929exfFipWF7A1lzZoFx4/v5418B3DVqgj5dr158zb06/cpZLkuNpPsrTVrVoePTyUUKlQg0S9Vrfrq7HplZpku3cvlzMQswckBoPfe+0CdQrW02bOnqvteNOMRoAA5yGfPnj1TAQ537dqtSjx16iD3ERzEVuti5LBJcPACyJFiuZQcm0mwzSFDvlSz4LJlS7n95Ve5siAznyZNXkYO6dEjACNGfGuXOy9fvoLCha33cyRvj6TNZgBRu5Dq4iEKkIPd0KfPJ5gyJTLulSuOnTq4+SwuHgTOn7+A0NAT6p7Rnj3/YsmSl6fqLB8vWbI4PvjAH/Xr13Gb495y3H3SpGmQWaQsS0eZn19VrF4dmaI7oXbixCmUKfMyO6mcXJRVhuzZeVAkoSz19nkKkBM8IhG0JZK22DffDEK/frb3EpxQLYvUiIAs0x07FoqQkC3YsGEjtmzZHmdLZDx07NgeXl4ZNWqt46uVQzjjx0/Cjz+OsSo8Q4b0yJs3L8aPH4Xy5RMe9iYi4g6++OJrTJv2Mh3K999/g549Ax3fCZaoCQEKkJOwHz58FBUr+qnSK1euCMkxz8R2ToKtw2JPnz6j8klJEMy4lu2k2X369FB5jSQ6Q7JkyXTYk9ibJP3bs2efOokmy2OWJqcHGzd+G/7+rRLcJ/m9kbLHj5+oBN3SVq1aAjkMQjMPAQqQE3157VoYChQoGV3Dzp0hePPNl/92YtUsWkcEZCNelurmz1+kZgqvsuLFi2LgwE9RokRx3S3bySEAiYU4evR4SOw9S3vjjRIYNGgA/PyqQWY+cZmIi/A4efIUVq1aq06yrV//l/q4PBceHmHzqIjOggWz4OnpqSOvsimOIEABcgTFV5Qhx3vlaG/UfYUvv/wMAwb8x8m1sng9E5AX8KJFyzB79jybE11xtVvSw0sAzWrVfODl5aVO33l6eqjDDnfu3HHqXSU5EShj+MKFi1bNS5cuLX766QfUrOmHHDmyq5/JnR+Z8cmy5ObNW5XQrFy55pWzwKhCpY8ZMmRAwYIFUKRIITXbkVxCNPMSoAC5yLcTJ/6Gjz+OzKqaO3cu7Nq1GenTp3NR7axG7wRu3rylZkgSUkbSWSfEUqZMCcnqKfdrbt26pe4pyQvc29sbckUgffr0iIiIUFEBJNzQixfP8ejRYzUTkVmN/Hny5KlKT1CkSGH1/6Ghx/HbbzPUcXRLS5EiOfLkyYNChQrGWzxj9kXESmZ4jRo1gORvqlSpghKwV82cEsKDnzUOAQqQC30lLwNJLS2bq2IrVy5W3x5pJPAqAlevXsWtW+EqsrOkJ5dN/1SpUqq9FxEO+SIjgiGicvjwEXUX7cKFS7h9+3ac95icTVxO/pUtWxq1atWAl1cGvPFGSe6BOhu6AcunAGngtAkTpqB//wGq5oCAThg1ajh/OTXwgztWKeIlS2Ryb+3SpSs4c+as2oOJLalfzpw51J6lpC8QkZMZ1IMH99Xx53z58sHDI436uczAaCRgDwEKkD3UHPDMwYOHUblyjeiSTp06xGjMDuDKIl5PQJb71q/fqHImSVZZS5OU8x06fICqVSszmsfrUfITiSRAAUokwMQ8Lmvv/v4dsWrVGi7JJQYkn40XARGdb78dYXOCTTb727dvywSL8aLIDzmSAAXIkTTtLMtyNvT111/gk0/6MryInSz5mDWB69dvKNGRQzCWJvszffoEoVUr25TVZEgCriJAAXIV6dfUI6FLWrRog/37D6J69WqYM2e6qW7L6wSzWzRDDrl8990IdQk2pk2cOBZ16tSKPjbtFkDYSd0SoADpyDWyMTx16szoMD5MqKUj5+i8KZIYUQRnyBDbYJ8TJoxR8eiYZE/nTnTD5lGAdOh0CUfSu3d/nDx5GkFBXdGrV3dItGUaCVgSkIjTEqU7ICDIBoyE+AkKCkSuXDkJjQR0S4ACpFPXyMtFbp/PnbsQLVo0xaRJP6tLezQSmDlzDnr2/FgdpbY0yYkj4XCKFStCSCRgCAIUIJ27acyYX1REYAlTsmbNckiIf5p7EZBwTitXrsbIkWOwd+8+q877+laBHFypWtXHvaCwt6YgQAEygBtXrFiFNm06qFArEtC0cOGCBmg1m5hYApLcsFGjljZ3dSR0Te/e3dGwYQMuzSYWMp/XlAAFSFP88a9csnLWqNFAPbB163oV5oRmLgISg02iTX///SirZG7SS4k2PXLkd+qEJI0EzEKAAmQgT0pIfz+/eqrFR4/uRZ48uQ3UejY1NgISH3D+/MXo3fs/kH0/S5PI13379kSDBnUTnFeHtEnACAQoQEbwkkUbLS+tHjr0j1PD8BsMjWGaK3e+fv55AkaPHmfTZomULrEBGzV62zD9YUNJwF4CFCB7yWn43M6du1C7dkNkyuSNEycOMBikhr6Ib9VytH7kyNGYN2+RzSOS82bw4IE8vRZfmPycaQhQgAzqSlm26dQpUIXel+U43hPSnyMla+iwYSOwYcNGm8Z1794F/fv3YUQC/bmNLXIhAQqQC2E7uqoBAwap2+/vv98C06e/OtWzo+tmebYEZHn0hx9GqWynMU2O0ffs2Q3duwcwESEHDwn8jwAFyMBDQTatS5WqhNOnz6i7IJ9+2s/AvTFe08+dO69CJ0mUaTkgEtMaN35HRbGQuzo0EiABWwIUIIOPikePHsHbO/I0nOwHSWpjmnMISGbSWbPmYs2addi6dYdNJeXKlUHLls0QGPgRo1Y4xwUs1WQEKEAmcKjcjvf1rat6cu7cMXU4gZY4ApI1NDT0BNat24D//nc4JHdTTJOLoB06tFMXQpMmTZq4Cvk0CbghAQqQSZz+3Xcj8c0336ve3L17jfmEEuBXCXVz7Nhx7Nu3HyEhWzF79txYn5Y8TXXr1oaPT0VmC00AX36UBOIiQAEy0dho1qy1+sbevr0/JkwYa6KeOa4rjx8/VjMbOTDwyy+TbCIORNVUokQxdOvWBbVqVUehQgx95DgPsCQSeEmAAmSi0SAv1xw5CkFywwwfPhS9enUzUe8S1pV79+7h3LkL+Pff/Thw4BAWLFiMS5cux1qIRI/u3LmDyplTsGB+zm4ShpqfJgG7CVCA7EanzwctDyUsWRKM+vUj94bMaidPnsL9+/exYcMmhIYeV/lxhEFsJnem2rR5D76+VVG+fDlkz57NrFjYLxIwBAEKkCHclLBGhodHIGfOQuqh4ODpkJv2RrUzZ86qvDcS/eHq1WvYtGkrRHQkWV9sliJFCpQpU0otnRUvXgyVK1dA3rx5GEvNqAOA7TY1AQqQSd0bFnYd+fOXUL2rV68OZs6crKsLkDdu3FQzFTldJm3dvv1v3LlzB9u27cTNmzfV0llcVqBAfhQsWEAdBhCh8fLyUmFskiRJYlJvslskYE4CFCBz+lX1Sl7u1avXx759B9S/Z836TWVXdZZJfRcuXMTjx0+QOnUqNUu5fPmK+j+ZwaRMmVLdoYlriUzaVbr0m0iXLi2qVauCDBkyqHtNknoiY8b0yJaNS2bO8h3LJQEtCFCAtKDu4jqXLl2Bdu06R9dap04tBAV1Rc2afq+NIScnxtKm9URExB21mR8REYGMGTOqDf09e/aqMkNCtkAOQNy6dTvWnsnzst8iS2JyOEASqkkqCZnJFCiQT81cZJmMRgIk4F4EKEBu4m9JdrZq1RoMHjwMR44ci7XXnp6eyJgxg9ovkRgavcYAAACeSURBVL+vX79hc3IsW7askLQ1xYoVjt7Ez5kzp5q5iD1//gwVKpRXMyARHZn10EiABEggNgIUIDccFzJTCQ8Px7ZtO3DtWhgOHz6G69evq5TfHh5p4OdXDblz51QJ0h49egwJMePh4aH2aJgEzw0HDLtMAk4iQAFyElgWSwIkQAIk8GoCFCCOEBIgARIgAU0IUIA0wc5KSYAESIAE/h9qJmFW+y+3vgAAAABJRU5ErkJggg==",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "footer": "Sign above",
+ "width": "100%",
+ "height": "150",
+ "penColor": "black",
+ "backgroundColor": "rgb(245,245,235)",
+ "minWidth": "0.5",
+ "maxWidth": "2.5",
+ "id": "ea4tt5"
+ },
+ {
+ "label": "Tags",
+ "mask": false,
+ "type": "tags",
+ "input": true,
+ "key": "tags",
+ "defaultValue": "one,two,three",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "delimeter": ",",
+ "storeas": "string",
+ "maxTags": 0,
+ "id": "eawi6sl"
+ },
+ {
+ "questions": [
+ {
+ "label": "One",
+ "value": "one"
},
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
+ {
+ "label": "Two",
+ "value": "two"
+ }
+ ],
+ "values": [
+ {
+ "label": "A",
+ "value": "a"
},
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "e1yp32q"
- }
- ]
- },
- {
- "components": []
- }
- ],
- [
- {
- "components": []
- },
- {
- "components": []
- },
- {
- "components": []
- }
- ],
- [
- {
- "components": []
- },
- {
- "components": []
- },
- {
- "components": []
- }
- ]
- ],
- "header": [],
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "numRows": 3,
- "numCols": 3,
- "caption": "",
- "striped": false,
- "bordered": false,
- "hover": false,
- "condensed": false,
- "id": "en7jhhd"
- },
- {
- "input": false,
- "key": "well",
- "label": "",
- "type": "well",
- "components": [
+ {
+ "label": "B",
+ "value": "b"
+ }
+ ],
+ "label": "Survey",
+ "mask": false,
+ "type": "survey",
+ "input": true,
+ "key": "survey",
+ "defaultValue": {
+ "one": "a",
+ "two": "b"
+ },
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "id": "e2zpll"
+ },
{
- "allowMultipleMasks": false,
- "inputMasks": [
- {
- "label": "",
- "mask": ""
- }
- ],
- "showWordCount": false,
- "showCharCount": false,
- "type": "textfield",
- "input": true,
- "key": "textField5",
- "defaultValue": "Well Default",
- "label": "Text Field",
- "inputFormat": "plain",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "minWords": "",
- "maxWords": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "e2hotbx"
- }
- ],
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "id": "ewel40a"
- },
- {
- "input": true,
- "key": "container",
- "label": "",
- "type": "container",
- "components": [
+ "input": false,
+ "key": "columns",
+ "label": "Columns",
+ "type": "columns",
+ "columns": [
+ {
+ "components": [
+ {
+ "label": "Text Field",
+ "allowMultipleMasks": false,
+ "inputMasks": [
+ {
+ "label": "",
+ "mask": ""
+ }
+ ],
+ "showWordCount": false,
+ "showCharCount": false,
+ "type": "textfield",
+ "input": true,
+ "key": "textField",
+ "defaultValue": "Column Default",
+ "inputFormat": "plain",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "minWords": "",
+ "maxWords": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "esa35b"
+ }
+ ],
+ "width": 6,
+ "offset": 0,
+ "push": 0,
+ "pull": 0,
+ "type": "column",
+ "input": true,
+ "key": "",
+ "label": "",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "id": "efcsuh"
+ },
+ {
+ "components": [],
+ "width": 6,
+ "offset": 0,
+ "push": 0,
+ "pull": 0,
+ "type": "column",
+ "input": true,
+ "key": "",
+ "label": "",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "id": "e22rvqb"
+ }
+ ],
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "clearOnHide": false,
+ "tableView": false,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "id": "e4vhhx"
+ },
{
- "label": "Text Field",
- "allowMultipleMasks": false,
- "inputMasks": [
- {
- "label": "",
- "mask": ""
- }
- ],
- "showWordCount": false,
- "showCharCount": false,
- "type": "textfield",
- "input": true,
- "key": "textField6",
- "defaultValue": "Container Default",
- "inputFormat": "plain",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "minWords": "",
- "maxWords": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "eawp5ql"
+ "input": false,
+ "key": "fieldSet",
+ "label": "Field Set",
+ "type": "fieldset",
+ "components": [
+ {
+ "label": "Text Field",
+ "allowMultipleMasks": false,
+ "inputMasks": [
+ {
+ "label": "",
+ "mask": ""
+ }
+ ],
+ "showWordCount": false,
+ "showCharCount": false,
+ "type": "textfield",
+ "input": true,
+ "key": "textField2",
+ "defaultValue": "Fieldset Default",
+ "inputFormat": "plain",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "minWords": "",
+ "maxWords": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "ewbh32t"
+ }
+ ],
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "legend": "",
+ "id": "efkqzz"
+ },
+ {
+ "input": false,
+ "key": "panel",
+ "label": "Panel",
+ "type": "panel",
+ "components": [
+ {
+ "allowMultipleMasks": false,
+ "inputMasks": [
+ {
+ "label": "",
+ "mask": ""
+ }
+ ],
+ "showWordCount": false,
+ "showCharCount": false,
+ "type": "textfield",
+ "input": true,
+ "key": "textField3",
+ "defaultValue": "Panel Default",
+ "label": "Text Field",
+ "inputFormat": "plain",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "minWords": "",
+ "maxWords": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "ec6g34"
+ }
+ ],
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "clearOnHide": false,
+ "tableView": false,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "title": "",
+ "theme": "default",
+ "breadcrumb": "default",
+ "id": "e0qnrc9"
+ },
+ {
+ "input": false,
+ "key": "table",
+ "label": "",
+ "type": "table",
+ "rows": [
+ [
+ {
+ "components": []
+ },
+ {
+ "components": [
+ {
+ "allowMultipleMasks": false,
+ "inputMasks": [
+ {
+ "label": "",
+ "mask": ""
+ }
+ ],
+ "showWordCount": false,
+ "showCharCount": false,
+ "type": "textfield",
+ "input": true,
+ "key": "textField4",
+ "defaultValue": "Table Default",
+ "label": "Text Field",
+ "inputFormat": "plain",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "minWords": "",
+ "maxWords": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "e1yp32q"
+ }
+ ]
+ },
+ {
+ "components": []
+ }
+ ],
+ [
+ {
+ "components": []
+ },
+ {
+ "components": []
+ },
+ {
+ "components": []
+ }
+ ],
+ [
+ {
+ "components": []
+ },
+ {
+ "components": []
+ },
+ {
+ "components": []
+ }
+ ]
+ ],
+ "header": [],
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "numRows": 3,
+ "numCols": 3,
+ "caption": "",
+ "striped": false,
+ "bordered": false,
+ "hover": false,
+ "condensed": false,
+ "id": "en7jhhd"
+ },
+ {
+ "input": false,
+ "key": "well",
+ "label": "",
+ "type": "well",
+ "components": [
+ {
+ "allowMultipleMasks": false,
+ "inputMasks": [
+ {
+ "label": "",
+ "mask": ""
+ }
+ ],
+ "showWordCount": false,
+ "showCharCount": false,
+ "type": "textfield",
+ "input": true,
+ "key": "textField5",
+ "defaultValue": "Well Default",
+ "label": "Text Field",
+ "inputFormat": "plain",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "minWords": "",
+ "maxWords": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "e2hotbx"
+ }
+ ],
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "id": "ewel40a"
+ },
+ {
+ "input": true,
+ "key": "container",
+ "label": "",
+ "type": "container",
+ "components": [
+ {
+ "label": "Text Field",
+ "allowMultipleMasks": false,
+ "inputMasks": [
+ {
+ "label": "",
+ "mask": ""
+ }
+ ],
+ "showWordCount": false,
+ "showCharCount": false,
+ "type": "textfield",
+ "input": true,
+ "key": "textField6",
+ "defaultValue": "Container Default",
+ "inputFormat": "plain",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "minWords": "",
+ "maxWords": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "eawp5ql"
+ }
+ ],
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "tree": true,
+ "id": "e6ezofu"
+ },
+ {
+ "input": true,
+ "key": "dataGrid",
+ "label": "Data Grid",
+ "type": "datagrid",
+ "components": [
+ {
+ "label": "Text Field",
+ "allowMultipleMasks": false,
+ "inputMasks": [
+ {
+ "label": "",
+ "mask": ""
+ }
+ ],
+ "showWordCount": false,
+ "showCharCount": false,
+ "type": "textfield",
+ "input": true,
+ "key": "textField7",
+ "defaultValue": "Datagrid Default",
+ "inputFormat": "plain",
+ "row": "0-0"
+ }
+ ],
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "tree": true,
+ "id": "ejkucv"
+ },
+ {
+ "input": true,
+ "label": "Submit",
+ "tableView": false,
+ "key": "submit",
+ "theme": "primary",
+ "type": "button",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "clearOnHide": true,
+ "dataGridLabel": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "size": "md",
+ "leftIcon": "",
+ "rightIcon": "",
+ "block": false,
+ "action": "submit",
+ "disableOnInvalid": false,
+ "id": "ev465zd"
}
- ],
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "tree": true,
- "id": "e6ezofu"
- },
- {
- "input": true,
- "key": "dataGrid",
- "label": "Data Grid",
- "type": "datagrid",
- "components": [
+ ],
+ "revisions": "",
+ "_vid": 0,
+ "_id": "5b64809f01c0d87ce367b0b0",
+ "title": "Defaults",
+ "display": "form",
+ "access": [
{
- "label": "Text Field",
- "allowMultipleMasks": false,
- "inputMasks": [
- {
- "label": "",
- "mask": ""
- }
- ],
- "showWordCount": false,
- "showCharCount": false,
- "type": "textfield",
- "input": true,
- "key": "textField7",
- "defaultValue": "Datagrid Default",
- "inputFormat": "plain",
- "row": "0-0"
+ "roles": [
+ "5692b920d1028f01000407e4",
+ "5692b920d1028f01000407e5",
+ "5692b920d1028f01000407e6"
+ ],
+ "type": "read_all"
}
- ],
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "dataGridLabel": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "tree": true,
- "id": "ejkucv"
- },
- {
- "input": true,
- "label": "Submit",
- "tableView": false,
- "key": "submit",
- "theme": "primary",
- "type": "button",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": true,
- "dataGridLabel": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "size": "md",
- "leftIcon": "",
- "rightIcon": "",
- "block": false,
- "action": "submit",
- "disableOnInvalid": false,
- "id": "ev465zd"
- }
- ],
- "revisions": "",
- "_vid": 0,
- "_id": "5b64809f01c0d87ce367b0b0",
- "title": "Defaults",
- "display": "form",
- "access": [
- {
- "roles": [
- "5692b920d1028f01000407e4",
- "5692b920d1028f01000407e5",
- "5692b920d1028f01000407e6"
- ],
- "type": "read_all"
- }
- ],
- "submissionAccess": [],
- "settings": {},
- "name": "defaults",
- "path": "defaults",
- "project": "5692b91fd1028f01000407e3",
- "created": "2018-08-03T16:19:43.109Z",
- "modified": "2018-08-03T18:06:01.114Z",
- "machineName": "examples:defaults"
+ ],
+ "submissionAccess": [],
+ "settings": {},
+ "name": "defaults",
+ "path": "defaults",
+ "project": "5692b91fd1028f01000407e3",
+ "created": "2018-08-03T16:19:43.109Z",
+ "modified": "2018-08-03T18:06:01.114Z",
+ "machineName": "examples:defaults"
}
diff --git a/test/formtest/disabledNestedForm.json b/test/formtest/disabledNestedForm.json
index 892c524827..a7309d643e 100644
--- a/test/formtest/disabledNestedForm.json
+++ b/test/formtest/disabledNestedForm.json
@@ -1,57 +1,57 @@
{
- "type": "form",
- "owner": "5e05a6b7549cdc2ece30c6b0",
- "components": [
- {
- "label": "Text Field",
- "tableView": true,
- "key": "textField",
- "type": "textfield",
- "input": true
- },
- {
- "label": "Form",
- "disabled": true,
- "tableView": true,
- "key": "form",
- "type": "form",
- "display": "form",
- "components": [
+ "type": "form",
+ "owner": "5e05a6b7549cdc2ece30c6b0",
+ "components": [
{
- "label": "Text Field",
- "tableView": true,
- "key": "textField",
- "type": "textfield",
- "input": true
+ "label": "Text Field",
+ "tableView": true,
+ "key": "textField",
+ "type": "textfield",
+ "input": true
},
{
- "label": "Text Field 2",
- "tableView": true,
- "key": "textField2",
- "type": "textfield",
- "input": true
+ "label": "Form",
+ "disabled": true,
+ "tableView": true,
+ "key": "form",
+ "type": "form",
+ "display": "form",
+ "components": [
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "Text Field 2",
+ "tableView": true,
+ "key": "textField2",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
+ }
+ ],
+ "input": true
},
{
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
}
- ],
- "input": true
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }
- ],
- "title": "FJS-1136",
- "display": "form",
- "name": "fjs1136"
-}
\ No newline at end of file
+ ],
+ "title": "FJS-1136",
+ "display": "form",
+ "name": "fjs1136"
+}
diff --git a/test/formtest/displayAsModalEditGrid.json b/test/formtest/displayAsModalEditGrid.json
index 7d688af00b..42738f1006 100644
--- a/test/formtest/displayAsModalEditGrid.json
+++ b/test/formtest/displayAsModalEditGrid.json
@@ -1,187 +1,175 @@
{
- "_id": "5ece2d11b8c2fe102c726057",
- "type": "form",
- "tags": [
-
- ],
- "owner": "5e05a6b7549cdc2ece30c6b0",
- "components": [
- {
- "label": "Edit Grid",
- "tableView": false,
- "modal": true,
- "key": "editGrid",
- "type": "editgrid",
- "input": true,
- "components": [
+ "_id": "5ece2d11b8c2fe102c726057",
+ "type": "form",
+ "tags": [],
+ "owner": "5e05a6b7549cdc2ece30c6b0",
+ "components": [
{
- "label": "Select",
- "widget": "choicesjs",
- "tableView": true,
- "data": {
- "values": [
- {
- "label": "a",
- "value": "a"
- },
- {
- "label": "b",
- "value": "b"
- }
+ "label": "Edit Grid",
+ "tableView": false,
+ "modal": true,
+ "key": "editGrid",
+ "type": "editgrid",
+ "input": true,
+ "components": [
+ {
+ "label": "Select",
+ "widget": "choicesjs",
+ "tableView": true,
+ "data": {
+ "values": [
+ {
+ "label": "a",
+ "value": "a"
+ },
+ {
+ "label": "b",
+ "value": "b"
+ }
+ ]
+ },
+ "selectThreshold": 0.3,
+ "validate": {
+ "required": true
+ },
+ "key": "select1",
+ "type": "select",
+ "indexeddb": {
+ "filter": {}
+ },
+ "input": true
+ },
+ {
+ "label": "Checkbox",
+ "tableView": false,
+ "validate": {
+ "required": true
+ },
+ "key": "checkbox",
+ "type": "checkbox",
+ "input": true,
+ "defaultValue": false
+ },
+ {
+ "label": "Date / Time",
+ "tableView": false,
+ "enableMinDateInput": false,
+ "datePicker": {
+ "disableWeekends": false,
+ "disableWeekdays": false
+ },
+ "enableMaxDateInput": false,
+ "validate": {
+ "required": true
+ },
+ "key": "dateTime",
+ "type": "datetime",
+ "input": true,
+ "suffix": "
",
+ "widget": {
+ "type": "calendar",
+ "displayInTimezone": "viewer",
+ "language": "en",
+ "useLocaleSettings": false,
+ "allowInput": true,
+ "mode": "single",
+ "enableTime": true,
+ "noCalendar": false,
+ "format": "yyyy-MM-dd hh:mm a",
+ "hourIncrement": 1,
+ "minuteIncrement": 1,
+ "time_24hr": false,
+ "minDate": null,
+ "disableWeekends": false,
+ "disableWeekdays": false,
+ "maxDate": null
+ }
+ },
+ {
+ "label": "Time",
+ "tableView": true,
+ "validate": {
+ "required": true
+ },
+ "key": "time",
+ "type": "time",
+ "input": true,
+ "inputMask": "99:99"
+ },
+ {
+ "collapsible": false,
+ "tableView": false,
+ "key": "panel",
+ "type": "panel",
+ "label": "Panel",
+ "input": false,
+ "components": [
+ {
+ "label": "Select",
+ "widget": "choicesjs",
+ "tableView": true,
+ "data": {
+ "values": [
+ {
+ "label": "",
+ "value": ""
+ }
+ ]
+ },
+ "selectThreshold": 0.3,
+ "validate": {
+ "required": true
+ },
+ "key": "select",
+ "type": "select",
+ "indexeddb": {
+ "filter": {}
+ },
+ "input": true
+ }
+ ]
+ },
+ {
+ "label": "Tags",
+ "tableView": false,
+ "validate": {
+ "required": true
+ },
+ "key": "tags",
+ "type": "tags",
+ "input": true
+ }
]
- },
- "selectThreshold": 0.3,
- "validate": {
- "required": true
- },
- "key": "select1",
- "type": "select",
- "indexeddb": {
- "filter": {
-
- }
- },
- "input": true
- },
- {
- "label": "Checkbox",
- "tableView": false,
- "validate": {
- "required": true
- },
- "key": "checkbox",
- "type": "checkbox",
- "input": true,
- "defaultValue": false
- },
- {
- "label": "Date / Time",
- "tableView": false,
- "enableMinDateInput": false,
- "datePicker": {
- "disableWeekends": false,
- "disableWeekdays": false
- },
- "enableMaxDateInput": false,
- "validate": {
- "required": true
- },
- "key": "dateTime",
- "type": "datetime",
- "input": true,
- "suffix": "
",
- "widget": {
- "type": "calendar",
- "displayInTimezone": "viewer",
- "language": "en",
- "useLocaleSettings": false,
- "allowInput": true,
- "mode": "single",
- "enableTime": true,
- "noCalendar": false,
- "format": "yyyy-MM-dd hh:mm a",
- "hourIncrement": 1,
- "minuteIncrement": 1,
- "time_24hr": false,
- "minDate": null,
- "disableWeekends": false,
- "disableWeekdays": false,
- "maxDate": null
- }
},
{
- "label": "Time",
- "tableView": true,
- "validate": {
- "required": true
- },
- "key": "time",
- "type": "time",
- "input": true,
- "inputMask": "99:99"
- },
- {
- "collapsible": false,
- "tableView": false,
- "key": "panel",
- "type": "panel",
- "label": "Panel",
- "input": false,
- "components": [
- {
- "label": "Select",
- "widget": "choicesjs",
- "tableView": true,
- "data": {
- "values": [
- {
- "label": "",
- "value": ""
- }
- ]
- },
- "selectThreshold": 0.3,
- "validate": {
- "required": true
- },
- "key": "select",
- "type": "select",
- "indexeddb": {
- "filter": {
-
- }
- },
- "input": true
- }
- ]
- },
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
+ }
+ ],
+ "controller": "",
+ "revisions": "",
+ "_vid": 0,
+ "title": "modalSelectValidation",
+ "display": "form",
+ "access": [
{
- "label": "Tags",
- "tableView": false,
- "validate": {
- "required": true
- },
- "key": "tags",
- "type": "tags",
- "input": true
+ "roles": [
+ "5e96e79ee1c3ad3178454100",
+ "5e96e79ee1c3ad3178454101",
+ "5e96e79ee1c3ad3178454102"
+ ],
+ "type": "read_all"
}
- ]
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }
- ],
- "controller": "",
- "revisions": "",
- "_vid": 0,
- "title": "modalSelectValidation",
- "display": "form",
- "access": [
- {
- "roles": [
- "5e96e79ee1c3ad3178454100",
- "5e96e79ee1c3ad3178454101",
- "5e96e79ee1c3ad3178454102"
- ],
- "type": "read_all"
- }
- ],
- "submissionAccess": [
-
- ],
- "settings": {
-
- },
- "properties": {
-
- },
- "name": "modalSelectValidation",
- "path": "modalselectvalidation",
- "created": "2020-05-27T09:04:17.962Z",
- "modified": "2020-05-27T10:38:56.616Z"
+ ],
+ "submissionAccess": [],
+ "settings": {},
+ "properties": {},
+ "name": "modalSelectValidation",
+ "path": "modalselectvalidation",
+ "created": "2020-05-27T09:04:17.962Z",
+ "modified": "2020-05-27T10:38:56.616Z"
}
diff --git a/test/formtest/editGridModalDraftsTest.json b/test/formtest/editGridModalDraftsTest.json
index 785ce01cb1..deb18f0f20 100644
--- a/test/formtest/editGridModalDraftsTest.json
+++ b/test/formtest/editGridModalDraftsTest.json
@@ -1,50 +1,50 @@
{
- "type": "form",
- "tags": [],
- "components": [
- {
- "label": "Edit Grid",
- "tableView": false,
- "modal": true,
- "rowDrafts": true,
- "key": "editGrid",
- "type": "editgrid",
- "input": true,
- "components": [
- {
- "label": "Text Field",
- "tableView": true,
- "validate": { "required": true },
- "key": "textField",
- "type": "textfield",
- "input": true
- },
- {
- "label": "Number",
- "mask": false,
- "spellcheck": true,
- "tableView": false,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "validate": { "required": true },
- "key": "number",
- "type": "number",
- "input": true
- }
- ]
- },
- {
- "label": "Submit",
- "showValidations": false,
- "tableView": false,
- "key": "submit",
- "type": "button",
- "input": true
- }
- ],
- "title": "editGridDraftsTest",
- "display": "form",
- "name": "editGridDraftsTest",
- "path": "editgriddraftstest"
+ "type": "form",
+ "tags": [],
+ "components": [
+ {
+ "label": "Edit Grid",
+ "tableView": false,
+ "modal": true,
+ "rowDrafts": true,
+ "key": "editGrid",
+ "type": "editgrid",
+ "input": true,
+ "components": [
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "validate": { "required": true },
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "Number",
+ "mask": false,
+ "spellcheck": true,
+ "tableView": false,
+ "delimiter": false,
+ "requireDecimal": false,
+ "inputFormat": "plain",
+ "validate": { "required": true },
+ "key": "number",
+ "type": "number",
+ "input": true
+ }
+ ]
+ },
+ {
+ "label": "Submit",
+ "showValidations": false,
+ "tableView": false,
+ "key": "submit",
+ "type": "button",
+ "input": true
+ }
+ ],
+ "title": "editGridDraftsTest",
+ "display": "form",
+ "name": "editGridDraftsTest",
+ "path": "editgriddraftstest"
}
diff --git a/test/formtest/formComponentWithConditionalRenderingForm.json b/test/formtest/formComponentWithConditionalRenderingForm.json
index dcbbe2f39e..c8331e7aa8 100644
--- a/test/formtest/formComponentWithConditionalRenderingForm.json
+++ b/test/formtest/formComponentWithConditionalRenderingForm.json
@@ -1,42 +1,46 @@
{
- "type": "form",
- "components": [{
- "label": "Checkbox",
- "tableView": false,
- "key": "checkbox",
- "type": "checkbox",
- "input": true
- },
- {
- "label": "Form",
- "tableView": true,
- "form": "5e87a5b828d01e257e7142b0",
- "key": "form",
- "conditional": {
- "show": true,
- "when": "checkbox",
- "eq": "true"
- },
"type": "form",
- "input": true,
- "components": [{
- "label": "Text Field",
- "tableView": true,
- "key": "textField",
- "type": "textfield",
- "input": true
- }]
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }],
- "title": "formComponentWithConditionalRenderingTest",
- "display": "form",
- "name": "formComponentWithConditionalRenderingTest",
- "path": "formComponentWithConditionalRenderingTest"
+ "components": [
+ {
+ "label": "Checkbox",
+ "tableView": false,
+ "key": "checkbox",
+ "type": "checkbox",
+ "input": true
+ },
+ {
+ "label": "Form",
+ "tableView": true,
+ "form": "5e87a5b828d01e257e7142b0",
+ "key": "form",
+ "conditional": {
+ "show": true,
+ "when": "checkbox",
+ "eq": "true"
+ },
+ "type": "form",
+ "input": true,
+ "components": [
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ }
+ ]
+ },
+ {
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
+ }
+ ],
+ "title": "formComponentWithConditionalRenderingTest",
+ "display": "form",
+ "name": "formComponentWithConditionalRenderingTest",
+ "path": "formComponentWithConditionalRenderingTest"
}
diff --git a/test/formtest/formWithCollapsedPanel.json b/test/formtest/formWithCollapsedPanel.json
index 039d61e60b..e75dae61ae 100644
--- a/test/formtest/formWithCollapsedPanel.json
+++ b/test/formtest/formWithCollapsedPanel.json
@@ -1,56 +1,66 @@
{
- "type": "form",
- "components": [{
- "collapsible": true,
- "key": "panel",
- "type": "panel",
- "label": "Panel",
- "input": false,
- "tableView": false,
- "components": [{
- "label": "Columns",
- "columns": [{
- "components": [{
- "label": "Text Field",
- "tableView": true,
- "validate": {
- "required": true
- },
- "key": "textField",
- "type": "textfield",
- "input": true,
- "hideOnChildrenHidden": false
- }],
- "width": 6,
- "offset": 0,
- "push": 0,
- "pull": 0,
- "size": "md"
- }, {
- "components": [],
- "width": 6,
- "offset": 0,
- "push": 0,
- "pull": 0,
- "size": "md"
- }],
- "key": "columns",
- "type": "columns",
- "input": false,
- "tableView": false
- }],
- "collapsed": true
- }, {
- "label": "Submit",
- "showValidations": false,
- "tableView": false,
- "key": "submit",
- "type": "button",
- "input": true
- }],
- "title": "panelCollapsing",
- "display": "form",
- "name": "panelCollapsing",
- "path": "panelcollapsing",
- "machineName": "cjksbatcpbhyfbs:panelCollapsing"
+ "type": "form",
+ "components": [
+ {
+ "collapsible": true,
+ "key": "panel",
+ "type": "panel",
+ "label": "Panel",
+ "input": false,
+ "tableView": false,
+ "components": [
+ {
+ "label": "Columns",
+ "columns": [
+ {
+ "components": [
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "validate": {
+ "required": true
+ },
+ "key": "textField",
+ "type": "textfield",
+ "input": true,
+ "hideOnChildrenHidden": false
+ }
+ ],
+ "width": 6,
+ "offset": 0,
+ "push": 0,
+ "pull": 0,
+ "size": "md"
+ },
+ {
+ "components": [],
+ "width": 6,
+ "offset": 0,
+ "push": 0,
+ "pull": 0,
+ "size": "md"
+ }
+ ],
+ "key": "columns",
+ "type": "columns",
+ "input": false,
+ "tableView": false
+ }
+ ],
+ "collapsed": true
+ },
+ {
+ "label": "Submit",
+ "showValidations": false,
+ "tableView": false,
+ "key": "submit",
+ "type": "button",
+ "input": true
+ }
+ ],
+ "title": "panelCollapsing",
+ "display": "form",
+ "name": "panelCollapsing",
+ "path": "panelcollapsing",
+ "machineName": "cjksbatcpbhyfbs:panelCollapsing"
}
diff --git a/test/formtest/formWithCustomFormatDate.json b/test/formtest/formWithCustomFormatDate.json
index 8cebbfe0bc..c68e5ae7e8 100644
--- a/test/formtest/formWithCustomFormatDate.json
+++ b/test/formtest/formWithCustomFormatDate.json
@@ -1,110 +1,114 @@
{
- "type": "form",
- "components": [{
- "label": "Data Grid",
- "reorder": false,
- "addAnotherPosition": "bottom",
- "defaultOpen": false,
- "layoutFixed": false,
- "enableRowGroups": false,
- "initEmpty": false,
- "tableView": false,
- "defaultValue": [{}],
- "key": "dataGrid",
- "type": "datagrid",
- "input": true,
+ "type": "form",
"components": [
- {
- "label": "Date / Time",
- "format": "dd-MM-yyyy",
- "tableView": false,
- "enableMinDateInput": false,
- "datePicker": {
- "disableWeekends": false,
- "disableWeekdays": false
+ {
+ "label": "Data Grid",
+ "reorder": false,
+ "addAnotherPosition": "bottom",
+ "defaultOpen": false,
+ "layoutFixed": false,
+ "enableRowGroups": false,
+ "initEmpty": false,
+ "tableView": false,
+ "defaultValue": [{}],
+ "key": "dataGrid",
+ "type": "datagrid",
+ "input": true,
+ "components": [
+ {
+ "label": "Date / Time",
+ "format": "dd-MM-yyyy",
+ "tableView": false,
+ "enableMinDateInput": false,
+ "datePicker": {
+ "disableWeekends": false,
+ "disableWeekdays": false
+ },
+ "enableMaxDateInput": false,
+ "key": "dateTime",
+ "type": "datetime",
+ "input": true,
+ "widget": {
+ "type": "calendar",
+ "displayInTimezone": "viewer",
+ "locale": "en",
+ "useLocaleSettings": false,
+ "allowInput": true,
+ "mode": "single",
+ "enableTime": true,
+ "noCalendar": false,
+ "format": "dd-MM-yyyy",
+ "hourIncrement": 1,
+ "minuteIncrement": 1,
+ "time_24hr": false,
+ "minDate": null,
+ "disableWeekends": false,
+ "disableWeekdays": false,
+ "maxDate": null
+ }
+ },
+ {
+ "label": "Text Field2",
+ "widget": {
+ "type": "calendar",
+ "altInput": true,
+ "allowInput": true,
+ "clickOpens": true,
+ "enableDate": true,
+ "enableTime": true,
+ "mode": "single",
+ "noCalendar": false,
+ "format": "dd-MM-yyyy",
+ "dateFormat": "yyyy-MM-ddTHH:mm:ssZ",
+ "useLocaleSettings": false,
+ "hourIncrement": 1,
+ "minuteIncrement": 5,
+ "time_24hr": false,
+ "saveAs": "date"
+ },
+ "tableView": true,
+ "key": "textField2",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "Text Field",
+ "widget": {
+ "type": "calendar",
+ "altInput": true,
+ "allowInput": true,
+ "clickOpens": true,
+ "enableDate": true,
+ "enableTime": false,
+ "mode": "single",
+ "noCalendar": false,
+ "format": "dd-MM-yyyy",
+ "dateFormat": "dd-MM-yyyy",
+ "useLocaleSettings": false,
+ "hourIncrement": 1,
+ "minuteIncrement": 5,
+ "time_24hr": false,
+ "saveAs": "date"
+ },
+ "tableView": true,
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ }
+ ]
},
- "enableMaxDateInput": false,
- "key": "dateTime",
- "type": "datetime",
- "input": true,
- "widget": {
- "type": "calendar",
- "displayInTimezone": "viewer",
- "locale": "en",
- "useLocaleSettings": false,
- "allowInput": true,
- "mode": "single",
- "enableTime": true,
- "noCalendar": false,
- "format": "dd-MM-yyyy",
- "hourIncrement": 1,
- "minuteIncrement": 1,
- "time_24hr": false,
- "minDate": null,
- "disableWeekends": false,
- "disableWeekdays": false,
- "maxDate": null
+ {
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
}
- },
- {
- "label": "Text Field2",
- "widget": {
- "type": "calendar",
- "altInput": true,
- "allowInput": true,
- "clickOpens": true,
- "enableDate": true,
- "enableTime": true,
- "mode": "single",
- "noCalendar": false,
- "format": "dd-MM-yyyy",
- "dateFormat": "yyyy-MM-ddTHH:mm:ssZ",
- "useLocaleSettings": false,
- "hourIncrement": 1,
- "minuteIncrement": 5,
- "time_24hr": false,
- "saveAs": "date"
- },
- "tableView": true,
- "key": "textField2",
- "type": "textfield",
- "input": true
- },
- {
- "label": "Text Field",
- "widget": {
- "type": "calendar",
- "altInput": true,
- "allowInput": true,
- "clickOpens": true,
- "enableDate": true,
- "enableTime": false,
- "mode": "single",
- "noCalendar": false,
- "format": "dd-MM-yyyy",
- "dateFormat": "dd-MM-yyyy",
- "useLocaleSettings": false,
- "hourIncrement": 1,
- "minuteIncrement": 5,
- "time_24hr": false,
- "saveAs": "date"
- },
- "tableView": true,
- "key": "textField",
- "type": "textfield",
- "input": true
- }]
- }, {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }],
- "title": "automatedtest",
- "display": "form",
- "name": "automatedtest",
- "path": "automatedtest",
- "machineName": "cjksbatcpbhyfbs:automatedtest"
+ ],
+ "title": "automatedtest",
+ "display": "form",
+ "name": "automatedtest",
+ "path": "automatedtest",
+ "machineName": "cjksbatcpbhyfbs:automatedtest"
}
diff --git a/test/formtest/formWithDateTimeComponents.json b/test/formtest/formWithDateTimeComponents.json
index 7027aec025..412371ac0f 100644
--- a/test/formtest/formWithDateTimeComponents.json
+++ b/test/formtest/formWithDateTimeComponents.json
@@ -1,79 +1,85 @@
{
- "type": "form",
- "components": [{
- "collapsible": true,
- "key": "panel",
- "type": "panel",
- "label": "Panel",
- "input": false,
- "tableView": false,
- "components": [{
- "label": "Date / Time",
- "format": "dd-MM-yyyy",
- "tableView": false,
- "enableMinDateInput": false,
- "datePicker": {
- "disableWeekends": false,
- "disableWeekdays": false
- },
- "enableMaxDateInput": false,
- "key": "dateTime1",
- "type": "datetime",
- "input": true,
- "widget": {
- "type": "calendar",
- "displayInTimezone": "viewer",
- "locale": "en",
- "useLocaleSettings": false,
- "allowInput": true,
- "mode": "single",
- "enableTime": true,
- "noCalendar": false,
- "format": "dd-MM-yyyy",
- "hourIncrement": 1,
- "minuteIncrement": 1,
- "time_24hr": false,
- "minDate": null,
- "disableWeekends": false,
- "disableWeekdays": false,
- "maxDate": null
- }
- }, {
- "label": "Text Field",
- "widget": {
- "type": "calendar",
- "altInput": true,
- "allowInput": true,
- "clickOpens": true,
- "enableDate": true,
- "enableTime": true,
- "mode": "single",
- "noCalendar": false,
- "format": "dd-MM-yyyy",
- "dateFormat": "yyyy-MM-ddTHH:mm:ssZ",
- "useLocaleSettings": false,
- "hourIncrement": 1,
- "minuteIncrement": 5,
- "time_24hr": false,
- "saveAs": "date"
- },
- "tableView": true,
- "key": "textField1",
- "type": "textfield",
- "input": true
- }],
- "collapsed": false
- }, {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }],
- "title": "testDateRedrawing",
- "display": "form",
- "name": "testDateRedrawing",
- "path": "testdateredrawing",
- "machineName": "cjksbatcpbhyfbs:testDateRedrawing"
+ "type": "form",
+ "components": [
+ {
+ "collapsible": true,
+ "key": "panel",
+ "type": "panel",
+ "label": "Panel",
+ "input": false,
+ "tableView": false,
+ "components": [
+ {
+ "label": "Date / Time",
+ "format": "dd-MM-yyyy",
+ "tableView": false,
+ "enableMinDateInput": false,
+ "datePicker": {
+ "disableWeekends": false,
+ "disableWeekdays": false
+ },
+ "enableMaxDateInput": false,
+ "key": "dateTime1",
+ "type": "datetime",
+ "input": true,
+ "widget": {
+ "type": "calendar",
+ "displayInTimezone": "viewer",
+ "locale": "en",
+ "useLocaleSettings": false,
+ "allowInput": true,
+ "mode": "single",
+ "enableTime": true,
+ "noCalendar": false,
+ "format": "dd-MM-yyyy",
+ "hourIncrement": 1,
+ "minuteIncrement": 1,
+ "time_24hr": false,
+ "minDate": null,
+ "disableWeekends": false,
+ "disableWeekdays": false,
+ "maxDate": null
+ }
+ },
+ {
+ "label": "Text Field",
+ "widget": {
+ "type": "calendar",
+ "altInput": true,
+ "allowInput": true,
+ "clickOpens": true,
+ "enableDate": true,
+ "enableTime": true,
+ "mode": "single",
+ "noCalendar": false,
+ "format": "dd-MM-yyyy",
+ "dateFormat": "yyyy-MM-ddTHH:mm:ssZ",
+ "useLocaleSettings": false,
+ "hourIncrement": 1,
+ "minuteIncrement": 5,
+ "time_24hr": false,
+ "saveAs": "date"
+ },
+ "tableView": true,
+ "key": "textField1",
+ "type": "textfield",
+ "input": true
+ }
+ ],
+ "collapsed": false
+ },
+ {
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
+ }
+ ],
+ "title": "testDateRedrawing",
+ "display": "form",
+ "name": "testDateRedrawing",
+ "path": "testdateredrawing",
+ "machineName": "cjksbatcpbhyfbs:testDateRedrawing"
}
diff --git a/test/formtest/formWithEditGridDraftModalNestedForm.json b/test/formtest/formWithEditGridDraftModalNestedForm.json
index b6629889dc..999c210239 100644
--- a/test/formtest/formWithEditGridDraftModalNestedForm.json
+++ b/test/formtest/formWithEditGridDraftModalNestedForm.json
@@ -1,42 +1,46 @@
{
- "type": "form",
- "components": [{
- "label": "Edit Grid",
- "tableView": false,
- "modal": true,
- "rowDrafts": true,
- "key": "editGrid",
- "type": "editgrid",
- "input": true,
- "components": [{
- "type": "form",
- "components": [{
- "label": "Text Field",
- "tableView": true,
- "key": "textField",
- "type": "textfield",
- "input": true
- }],
- "title": "smallChildForm",
- "display": "form",
- "name": "smallChildForm",
- "path": "smallchildform",
- "machineName": "cjksbatcpbhyfbs:smallChildForm"
- }]
- }, {
- "label": "Submit",
- "showValidations": false,
- "tableView": false,
- "key": "submit",
- "type": "button",
- "input": true
- }],
- "title": "testEditGrid333",
- "display": "form",
- "name": "testEditGrid333",
- "path": "testeditgrid333",
- "machineName": "cjksbatcpbhyfbs:testEditGrid333"
+ "type": "form",
+ "components": [
+ {
+ "label": "Edit Grid",
+ "tableView": false,
+ "modal": true,
+ "rowDrafts": true,
+ "key": "editGrid",
+ "type": "editgrid",
+ "input": true,
+ "components": [
+ {
+ "type": "form",
+ "components": [
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ }
+ ],
+ "title": "smallChildForm",
+ "display": "form",
+ "name": "smallChildForm",
+ "path": "smallchildform",
+ "machineName": "cjksbatcpbhyfbs:smallChildForm"
+ }
+ ]
+ },
+ {
+ "label": "Submit",
+ "showValidations": false,
+ "tableView": false,
+ "key": "submit",
+ "type": "button",
+ "input": true
+ }
+ ],
+ "title": "testEditGrid333",
+ "display": "form",
+ "name": "testEditGrid333",
+ "path": "testeditgrid333",
+ "machineName": "cjksbatcpbhyfbs:testEditGrid333"
}
-
-
-
diff --git a/test/formtest/formWithObjectValueSelect.json b/test/formtest/formWithObjectValueSelect.json
index b129d6f87e..178cd5c7d7 100644
--- a/test/formtest/formWithObjectValueSelect.json
+++ b/test/formtest/formWithObjectValueSelect.json
@@ -1,146 +1,148 @@
{
- "_id": "656dabe1ebc67ecca11415f7",
- "title": "test conditions select",
- "name": "testConditionsSelect",
- "path": "testconditionsselect",
- "type": "form",
- "display": "form",
- "components": [{
- "label": "Select ref",
- "widget": "choicesjs",
- "tableView": true,
- "dataSrc": "resource",
- "data": {
- "resource": "656daab0ebc67ecca1141226"
- },
- "template": "
Number {{ item.data.number }}({{item.data.notes}}) ",
- "key": "selectRef",
- "type": "select",
- "noRefreshOnScroll": false,
- "addResource": false,
- "reference": true,
- "input": true
- },
- {
- "label": "Select no value property",
- "widget": "choicesjs",
- "tableView": true,
- "multiple": true,
- "dataSrc": "resource",
- "data": {
- "resource": "656daab0ebc67ecca1141226"
- },
- "template": "
{{ item.data.number }} ",
- "key": "selectNoValueProperty",
- "type": "select",
- "noRefreshOnScroll": false,
- "addResource": false,
- "reference": false,
- "input": true
- },
- {
- "label": "Select entire object",
- "widget": "choicesjs",
- "tableView": true,
- "dataSrc": "resource",
- "data": {
- "resource": "656daab0ebc67ecca1141226"
- },
- "valueProperty": "data",
- "template": "
{{ item.data.number }} ",
- "validate": {
- "select": false
- },
- "key": "selectEntireObject",
- "type": "select",
- "searchField": "data__regex",
- "noRefreshOnScroll": false,
- "addResource": false,
- "reference": false,
- "input": true
- },
- {
- "label": "Select entire object mult",
- "widget": "choicesjs",
- "tableView": true,
- "multiple": true,
- "dataSrc": "resource",
- "data": {
- "resource": "656daab0ebc67ecca1141226"
- },
- "valueProperty": "data",
- "template": "
{{ item.data.number }} ",
- "validate": {
- "select": false
- },
- "key": "selectEntireObjectMult",
- "type": "select",
- "searchField": "data__regex",
- "noRefreshOnScroll": false,
- "addResource": false,
- "reference": false,
- "input": true
- },
- {
- "label": "Number",
- "applyMaskOn": "change",
- "mask": false,
- "tableView": false,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "truncateMultipleSpaces": false,
- "key": "number",
- "conditional": {
- "show": true,
- "conjunction": "all",
- "conditions": [{
- "component": "selectRef",
- "operator": "isEqual",
- "value": {
- "data": {
- "number": 1,
- "notes": "notes 1"
- }
- }
- },
- {
- "component": "selectNoValueProperty",
- "operator": "isEqual",
- "value": {
- "data": {
- "number": 2
- }
- }
- },
- {
- "component": "selectEntireObject",
- "operator": "isEqual",
- "value": {
- "number": 3
- }
- },
- {
- "component": "selectEntireObjectMult",
- "operator": "isEqual",
- "value": {
- "number": 4
- }
- }
- ]
- },
- "type": "number",
- "input": true
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }
- ],
- "project": "656daa20ebc67ecca1140e8d",
- "machineName": "yyyy-acvcpvwwqbabawl:testConditionsSelect"
+ "_id": "656dabe1ebc67ecca11415f7",
+ "title": "test conditions select",
+ "name": "testConditionsSelect",
+ "path": "testconditionsselect",
+ "type": "form",
+ "display": "form",
+ "components": [
+ {
+ "label": "Select ref",
+ "widget": "choicesjs",
+ "tableView": true,
+ "dataSrc": "resource",
+ "data": {
+ "resource": "656daab0ebc67ecca1141226"
+ },
+ "template": "
Number {{ item.data.number }}({{item.data.notes}}) ",
+ "key": "selectRef",
+ "type": "select",
+ "noRefreshOnScroll": false,
+ "addResource": false,
+ "reference": true,
+ "input": true
+ },
+ {
+ "label": "Select no value property",
+ "widget": "choicesjs",
+ "tableView": true,
+ "multiple": true,
+ "dataSrc": "resource",
+ "data": {
+ "resource": "656daab0ebc67ecca1141226"
+ },
+ "template": "
{{ item.data.number }} ",
+ "key": "selectNoValueProperty",
+ "type": "select",
+ "noRefreshOnScroll": false,
+ "addResource": false,
+ "reference": false,
+ "input": true
+ },
+ {
+ "label": "Select entire object",
+ "widget": "choicesjs",
+ "tableView": true,
+ "dataSrc": "resource",
+ "data": {
+ "resource": "656daab0ebc67ecca1141226"
+ },
+ "valueProperty": "data",
+ "template": "
{{ item.data.number }} ",
+ "validate": {
+ "select": false
+ },
+ "key": "selectEntireObject",
+ "type": "select",
+ "searchField": "data__regex",
+ "noRefreshOnScroll": false,
+ "addResource": false,
+ "reference": false,
+ "input": true
+ },
+ {
+ "label": "Select entire object mult",
+ "widget": "choicesjs",
+ "tableView": true,
+ "multiple": true,
+ "dataSrc": "resource",
+ "data": {
+ "resource": "656daab0ebc67ecca1141226"
+ },
+ "valueProperty": "data",
+ "template": "
{{ item.data.number }} ",
+ "validate": {
+ "select": false
+ },
+ "key": "selectEntireObjectMult",
+ "type": "select",
+ "searchField": "data__regex",
+ "noRefreshOnScroll": false,
+ "addResource": false,
+ "reference": false,
+ "input": true
+ },
+ {
+ "label": "Number",
+ "applyMaskOn": "change",
+ "mask": false,
+ "tableView": false,
+ "delimiter": false,
+ "requireDecimal": false,
+ "inputFormat": "plain",
+ "truncateMultipleSpaces": false,
+ "key": "number",
+ "conditional": {
+ "show": true,
+ "conjunction": "all",
+ "conditions": [
+ {
+ "component": "selectRef",
+ "operator": "isEqual",
+ "value": {
+ "data": {
+ "number": 1,
+ "notes": "notes 1"
+ }
+ }
+ },
+ {
+ "component": "selectNoValueProperty",
+ "operator": "isEqual",
+ "value": {
+ "data": {
+ "number": 2
+ }
+ }
+ },
+ {
+ "component": "selectEntireObject",
+ "operator": "isEqual",
+ "value": {
+ "number": 3
+ }
+ },
+ {
+ "component": "selectEntireObjectMult",
+ "operator": "isEqual",
+ "value": {
+ "number": 4
+ }
+ }
+ ]
+ },
+ "type": "number",
+ "input": true
+ },
+ {
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
+ }
+ ],
+ "project": "656daa20ebc67ecca1140e8d",
+ "machineName": "yyyy-acvcpvwwqbabawl:testConditionsSelect"
}
diff --git a/test/formtest/formWithResetValue.d.ts b/test/formtest/formWithResetValue.d.ts
index 96b48a325c..6677b3c621 100644
--- a/test/formtest/formWithResetValue.d.ts
+++ b/test/formtest/formWithResetValue.d.ts
@@ -1,99 +1,107 @@
declare namespace _default {
const type: string;
- const components: ({
- label: string;
- widget: string;
- tableView: boolean;
- data: {
- values: {
- label: string;
- value: string;
- }[];
- };
- selectThreshold: number;
- key: string;
- type: string;
- indexeddb: {
- filter: {};
- };
- input: boolean;
- collapsible?: undefined;
- conditional?: undefined;
- components?: undefined;
- action?: undefined;
- showValidations?: undefined;
- theme?: undefined;
- disableOnInvalid?: undefined;
- } | {
- collapsible: boolean;
- key: string;
- conditional: {
- show: boolean;
- when: string;
- eq: string;
- };
- type: string;
- label: string;
- input: boolean;
- tableView: boolean;
- components: ({
- label: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- autoExpand?: undefined;
- } | {
- label: string;
- autoExpand: boolean;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- })[];
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- action?: undefined;
- showValidations?: undefined;
- theme?: undefined;
- disableOnInvalid?: undefined;
- } | {
- label: string;
- action: string;
- showValidations: boolean;
- theme: string;
- tableView: boolean;
- key: string;
- type: string;
- input: boolean;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- collapsible?: undefined;
- conditional?: undefined;
- components?: undefined;
- disableOnInvalid?: undefined;
- } | {
- type: string;
- label: string;
- key: string;
- disableOnInvalid: boolean;
- input: boolean;
- tableView: boolean;
- widget?: undefined;
- data?: undefined;
- selectThreshold?: undefined;
- indexeddb?: undefined;
- collapsible?: undefined;
- conditional?: undefined;
- components?: undefined;
- action?: undefined;
- showValidations?: undefined;
- theme?: undefined;
- })[];
+ const components: (
+ | {
+ label: string;
+ widget: string;
+ tableView: boolean;
+ data: {
+ values: {
+ label: string;
+ value: string;
+ }[];
+ };
+ selectThreshold: number;
+ key: string;
+ type: string;
+ indexeddb: {
+ filter: {};
+ };
+ input: boolean;
+ collapsible?: undefined;
+ conditional?: undefined;
+ components?: undefined;
+ action?: undefined;
+ showValidations?: undefined;
+ theme?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ collapsible: boolean;
+ key: string;
+ conditional: {
+ show: boolean;
+ when: string;
+ eq: string;
+ };
+ type: string;
+ label: string;
+ input: boolean;
+ tableView: boolean;
+ components: (
+ | {
+ label: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ autoExpand?: undefined;
+ }
+ | {
+ label: string;
+ autoExpand: boolean;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ }
+ )[];
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ action?: undefined;
+ showValidations?: undefined;
+ theme?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ label: string;
+ action: string;
+ showValidations: boolean;
+ theme: string;
+ tableView: boolean;
+ key: string;
+ type: string;
+ input: boolean;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ collapsible?: undefined;
+ conditional?: undefined;
+ components?: undefined;
+ disableOnInvalid?: undefined;
+ }
+ | {
+ type: string;
+ label: string;
+ key: string;
+ disableOnInvalid: boolean;
+ input: boolean;
+ tableView: boolean;
+ widget?: undefined;
+ data?: undefined;
+ selectThreshold?: undefined;
+ indexeddb?: undefined;
+ collapsible?: undefined;
+ conditional?: undefined;
+ components?: undefined;
+ action?: undefined;
+ showValidations?: undefined;
+ theme?: undefined;
+ }
+ )[];
const title: string;
const display: string;
}
diff --git a/test/formtest/formWithResetValue.js b/test/formtest/formWithResetValue.js
index c08242a743..4c2e0fae1e 100644
--- a/test/formtest/formWithResetValue.js
+++ b/test/formtest/formWithResetValue.js
@@ -1,81 +1,79 @@
export default {
- type: 'form',
- components: [
- {
- label: 'Show Panel',
- widget: 'choicesjs',
- tableView: true,
- data: {
- values: [
- {
- label: 'Yes',
- value: 'yes'
- },
- {
- label: 'No',
- value: 'no'
- }
- ]
- },
- selectThreshold: 0.3,
- key: 'showPanel',
- type: 'select',
- indexeddb: {
- filter: {
-
- }
- },
- input: true
- },
- {
- collapsible: false,
- key: 'panel',
- conditional: {
- show: true,
- when: 'showPanel',
- eq: 'yes'
- },
- type: 'panel',
- label: 'Panel',
- input: false,
- tableView: false,
- components: [
+ type: 'form',
+ components: [
{
- label: 'Text Field',
- tableView: true,
- key: 'textField',
- type: 'textfield',
- input: true
+ label: 'Show Panel',
+ widget: 'choicesjs',
+ tableView: true,
+ data: {
+ values: [
+ {
+ label: 'Yes',
+ value: 'yes',
+ },
+ {
+ label: 'No',
+ value: 'no',
+ },
+ ],
+ },
+ selectThreshold: 0.3,
+ key: 'showPanel',
+ type: 'select',
+ indexeddb: {
+ filter: {},
+ },
+ input: true,
},
{
- label: 'Text Area',
- autoExpand: false,
- tableView: true,
- key: 'textArea',
- type: 'textarea',
- input: true
- }
- ]
- },
- {
- label: 'Reset',
- action: 'reset',
- showValidations: false,
- theme: 'danger',
- tableView: false,
- key: 'reset',
- type: 'button',
- input: true
- },
- {
- type: 'button',
- label: 'Submit',
- key: 'submit',
- disableOnInvalid: true,
- input: true,
- tableView: false
- }
- ],
- title: 'FJS-1369',
- display: 'form',
+ collapsible: false,
+ key: 'panel',
+ conditional: {
+ show: true,
+ when: 'showPanel',
+ eq: 'yes',
+ },
+ type: 'panel',
+ label: 'Panel',
+ input: false,
+ tableView: false,
+ components: [
+ {
+ label: 'Text Field',
+ tableView: true,
+ key: 'textField',
+ type: 'textfield',
+ input: true,
+ },
+ {
+ label: 'Text Area',
+ autoExpand: false,
+ tableView: true,
+ key: 'textArea',
+ type: 'textarea',
+ input: true,
+ },
+ ],
+ },
+ {
+ label: 'Reset',
+ action: 'reset',
+ showValidations: false,
+ theme: 'danger',
+ tableView: false,
+ key: 'reset',
+ type: 'button',
+ input: true,
+ },
+ {
+ type: 'button',
+ label: 'Submit',
+ key: 'submit',
+ disableOnInvalid: true,
+ input: true,
+ tableView: false,
+ },
+ ],
+ title: 'FJS-1369',
+ display: 'form',
};
diff --git a/test/formtest/formWithTimeComponent.json b/test/formtest/formWithTimeComponent.json
index ba954ce208..0cbc99d06c 100644
--- a/test/formtest/formWithTimeComponent.json
+++ b/test/formtest/formWithTimeComponent.json
@@ -1,26 +1,26 @@
{
- "type": "form",
- "components": [
- {
- "label": "Time",
- "inputType": "text",
- "tableView": true,
- "key": "time",
- "type": "time",
- "input": true,
- "inputMask": "99:99"
- },
- {
- "label": "Submit",
- "showValidations": false,
- "tableView": false,
- "key": "submit",
- "type": "button",
- "input": true
- }
- ],
- "title": "TimeTest666",
- "display": "form",
- "name": "timeTest666",
- "path": "timetest666"
+ "type": "form",
+ "components": [
+ {
+ "label": "Time",
+ "inputType": "text",
+ "tableView": true,
+ "key": "time",
+ "type": "time",
+ "input": true,
+ "inputMask": "99:99"
+ },
+ {
+ "label": "Submit",
+ "showValidations": false,
+ "tableView": false,
+ "key": "submit",
+ "type": "button",
+ "input": true
+ }
+ ],
+ "title": "TimeTest666",
+ "display": "form",
+ "name": "timeTest666",
+ "path": "timetest666"
}
diff --git a/test/formtest/index.d.ts b/test/formtest/index.d.ts
index dfd6d0a3d1..24866389c2 100644
--- a/test/formtest/index.d.ts
+++ b/test/formtest/index.d.ts
@@ -1 +1,45 @@
-export { advanced, basic, data, defaults, layout, premium, settingErrors, clearOnHide, manualOverride, uniqueApiKeys, uniqueApiKeysLayout, uniqueApiKeysSameLevel, validationOnBlur, calculateValueWithManualOverride, calculateValueWithSubmissionMetadata, displayAsModalEditGrid, formWithAdvancedLogic, formWithPatternValidation, calculatedSelectboxes, columnsForm, calculateZeroValue, formWithConditionalLogic, formWithCalculatedValueWithoutOverriding, formWithTimeComponent, formWithEditGridModalDrafts, formWithBlurValidationInsidePanel, modalEditComponents, calculatedNotPersistentValue, calculateValueInEditingMode, initiallyCollapsedPanel, multipleTextareaInsideConditionalComponent, formComponentWithConditionalRenderingForm, disabledNestedForm, propertyActions, formWithEditGridAndNestedDraftModalRow, formWithDateTimeComponents, formWithCollapsedPanel, formWithCustomFormatDate, wizardWithHiddenPanel, wizardWithSimpleConditionalPage, wizardWithTooltip, resourceKeyCamelCase, tooltipActivateCheckbox };
+export {
+ advanced,
+ basic,
+ data,
+ defaults,
+ layout,
+ premium,
+ settingErrors,
+ clearOnHide,
+ manualOverride,
+ uniqueApiKeys,
+ uniqueApiKeysLayout,
+ uniqueApiKeysSameLevel,
+ validationOnBlur,
+ calculateValueWithManualOverride,
+ calculateValueWithSubmissionMetadata,
+ displayAsModalEditGrid,
+ formWithAdvancedLogic,
+ formWithPatternValidation,
+ calculatedSelectboxes,
+ columnsForm,
+ calculateZeroValue,
+ formWithConditionalLogic,
+ formWithCalculatedValueWithoutOverriding,
+ formWithTimeComponent,
+ formWithEditGridModalDrafts,
+ formWithBlurValidationInsidePanel,
+ modalEditComponents,
+ calculatedNotPersistentValue,
+ calculateValueInEditingMode,
+ initiallyCollapsedPanel,
+ multipleTextareaInsideConditionalComponent,
+ formComponentWithConditionalRenderingForm,
+ disabledNestedForm,
+ propertyActions,
+ formWithEditGridAndNestedDraftModalRow,
+ formWithDateTimeComponents,
+ formWithCollapsedPanel,
+ formWithCustomFormatDate,
+ wizardWithHiddenPanel,
+ wizardWithSimpleConditionalPage,
+ wizardWithTooltip,
+ resourceKeyCamelCase,
+ tooltipActivateCheckbox,
+};
diff --git a/test/formtest/index.js b/test/formtest/index.js
index 4b21cb8e25..b22cf98b63 100644
--- a/test/formtest/index.js
+++ b/test/formtest/index.js
@@ -44,48 +44,48 @@ const tooltipActivateCheckbox = require('./tooltipActivateCheckbox.json');
const formWithObjectValueSelect = require('./formWithObjectValueSelect.json');
module.exports = {
- advanced,
- basic,
- data,
- defaults,
- layout,
- premium,
- settingErrors,
- clearOnHide,
- manualOverride,
- uniqueApiKeys,
- uniqueApiKeysLayout,
- uniqueApiKeysSameLevel,
- validationOnBlur,
- calculateValueWithManualOverride,
- calculateValueWithSubmissionMetadata,
- displayAsModalEditGrid,
- formWithAdvancedLogic,
- formWithPatternValidation,
- calculatedSelectboxes,
- columnsForm,
- calculateZeroValue,
- formWithConditionalLogic,
- formWithCalculatedValueWithoutOverriding,
- formWithTimeComponent,
- formWithEditGridModalDrafts,
- formWithBlurValidationInsidePanel,
- modalEditComponents,
- calculatedNotPersistentValue,
- calculateValueInEditingMode,
- initiallyCollapsedPanel,
- multipleTextareaInsideConditionalComponent,
- formComponentWithConditionalRenderingForm,
- disabledNestedForm,
- propertyActions,
- formWithEditGridAndNestedDraftModalRow,
- formWithDateTimeComponents,
- formWithCollapsedPanel,
- formWithCustomFormatDate,
- wizardWithHiddenPanel,
- wizardWithSimpleConditionalPage,
- wizardWithTooltip,
- resourceKeyCamelCase,
- tooltipActivateCheckbox,
- formWithObjectValueSelect
+ advanced,
+ basic,
+ data,
+ defaults,
+ layout,
+ premium,
+ settingErrors,
+ clearOnHide,
+ manualOverride,
+ uniqueApiKeys,
+ uniqueApiKeysLayout,
+ uniqueApiKeysSameLevel,
+ validationOnBlur,
+ calculateValueWithManualOverride,
+ calculateValueWithSubmissionMetadata,
+ displayAsModalEditGrid,
+ formWithAdvancedLogic,
+ formWithPatternValidation,
+ calculatedSelectboxes,
+ columnsForm,
+ calculateZeroValue,
+ formWithConditionalLogic,
+ formWithCalculatedValueWithoutOverriding,
+ formWithTimeComponent,
+ formWithEditGridModalDrafts,
+ formWithBlurValidationInsidePanel,
+ modalEditComponents,
+ calculatedNotPersistentValue,
+ calculateValueInEditingMode,
+ initiallyCollapsedPanel,
+ multipleTextareaInsideConditionalComponent,
+ formComponentWithConditionalRenderingForm,
+ disabledNestedForm,
+ propertyActions,
+ formWithEditGridAndNestedDraftModalRow,
+ formWithDateTimeComponents,
+ formWithCollapsedPanel,
+ formWithCustomFormatDate,
+ wizardWithHiddenPanel,
+ wizardWithSimpleConditionalPage,
+ wizardWithTooltip,
+ resourceKeyCamelCase,
+ tooltipActivateCheckbox,
+ formWithObjectValueSelect,
};
diff --git a/test/formtest/initiallyCollapsedPanel.json b/test/formtest/initiallyCollapsedPanel.json
index 546e3ffc2d..3db4b081ff 100644
--- a/test/formtest/initiallyCollapsedPanel.json
+++ b/test/formtest/initiallyCollapsedPanel.json
@@ -1,39 +1,39 @@
{
- "_id": "5f2959ef4721b45f6089d572",
- "type": "form",
- "owner": "5e05a6b7549cdc2ece30c6b0",
- "components": [
- {
- "collapsible": true,
- "tableView": false,
- "key": "panel",
- "type": "panel",
- "label": "Panel",
- "input": false,
- "components": [
+ "_id": "5f2959ef4721b45f6089d572",
+ "type": "form",
+ "owner": "5e05a6b7549cdc2ece30c6b0",
+ "components": [
{
- "label": "Text Field",
- "tableView": true,
- "validate": {
- "required": true
- },
- "key": "textField",
- "type": "textfield",
- "input": true
+ "collapsible": true,
+ "tableView": false,
+ "key": "panel",
+ "type": "panel",
+ "label": "Panel",
+ "input": false,
+ "components": [
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "validate": {
+ "required": true
+ },
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ }
+ ],
+ "collapsed": true
+ },
+ {
+ "label": "Submit",
+ "showValidations": false,
+ "tableView": false,
+ "key": "submit",
+ "type": "button",
+ "input": true
}
- ],
- "collapsed": true
- },
- {
- "label": "Submit",
- "showValidations": false,
- "tableView": false,
- "key": "submit",
- "type": "button",
- "input": true
- }
- ],
- "title": "FJS-1118 Collapsed Panels",
- "display": "form",
- "name": "fjs1118CollapsedPanels"
-}
\ No newline at end of file
+ ],
+ "title": "FJS-1118 Collapsed Panels",
+ "display": "form",
+ "name": "fjs1118CollapsedPanels"
+}
diff --git a/test/formtest/layout.json b/test/formtest/layout.json
index 778b1a4ad2..55e58e190b 100644
--- a/test/formtest/layout.json
+++ b/test/formtest/layout.json
@@ -1,1486 +1,1482 @@
{
- "type": "form",
- "tags": [],
- "owner": "55673dc04f0405dd28205bb7",
- "components": [
- {
- "label": "Columns",
- "input": false,
- "key": "columns",
- "type": "columns",
- "hideLabel": true,
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "columns": [
+ "type": "form",
+ "tags": [],
+ "owner": "55673dc04f0405dd28205bb7",
+ "components": [
{
- "components": [
- {
- "input": true,
- "label": "Text",
- "key": "columnsText",
- "defaultValue": "",
- "spellcheck": true,
- "conditional": {
+ "label": "Columns",
+ "input": false,
+ "key": "columns",
+ "type": "columns",
+ "hideLabel": true,
+ "tags": [],
+ "conditional": {
"show": "",
"when": null,
"eq": ""
- },
- "type": "textfield",
- "tags": [],
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
+ },
+ "properties": {},
+ "columns": [
+ {
+ "components": [
+ {
+ "input": true,
+ "label": "Text",
+ "key": "columnsText",
+ "defaultValue": "",
+ "spellcheck": true,
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "tags": [],
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "e1h0bm7"
+ }
+ ],
+ "width": 6,
+ "offset": 0,
+ "push": 0,
+ "pull": 0,
+ "type": "column",
+ "input": true,
+ "key": "",
+ "label": "",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "tree": true,
+ "id": "e4xug7q"
+ },
+ {
+ "components": [],
+ "width": 6,
+ "offset": 0,
+ "push": 0,
+ "pull": 0,
+ "type": "column",
+ "input": true,
+ "key": "",
+ "label": "",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "tree": true,
+ "id": "eoyga1t"
+ }
+ ],
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "clearOnHide": false,
+ "tableView": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
"required": false,
"custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "e1h0bm7"
- }
- ],
- "width": 6,
- "offset": 0,
- "push": 0,
- "pull": 0,
- "type": "column",
- "input": true,
- "key": "",
- "label": "",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "tree": true,
- "id": "e4xug7q"
+ "customPrivate": false
+ },
+ "tree": true,
+ "id": "epunn7l"
},
{
- "components": [],
- "width": 6,
- "offset": 0,
- "push": 0,
- "pull": 0,
- "type": "column",
- "input": true,
- "key": "",
- "label": "",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "tree": true,
- "id": "eoyga1t"
- }
- ],
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": false,
- "tableView": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "tree": true,
- "id": "epunn7l"
- },
- {
- "label": "Columns",
- "input": false,
- "key": "columns2",
- "type": "columns",
- "hideLabel": true,
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "columns": [
- {
- "components": [
- {
- "input": true,
- "label": "Text",
- "key": "columns2Text",
- "defaultValue": "",
- "spellcheck": true,
- "conditional": {
+ "label": "Columns",
+ "input": false,
+ "key": "columns2",
+ "type": "columns",
+ "hideLabel": true,
+ "tags": [],
+ "conditional": {
"show": "",
"when": null,
"eq": ""
- },
- "type": "textfield",
- "tags": [],
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
+ },
+ "properties": {},
+ "columns": [
+ {
+ "components": [
+ {
+ "input": true,
+ "label": "Text",
+ "key": "columns2Text",
+ "defaultValue": "",
+ "spellcheck": true,
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "tags": [],
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "e9olopn"
+ }
+ ],
+ "width": 5,
+ "offset": 0,
+ "push": 0,
+ "pull": 0,
+ "type": "column",
+ "input": true,
+ "key": "",
+ "label": "",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "tree": true,
+ "id": "ehhgx3j"
+ },
+ {
+ "components": [],
+ "width": 5,
+ "offset": 0,
+ "push": 0,
+ "pull": 0,
+ "type": "column",
+ "input": true,
+ "key": "",
+ "label": "",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "tree": true,
+ "id": "edplpme"
+ },
+ {
+ "components": [],
+ "width": 2,
+ "offset": 0,
+ "push": 0,
+ "pull": 0,
+ "type": "column",
+ "input": true,
+ "key": "",
+ "label": "",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "tree": true,
+ "id": "ejwu2p8"
+ }
+ ],
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "clearOnHide": false,
+ "tableView": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
"required": false,
"custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "e9olopn"
- }
- ],
- "width": 5,
- "offset": 0,
- "push": 0,
- "pull": 0,
- "type": "column",
- "input": true,
- "key": "",
- "label": "",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "tree": true,
- "id": "ehhgx3j"
+ "customPrivate": false
+ },
+ "tree": true,
+ "id": "ebmwwqh"
},
{
- "components": [],
- "width": 5,
- "offset": 0,
- "push": 0,
- "pull": 0,
- "type": "column",
- "input": true,
- "key": "",
- "label": "",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "tree": true,
- "id": "edplpme"
+ "clearOnHide": false,
+ "key": "fieldset",
+ "input": false,
+ "tableView": false,
+ "legend": "Fieldset",
+ "type": "fieldset",
+ "hideLabel": true,
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "label": "fieldset",
+ "components": [
+ {
+ "input": true,
+ "label": "Text",
+ "key": "fieldsetText",
+ "defaultValue": "",
+ "spellcheck": true,
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "tags": [],
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "ed98z9"
+ }
+ ],
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "tree": true,
+ "id": "e01dxq"
},
{
- "components": [],
- "width": 2,
- "offset": 0,
- "push": 0,
- "pull": 0,
- "type": "column",
- "input": true,
- "key": "",
- "label": "",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "tree": true,
- "id": "ejwu2p8"
- }
- ],
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": false,
- "tableView": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "tree": true,
- "id": "ebmwwqh"
- },
- {
- "clearOnHide": false,
- "key": "fieldset",
- "input": false,
- "tableView": false,
- "legend": "Fieldset",
- "type": "fieldset",
- "hideLabel": true,
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "label": "fieldset",
- "components": [
+ "clearOnHide": false,
+ "key": "fieldset2",
+ "input": false,
+ "tableView": false,
+ "legend": "Collapsed",
+ "components": [
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Text",
+ "key": "fieldset2Text",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "labelPosition": "top",
+ "inputFormat": "plain",
+ "tags": [],
+ "properties": {}
+ }
+ ],
+ "type": "fieldset",
+ "hideLabel": true,
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "collapsible": true,
+ "collapsed": true,
+ "label": "fieldset2"
+ },
{
- "input": true,
- "label": "Text",
- "key": "fieldsetText",
- "defaultValue": "",
- "spellcheck": true,
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "tags": [],
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "ed98z9"
- }
- ],
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "tree": true,
- "id": "e01dxq"
- },
- {
- "clearOnHide": false,
- "key": "fieldset2",
- "input": false,
- "tableView": false,
- "legend": "Collapsed",
- "components": [
+ "key": "panel",
+ "input": false,
+ "title": "Panel",
+ "type": "panel",
+ "hideLabel": true,
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "label": "panel",
+ "components": [
+ {
+ "input": true,
+ "label": "Text",
+ "key": "panelText",
+ "defaultValue": "",
+ "spellcheck": true,
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "tags": [],
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "e0epbdt"
+ }
+ ],
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "clearOnHide": false,
+ "tableView": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "tree": true,
+ "theme": "default",
+ "breadcrumb": "default",
+ "id": "eik6wun"
+ },
{
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "text",
- "inputMask": "",
- "label": "Text",
- "key": "fieldset2Text",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "labelPosition": "top",
- "inputFormat": "plain",
- "tags": [],
- "properties": {}
- }
- ],
- "type": "fieldset",
- "hideLabel": true,
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "collapsible": true,
- "collapsed": true,
- "label": "fieldset2"
- },
- {
- "key": "panel",
- "input": false,
- "title": "Panel",
- "type": "panel",
- "hideLabel": true,
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "label": "panel",
- "components": [
+ "clearOnHide": false,
+ "key": "panel2",
+ "input": false,
+ "title": "Collapsed",
+ "theme": "default",
+ "tableView": false,
+ "components": [
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Text",
+ "key": "panel2Text",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "labelPosition": "top",
+ "inputFormat": "plain",
+ "tags": [],
+ "properties": {}
+ }
+ ],
+ "type": "panel",
+ "breadcrumb": "default",
+ "hideLabel": true,
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "collapsible": true,
+ "collapsed": true,
+ "label": "panel2"
+ },
{
- "input": true,
- "label": "Text",
- "key": "panelText",
- "defaultValue": "",
- "spellcheck": true,
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "tags": [],
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "e0epbdt"
- }
- ],
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": false,
- "tableView": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "tree": true,
- "theme": "default",
- "breadcrumb": "default",
- "id": "eik6wun"
- },
- {
- "clearOnHide": false,
- "key": "panel2",
- "input": false,
- "title": "Collapsed",
- "theme": "default",
- "tableView": false,
- "components": [
+ "clearOnHide": false,
+ "key": "panel3",
+ "input": false,
+ "title": "Collapsible",
+ "theme": "default",
+ "tableView": false,
+ "components": [
+ {
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "inputType": "text",
+ "inputMask": "",
+ "label": "Text",
+ "key": "panel3Text",
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "spellcheck": true,
+ "validate": {
+ "required": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "custom": "",
+ "customPrivate": false
+ },
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "labelPosition": "top",
+ "inputFormat": "plain",
+ "tags": [],
+ "properties": {}
+ }
+ ],
+ "type": "panel",
+ "breadcrumb": "default",
+ "hideLabel": true,
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "collapsible": true,
+ "label": "panel3"
+ },
{
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "text",
- "inputMask": "",
- "label": "Text",
- "key": "panel2Text",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "labelPosition": "top",
- "inputFormat": "plain",
- "tags": [],
- "properties": {}
- }
- ],
- "type": "panel",
- "breadcrumb": "default",
- "hideLabel": true,
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "collapsible": true,
- "collapsed": true,
- "label": "panel2"
- },
- {
- "clearOnHide": false,
- "key": "panel3",
- "input": false,
- "title": "Collapsible",
- "theme": "default",
- "tableView": false,
- "components": [
+ "clearOnHide": false,
+ "input": false,
+ "key": "table",
+ "header": [],
+ "tableView": false,
+ "type": "table",
+ "hideLabel": true,
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "label": "table",
+ "striped": true,
+ "bordered": true,
+ "hover": true,
+ "condensed": true,
+ "rows": [
+ [
+ {
+ "components": [
+ {
+ "input": true,
+ "label": "Text",
+ "key": "tableText",
+ "defaultValue": "",
+ "spellcheck": true,
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "tags": [],
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "er2c9a"
+ }
+ ]
+ },
+ {
+ "components": []
+ },
+ {
+ "components": []
+ }
+ ],
+ [
+ {
+ "components": []
+ },
+ {
+ "components": [
+ {
+ "input": true,
+ "label": "Text",
+ "key": "tableText2",
+ "defaultValue": "",
+ "spellcheck": true,
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "tags": [],
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "en7wvhq"
+ }
+ ]
+ },
+ {
+ "components": []
+ }
+ ],
+ [
+ {
+ "components": []
+ },
+ {
+ "components": []
+ },
+ {
+ "components": [
+ {
+ "input": true,
+ "label": "Text",
+ "key": "tableText3",
+ "defaultValue": "",
+ "spellcheck": true,
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "tags": [],
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "e5x077"
+ }
+ ]
+ }
+ ]
+ ],
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "tree": true,
+ "numRows": 3,
+ "numCols": 3,
+ "caption": "",
+ "id": "e43k6xo"
+ },
{
- "autofocus": false,
- "input": true,
- "tableView": true,
- "inputType": "text",
- "inputMask": "",
- "label": "Text",
- "key": "panel3Text",
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": "",
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "spellcheck": true,
- "validate": {
- "required": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "labelPosition": "top",
- "inputFormat": "plain",
- "tags": [],
- "properties": {}
- }
- ],
- "type": "panel",
- "breadcrumb": "default",
- "hideLabel": true,
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "collapsible": true,
- "label": "panel3"
- },
- {
- "clearOnHide": false,
- "input": false,
- "key": "table",
- "header": [],
- "tableView": false,
- "type": "table",
- "hideLabel": true,
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "label": "table",
- "striped": true,
- "bordered": true,
- "hover": true,
- "condensed": true,
- "rows": [
- [
- {
- "components": [
- {
- "input": true,
- "label": "Text",
- "key": "tableText",
- "defaultValue": "",
- "spellcheck": true,
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "tags": [],
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "er2c9a"
- }
- ]
- },
- {
- "components": []
- },
- {
- "components": []
- }
- ],
- [
- {
- "components": []
- },
- {
+ "clearOnHide": false,
+ "key": "well",
+ "input": false,
+ "tableView": false,
+ "type": "well",
+ "hideLabel": true,
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "label": "well",
"components": [
- {
- "input": true,
- "label": "Text",
- "key": "tableText2",
- "defaultValue": "",
- "spellcheck": true,
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "tags": [],
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "en7wvhq"
- }
- ]
- },
- {
- "components": []
- }
- ],
- [
- {
- "components": []
- },
- {
- "components": []
- },
- {
+ {
+ "input": true,
+ "label": "Text",
+ "key": "wellText",
+ "defaultValue": "",
+ "spellcheck": true,
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "type": "textfield",
+ "tags": [],
+ "properties": {},
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "eqpem4"
+ }
+ ],
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false
+ },
+ "tree": true,
+ "id": "erlth3f"
+ },
+ {
"components": [
- {
- "input": true,
- "label": "Text",
- "key": "tableText3",
- "defaultValue": "",
- "spellcheck": true,
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
+ {
+ "label": "Tab 1",
+ "key": "tab1",
+ "components": [
+ {
+ "label": "Time",
+ "type": "textfield",
+ "input": true,
+ "key": "time",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "format": "HH:mm",
+ "id": "eal21jc",
+ "tab": 0
+ }
+ ]
},
- "type": "textfield",
- "tags": [],
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "e5x077"
- }
- ]
- }
- ]
- ],
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "tree": true,
- "numRows": 3,
- "numCols": 3,
- "caption": "",
- "id": "e43k6xo"
- },
- {
- "clearOnHide": false,
- "key": "well",
- "input": false,
- "tableView": false,
- "type": "well",
- "hideLabel": true,
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "label": "well",
- "components": [
- {
- "input": true,
- "label": "Text",
- "key": "wellText",
- "defaultValue": "",
- "spellcheck": true,
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "type": "textfield",
- "tags": [],
- "properties": {},
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "eqpem4"
- }
- ],
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "tree": true,
- "id": "erlth3f"
- },
- {
- "components": [
- {
- "label": "Tab 1",
- "key": "tab1",
- "components": [
- {
- "label": "Time",
- "type": "textfield",
- "input": true,
- "key": "time",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
+ {
+ "label": "Tab2",
+ "key": "tab2",
+ "components": [
+ {
+ "label": "Time2",
+ "type": "textfield",
+ "input": true,
+ "key": "time2",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "format": "HH:mm",
+ "id": "eal21jc",
+ "tab": 1
+ }
+ ]
+ }
+ ],
+ "label": "Tabs",
+ "mask": false,
+ "type": "tabs",
+ "input": false,
+ "key": "tabs",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "clearOnHide": true,
+ "tableView": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
"required": false,
"custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "conditional": {
+ "customPrivate": false
+ },
+ "conditional": {
"show": null,
"when": null,
"eq": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "format": "HH:mm",
- "id": "eal21jc",
- "tab": 0
- }
- ]
+ },
+ "tree": true,
+ "id": "eedr07"
},
{
- "label": "Tab2",
- "key": "tab2",
- "components": [
- {
- "label": "Time2",
- "type": "textfield",
- "input": true,
- "key": "time2",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
+ "input": true,
+ "label": "Submit",
+ "tableView": false,
+ "key": "submit",
+ "theme": "primary",
+ "type": "button",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "clearOnHide": true,
+ "labelPosition": "top",
+ "labelWidth": 30,
+ "labelMargin": 3,
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "validate": {
"required": false,
"custom": "",
- "customPrivate": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "conditional": {
+ "customPrivate": false
+ },
+ "conditional": {
"show": null,
"when": null,
"eq": ""
- },
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "format": "HH:mm",
- "id": "eal21jc",
- "tab": 1
- }
- ]
+ },
+ "size": "md",
+ "leftIcon": "",
+ "rightIcon": "",
+ "block": false,
+ "action": "submit",
+ "disableOnInvalid": false,
+ "id": "e0vxv7"
+ }
+ ],
+ "revisions": "",
+ "_vid": 0,
+ "_id": "5b197eec581f6132158a56f0",
+ "title": "Layout",
+ "display": "form",
+ "access": [
+ {
+ "roles": [],
+ "type": "create_own"
+ },
+ {
+ "roles": [],
+ "type": "create_all"
+ },
+ {
+ "roles": [],
+ "type": "read_own"
+ },
+ {
+ "roles": [
+ "5692b920d1028f01000407e4",
+ "5692b920d1028f01000407e5",
+ "5692b920d1028f01000407e6"
+ ],
+ "type": "read_all"
+ },
+ {
+ "roles": [],
+ "type": "update_own"
+ },
+ {
+ "roles": [],
+ "type": "update_all"
+ },
+ {
+ "roles": [],
+ "type": "delete_own"
+ },
+ {
+ "roles": [],
+ "type": "delete_all"
+ },
+ {
+ "roles": [],
+ "type": "team_read"
+ },
+ {
+ "roles": [],
+ "type": "team_write"
+ },
+ {
+ "roles": [],
+ "type": "team_admin"
+ }
+ ],
+ "submissionAccess": [
+ {
+ "roles": [],
+ "type": "create_own"
+ },
+ {
+ "roles": [],
+ "type": "create_all"
+ },
+ {
+ "roles": [],
+ "type": "read_own"
+ },
+ {
+ "roles": ["5692b920d1028f01000407e6"],
+ "type": "read_all"
+ },
+ {
+ "roles": [],
+ "type": "update_own"
+ },
+ {
+ "roles": ["5692b920d1028f01000407e6"],
+ "type": "update_all"
+ },
+ {
+ "roles": [],
+ "type": "delete_own"
+ },
+ {
+ "roles": [],
+ "type": "delete_all"
+ },
+ {
+ "roles": [],
+ "type": "team_read"
+ },
+ {
+ "roles": [],
+ "type": "team_write"
+ },
+ {
+ "roles": [],
+ "type": "team_admin"
}
- ],
- "label": "Tabs",
- "mask": false,
- "type": "tabs",
- "input": false,
- "key": "tabs",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": true,
- "tableView": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "tree": true,
- "id": "eedr07"
- },
- {
- "input": true,
- "label": "Submit",
- "tableView": false,
- "key": "submit",
- "theme": "primary",
- "type": "button",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": true,
- "labelPosition": "top",
- "labelWidth": 30,
- "labelMargin": 3,
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "size": "md",
- "leftIcon": "",
- "rightIcon": "",
- "block": false,
- "action": "submit",
- "disableOnInvalid": false,
- "id": "e0vxv7"
- }
- ],
- "revisions": "",
- "_vid": 0,
- "_id": "5b197eec581f6132158a56f0",
- "title": "Layout",
- "display": "form",
- "access": [
- {
- "roles": [],
- "type": "create_own"
- },
- {
- "roles": [],
- "type": "create_all"
- },
- {
- "roles": [],
- "type": "read_own"
- },
- {
- "roles": [
- "5692b920d1028f01000407e4",
- "5692b920d1028f01000407e5",
- "5692b920d1028f01000407e6"
- ],
- "type": "read_all"
- },
- {
- "roles": [],
- "type": "update_own"
- },
- {
- "roles": [],
- "type": "update_all"
- },
- {
- "roles": [],
- "type": "delete_own"
- },
- {
- "roles": [],
- "type": "delete_all"
- },
- {
- "roles": [],
- "type": "team_read"
- },
- {
- "roles": [],
- "type": "team_write"
- },
- {
- "roles": [],
- "type": "team_admin"
- }
- ],
- "submissionAccess": [
- {
- "roles": [],
- "type": "create_own"
- },
- {
- "roles": [],
- "type": "create_all"
- },
- {
- "roles": [],
- "type": "read_own"
- },
- {
- "roles": [
- "5692b920d1028f01000407e6"
- ],
- "type": "read_all"
- },
- {
- "roles": [],
- "type": "update_own"
- },
- {
- "roles": [
- "5692b920d1028f01000407e6"
- ],
- "type": "update_all"
- },
- {
- "roles": [],
- "type": "delete_own"
- },
- {
- "roles": [],
- "type": "delete_all"
- },
- {
- "roles": [],
- "type": "team_read"
- },
- {
- "roles": [],
- "type": "team_write"
- },
- {
- "roles": [],
- "type": "team_admin"
- }
- ],
- "settings": {},
- "name": "layout",
- "path": "layout",
- "project": "5692b91fd1028f01000407e3",
- "created": "2018-06-07T18:52:28.252Z",
- "modified": "2018-08-03T03:13:03.645Z",
- "machineName": "examples:layout"
+ ],
+ "settings": {},
+ "name": "layout",
+ "path": "layout",
+ "project": "5692b91fd1028f01000407e3",
+ "created": "2018-06-07T18:52:28.252Z",
+ "modified": "2018-08-03T03:13:03.645Z",
+ "machineName": "examples:layout"
}
diff --git a/test/formtest/manualOverride.json b/test/formtest/manualOverride.json
index baef507e58..181c9dc393 100644
--- a/test/formtest/manualOverride.json
+++ b/test/formtest/manualOverride.json
@@ -1,52 +1,55 @@
{
- "type": "form",
- "components": [{
- "label": "Number1",
- "mask": false,
- "spellcheck": true,
- "tableView": false,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "calculateServer": false,
- "validate": {
- "required": true
- },
- "key": "number1",
- "type": "number",
- "input": true
- }, {
- "label": "Number2",
- "mask": false,
- "spellcheck": true,
- "tableView": false,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "calculateValue": {
- "_camelCase": {
- "var": "row.number1"
- }
- },
- "calculateServer": false,
- "allowCalculateOverride": true,
- "validate": {
- "required": true
- },
- "key": "number2",
- "type": "number",
- "input": true
- }, {
- "label": "Submit",
- "showValidations": false,
- "tableView": false,
- "key": "submit",
- "type": "button",
- "input": true
- }],
- "title": "manualOverrideTest",
- "display": "form",
- "name": "manualOverrideTest",
- "path": "manualoverridetest"
+ "type": "form",
+ "components": [
+ {
+ "label": "Number1",
+ "mask": false,
+ "spellcheck": true,
+ "tableView": false,
+ "delimiter": false,
+ "requireDecimal": false,
+ "inputFormat": "plain",
+ "calculateServer": false,
+ "validate": {
+ "required": true
+ },
+ "key": "number1",
+ "type": "number",
+ "input": true
+ },
+ {
+ "label": "Number2",
+ "mask": false,
+ "spellcheck": true,
+ "tableView": false,
+ "delimiter": false,
+ "requireDecimal": false,
+ "inputFormat": "plain",
+ "calculateValue": {
+ "_camelCase": {
+ "var": "row.number1"
+ }
+ },
+ "calculateServer": false,
+ "allowCalculateOverride": true,
+ "validate": {
+ "required": true
+ },
+ "key": "number2",
+ "type": "number",
+ "input": true
+ },
+ {
+ "label": "Submit",
+ "showValidations": false,
+ "tableView": false,
+ "key": "submit",
+ "type": "button",
+ "input": true
+ }
+ ],
+ "title": "manualOverrideTest",
+ "display": "form",
+ "name": "manualOverrideTest",
+ "path": "manualoverridetest"
}
-
diff --git a/test/formtest/modalEditComponents.json b/test/formtest/modalEditComponents.json
index 2211e2739e..c091ae4e37 100644
--- a/test/formtest/modalEditComponents.json
+++ b/test/formtest/modalEditComponents.json
@@ -1,89 +1,87 @@
{
- "type": "form",
- "components": [
- {
- "label": "Checkbox",
- "tableView": false,
- "modalEdit": true,
- "defaultValue": false,
- "key": "checkbox",
- "type": "checkbox",
- "input": true
- },
- {
- "label": "TextField",
- "tableView": false,
- "modalEdit": true,
- "defaultValue": "",
- "key": "textfield",
- "type": "textfield",
- "input": true
- },
- {
- "label": "Select Boxes",
- "optionsLabelPosition": "right",
- "tableView": false,
- "modalEdit": true,
- "defaultValue": {
- "": false,
- "a": false,
- "b": false
- },
- "values": [
+ "type": "form",
+ "components": [
{
- "label": "a",
- "value": "a",
- "shortcut": ""
+ "label": "Checkbox",
+ "tableView": false,
+ "modalEdit": true,
+ "defaultValue": false,
+ "key": "checkbox",
+ "type": "checkbox",
+ "input": true
},
{
- "label": "b",
- "value": "b",
- "shortcut": ""
- }
- ],
- "key": "selectBoxes",
- "type": "selectboxes",
- "input": true,
- "inputType": "checkbox"
- },
- {
- "label": "Select",
- "widget": "choicesjs",
- "tableView": true,
- "modalEdit": true,
- "data": {
- "values": [
- {
- "label": "e",
- "value": "e"
- },
- {
- "label": "f",
- "value": "f"
- }
- ]
- },
- "selectThreshold": 0.3,
- "key": "select",
- "type": "select",
- "indexeddb": {
- "filter": {
-
+ "label": "TextField",
+ "tableView": false,
+ "modalEdit": true,
+ "defaultValue": "",
+ "key": "textfield",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "Select Boxes",
+ "optionsLabelPosition": "right",
+ "tableView": false,
+ "modalEdit": true,
+ "defaultValue": {
+ "": false,
+ "a": false,
+ "b": false
+ },
+ "values": [
+ {
+ "label": "a",
+ "value": "a",
+ "shortcut": ""
+ },
+ {
+ "label": "b",
+ "value": "b",
+ "shortcut": ""
+ }
+ ],
+ "key": "selectBoxes",
+ "type": "selectboxes",
+ "input": true,
+ "inputType": "checkbox"
+ },
+ {
+ "label": "Select",
+ "widget": "choicesjs",
+ "tableView": true,
+ "modalEdit": true,
+ "data": {
+ "values": [
+ {
+ "label": "e",
+ "value": "e"
+ },
+ {
+ "label": "f",
+ "value": "f"
+ }
+ ]
+ },
+ "selectThreshold": 0.3,
+ "key": "select",
+ "type": "select",
+ "indexeddb": {
+ "filter": {}
+ },
+ "input": true
+ },
+ {
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
}
- },
- "input": true
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }
- ],
- "title": "FJS-1033: Modal Edit",
- "display": "form",
- "name": "fjs1033ModalEdit",
- "path": "fjs1033modaledit"
+ ],
+ "title": "FJS-1033: Modal Edit",
+ "display": "form",
+ "name": "fjs1033ModalEdit",
+ "path": "fjs1033modaledit"
}
diff --git a/test/formtest/modalTagsComponent.json b/test/formtest/modalTagsComponent.json
index 308cece501..89301fdf3e 100644
--- a/test/formtest/modalTagsComponent.json
+++ b/test/formtest/modalTagsComponent.json
@@ -1,33 +1,33 @@
{
- "type": "form",
- "components": [
- {
- "label": "Tags",
- "labelPosition": "top",
- "modalEdit": true,
- "delimeter": ",",
- "maxTags": 0,
- "storeas": "array",
- "key": "tags",
- "type": "tags",
- "input": true
- },
- {
- "label": "Tags",
- "modalEdit": true,
- "storeas": "string",
- "type": "tags",
- "input": true
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "action": "submit",
- "disableOnInvalid": true,
- "theme": "primary",
- "input": true
- }
- ],
- "display": "form"
+ "type": "form",
+ "components": [
+ {
+ "label": "Tags",
+ "labelPosition": "top",
+ "modalEdit": true,
+ "delimeter": ",",
+ "maxTags": 0,
+ "storeas": "array",
+ "key": "tags",
+ "type": "tags",
+ "input": true
+ },
+ {
+ "label": "Tags",
+ "modalEdit": true,
+ "storeas": "string",
+ "type": "tags",
+ "input": true
+ },
+ {
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "action": "submit",
+ "disableOnInvalid": true,
+ "theme": "primary",
+ "input": true
+ }
+ ],
+ "display": "form"
}
diff --git a/test/formtest/multipleTextareaInsideConditionalComponent.json b/test/formtest/multipleTextareaInsideConditionalComponent.json
index 0105aeca3f..5a83d76cd4 100644
--- a/test/formtest/multipleTextareaInsideConditionalComponent.json
+++ b/test/formtest/multipleTextareaInsideConditionalComponent.json
@@ -1,107 +1,105 @@
{
- "components": [
- {
- "label": "Columns",
- "columns": [
+ "components": [
{
- "components": [
- {
- "label": "Issues",
- "tableView": false,
- "key": "issues",
- "type": "well",
- "input": false,
- "components": [
+ "label": "Columns",
+ "columns": [
{
- "label": "Behavioral issues",
- "optionsLabelPosition": "right",
- "description": "Did any behavioral issues occur on your shift?",
- "inline": true,
- "tableView": false,
- "values": [
- {
- "label": "Yes",
- "value": "yes",
- "shortcut": ""
+ "components": [
+ {
+ "label": "Issues",
+ "tableView": false,
+ "key": "issues",
+ "type": "well",
+ "input": false,
+ "components": [
+ {
+ "label": "Behavioral issues",
+ "optionsLabelPosition": "right",
+ "description": "Did any behavioral issues occur on your shift?",
+ "inline": true,
+ "tableView": false,
+ "values": [
+ {
+ "label": "Yes",
+ "value": "yes",
+ "shortcut": ""
+ },
+ {
+ "label": "No",
+ "value": "no",
+ "shortcut": ""
+ }
+ ],
+ "calculateServer": false,
+ "validate": {
+ "required": true
+ },
+ "key": "didAnyBehavioralIssuesOccurOnYourShift",
+ "type": "radio",
+ "input": true,
+ "hideOnChildrenHidden": false
+ }
+ ],
+ "hideOnChildrenHidden": false
+ }
+ ],
+ "width": 6,
+ "offset": 0,
+ "push": 0,
+ "pull": 0,
+ "size": "md"
+ }
+ ],
+ "tableView": false,
+ "key": "columns3",
+ "type": "columns",
+ "input": false
+ },
+ {
+ "title": "Behavioral Issues:",
+ "theme": "info",
+ "collapsible": false,
+ "tableView": false,
+ "key": "behavioralIssues",
+ "conditional": {
+ "show": true,
+ "when": "didAnyBehavioralIssuesOccurOnYourShift",
+ "eq": "yes"
+ },
+ "type": "panel",
+ "label": "Behavioral Issues:",
+ "input": false,
+ "components": [
+ {
+ "label": "Client Name/Behavioral Issue:(use one line per client/ issue. Click +Add Another for a new line)",
+ "placeholder": "Example: John D / was talking about leaving AMA",
+ "description": "Use each field to enter client/issue separately. If mulitple clients are involved with same the issue, use the same field to describe.",
+ "autoExpand": true,
+ "spellcheck": true,
+ "tableView": true,
+ "multiple": true,
+ "defaultValue": [""],
+ "calculateServer": false,
+ "validate": {
+ "multiple": true
},
- {
- "label": "No",
- "value": "no",
- "shortcut": ""
- }
- ],
- "calculateServer": false,
- "validate": {
- "required": true
- },
- "key": "didAnyBehavioralIssuesOccurOnYourShift",
- "type": "radio",
- "input": true,
- "hideOnChildrenHidden": false
+ "type": "textarea",
+ "rows": 2,
+ "input": true,
+ "key": "textArea2"
}
- ],
- "hideOnChildrenHidden": false
- }
- ],
- "width": 6,
- "offset": 0,
- "push": 0,
- "pull": 0,
- "size": "md"
- }
- ],
- "tableView": false,
- "key": "columns3",
- "type": "columns",
- "input": false
- },
- {
- "title": "Behavioral Issues:",
- "theme": "info",
- "collapsible": false,
- "tableView": false,
- "key": "behavioralIssues",
- "conditional": {
- "show": true,
- "when": "didAnyBehavioralIssuesOccurOnYourShift",
- "eq": "yes"
- },
- "type": "panel",
- "label": "Behavioral Issues:",
- "input": false,
- "components": [
+ ]
+ },
{
- "label": "Client Name/Behavioral Issue:(use one line per client/ issue. Click +Add Another for a new line)",
- "placeholder": "Example: John D / was talking about leaving AMA",
- "description": "Use each field to enter client/issue separately. If mulitple clients are involved with same the issue, use the same field to describe.",
- "autoExpand": true,
- "spellcheck": true,
- "tableView": true,
- "multiple": true,
- "defaultValue": [
- ""
- ],
- "calculateServer": false,
- "validate": {
- "multiple": true
- },
- "type": "textarea",
- "rows": 2,
- "input": true,
- "key": "textArea2"
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
}
- ]
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }
- ],
- "title": "FJS-1118 Collapsed Panels",
- "display": "form",
- "name": "fjs1118CollapsedPanels"
-}
\ No newline at end of file
+ ],
+ "title": "FJS-1118 Collapsed Panels",
+ "display": "form",
+ "name": "fjs1118CollapsedPanels"
+}
diff --git a/test/formtest/patternValidation.json b/test/formtest/patternValidation.json
index 9a091fcaca..9de8f9ae5d 100644
--- a/test/formtest/patternValidation.json
+++ b/test/formtest/patternValidation.json
@@ -1,23 +1,26 @@
{
- "type": "form",
- "components": [{
- "label": "Text Field",
- "tableView": true,
- "validate": {
- "required": true,
- "pattern": "\\w"
- },
- "key": "textField",
- "type": "textfield",
- "input": true
- }, {
- "label": "Submit",
- "showValidations": false,
- "tableView": false,
- "key": "submit",
- "type": "button",
- "input": true
- }],
+ "type": "form",
+ "components": [
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "validate": {
+ "required": true,
+ "pattern": "\\w"
+ },
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "Submit",
+ "showValidations": false,
+ "tableView": false,
+ "key": "submit",
+ "type": "button",
+ "input": true
+ }
+ ],
"title": "formValidation",
- "display": "form"
+ "display": "form"
}
diff --git a/test/formtest/premium.json b/test/formtest/premium.json
index 96c83ca48d..e1689da461 100644
--- a/test/formtest/premium.json
+++ b/test/formtest/premium.json
@@ -1,298 +1,296 @@
{
- "type": "form",
- "tags": [],
- "owner": "55673dc04f0405dd28205bb7",
- "components": [
- {
- "autofocus": false,
- "input": true,
- "tableView": true,
- "label": "Files",
- "key": "files",
- "image": false,
- "imageSize": "200",
- "placeholder": "",
- "multiple": false,
- "defaultValue": "",
- "protected": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "filePattern": "*",
- "fileMinSize": "0KB",
- "fileMaxSize": "1GB",
- "type": "file",
- "labelPosition": "top",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "storage": "base64"
- },
- {
- "autofocus": false,
- "input": true,
- "tableView": true,
- "label": "file",
- "key": "file",
- "image": true,
- "imageSize": "200",
- "placeholder": "",
- "multiple": true,
- "defaultValue": "",
- "protected": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "filePattern": "*",
- "fileMinSize": "0KB",
- "fileMaxSize": "1GB",
- "type": "file",
- "labelPosition": "top",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "hideLabel": true,
- "storage": "base64",
- "url": "http://google.com"
- },
- {
- "clearOnHide": true,
- "input": true,
- "tableView": true,
- "key": "formField",
- "src": "",
- "reference": true,
- "form": "5692b920d1028f01000407e7",
- "path": "formField",
- "label": "formField",
- "protected": false,
- "unique": false,
- "persistent": true,
- "type": "form",
- "project": "examples",
- "labelPosition": "top",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "properties": {},
- "hideLabel": true,
- "components": [
+ "type": "form",
+ "tags": [],
+ "owner": "55673dc04f0405dd28205bb7",
+ "components": [
{
- "type": "email",
- "persistent": true,
- "unique": false,
- "protected": false,
- "defaultValue": "",
- "suffix": "",
- "prefix": "",
- "placeholder": "Enter your email address",
- "key": "email",
- "label": "Email",
- "inputType": "email",
- "tableView": true,
- "input": true,
- "kickbox": {
- "enabled": false
- }
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "label": "Files",
+ "key": "files",
+ "image": false,
+ "imageSize": "200",
+ "placeholder": "",
+ "multiple": false,
+ "defaultValue": "",
+ "protected": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "filePattern": "*",
+ "fileMinSize": "0KB",
+ "fileMaxSize": "1GB",
+ "type": "file",
+ "labelPosition": "top",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "storage": "base64"
},
{
- "type": "password",
- "persistent": true,
- "protected": true,
- "suffix": "",
- "prefix": "",
- "placeholder": "Enter your password.",
- "key": "password",
- "label": "Password",
- "inputType": "password",
- "tableView": false,
- "input": true
+ "autofocus": false,
+ "input": true,
+ "tableView": true,
+ "label": "file",
+ "key": "file",
+ "image": true,
+ "imageSize": "200",
+ "placeholder": "",
+ "multiple": true,
+ "defaultValue": "",
+ "protected": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "filePattern": "*",
+ "fileMinSize": "0KB",
+ "fileMaxSize": "1GB",
+ "type": "file",
+ "labelPosition": "top",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "hideLabel": true,
+ "storage": "base64",
+ "url": "http://google.com"
},
{
- "input": true,
- "inputType": "checkbox",
- "tableView": true,
- "hideLabel": true,
- "label": "Valid",
- "key": "valid",
- "defaultValue": false,
- "protected": false,
- "persistent": true,
- "validate": {
- "required": false
- },
- "type": "checkbox",
- "tags": [],
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- }
+ "clearOnHide": true,
+ "input": true,
+ "tableView": true,
+ "key": "formField",
+ "src": "",
+ "reference": true,
+ "form": "5692b920d1028f01000407e7",
+ "path": "formField",
+ "label": "formField",
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "type": "form",
+ "project": "examples",
+ "labelPosition": "top",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "properties": {},
+ "hideLabel": true,
+ "components": [
+ {
+ "type": "email",
+ "persistent": true,
+ "unique": false,
+ "protected": false,
+ "defaultValue": "",
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "Enter your email address",
+ "key": "email",
+ "label": "Email",
+ "inputType": "email",
+ "tableView": true,
+ "input": true,
+ "kickbox": {
+ "enabled": false
+ }
+ },
+ {
+ "type": "password",
+ "persistent": true,
+ "protected": true,
+ "suffix": "",
+ "prefix": "",
+ "placeholder": "Enter your password.",
+ "key": "password",
+ "label": "Password",
+ "inputType": "password",
+ "tableView": false,
+ "input": true
+ },
+ {
+ "input": true,
+ "inputType": "checkbox",
+ "tableView": true,
+ "hideLabel": true,
+ "label": "Valid",
+ "key": "valid",
+ "defaultValue": false,
+ "protected": false,
+ "persistent": true,
+ "validate": {
+ "required": false
+ },
+ "type": "checkbox",
+ "tags": [],
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ }
+ },
+ {
+ "type": "button",
+ "theme": "primary",
+ "disableOnInvalid": true,
+ "action": "submit",
+ "block": false,
+ "rightIcon": "",
+ "leftIcon": "",
+ "size": "md",
+ "key": "submit",
+ "tableView": false,
+ "label": "Submit",
+ "input": true
+ }
+ ]
},
{
- "type": "button",
- "theme": "primary",
- "disableOnInvalid": true,
- "action": "submit",
- "block": false,
- "rightIcon": "",
- "leftIcon": "",
- "size": "md",
- "key": "submit",
- "tableView": false,
- "label": "Submit",
- "input": true
+ "type": "custom",
+ "key": "custom",
+ "conditional": {
+ "show": "",
+ "when": null,
+ "eq": ""
+ },
+ "protected": false,
+ "persistent": true,
+ "label": "custom",
+ "hideLabel": true
+ },
+ {
+ "autofocus": false,
+ "input": true,
+ "label": "Submit",
+ "tableView": false,
+ "key": "submit",
+ "size": "md",
+ "leftIcon": "",
+ "rightIcon": "",
+ "block": false,
+ "action": "submit",
+ "disableOnInvalid": false,
+ "theme": "primary",
+ "type": "button"
+ }
+ ],
+ "revisions": "",
+ "_vid": 0,
+ "_id": "5b299d88fd8cb38273aa3521",
+ "title": "Premium",
+ "display": "form",
+ "access": [
+ {
+ "roles": [],
+ "type": "create_own"
+ },
+ {
+ "roles": [],
+ "type": "create_all"
+ },
+ {
+ "roles": [],
+ "type": "read_own"
+ },
+ {
+ "roles": [
+ "5692b920d1028f01000407e4",
+ "5692b920d1028f01000407e5",
+ "5692b920d1028f01000407e6"
+ ],
+ "type": "read_all"
+ },
+ {
+ "roles": [],
+ "type": "update_own"
+ },
+ {
+ "roles": [],
+ "type": "update_all"
+ },
+ {
+ "roles": [],
+ "type": "delete_own"
+ },
+ {
+ "roles": [],
+ "type": "delete_all"
+ },
+ {
+ "roles": [],
+ "type": "team_read"
+ },
+ {
+ "roles": [],
+ "type": "team_write"
+ },
+ {
+ "roles": [],
+ "type": "team_admin"
+ }
+ ],
+ "submissionAccess": [
+ {
+ "roles": [],
+ "type": "create_own"
+ },
+ {
+ "roles": [],
+ "type": "create_all"
+ },
+ {
+ "roles": [],
+ "type": "read_own"
+ },
+ {
+ "roles": ["5692b920d1028f01000407e6"],
+ "type": "read_all"
+ },
+ {
+ "roles": [],
+ "type": "update_own"
+ },
+ {
+ "roles": [],
+ "type": "update_all"
+ },
+ {
+ "roles": [],
+ "type": "delete_own"
+ },
+ {
+ "roles": [],
+ "type": "delete_all"
+ },
+ {
+ "roles": [],
+ "type": "team_read"
+ },
+ {
+ "roles": [],
+ "type": "team_write"
+ },
+ {
+ "roles": [],
+ "type": "team_admin"
}
- ]
- },
- {
- "type": "custom",
- "key": "custom",
- "conditional": {
- "show": "",
- "when": null,
- "eq": ""
- },
- "protected": false,
- "persistent": true,
- "label": "custom",
- "hideLabel": true
- },
- {
- "autofocus": false,
- "input": true,
- "label": "Submit",
- "tableView": false,
- "key": "submit",
- "size": "md",
- "leftIcon": "",
- "rightIcon": "",
- "block": false,
- "action": "submit",
- "disableOnInvalid": false,
- "theme": "primary",
- "type": "button"
- }
- ],
- "revisions": "",
- "_vid": 0,
- "_id": "5b299d88fd8cb38273aa3521",
- "title": "Premium",
- "display": "form",
- "access": [
- {
- "roles": [],
- "type": "create_own"
- },
- {
- "roles": [],
- "type": "create_all"
- },
- {
- "roles": [],
- "type": "read_own"
- },
- {
- "roles": [
- "5692b920d1028f01000407e4",
- "5692b920d1028f01000407e5",
- "5692b920d1028f01000407e6"
- ],
- "type": "read_all"
- },
- {
- "roles": [],
- "type": "update_own"
- },
- {
- "roles": [],
- "type": "update_all"
- },
- {
- "roles": [],
- "type": "delete_own"
- },
- {
- "roles": [],
- "type": "delete_all"
- },
- {
- "roles": [],
- "type": "team_read"
- },
- {
- "roles": [],
- "type": "team_write"
- },
- {
- "roles": [],
- "type": "team_admin"
- }
- ],
- "submissionAccess": [
- {
- "roles": [],
- "type": "create_own"
- },
- {
- "roles": [],
- "type": "create_all"
- },
- {
- "roles": [],
- "type": "read_own"
- },
- {
- "roles": [
- "5692b920d1028f01000407e6"
- ],
- "type": "read_all"
- },
- {
- "roles": [],
- "type": "update_own"
- },
- {
- "roles": [],
- "type": "update_all"
- },
- {
- "roles": [],
- "type": "delete_own"
- },
- {
- "roles": [],
- "type": "delete_all"
- },
- {
- "roles": [],
- "type": "team_read"
- },
- {
- "roles": [],
- "type": "team_write"
- },
- {
- "roles": [],
- "type": "team_admin"
- }
- ],
- "settings": {},
- "name": "premium",
- "path": "premium",
- "project": "5692b91fd1028f01000407e3",
- "created": "2018-06-20T00:19:20.460Z",
- "modified": "2018-07-10T17:27:01.390Z",
- "machineName": "examples:premium"
+ ],
+ "settings": {},
+ "name": "premium",
+ "path": "premium",
+ "project": "5692b91fd1028f01000407e3",
+ "created": "2018-06-20T00:19:20.460Z",
+ "modified": "2018-07-10T17:27:01.390Z",
+ "machineName": "examples:premium"
}
diff --git a/test/formtest/propertyActions.json b/test/formtest/propertyActions.json
index 1e7100c62c..10768e9c5e 100644
--- a/test/formtest/propertyActions.json
+++ b/test/formtest/propertyActions.json
@@ -1,133 +1,133 @@
{
- "type": "form",
- "components": [
- {
- "label": "Text Field",
- "tableView": true,
- "key": "textField",
- "logic": [
+ "type": "form",
+ "components": [
{
- "name": "On Click Button",
- "trigger": {
- "type": "event",
- "event": "disabled"
- },
- "actions": [
- {
- "name": "Disabled Action on text field",
- "type": "property",
- "property": {
- "label": "Disabled",
- "value": "disabled",
- "type": "boolean"
- },
- "state": true
- }
- ]
- }
- ],
- "type": "textfield",
- "input": true
- },
- {
- "label": "disabled",
- "action": "event",
- "showValidations": false,
- "theme": "info",
- "tableView": false,
- "key": "test",
- "type": "button",
- "event": "disabled",
- "input": true
- },
- {
- "label": "Text Field",
- "tableView": true,
- "key": "textField1",
- "logic": [
+ "label": "Text Field",
+ "tableView": true,
+ "key": "textField",
+ "logic": [
+ {
+ "name": "On Click Button",
+ "trigger": {
+ "type": "event",
+ "event": "disabled"
+ },
+ "actions": [
+ {
+ "name": "Disabled Action on text field",
+ "type": "property",
+ "property": {
+ "label": "Disabled",
+ "value": "disabled",
+ "type": "boolean"
+ },
+ "state": true
+ }
+ ]
+ }
+ ],
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "disabled",
+ "action": "event",
+ "showValidations": false,
+ "theme": "info",
+ "tableView": false,
+ "key": "test",
+ "type": "button",
+ "event": "disabled",
+ "input": true
+ },
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "key": "textField1",
+ "logic": [
+ {
+ "name": "On Hide",
+ "trigger": {
+ "type": "event",
+ "event": "hide"
+ },
+ "actions": [
+ {
+ "name": "Hide Component",
+ "type": "property",
+ "property": {
+ "label": "Hidden",
+ "value": "hidden",
+ "type": "boolean"
+ },
+ "state": true
+ }
+ ]
+ }
+ ],
+ "type": "textfield",
+ "input": true
+ },
{
- "name": "On Hide",
- "trigger": {
- "type": "event",
+ "label": "Hide",
+ "action": "event",
+ "showValidations": false,
+ "theme": "danger",
+ "tableView": false,
+ "key": "hide",
+ "type": "button",
+ "input": true,
"event": "hide"
- },
- "actions": [
- {
- "name": "Hide Component",
- "type": "property",
- "property": {
- "label": "Hidden",
- "value": "hidden",
- "type": "boolean"
- },
- "state": true
- }
- ]
- }
- ],
- "type": "textfield",
- "input": true
- },
- {
- "label": "Hide",
- "action": "event",
- "showValidations": false,
- "theme": "danger",
- "tableView": false,
- "key": "hide",
- "type": "button",
- "input": true,
- "event": "hide"
- },
- {
- "label": "Text Field",
- "tableView": true,
- "key": "textField2",
- "logic": [
+ },
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "key": "textField2",
+ "logic": [
+ {
+ "name": "On Require",
+ "trigger": {
+ "type": "event",
+ "event": "require"
+ },
+ "actions": [
+ {
+ "name": "Require Component",
+ "type": "property",
+ "property": {
+ "label": "Required",
+ "value": "validate.required",
+ "type": "boolean"
+ },
+ "state": true
+ }
+ ]
+ }
+ ],
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "Require",
+ "action": "event",
+ "showValidations": false,
+ "theme": "success",
+ "tableView": false,
+ "key": "hide1",
+ "type": "button",
+ "event": "require",
+ "input": true
+ },
{
- "name": "On Require",
- "trigger": {
- "type": "event",
- "event": "require"
- },
- "actions": [
- {
- "name": "Require Component",
- "type": "property",
- "property": {
- "label": "Required",
- "value": "validate.required",
- "type": "boolean"
- },
- "state": true
- }
- ]
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
}
- ],
- "type": "textfield",
- "input": true
- },
- {
- "label": "Require",
- "action": "event",
- "showValidations": false,
- "theme": "success",
- "tableView": false,
- "key": "hide1",
- "type": "button",
- "event": "require",
- "input": true
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }
- ],
- "title": "FJS-1180",
- "display": "form",
- "name": "fjs1180"
-}
\ No newline at end of file
+ ],
+ "title": "FJS-1180",
+ "display": "form",
+ "name": "fjs1180"
+}
diff --git a/test/formtest/resourceKeyCamelCase.json b/test/formtest/resourceKeyCamelCase.json
index 4d9ae39dac..30023a3a86 100644
--- a/test/formtest/resourceKeyCamelCase.json
+++ b/test/formtest/resourceKeyCamelCase.json
@@ -1,74 +1,74 @@
{
- "_id": "63523dd8536c941e67a68fcf",
- "title": "5288",
- "name": "5288",
- "path": "5288",
- "type": "form",
- "display": "form",
- "tags": [],
- "access": [
- { "type": "create_own", "roles": [] },
- { "type": "create_all", "roles": [] },
- { "type": "read_own", "roles": [] },
- {
- "type": "read_all",
- "roles": [
- "63293a17a5eec5c8bfbd3874",
- "61029d3c4c9d4e05de74bb29",
- "61029d3c4c9d4e952174bb24",
- "61029d3b4c9d4e72ef74bb1f"
- ]
- },
- { "type": "update_own", "roles": [] },
- { "type": "update_all", "roles": [] },
- { "type": "delete_own", "roles": [] },
- { "type": "delete_all", "roles": [] },
- { "type": "team_read", "roles": [] },
- { "type": "team_write", "roles": [] },
- { "type": "team_admin", "roles": [] }
- ],
- "submissionAccess": [
- { "type": "create_own", "roles": [] },
- { "type": "create_all", "roles": [] },
- { "type": "read_own", "roles": [] },
- { "type": "read_all", "roles": [] },
- { "type": "update_own", "roles": [] },
- { "type": "update_all", "roles": [] },
- { "type": "delete_own", "roles": [] },
- { "type": "delete_all", "roles": [] },
- { "type": "team_read", "roles": [] },
- { "type": "team_write", "roles": [] },
- { "type": "team_admin", "roles": [] }
- ],
- "owner": "6080329e2c806a03c1e15aa4",
- "components": [
- {
- "label": "CalendarID",
- "tableView": true,
- "key": "CalendarID",
- "type": "textfield",
- "input": true,
- "lockKey": true,
- "source": "62a2dbe651c1cca162583427",
- "isNew": true
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }
- ],
- "settings": {},
- "properties": {},
- "project": "61029d3b4c9d4e24e774bb15",
- "controller": "",
- "revisions": "",
- "submissionRevisions": "",
- "_vid": 0,
- "created": "2022-10-21T06:36:08.160Z",
- "modified": "2022-10-21T08:09:00.342Z",
- "machineName": "dev-pvbwkiwgifflcai:5288"
+ "_id": "63523dd8536c941e67a68fcf",
+ "title": "5288",
+ "name": "5288",
+ "path": "5288",
+ "type": "form",
+ "display": "form",
+ "tags": [],
+ "access": [
+ { "type": "create_own", "roles": [] },
+ { "type": "create_all", "roles": [] },
+ { "type": "read_own", "roles": [] },
+ {
+ "type": "read_all",
+ "roles": [
+ "63293a17a5eec5c8bfbd3874",
+ "61029d3c4c9d4e05de74bb29",
+ "61029d3c4c9d4e952174bb24",
+ "61029d3b4c9d4e72ef74bb1f"
+ ]
+ },
+ { "type": "update_own", "roles": [] },
+ { "type": "update_all", "roles": [] },
+ { "type": "delete_own", "roles": [] },
+ { "type": "delete_all", "roles": [] },
+ { "type": "team_read", "roles": [] },
+ { "type": "team_write", "roles": [] },
+ { "type": "team_admin", "roles": [] }
+ ],
+ "submissionAccess": [
+ { "type": "create_own", "roles": [] },
+ { "type": "create_all", "roles": [] },
+ { "type": "read_own", "roles": [] },
+ { "type": "read_all", "roles": [] },
+ { "type": "update_own", "roles": [] },
+ { "type": "update_all", "roles": [] },
+ { "type": "delete_own", "roles": [] },
+ { "type": "delete_all", "roles": [] },
+ { "type": "team_read", "roles": [] },
+ { "type": "team_write", "roles": [] },
+ { "type": "team_admin", "roles": [] }
+ ],
+ "owner": "6080329e2c806a03c1e15aa4",
+ "components": [
+ {
+ "label": "CalendarID",
+ "tableView": true,
+ "key": "CalendarID",
+ "type": "textfield",
+ "input": true,
+ "lockKey": true,
+ "source": "62a2dbe651c1cca162583427",
+ "isNew": true
+ },
+ {
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
+ }
+ ],
+ "settings": {},
+ "properties": {},
+ "project": "61029d3b4c9d4e24e774bb15",
+ "controller": "",
+ "revisions": "",
+ "submissionRevisions": "",
+ "_vid": 0,
+ "created": "2022-10-21T06:36:08.160Z",
+ "modified": "2022-10-21T08:09:00.342Z",
+ "machineName": "dev-pvbwkiwgifflcai:5288"
}
diff --git a/test/formtest/settingErrors.json b/test/formtest/settingErrors.json
index fb7b920dbc..0d46ac8c12 100644
--- a/test/formtest/settingErrors.json
+++ b/test/formtest/settingErrors.json
@@ -1,2072 +1,2072 @@
{
- "type": "form",
- "components": [
- {
- "title": "Layouts",
- "theme": "default",
- "breadcrumb": "default",
- "breadcrumbClickable": true,
- "buttonSettings": {
- "previous": true,
- "cancel": true,
- "next": true
- },
- "tooltip": "",
- "customClass": "",
- "collapsible": false,
- "hidden": false,
- "disabled": false,
- "alwaysEnabled": false,
- "tableView": false,
- "key": "page1",
- "tags": "",
- "properties": {},
- "customConditional": "",
- "conditional": {
- "json": "",
- "show": null,
- "when": null,
- "eq": ""
- },
- "nextPage": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "panel",
- "label": "Page 1",
- "components": [
+ "type": "form",
+ "components": [
{
- "label": "HTML",
- "tag": "p",
- "className": "",
- "attrs": [],
- "content": "Required validation should trigger inside all layout sets",
- "refreshOnChange": false,
- "customClass": "",
- "hidden": false,
- "tableView": false,
- "key": "html",
- "tags": "",
- "properties": {},
- "conditional": {
- "show": "",
- "when": "",
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "htmlelement",
- "input": false,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": null,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "alwaysEnabled": false,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "id": "ekm42je",
- "modalEdit": false
- },
- {
- "title": "Panel",
- "theme": "default",
- "breadcrumb": "default",
- "breadcrumbClickable": true,
- "buttonSettings": {
- "previous": true,
- "cancel": true,
- "next": true
- },
- "tooltip": "",
- "customClass": "",
- "collapsible": false,
- "hidden": false,
- "disabled": false,
- "alwaysEnabled": false,
- "tableView": false,
- "key": "panel1",
- "tags": "",
- "properties": {},
- "customConditional": "",
- "conditional": {
- "json": "",
- "show": null,
- "when": null,
- "eq": ""
- },
- "nextPage": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "panel",
- "label": "Panel",
- "input": false,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "clearOnHide": false,
- "refreshOn": "",
- "redrawOn": "",
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "hideLabel": false,
- "tabindex": "",
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": null,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "tree": false,
- "components": [
- {
- "label": "Text Field - Panel",
- "labelPosition": "top",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "prefix": "",
- "suffix": "",
- "widget": {
- "type": "input"
- },
- "inputMask": "",
- "allowMultipleMasks": false,
- "customClass": "",
- "tabindex": "",
- "hidden": false,
- "hideLabel": false,
- "showWordCount": false,
- "showCharCount": false,
- "mask": false,
- "autofocus": false,
- "disabled": false,
- "alwaysEnabled": false,
- "tableView": true,
- "multiple": false,
- "defaultValue": "",
- "persistent": true,
- "inputFormat": "plain",
- "protected": false,
- "dbIndex": false,
- "case": "",
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": true,
- "pattern": "",
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "minLength": 4,
- "maxLength": "",
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "unique": false,
- "errorLabel": "",
- "key": "textField",
- "tags": "",
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "textfield",
- "input": true,
- "refreshOn": "",
- "inputType": "text",
- "id": "eqwesug",
- "modalEdit": false
+ "title": "Layouts",
+ "theme": "default",
+ "breadcrumb": "default",
+ "breadcrumbClickable": true,
+ "buttonSettings": {
+ "previous": true,
+ "cancel": true,
+ "next": true
},
- {
- "label": "Number",
- "labelPosition": "top",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "prefix": "",
- "suffix": "",
- "widget": {
- "type": "input"
- },
- "customClass": "",
- "tabindex": "",
- "hidden": false,
- "hideLabel": false,
- "mask": false,
- "autofocus": false,
- "disabled": false,
- "alwaysEnabled": false,
- "tableView": false,
- "multiple": false,
- "defaultValue": "",
- "persistent": true,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "protected": false,
- "dbIndex": false,
- "case": "",
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": true,
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
+ "tooltip": "",
+ "customClass": "",
+ "collapsible": false,
+ "hidden": false,
+ "disabled": false,
+ "alwaysEnabled": false,
+ "tableView": false,
+ "key": "page1",
+ "tags": "",
+ "properties": {},
+ "customConditional": "",
+ "conditional": {
"json": "",
- "min": "",
- "max": "",
- "strictDateValidation": false,
- "step": "any",
- "integer": "",
- "multiple": false,
- "unique": false
- },
- "errorLabel": "",
- "key": "number",
- "tags": "",
- "properties": {},
- "conditional": {
"show": null,
"when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
+ "eq": ""
+ },
+ "nextPage": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
"style": "",
"page": "",
"left": "",
"top": "",
"width": "",
"height": ""
- },
- "type": "number",
- "input": true,
- "unique": false,
- "refreshOn": "",
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "id": "egpydj",
- "modalEdit": false
},
- {
- "label": "Columns",
- "columns": [
+ "type": "panel",
+ "label": "Page 1",
+ "components": [
{
- "components": [
- {
- "label": "Select - Column",
- "labelPosition": "top",
- "widget": "choicesjs",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "customClass": "",
- "tabindex": "",
- "hidden": false,
- "hideLabel": false,
- "autofocus": false,
- "disabled": false,
- "alwaysEnabled": false,
- "tableView": true,
- "multiple": false,
- "dataSrc": "resource",
- "defaultValue": "",
- "data": {
- "resource": "5da7730da0aaac0f3b241e9d",
- "json": "",
- "url": "",
- "custom": "",
- "values": []
- },
- "valueProperty": "data.name",
- "dataType": "",
- "template": "
{{ item.data.name }} ",
- "searchEnabled": true,
- "selectThreshold": 0.3,
- "readOnlyValue": false,
- "customOptions": {},
- "persistent": true,
- "protected": false,
- "dbIndex": false,
- "encrypted": false,
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": true,
- "customMessage": "",
+ "label": "HTML",
+ "tag": "p",
+ "className": "",
+ "attrs": [],
+ "content": "Required validation should trigger inside all layout sets",
+ "refreshOnChange": false,
+ "customClass": "",
+ "hidden": false,
+ "tableView": false,
+ "key": "html",
+ "tags": "",
+ "properties": {},
+ "conditional": {
+ "show": "",
+ "when": "",
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "htmlelement",
+ "input": false,
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "clearOnHide": true,
+ "refreshOn": "",
+ "redrawOn": "",
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "widget": null,
+ "validateOn": "change",
+ "validate": {
+ "required": false,
"custom": "",
"customPrivate": false,
- "json": "",
"strictDateValidation": false,
- "select": false,
"multiple": false,
"unique": false
- },
- "unique": false,
- "errorLabel": "",
- "key": "selectColumn",
- "tags": "",
- "properties": {},
- "conditional": {
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "alwaysEnabled": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "id": "ekm42je",
+ "modalEdit": false
+ },
+ {
+ "title": "Panel",
+ "theme": "default",
+ "breadcrumb": "default",
+ "breadcrumbClickable": true,
+ "buttonSettings": {
+ "previous": true,
+ "cancel": true,
+ "next": true
+ },
+ "tooltip": "",
+ "customClass": "",
+ "collapsible": false,
+ "hidden": false,
+ "disabled": false,
+ "alwaysEnabled": false,
+ "tableView": false,
+ "key": "panel1",
+ "tags": "",
+ "properties": {},
+ "customConditional": "",
+ "conditional": {
+ "json": "",
"show": null,
"when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
+ "eq": ""
+ },
+ "nextPage": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
"style": "",
"page": "",
"left": "",
"top": "",
"width": "",
"height": ""
- },
- "type": "select",
- "searchField": "data.name__regex",
- "minSearch": 0,
- "limit": 100,
- "input": true,
- "prefix": "",
- "suffix": "",
- "refreshOn": "",
- "redrawOn": "",
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "clearOnRefresh": false,
- "lazyLoad": true,
- "filter": "",
- "authenticate": false,
- "searchThreshold": 0.3,
- "fuseOptions": {
- "include": "score",
- "threshold": 0.3
- },
- "hideOnChildrenHidden": false,
- "id": "ei01d5w",
- "sort": "",
- "addResource": false,
- "reference": false,
- "selectFields": "",
- "modalEdit": false
- }
- ],
- "width": 6,
- "offset": 0,
- "push": 0,
- "pull": 0
+ },
+ "type": "panel",
+ "label": "Panel",
+ "input": false,
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "clearOnHide": false,
+ "refreshOn": "",
+ "redrawOn": "",
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "widget": null,
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "tree": false,
+ "components": [
+ {
+ "label": "Text Field - Panel",
+ "labelPosition": "top",
+ "placeholder": "",
+ "description": "",
+ "tooltip": "",
+ "prefix": "",
+ "suffix": "",
+ "widget": {
+ "type": "input"
+ },
+ "inputMask": "",
+ "allowMultipleMasks": false,
+ "customClass": "",
+ "tabindex": "",
+ "hidden": false,
+ "hideLabel": false,
+ "showWordCount": false,
+ "showCharCount": false,
+ "mask": false,
+ "autofocus": false,
+ "disabled": false,
+ "alwaysEnabled": false,
+ "tableView": true,
+ "multiple": false,
+ "defaultValue": "",
+ "persistent": true,
+ "inputFormat": "plain",
+ "protected": false,
+ "dbIndex": false,
+ "case": "",
+ "encrypted": false,
+ "redrawOn": "",
+ "clearOnHide": true,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "allowCalculateOverride": false,
+ "validateOn": "change",
+ "validate": {
+ "required": true,
+ "pattern": "",
+ "customMessage": "",
+ "custom": "",
+ "customPrivate": false,
+ "json": "",
+ "minLength": 4,
+ "maxLength": "",
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "unique": false,
+ "errorLabel": "",
+ "key": "textField",
+ "tags": "",
+ "properties": {},
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "textfield",
+ "input": true,
+ "refreshOn": "",
+ "inputType": "text",
+ "id": "eqwesug",
+ "modalEdit": false
+ },
+ {
+ "label": "Number",
+ "labelPosition": "top",
+ "placeholder": "",
+ "description": "",
+ "tooltip": "",
+ "prefix": "",
+ "suffix": "",
+ "widget": {
+ "type": "input"
+ },
+ "customClass": "",
+ "tabindex": "",
+ "hidden": false,
+ "hideLabel": false,
+ "mask": false,
+ "autofocus": false,
+ "disabled": false,
+ "alwaysEnabled": false,
+ "tableView": false,
+ "multiple": false,
+ "defaultValue": "",
+ "persistent": true,
+ "delimiter": false,
+ "requireDecimal": false,
+ "inputFormat": "plain",
+ "protected": false,
+ "dbIndex": false,
+ "case": "",
+ "encrypted": false,
+ "redrawOn": "",
+ "clearOnHide": true,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "allowCalculateOverride": false,
+ "validateOn": "change",
+ "validate": {
+ "required": true,
+ "customMessage": "",
+ "custom": "",
+ "customPrivate": false,
+ "json": "",
+ "min": "",
+ "max": "",
+ "strictDateValidation": false,
+ "step": "any",
+ "integer": "",
+ "multiple": false,
+ "unique": false
+ },
+ "errorLabel": "",
+ "key": "number",
+ "tags": "",
+ "properties": {},
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "number",
+ "input": true,
+ "unique": false,
+ "refreshOn": "",
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "id": "egpydj",
+ "modalEdit": false
+ },
+ {
+ "label": "Columns",
+ "columns": [
+ {
+ "components": [
+ {
+ "label": "Select - Column",
+ "labelPosition": "top",
+ "widget": "choicesjs",
+ "placeholder": "",
+ "description": "",
+ "tooltip": "",
+ "customClass": "",
+ "tabindex": "",
+ "hidden": false,
+ "hideLabel": false,
+ "autofocus": false,
+ "disabled": false,
+ "alwaysEnabled": false,
+ "tableView": true,
+ "multiple": false,
+ "dataSrc": "resource",
+ "defaultValue": "",
+ "data": {
+ "resource": "5da7730da0aaac0f3b241e9d",
+ "json": "",
+ "url": "",
+ "custom": "",
+ "values": []
+ },
+ "valueProperty": "data.name",
+ "dataType": "",
+ "template": "
{{ item.data.name }} ",
+ "searchEnabled": true,
+ "selectThreshold": 0.3,
+ "readOnlyValue": false,
+ "customOptions": {},
+ "persistent": true,
+ "protected": false,
+ "dbIndex": false,
+ "encrypted": false,
+ "clearOnHide": true,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "allowCalculateOverride": false,
+ "validateOn": "change",
+ "validate": {
+ "required": true,
+ "customMessage": "",
+ "custom": "",
+ "customPrivate": false,
+ "json": "",
+ "strictDateValidation": false,
+ "select": false,
+ "multiple": false,
+ "unique": false
+ },
+ "unique": false,
+ "errorLabel": "",
+ "key": "selectColumn",
+ "tags": "",
+ "properties": {},
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "select",
+ "searchField": "data.name__regex",
+ "minSearch": 0,
+ "limit": 100,
+ "input": true,
+ "prefix": "",
+ "suffix": "",
+ "refreshOn": "",
+ "redrawOn": "",
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "clearOnRefresh": false,
+ "lazyLoad": true,
+ "filter": "",
+ "authenticate": false,
+ "searchThreshold": 0.3,
+ "fuseOptions": {
+ "include": "score",
+ "threshold": 0.3
+ },
+ "hideOnChildrenHidden": false,
+ "id": "ei01d5w",
+ "sort": "",
+ "addResource": false,
+ "reference": false,
+ "selectFields": "",
+ "modalEdit": false
+ }
+ ],
+ "width": 6,
+ "offset": 0,
+ "push": 0,
+ "pull": 0
+ },
+ {
+ "components": [
+ {
+ "label": "Checkbox - Column",
+ "description": "",
+ "tooltip": "",
+ "shortcut": "",
+ "inputType": "checkbox",
+ "customClass": "",
+ "tabindex": "",
+ "hidden": false,
+ "hideLabel": false,
+ "autofocus": false,
+ "disabled": false,
+ "alwaysEnabled": false,
+ "tableView": false,
+ "defaultValue": "",
+ "persistent": true,
+ "protected": false,
+ "dbIndex": false,
+ "encrypted": false,
+ "redrawOn": "",
+ "clearOnHide": true,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "allowCalculateOverride": false,
+ "validate": {
+ "required": true,
+ "customMessage": "",
+ "custom": "",
+ "customPrivate": false,
+ "json": "",
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "errorLabel": "",
+ "key": "checkboxColumn",
+ "tags": "",
+ "properties": {},
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "checkbox",
+ "input": true,
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "unique": false,
+ "refreshOn": "",
+ "labelPosition": "right",
+ "widget": null,
+ "validateOn": "change",
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "dataGridLabel": true,
+ "value": "",
+ "name": "",
+ "hideOnChildrenHidden": false,
+ "id": "e76xob8",
+ "modalEdit": false
+ }
+ ],
+ "width": 6,
+ "offset": 0,
+ "push": 0,
+ "pull": 0
+ }
+ ],
+ "autoAdjust": false,
+ "hideOnChildrenHidden": false,
+ "customClass": "",
+ "hidden": false,
+ "hideLabel": false,
+ "alwaysEnabled": false,
+ "tableView": false,
+ "key": "columns",
+ "tags": "",
+ "properties": {},
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "columns",
+ "input": false,
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "clearOnHide": false,
+ "refreshOn": "",
+ "redrawOn": "",
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "widget": null,
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "tree": false,
+ "id": "en3xdal",
+ "path": "columns",
+ "modalEdit": false
+ }
+ ],
+ "id": "erf2hpo",
+ "path": "panel1",
+ "modalEdit": false
},
{
- "components": [
- {
- "label": "Checkbox - Column",
- "description": "",
- "tooltip": "",
- "shortcut": "",
- "inputType": "checkbox",
- "customClass": "",
- "tabindex": "",
- "hidden": false,
- "hideLabel": false,
- "autofocus": false,
- "disabled": false,
- "alwaysEnabled": false,
- "tableView": false,
- "defaultValue": "",
- "persistent": true,
- "protected": false,
- "dbIndex": false,
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "allowCalculateOverride": false,
- "validate": {
- "required": true,
- "customMessage": "",
+ "legend": "FieldSet",
+ "tooltip": "",
+ "customClass": "",
+ "tabindex": "",
+ "hidden": false,
+ "disabled": false,
+ "alwaysEnabled": false,
+ "tableView": false,
+ "key": "fi",
+ "tags": "",
+ "properties": {},
+ "conditional": {
+ "show": "",
+ "when": "",
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "fieldset",
+ "label": "Fi",
+ "input": false,
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "clearOnHide": true,
+ "refreshOn": "",
+ "redrawOn": "",
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "hideLabel": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "widget": null,
+ "validateOn": "change",
+ "validate": {
+ "required": false,
"custom": "",
"customPrivate": false,
- "json": "",
"strictDateValidation": false,
"multiple": false,
"unique": false
- },
- "errorLabel": "",
- "key": "checkboxColumn",
- "tags": "",
- "properties": {},
- "conditional": {
- "show": null,
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "tree": false,
+ "components": [
+ {
+ "label": "Radio - Field Set",
+ "labelPosition": "top",
+ "optionsLabelPosition": "right",
+ "description": "",
+ "tooltip": "",
+ "customClass": "",
+ "tabindex": "",
+ "inline": false,
+ "hidden": false,
+ "hideLabel": false,
+ "autofocus": false,
+ "disabled": false,
+ "alwaysEnabled": false,
+ "tableView": false,
+ "defaultValue": "",
+ "values": [
+ {
+ "label": "a",
+ "value": "a",
+ "shortcut": ""
+ },
+ {
+ "label": "b",
+ "value": "b",
+ "shortcut": ""
+ },
+ {
+ "label": "c",
+ "value": "c",
+ "shortcut": ""
+ }
+ ],
+ "dataType": "",
+ "persistent": true,
+ "protected": false,
+ "dbIndex": false,
+ "encrypted": false,
+ "redrawOn": "",
+ "clearOnHide": true,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "allowCalculateOverride": false,
+ "validate": {
+ "required": true,
+ "customMessage": "",
+ "custom": "",
+ "customPrivate": false,
+ "json": "",
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "errorLabel": "",
+ "key": "radioFieldSet",
+ "tags": "",
+ "properties": {},
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "radio",
+ "input": true,
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "unique": false,
+ "refreshOn": "",
+ "widget": null,
+ "validateOn": "change",
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "inputType": "radio",
+ "fieldSet": false,
+ "id": "e9kdid",
+ "modalEdit": false
+ },
+ {
+ "label": "Phone Number - Fieldset",
+ "labelPosition": "top",
+ "placeholder": "",
+ "description": "",
+ "tooltip": "",
+ "prefix": "",
+ "suffix": "",
+ "widget": {
+ "type": "input"
+ },
+ "inputMask": "(999) 999-9999",
+ "allowMultipleMasks": false,
+ "customClass": "",
+ "tabindex": "",
+ "hidden": false,
+ "hideLabel": false,
+ "mask": false,
+ "autofocus": false,
+ "disabled": false,
+ "alwaysEnabled": false,
+ "tableView": true,
+ "multiple": false,
+ "defaultValue": "",
+ "persistent": true,
+ "inputFormat": "plain",
+ "protected": false,
+ "dbIndex": false,
+ "case": "",
+ "encrypted": false,
+ "redrawOn": "",
+ "clearOnHide": true,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "allowCalculateOverride": false,
+ "validateOn": "change",
+ "validate": {
+ "required": true,
+ "customMessage": "",
+ "custom": "",
+ "customPrivate": false,
+ "json": "",
+ "strictDateValidation": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "multiple": false,
+ "unique": false
+ },
+ "unique": false,
+ "errorLabel": "",
+ "key": "phoneNumberFieldset",
+ "tags": "",
+ "properties": {},
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "phoneNumber",
+ "input": true,
+ "refreshOn": "",
+ "showCharCount": false,
+ "showWordCount": false,
+ "inputType": "tel",
+ "id": "e207ccf",
+ "modalEdit": false
+ },
+ {
+ "label": "Table",
+ "cellAlignment": "left",
+ "customClass": "",
+ "striped": false,
+ "bordered": false,
+ "hover": false,
+ "condensed": false,
+ "hidden": false,
+ "alwaysEnabled": false,
+ "tableView": false,
+ "key": "table",
+ "tags": "",
+ "properties": {},
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "table",
+ "numRows": 2,
+ "numCols": 2,
+ "input": false,
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "clearOnHide": true,
+ "refreshOn": "",
+ "redrawOn": "",
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "widget": null,
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "tree": false,
+ "rows": [
+ [
+ {
+ "components": [
+ {
+ "label": "Date / Time",
+ "labelPosition": "top",
+ "displayInTimezone": "viewer",
+ "useLocaleSettings": false,
+ "allowInput": true,
+ "format": "yyyy-MM-dd hh:mm a",
+ "placeholder": "",
+ "description": "",
+ "tooltip": "",
+ "customClass": "",
+ "tabindex": "",
+ "hidden": false,
+ "hideLabel": false,
+ "autofocus": false,
+ "disabled": false,
+ "alwaysEnabled": false,
+ "tableView": false,
+ "enableDate": true,
+ "datePicker": {
+ "minDate": "",
+ "maxDate": "",
+ "showWeeks": true,
+ "startingDay": 0,
+ "initDate": "",
+ "minMode": "day",
+ "maxMode": "year",
+ "yearRows": 4,
+ "yearColumns": 5
+ },
+ "enableTime": true,
+ "timePicker": {
+ "showMeridian": true,
+ "hourStep": 1,
+ "minuteStep": 1,
+ "readonlyInput": false,
+ "mousewheel": true,
+ "arrowkeys": true
+ },
+ "multiple": false,
+ "defaultValue": "",
+ "persistent": true,
+ "protected": false,
+ "dbIndex": false,
+ "encrypted": false,
+ "redrawOn": "",
+ "clearOnHide": true,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "allowCalculateOverride": false,
+ "validateOn": "change",
+ "validate": {
+ "required": true,
+ "customMessage": "",
+ "custom": "",
+ "customPrivate": false,
+ "json": "",
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "unique": false,
+ "errorLabel": "",
+ "key": "dateTime",
+ "tags": "",
+ "properties": {},
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "datetime",
+ "widget": {
+ "type": "calendar",
+ "displayInTimezone": "viewer",
+ "language": "en",
+ "useLocaleSettings": false,
+ "allowInput": true,
+ "mode": "single",
+ "enableTime": true,
+ "noCalendar": false,
+ "format": "yyyy-MM-dd hh:mm a",
+ "hourIncrement": 1,
+ "minuteIncrement": 1,
+ "time_24hr": false,
+ "minDate": "",
+ "maxDate": ""
+ },
+ "input": true,
+ "prefix": "",
+ "suffix": "
",
+ "refreshOn": "",
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "timezone": "",
+ "datepickerMode": "day",
+ "id": "ekosv4",
+ "modalEdit": false,
+ "defaultDate": "",
+ "customOptions": {}
+ }
+ ]
+ },
+ {
+ "components": [
+ {
+ "label": "Day - Table",
+ "hideInputLabels": false,
+ "inputsLabelPosition": "top",
+ "description": "",
+ "useLocaleSettings": false,
+ "tooltip": "",
+ "customClass": "",
+ "tabindex": "",
+ "hidden": false,
+ "hideLabel": false,
+ "autofocus": false,
+ "disabled": false,
+ "alwaysEnabled": false,
+ "tableView": false,
+ "fields": {
+ "day": {
+ "type": "number",
+ "placeholder": "",
+ "hide": false,
+ "required": true
+ },
+ "month": {
+ "type": "select",
+ "placeholder": "",
+ "hide": false,
+ "required": true
+ },
+ "year": {
+ "type": "number",
+ "placeholder": "",
+ "hide": false,
+ "required": true
+ }
+ },
+ "dayFirst": false,
+ "multiple": false,
+ "defaultValue": "",
+ "persistent": true,
+ "protected": false,
+ "dbIndex": false,
+ "encrypted": false,
+ "redrawOn": "",
+ "clearOnHide": true,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "allowCalculateOverride": false,
+ "validateOn": "change",
+ "maxDate": "",
+ "minDate": "",
+ "unique": false,
+ "errorLabel": "",
+ "validate": {
+ "customMessage": "",
+ "custom": "",
+ "customPrivate": false,
+ "json": "",
+ "required": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "key": "dayTable",
+ "tags": "",
+ "properties": {},
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "day",
+ "input": true,
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "refreshOn": "",
+ "labelPosition": "top",
+ "widget": null,
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "id": "e8hkdot",
+ "modalEdit": false
+ }
+ ]
+ }
+ ],
+ [
+ {
+ "components": [
+ {
+ "label": "Currency - Table",
+ "labelPosition": "top",
+ "placeholder": "",
+ "description": "",
+ "tooltip": "",
+ "prefix": "",
+ "suffix": "",
+ "widget": {
+ "type": "input"
+ },
+ "customClass": "",
+ "tabindex": "",
+ "hidden": false,
+ "hideLabel": false,
+ "mask": false,
+ "autofocus": false,
+ "disabled": false,
+ "alwaysEnabled": false,
+ "tableView": false,
+ "multiple": false,
+ "defaultValue": "",
+ "persistent": true,
+ "currency": "USD",
+ "inputFormat": "plain",
+ "protected": false,
+ "dbIndex": false,
+ "case": "",
+ "encrypted": false,
+ "redrawOn": "",
+ "clearOnHide": true,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "allowCalculateOverride": false,
+ "validateOn": "change",
+ "validate": {
+ "required": true,
+ "customMessage": "",
+ "custom": "",
+ "customPrivate": false,
+ "json": "",
+ "strictDateValidation": false,
+ "min": "",
+ "max": "",
+ "step": "any",
+ "integer": "",
+ "multiple": false,
+ "unique": false
+ },
+ "unique": false,
+ "errorLabel": "",
+ "key": "currencyTable",
+ "tags": "",
+ "properties": {},
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "currency",
+ "input": true,
+ "refreshOn": "",
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "id": "eeu6ij",
+ "delimiter": true,
+ "modalEdit": false
+ }
+ ]
+ }
+ ]
+ ],
+ "header": [],
+ "caption": "",
+ "id": "e8jqmue",
+ "path": "table",
+ "modalEdit": false,
+ "cloneRows": false
+ }
+ ],
+ "id": "eyuz3ba",
+ "path": "fi",
+ "modalEdit": false
+ },
+ {
+ "label": "Well",
+ "customClass": "",
+ "hidden": false,
+ "disabled": false,
+ "alwaysEnabled": false,
+ "tableView": false,
+ "key": "well1",
+ "tags": "",
+ "properties": {},
+ "conditional": {
+ "show": "",
"when": null,
"eq": "",
"json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
"style": "",
"page": "",
"left": "",
"top": "",
"width": "",
"height": ""
- },
- "type": "checkbox",
- "input": true,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "unique": false,
- "refreshOn": "",
- "labelPosition": "right",
- "widget": null,
- "validateOn": "change",
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "dataGridLabel": true,
- "value": "",
- "name": "",
- "hideOnChildrenHidden": false,
- "id": "e76xob8",
- "modalEdit": false
- }
- ],
- "width": 6,
- "offset": 0,
- "push": 0,
- "pull": 0
+ },
+ "type": "well",
+ "input": false,
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "clearOnHide": true,
+ "refreshOn": "",
+ "redrawOn": "",
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "widget": null,
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "tree": false,
+ "components": [
+ {
+ "label": "Email - Well",
+ "labelPosition": "top",
+ "placeholder": "",
+ "description": "",
+ "tooltip": "",
+ "prefix": "",
+ "suffix": "",
+ "widget": {
+ "type": "input"
+ },
+ "customClass": "",
+ "tabindex": "",
+ "hidden": false,
+ "hideLabel": false,
+ "mask": false,
+ "autofocus": false,
+ "disabled": false,
+ "alwaysEnabled": false,
+ "tableView": true,
+ "multiple": false,
+ "defaultValue": "",
+ "persistent": true,
+ "inputFormat": "plain",
+ "protected": false,
+ "dbIndex": false,
+ "case": "",
+ "encrypted": false,
+ "redrawOn": "",
+ "clearOnHide": true,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "allowCalculateOverride": false,
+ "kickbox": {
+ "enabled": false
+ },
+ "validateOn": "change",
+ "validate": {
+ "required": true,
+ "pattern": "",
+ "customMessage": "",
+ "custom": "",
+ "customPrivate": false,
+ "json": "",
+ "minLength": "",
+ "maxLength": "",
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "unique": false,
+ "errorLabel": "",
+ "key": "emailWell",
+ "tags": "",
+ "properties": {},
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "email",
+ "input": true,
+ "refreshOn": "",
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "inputType": "email",
+ "inputMask": "",
+ "content": "",
+ "id": "e2y6bml",
+ "modalEdit": false
+ },
+ {
+ "label": "Address - Well",
+ "labelPosition": "top",
+ "placeholder": "",
+ "description": "",
+ "map": {
+ "region": "",
+ "key": ""
+ },
+ "tooltip": "",
+ "customClass": "",
+ "tabindex": "",
+ "hidden": false,
+ "hideLabel": false,
+ "autofocus": false,
+ "disabled": false,
+ "alwaysEnabled": false,
+ "tableView": true,
+ "multiple": false,
+ "defaultValue": "",
+ "persistent": true,
+ "protected": false,
+ "dbIndex": false,
+ "encrypted": false,
+ "redrawOn": "",
+ "clearOnHide": true,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "allowCalculateOverride": false,
+ "validate": {
+ "required": true,
+ "customMessage": "",
+ "custom": "",
+ "customPrivate": false,
+ "json": "",
+ "strictDateValidation": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": "",
+ "multiple": false,
+ "unique": false
+ },
+ "unique": false,
+ "validateOn": "change",
+ "errorLabel": "",
+ "key": "addressWell",
+ "tags": "",
+ "properties": {},
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "address",
+ "input": true,
+ "prefix": "",
+ "suffix": "",
+ "refreshOn": "",
+ "widget": {
+ "type": "input"
+ },
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "mask": false,
+ "inputType": "text",
+ "inputFormat": "plain",
+ "inputMask": "",
+ "id": "e7zy1zn",
+ "modalEdit": false,
+ "tree": true,
+ "components": [
+ {
+ "label": "Address 1",
+ "tableView": false,
+ "key": "address1",
+ "type": "textfield",
+ "input": true,
+ "customConditional": "show = _.get(instance, 'parent.manualMode', false);",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "refreshOn": "",
+ "redrawOn": "",
+ "modalEdit": false,
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "widget": {
+ "type": "input"
+ },
+ "attributes": {},
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "overlay": {
+ "style": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "properties": {},
+ "allowMultipleMasks": false,
+ "mask": false,
+ "inputType": "text",
+ "inputFormat": "plain",
+ "inputMask": "",
+ "id": "ejjxlgm"
+ },
+ {
+ "label": "Address 2",
+ "tableView": false,
+ "key": "address2",
+ "type": "textfield",
+ "input": true,
+ "customConditional": "show = _.get(instance, 'parent.manualMode', false);",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "refreshOn": "",
+ "redrawOn": "",
+ "modalEdit": false,
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "widget": {
+ "type": "input"
+ },
+ "attributes": {},
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "overlay": {
+ "style": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "properties": {},
+ "allowMultipleMasks": false,
+ "mask": false,
+ "inputType": "text",
+ "inputFormat": "plain",
+ "inputMask": "",
+ "id": "eoq3kyf"
+ },
+ {
+ "label": "City",
+ "tableView": false,
+ "key": "city",
+ "type": "textfield",
+ "input": true,
+ "customConditional": "show = _.get(instance, 'parent.manualMode', false);",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "refreshOn": "",
+ "redrawOn": "",
+ "modalEdit": false,
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "widget": {
+ "type": "input"
+ },
+ "attributes": {},
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "overlay": {
+ "style": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "properties": {},
+ "allowMultipleMasks": false,
+ "mask": false,
+ "inputType": "text",
+ "inputFormat": "plain",
+ "inputMask": "",
+ "id": "e75utzu"
+ },
+ {
+ "label": "State",
+ "tableView": false,
+ "key": "state",
+ "type": "textfield",
+ "input": true,
+ "customConditional": "show = _.get(instance, 'parent.manualMode', false);",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "refreshOn": "",
+ "redrawOn": "",
+ "modalEdit": false,
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "widget": {
+ "type": "input"
+ },
+ "attributes": {},
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "overlay": {
+ "style": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "properties": {},
+ "allowMultipleMasks": false,
+ "mask": false,
+ "inputType": "text",
+ "inputFormat": "plain",
+ "inputMask": "",
+ "id": "e0mjy9"
+ },
+ {
+ "label": "Country",
+ "tableView": false,
+ "key": "country",
+ "type": "textfield",
+ "input": true,
+ "customConditional": "show = _.get(instance, 'parent.manualMode', false);",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "refreshOn": "",
+ "redrawOn": "",
+ "modalEdit": false,
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "widget": {
+ "type": "input"
+ },
+ "attributes": {},
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "overlay": {
+ "style": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "properties": {},
+ "allowMultipleMasks": false,
+ "mask": false,
+ "inputType": "text",
+ "inputFormat": "plain",
+ "inputMask": "",
+ "id": "e6oqf2r"
+ },
+ {
+ "label": "Zip Code",
+ "tableView": false,
+ "key": "zip",
+ "type": "textfield",
+ "input": true,
+ "customConditional": "show = _.get(instance, 'parent.manualMode', false);",
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "refreshOn": "",
+ "redrawOn": "",
+ "modalEdit": false,
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "widget": {
+ "type": "input"
+ },
+ "attributes": {},
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "overlay": {
+ "style": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "properties": {},
+ "allowMultipleMasks": false,
+ "mask": false,
+ "inputType": "text",
+ "inputFormat": "plain",
+ "inputMask": "",
+ "id": "exdf0gt"
+ }
+ ],
+ "switchToManualModeLabel": "Can't find address? Switch to manual mode.",
+ "provider": "",
+ "providerOptions": {},
+ "manualModeViewString": "",
+ "disableClearIcon": false,
+ "enableManualMode": false
+ }
+ ],
+ "id": "extatqf",
+ "path": "well1",
+ "modalEdit": false
}
- ],
- "autoAdjust": false,
- "hideOnChildrenHidden": false,
- "customClass": "",
- "hidden": false,
- "hideLabel": false,
- "alwaysEnabled": false,
- "tableView": false,
- "key": "columns",
- "tags": "",
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "columns",
- "input": false,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "clearOnHide": false,
- "refreshOn": "",
- "redrawOn": "",
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": null,
- "validateOn": "change",
- "validate": {
+ ],
+ "input": false,
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "clearOnHide": false,
+ "refreshOn": "",
+ "redrawOn": "",
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "widget": null,
+ "validateOn": "change",
+ "validate": {
"required": false,
"custom": "",
"customPrivate": false,
"strictDateValidation": false,
"multiple": false,
"unique": false
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "tree": false,
- "id": "en3xdal",
- "path": "columns",
- "modalEdit": false
- }
- ],
- "id": "erf2hpo",
- "path": "panel1",
- "modalEdit": false
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "tree": false,
+ "id": "e3ys8so",
+ "path": "page1",
+ "modalEdit": false
},
{
- "legend": "FieldSet",
- "tooltip": "",
- "customClass": "",
- "tabindex": "",
- "hidden": false,
- "disabled": false,
- "alwaysEnabled": false,
- "tableView": false,
- "key": "fi",
- "tags": "",
- "properties": {},
- "conditional": {
- "show": "",
- "when": "",
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "fieldset",
- "label": "Fi",
- "input": false,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "hideLabel": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": null,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "tree": false,
- "components": [
- {
- "label": "Radio - Field Set",
- "labelPosition": "top",
- "optionsLabelPosition": "right",
- "description": "",
- "tooltip": "",
- "customClass": "",
- "tabindex": "",
- "inline": false,
- "hidden": false,
- "hideLabel": false,
- "autofocus": false,
- "disabled": false,
- "alwaysEnabled": false,
- "tableView": false,
- "defaultValue": "",
- "values": [
- {
- "label": "a",
- "value": "a",
- "shortcut": ""
- },
- {
- "label": "b",
- "value": "b",
- "shortcut": ""
- },
- {
- "label": "c",
- "value": "c",
- "shortcut": ""
- }
- ],
- "dataType": "",
- "persistent": true,
- "protected": false,
- "dbIndex": false,
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "allowCalculateOverride": false,
- "validate": {
- "required": true,
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "errorLabel": "",
- "key": "radioFieldSet",
- "tags": "",
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
+ "label": "Submit",
+ "action": "submit",
+ "showValidations": false,
+ "theme": "primary",
+ "size": "md",
+ "block": false,
+ "leftIcon": "",
+ "rightIcon": "",
+ "shortcut": "",
+ "description": "",
+ "tooltip": "",
+ "customClass": "",
+ "tabindex": "",
+ "disableOnInvalid": false,
+ "hidden": false,
+ "autofocus": false,
+ "disabled": false,
+ "alwaysEnabled": false,
+ "tableView": false,
+ "key": "submit",
+ "tags": "",
+ "properties": {},
+ "conditional": {
+ "show": "",
+ "when": "",
"eq": "",
"json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "radio",
- "input": true,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "unique": false,
- "refreshOn": "",
- "widget": null,
- "validateOn": "change",
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "inputType": "radio",
- "fieldSet": false,
- "id": "e9kdid",
- "modalEdit": false
},
- {
- "label": "Phone Number - Fieldset",
- "labelPosition": "top",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "prefix": "",
- "suffix": "",
- "widget": {
- "type": "input"
- },
- "inputMask": "(999) 999-9999",
- "allowMultipleMasks": false,
- "customClass": "",
- "tabindex": "",
- "hidden": false,
- "hideLabel": false,
- "mask": false,
- "autofocus": false,
- "disabled": false,
- "alwaysEnabled": false,
- "tableView": true,
- "multiple": false,
- "defaultValue": "",
- "persistent": true,
- "inputFormat": "plain",
- "protected": false,
- "dbIndex": false,
- "case": "",
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": true,
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "strictDateValidation": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
- "multiple": false,
- "unique": false
- },
- "unique": false,
- "errorLabel": "",
- "key": "phoneNumberFieldset",
- "tags": "",
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
"style": "",
"page": "",
"left": "",
"top": "",
"width": "",
"height": ""
- },
- "type": "phoneNumber",
- "input": true,
- "refreshOn": "",
- "showCharCount": false,
- "showWordCount": false,
- "inputType": "tel",
- "id": "e207ccf",
- "modalEdit": false
},
- {
- "label": "Table",
- "cellAlignment": "left",
- "customClass": "",
- "striped": false,
- "bordered": false,
- "hover": false,
- "condensed": false,
- "hidden": false,
- "alwaysEnabled": false,
- "tableView": false,
- "key": "table",
- "tags": "",
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "table",
- "numRows": 2,
- "numCols": 2,
- "input": false,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": null,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "tree": false,
- "rows": [
- [
- {
- "components": [
- {
- "label": "Date / Time",
- "labelPosition": "top",
- "displayInTimezone": "viewer",
- "useLocaleSettings": false,
- "allowInput": true,
- "format": "yyyy-MM-dd hh:mm a",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "customClass": "",
- "tabindex": "",
- "hidden": false,
- "hideLabel": false,
- "autofocus": false,
- "disabled": false,
- "alwaysEnabled": false,
- "tableView": false,
- "enableDate": true,
- "datePicker": {
- "minDate": "",
- "maxDate": "",
- "showWeeks": true,
- "startingDay": 0,
- "initDate": "",
- "minMode": "day",
- "maxMode": "year",
- "yearRows": 4,
- "yearColumns": 5
- },
- "enableTime": true,
- "timePicker": {
- "showMeridian": true,
- "hourStep": 1,
- "minuteStep": 1,
- "readonlyInput": false,
- "mousewheel": true,
- "arrowkeys": true
- },
- "multiple": false,
- "defaultValue": "",
- "persistent": true,
- "protected": false,
- "dbIndex": false,
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": true,
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "unique": false,
- "errorLabel": "",
- "key": "dateTime",
- "tags": "",
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "datetime",
- "widget": {
- "type": "calendar",
- "displayInTimezone": "viewer",
- "language": "en",
- "useLocaleSettings": false,
- "allowInput": true,
- "mode": "single",
- "enableTime": true,
- "noCalendar": false,
- "format": "yyyy-MM-dd hh:mm a",
- "hourIncrement": 1,
- "minuteIncrement": 1,
- "time_24hr": false,
- "minDate": "",
- "maxDate": ""
- },
- "input": true,
- "prefix": "",
- "suffix": "
",
- "refreshOn": "",
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "timezone": "",
- "datepickerMode": "day",
- "id": "ekosv4",
- "modalEdit": false,
- "defaultDate": "",
- "customOptions": {}
- }
- ]
- },
- {
- "components": [
- {
- "label": "Day - Table",
- "hideInputLabels": false,
- "inputsLabelPosition": "top",
- "description": "",
- "useLocaleSettings": false,
- "tooltip": "",
- "customClass": "",
- "tabindex": "",
- "hidden": false,
- "hideLabel": false,
- "autofocus": false,
- "disabled": false,
- "alwaysEnabled": false,
- "tableView": false,
- "fields": {
- "day": {
- "type": "number",
- "placeholder": "",
- "hide": false,
- "required": true
- },
- "month": {
- "type": "select",
- "placeholder": "",
- "hide": false,
- "required": true
- },
- "year": {
- "type": "number",
- "placeholder": "",
- "hide": false,
- "required": true
- }
- },
- "dayFirst": false,
- "multiple": false,
- "defaultValue": "",
- "persistent": true,
- "protected": false,
- "dbIndex": false,
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "allowCalculateOverride": false,
- "validateOn": "change",
- "maxDate": "",
- "minDate": "",
- "unique": false,
- "errorLabel": "",
- "validate": {
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "required": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "key": "dayTable",
- "tags": "",
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "day",
- "input": true,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "refreshOn": "",
- "labelPosition": "top",
- "widget": null,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "id": "e8hkdot",
- "modalEdit": false
- }
- ]
- }
- ],
- [
- {
- "components": [
- {
- "label": "Currency - Table",
- "labelPosition": "top",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "prefix": "",
- "suffix": "",
- "widget": {
- "type": "input"
- },
- "customClass": "",
- "tabindex": "",
- "hidden": false,
- "hideLabel": false,
- "mask": false,
- "autofocus": false,
- "disabled": false,
- "alwaysEnabled": false,
- "tableView": false,
- "multiple": false,
- "defaultValue": "",
- "persistent": true,
- "currency": "USD",
- "inputFormat": "plain",
- "protected": false,
- "dbIndex": false,
- "case": "",
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": true,
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "strictDateValidation": false,
- "min": "",
- "max": "",
- "step": "any",
- "integer": "",
- "multiple": false,
- "unique": false
- },
- "unique": false,
- "errorLabel": "",
- "key": "currencyTable",
- "tags": "",
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "currency",
- "input": true,
- "refreshOn": "",
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "id": "eeu6ij",
- "delimiter": true,
- "modalEdit": false
- }
- ]
- }
- ]
- ],
- "header": [],
- "caption": "",
- "id": "e8jqmue",
- "path": "table",
- "modalEdit": false,
- "cloneRows": false
- }
- ],
- "id": "eyuz3ba",
- "path": "fi",
- "modalEdit": false
- },
- {
- "label": "Well",
- "customClass": "",
- "hidden": false,
- "disabled": false,
- "alwaysEnabled": false,
- "tableView": false,
- "key": "well1",
- "tags": "",
- "properties": {},
- "conditional": {
- "show": "",
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "well",
- "input": false,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": null,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
+ "type": "button",
+ "input": true,
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
"multiple": false,
- "unique": false
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "tree": false,
- "components": [
- {
- "label": "Email - Well",
- "labelPosition": "top",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "prefix": "",
- "suffix": "",
- "widget": {
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "clearOnHide": true,
+ "refreshOn": "",
+ "redrawOn": "",
+ "labelPosition": "top",
+ "errorLabel": "",
+ "hideLabel": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "widget": {
"type": "input"
- },
- "customClass": "",
- "tabindex": "",
- "hidden": false,
- "hideLabel": false,
- "mask": false,
- "autofocus": false,
- "disabled": false,
- "alwaysEnabled": false,
- "tableView": true,
- "multiple": false,
- "defaultValue": "",
- "persistent": true,
- "inputFormat": "plain",
- "protected": false,
- "dbIndex": false,
- "case": "",
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "allowCalculateOverride": false,
- "kickbox": {
- "enabled": false
- },
- "validateOn": "change",
- "validate": {
- "required": true,
- "pattern": "",
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "minLength": "",
- "maxLength": "",
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "unique": false,
- "errorLabel": "",
- "key": "emailWell",
- "tags": "",
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "email",
- "input": true,
- "refreshOn": "",
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "inputType": "email",
- "inputMask": "",
- "content": "",
- "id": "e2y6bml",
- "modalEdit": false
},
- {
- "label": "Address - Well",
- "labelPosition": "top",
- "placeholder": "",
- "description": "",
- "map": {
- "region": "",
- "key": ""
- },
- "tooltip": "",
- "customClass": "",
- "tabindex": "",
- "hidden": false,
- "hideLabel": false,
- "autofocus": false,
- "disabled": false,
- "alwaysEnabled": false,
- "tableView": true,
- "multiple": false,
- "defaultValue": "",
- "persistent": true,
- "protected": false,
- "dbIndex": false,
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "allowCalculateOverride": false,
- "validate": {
- "required": true,
- "customMessage": "",
+ "validateOn": "change",
+ "validate": {
+ "required": false,
"custom": "",
"customPrivate": false,
- "json": "",
"strictDateValidation": false,
- "minLength": "",
- "maxLength": "",
- "pattern": "",
"multiple": false,
"unique": false
- },
- "unique": false,
- "validateOn": "change",
- "errorLabel": "",
- "key": "addressWell",
- "tags": "",
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "address",
- "input": true,
- "prefix": "",
- "suffix": "",
- "refreshOn": "",
- "widget": {
- "type": "input"
- },
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "mask": false,
- "inputType": "text",
- "inputFormat": "plain",
- "inputMask": "",
- "id": "e7zy1zn",
- "modalEdit": false,
- "tree": true,
- "components": [
- {
- "label": "Address 1",
- "tableView": false,
- "key": "address1",
- "type": "textfield",
- "input": true,
- "customConditional": "show = _.get(instance, 'parent.manualMode', false);",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": {
- "type": "input"
- },
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "mask": false,
- "inputType": "text",
- "inputFormat": "plain",
- "inputMask": "",
- "id": "ejjxlgm"
- },
- {
- "label": "Address 2",
- "tableView": false,
- "key": "address2",
- "type": "textfield",
- "input": true,
- "customConditional": "show = _.get(instance, 'parent.manualMode', false);",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": {
- "type": "input"
- },
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "mask": false,
- "inputType": "text",
- "inputFormat": "plain",
- "inputMask": "",
- "id": "eoq3kyf"
- },
- {
- "label": "City",
- "tableView": false,
- "key": "city",
- "type": "textfield",
- "input": true,
- "customConditional": "show = _.get(instance, 'parent.manualMode', false);",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": {
- "type": "input"
- },
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "mask": false,
- "inputType": "text",
- "inputFormat": "plain",
- "inputMask": "",
- "id": "e75utzu"
- },
- {
- "label": "State",
- "tableView": false,
- "key": "state",
- "type": "textfield",
- "input": true,
- "customConditional": "show = _.get(instance, 'parent.manualMode', false);",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": {
- "type": "input"
- },
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "mask": false,
- "inputType": "text",
- "inputFormat": "plain",
- "inputMask": "",
- "id": "e0mjy9"
- },
- {
- "label": "Country",
- "tableView": false,
- "key": "country",
- "type": "textfield",
- "input": true,
- "customConditional": "show = _.get(instance, 'parent.manualMode', false);",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": {
- "type": "input"
- },
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "mask": false,
- "inputType": "text",
- "inputFormat": "plain",
- "inputMask": "",
- "id": "e6oqf2r"
- },
- {
- "label": "Zip Code",
- "tableView": false,
- "key": "zip",
- "type": "textfield",
- "input": true,
- "customConditional": "show = _.get(instance, 'parent.manualMode', false);",
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": {
- "type": "input"
- },
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "mask": false,
- "inputType": "text",
- "inputFormat": "plain",
- "inputMask": "",
- "id": "exdf0gt"
- }
- ],
- "switchToManualModeLabel": "Can't find address? Switch to manual mode.",
- "provider": "",
- "providerOptions": {},
- "manualModeViewString": "",
- "disableClearIcon": false,
- "enableManualMode": false
- }
- ],
- "id": "extatqf",
- "path": "well1",
- "modalEdit": false
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "dataGridLabel": true,
+ "id": "e5sfyv",
+ "modalEdit": false
}
- ],
- "input": false,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "clearOnHide": false,
- "refreshOn": "",
- "redrawOn": "",
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "hideLabel": false,
- "tabindex": "",
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": null,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "tree": false,
- "id": "e3ys8so",
- "path": "page1",
- "modalEdit": false
- },
- {
- "label": "Submit",
- "action": "submit",
- "showValidations": false,
- "theme": "primary",
- "size": "md",
- "block": false,
- "leftIcon": "",
- "rightIcon": "",
- "shortcut": "",
- "description": "",
- "tooltip": "",
- "customClass": "",
- "tabindex": "",
- "disableOnInvalid": false,
- "hidden": false,
- "autofocus": false,
- "disabled": false,
- "alwaysEnabled": false,
- "tableView": false,
- "key": "submit",
- "tags": "",
- "properties": {},
- "conditional": {
- "show": "",
- "when": "",
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "button",
- "input": true,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "labelPosition": "top",
- "errorLabel": "",
- "hideLabel": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "widget": {
- "type": "input"
- },
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "dataGridLabel": true,
- "id": "e5sfyv",
- "modalEdit": false
- }
- ],
- "title": "validationForm",
- "display": "form",
- "name": "validationForm",
- "path": "validationform"
+ ],
+ "title": "validationForm",
+ "display": "form",
+ "name": "validationForm",
+ "path": "validationform"
}
diff --git a/test/formtest/tooltipActivateCheckbox.json b/test/formtest/tooltipActivateCheckbox.json
index e52f346e7c..47f36053c3 100644
--- a/test/formtest/tooltipActivateCheckbox.json
+++ b/test/formtest/tooltipActivateCheckbox.json
@@ -131,4 +131,4 @@
"created": "2022-10-17T07:30:49.019Z",
"modified": "2022-10-17T08:09:01.525Z",
"machineName": "zwxvvydfeeytjgw:5236"
-}
\ No newline at end of file
+}
diff --git a/test/formtest/uniqueApiKeys.json b/test/formtest/uniqueApiKeys.json
index 17ba91ba01..b17e4a1510 100644
--- a/test/formtest/uniqueApiKeys.json
+++ b/test/formtest/uniqueApiKeys.json
@@ -1,91 +1,81 @@
{
- "_id": "5e70ecc6579bb457608756cf",
- "type": "form",
- "tags": [
-
-],
- "owner": "5e3bb355308fc84ff88614bf",
- "components": [
- {
- "label": "Text Field",
- "spellcheck": true,
- "tableView": true,
- "calculateServer": false,
- "validate": {
- "required": true
- },
- "key": "textField",
- "type": "textfield",
- "input": true
- },
- {
- "label": "Show",
- "optionsLabelPosition": "right",
- "inline": false,
- "tableView": false,
- "values": [
- {
- "label": "show",
- "value": "show",
- "shortcut": ""
- },
- {
- "label": "hide",
- "value": "hide",
- "shortcut": ""
- }
- ],
- "calculateServer": false,
- "key": "show",
- "type": "radio",
- "input": true
- },
- {
- "label": "Edit Grid",
- "disableAddingRemovingRows": false,
- "tableView": false,
- "modal": false,
- "calculateServer": false,
- "key": "editGrid",
- "type": "editgrid",
- "input": true,
+ "_id": "5e70ecc6579bb457608756cf",
+ "type": "form",
+ "tags": [],
+ "owner": "5e3bb355308fc84ff88614bf",
"components": [
-
- ]
- },
- {
- "label": "Submit",
- "showValidations": false,
- "tableView": false,
- "key": "submit",
- "type": "button",
- "input": true
- }
-],
- "controller": "",
- "revisions": "",
- "_vid": 0,
- "title": "conditionalNested",
- "display": "form",
- "access": [
- {
- "roles": [
- "5e3bb35c308fc84ff88614d0",
- "5e3bb35c308fc84ff88614d1",
- "5e3bb35c308fc84ff88614d2"
+ {
+ "label": "Text Field",
+ "spellcheck": true,
+ "tableView": true,
+ "calculateServer": false,
+ "validate": {
+ "required": true
+ },
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "Show",
+ "optionsLabelPosition": "right",
+ "inline": false,
+ "tableView": false,
+ "values": [
+ {
+ "label": "show",
+ "value": "show",
+ "shortcut": ""
+ },
+ {
+ "label": "hide",
+ "value": "hide",
+ "shortcut": ""
+ }
+ ],
+ "calculateServer": false,
+ "key": "show",
+ "type": "radio",
+ "input": true
+ },
+ {
+ "label": "Edit Grid",
+ "disableAddingRemovingRows": false,
+ "tableView": false,
+ "modal": false,
+ "calculateServer": false,
+ "key": "editGrid",
+ "type": "editgrid",
+ "input": true,
+ "components": []
+ },
+ {
+ "label": "Submit",
+ "showValidations": false,
+ "tableView": false,
+ "key": "submit",
+ "type": "button",
+ "input": true
+ }
+ ],
+ "controller": "",
+ "revisions": "",
+ "_vid": 0,
+ "title": "conditionalNested",
+ "display": "form",
+ "access": [
+ {
+ "roles": [
+ "5e3bb35c308fc84ff88614d0",
+ "5e3bb35c308fc84ff88614d1",
+ "5e3bb35c308fc84ff88614d2"
+ ],
+ "type": "read_all"
+ }
],
- "type": "read_all"
- }
-],
- "submissionAccess": [
-
-],
- "settings": {
-
-},
- "properties": {
-
-},
- "name": "uniqueApiKeyDataComponents",
- "path": "uniqueApiKeyDataComponents"
+ "submissionAccess": [],
+ "settings": {},
+ "properties": {},
+ "name": "uniqueApiKeyDataComponents",
+ "path": "uniqueApiKeyDataComponents"
}
diff --git a/test/formtest/uniqueApiKeysLayout.json b/test/formtest/uniqueApiKeysLayout.json
index b56742075c..76dba00861 100644
--- a/test/formtest/uniqueApiKeysLayout.json
+++ b/test/formtest/uniqueApiKeysLayout.json
@@ -1,75 +1,67 @@
{
- "_id": "5e70ecc6579bb457608756cf",
- "type": "form",
- "tags": [
-
- ],
- "owner": "5e3bb355308fc84ff88614bf",
- "components": [
- {
- "label": "Text Field",
- "spellcheck": true,
- "tableView": true,
- "calculateServer": false,
- "validate": {
- "required": true
- },
- "key": "textField",
- "type": "textfield",
- "input": true
- },
- {
- "collapsible": false,
- "tableView": false,
- "key": "panel",
- "type": "panel",
- "label": "Panel",
- "input": false,
- "components": [
+ "_id": "5e70ecc6579bb457608756cf",
+ "type": "form",
+ "tags": [],
+ "owner": "5e3bb355308fc84ff88614bf",
+ "components": [
{
- "label": "Text Field",
- "spellcheck": true,
- "tableView": true,
- "calculateServer": false,
- "key": "textField",
- "type": "textfield",
- "input": true
+ "label": "Text Field",
+ "spellcheck": true,
+ "tableView": true,
+ "calculateServer": false,
+ "validate": {
+ "required": true
+ },
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "collapsible": false,
+ "tableView": false,
+ "key": "panel",
+ "type": "panel",
+ "label": "Panel",
+ "input": false,
+ "components": [
+ {
+ "label": "Text Field",
+ "spellcheck": true,
+ "tableView": true,
+ "calculateServer": false,
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ }
+ ]
+ },
+ {
+ "label": "Submit",
+ "showValidations": false,
+ "tableView": false,
+ "key": "submit",
+ "type": "button",
+ "input": true
+ }
+ ],
+ "controller": "",
+ "revisions": "",
+ "_vid": 0,
+ "title": "conditionalNested",
+ "display": "form",
+ "access": [
+ {
+ "roles": [
+ "5e3bb35c308fc84ff88614d0",
+ "5e3bb35c308fc84ff88614d1",
+ "5e3bb35c308fc84ff88614d2"
+ ],
+ "type": "read_all"
}
- ]
- },
- {
- "label": "Submit",
- "showValidations": false,
- "tableView": false,
- "key": "submit",
- "type": "button",
- "input": true
- }
- ],
- "controller": "",
- "revisions": "",
- "_vid": 0,
- "title": "conditionalNested",
- "display": "form",
- "access": [
- {
- "roles": [
- "5e3bb35c308fc84ff88614d0",
- "5e3bb35c308fc84ff88614d1",
- "5e3bb35c308fc84ff88614d2"
- ],
- "type": "read_all"
- }
- ],
- "submissionAccess": [
-
- ],
- "settings": {
-
- },
- "properties": {
-
- },
- "name": "uniqueApiKeyLayoutComponents",
- "path": "uniqueApiKeyLayoutComponents"
+ ],
+ "submissionAccess": [],
+ "settings": {},
+ "properties": {},
+ "name": "uniqueApiKeyLayoutComponents",
+ "path": "uniqueApiKeyLayoutComponents"
}
diff --git a/test/formtest/uniqueApiKeysSameLevel.json b/test/formtest/uniqueApiKeysSameLevel.json
index 1d7a073e06..942e3ccc5c 100644
--- a/test/formtest/uniqueApiKeysSameLevel.json
+++ b/test/formtest/uniqueApiKeysSameLevel.json
@@ -1,65 +1,57 @@
{
- "_id": "5e70ecc6579bb457608756cf",
- "type": "form",
- "tags": [
-
- ],
- "owner": "5e3bb355308fc84ff88614bf",
- "components": [
- {
- "label": "Text Field",
- "spellcheck": true,
- "tableView": true,
- "calculateServer": false,
- "validate": {
- "required": true
- },
- "key": "textField",
- "type": "textfield",
- "input": true
- },
- {
- "label": "Text Field",
- "spellcheck": true,
- "tableView": true,
- "calculateServer": false,
- "key": "textField",
- "type": "textfield",
- "input": true
- },
- {
- "label": "Submit",
- "showValidations": false,
- "tableView": false,
- "key": "submit",
- "type": "button",
- "input": true
- }
- ],
- "controller": "",
- "revisions": "",
- "_vid": 0,
- "title": "uniqueApiKeysSameLevel",
- "display": "form",
- "access": [
- {
- "roles": [
- "5e3bb35c308fc84ff88614d0",
- "5e3bb35c308fc84ff88614d1",
- "5e3bb35c308fc84ff88614d2"
- ],
- "type": "read_all"
- }
- ],
- "submissionAccess": [
-
- ],
- "settings": {
-
- },
- "properties": {
-
- },
- "name": "uniqueApiKeysSameLevel",
- "path": "uniqueapikeyssamelevel"
+ "_id": "5e70ecc6579bb457608756cf",
+ "type": "form",
+ "tags": [],
+ "owner": "5e3bb355308fc84ff88614bf",
+ "components": [
+ {
+ "label": "Text Field",
+ "spellcheck": true,
+ "tableView": true,
+ "calculateServer": false,
+ "validate": {
+ "required": true
+ },
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "Text Field",
+ "spellcheck": true,
+ "tableView": true,
+ "calculateServer": false,
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "Submit",
+ "showValidations": false,
+ "tableView": false,
+ "key": "submit",
+ "type": "button",
+ "input": true
+ }
+ ],
+ "controller": "",
+ "revisions": "",
+ "_vid": 0,
+ "title": "uniqueApiKeysSameLevel",
+ "display": "form",
+ "access": [
+ {
+ "roles": [
+ "5e3bb35c308fc84ff88614d0",
+ "5e3bb35c308fc84ff88614d1",
+ "5e3bb35c308fc84ff88614d2"
+ ],
+ "type": "read_all"
+ }
+ ],
+ "submissionAccess": [],
+ "settings": {},
+ "properties": {},
+ "name": "uniqueApiKeysSameLevel",
+ "path": "uniqueapikeyssamelevel"
}
diff --git a/test/formtest/validationOnBlur.json b/test/formtest/validationOnBlur.json
index f5def2ebe9..85d7a28c87 100644
--- a/test/formtest/validationOnBlur.json
+++ b/test/formtest/validationOnBlur.json
@@ -1,66 +1,58 @@
{
- "_id": "5eba7e8f6447a450fc3b9fc7",
- "type": "form",
- "tags": [
-
- ],
- "owner": "5e05a6b7549cdc2ece30c6b0",
- "components": [
- {
- "label": "Text Field",
- "tableView": true,
- "validateOn": "blur",
- "validate": {
- "minLength": 5
- },
- "key": "textField",
- "type": "textfield",
- "input": true
- },
- {
- "label": "Text Field",
- "tableView": true,
- "validateOn": "blur",
- "validate": {
- "minLength": 5
- },
- "key": "textField1",
- "type": "textfield",
- "input": true
- },
- {
- "type": "button",
- "label": "Submit",
- "key": "submit",
- "disableOnInvalid": true,
- "input": true,
- "tableView": false
- }
- ],
- "controller": "",
- "revisions": "",
- "_vid": 0,
- "title": "onBlur",
- "display": "form",
- "access": [
- {
- "roles": [
- "5e96e79ee1c3ad3178454100",
- "5e96e79ee1c3ad3178454101",
- "5e96e79ee1c3ad3178454102"
- ],
- "type": "read_all"
- }
- ],
- "submissionAccess": [
-
- ],
- "settings": {
-
- },
- "properties": {
-
- },
- "name": "onBlur",
- "path": "onblur"
+ "_id": "5eba7e8f6447a450fc3b9fc7",
+ "type": "form",
+ "tags": [],
+ "owner": "5e05a6b7549cdc2ece30c6b0",
+ "components": [
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "validateOn": "blur",
+ "validate": {
+ "minLength": 5
+ },
+ "key": "textField",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "validateOn": "blur",
+ "validate": {
+ "minLength": 5
+ },
+ "key": "textField1",
+ "type": "textfield",
+ "input": true
+ },
+ {
+ "type": "button",
+ "label": "Submit",
+ "key": "submit",
+ "disableOnInvalid": true,
+ "input": true,
+ "tableView": false
+ }
+ ],
+ "controller": "",
+ "revisions": "",
+ "_vid": 0,
+ "title": "onBlur",
+ "display": "form",
+ "access": [
+ {
+ "roles": [
+ "5e96e79ee1c3ad3178454100",
+ "5e96e79ee1c3ad3178454101",
+ "5e96e79ee1c3ad3178454102"
+ ],
+ "type": "read_all"
+ }
+ ],
+ "submissionAccess": [],
+ "settings": {},
+ "properties": {},
+ "name": "onBlur",
+ "path": "onblur"
}
diff --git a/test/formtest/wizardWithHiddenPanel.json b/test/formtest/wizardWithHiddenPanel.json
index ef3bdc63a4..2b57a5e9df 100644
--- a/test/formtest/wizardWithHiddenPanel.json
+++ b/test/formtest/wizardWithHiddenPanel.json
@@ -1,467 +1,477 @@
{
- "_id": "5fad32107fabb08b982efcbc",
- "type": "form",
- "components": [{
- "title": "Page 1",
- "label": "Page 1",
- "type": "panel",
- "key": "page1",
- "input": false,
- "tableView": false,
- "components": [{
- "label": "Number",
- "labelPosition": "top",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "prefix": "",
- "suffix": "",
- "widget": {
- "type": "input"
- },
- "customClass": "",
- "tabindex": "",
- "autocomplete": "",
- "hidden": false,
- "hideLabel": false,
- "mask": false,
- "autofocus": false,
- "spellcheck": true,
- "disabled": false,
- "tableView": false,
- "modalEdit": false,
- "multiple": false,
- "persistent": true,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "protected": false,
- "dbIndex": false,
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "min": "",
- "max": "",
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "step": "any",
- "integer": ""
- },
- "errorLabel": "",
- "key": "number",
- "tags": [],
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "number",
- "input": true,
- "unique": false,
- "refreshOn": "",
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "id": "evnv4vv",
- "defaultValue": null
- }],
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": false,
- "refreshOn": "",
- "redrawOn": "",
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": null,
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "tree": false,
- "theme": "default",
- "breadcrumb": "default",
- "id": "e3zq9o"
- }, {
- "title": "Page 2",
- "theme": "default",
- "breadcrumb": "default",
- "breadcrumbClickable": true,
- "buttonSettings": {
- "previous": true,
- "cancel": true,
- "next": true
- },
- "tooltip": "",
- "customClass": "",
- "collapsible": false,
- "hidden": true,
- "hideLabel": false,
- "disabled": false,
- "modalEdit": false,
- "key": "page2",
- "tags": [],
- "properties": {},
- "customConditional": "",
- "conditional": {
- "json": "",
- "show": null,
- "when": null,
- "eq": ""
- },
- "nextPage": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "panel",
- "label": "Page 2",
- "tabindex": "",
- "components": [{
- "label": "Text Field",
- "tableView": true,
- "key": "textField",
- "type": "textfield",
- "input": true,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": {
- "type": "input"
- },
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "mask": false,
- "inputType": "text",
- "inputFormat": "plain",
- "inputMask": "",
- "spellcheck": true,
- "id": "efg5kvc"
- }],
- "input": false,
- "tableView": false,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "clearOnHide": false,
- "refreshOn": "",
- "redrawOn": "",
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": null,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "tree": false,
- "id": "efbo5r6"
- }, {
- "title": "Page 3",
- "label": "Page 3",
- "type": "panel",
- "key": "page3",
- "components": [{
- "label": "Text Area",
- "labelPosition": "top",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "prefix": "",
- "suffix": "",
- "widget": {
- "type": "input"
- },
- "editor": "",
- "autoExpand": false,
- "customClass": "",
- "tabindex": "",
- "autocomplete": "",
- "hidden": false,
- "hideLabel": false,
- "showWordCount": false,
- "showCharCount": false,
- "autofocus": false,
- "spellcheck": true,
- "disabled": false,
- "tableView": true,
- "modalEdit": false,
- "multiple": false,
- "persistent": true,
- "inputFormat": "html",
- "protected": false,
- "dbIndex": false,
- "case": "",
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "pattern": "",
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "minLength": "",
- "maxLength": "",
- "minWords": "",
- "maxWords": "",
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "unique": false,
- "errorLabel": "",
- "key": "textArea",
- "tags": [],
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "fixedSize": true,
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "attributes": {},
- "type": "textarea",
- "rows": 3,
- "wysiwyg": false,
- "input": true,
- "refreshOn": "",
- "allowMultipleMasks": false,
- "mask": false,
- "inputType": "text",
- "inputMask": "",
- "id": "ew497n",
- "defaultValue": null
- }],
- "input": false,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "hidden": false,
- "clearOnHide": false,
- "refreshOn": "",
- "redrawOn": "",
- "tableView": false,
- "modalEdit": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": null,
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "tree": false,
- "theme": "default",
- "breadcrumb": "default",
- "id": "eqgqlyk"
- }],
- "revisions": "",
- "_vid": 0,
- "title": "testHiddenWIzardPannel",
- "display": "wizard",
- "name": "testHiddenWIzardPannel",
- "path": "testhiddenwizardpannel",
- "machineName": "cjksbatcpbhyfbs:testHiddenWIzardPannel"
+ "_id": "5fad32107fabb08b982efcbc",
+ "type": "form",
+ "components": [
+ {
+ "title": "Page 1",
+ "label": "Page 1",
+ "type": "panel",
+ "key": "page1",
+ "input": false,
+ "tableView": false,
+ "components": [
+ {
+ "label": "Number",
+ "labelPosition": "top",
+ "placeholder": "",
+ "description": "",
+ "tooltip": "",
+ "prefix": "",
+ "suffix": "",
+ "widget": {
+ "type": "input"
+ },
+ "customClass": "",
+ "tabindex": "",
+ "autocomplete": "",
+ "hidden": false,
+ "hideLabel": false,
+ "mask": false,
+ "autofocus": false,
+ "spellcheck": true,
+ "disabled": false,
+ "tableView": false,
+ "modalEdit": false,
+ "multiple": false,
+ "persistent": true,
+ "delimiter": false,
+ "requireDecimal": false,
+ "inputFormat": "plain",
+ "protected": false,
+ "dbIndex": false,
+ "encrypted": false,
+ "redrawOn": "",
+ "clearOnHide": true,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "calculateServer": false,
+ "allowCalculateOverride": false,
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "customMessage": "",
+ "custom": "",
+ "customPrivate": false,
+ "json": "",
+ "min": "",
+ "max": "",
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false,
+ "step": "any",
+ "integer": ""
+ },
+ "errorLabel": "",
+ "key": "number",
+ "tags": [],
+ "properties": {},
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "number",
+ "input": true,
+ "unique": false,
+ "refreshOn": "",
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "id": "evnv4vv",
+ "defaultValue": null
+ }
+ ],
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "clearOnHide": false,
+ "refreshOn": "",
+ "redrawOn": "",
+ "modalEdit": false,
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "calculateServer": false,
+ "widget": null,
+ "attributes": {},
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "overlay": {
+ "style": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "properties": {},
+ "allowMultipleMasks": false,
+ "tree": false,
+ "theme": "default",
+ "breadcrumb": "default",
+ "id": "e3zq9o"
+ },
+ {
+ "title": "Page 2",
+ "theme": "default",
+ "breadcrumb": "default",
+ "breadcrumbClickable": true,
+ "buttonSettings": {
+ "previous": true,
+ "cancel": true,
+ "next": true
+ },
+ "tooltip": "",
+ "customClass": "",
+ "collapsible": false,
+ "hidden": true,
+ "hideLabel": false,
+ "disabled": false,
+ "modalEdit": false,
+ "key": "page2",
+ "tags": [],
+ "properties": {},
+ "customConditional": "",
+ "conditional": {
+ "json": "",
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "nextPage": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "panel",
+ "label": "Page 2",
+ "tabindex": "",
+ "components": [
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "key": "textField",
+ "type": "textfield",
+ "input": true,
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "refreshOn": "",
+ "redrawOn": "",
+ "modalEdit": false,
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "calculateServer": false,
+ "widget": {
+ "type": "input"
+ },
+ "attributes": {},
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "overlay": {
+ "style": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "properties": {},
+ "allowMultipleMasks": false,
+ "mask": false,
+ "inputType": "text",
+ "inputFormat": "plain",
+ "inputMask": "",
+ "spellcheck": true,
+ "id": "efg5kvc"
+ }
+ ],
+ "input": false,
+ "tableView": false,
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "clearOnHide": false,
+ "refreshOn": "",
+ "redrawOn": "",
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "calculateServer": false,
+ "widget": null,
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "tree": false,
+ "id": "efbo5r6"
+ },
+ {
+ "title": "Page 3",
+ "label": "Page 3",
+ "type": "panel",
+ "key": "page3",
+ "components": [
+ {
+ "label": "Text Area",
+ "labelPosition": "top",
+ "placeholder": "",
+ "description": "",
+ "tooltip": "",
+ "prefix": "",
+ "suffix": "",
+ "widget": {
+ "type": "input"
+ },
+ "editor": "",
+ "autoExpand": false,
+ "customClass": "",
+ "tabindex": "",
+ "autocomplete": "",
+ "hidden": false,
+ "hideLabel": false,
+ "showWordCount": false,
+ "showCharCount": false,
+ "autofocus": false,
+ "spellcheck": true,
+ "disabled": false,
+ "tableView": true,
+ "modalEdit": false,
+ "multiple": false,
+ "persistent": true,
+ "inputFormat": "html",
+ "protected": false,
+ "dbIndex": false,
+ "case": "",
+ "encrypted": false,
+ "redrawOn": "",
+ "clearOnHide": true,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "calculateServer": false,
+ "allowCalculateOverride": false,
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "pattern": "",
+ "customMessage": "",
+ "custom": "",
+ "customPrivate": false,
+ "json": "",
+ "minLength": "",
+ "maxLength": "",
+ "minWords": "",
+ "maxWords": "",
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "unique": false,
+ "errorLabel": "",
+ "key": "textArea",
+ "tags": [],
+ "properties": {},
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "fixedSize": true,
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "attributes": {},
+ "type": "textarea",
+ "rows": 3,
+ "wysiwyg": false,
+ "input": true,
+ "refreshOn": "",
+ "allowMultipleMasks": false,
+ "mask": false,
+ "inputType": "text",
+ "inputMask": "",
+ "id": "ew497n",
+ "defaultValue": null
+ }
+ ],
+ "input": false,
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "hidden": false,
+ "clearOnHide": false,
+ "refreshOn": "",
+ "redrawOn": "",
+ "tableView": false,
+ "modalEdit": false,
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "calculateServer": false,
+ "widget": null,
+ "attributes": {},
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "overlay": {
+ "style": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "properties": {},
+ "allowMultipleMasks": false,
+ "tree": false,
+ "theme": "default",
+ "breadcrumb": "default",
+ "id": "eqgqlyk"
+ }
+ ],
+ "revisions": "",
+ "_vid": 0,
+ "title": "testHiddenWIzardPannel",
+ "display": "wizard",
+ "name": "testHiddenWIzardPannel",
+ "path": "testhiddenwizardpannel",
+ "machineName": "cjksbatcpbhyfbs:testHiddenWIzardPannel"
}
diff --git a/test/formtest/wizardWithSimpleConditionalPage.json b/test/formtest/wizardWithSimpleConditionalPage.json
index ae991d072f..0f46205d22 100644
--- a/test/formtest/wizardWithSimpleConditionalPage.json
+++ b/test/formtest/wizardWithSimpleConditionalPage.json
@@ -1,56 +1,63 @@
{
- "type": "form",
- "tags": [],
- "components": [{
- "title": "Page 1",
- "label": "Page 1",
- "type": "panel",
- "key": "page1",
- "components": [{
- "label": "Checkbox",
- "tableView": false,
- "key": "checkbox",
- "type": "checkbox",
- "input": true,
- "defaultValue": false
- }],
- "input": false,
- "tableView": false
- }, {
- "title": "Page 2",
- "breadcrumbClickable": true,
- "buttonSettings": {
- "previous": true,
- "cancel": true,
- "next": true
- },
- "collapsible": false,
- "key": "page2",
- "conditional": {
- "show": true,
- "when": "checkbox",
- "eq": "true"
- },
- "type": "panel",
- "label": "Page 2",
- "components": [{
- "label": "Number",
- "mask": false,
- "spellcheck": true,
- "tableView": false,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "key": "number",
- "type": "number",
- "input": true
- }],
- "input": false,
- "tableView": false
- }],
- "title": "wizard test",
- "display": "wizard",
- "name": "wizardTest",
- "path": "wizardtest",
- "machineName": "nyisrmnbdpnjfut:wizardTest"
+ "type": "form",
+ "tags": [],
+ "components": [
+ {
+ "title": "Page 1",
+ "label": "Page 1",
+ "type": "panel",
+ "key": "page1",
+ "components": [
+ {
+ "label": "Checkbox",
+ "tableView": false,
+ "key": "checkbox",
+ "type": "checkbox",
+ "input": true,
+ "defaultValue": false
+ }
+ ],
+ "input": false,
+ "tableView": false
+ },
+ {
+ "title": "Page 2",
+ "breadcrumbClickable": true,
+ "buttonSettings": {
+ "previous": true,
+ "cancel": true,
+ "next": true
+ },
+ "collapsible": false,
+ "key": "page2",
+ "conditional": {
+ "show": true,
+ "when": "checkbox",
+ "eq": "true"
+ },
+ "type": "panel",
+ "label": "Page 2",
+ "components": [
+ {
+ "label": "Number",
+ "mask": false,
+ "spellcheck": true,
+ "tableView": false,
+ "delimiter": false,
+ "requireDecimal": false,
+ "inputFormat": "plain",
+ "key": "number",
+ "type": "number",
+ "input": true
+ }
+ ],
+ "input": false,
+ "tableView": false
+ }
+ ],
+ "title": "wizard test",
+ "display": "wizard",
+ "name": "wizardTest",
+ "path": "wizardtest",
+ "machineName": "nyisrmnbdpnjfut:wizardTest"
}
diff --git a/test/formtest/wizardWithTooltip.json b/test/formtest/wizardWithTooltip.json
index 7486775d42..2a598a1345 100644
--- a/test/formtest/wizardWithTooltip.json
+++ b/test/formtest/wizardWithTooltip.json
@@ -1,326 +1,333 @@
{
- "_id": "5fec7ca48da957762c7842ee",
- "type": "form",
- "components": [{
- "title": "Page 1 title",
- "theme": "default",
- "breadcrumb": "default",
- "breadcrumbClickable": true,
- "buttonSettings": {
- "previous": true,
- "cancel": true,
- "next": true
- },
- "tooltip": "tooltip for page 1",
- "customClass": "",
- "collapsible": false,
- "hidden": false,
- "hideLabel": false,
- "disabled": false,
- "modalEdit": false,
- "key": "page1",
- "tags": [],
- "properties": {},
- "customConditional": "",
- "conditional": {
- "json": "",
- "show": null,
- "when": null,
- "eq": ""
- },
- "nextPage": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "panel",
- "label": "Page 1 title",
- "tabindex": "",
- "components": [{
- "label": "Number",
- "labelPosition": "top",
- "placeholder": "",
- "description": "",
- "tooltip": "",
- "prefix": "",
- "suffix": "",
- "widget": {
- "type": "input"
- },
- "customClass": "",
- "tabindex": "",
- "autocomplete": "",
- "hidden": false,
- "hideLabel": false,
- "mask": false,
- "autofocus": false,
- "spellcheck": true,
- "disabled": false,
- "tableView": false,
- "modalEdit": false,
- "multiple": false,
- "persistent": true,
- "delimiter": false,
- "requireDecimal": false,
- "inputFormat": "plain",
- "protected": false,
- "dbIndex": false,
- "encrypted": false,
- "redrawOn": "",
- "clearOnHide": true,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "allowCalculateOverride": false,
- "validateOn": "change",
- "validate": {
- "required": false,
- "customMessage": "",
- "custom": "",
- "customPrivate": false,
- "json": "",
- "min": "",
- "max": "",
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "step": "any",
- "integer": ""
- },
- "errorLabel": "",
- "key": "number",
- "tags": [],
- "properties": {},
- "conditional": {
- "show": null,
- "when": null,
- "eq": "",
- "json": ""
- },
- "customConditional": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "number",
- "input": true,
- "unique": false,
- "refreshOn": "",
- "dataGridLabel": false,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "id": "eb4c1oj",
- "defaultValue": null
- }],
- "input": false,
- "tableView": false,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "clearOnHide": false,
- "refreshOn": "",
- "redrawOn": "",
- "dataGridLabel": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": null,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "tree": false,
- "id": "epqpqle"
- }, {
- "title": "Page 2 title",
- "theme": "default",
- "breadcrumb": "default",
- "breadcrumbClickable": true,
- "buttonSettings": {
- "previous": true,
- "cancel": true,
- "next": true
- },
- "tooltip": "tooltip for page 2",
- "customClass": "",
- "collapsible": false,
- "hidden": false,
- "hideLabel": false,
- "disabled": false,
- "modalEdit": false,
- "key": "page2",
- "tags": [],
- "properties": {},
- "customConditional": "",
- "conditional": {
- "json": "",
- "show": null,
- "when": null,
- "eq": ""
- },
- "nextPage": "",
- "logic": [],
- "attributes": {},
- "overlay": {
- "style": "",
- "page": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "type": "panel",
- "label": "Page 2 title",
- "tabindex": "",
- "components": [{
- "label": "Text Field",
- "tableView": true,
- "key": "textField",
- "type": "textfield",
- "input": true,
- "placeholder": "",
- "prefix": "",
- "customClass": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": true,
- "hidden": false,
- "clearOnHide": true,
- "refreshOn": "",
- "redrawOn": "",
- "modalEdit": false,
- "dataGridLabel": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "tooltip": "",
- "hideLabel": false,
- "tabindex": "",
- "disabled": false,
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": {
- "type": "input"
- },
- "attributes": {},
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false,
- "minLength": "",
- "maxLength": "",
- "pattern": ""
- },
- "conditional": {
- "show": null,
- "when": null,
- "eq": ""
- },
- "overlay": {
- "style": "",
- "left": "",
- "top": "",
- "width": "",
- "height": ""
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "properties": {},
- "allowMultipleMasks": false,
- "mask": false,
- "inputType": "text",
- "inputFormat": "plain",
- "inputMask": "",
- "spellcheck": true,
- "id": "eh695m"
- }],
- "input": false,
- "tableView": false,
- "placeholder": "",
- "prefix": "",
- "suffix": "",
- "multiple": false,
- "defaultValue": null,
- "protected": false,
- "unique": false,
- "persistent": false,
- "clearOnHide": false,
- "refreshOn": "",
- "redrawOn": "",
- "dataGridLabel": false,
- "labelPosition": "top",
- "description": "",
- "errorLabel": "",
- "autofocus": false,
- "dbIndex": false,
- "customDefaultValue": "",
- "calculateValue": "",
- "calculateServer": false,
- "widget": null,
- "validateOn": "change",
- "validate": {
- "required": false,
- "custom": "",
- "customPrivate": false,
- "strictDateValidation": false,
- "multiple": false,
- "unique": false
- },
- "allowCalculateOverride": false,
- "encrypted": false,
- "showCharCount": false,
- "showWordCount": false,
- "allowMultipleMasks": false,
- "tree": false,
- "id": "eexnju"
- }],
- "title": "testTooltips",
- "display": "wizard",
- "name": "testTooltips",
- "path": "testtooltips"
+ "_id": "5fec7ca48da957762c7842ee",
+ "type": "form",
+ "components": [
+ {
+ "title": "Page 1 title",
+ "theme": "default",
+ "breadcrumb": "default",
+ "breadcrumbClickable": true,
+ "buttonSettings": {
+ "previous": true,
+ "cancel": true,
+ "next": true
+ },
+ "tooltip": "tooltip for page 1",
+ "customClass": "",
+ "collapsible": false,
+ "hidden": false,
+ "hideLabel": false,
+ "disabled": false,
+ "modalEdit": false,
+ "key": "page1",
+ "tags": [],
+ "properties": {},
+ "customConditional": "",
+ "conditional": {
+ "json": "",
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "nextPage": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "panel",
+ "label": "Page 1 title",
+ "tabindex": "",
+ "components": [
+ {
+ "label": "Number",
+ "labelPosition": "top",
+ "placeholder": "",
+ "description": "",
+ "tooltip": "",
+ "prefix": "",
+ "suffix": "",
+ "widget": {
+ "type": "input"
+ },
+ "customClass": "",
+ "tabindex": "",
+ "autocomplete": "",
+ "hidden": false,
+ "hideLabel": false,
+ "mask": false,
+ "autofocus": false,
+ "spellcheck": true,
+ "disabled": false,
+ "tableView": false,
+ "modalEdit": false,
+ "multiple": false,
+ "persistent": true,
+ "delimiter": false,
+ "requireDecimal": false,
+ "inputFormat": "plain",
+ "protected": false,
+ "dbIndex": false,
+ "encrypted": false,
+ "redrawOn": "",
+ "clearOnHide": true,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "calculateServer": false,
+ "allowCalculateOverride": false,
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "customMessage": "",
+ "custom": "",
+ "customPrivate": false,
+ "json": "",
+ "min": "",
+ "max": "",
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false,
+ "step": "any",
+ "integer": ""
+ },
+ "errorLabel": "",
+ "key": "number",
+ "tags": [],
+ "properties": {},
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": "",
+ "json": ""
+ },
+ "customConditional": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "number",
+ "input": true,
+ "unique": false,
+ "refreshOn": "",
+ "dataGridLabel": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "id": "eb4c1oj",
+ "defaultValue": null
+ }
+ ],
+ "input": false,
+ "tableView": false,
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "clearOnHide": false,
+ "refreshOn": "",
+ "redrawOn": "",
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "calculateServer": false,
+ "widget": null,
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "tree": false,
+ "id": "epqpqle"
+ },
+ {
+ "title": "Page 2 title",
+ "theme": "default",
+ "breadcrumb": "default",
+ "breadcrumbClickable": true,
+ "buttonSettings": {
+ "previous": true,
+ "cancel": true,
+ "next": true
+ },
+ "tooltip": "tooltip for page 2",
+ "customClass": "",
+ "collapsible": false,
+ "hidden": false,
+ "hideLabel": false,
+ "disabled": false,
+ "modalEdit": false,
+ "key": "page2",
+ "tags": [],
+ "properties": {},
+ "customConditional": "",
+ "conditional": {
+ "json": "",
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "nextPage": "",
+ "logic": [],
+ "attributes": {},
+ "overlay": {
+ "style": "",
+ "page": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "type": "panel",
+ "label": "Page 2 title",
+ "tabindex": "",
+ "components": [
+ {
+ "label": "Text Field",
+ "tableView": true,
+ "key": "textField",
+ "type": "textfield",
+ "input": true,
+ "placeholder": "",
+ "prefix": "",
+ "customClass": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": true,
+ "hidden": false,
+ "clearOnHide": true,
+ "refreshOn": "",
+ "redrawOn": "",
+ "modalEdit": false,
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "tooltip": "",
+ "hideLabel": false,
+ "tabindex": "",
+ "disabled": false,
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "calculateServer": false,
+ "widget": {
+ "type": "input"
+ },
+ "attributes": {},
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false,
+ "minLength": "",
+ "maxLength": "",
+ "pattern": ""
+ },
+ "conditional": {
+ "show": null,
+ "when": null,
+ "eq": ""
+ },
+ "overlay": {
+ "style": "",
+ "left": "",
+ "top": "",
+ "width": "",
+ "height": ""
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "properties": {},
+ "allowMultipleMasks": false,
+ "mask": false,
+ "inputType": "text",
+ "inputFormat": "plain",
+ "inputMask": "",
+ "spellcheck": true,
+ "id": "eh695m"
+ }
+ ],
+ "input": false,
+ "tableView": false,
+ "placeholder": "",
+ "prefix": "",
+ "suffix": "",
+ "multiple": false,
+ "defaultValue": null,
+ "protected": false,
+ "unique": false,
+ "persistent": false,
+ "clearOnHide": false,
+ "refreshOn": "",
+ "redrawOn": "",
+ "dataGridLabel": false,
+ "labelPosition": "top",
+ "description": "",
+ "errorLabel": "",
+ "autofocus": false,
+ "dbIndex": false,
+ "customDefaultValue": "",
+ "calculateValue": "",
+ "calculateServer": false,
+ "widget": null,
+ "validateOn": "change",
+ "validate": {
+ "required": false,
+ "custom": "",
+ "customPrivate": false,
+ "strictDateValidation": false,
+ "multiple": false,
+ "unique": false
+ },
+ "allowCalculateOverride": false,
+ "encrypted": false,
+ "showCharCount": false,
+ "showWordCount": false,
+ "allowMultipleMasks": false,
+ "tree": false,
+ "id": "eexnju"
+ }
+ ],
+ "title": "testTooltips",
+ "display": "wizard",
+ "name": "testTooltips",
+ "path": "testtooltips"
}
diff --git a/test/harness.d.ts b/test/harness.d.ts
index 9009dfb9b3..db7e759e69 100644
--- a/test/harness.d.ts
+++ b/test/harness.d.ts
@@ -5,35 +5,128 @@ declare namespace Harness {
export function getBuilder(): any;
export function saveComponent(): void;
export function buildComponent(type: any, container: any): any;
- export function setComponentProperty(property: any, before: any, after: any, cb: any): void;
- export function testBuilderProperty(property: any, before: any, after: any, previewRegEx: any, cb: any): void;
+ export function setComponentProperty(
+ property: any,
+ before: any,
+ after: any,
+ cb: any
+ ): void;
+ export function testBuilderProperty(
+ property: any,
+ before: any,
+ after: any,
+ previewRegEx: any,
+ cb: any
+ ): void;
export function getDate(): string;
- export function testCreate(Component: any, componentSettings: any, options?: {}): Promise
;
- export function testConditionals(form: any, submission: any, hidden: any, done: any): void;
- export function testVisibility(component: any, query: any, visible: any): void;
- export function testComponentVisibility(component: any, query: any, visible: any): void;
+ export function testCreate(
+ Component: any,
+ componentSettings: any,
+ options?: {}
+ ): Promise;
+ export function testConditionals(
+ form: any,
+ submission: any,
+ hidden: any,
+ done: any
+ ): void;
+ export function testVisibility(
+ component: any,
+ query: any,
+ visible: any
+ ): void;
+ export function testComponentVisibility(
+ component: any,
+ query: any,
+ visible: any
+ ): void;
export function clickElement(component: any, query: any): any;
- export function dispatchEvent(eventType: any, element: any, query: any, beforeDispatch: any): any;
+ export function dispatchEvent(
+ eventType: any,
+ element: any,
+ query: any,
+ beforeDispatch: any
+ ): any;
export function testElements(component: any, query: any, number: any): any;
export function testElement(component: any, query: any, exists: any): any;
- export function testInnerHtml(component: any, query: any, content: any): void;
- export function testAttribute(component: any, query: any, attribute: any, value: any): void;
- export function testHasClass(component: any, query: any, className: any): void;
- export function testModalWrapperErrorClasses(component: any, shouldBeInvalid?: boolean, query?: string): void;
- export function testElementAttribute(element: any, attribute: any, expected: any): any;
+ export function testInnerHtml(
+ component: any,
+ query: any,
+ content: any
+ ): void;
+ export function testAttribute(
+ component: any,
+ query: any,
+ attribute: any,
+ value: any
+ ): void;
+ export function testHasClass(
+ component: any,
+ query: any,
+ className: any
+ ): void;
+ export function testModalWrapperErrorClasses(
+ component: any,
+ shouldBeInvalid?: boolean,
+ query?: string
+ ): void;
+ export function testElementAttribute(
+ element: any,
+ attribute: any,
+ expected: any
+ ): any;
export function testSetGet(component: any, value: any): any;
export function setInputValue(component: any, name: any, value: any): any;
- export function getInputValue(component: any, name: any, value: any, valueProperty?: string): void;
+ export function getInputValue(
+ component: any,
+ name: any,
+ value: any,
+ valueProperty?: string
+ ): void;
export function setTagsValue(values: any, component: any): void;
- export function testSetInput(component: any, input: any, output: any, visible: any, index?: number): any;
- export function testSubmission(form: any, submission: any, onChange: any): void;
- export function testErrors(form: any, submission: any, errors: any, done: any): void;
+ export function testSetInput(
+ component: any,
+ input: any,
+ output: any,
+ visible: any,
+ index?: number
+ ): any;
+ export function testSubmission(
+ form: any,
+ submission: any,
+ onChange: any
+ ): void;
+ export function testErrors(
+ form: any,
+ submission: any,
+ errors: any,
+ done: any
+ ): void;
export function testValid(component: any, value: any): Promise;
- export function testInvalid(component: any, value: any, field: any, expectedError: any): Promise;
+ export function testInvalid(
+ component: any,
+ value: any,
+ field: any,
+ expectedError: any
+ ): Promise;
export function testComponent(component: any, test: any, done: any): void;
- export function testWizardPrevPage(form: any, errors: any, onPrevPage: any): any;
- export function testWizardNextPage(form: any, errors: any, onNextPage: any): any;
- export function testNumberBlur(cmp: any, inv: any, outv: any, display: any, index?: number): void;
+ export function testWizardPrevPage(
+ form: any,
+ errors: any,
+ onPrevPage: any
+ ): any;
+ export function testWizardNextPage(
+ form: any,
+ errors: any,
+ onNextPage: any
+ ): any;
+ export function testNumberBlur(
+ cmp: any,
+ inv: any,
+ outv: any,
+ display: any,
+ index?: number
+ ): void;
export { onNext };
}
declare function onNext(cmp: any, event: any, cb: any): void;
diff --git a/test/harness.js b/test/harness.js
index cea3ac2d54..2e93dea85c 100644
--- a/test/harness.js
+++ b/test/harness.js
@@ -9,10 +9,10 @@ import Components from '../src/components/Components';
Components.setComponents(AllComponents);
if (process) {
- // Do not handle unhandled rejections.
- process.on('unhandledRejection', () => {
- console.warn('Unhandled rejection!');
- });
+ // Do not handle unhandled rejections.
+ process.on('unhandledRejection', () => {
+ console.warn('Unhandled rejection!');
+ });
}
// Make sure that the Option is available from the window.
@@ -22,401 +22,470 @@ let formBuilderElement = null;
let formBuilder = null;
function onNext(cmp, event, cb) {
- expect(cmp.events).to.be.an('object');
- expect(cmp.events.once).to.be.a('function');
- const fullEvent = `${cmp.options.namespace}.${event}`;
- cmp.events.once(fullEvent, cb);
+ expect(cmp.events).to.be.an('object');
+ expect(cmp.events.once).to.be.a('function');
+ const fullEvent = `${cmp.options.namespace}.${event}`;
+ cmp.events.once(fullEvent, cb);
}
const Harness = {
- builderBefore(done, options = {}) {
- var html; // Unsure what _your code_ needs here -- using `undefined` to trigger default value
- var opt = { url: 'http://localhost/' };
- this.jsdom = require('jsdom-global')(html, opt);
- window.confirm = () => true;
- formBuilderElement = document.createElement('div');
- document.body.appendChild(formBuilderElement);
- formBuilder = new FormBuilder(formBuilderElement, { display: 'form', components: [] }, options);
- formBuilder.instance.ready.then(() => done());
- },
+ builderBefore(done, options = {}) {
+ var html; // Unsure what _your code_ needs here -- using `undefined` to trigger default value
+ var opt = { url: 'http://localhost/' };
+ this.jsdom = require('jsdom-global')(html, opt);
+ window.confirm = () => true;
+ formBuilderElement = document.createElement('div');
+ document.body.appendChild(formBuilderElement);
+ formBuilder = new FormBuilder(
+ formBuilderElement,
+ { display: 'form', components: [] },
+ options,
+ );
+ formBuilder.instance.ready.then(() => done());
+ },
- builderAfter(done) {
- formBuilder.instance.destroy();
- document.body.removeChild(formBuilderElement);
- done();
- },
+ builderAfter(done) {
+ formBuilder.instance.destroy();
+ document.body.removeChild(formBuilderElement);
+ done();
+ },
- getBuilder() {
- return formBuilder.instance;
- },
+ getBuilder() {
+ return formBuilder.instance;
+ },
- saveComponent() {
- const click = new MouseEvent('click', {
- view: window,
- bubbles: true,
- cancelable: true
- });
+ saveComponent() {
+ const click = new MouseEvent('click', {
+ view: window,
+ bubbles: true,
+ cancelable: true,
+ });
- const saveBtn = formBuilder.instance.componentEdit.querySelector('[ref="saveButton"]');
- if (saveBtn) {
- saveBtn.dispatchEvent(click);
- }
- },
+ const saveBtn =
+ formBuilder.instance.componentEdit.querySelector(
+ '[ref="saveButton"]',
+ );
+ if (saveBtn) {
+ saveBtn.dispatchEvent(click);
+ }
+ },
- buildComponent(type, container) {
- // Get the builder sidebar component.
- const webformBuilder = formBuilder.instance;
- let builderGroup = null;
- let groupName = '';
+ buildComponent(type, container) {
+ // Get the builder sidebar component.
+ const webformBuilder = formBuilder.instance;
+ let builderGroup = null;
+ let groupName = '';
- _.each(webformBuilder.groups, (group, key) => {
- if (group.components[type]) {
- groupName = key;
- return false;
- }
- });
+ _.each(webformBuilder.groups, (group, key) => {
+ if (group.components[type]) {
+ groupName = key;
+ return false;
+ }
+ });
- if (!groupName) {
- return;
- }
- const openedGroup = document.getElementById(`group-${groupName}"`);
- if (openedGroup) {
- openedGroup.classList.remove('in');
- }
- const group = document.getElementById(`group-${groupName}`);
- group && group.classList.add('in');
+ if (!groupName) {
+ return;
+ }
+ const openedGroup = document.getElementById(`group-${groupName}"`);
+ if (openedGroup) {
+ openedGroup.classList.remove('in');
+ }
+ const group = document.getElementById(`group-${groupName}`);
+ group && group.classList.add('in');
- let component = webformBuilder.element.querySelector(`span[data-type='${type}']`);
- if (component) {
- component = component && component.cloneNode(true);
- const element = container || webformBuilder.element.querySelector('.drag-container.formio-builder-form');
- element.appendChild(component);
- builderGroup = document.getElementById(`group-container-${groupName}`);
- webformBuilder.onDrop(component, element, builderGroup);
- }
- else {
- return;
- }
+ let component = webformBuilder.element.querySelector(
+ `span[data-type='${type}']`,
+ );
+ if (component) {
+ component = component && component.cloneNode(true);
+ const element =
+ container ||
+ webformBuilder.element.querySelector(
+ '.drag-container.formio-builder-form',
+ );
+ element.appendChild(component);
+ builderGroup = document.getElementById(
+ `group-container-${groupName}`,
+ );
+ webformBuilder.onDrop(component, element, builderGroup);
+ } else {
+ return;
+ }
- return webformBuilder;
- },
+ return webformBuilder;
+ },
- setComponentProperty(property, before, after, cb) {
- const component = _.cloneDeep(formBuilder.editForm.submission);
- assert.equal(_.get(component.data, property), before);
- _.set(component.data, property, after);
- formBuilder.off('updateComponent');
- formBuilder.on('updateComponent', () => {
- const preview = formBuilder.componentPreview.innerHTML;
- assert.equal(_.get(formBuilder.editForm.submission.data, property), after);
- cb(preview);
- });
- formBuilder.editForm.submission = component;
- },
+ setComponentProperty(property, before, after, cb) {
+ const component = _.cloneDeep(formBuilder.editForm.submission);
+ assert.equal(_.get(component.data, property), before);
+ _.set(component.data, property, after);
+ formBuilder.off('updateComponent');
+ formBuilder.on('updateComponent', () => {
+ const preview = formBuilder.componentPreview.innerHTML;
+ assert.equal(
+ _.get(formBuilder.editForm.submission.data, property),
+ after,
+ );
+ cb(preview);
+ });
+ formBuilder.editForm.submission = component;
+ },
- testBuilderProperty(property, before, after, previewRegEx, cb) {
- Harness.testVisibility(formBuilder.editForm, `.formio-component-${property}`, true);
- Harness.setComponentProperty(property, before, after, (preview) => {
- if (previewRegEx) {
- assert(preview.match(previewRegEx), `${property} not set correctly`);
- }
- Harness.getInputValue(formBuilder.editForm, `data[${property}]`, after);
- cb();
- });
- },
+ testBuilderProperty(property, before, after, previewRegEx, cb) {
+ Harness.testVisibility(
+ formBuilder.editForm,
+ `.formio-component-${property}`,
+ true,
+ );
+ Harness.setComponentProperty(property, before, after, (preview) => {
+ if (previewRegEx) {
+ assert(
+ preview.match(previewRegEx),
+ `${property} not set correctly`,
+ );
+ }
+ Harness.getInputValue(
+ formBuilder.editForm,
+ `data[${property}]`,
+ after,
+ );
+ cb();
+ });
+ },
- getDate() {
- let timestamp = (new Date()).getTime();
- timestamp = parseInt(timestamp / 1000, 10);
- return (new Date(timestamp * 1000)).toISOString();
- },
- testCreate(Component, componentSettings, options = {}) {
- const compSettings = _.cloneDeep(componentSettings);
- const component = new Component(compSettings, _.merge({
- events: new EventEmitter(),
- }, options));
- component.pristine = false;
- return new Promise((resolve) => {
- // Need a parent element to redraw.
- const parent = document.createElement('div');
- const element = document.createElement('div');
- parent.appendChild(element);
- component.build(element);
- assert(Boolean(component.element), `No ${component.type} element created.`);
- return resolve(component);
- });
- },
- testConditionals(form, submission, hidden, done) {
- form.on('change', () => {
- form.everyComponent((comp) => {
- if (hidden.includes(comp.component.key)) {
- // Should be hidden.
- assert(!comp.visible, 'Element should not be visible');
- assert.equal(comp.element.childElementCount, 0, 'Hidden elements should not have children');
- }
- else {
- // Should be visible.
- assert(comp.visible, 'Element should not be hidden');
- assert.notEqual(comp.element.childElementCount, 0, 'Element must be visible');
+ getDate() {
+ let timestamp = new Date().getTime();
+ timestamp = parseInt(timestamp / 1000, 10);
+ return new Date(timestamp * 1000).toISOString();
+ },
+ testCreate(Component, componentSettings, options = {}) {
+ const compSettings = _.cloneDeep(componentSettings);
+ const component = new Component(
+ compSettings,
+ _.merge(
+ {
+ events: new EventEmitter(),
+ },
+ options,
+ ),
+ );
+ component.pristine = false;
+ return new Promise((resolve) => {
+ // Need a parent element to redraw.
+ const parent = document.createElement('div');
+ const element = document.createElement('div');
+ parent.appendChild(element);
+ component.build(element);
+ assert(
+ Boolean(component.element),
+ `No ${component.type} element created.`,
+ );
+ return resolve(component);
+ });
+ },
+ testConditionals(form, submission, hidden, done) {
+ form.on('change', () => {
+ form.everyComponent((comp) => {
+ if (hidden.includes(comp.component.key)) {
+ // Should be hidden.
+ assert(!comp.visible, 'Element should not be visible');
+ assert.equal(
+ comp.element.childElementCount,
+ 0,
+ 'Hidden elements should not have children',
+ );
+ } else {
+ // Should be visible.
+ assert(comp.visible, 'Element should not be hidden');
+ assert.notEqual(
+ comp.element.childElementCount,
+ 0,
+ 'Element must be visible',
+ );
+ }
+ });
+ done();
+ });
+ form.submission = submission;
+ },
+ testVisibility(component, query, visible) {
+ const element = component.element.querySelector(query);
+ assert(element, `${query} not found`);
+ if (visible) {
+ assert(
+ element.style.visibility === '' ||
+ element.style.visibility === 'visible',
+ 'Element must be visible',
+ );
+ } else {
+ assert(
+ element.style.visibility === 'hidden',
+ 'Element must be hidden',
+ );
}
- });
- done();
- });
- form.submission = submission;
- },
- testVisibility(component, query, visible) {
- const element = component.element.querySelector(query);
- assert(element, `${query} not found`);
- if (visible) {
- assert((element.style.visibility === '') || (element.style.visibility === 'visible'), 'Element must be visible');
- }
- else {
- assert(element.style.visibility === 'hidden', 'Element must be hidden');
- }
- },
- testComponentVisibility(component, query, visible) {
- const element = component.element.querySelector(query);
- assert(element, `${query} not found`);
- const isHidden = element.className.includes('formio-hidden');
- if (visible) {
- assert(!isHidden, 'Element must be visible');
- }
- else {
- assert(isHidden, 'Element must be hidden');
- }
- },
- clickElement(component, query) {
- const clickEvent = new MouseEvent('click', {
- view: window,
- bubbles: true,
- cancelable: true
- });
- let element = query;
- if (typeof query === 'string') {
- element = this.testElement(component, query, true);
- }
- return element ? element.dispatchEvent(clickEvent) : null;
- },
- dispatchEvent(eventType, element, query, beforeDispatch) {
- const event = new Event(eventType, { bubbles: true, cancelable: true });
- const el = query instanceof HTMLElement ? query : element.querySelector(query);
- assert(el, 'Element is not found');
- beforeDispatch && beforeDispatch(el);
- el.dispatchEvent(event);
- return el;
- },
- testElements(component, query, number) {
- const elements = component.element.querySelectorAll(query);
- if (number !== undefined) {
- assert.equal(elements.length, number);
- }
- return elements;
- },
- testElement(component, query, exists) {
- const element = component.element.querySelector(query);
- if (exists !== undefined) {
- assert.equal(Boolean(element), Boolean(exists));
- }
- return element;
- },
- testInnerHtml(component, query, content) {
- const element = component.element.querySelector(query);
- assert(element, `${query} not found`);
- assert.equal(element.innerHTML.trim(), content);
- },
- testAttribute(component, query, attribute, value) {
- const element = component.element.querySelector(query);
- assert(element, `${query} not found`);
- assert.equal(element.getAttribute(attribute), value);
- },
- testHasClass(component, query, className) {
- const element = component.element.querySelector(query);
- assert(element, `${query} not found`);
- assert(element.className.split(' ').includes(className));
- },
- testModalWrapperErrorClasses(component, shouldBeInvalid = true, query = '[ref="openModalWrapper"]') {
- const modalWrapper = component.element.querySelector(query);
- assert(modalWrapper, `${query} not found`);
- assert.equal(
- modalWrapper.className.split(' ').includes('formio-error-wrapper'),
- shouldBeInvalid,
- `Should ${shouldBeInvalid ? '' : 'not'} have error class`
- );
- assert.equal(
- modalWrapper.className.split(' ').includes('has-message'),
- shouldBeInvalid,
- `Should ${shouldBeInvalid ? '' : 'not'} have class indicating that the component has a message`
- );
- },
- testElementAttribute(element, attribute, expected) {
- if (element !== undefined && element.getAttribute(attribute)) {
- assert.equal(expected, element.getAttribute(attribute));
- }
- return element;
- },
- testSetGet(component, value) {
- const originValue = _.cloneDeep(value);
- component.setValue(value);
- assert.deepEqual(component.getValue(), originValue);
- return component;
- },
- setInputValue(component, name, value) {
- const inputEvent = new Event('input', { bubbles: true, cancelable: true });
- const element = component.element.querySelector(`input[name="${name}"]`);
- assert(element, `${name} input not found`);
- element.value = value;
- return element.dispatchEvent(inputEvent);
- },
- getInputValue(component, name, value, valueProperty = 'value') {
- const element = component.element.querySelector(`[name="${name}"]`);
- assert(element, `${name} input not found`);
- assert.equal(value, element[valueProperty]);
- },
- setTagsValue(values, component) {
- const blurEvent = new Event('blur');
- const inputEvent = new Event('input', { bubbles: true, cancelable: true });
- const element = component.choices.input.element;
-
- values.forEach(value => {
- element.value = value;
- element.dispatchEvent(inputEvent);
- element.dispatchEvent(blurEvent);
- });
- },
- testSetInput(component, input, output, visible, index = 0) {
- component.setValue(input);
- assert.deepEqual(component.getValue(), output);
- assert.deepEqual(component.refs.input[index].value, visible);
- return component;
- },
- testSubmission(form, submission, onChange) {
- if (onChange) {
- form.on('change', onChange);
- }
- this.testSetGet(form, submission);
- assert.deepEqual(form.data, submission.data);
- },
- testErrors(form, submission, errors, done) {
- form.on('error', (err) => {
- _.each(errors, (error, index) => {
- error.component = form.getComponent(error.component).component;
- assert.deepEqual(err[index].component, error.component);
- assert.equal(err[index].message, error.message);
- });
- form.off('error');
- done();
- });
-
- this.testSetGet(form, submission);
- assert.deepEqual(form.data, submission.data);
- form.submit().catch(() => console.log('Expected error when executing submit in errors test'));
- },
- testValid(component, value) {
- return new Promise((resolve, reject) => {
- let resolved = false;
- component.on('componentChange', () => {
- if (resolved) {
- return;
+ },
+ testComponentVisibility(component, query, visible) {
+ const element = component.element.querySelector(query);
+ assert(element, `${query} not found`);
+ const isHidden = element.className.includes('formio-hidden');
+ if (visible) {
+ assert(!isHidden, 'Element must be visible');
+ } else {
+ assert(isHidden, 'Element must be hidden');
}
- const valid = component.checkValidity();
- if (valid) {
- assert.equal(component.dataValue, value);
- resolve();
+ },
+ clickElement(component, query) {
+ const clickEvent = new MouseEvent('click', {
+ view: window,
+ bubbles: true,
+ cancelable: true,
+ });
+ let element = query;
+ if (typeof query === 'string') {
+ element = this.testElement(component, query, true);
}
- else {
- reject('Component should be valid');
+ return element ? element.dispatchEvent(clickEvent) : null;
+ },
+ dispatchEvent(eventType, element, query, beforeDispatch) {
+ const event = new Event(eventType, { bubbles: true, cancelable: true });
+ const el =
+ query instanceof HTMLElement ? query : element.querySelector(query);
+ assert(el, 'Element is not found');
+ beforeDispatch && beforeDispatch(el);
+ el.dispatchEvent(event);
+ return el;
+ },
+ testElements(component, query, number) {
+ const elements = component.element.querySelectorAll(query);
+ if (number !== undefined) {
+ assert.equal(elements.length, number);
}
- resolved = true;
- });
- component.setValue(value);
- component.triggerChange();
- });
- },
- testInvalid(component, value, field, expectedError) {
- return new Promise((resolve, reject) => {
- let resolved = false;
- component.on('componentChange', () => {
- if (resolved) {
- return;
+ return elements;
+ },
+ testElement(component, query, exists) {
+ const element = component.element.querySelector(query);
+ if (exists !== undefined) {
+ assert.equal(Boolean(element), Boolean(exists));
}
- if (component.checkValidity()) {
- reject('Component should not be valid');
- resolved = true;
+ return element;
+ },
+ testInnerHtml(component, query, content) {
+ const element = component.element.querySelector(query);
+ assert(element, `${query} not found`);
+ assert.equal(element.innerHTML.trim(), content);
+ },
+ testAttribute(component, query, attribute, value) {
+ const element = component.element.querySelector(query);
+ assert(element, `${query} not found`);
+ assert.equal(element.getAttribute(attribute), value);
+ },
+ testHasClass(component, query, className) {
+ const element = component.element.querySelector(query);
+ assert(element, `${query} not found`);
+ assert(element.className.split(' ').includes(className));
+ },
+ testModalWrapperErrorClasses(
+ component,
+ shouldBeInvalid = true,
+ query = '[ref="openModalWrapper"]',
+ ) {
+ const modalWrapper = component.element.querySelector(query);
+ assert(modalWrapper, `${query} not found`);
+ assert.equal(
+ modalWrapper.className.split(' ').includes('formio-error-wrapper'),
+ shouldBeInvalid,
+ `Should ${shouldBeInvalid ? '' : 'not'} have error class`,
+ );
+ assert.equal(
+ modalWrapper.className.split(' ').includes('has-message'),
+ shouldBeInvalid,
+ `Should ${
+ shouldBeInvalid ? '' : 'not'
+ } have class indicating that the component has a message`,
+ );
+ },
+ testElementAttribute(element, attribute, expected) {
+ if (element !== undefined && element.getAttribute(attribute)) {
+ assert.equal(expected, element.getAttribute(attribute));
}
- });
- component.on('componentError', (error) => {
- if (resolved) {
- return;
+ return element;
+ },
+ testSetGet(component, value) {
+ const originValue = _.cloneDeep(value);
+ component.setValue(value);
+ assert.deepEqual(component.getValue(), originValue);
+ return component;
+ },
+ setInputValue(component, name, value) {
+ const inputEvent = new Event('input', {
+ bubbles: true,
+ cancelable: true,
+ });
+ const element = component.element.querySelector(
+ `input[name="${name}"]`,
+ );
+ assert(element, `${name} input not found`);
+ element.value = value;
+ return element.dispatchEvent(inputEvent);
+ },
+ getInputValue(component, name, value, valueProperty = 'value') {
+ const element = component.element.querySelector(`[name="${name}"]`);
+ assert(element, `${name} input not found`);
+ assert.equal(value, element[valueProperty]);
+ },
+ setTagsValue(values, component) {
+ const blurEvent = new Event('blur');
+ const inputEvent = new Event('input', {
+ bubbles: true,
+ cancelable: true,
+ });
+ const element = component.choices.input.element;
+
+ values.forEach((value) => {
+ element.value = value;
+ element.dispatchEvent(inputEvent);
+ element.dispatchEvent(blurEvent);
+ });
+ },
+ testSetInput(component, input, output, visible, index = 0) {
+ component.setValue(input);
+ assert.deepEqual(component.getValue(), output);
+ assert.deepEqual(component.refs.input[index].value, visible);
+ return component;
+ },
+ testSubmission(form, submission, onChange) {
+ if (onChange) {
+ form.on('change', onChange);
}
- assert.equal(error.component.key, field);
- assert.equal(error.message, expectedError);
- resolve();
- resolved = true;
- });
+ this.testSetGet(form, submission);
+ assert.deepEqual(form.data, submission.data);
+ },
+ testErrors(form, submission, errors, done) {
+ form.on('error', (err) => {
+ _.each(errors, (error, index) => {
+ error.component = form.getComponent(error.component).component;
+ assert.deepEqual(err[index].component, error.component);
+ assert.equal(err[index].message, error.message);
+ });
+ form.off('error');
+ done();
+ });
- // Set the value.
- component.setValue(value);
- component.triggerChange();
- });
- },
- testComponent(component, test, done) {
- let testBad = true;
- component.on('componentChange', (change) => {
- const valid = component.checkValidity();
- if (valid && !testBad) {
- assert.equal(change.value, test.good.value);
- done();
- }
- });
- component.on('componentError', (error) => {
- if (!testBad) {
- return done(new Error('Validation Error'));
- }
- testBad = false;
- assert.equal(error.component.key, test.bad.field);
- assert.equal(error.message, test.bad.error);
- component.setValue(test.good.value);
- });
+ this.testSetGet(form, submission);
+ assert.deepEqual(form.data, submission.data);
+ form.submit().catch(() =>
+ console.log('Expected error when executing submit in errors test'),
+ );
+ },
+ testValid(component, value) {
+ return new Promise((resolve, reject) => {
+ let resolved = false;
+ component.on('componentChange', () => {
+ if (resolved) {
+ return;
+ }
+ const valid = component.checkValidity();
+ if (valid) {
+ assert.equal(component.dataValue, value);
+ resolve();
+ } else {
+ reject('Component should be valid');
+ }
+ resolved = true;
+ });
+ component.setValue(value);
+ component.triggerChange();
+ });
+ },
+ testInvalid(component, value, field, expectedError) {
+ return new Promise((resolve, reject) => {
+ let resolved = false;
+ component.on('componentChange', () => {
+ if (resolved) {
+ return;
+ }
+ if (component.checkValidity()) {
+ reject('Component should not be valid');
+ resolved = true;
+ }
+ });
+ component.on('componentError', (error) => {
+ if (resolved) {
+ return;
+ }
+ assert.equal(error.component.key, field);
+ assert.equal(error.message, expectedError);
+ resolve();
+ resolved = true;
+ });
- // Set the value.
- component.pristine = false;
- component.setValue(test.bad.value);
- },
- testWizardPrevPage(form, errors, onPrevPage) {
- if (errors) {
- form.on('error', (err) => {
- _.each(errors, (error, index) => {
- error.component = form.getComponent(error.component).component;
- assert.deepEqual(err[index], error);
+ // Set the value.
+ component.setValue(value);
+ component.triggerChange();
+ });
+ },
+ testComponent(component, test, done) {
+ let testBad = true;
+ component.on('componentChange', (change) => {
+ const valid = component.checkValidity();
+ if (valid && !testBad) {
+ assert.equal(change.value, test.good.value);
+ done();
+ }
});
- });
- }
- if (onPrevPage) {
- form.on('prevPage', onPrevPage);
- }
- return form.prevPage();
- },
- testWizardNextPage(form, errors, onNextPage) {
- if (errors) {
- form.on('error', (err) => {
- _.each(errors, (error, index) => {
- error.component = form.getComponent(error.component).component;
- assert.deepEqual(err[index], error);
+ component.on('componentError', (error) => {
+ if (!testBad) {
+ return done(new Error('Validation Error'));
+ }
+ testBad = false;
+ assert.equal(error.component.key, test.bad.field);
+ assert.equal(error.message, test.bad.error);
+ component.setValue(test.good.value);
});
- });
- }
- if (onNextPage) {
- form.on('nextPage', onNextPage);
- }
- return form.nextPage();
- },
- testNumberBlur(cmp, inv, outv, display, index = 0) {
- const input = _.get(cmp, ['refs', 'input', index], {});
- input.value = inv;
- input.dispatchEvent(new Event('blur'));
- assert.strictEqual(cmp.getValueAt(index), outv);
- assert.strictEqual(input.value, display);
- },
- onNext
+
+ // Set the value.
+ component.pristine = false;
+ component.setValue(test.bad.value);
+ },
+ testWizardPrevPage(form, errors, onPrevPage) {
+ if (errors) {
+ form.on('error', (err) => {
+ _.each(errors, (error, index) => {
+ error.component = form.getComponent(
+ error.component,
+ ).component;
+ assert.deepEqual(err[index], error);
+ });
+ });
+ }
+ if (onPrevPage) {
+ form.on('prevPage', onPrevPage);
+ }
+ return form.prevPage();
+ },
+ testWizardNextPage(form, errors, onNextPage) {
+ if (errors) {
+ form.on('error', (err) => {
+ _.each(errors, (error, index) => {
+ error.component = form.getComponent(
+ error.component,
+ ).component;
+ assert.deepEqual(err[index], error);
+ });
+ });
+ }
+ if (onNextPage) {
+ form.on('nextPage', onNextPage);
+ }
+ return form.nextPage();
+ },
+ testNumberBlur(cmp, inv, outv, display, index = 0) {
+ const input = _.get(cmp, ['refs', 'input', index], {});
+ input.value = inv;
+ input.dispatchEvent(new Event('blur'));
+ assert.strictEqual(cmp.getValueAt(index), outv);
+ assert.strictEqual(input.value, display);
+ },
+ onNext,
};
export default Harness;
diff --git a/test/numberFormatPolyfill.js b/test/numberFormatPolyfill.js
index e3218fd759..c1fbc2c87c 100644
--- a/test/numberFormatPolyfill.js
+++ b/test/numberFormatPolyfill.js
@@ -3,3578 +3,10660 @@
(function (undefined) {
// Intl
- ! function (e, r) {
- e.IntlPolyfill = r()
- }(this, function () {
- "use strict";
-
- function e(e) {
- if ("function" == typeof Math.log10) return Math.floor(Math.log10(e));
- var r = Math.round(Math.log(e) * Math.LOG10E);
- return r - (Number("1e" + r) > e)
- }
-
- function r(e) {
- for (var t in e)(e instanceof r || Me.call(e, t)) && Ie(this, t, {
- value: e[t],
- enumerable: !0,
- writable: !0,
- configurable: !0
- })
- }
-
- function t() {
- Ie(this, "length", {
- writable: !0,
- value: 0
- }), arguments.length && Ge.apply(this, qe.call(arguments))
- }
-
- function n() {
- if ($e.disableRegExpRestore) return function () {};
- for (var e = {
- lastMatch: RegExp.lastMatch || "",
- leftContext: RegExp.leftContext,
- multiline: RegExp.multiline,
- input: RegExp.input
- }, r = !1, n = 1; n <= 9; n++) r = (e["$" + n] = RegExp["$" + n]) || r;
- return function () {
- var n = /[.?*+^$[\]\\(){}|-]/g,
- a = e.lastMatch.replace(n, "\\$&"),
- i = new t;
- if (r)
- for (var o = 1; o <= 9; o++) {
- var s = e["$" + o];
- s ? (s = s.replace(n, "\\$&"), a = a.replace(s, "(" + s + ")")) : a = "()" + a, Ge.call(i, a.slice(0, a.indexOf("(") + 1)), a = a.slice(a.indexOf("(") + 1)
- }
- var l = Ze.call(i, "") + a;
- l = l.replace(/(\\\(|\\\)|[^()])+/g, function (e) {
- return "[\\s\\S]{" + e.replace("\\", "").length + "}"
- });
- var c = new RegExp(l, e.multiline ? "gm" : "g");
- c.lastIndex = e.leftContext.length, c.exec(e.input)
- }
- }
-
- function a(e) {
- if (null === e) throw new TypeError("Cannot convert null or undefined to object");
- return "object" === ("undefined" == typeof e ? "undefined" : Ne.typeof(e)) ? e : Object(e)
- }
-
- function i(e) {
- return "number" == typeof e ? e : Number(e)
- }
-
- function o(e) {
- var r = i(e);
- return isNaN(r) ? 0 : 0 === r || r === -0 || r === +(1 / 0) || r === -(1 / 0) ? r : r < 0 ? Math.floor(Math.abs(r)) * -1 : Math.floor(Math.abs(r))
- }
-
- function s(e) {
- var r = o(e);
- return r <= 0 ? 0 : r === 1 / 0 ? Math.pow(2, 53) - 1 : Math.min(r, Math.pow(2, 53) - 1)
- }
-
- function l(e) {
- return Me.call(e, "__getInternalProperties") ? e.__getInternalProperties(Ke) : Re(null)
- }
-
- function c(e) {
- cr = e
- }
-
- function u(e) {
- for (var r = e.length; r--;) {
- var t = e.charAt(r);
- t >= "a" && t <= "z" && (e = e.slice(0, r) + t.toUpperCase() + e.slice(r + 1))
- }
- return e
- }
-
- function g(e) {
- return !!ir.test(e) && (!or.test(e) && !sr.test(e))
- }
-
- function f(e) {
- var r = void 0,
- t = void 0;
- e = e.toLowerCase(), t = e.split("-");
- for (var n = 1, a = t.length; n < a; n++)
- if (2 === t[n].length) t[n] = t[n].toUpperCase();
- else if (4 === t[n].length) t[n] = t[n].charAt(0).toUpperCase() + t[n].slice(1);
- else if (1 === t[n].length && "x" !== t[n]) break;
- e = Ze.call(t, "-"), (r = e.match(lr)) && r.length > 1 && (r.sort(), e = e.replace(RegExp("(?:" + lr.source + ")+", "i"), Ze.call(r, ""))), Me.call(ur.tags, e) && (e = ur.tags[e]), t = e.split("-");
- for (var i = 1, o = t.length; i < o; i++) Me.call(ur.subtags, t[i]) ? t[i] = ur.subtags[t[i]] : Me.call(ur.extLang, t[i]) && (t[i] = ur.extLang[t[i]][0], 1 === i && ur.extLang[t[1]][1] === t[0] && (t = qe.call(t, i++), o -= 1));
- return Ze.call(t, "-")
- }
-
- function m() {
- return cr
- }
-
- function v(e) {
- var r = String(e),
- t = u(r);
- return gr.test(t) !== !1
- }
-
- function d(e) {
- if (void 0 === e) return new t;
- var r = new t;
- e = "string" == typeof e ? [e] : e;
- for (var n = a(e), i = s(n.length), o = 0; o < i;) {
- var l = String(o),
- c = l in n;
- if (c) {
- var u = n[l];
- if (null === u || "string" != typeof u && "object" !== ("undefined" == typeof u ? "undefined" : Ne.typeof(u))) throw new TypeError("String or Object type expected");
- var m = String(u);
- if (!g(m)) throw new RangeError("'" + m + "' is not a structurally valid language tag");
- m = f(m), Ae.call(r, m) === -1 && Ge.call(r, m)
+ !(function (e, r) {
+ e.IntlPolyfill = r();
+ })(this, function () {
+ 'use strict';
+
+ function e(e) {
+ if ('function' == typeof Math.log10)
+ return Math.floor(Math.log10(e));
+ var r = Math.round(Math.log(e) * Math.LOG10E);
+ return r - (Number('1e' + r) > e);
+ }
+
+ function r(e) {
+ for (var t in e)
+ (e instanceof r || Me.call(e, t)) &&
+ Ie(this, t, {
+ value: e[t],
+ enumerable: !0,
+ writable: !0,
+ configurable: !0,
+ });
+ }
+
+ function t() {
+ Ie(this, 'length', {
+ writable: !0,
+ value: 0,
+ }),
+ arguments.length && Ge.apply(this, qe.call(arguments));
+ }
+
+ function n() {
+ if ($e.disableRegExpRestore) return function () {};
+ for (
+ var e = {
+ lastMatch: RegExp.lastMatch || '',
+ leftContext: RegExp.leftContext,
+ multiline: RegExp.multiline,
+ input: RegExp.input,
+ },
+ r = !1,
+ n = 1;
+ n <= 9;
+ n++
+ )
+ r = (e['$' + n] = RegExp['$' + n]) || r;
+ return function () {
+ var n = /[.?*+^$[\]\\(){}|-]/g,
+ a = e.lastMatch.replace(n, '\\$&'),
+ i = new t();
+ if (r)
+ for (var o = 1; o <= 9; o++) {
+ var s = e['$' + o];
+ s
+ ? ((s = s.replace(n, '\\$&')),
+ (a = a.replace(s, '(' + s + ')')))
+ : (a = '()' + a),
+ Ge.call(i, a.slice(0, a.indexOf('(') + 1)),
+ (a = a.slice(a.indexOf('(') + 1));
+ }
+ var l = Ze.call(i, '') + a;
+ l = l.replace(/(\\\(|\\\)|[^()])+/g, function (e) {
+ return '[\\s\\S]{' + e.replace('\\', '').length + '}';
+ });
+ var c = new RegExp(l, e.multiline ? 'gm' : 'g');
+ (c.lastIndex = e.leftContext.length), c.exec(e.input);
+ };
}
- o++
- }
- return r
- }
-
- function h(e, r) {
- for (var t = r; t;) {
- if (Ae.call(e, t) > -1) return t;
- var n = t.lastIndexOf("-");
- if (n < 0) return;
- n >= 2 && "-" === t.charAt(n - 2) && (n -= 2), t = t.substring(0, n)
- }
- }
-
- function p(e, t) {
- for (var n = 0, a = t.length, i = void 0, o = void 0, s = void 0; n < a && !i;) o = t[n], s = String(o).replace(fr, ""), i = h(e, s), n++;
- var l = new r;
- if (void 0 !== i) {
- if (l["[[locale]]"] = i, String(o) !== String(s)) {
- var c = o.match(fr)[0],
- u = o.indexOf("-u-");
- l["[[extension]]"] = c, l["[[extensionIndex]]"] = u
+
+ function a(e) {
+ if (null === e)
+ throw new TypeError(
+ 'Cannot convert null or undefined to object',
+ );
+ return 'object' ===
+ ('undefined' == typeof e ? 'undefined' : Ne.typeof(e))
+ ? e
+ : Object(e);
+ }
+
+ function i(e) {
+ return 'number' == typeof e ? e : Number(e);
+ }
+
+ function o(e) {
+ var r = i(e);
+ return isNaN(r)
+ ? 0
+ : 0 === r || r === -0 || r === +(1 / 0) || r === -(1 / 0)
+ ? r
+ : r < 0
+ ? Math.floor(Math.abs(r)) * -1
+ : Math.floor(Math.abs(r));
+ }
+
+ function s(e) {
+ var r = o(e);
+ return r <= 0
+ ? 0
+ : r === 1 / 0
+ ? Math.pow(2, 53) - 1
+ : Math.min(r, Math.pow(2, 53) - 1);
}
- } else l["[[locale]]"] = m();
- return l
- }
-
- function y(e, r) {
- return p(e, r)
- }
-
- function b(e, t, n, a, i) {
- if (0 === e.length) throw new ReferenceError("No locale data has been provided for this object yet.");
- var o = n["[[localeMatcher]]"],
- s = void 0;
- s = "lookup" === o ? p(e, t) : y(e, t);
- var l = s["[[locale]]"],
- c = void 0,
- u = void 0;
- if (Me.call(s, "[[extension]]")) {
- var g = s["[[extension]]"],
- m = String.prototype.split;
- c = m.call(g, "-"), u = c.length
- }
- var v = new r;
- v["[[dataLocale]]"] = l;
- for (var d = "-u", h = 0, b = a.length; h < b;) {
- var w = a[h],
- x = i[l],
- j = x[w],
- D = j[0],
- z = "",
- k = Ae;
- if (void 0 !== c) {
- var O = k.call(c, w);
- if (O !== -1)
- if (O + 1 < u && c[O + 1].length > 2) {
- var F = c[O + 1],
- S = k.call(j, F);
- S !== -1 && (D = F, z = "-" + w + "-" + D)
- } else {
- var E = k(j, "true");
- E !== -1 && (D = "true")
+
+ function l(e) {
+ return Me.call(e, '__getInternalProperties')
+ ? e.__getInternalProperties(Ke)
+ : Re(null);
+ }
+
+ function c(e) {
+ cr = e;
+ }
+
+ function u(e) {
+ for (var r = e.length; r--; ) {
+ var t = e.charAt(r);
+ t >= 'a' &&
+ t <= 'z' &&
+ (e = e.slice(0, r) + t.toUpperCase() + e.slice(r + 1));
}
+ return e;
}
- if (Me.call(n, "[[" + w + "]]")) {
- var L = n["[[" + w + "]]"];
- k.call(j, L) !== -1 && L !== D && (D = L, z = "")
+
+ function g(e) {
+ return !!ir.test(e) && !or.test(e) && !sr.test(e);
}
- v["[[" + w + "]]"] = D, d += z, h++
- }
- if (d.length > 2) {
- var P = l.indexOf("-x-");
- if (P === -1) l += d;
- else {
- var N = l.substring(0, P),
- T = l.substring(P);
- l = N + d + T
+
+ function f(e) {
+ var r = void 0,
+ t = void 0;
+ (e = e.toLowerCase()), (t = e.split('-'));
+ for (var n = 1, a = t.length; n < a; n++)
+ if (2 === t[n].length) t[n] = t[n].toUpperCase();
+ else if (4 === t[n].length)
+ t[n] = t[n].charAt(0).toUpperCase() + t[n].slice(1);
+ else if (1 === t[n].length && 'x' !== t[n]) break;
+ (e = Ze.call(t, '-')),
+ (r = e.match(lr)) &&
+ r.length > 1 &&
+ (r.sort(),
+ (e = e.replace(
+ RegExp('(?:' + lr.source + ')+', 'i'),
+ Ze.call(r, ''),
+ ))),
+ Me.call(ur.tags, e) && (e = ur.tags[e]),
+ (t = e.split('-'));
+ for (var i = 1, o = t.length; i < o; i++)
+ Me.call(ur.subtags, t[i])
+ ? (t[i] = ur.subtags[t[i]])
+ : Me.call(ur.extLang, t[i]) &&
+ ((t[i] = ur.extLang[t[i]][0]),
+ 1 === i &&
+ ur.extLang[t[1]][1] === t[0] &&
+ ((t = qe.call(t, i++)), (o -= 1)));
+ return Ze.call(t, '-');
}
- l = f(l)
- }
- return v["[[locale]]"] = l, v
- }
-
- function w(e, r) {
- for (var n = r.length, a = new t, i = 0; i < n;) {
- var o = r[i],
- s = String(o).replace(fr, ""),
- l = h(e, s);
- void 0 !== l && Ge.call(a, o), i++
- }
- var c = qe.call(a);
- return c
- }
-
- function x(e, r) {
- return w(e, r)
- }
-
- function j(e, t, n) {
- var i = void 0,
- o = void 0;
- if (void 0 !== n && (n = new r(a(n)), i = n.localeMatcher, void 0 !== i && (i = String(i), "lookup" !== i && "best fit" !== i))) throw new RangeError('matcher should be "lookup" or "best fit"');
- o = void 0 === i || "best fit" === i ? x(e, t) : w(e, t);
- for (var s in o) Me.call(o, s) && Ie(o, s, {
- writable: !1,
- configurable: !1,
- value: o[s]
- });
- return Ie(o, "length", {
- writable: !1
- }), o
- }
-
- function D(e, r, t, n, a) {
- var i = e[r];
- if (void 0 !== i) {
- if (i = "boolean" === t ? Boolean(i) : "string" === t ? String(i) : i, void 0 !== n && Ae.call(n, i) === -1) throw new RangeError("'" + i + "' is not an allowed value for `" + r + "`");
- return i
- }
- return a
- }
-
- function z(e, r, t, n, a) {
- var i = e[r];
- if (void 0 !== i) {
- if (i = Number(i), isNaN(i) || i < t || i > n) throw new RangeError("Value is not a number or outside accepted range");
- return Math.floor(i)
- }
- return a
- }
-
- function k(e) {
- for (var r = d(e), t = [], n = r.length, a = 0; a < n;) t[a] = r[a], a++;
- return t
- }
-
- function O() {
- var e = arguments[0],
- r = arguments[1];
- return this && this !== mr ? F(a(this), e, r) : new mr.NumberFormat(e, r)
- }
-
- function F(e, i, o) {
- var s = l(e),
- c = n();
- if (s["[[initializedIntlObject]]"] === !0) throw new TypeError("`this` object has already been initialized as an Intl object");
- Ie(e, "__getInternalProperties", {
- value: function () {
- if (arguments[0] === Ke) return s
+
+ function m() {
+ return cr;
}
- }), s["[[initializedIntlObject]]"] = !0;
- var u = d(i);
- o = void 0 === o ? {} : a(o);
- var g = new r,
- f = D(o, "localeMatcher", "string", new t("lookup", "best fit"), "best fit");
- g["[[localeMatcher]]"] = f;
- var m = $e.NumberFormat["[[localeData]]"],
- h = b($e.NumberFormat["[[availableLocales]]"], u, g, $e.NumberFormat["[[relevantExtensionKeys]]"], m);
- s["[[locale]]"] = h["[[locale]]"], s["[[numberingSystem]]"] = h["[[nu]]"], s["[[dataLocale]]"] = h["[[dataLocale]]"];
- var p = h["[[dataLocale]]"],
- y = D(o, "style", "string", new t("decimal", "percent", "currency"), "decimal");
- s["[[style]]"] = y;
- var w = D(o, "currency", "string");
- if (void 0 !== w && !v(w)) throw new RangeError("'" + w + "' is not a valid currency code");
- if ("currency" === y && void 0 === w) throw new TypeError("Currency code is required when style is currency");
- var x = void 0;
- "currency" === y && (w = w.toUpperCase(), s["[[currency]]"] = w, x = S(w));
- var j = D(o, "currencyDisplay", "string", new t("code", "symbol", "name"), "symbol");
- "currency" === y && (s["[[currencyDisplay]]"] = j);
- var k = z(o, "minimumIntegerDigits", 1, 21, 1);
- s["[[minimumIntegerDigits]]"] = k;
- var O = "currency" === y ? x : 0,
- F = z(o, "minimumFractionDigits", 0, 20, O);
- s["[[minimumFractionDigits]]"] = F;
- var L = "currency" === y ? Math.max(F, x) : "percent" === y ? Math.max(F, 0) : Math.max(F, 3),
- P = z(o, "maximumFractionDigits", F, 20, L);
- s["[[maximumFractionDigits]]"] = P;
- var N = o.minimumSignificantDigits,
- T = o.maximumSignificantDigits;
- void 0 === N && void 0 === T || (N = z(o, "minimumSignificantDigits", 1, 21, 1), T = z(o, "maximumSignificantDigits", N, 21, 21), s["[[minimumSignificantDigits]]"] = N, s["[[maximumSignificantDigits]]"] = T);
- var _ = D(o, "useGrouping", "boolean", void 0, !0);
- s["[[useGrouping]]"] = _;
- var M = m[p],
- I = M.patterns,
- A = I[y];
- return s["[[positivePattern]]"] = A.positivePattern, s["[[negativePattern]]"] = A.negativePattern, s["[[boundFormat]]"] = void 0, s["[[initializedNumberFormat]]"] = !0, _e && (e.format = E.call(e)), c(), e
- }
-
- function S(e) {
- return void 0 !== vr[e] ? vr[e] : 2
- }
-
- function E() {
- var e = null !== this && "object" === Ne.typeof(this) && l(this);
- if (!e || !e["[[initializedNumberFormat]]"]) throw new TypeError("`this` value for format() is not an initialized Intl.NumberFormat object.");
- if (void 0 === e["[[boundFormat]]"]) {
- var r = function (e) {
- return T(this, Number(e))
- },
- t = Ue.call(r, this);
- e["[[boundFormat]]"] = t
- }
- return e["[[boundFormat]]"]
- }
-
- function L() {
- var e = arguments.length <= 0 || void 0 === arguments[0] ? void 0 : arguments[0],
- r = null !== this && "object" === Ne.typeof(this) && l(this);
- if (!r || !r["[[initializedNumberFormat]]"]) throw new TypeError("`this` value for formatToParts() is not an initialized Intl.NumberFormat object.");
- var t = Number(e);
- return P(this, t)
- }
-
- function P(e, r) {
- for (var t = N(e, r), n = [], a = 0, i = 0; t.length > i; i++) {
- var o = t[i],
- s = {};
- s.type = o["[[type]]"], s.value = o["[[value]]"], n[a] = s, a += 1
- }
- return n
- }
-
- function N(e, r) {
- var n = l(e),
- a = n["[[dataLocale]]"],
- i = n["[[numberingSystem]]"],
- o = $e.NumberFormat["[[localeData]]"][a],
- s = o.symbols[i] || o.symbols.latn,
- c = void 0;
- !isNaN(r) && r < 0 ? (r = -r, c = n["[[negativePattern]]"]) : c = n["[[positivePattern]]"];
- for (var u = new t, g = c.indexOf("{", 0), f = 0, m = 0, v = c.length; g > -1 && g < v;) {
- if (f = c.indexOf("}", g), f === -1) throw new Error;
- if (g > m) {
- var d = c.substring(m, g);
- Ge.call(u, {
- "[[type]]": "literal",
- "[[value]]": d
- })
+
+ function v(e) {
+ var r = String(e),
+ t = u(r);
+ return gr.test(t) !== !1;
}
- var h = c.substring(g + 1, f);
- if ("number" === h)
- if (isNaN(r)) {
- var p = s.nan;
- Ge.call(u, {
- "[[type]]": "nan",
- "[[value]]": p
- })
- } else if (isFinite(r)) {
- "percent" === n["[[style]]"] && isFinite(r) && (r *= 100);
- var y = void 0;
- y = Me.call(n, "[[minimumSignificantDigits]]") && Me.call(n, "[[maximumSignificantDigits]]") ? _(r, n["[[minimumSignificantDigits]]"], n["[[maximumSignificantDigits]]"]) : M(r, n["[[minimumIntegerDigits]]"], n["[[minimumFractionDigits]]"], n["[[maximumFractionDigits]]"]), dr[i] ? ! function () {
- var e = dr[i];
- y = String(y).replace(/\d/g, function (r) {
- return e[r]
- })
- }() : y = String(y);
- var b = void 0,
- w = void 0,
- x = y.indexOf(".", 0);
- if (x > 0 ? (b = y.substring(0, x), w = y.substring(x + 1, x.length)) : (b = y, w = void 0), n["[[useGrouping]]"] === !0) {
- var j = s.group,
- D = [],
- z = o.patterns.primaryGroupSize || 3,
- k = o.patterns.secondaryGroupSize || z;
- if (b.length > z) {
- var O = b.length - z,
- F = O % k,
- S = b.slice(0, F);
- for (S.length && Ge.call(D, S); F < O;) Ge.call(D, b.slice(F, F + k)), F += k;
- Ge.call(D, b.slice(O))
- } else Ge.call(D, b);
- if (0 === D.length) throw new Error;
- for (; D.length;) {
- var E = Be.call(D);
- Ge.call(u, {
- "[[type]]": "integer",
- "[[value]]": E
- }), D.length && Ge.call(u, {
- "[[type]]": "group",
- "[[value]]": j
- })
+
+ function d(e) {
+ if (void 0 === e) return new t();
+ var r = new t();
+ e = 'string' == typeof e ? [e] : e;
+ for (var n = a(e), i = s(n.length), o = 0; o < i; ) {
+ var l = String(o),
+ c = l in n;
+ if (c) {
+ var u = n[l];
+ if (
+ null === u ||
+ ('string' != typeof u &&
+ 'object' !==
+ ('undefined' == typeof u
+ ? 'undefined'
+ : Ne.typeof(u)))
+ )
+ throw new TypeError('String or Object type expected');
+ var m = String(u);
+ if (!g(m))
+ throw new RangeError(
+ "'" +
+ m +
+ "' is not a structurally valid language tag",
+ );
+ (m = f(m)), Ae.call(r, m) === -1 && Ge.call(r, m);
+ }
+ o++;
}
- } else Ge.call(u, {
- "[[type]]": "integer",
- "[[value]]": b
- });
- if (void 0 !== w) {
- var L = s.decimal;
- Ge.call(u, {
- "[[type]]": "decimal",
- "[[value]]": L
- }), Ge.call(u, {
- "[[type]]": "fraction",
- "[[value]]": w
- })
- }
- } else {
- var P = s.infinity;
- Ge.call(u, {
- "[[type]]": "infinity",
- "[[value]]": P
- })
- } else if ("plusSign" === h) {
- var N = s.plusSign;
- Ge.call(u, {
- "[[type]]": "plusSign",
- "[[value]]": N
- })
- } else if ("minusSign" === h) {
- var T = s.minusSign;
- Ge.call(u, {
- "[[type]]": "minusSign",
- "[[value]]": T
- })
- } else if ("percentSign" === h && "percent" === n["[[style]]"]) {
- var I = s.percentSign;
- Ge.call(u, {
- "[[type]]": "literal",
- "[[value]]": I
- })
- } else if ("currency" === h && "currency" === n["[[style]]"]) {
- var A = n["[[currency]]"],
- R = void 0;
- "code" === n["[[currencyDisplay]]"] ? R = A : "symbol" === n["[[currencyDisplay]]"] ? R = o.currencies[A] || A : "name" === n["[[currencyDisplay]]"] && (R = A), Ge.call(u, {
- "[[type]]": "currency",
- "[[value]]": R
- })
- } else {
- var q = c.substring(g, f);
- Ge.call(u, {
- "[[type]]": "literal",
- "[[value]]": q
- })
+ return r;
}
- m = f + 1, g = c.indexOf("{", m)
- }
- if (m < v) {
- var C = c.substring(m, v);
- Ge.call(u, {
- "[[type]]": "literal",
- "[[value]]": C
- })
- }
- return u
- }
-
- function T(e, r) {
- for (var t = N(e, r), n = "", a = 0; t.length > a; a++) {
- var i = t[a];
- n += i["[[value]]"]
- }
- return n
- }
-
- function _(r, t, n) {
- var a = n,
- i = void 0,
- o = void 0;
- if (0 === r) i = Ze.call(Array(a + 1), "0"), o = 0;
- else {
- o = e(Math.abs(r));
- var s = Math.round(Math.exp(Math.abs(o - a + 1) * Math.LN10));
- i = String(Math.round(o - a + 1 < 0 ? r * s : r / s))
- }
- if (o >= a) return i + Ze.call(Array(o - a + 1 + 1), "0");
- if (o === a - 1) return i;
- if (o >= 0 ? i = i.slice(0, o + 1) + "." + i.slice(o + 1) : o < 0 && (i = "0." + Ze.call(Array(-(o + 1) + 1), "0") + i), i.indexOf(".") >= 0 && n > t) {
- for (var l = n - t; l > 0 && "0" === i.charAt(i.length - 1);) i = i.slice(0, -1), l--;
- "." === i.charAt(i.length - 1) && (i = i.slice(0, -1))
- }
- return i
- }
-
- function M(e, r, t, n) {
- var a = n,
- i = Math.pow(10, a) * e,
- o = 0 === i ? "0" : i.toFixed(0),
- s = void 0,
- l = (s = o.indexOf("e")) > -1 ? o.slice(s + 1) : 0;
- l && (o = o.slice(0, s).replace(".", ""), o += Ze.call(Array(l - (o.length - 1) + 1), "0"));
- var c = void 0;
- if (0 !== a) {
- var u = o.length;
- if (u <= a) {
- var g = Ze.call(Array(a + 1 - u + 1), "0");
- o = g + o, u = a + 1
+
+ function h(e, r) {
+ for (var t = r; t; ) {
+ if (Ae.call(e, t) > -1) return t;
+ var n = t.lastIndexOf('-');
+ if (n < 0) return;
+ n >= 2 && '-' === t.charAt(n - 2) && (n -= 2),
+ (t = t.substring(0, n));
+ }
}
- var f = o.substring(0, u - a),
- m = o.substring(u - a, o.length);
- o = f + "." + m, c = f.length
- } else c = o.length;
- for (var v = n - t; v > 0 && "0" === o.slice(-1);) o = o.slice(0, -1), v--;
- if ("." === o.slice(-1) && (o = o.slice(0, -1)), c < r) {
- var d = Ze.call(Array(r - c + 1), "0");
- o = d + o
- }
- return o
- }
-
- function I(e) {
- for (var r = 0; r < wr.length; r += 1)
- if (e.hasOwnProperty(wr[r])) return !1;
- return !0
- }
-
- function A(e) {
- for (var r = 0; r < br.length; r += 1)
- if (e.hasOwnProperty(br[r])) return !1;
- return !0
- }
-
- function R(e, r) {
- for (var t = {
- _: {}
- }, n = 0; n < br.length; n += 1) e[br[n]] && (t[br[n]] = e[br[n]]), e._[br[n]] && (t._[br[n]] = e._[br[n]]);
- for (var a = 0; a < wr.length; a += 1) r[wr[a]] && (t[wr[a]] = r[wr[a]]), r._[wr[a]] && (t._[wr[a]] = r._[wr[a]]);
- return t
- }
-
- function q(e) {
- return e.pattern12 = e.extendedPattern.replace(/'([^']*)'/g, function (e, r) {
- return r ? r : "'"
- }), e.pattern = e.pattern12.replace("{ampm}", "").replace(pr, ""), e
- }
-
- function C(e, r) {
- switch (e.charAt(0)) {
- case "G":
- return r.era = ["short", "short", "short", "long", "narrow"][e.length - 1], "{era}";
- case "y":
- case "Y":
- case "u":
- case "U":
- case "r":
- return r.year = 2 === e.length ? "2-digit" : "numeric", "{year}";
- case "Q":
- case "q":
- return r.quarter = ["numeric", "2-digit", "short", "long", "narrow"][e.length - 1], "{quarter}";
- case "M":
- case "L":
- return r.month = ["numeric", "2-digit", "short", "long", "narrow"][e.length - 1], "{month}";
- case "w":
- return r.week = 2 === e.length ? "2-digit" : "numeric", "{weekday}";
- case "W":
- return r.week = "numeric", "{weekday}";
- case "d":
- return r.day = 2 === e.length ? "2-digit" : "numeric", "{day}";
- case "D":
- case "F":
- case "g":
- return r.day = "numeric", "{day}";
- case "E":
- return r.weekday = ["short", "short", "short", "long", "narrow", "short"][e.length - 1], "{weekday}";
- case "e":
- return r.weekday = ["numeric", "2-digit", "short", "long", "narrow", "short"][e.length - 1], "{weekday}";
- case "c":
- return r.weekday = ["numeric", void 0, "short", "long", "narrow", "short"][e.length - 1], "{weekday}";
- case "a":
- case "b":
- case "B":
- return r.hour12 = !0, "{ampm}";
- case "h":
- case "H":
- return r.hour = 2 === e.length ? "2-digit" : "numeric", "{hour}";
- case "k":
- case "K":
- return r.hour12 = !0, r.hour = 2 === e.length ? "2-digit" : "numeric", "{hour}";
- case "m":
- return r.minute = 2 === e.length ? "2-digit" : "numeric", "{minute}";
- case "s":
- return r.second = 2 === e.length ? "2-digit" : "numeric", "{second}";
- case "S":
- case "A":
- return r.second = "numeric", "{second}";
- case "z":
- case "Z":
- case "O":
- case "v":
- case "V":
- case "X":
- case "x":
- return r.timeZoneName = e.length < 4 ? "short" : "long", "{timeZoneName}"
- }
- }
-
- function G(e, r) {
- if (!yr.test(r)) {
- var t = {
- originalPattern: r,
- _: {}
- };
- return t.extendedPattern = r.replace(hr, function (e) {
- return C(e, t._)
- }), e.replace(hr, function (e) {
- return C(e, t)
- }), q(t)
- }
- }
-
- function Z(e) {
- var r = e.availableFormats,
- t = e.timeFormats,
- n = e.dateFormats,
- a = [],
- i = void 0,
- o = void 0,
- s = void 0,
- l = void 0,
- c = void 0,
- u = [],
- g = [];
- for (i in r) r.hasOwnProperty(i) && (o = r[i], s = G(i, o), s && (a.push(s), I(s) ? g.push(s) : A(s) && u.push(s)));
- for (i in t) t.hasOwnProperty(i) && (o = t[i], s = G(i, o), s && (a.push(s), u.push(s)));
- for (i in n) n.hasOwnProperty(i) && (o = n[i], s = G(i, o), s && (a.push(s), g.push(s)));
- for (l = 0; l < u.length; l += 1)
- for (c = 0; c < g.length; c += 1) o = "long" === g[c].month ? g[c].weekday ? e.full : e.long : "short" === g[c].month ? e.medium : e.short, s = R(g[c], u[l]), s.originalPattern = o, s.extendedPattern = o.replace("{0}", u[l].extendedPattern).replace("{1}", g[c].extendedPattern).replace(/^[,\s]+|[,\s]+$/gi, ""), a.push(q(s));
- return a
- }
-
- function B(e, r) {
- if (xr[e] && xr[e][r]) {
- var t;
- return t = {
- originalPattern: xr[e][r],
- _: ge({}, e, r),
- extendedPattern: "{" + e + "}"
- }, ge(t, e, r), ge(t, "pattern12", "{" + e + "}"), ge(t, "pattern", "{" + e + "}"), t
- }
- }
-
- function U(e, r, t, n, a) {
- var i = e[r] && e[r][t] ? e[r][t] : e.gregory[t],
- o = {
- narrow: ["short", "long"],
- short: ["long", "narrow"],
- long: ["short", "narrow"]
- },
- s = Me.call(i, n) ? i[n] : Me.call(i, o[n][0]) ? i[o[n][0]] : i[o[n][1]];
- return null !== a ? s[a] : s
- }
-
- function $() {
- var e = arguments[0],
- r = arguments[1];
- return this && this !== mr ? K(a(this), e, r) : new mr.DateTimeFormat(e, r)
- }
-
- function K(e, a, i) {
- var o = l(e),
- s = n();
- if (o["[[initializedIntlObject]]"] === !0) throw new TypeError("`this` object has already been initialized as an Intl object");
- Ie(e, "__getInternalProperties", {
- value: function () {
- if (arguments[0] === Ke) return o
+
+ function p(e, t) {
+ for (
+ var n = 0, a = t.length, i = void 0, o = void 0, s = void 0;
+ n < a && !i;
+
+ )
+ (o = t[n]), (s = String(o).replace(fr, '')), (i = h(e, s)), n++;
+ var l = new r();
+ if (void 0 !== i) {
+ if (((l['[[locale]]'] = i), String(o) !== String(s))) {
+ var c = o.match(fr)[0],
+ u = o.indexOf('-u-');
+ (l['[[extension]]'] = c), (l['[[extensionIndex]]'] = u);
+ }
+ } else l['[[locale]]'] = m();
+ return l;
}
- }), o["[[initializedIntlObject]]"] = !0;
- var c = d(a);
- i = H(i, "any", "date");
- var g = new r,
- f = D(i, "localeMatcher", "string", new t("lookup", "best fit"), "best fit");
- g["[[localeMatcher]]"] = f;
- var m = $e.DateTimeFormat,
- v = m["[[localeData]]"],
- h = b(m["[[availableLocales]]"], c, g, m["[[relevantExtensionKeys]]"], v);
- o["[[locale]]"] = h["[[locale]]"], o["[[calendar]]"] = h["[[ca]]"], o["[[numberingSystem]]"] = h["[[nu]]"], o["[[dataLocale]]"] = h["[[dataLocale]]"];
- var p = h["[[dataLocale]]"],
- y = i.timeZone;
- if (void 0 !== y && (y = u(y), "UTC" !== y)) throw new RangeError("timeZone is not supported.");
- o["[[timeZone]]"] = y, g = new r;
- for (var w in Dr)
- if (Me.call(Dr, w)) {
- var x = D(i, w, "string", Dr[w]);
- g["[[" + w + "]]"] = x
- } var j = void 0,
- z = v[p],
- k = Y(z.formats);
- if (f = D(i, "formatMatcher", "string", new t("basic", "best fit"), "best fit"), z.formats = k, "basic" === f) j = W(g, k);
- else {
- var O = D(i, "hour12", "boolean");
- g.hour12 = void 0 === O ? z.hour12 : O, j = X(g, k)
- }
- for (var F in Dr)
- if (Me.call(Dr, F) && Me.call(j, F)) {
- var S = j[F];
- S = j._ && Me.call(j._, F) ? j._[F] : S, o["[[" + F + "]]"] = S
- } var E = void 0,
- L = D(i, "hour12", "boolean");
- if (o["[[hour]]"])
- if (L = void 0 === L ? z.hour12 : L, o["[[hour12]]"] = L, L === !0) {
- var P = z.hourNo0;
- o["[[hourNo0]]"] = P, E = j.pattern12
- } else E = j.pattern;
- else E = j.pattern;
- return o["[[pattern]]"] = E, o["[[boundFormat]]"] = void 0, o["[[initializedDateTimeFormat]]"] = !0, _e && (e.format = V.call(e)), s(), e
- }
-
- function Y(e) {
- return "[object Array]" === Object.prototype.toString.call(e) ? e : Z(e)
- }
-
- function H(e, t, n) {
- if (void 0 === e) e = null;
- else {
- var i = a(e);
- e = new r;
- for (var o in i) e[o] = i[o]
- }
- var s = Re;
- e = s(e);
- var l = !0;
- return "date" !== t && "any" !== t || void 0 === e.weekday && void 0 === e.year && void 0 === e.month && void 0 === e.day || (l = !1), "time" !== t && "any" !== t || void 0 === e.hour && void 0 === e.minute && void 0 === e.second || (l = !1), !l || "date" !== n && "all" !== n || (e.year = e.month = e.day = "numeric"), !l || "time" !== n && "all" !== n || (e.hour = e.minute = e.second = "numeric"), e
- }
-
- function W(e, r) {
- for (var t = 120, n = 20, a = 8, i = 6, o = 6, s = 3, l = -(1 / 0), c = void 0, u = 0, g = r.length; u < g;) {
- var f = r[u],
- m = 0;
- for (var v in Dr)
- if (Me.call(Dr, v)) {
- var d = e["[[" + v + "]]"],
- h = Me.call(f, v) ? f[v] : void 0;
- if (void 0 === d && void 0 !== h) m -= n;
- else if (void 0 !== d && void 0 === h) m -= t;
- else {
- var p = ["2-digit", "numeric", "narrow", "short", "long"],
- y = Ae.call(p, d),
- b = Ae.call(p, h),
- w = Math.max(Math.min(b - y, 2), -2);
- 2 === w ? m -= i : 1 === w ? m -= s : w === -1 ? m -= o : w === -2 && (m -= a)
+
+ function y(e, r) {
+ return p(e, r);
+ }
+
+ function b(e, t, n, a, i) {
+ if (0 === e.length)
+ throw new ReferenceError(
+ 'No locale data has been provided for this object yet.',
+ );
+ var o = n['[[localeMatcher]]'],
+ s = void 0;
+ s = 'lookup' === o ? p(e, t) : y(e, t);
+ var l = s['[[locale]]'],
+ c = void 0,
+ u = void 0;
+ if (Me.call(s, '[[extension]]')) {
+ var g = s['[[extension]]'],
+ m = String.prototype.split;
+ (c = m.call(g, '-')), (u = c.length);
}
- } m > l && (l = m, c = f), u++
- }
- return c
- }
-
- function X(e, r) {
- var t = [];
- for (var n in Dr) Me.call(Dr, n) && void 0 !== e["[[" + n + "]]"] && t.push(n);
- if (1 === t.length) {
- var a = B(t[0], e["[[" + t[0] + "]]"]);
- if (a) return a
- }
- for (var i = 120, o = 20, s = 8, l = 6, c = 6, u = 3, g = 2, f = 1, m = -(1 / 0), v = void 0, d = 0, h = r.length; d < h;) {
- var p = r[d],
- y = 0;
- for (var b in Dr)
- if (Me.call(Dr, b)) {
- var w = e["[[" + b + "]]"],
- x = Me.call(p, b) ? p[b] : void 0,
- j = Me.call(p._, b) ? p._[b] : void 0;
- if (w !== j && (y -= g), void 0 === w && void 0 !== x) y -= o;
- else if (void 0 !== w && void 0 === x) y -= i;
- else {
- var D = ["2-digit", "numeric", "narrow", "short", "long"],
- z = Ae.call(D, w),
- k = Ae.call(D, x),
- O = Math.max(Math.min(k - z, 2), -2);
- k <= 1 && z >= 2 || k >= 2 && z <= 1 ? O > 0 ? y -= l : O < 0 && (y -= s) : O > 1 ? y -= u : O < -1 && (y -= c)
+ var v = new r();
+ v['[[dataLocale]]'] = l;
+ for (var d = '-u', h = 0, b = a.length; h < b; ) {
+ var w = a[h],
+ x = i[l],
+ j = x[w],
+ D = j[0],
+ z = '',
+ k = Ae;
+ if (void 0 !== c) {
+ var O = k.call(c, w);
+ if (O !== -1)
+ if (O + 1 < u && c[O + 1].length > 2) {
+ var F = c[O + 1],
+ S = k.call(j, F);
+ S !== -1 && ((D = F), (z = '-' + w + '-' + D));
+ } else {
+ var E = k(j, 'true');
+ E !== -1 && (D = 'true');
+ }
+ }
+ if (Me.call(n, '[[' + w + ']]')) {
+ var L = n['[[' + w + ']]'];
+ k.call(j, L) !== -1 && L !== D && ((D = L), (z = ''));
+ }
+ (v['[[' + w + ']]'] = D), (d += z), h++;
}
- } p._.hour12 !== e.hour12 && (y -= f), y > m && (m = y, v = p), d++
- }
- return v
- }
-
- function V() {
- var e = null !== this && "object" === Ne.typeof(this) && l(this);
- if (!e || !e["[[initializedDateTimeFormat]]"]) throw new TypeError("`this` value for format() is not an initialized Intl.DateTimeFormat object.");
- if (void 0 === e["[[boundFormat]]"]) {
- var r = function () {
- var e = arguments.length <= 0 || void 0 === arguments[0] ? void 0 : arguments[0],
- r = void 0 === e ? Date.now() : i(e);
- return ee(this, r)
- },
- t = Ue.call(r, this);
- e["[[boundFormat]]"] = t
- }
- return e["[[boundFormat]]"]
- }
-
- function J() {
- var e = arguments.length <= 0 || void 0 === arguments[0] ? void 0 : arguments[0],
- r = null !== this && "object" === Ne.typeof(this) && l(this);
- if (!r || !r["[[initializedDateTimeFormat]]"]) throw new TypeError("`this` value for formatToParts() is not an initialized Intl.DateTimeFormat object.");
- var t = void 0 === e ? Date.now() : i(e);
- return re(this, t)
- }
-
- function Q(e, r) {
- if (!isFinite(r)) throw new RangeError("Invalid valid date passed to format");
- var a = e.__getInternalProperties(Ke);
- n();
- for (var i = a["[[locale]]"], o = new mr.NumberFormat([i], {
- useGrouping: !1
- }), s = new mr.NumberFormat([i], {
- minimumIntegerDigits: 2,
- useGrouping: !1
- }), l = te(r, a["[[calendar]]"], a["[[timeZone]]"]), c = a["[[pattern]]"], u = new t, g = 0, f = c.indexOf("{"), m = 0, v = a["[[dataLocale]]"], d = $e.DateTimeFormat["[[localeData]]"][v].calendars, h = a["[[calendar]]"]; f !== -1;) {
- var p = void 0;
- if (m = c.indexOf("}", f), m === -1) throw new Error("Unclosed pattern");
- f > g && Ge.call(u, {
- type: "literal",
- value: c.substring(g, f)
- });
- var y = c.substring(f + 1, m);
- if (Dr.hasOwnProperty(y)) {
- var b = a["[[" + y + "]]"],
- w = l["[[" + y + "]]"];
- if ("year" === y && w <= 0 ? w = 1 - w : "month" === y ? w++ : "hour" === y && a["[[hour12]]"] === !0 && (w %= 12, 0 === w && a["[[hourNo0]]"] === !0 && (w = 12)), "numeric" === b) p = T(o, w);
- else if ("2-digit" === b) p = T(s, w), p.length > 2 && (p = p.slice(-2));
- else if (b in jr) switch (y) {
- case "month":
- p = U(d, h, "months", b, l["[[" + y + "]]"]);
- break;
- case "weekday":
- try {
- p = U(d, h, "days", b, l["[[" + y + "]]"])
- } catch (e) {
- throw new Error("Could not find weekday data for locale " + i)
- }
- break;
- case "timeZoneName":
- p = "";
- break;
- case "era":
- try {
- p = U(d, h, "eras", b, l["[[" + y + "]]"])
- } catch (e) {
- throw new Error("Could not find era data for locale " + i)
- }
- break;
- default:
- p = l["[[" + y + "]]"]
- }
- Ge.call(u, {
- type: y,
- value: p
- })
- } else if ("ampm" === y) {
- var x = l["[[hour]]"];
- p = U(d, h, "dayPeriods", x > 11 ? "pm" : "am", null), Ge.call(u, {
- type: "dayPeriod",
- value: p
- })
- } else Ge.call(u, {
- type: "literal",
- value: c.substring(f, m + 1)
- });
- g = m + 1, f = c.indexOf("{", g)
- }
- return m < c.length - 1 && Ge.call(u, {
- type: "literal",
- value: c.substr(m + 1)
- }), u
- }
-
- function ee(e, r) {
- for (var t = Q(e, r), n = "", a = 0; t.length > a; a++) {
- var i = t[a];
- n += i.value
- }
- return n
- }
-
- function re(e, r) {
- for (var t = Q(e, r), n = [], a = 0; t.length > a; a++) {
- var i = t[a];
- n.push({
- type: i.type,
- value: i.value
- })
- }
- return n
- }
-
- function te(e, t, n) {
- var a = new Date(e),
- i = "get" + (n || "");
- return new r({
- "[[weekday]]": a[i + "Day"](),
- "[[era]]": +(a[i + "FullYear"]() >= 0),
- "[[year]]": a[i + "FullYear"](),
- "[[month]]": a[i + "Month"](),
- "[[day]]": a[i + "Date"](),
- "[[hour]]": a[i + "Hours"](),
- "[[minute]]": a[i + "Minutes"](),
- "[[second]]": a[i + "Seconds"](),
- "[[inDST]]": !1
- })
- }
-
- function ne(e, r) {
- if (!e.number) throw new Error("Object passed doesn't contain locale data for Intl.NumberFormat");
- var t = void 0,
- n = [r],
- a = r.split("-");
- for (a.length > 2 && 4 === a[1].length && Ge.call(n, a[0] + "-" + a[2]); t = Be.call(n);) Ge.call($e.NumberFormat["[[availableLocales]]"], t), $e.NumberFormat["[[localeData]]"][t] = e.number, e.date && (e.date.nu = e.number.nu, Ge.call($e.DateTimeFormat["[[availableLocales]]"], t), $e.DateTimeFormat["[[localeData]]"][t] = e.date);
- void 0 === cr && c(r)
- }
- var ae = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
- return typeof e
- } : function (e) {
- return e && "function" == typeof Symbol && e.constructor === Symbol ? "symbol" : typeof e
- },
- ie = function () {
- var e = "function" == typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103;
- return function (r, t, n, a) {
- var i = r && r.defaultProps,
- o = arguments.length - 3;
- if (t || 0 === o || (t = {}), t && i)
- for (var s in i) void 0 === t[s] && (t[s] = i[s]);
- else t || (t = i || {});
- if (1 === o) t.children = a;
- else if (o > 1) {
- for (var l = Array(o), c = 0; c < o; c++) l[c] = arguments[c + 3];
- t.children = l
- }
- return {
- $$typeof: e,
- type: r,
- key: void 0 === n ? null : "" + n,
- ref: null,
- props: t,
- _owner: null
- }
+ if (d.length > 2) {
+ var P = l.indexOf('-x-');
+ if (P === -1) l += d;
+ else {
+ var N = l.substring(0, P),
+ T = l.substring(P);
+ l = N + d + T;
+ }
+ l = f(l);
+ }
+ return (v['[[locale]]'] = l), v;
}
- }(),
- oe = function (e) {
- return function () {
- var r = e.apply(this, arguments);
- return new Promise(function (e, t) {
- function n(a, i) {
- try {
- var o = r[a](i),
- s = o.value
- } catch (e) {
- return void t(e)
- }
- return o.done ? void e(s) : Promise.resolve(s).then(function (e) {
- return n("next", e)
- }, function (e) {
- return n("throw", e)
- })
+
+ function w(e, r) {
+ for (var n = r.length, a = new t(), i = 0; i < n; ) {
+ var o = r[i],
+ s = String(o).replace(fr, ''),
+ l = h(e, s);
+ void 0 !== l && Ge.call(a, o), i++;
}
- return n("next")
- })
+ var c = qe.call(a);
+ return c;
}
- },
- se = function (e, r) {
- if (!(e instanceof r)) throw new TypeError("Cannot call a class as a function")
- },
- le = function () {
- function e(e, r) {
- for (var t = 0; t < r.length; t++) {
- var n = r[t];
- n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n)
- }
+
+ function x(e, r) {
+ return w(e, r);
}
- return function (r, t, n) {
- return t && e(r.prototype, t), n && e(r, n), r
+
+ function j(e, t, n) {
+ var i = void 0,
+ o = void 0;
+ if (
+ void 0 !== n &&
+ ((n = new r(a(n))),
+ (i = n.localeMatcher),
+ void 0 !== i &&
+ ((i = String(i)), 'lookup' !== i && 'best fit' !== i))
+ )
+ throw new RangeError(
+ 'matcher should be "lookup" or "best fit"',
+ );
+ o = void 0 === i || 'best fit' === i ? x(e, t) : w(e, t);
+ for (var s in o)
+ Me.call(o, s) &&
+ Ie(o, s, {
+ writable: !1,
+ configurable: !1,
+ value: o[s],
+ });
+ return (
+ Ie(o, 'length', {
+ writable: !1,
+ }),
+ o
+ );
}
- }(),
- ce = function (e, r) {
- for (var t in r) {
- var n = r[t];
- n.configurable = n.enumerable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, t, n)
+
+ function D(e, r, t, n, a) {
+ var i = e[r];
+ if (void 0 !== i) {
+ if (
+ ((i =
+ 'boolean' === t
+ ? Boolean(i)
+ : 'string' === t
+ ? String(i)
+ : i),
+ void 0 !== n && Ae.call(n, i) === -1)
+ )
+ throw new RangeError(
+ "'" + i + "' is not an allowed value for `" + r + '`',
+ );
+ return i;
+ }
+ return a;
}
- return e
- },
- ue = function (e, r) {
- for (var t = Object.getOwnPropertyNames(r), n = 0; n < t.length; n++) {
- var a = t[n],
- i = Object.getOwnPropertyDescriptor(r, a);
- i && i.configurable && void 0 === e[a] && Object.defineProperty(e, a, i)
+
+ function z(e, r, t, n, a) {
+ var i = e[r];
+ if (void 0 !== i) {
+ if (((i = Number(i)), isNaN(i) || i < t || i > n))
+ throw new RangeError(
+ 'Value is not a number or outside accepted range',
+ );
+ return Math.floor(i);
+ }
+ return a;
}
- return e
- },
- ge = function (e, r, t) {
- return r in e ? Object.defineProperty(e, r, {
- value: t,
- enumerable: !0,
- configurable: !0,
- writable: !0
- }) : e[r] = t, e
- },
- fe = Object.assign || function (e) {
- for (var r = 1; r < arguments.length; r++) {
- var t = arguments[r];
- for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n])
+
+ function k(e) {
+ for (var r = d(e), t = [], n = r.length, a = 0; a < n; )
+ (t[a] = r[a]), a++;
+ return t;
}
- return e
- },
- me = function e(r, t, n) {
- null === r && (r = Function.prototype);
- var a = Object.getOwnPropertyDescriptor(r, t);
- if (void 0 === a) {
- var i = Object.getPrototypeOf(r);
- return null === i ? void 0 : e(i, t, n)
+
+ function O() {
+ var e = arguments[0],
+ r = arguments[1];
+ return this && this !== mr
+ ? F(a(this), e, r)
+ : new mr.NumberFormat(e, r);
}
- if ("value" in a) return a.value;
- var o = a.get;
- if (void 0 !== o) return o.call(n)
- },
- ve = function (e, r) {
- if ("function" != typeof r && null !== r) throw new TypeError("Super expression must either be null or a function, not " + typeof r);
- e.prototype = Object.create(r && r.prototype, {
- constructor: {
- value: e,
- enumerable: !1,
- writable: !0,
- configurable: !0
- }
- }), r && (Object.setPrototypeOf ? Object.setPrototypeOf(e, r) : e.__proto__ = r)
- },
- de = function (e, r) {
- return null != r && "undefined" != typeof Symbol && r[Symbol.hasInstance] ? r[Symbol.hasInstance](e) : e instanceof r
- },
- he = function (e) {
- return e && e.__esModule ? e : {
- default: e
+
+ function F(e, i, o) {
+ var s = l(e),
+ c = n();
+ if (s['[[initializedIntlObject]]'] === !0)
+ throw new TypeError(
+ '`this` object has already been initialized as an Intl object',
+ );
+ Ie(e, '__getInternalProperties', {
+ value: function () {
+ if (arguments[0] === Ke) return s;
+ },
+ }),
+ (s['[[initializedIntlObject]]'] = !0);
+ var u = d(i);
+ o = void 0 === o ? {} : a(o);
+ var g = new r(),
+ f = D(
+ o,
+ 'localeMatcher',
+ 'string',
+ new t('lookup', 'best fit'),
+ 'best fit',
+ );
+ g['[[localeMatcher]]'] = f;
+ var m = $e.NumberFormat['[[localeData]]'],
+ h = b(
+ $e.NumberFormat['[[availableLocales]]'],
+ u,
+ g,
+ $e.NumberFormat['[[relevantExtensionKeys]]'],
+ m,
+ );
+ (s['[[locale]]'] = h['[[locale]]']),
+ (s['[[numberingSystem]]'] = h['[[nu]]']),
+ (s['[[dataLocale]]'] = h['[[dataLocale]]']);
+ var p = h['[[dataLocale]]'],
+ y = D(
+ o,
+ 'style',
+ 'string',
+ new t('decimal', 'percent', 'currency'),
+ 'decimal',
+ );
+ s['[[style]]'] = y;
+ var w = D(o, 'currency', 'string');
+ if (void 0 !== w && !v(w))
+ throw new RangeError(
+ "'" + w + "' is not a valid currency code",
+ );
+ if ('currency' === y && void 0 === w)
+ throw new TypeError(
+ 'Currency code is required when style is currency',
+ );
+ var x = void 0;
+ 'currency' === y &&
+ ((w = w.toUpperCase()), (s['[[currency]]'] = w), (x = S(w)));
+ var j = D(
+ o,
+ 'currencyDisplay',
+ 'string',
+ new t('code', 'symbol', 'name'),
+ 'symbol',
+ );
+ 'currency' === y && (s['[[currencyDisplay]]'] = j);
+ var k = z(o, 'minimumIntegerDigits', 1, 21, 1);
+ s['[[minimumIntegerDigits]]'] = k;
+ var O = 'currency' === y ? x : 0,
+ F = z(o, 'minimumFractionDigits', 0, 20, O);
+ s['[[minimumFractionDigits]]'] = F;
+ var L =
+ 'currency' === y
+ ? Math.max(F, x)
+ : 'percent' === y
+ ? Math.max(F, 0)
+ : Math.max(F, 3),
+ P = z(o, 'maximumFractionDigits', F, 20, L);
+ s['[[maximumFractionDigits]]'] = P;
+ var N = o.minimumSignificantDigits,
+ T = o.maximumSignificantDigits;
+ (void 0 === N && void 0 === T) ||
+ ((N = z(o, 'minimumSignificantDigits', 1, 21, 1)),
+ (T = z(o, 'maximumSignificantDigits', N, 21, 21)),
+ (s['[[minimumSignificantDigits]]'] = N),
+ (s['[[maximumSignificantDigits]]'] = T));
+ var _ = D(o, 'useGrouping', 'boolean', void 0, !0);
+ s['[[useGrouping]]'] = _;
+ var M = m[p],
+ I = M.patterns,
+ A = I[y];
+ return (
+ (s['[[positivePattern]]'] = A.positivePattern),
+ (s['[[negativePattern]]'] = A.negativePattern),
+ (s['[[boundFormat]]'] = void 0),
+ (s['[[initializedNumberFormat]]'] = !0),
+ _e && (e.format = E.call(e)),
+ c(),
+ e
+ );
}
- },
- pe = function (e) {
- if (e && e.__esModule) return e;
- var r = {};
- if (null != e)
- for (var t in e) Object.prototype.hasOwnProperty.call(e, t) && (r[t] = e[t]);
- return r.default = e, r
- },
- ye = function (e, r) {
- if (e !== r) throw new TypeError("Cannot instantiate an arrow function")
- },
- be = function (e) {
- if (null == e) throw new TypeError("Cannot destructure undefined")
- },
- we = function (e, r) {
- var t = {};
- for (var n in e) r.indexOf(n) >= 0 || Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
- return t
- },
- xe = function (e, r) {
- if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- return !r || "object" != typeof r && "function" != typeof r ? e : r
- },
- je = "undefined" == typeof global ? self : global,
- De = function e(r, t, n, a) {
- var i = Object.getOwnPropertyDescriptor(r, t);
- if (void 0 === i) {
- var o = Object.getPrototypeOf(r);
- null !== o && e(o, t, n, a)
- } else if ("value" in i && i.writable) i.value = n;
- else {
- var s = i.set;
- void 0 !== s && s.call(a, n)
+
+ function S(e) {
+ return void 0 !== vr[e] ? vr[e] : 2;
}
- return n
- },
- ze = function () {
- function e(e, r) {
- var t = [],
- n = !0,
- a = !1,
- i = void 0;
- try {
- for (var o, s = e[Symbol.iterator](); !(n = (o = s.next()).done) && (t.push(o.value), !r || t.length !== r); n = !0);
- } catch (e) {
- a = !0, i = e
- } finally {
- try {
- !n && s.return && s.return()
- } finally {
- if (a) throw i
+
+ function E() {
+ var e = null !== this && 'object' === Ne.typeof(this) && l(this);
+ if (!e || !e['[[initializedNumberFormat]]'])
+ throw new TypeError(
+ '`this` value for format() is not an initialized Intl.NumberFormat object.',
+ );
+ if (void 0 === e['[[boundFormat]]']) {
+ var r = function (e) {
+ return T(this, Number(e));
+ },
+ t = Ue.call(r, this);
+ e['[[boundFormat]]'] = t;
}
- }
- return t
+ return e['[[boundFormat]]'];
}
- return function (r, t) {
- if (Array.isArray(r)) return r;
- if (Symbol.iterator in Object(r)) return e(r, t);
- throw new TypeError("Invalid attempt to destructure non-iterable instance")
+
+ function L() {
+ var e =
+ arguments.length <= 0 || void 0 === arguments[0]
+ ? void 0
+ : arguments[0],
+ r = null !== this && 'object' === Ne.typeof(this) && l(this);
+ if (!r || !r['[[initializedNumberFormat]]'])
+ throw new TypeError(
+ '`this` value for formatToParts() is not an initialized Intl.NumberFormat object.',
+ );
+ var t = Number(e);
+ return P(this, t);
}
- }(),
- ke = function (e, r) {
- if (Array.isArray(e)) return e;
- if (Symbol.iterator in Object(e)) {
- for (var t, n = [], a = e[Symbol.iterator](); !(t = a.next()).done && (n.push(t.value), !r || n.length !== r););
- return n
+
+ function P(e, r) {
+ for (var t = N(e, r), n = [], a = 0, i = 0; t.length > i; i++) {
+ var o = t[i],
+ s = {};
+ (s.type = o['[[type]]']),
+ (s.value = o['[[value]]']),
+ (n[a] = s),
+ (a += 1);
+ }
+ return n;
}
- throw new TypeError("Invalid attempt to destructure non-iterable instance")
- },
- Oe = function (e, r) {
- return Object.freeze(Object.defineProperties(e, {
- raw: {
- value: Object.freeze(r)
- }
- }))
- },
- Fe = function (e, r) {
- return e.raw = r, e
- },
- Se = function (e, r, t) {
- if (e === t) throw new ReferenceError(r + " is not defined - temporal dead zone");
- return e
- },
- Ee = {},
- Le = function (e) {
- return Array.isArray(e) ? e : Array.from(e)
- },
- Pe = function (e) {
- if (Array.isArray(e)) {
- for (var r = 0, t = Array(e.length); r < e.length; r++) t[r] = e[r];
- return t
+
+ function N(e, r) {
+ var n = l(e),
+ a = n['[[dataLocale]]'],
+ i = n['[[numberingSystem]]'],
+ o = $e.NumberFormat['[[localeData]]'][a],
+ s = o.symbols[i] || o.symbols.latn,
+ c = void 0;
+ !isNaN(r) && r < 0
+ ? ((r = -r), (c = n['[[negativePattern]]']))
+ : (c = n['[[positivePattern]]']);
+ for (
+ var u = new t(),
+ g = c.indexOf('{', 0),
+ f = 0,
+ m = 0,
+ v = c.length;
+ g > -1 && g < v;
+
+ ) {
+ if (((f = c.indexOf('}', g)), f === -1)) throw new Error();
+ if (g > m) {
+ var d = c.substring(m, g);
+ Ge.call(u, {
+ '[[type]]': 'literal',
+ '[[value]]': d,
+ });
+ }
+ var h = c.substring(g + 1, f);
+ if ('number' === h)
+ if (isNaN(r)) {
+ var p = s.nan;
+ Ge.call(u, {
+ '[[type]]': 'nan',
+ '[[value]]': p,
+ });
+ } else if (isFinite(r)) {
+ 'percent' === n['[[style]]'] &&
+ isFinite(r) &&
+ (r *= 100);
+ var y = void 0;
+ (y =
+ Me.call(n, '[[minimumSignificantDigits]]') &&
+ Me.call(n, '[[maximumSignificantDigits]]')
+ ? _(
+ r,
+ n['[[minimumSignificantDigits]]'],
+ n['[[maximumSignificantDigits]]'],
+ )
+ : M(
+ r,
+ n['[[minimumIntegerDigits]]'],
+ n['[[minimumFractionDigits]]'],
+ n['[[maximumFractionDigits]]'],
+ )),
+ dr[i]
+ ? !(function () {
+ var e = dr[i];
+ y = String(y).replace(
+ /\d/g,
+ function (r) {
+ return e[r];
+ },
+ );
+ })()
+ : (y = String(y));
+ var b = void 0,
+ w = void 0,
+ x = y.indexOf('.', 0);
+ if (
+ (x > 0
+ ? ((b = y.substring(0, x)),
+ (w = y.substring(x + 1, x.length)))
+ : ((b = y), (w = void 0)),
+ n['[[useGrouping]]'] === !0)
+ ) {
+ var j = s.group,
+ D = [],
+ z = o.patterns.primaryGroupSize || 3,
+ k = o.patterns.secondaryGroupSize || z;
+ if (b.length > z) {
+ var O = b.length - z,
+ F = O % k,
+ S = b.slice(0, F);
+ for (S.length && Ge.call(D, S); F < O; )
+ Ge.call(D, b.slice(F, F + k)), (F += k);
+ Ge.call(D, b.slice(O));
+ } else Ge.call(D, b);
+ if (0 === D.length) throw new Error();
+ for (; D.length; ) {
+ var E = Be.call(D);
+ Ge.call(u, {
+ '[[type]]': 'integer',
+ '[[value]]': E,
+ }),
+ D.length &&
+ Ge.call(u, {
+ '[[type]]': 'group',
+ '[[value]]': j,
+ });
+ }
+ } else
+ Ge.call(u, {
+ '[[type]]': 'integer',
+ '[[value]]': b,
+ });
+ if (void 0 !== w) {
+ var L = s.decimal;
+ Ge.call(u, {
+ '[[type]]': 'decimal',
+ '[[value]]': L,
+ }),
+ Ge.call(u, {
+ '[[type]]': 'fraction',
+ '[[value]]': w,
+ });
+ }
+ } else {
+ var P = s.infinity;
+ Ge.call(u, {
+ '[[type]]': 'infinity',
+ '[[value]]': P,
+ });
+ }
+ else if ('plusSign' === h) {
+ var N = s.plusSign;
+ Ge.call(u, {
+ '[[type]]': 'plusSign',
+ '[[value]]': N,
+ });
+ } else if ('minusSign' === h) {
+ var T = s.minusSign;
+ Ge.call(u, {
+ '[[type]]': 'minusSign',
+ '[[value]]': T,
+ });
+ } else if (
+ 'percentSign' === h &&
+ 'percent' === n['[[style]]']
+ ) {
+ var I = s.percentSign;
+ Ge.call(u, {
+ '[[type]]': 'literal',
+ '[[value]]': I,
+ });
+ } else if ('currency' === h && 'currency' === n['[[style]]']) {
+ var A = n['[[currency]]'],
+ R = void 0;
+ 'code' === n['[[currencyDisplay]]']
+ ? (R = A)
+ : 'symbol' === n['[[currencyDisplay]]']
+ ? (R = o.currencies[A] || A)
+ : 'name' === n['[[currencyDisplay]]'] && (R = A),
+ Ge.call(u, {
+ '[[type]]': 'currency',
+ '[[value]]': R,
+ });
+ } else {
+ var q = c.substring(g, f);
+ Ge.call(u, {
+ '[[type]]': 'literal',
+ '[[value]]': q,
+ });
+ }
+ (m = f + 1), (g = c.indexOf('{', m));
+ }
+ if (m < v) {
+ var C = c.substring(m, v);
+ Ge.call(u, {
+ '[[type]]': 'literal',
+ '[[value]]': C,
+ });
+ }
+ return u;
}
- return Array.from(e)
- },
- Ne = Object.freeze({
- jsx: ie,
- asyncToGenerator: oe,
- classCallCheck: se,
- createClass: le,
- defineEnumerableProperties: ce,
- defaults: ue,
- defineProperty: ge,
- get: me,
- inherits: ve,
- interopRequireDefault: he,
- interopRequireWildcard: pe,
- newArrowCheck: ye,
- objectDestructuringEmpty: be,
- objectWithoutProperties: we,
- possibleConstructorReturn: xe,
- selfGlobal: je,
- set: De,
- slicedToArray: ze,
- slicedToArrayLoose: ke,
- taggedTemplateLiteral: Oe,
- taggedTemplateLiteralLoose: Fe,
- temporalRef: Se,
- temporalUndefined: Ee,
- toArray: Le,
- toConsumableArray: Pe,
- typeof: ae,
- extends: fe,
- instanceof: de
- }),
- Te = function () {
- var e = function () {};
- try {
- return Object.defineProperty(e, "a", {
- get: function () {
- return 1
+
+ function T(e, r) {
+ for (var t = N(e, r), n = '', a = 0; t.length > a; a++) {
+ var i = t[a];
+ n += i['[[value]]'];
}
- }), Object.defineProperty(e, "prototype", {
- writable: !1
- }), 1 === e.a && e.prototype instanceof Object
- } catch (e) {
- return !1
+ return n;
}
- }(),
- _e = !Te && !Object.prototype.__defineGetter__,
- Me = Object.prototype.hasOwnProperty,
- Ie = Te ? Object.defineProperty : function (e, r, t) {
- "get" in t && e.__defineGetter__ ? e.__defineGetter__(r, t.get) : (!Me.call(e, r) || "value" in t) && (e[r] = t.value)
- },
- Ae = Array.prototype.indexOf || function (e) {
- var r = this;
- if (!r.length) return -1;
- for (var t = arguments[1] || 0, n = r.length; t < n; t++)
- if (r[t] === e) return t;
- return -1
- },
- Re = Object.create || function (e, r) {
- function t() {}
- var n = void 0;
- t.prototype = e, n = new t;
- for (var a in r) Me.call(r, a) && Ie(n, a, r[a]);
- return n
- },
- qe = Array.prototype.slice,
- Ce = Array.prototype.concat,
- Ge = Array.prototype.push,
- Ze = Array.prototype.join,
- Be = Array.prototype.shift,
- Ue = Function.prototype.bind || function (e) {
- var r = this,
- t = qe.call(arguments, 1);
- return 1 === r.length ? function () {
- return r.apply(e, Ce.call(t, qe.call(arguments)))
- } : function () {
- return r.apply(e, Ce.call(t, qe.call(arguments)))
+
+ function _(r, t, n) {
+ var a = n,
+ i = void 0,
+ o = void 0;
+ if (0 === r) (i = Ze.call(Array(a + 1), '0')), (o = 0);
+ else {
+ o = e(Math.abs(r));
+ var s = Math.round(Math.exp(Math.abs(o - a + 1) * Math.LN10));
+ i = String(Math.round(o - a + 1 < 0 ? r * s : r / s));
+ }
+ if (o >= a) return i + Ze.call(Array(o - a + 1 + 1), '0');
+ if (o === a - 1) return i;
+ if (
+ (o >= 0
+ ? (i = i.slice(0, o + 1) + '.' + i.slice(o + 1))
+ : o < 0 &&
+ (i = '0.' + Ze.call(Array(-(o + 1) + 1), '0') + i),
+ i.indexOf('.') >= 0 && n > t)
+ ) {
+ for (var l = n - t; l > 0 && '0' === i.charAt(i.length - 1); )
+ (i = i.slice(0, -1)), l--;
+ '.' === i.charAt(i.length - 1) && (i = i.slice(0, -1));
+ }
+ return i;
}
- },
- $e = Re(null),
- Ke = Math.random();
- r.prototype = Re(null), t.prototype = Re(null);
- var Ye = "[a-z]{3}(?:-[a-z]{3}){0,2}",
- He = "(?:[a-z]{2,3}(?:-" + Ye + ")?|[a-z]{4}|[a-z]{5,8})",
- We = "[a-z]{4}",
- Xe = "(?:[a-z]{2}|\\d{3})",
- Ve = "(?:[a-z0-9]{5,8}|\\d[a-z0-9]{3})",
- Je = "[0-9a-wy-z]",
- Qe = Je + "(?:-[a-z0-9]{2,8})+",
- er = "x(?:-[a-z0-9]{1,8})+",
- rr = "(?:en-GB-oed|i-(?:ami|bnn|default|enochian|hak|klingon|lux|mingo|navajo|pwn|tao|tay|tsu)|sgn-(?:BE-FR|BE-NL|CH-DE))",
- tr = "(?:art-lojban|cel-gaulish|no-bok|no-nyn|zh-(?:guoyu|hakka|min|min-nan|xiang))",
- nr = "(?:" + rr + "|" + tr + ")",
- ar = He + "(?:-" + We + ")?(?:-" + Xe + ")?(?:-" + Ve + ")*(?:-" + Qe + ")*(?:-" + er + ")?",
- ir = RegExp("^(?:" + ar + "|" + er + "|" + nr + ")$", "i"),
- or = RegExp("^(?!x).*?-(" + Ve + ")-(?:\\w{4,8}-(?!x-))*\\1\\b", "i"),
- sr = RegExp("^(?!x).*?-(" + Je + ")-(?:\\w+-(?!x-))*\\1\\b", "i"),
- lr = RegExp("-" + Qe, "ig"),
- cr = void 0,
- ur = {
- tags: {
- "art-lojban": "jbo",
- "i-ami": "ami",
- "i-bnn": "bnn",
- "i-hak": "hak",
- "i-klingon": "tlh",
- "i-lux": "lb",
- "i-navajo": "nv",
- "i-pwn": "pwn",
- "i-tao": "tao",
- "i-tay": "tay",
- "i-tsu": "tsu",
- "no-bok": "nb",
- "no-nyn": "nn",
- "sgn-BE-FR": "sfb",
- "sgn-BE-NL": "vgt",
- "sgn-CH-DE": "sgg",
- "zh-guoyu": "cmn",
- "zh-hakka": "hak",
- "zh-min-nan": "nan",
- "zh-xiang": "hsn",
- "sgn-BR": "bzs",
- "sgn-CO": "csn",
- "sgn-DE": "gsg",
- "sgn-DK": "dsl",
- "sgn-ES": "ssp",
- "sgn-FR": "fsl",
- "sgn-GB": "bfi",
- "sgn-GR": "gss",
- "sgn-IE": "isg",
- "sgn-IT": "ise",
- "sgn-JP": "jsl",
- "sgn-MX": "mfs",
- "sgn-NI": "ncs",
- "sgn-NL": "dse",
- "sgn-NO": "nsl",
- "sgn-PT": "psr",
- "sgn-SE": "swl",
- "sgn-US": "ase",
- "sgn-ZA": "sfs",
- "zh-cmn": "cmn",
- "zh-cmn-Hans": "cmn-Hans",
- "zh-cmn-Hant": "cmn-Hant",
- "zh-gan": "gan",
- "zh-wuu": "wuu",
- "zh-yue": "yue"
- },
- subtags: {
- BU: "MM",
- DD: "DE",
- FX: "FR",
- TP: "TL",
- YD: "YE",
- ZR: "CD",
- heploc: "alalc97",
- in: "id",
- iw: "he",
- ji: "yi",
- jw: "jv",
- mo: "ro",
- ayx: "nun",
- bjd: "drl",
- ccq: "rki",
- cjr: "mom",
- cka: "cmr",
- cmk: "xch",
- drh: "khk",
- drw: "prs",
- gav: "dev",
- hrr: "jal",
- ibi: "opa",
- kgh: "kml",
- lcq: "ppr",
- mst: "mry",
- myt: "mry",
- sca: "hle",
- tie: "ras",
- tkk: "twm",
- tlw: "weo",
- tnf: "prs",
- ybd: "rki",
- yma: "lrr"
- },
- extLang: {
- aao: ["aao", "ar"],
- abh: ["abh", "ar"],
- abv: ["abv", "ar"],
- acm: ["acm", "ar"],
- acq: ["acq", "ar"],
- acw: ["acw", "ar"],
- acx: ["acx", "ar"],
- acy: ["acy", "ar"],
- adf: ["adf", "ar"],
- ads: ["ads", "sgn"],
- aeb: ["aeb", "ar"],
- aec: ["aec", "ar"],
- aed: ["aed", "sgn"],
- aen: ["aen", "sgn"],
- afb: ["afb", "ar"],
- afg: ["afg", "sgn"],
- ajp: ["ajp", "ar"],
- apc: ["apc", "ar"],
- apd: ["apd", "ar"],
- arb: ["arb", "ar"],
- arq: ["arq", "ar"],
- ars: ["ars", "ar"],
- ary: ["ary", "ar"],
- arz: ["arz", "ar"],
- ase: ["ase", "sgn"],
- asf: ["asf", "sgn"],
- asp: ["asp", "sgn"],
- asq: ["asq", "sgn"],
- asw: ["asw", "sgn"],
- auz: ["auz", "ar"],
- avl: ["avl", "ar"],
- ayh: ["ayh", "ar"],
- ayl: ["ayl", "ar"],
- ayn: ["ayn", "ar"],
- ayp: ["ayp", "ar"],
- bbz: ["bbz", "ar"],
- bfi: ["bfi", "sgn"],
- bfk: ["bfk", "sgn"],
- bjn: ["bjn", "ms"],
- bog: ["bog", "sgn"],
- bqn: ["bqn", "sgn"],
- bqy: ["bqy", "sgn"],
- btj: ["btj", "ms"],
- bve: ["bve", "ms"],
- bvl: ["bvl", "sgn"],
- bvu: ["bvu", "ms"],
- bzs: ["bzs", "sgn"],
- cdo: ["cdo", "zh"],
- cds: ["cds", "sgn"],
- cjy: ["cjy", "zh"],
- cmn: ["cmn", "zh"],
- coa: ["coa", "ms"],
- cpx: ["cpx", "zh"],
- csc: ["csc", "sgn"],
- csd: ["csd", "sgn"],
- cse: ["cse", "sgn"],
- csf: ["csf", "sgn"],
- csg: ["csg", "sgn"],
- csl: ["csl", "sgn"],
- csn: ["csn", "sgn"],
- csq: ["csq", "sgn"],
- csr: ["csr", "sgn"],
- czh: ["czh", "zh"],
- czo: ["czo", "zh"],
- doq: ["doq", "sgn"],
- dse: ["dse", "sgn"],
- dsl: ["dsl", "sgn"],
- dup: ["dup", "ms"],
- ecs: ["ecs", "sgn"],
- esl: ["esl", "sgn"],
- esn: ["esn", "sgn"],
- eso: ["eso", "sgn"],
- eth: ["eth", "sgn"],
- fcs: ["fcs", "sgn"],
- fse: ["fse", "sgn"],
- fsl: ["fsl", "sgn"],
- fss: ["fss", "sgn"],
- gan: ["gan", "zh"],
- gds: ["gds", "sgn"],
- gom: ["gom", "kok"],
- gse: ["gse", "sgn"],
- gsg: ["gsg", "sgn"],
- gsm: ["gsm", "sgn"],
- gss: ["gss", "sgn"],
- gus: ["gus", "sgn"],
- hab: ["hab", "sgn"],
- haf: ["haf", "sgn"],
- hak: ["hak", "zh"],
- hds: ["hds", "sgn"],
- hji: ["hji", "ms"],
- hks: ["hks", "sgn"],
- hos: ["hos", "sgn"],
- hps: ["hps", "sgn"],
- hsh: ["hsh", "sgn"],
- hsl: ["hsl", "sgn"],
- hsn: ["hsn", "zh"],
- icl: ["icl", "sgn"],
- ils: ["ils", "sgn"],
- inl: ["inl", "sgn"],
- ins: ["ins", "sgn"],
- ise: ["ise", "sgn"],
- isg: ["isg", "sgn"],
- isr: ["isr", "sgn"],
- jak: ["jak", "ms"],
- jax: ["jax", "ms"],
- jcs: ["jcs", "sgn"],
- jhs: ["jhs", "sgn"],
- jls: ["jls", "sgn"],
- jos: ["jos", "sgn"],
- jsl: ["jsl", "sgn"],
- jus: ["jus", "sgn"],
- kgi: ["kgi", "sgn"],
- knn: ["knn", "kok"],
- kvb: ["kvb", "ms"],
- kvk: ["kvk", "sgn"],
- kvr: ["kvr", "ms"],
- kxd: ["kxd", "ms"],
- lbs: ["lbs", "sgn"],
- lce: ["lce", "ms"],
- lcf: ["lcf", "ms"],
- liw: ["liw", "ms"],
- lls: ["lls", "sgn"],
- lsg: ["lsg", "sgn"],
- lsl: ["lsl", "sgn"],
- lso: ["lso", "sgn"],
- lsp: ["lsp", "sgn"],
- lst: ["lst", "sgn"],
- lsy: ["lsy", "sgn"],
- ltg: ["ltg", "lv"],
- lvs: ["lvs", "lv"],
- lzh: ["lzh", "zh"],
- max: ["max", "ms"],
- mdl: ["mdl", "sgn"],
- meo: ["meo", "ms"],
- mfa: ["mfa", "ms"],
- mfb: ["mfb", "ms"],
- mfs: ["mfs", "sgn"],
- min: ["min", "ms"],
- mnp: ["mnp", "zh"],
- mqg: ["mqg", "ms"],
- mre: ["mre", "sgn"],
- msd: ["msd", "sgn"],
- msi: ["msi", "ms"],
- msr: ["msr", "sgn"],
- mui: ["mui", "ms"],
- mzc: ["mzc", "sgn"],
- mzg: ["mzg", "sgn"],
- mzy: ["mzy", "sgn"],
- nan: ["nan", "zh"],
- nbs: ["nbs", "sgn"],
- ncs: ["ncs", "sgn"],
- nsi: ["nsi", "sgn"],
- nsl: ["nsl", "sgn"],
- nsp: ["nsp", "sgn"],
- nsr: ["nsr", "sgn"],
- nzs: ["nzs", "sgn"],
- okl: ["okl", "sgn"],
- orn: ["orn", "ms"],
- ors: ["ors", "ms"],
- pel: ["pel", "ms"],
- pga: ["pga", "ar"],
- pks: ["pks", "sgn"],
- prl: ["prl", "sgn"],
- prz: ["prz", "sgn"],
- psc: ["psc", "sgn"],
- psd: ["psd", "sgn"],
- pse: ["pse", "ms"],
- psg: ["psg", "sgn"],
- psl: ["psl", "sgn"],
- pso: ["pso", "sgn"],
- psp: ["psp", "sgn"],
- psr: ["psr", "sgn"],
- pys: ["pys", "sgn"],
- rms: ["rms", "sgn"],
- rsi: ["rsi", "sgn"],
- rsl: ["rsl", "sgn"],
- sdl: ["sdl", "sgn"],
- sfb: ["sfb", "sgn"],
- sfs: ["sfs", "sgn"],
- sgg: ["sgg", "sgn"],
- sgx: ["sgx", "sgn"],
- shu: ["shu", "ar"],
- slf: ["slf", "sgn"],
- sls: ["sls", "sgn"],
- sqk: ["sqk", "sgn"],
- sqs: ["sqs", "sgn"],
- ssh: ["ssh", "ar"],
- ssp: ["ssp", "sgn"],
- ssr: ["ssr", "sgn"],
- svk: ["svk", "sgn"],
- swc: ["swc", "sw"],
- swh: ["swh", "sw"],
- swl: ["swl", "sgn"],
- syy: ["syy", "sgn"],
- tmw: ["tmw", "ms"],
- tse: ["tse", "sgn"],
- tsm: ["tsm", "sgn"],
- tsq: ["tsq", "sgn"],
- tss: ["tss", "sgn"],
- tsy: ["tsy", "sgn"],
- tza: ["tza", "sgn"],
- ugn: ["ugn", "sgn"],
- ugy: ["ugy", "sgn"],
- ukl: ["ukl", "sgn"],
- uks: ["uks", "sgn"],
- urk: ["urk", "ms"],
- uzn: ["uzn", "uz"],
- uzs: ["uzs", "uz"],
- vgt: ["vgt", "sgn"],
- vkk: ["vkk", "ms"],
- vkt: ["vkt", "ms"],
- vsi: ["vsi", "sgn"],
- vsl: ["vsl", "sgn"],
- vsv: ["vsv", "sgn"],
- wuu: ["wuu", "zh"],
- xki: ["xki", "sgn"],
- xml: ["xml", "sgn"],
- xmm: ["xmm", "ms"],
- xms: ["xms", "sgn"],
- yds: ["yds", "sgn"],
- ysl: ["ysl", "sgn"],
- yue: ["yue", "zh"],
- zib: ["zib", "sgn"],
- zlm: ["zlm", "ms"],
- zmi: ["zmi", "ms"],
- zsl: ["zsl", "sgn"],
- zsm: ["zsm", "ms"]
+
+ function M(e, r, t, n) {
+ var a = n,
+ i = Math.pow(10, a) * e,
+ o = 0 === i ? '0' : i.toFixed(0),
+ s = void 0,
+ l = (s = o.indexOf('e')) > -1 ? o.slice(s + 1) : 0;
+ l &&
+ ((o = o.slice(0, s).replace('.', '')),
+ (o += Ze.call(Array(l - (o.length - 1) + 1), '0')));
+ var c = void 0;
+ if (0 !== a) {
+ var u = o.length;
+ if (u <= a) {
+ var g = Ze.call(Array(a + 1 - u + 1), '0');
+ (o = g + o), (u = a + 1);
+ }
+ var f = o.substring(0, u - a),
+ m = o.substring(u - a, o.length);
+ (o = f + '.' + m), (c = f.length);
+ } else c = o.length;
+ for (var v = n - t; v > 0 && '0' === o.slice(-1); )
+ (o = o.slice(0, -1)), v--;
+ if (('.' === o.slice(-1) && (o = o.slice(0, -1)), c < r)) {
+ var d = Ze.call(Array(r - c + 1), '0');
+ o = d + o;
+ }
+ return o;
}
- },
- gr = /^[A-Z]{3}$/,
- fr = /-u(?:-[0-9a-z]{2,8})+/gi,
- mr = {};
- Object.defineProperty(mr, "getCanonicalLocales", {
- enumerable: !1,
- configurable: !0,
- writable: !0,
- value: k
- });
- var vr = {
- BHD: 3,
- BYR: 0,
- XOF: 0,
- BIF: 0,
- XAF: 0,
- CLF: 4,
- CLP: 0,
- KMF: 0,
- DJF: 0,
- XPF: 0,
- GNF: 0,
- ISK: 0,
- IQD: 3,
- JPY: 0,
- JOD: 3,
- KRW: 0,
- KWD: 3,
- LYD: 3,
- OMR: 3,
- PYG: 0,
- RWF: 0,
- TND: 3,
- UGX: 0,
- UYI: 0,
- VUV: 0,
- VND: 0
- };
- Ie(mr, "NumberFormat", {
- configurable: !0,
- writable: !0,
- value: O
- }), Ie(mr.NumberFormat, "prototype", {
- writable: !1
- }), $e.NumberFormat = {
- "[[availableLocales]]": [],
- "[[relevantExtensionKeys]]": ["nu"],
- "[[localeData]]": {}
- }, Ie(mr.NumberFormat, "supportedLocalesOf", {
- configurable: !0,
- writable: !0,
- value: Ue.call(function (e) {
- if (!Me.call(this, "[[availableLocales]]")) throw new TypeError("supportedLocalesOf() is not a constructor");
- var r = n(),
- t = arguments[1],
- a = this["[[availableLocales]]"],
- i = d(e);
- return r(), j(a, i, t)
- }, $e.NumberFormat)
- }), Ie(mr.NumberFormat.prototype, "format", {
- configurable: !0,
- get: E
- }), Object.defineProperty(mr.NumberFormat.prototype, "formatToParts", {
- configurable: !0,
- enumerable: !1,
- writable: !0,
- value: L
- });
- var dr = {
- arab: ["٠", "١", "٢", "٣", "٤", "٥", "٦", "٧", "٨", "٩"],
- arabext: ["۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹"],
- bali: ["᭐", "᭑", "᭒", "᭓", "᭔", "᭕", "᭖", "᭗", "᭘", "᭙"],
- beng: ["০", "১", "২", "৩", "৪", "৫", "৬", "৭", "৮", "৯"],
- deva: ["०", "१", "२", "३", "४", "५", "६", "७", "८", "९"],
- fullwide: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"],
- gujr: ["૦", "૧", "૨", "૩", "૪", "૫", "૬", "૭", "૮", "૯"],
- guru: ["੦", "੧", "੨", "੩", "੪", "੫", "੬", "੭", "੮", "੯"],
- hanidec: ["〇", "一", "二", "三", "四", "五", "六", "七", "八", "九"],
- khmr: ["០", "១", "២", "៣", "៤", "៥", "៦", "៧", "៨", "៩"],
- knda: ["೦", "೧", "೨", "೩", "೪", "೫", "೬", "೭", "೮", "೯"],
- laoo: ["໐", "໑", "໒", "໓", "໔", "໕", "໖", "໗", "໘", "໙"],
- latn: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"],
- limb: ["᥆", "᥇", "᥈", "᥉", "᥊", "᥋", "᥌", "᥍", "᥎", "᥏"],
- mlym: ["൦", "൧", "൨", "൩", "൪", "൫", "൬", "൭", "൮", "൯"],
- mong: ["᠐", "᠑", "᠒", "᠓", "᠔", "᠕", "᠖", "᠗", "᠘", "᠙"],
- mymr: ["၀", "၁", "၂", "၃", "၄", "၅", "၆", "၇", "၈", "၉"],
- orya: ["୦", "୧", "୨", "୩", "୪", "୫", "୬", "୭", "୮", "୯"],
- tamldec: ["௦", "௧", "௨", "௩", "௪", "௫", "௬", "௭", "௮", "௯"],
- telu: ["౦", "౧", "౨", "౩", "౪", "౫", "౬", "౭", "౮", "౯"],
- thai: ["๐", "๑", "๒", "๓", "๔", "๕", "๖", "๗", "๘", "๙"],
- tibt: ["༠", "༡", "༢", "༣", "༤", "༥", "༦", "༧", "༨", "༩"]
- };
- Ie(mr.NumberFormat.prototype, "resolvedOptions", {
- configurable: !0,
- writable: !0,
- value: function () {
- var e = void 0,
- t = new r,
- n = ["locale", "numberingSystem", "style", "currency", "currencyDisplay", "minimumIntegerDigits", "minimumFractionDigits", "maximumFractionDigits", "minimumSignificantDigits", "maximumSignificantDigits", "useGrouping"],
- a = null !== this && "object" === Ne.typeof(this) && l(this);
- if (!a || !a["[[initializedNumberFormat]]"]) throw new TypeError("`this` value for resolvedOptions() is not an initialized Intl.NumberFormat object.");
- for (var i = 0, o = n.length; i < o; i++) Me.call(a, e = "[[" + n[i] + "]]") && (t[n[i]] = {
- value: a[e],
- writable: !0,
- configurable: !0,
- enumerable: !0
- });
- return Re({}, t)
- }
- });
- var hr = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g,
- pr = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
- yr = /[rqQASjJgwWIQq]/,
- br = ["era", "year", "month", "day", "weekday", "quarter"],
- wr = ["hour", "minute", "second", "hour12", "timeZoneName"],
- xr = {
- second: {
- numeric: "s",
- "2-digit": "ss"
- },
- minute: {
- numeric: "m",
- "2-digit": "mm"
- },
- year: {
- numeric: "y",
- "2-digit": "yy"
- },
- day: {
- numeric: "d",
- "2-digit": "dd"
- },
- month: {
- numeric: "L",
- "2-digit": "LL",
- narrow: "LLLLL",
- short: "LLL",
- long: "LLLL"
- },
- weekday: {
- narrow: "ccccc",
- short: "ccc",
- long: "cccc"
+
+ function I(e) {
+ for (var r = 0; r < wr.length; r += 1)
+ if (e.hasOwnProperty(wr[r])) return !1;
+ return !0;
}
- },
- jr = Re(null, {
- narrow: {},
- short: {},
- long: {}
- });
- Ie(mr, "DateTimeFormat", {
- configurable: !0,
- writable: !0,
- value: $
- }), Ie($, "prototype", {
- writable: !1
- });
- var Dr = {
- weekday: ["narrow", "short", "long"],
- era: ["narrow", "short", "long"],
- year: ["2-digit", "numeric"],
- month: ["2-digit", "numeric", "narrow", "short", "long"],
- day: ["2-digit", "numeric"],
- hour: ["2-digit", "numeric"],
- minute: ["2-digit", "numeric"],
- second: ["2-digit", "numeric"],
- timeZoneName: ["short", "long"]
- };
- $e.DateTimeFormat = {
- "[[availableLocales]]": [],
- "[[relevantExtensionKeys]]": ["ca", "nu"],
- "[[localeData]]": {}
- }, Ie(mr.DateTimeFormat, "supportedLocalesOf", {
- configurable: !0,
- writable: !0,
- value: Ue.call(function (e) {
- if (!Me.call(this, "[[availableLocales]]")) throw new TypeError("supportedLocalesOf() is not a constructor");
- var r = n(),
- t = arguments[1],
- a = this["[[availableLocales]]"],
- i = d(e);
- return r(), j(a, i, t)
- }, $e.NumberFormat)
- }), Ie(mr.DateTimeFormat.prototype, "format", {
- configurable: !0,
- get: V
- }), Object.defineProperty(mr.DateTimeFormat.prototype, "formatToParts", {
- enumerable: !1,
- writable: !0,
- configurable: !0,
- value: J
- }), Ie(mr.DateTimeFormat.prototype, "resolvedOptions", {
- writable: !0,
- configurable: !0,
- value: function () {
- var e = void 0,
- t = new r,
- n = ["locale", "calendar", "numberingSystem", "timeZone", "hour12", "weekday", "era", "year", "month", "day", "hour", "minute", "second", "timeZoneName"],
- a = null !== this && "object" === Ne.typeof(this) && l(this);
- if (!a || !a["[[initializedDateTimeFormat]]"]) throw new TypeError("`this` value for resolvedOptions() is not an initialized Intl.DateTimeFormat object.");
- for (var i = 0, o = n.length; i < o; i++) Me.call(a, e = "[[" + n[i] + "]]") && (t[n[i]] = {
- value: a[e],
- writable: !0,
- configurable: !0,
- enumerable: !0
- });
- return Re({}, t)
- }
- });
- var zr = mr.__localeSensitiveProtos = {
- Number: {},
- Date: {}
- };
- if (zr.Number.toLocaleString = function () {
- if ("[object Number]" !== Object.prototype.toString.call(this)) throw new TypeError("`this` value must be a number for Number.prototype.toLocaleString()");
- return T(new O(arguments[0], arguments[1]), this)
- }, zr.Date.toLocaleString = function () {
- if ("[object Date]" !== Object.prototype.toString.call(this)) throw new TypeError("`this` value must be a Date instance for Date.prototype.toLocaleString()");
- var e = +this;
- if (isNaN(e)) return "Invalid Date";
- var r = arguments[0],
- t = arguments[1];
- t = H(t, "any", "all");
- var n = new $(r, t);
- return ee(n, e)
- }, zr.Date.toLocaleDateString = function () {
- if ("[object Date]" !== Object.prototype.toString.call(this)) throw new TypeError("`this` value must be a Date instance for Date.prototype.toLocaleDateString()");
- var e = +this;
- if (isNaN(e)) return "Invalid Date";
- var r = arguments[0],
- t = arguments[1];
- t = H(t, "date", "date");
- var n = new $(r, t);
- return ee(n, e)
- }, zr.Date.toLocaleTimeString = function () {
- if ("[object Date]" !== Object.prototype.toString.call(this)) throw new TypeError("`this` value must be a Date instance for Date.prototype.toLocaleTimeString()");
- var e = +this;
- if (isNaN(e)) return "Invalid Date";
- var r = arguments[0],
- t = arguments[1];
- t = H(t, "time", "time");
- var n = new $(r, t);
- return ee(n, e)
- }, Ie(mr, "__applyLocaleSensitivePrototypes", {
- writable: !0,
- configurable: !0,
- value: function () {
- Ie(Number.prototype, "toLocaleString", {
- writable: !0,
- configurable: !0,
- value: zr.Number.toLocaleString
- }), Ie(Date.prototype, "toLocaleString", {
- writable: !0,
- configurable: !0,
- value: zr.Date.toLocaleString
- });
- for (var e in zr.Date) Me.call(zr.Date, e) && Ie(Date.prototype, e, {
- writable: !0,
- configurable: !0,
- value: zr.Date[e]
- })
+
+ function A(e) {
+ for (var r = 0; r < br.length; r += 1)
+ if (e.hasOwnProperty(br[r])) return !1;
+ return !0;
}
- }), Ie(mr, "__addLocaleData", {
- value: function (e) {
- if (!g(e.locale)) throw new Error("Object passed doesn't identify itself with a valid language tag");
- ne(e, e.locale)
+
+ function R(e, r) {
+ for (
+ var t = {
+ _: {},
+ },
+ n = 0;
+ n < br.length;
+ n += 1
+ )
+ e[br[n]] && (t[br[n]] = e[br[n]]),
+ e._[br[n]] && (t._[br[n]] = e._[br[n]]);
+ for (var a = 0; a < wr.length; a += 1)
+ r[wr[a]] && (t[wr[a]] = r[wr[a]]),
+ r._[wr[a]] && (t._[wr[a]] = r._[wr[a]]);
+ return t;
}
- }), Ie(mr, "__disableRegExpRestore", {
- value: function () {
- $e.disableRegExpRestore = !0
+
+ function q(e) {
+ return (
+ (e.pattern12 = e.extendedPattern.replace(
+ /'([^']*)'/g,
+ function (e, r) {
+ return r ? r : "'";
+ },
+ )),
+ (e.pattern = e.pattern12.replace('{ampm}', '').replace(pr, '')),
+ e
+ );
}
- }), "undefined" == typeof Intl) try {
- window.Intl = mr, mr.__applyLocaleSensitivePrototypes()
- } catch (e) {}
- return mr
- });
-
- // Intl.~locale.en-US
- IntlPolyfill.__addLocaleData({
- locale: "en-US",
- date: {
- ca: ["gregory", "buddhist", "chinese", "coptic", "dangi", "ethioaa", "ethiopic", "generic", "hebrew", "indian", "islamic", "islamicc", "japanese", "persian", "roc"],
- hourNo0: true,
- hour12: true,
- formats: {
- short: "{1}, {0}",
- medium: "{1}, {0}",
- full: "{1} 'at' {0}",
- long: "{1} 'at' {0}",
- availableFormats: {
- "d": "d",
- "E": "ccc",
- Ed: "d E",
- Ehm: "E h:mm a",
- EHm: "E HH:mm",
- Ehms: "E h:mm:ss a",
- EHms: "E HH:mm:ss",
- Gy: "y G",
- GyMMM: "MMM y G",
- GyMMMd: "MMM d, y G",
- GyMMMEd: "E, MMM d, y G",
- "h": "h a",
- "H": "HH",
- hm: "h:mm a",
- Hm: "HH:mm",
- hms: "h:mm:ss a",
- Hms: "HH:mm:ss",
- hmsv: "h:mm:ss a v",
- Hmsv: "HH:mm:ss v",
- hmv: "h:mm a v",
- Hmv: "HH:mm v",
- "M": "L",
- Md: "M/d",
- MEd: "E, M/d",
- MMM: "LLL",
- MMMd: "MMM d",
- MMMEd: "E, MMM d",
- MMMMd: "MMMM d",
- ms: "mm:ss",
- "y": "y",
- yM: "M/y",
- yMd: "M/d/y",
- yMEd: "E, M/d/y",
- yMMM: "MMM y",
- yMMMd: "MMM d, y",
- yMMMEd: "E, MMM d, y",
- yMMMM: "MMMM y",
- yQQQ: "QQQ y",
- yQQQQ: "QQQQ y"
- },
- dateFormats: {
- yMMMMEEEEd: "EEEE, MMMM d, y",
- yMMMMd: "MMMM d, y",
- yMMMd: "MMM d, y",
- yMd: "M/d/yy"
- },
- timeFormats: {
- hmmsszzzz: "h:mm:ss a zzzz",
- hmsz: "h:mm:ss a z",
- hms: "h:mm:ss a",
- hm: "h:mm a"
+
+ function C(e, r) {
+ switch (e.charAt(0)) {
+ case 'G':
+ return (
+ (r.era = ['short', 'short', 'short', 'long', 'narrow'][
+ e.length - 1
+ ]),
+ '{era}'
+ );
+ case 'y':
+ case 'Y':
+ case 'u':
+ case 'U':
+ case 'r':
+ return (
+ (r.year = 2 === e.length ? '2-digit' : 'numeric'),
+ '{year}'
+ );
+ case 'Q':
+ case 'q':
+ return (
+ (r.quarter = [
+ 'numeric',
+ '2-digit',
+ 'short',
+ 'long',
+ 'narrow',
+ ][e.length - 1]),
+ '{quarter}'
+ );
+ case 'M':
+ case 'L':
+ return (
+ (r.month = [
+ 'numeric',
+ '2-digit',
+ 'short',
+ 'long',
+ 'narrow',
+ ][e.length - 1]),
+ '{month}'
+ );
+ case 'w':
+ return (
+ (r.week = 2 === e.length ? '2-digit' : 'numeric'),
+ '{weekday}'
+ );
+ case 'W':
+ return (r.week = 'numeric'), '{weekday}';
+ case 'd':
+ return (
+ (r.day = 2 === e.length ? '2-digit' : 'numeric'),
+ '{day}'
+ );
+ case 'D':
+ case 'F':
+ case 'g':
+ return (r.day = 'numeric'), '{day}';
+ case 'E':
+ return (
+ (r.weekday = [
+ 'short',
+ 'short',
+ 'short',
+ 'long',
+ 'narrow',
+ 'short',
+ ][e.length - 1]),
+ '{weekday}'
+ );
+ case 'e':
+ return (
+ (r.weekday = [
+ 'numeric',
+ '2-digit',
+ 'short',
+ 'long',
+ 'narrow',
+ 'short',
+ ][e.length - 1]),
+ '{weekday}'
+ );
+ case 'c':
+ return (
+ (r.weekday = [
+ 'numeric',
+ void 0,
+ 'short',
+ 'long',
+ 'narrow',
+ 'short',
+ ][e.length - 1]),
+ '{weekday}'
+ );
+ case 'a':
+ case 'b':
+ case 'B':
+ return (r.hour12 = !0), '{ampm}';
+ case 'h':
+ case 'H':
+ return (
+ (r.hour = 2 === e.length ? '2-digit' : 'numeric'),
+ '{hour}'
+ );
+ case 'k':
+ case 'K':
+ return (
+ (r.hour12 = !0),
+ (r.hour = 2 === e.length ? '2-digit' : 'numeric'),
+ '{hour}'
+ );
+ case 'm':
+ return (
+ (r.minute = 2 === e.length ? '2-digit' : 'numeric'),
+ '{minute}'
+ );
+ case 's':
+ return (
+ (r.second = 2 === e.length ? '2-digit' : 'numeric'),
+ '{second}'
+ );
+ case 'S':
+ case 'A':
+ return (r.second = 'numeric'), '{second}';
+ case 'z':
+ case 'Z':
+ case 'O':
+ case 'v':
+ case 'V':
+ case 'X':
+ case 'x':
+ return (
+ (r.timeZoneName = e.length < 4 ? 'short' : 'long'),
+ '{timeZoneName}'
+ );
+ }
}
- },
- calendars: {
- buddhist: {
- months: {
- narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
- short: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
- long: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["BE"],
- short: ["BE"],
- long: ["BE"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- chinese: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Mo1", "Mo2", "Mo3", "Mo4", "Mo5", "Mo6", "Mo7", "Mo8", "Mo9", "Mo10", "Mo11", "Mo12"],
- long: ["Month1", "Month2", "Month3", "Month4", "Month5", "Month6", "Month7", "Month8", "Month9", "Month10", "Month11", "Month12"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- coptic: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"],
- short: ["Tout", "Baba", "Hator", "Kiahk", "Toba", "Amshir", "Baramhat", "Baramouda", "Bashans", "Paona", "Epep", "Mesra", "Nasie"],
- long: ["Tout", "Baba", "Hator", "Kiahk", "Toba", "Amshir", "Baramhat", "Baramouda", "Bashans", "Paona", "Epep", "Mesra", "Nasie"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["ERA0", "ERA1"],
- short: ["ERA0", "ERA1"],
- long: ["ERA0", "ERA1"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- dangi: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Mo1", "Mo2", "Mo3", "Mo4", "Mo5", "Mo6", "Mo7", "Mo8", "Mo9", "Mo10", "Mo11", "Mo12"],
- long: ["Month1", "Month2", "Month3", "Month4", "Month5", "Month6", "Month7", "Month8", "Month9", "Month10", "Month11", "Month12"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- ethiopic: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"],
- short: ["Meskerem", "Tekemt", "Hedar", "Tahsas", "Ter", "Yekatit", "Megabit", "Miazia", "Genbot", "Sene", "Hamle", "Nehasse", "Pagumen"],
- long: ["Meskerem", "Tekemt", "Hedar", "Tahsas", "Ter", "Yekatit", "Megabit", "Miazia", "Genbot", "Sene", "Hamle", "Nehasse", "Pagumen"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["ERA0", "ERA1"],
- short: ["ERA0", "ERA1"],
- long: ["ERA0", "ERA1"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- ethioaa: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"],
- short: ["Meskerem", "Tekemt", "Hedar", "Tahsas", "Ter", "Yekatit", "Megabit", "Miazia", "Genbot", "Sene", "Hamle", "Nehasse", "Pagumen"],
- long: ["Meskerem", "Tekemt", "Hedar", "Tahsas", "Ter", "Yekatit", "Megabit", "Miazia", "Genbot", "Sene", "Hamle", "Nehasse", "Pagumen"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["ERA0"],
- short: ["ERA0"],
- long: ["ERA0"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- generic: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["M01", "M02", "M03", "M04", "M05", "M06", "M07", "M08", "M09", "M10", "M11", "M12"],
- long: ["M01", "M02", "M03", "M04", "M05", "M06", "M07", "M08", "M09", "M10", "M11", "M12"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["ERA0", "ERA1"],
- short: ["ERA0", "ERA1"],
- long: ["ERA0", "ERA1"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- gregory: {
- months: {
- narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
- short: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
- long: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["B", "A", "BCE", "CE"],
- short: ["BC", "AD", "BCE", "CE"],
- long: ["Before Christ", "Anno Domini", "Before Common Era", "Common Era"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- hebrew: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "7"],
- short: ["Tishri", "Heshvan", "Kislev", "Tevet", "Shevat", "Adar I", "Adar", "Nisan", "Iyar", "Sivan", "Tamuz", "Av", "Elul", "Adar II"],
- long: ["Tishri", "Heshvan", "Kislev", "Tevet", "Shevat", "Adar I", "Adar", "Nisan", "Iyar", "Sivan", "Tamuz", "Av", "Elul", "Adar II"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["AM"],
- short: ["AM"],
- long: ["AM"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- indian: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Chaitra", "Vaisakha", "Jyaistha", "Asadha", "Sravana", "Bhadra", "Asvina", "Kartika", "Agrahayana", "Pausa", "Magha", "Phalguna"],
- long: ["Chaitra", "Vaisakha", "Jyaistha", "Asadha", "Sravana", "Bhadra", "Asvina", "Kartika", "Agrahayana", "Pausa", "Magha", "Phalguna"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["Saka"],
- short: ["Saka"],
- long: ["Saka"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- islamic: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Muh.", "Saf.", "Rab. I", "Rab. II", "Jum. I", "Jum. II", "Raj.", "Sha.", "Ram.", "Shaw.", "Dhuʻl-Q.", "Dhuʻl-H."],
- long: ["Muharram", "Safar", "Rabiʻ I", "Rabiʻ II", "Jumada I", "Jumada II", "Rajab", "Shaʻban", "Ramadan", "Shawwal", "Dhuʻl-Qiʻdah", "Dhuʻl-Hijjah"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["AH"],
- short: ["AH"],
- long: ["AH"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- islamicc: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Muh.", "Saf.", "Rab. I", "Rab. II", "Jum. I", "Jum. II", "Raj.", "Sha.", "Ram.", "Shaw.", "Dhuʻl-Q.", "Dhuʻl-H."],
- long: ["Muharram", "Safar", "Rabiʻ I", "Rabiʻ II", "Jumada I", "Jumada II", "Rajab", "Shaʻban", "Ramadan", "Shawwal", "Dhuʻl-Qiʻdah", "Dhuʻl-Hijjah"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["AH"],
- short: ["AH"],
- long: ["AH"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- japanese: {
- months: {
- narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
- short: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
- long: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["Taika (645–650)", "Hakuchi (650–671)", "Hakuhō (672–686)", "Shuchō (686–701)", "Taihō (701–704)", "Keiun (704–708)", "Wadō (708–715)", "Reiki (715–717)", "Yōrō (717–724)", "Jinki (724–729)", "Tenpyō (729–749)", "Tenpyō-kampō (749-749)", "Tenpyō-shōhō (749-757)", "Tenpyō-hōji (757-765)", "Tenpyō-jingo (765-767)", "Jingo-keiun (767-770)", "Hōki (770–780)", "Ten-ō (781-782)", "Enryaku (782–806)", "Daidō (806–810)", "Kōnin (810–824)", "Tenchō (824–834)", "Jōwa (834–848)", "Kajō (848–851)", "Ninju (851–854)", "Saikō (854–857)", "Ten-an (857-859)", "Jōgan (859–877)", "Gangyō (877–885)", "Ninna (885–889)", "Kanpyō (889–898)", "Shōtai (898–901)", "Engi (901–923)", "Enchō (923–931)", "Jōhei (931–938)", "Tengyō (938–947)", "Tenryaku (947–957)", "Tentoku (957–961)", "Ōwa (961–964)", "Kōhō (964–968)", "Anna (968–970)", "Tenroku (970–973)", "Ten’en (973–976)", "Jōgen (976–978)", "Tengen (978–983)", "Eikan (983–985)", "Kanna (985–987)", "Eien (987–989)", "Eiso (989–990)", "Shōryaku (990–995)", "Chōtoku (995–999)", "Chōhō (999–1004)", "Kankō (1004–1012)", "Chōwa (1012–1017)", "Kannin (1017–1021)", "Jian (1021–1024)", "Manju (1024–1028)", "Chōgen (1028–1037)", "Chōryaku (1037–1040)", "Chōkyū (1040–1044)", "Kantoku (1044–1046)", "Eishō (1046–1053)", "Tengi (1053–1058)", "Kōhei (1058–1065)", "Jiryaku (1065–1069)", "Enkyū (1069–1074)", "Shōho (1074–1077)", "Shōryaku (1077–1081)", "Eihō (1081–1084)", "Ōtoku (1084–1087)", "Kanji (1087–1094)", "Kahō (1094–1096)", "Eichō (1096–1097)", "Jōtoku (1097–1099)", "Kōwa (1099–1104)", "Chōji (1104–1106)", "Kashō (1106–1108)", "Tennin (1108–1110)", "Ten-ei (1110-1113)", "Eikyū (1113–1118)", "Gen’ei (1118–1120)", "Hōan (1120–1124)", "Tenji (1124–1126)", "Daiji (1126–1131)", "Tenshō (1131–1132)", "Chōshō (1132–1135)", "Hōen (1135–1141)", "Eiji (1141–1142)", "Kōji (1142–1144)", "Ten’yō (1144–1145)", "Kyūan (1145–1151)", "Ninpei (1151–1154)", "Kyūju (1154–1156)", "Hōgen (1156–1159)", "Heiji (1159–1160)", "Eiryaku (1160–1161)", "Ōho (1161–1163)", "Chōkan (1163–1165)", "Eiman (1165–1166)", "Nin’an (1166–1169)", "Kaō (1169–1171)", "Shōan (1171–1175)", "Angen (1175–1177)", "Jishō (1177–1181)", "Yōwa (1181–1182)", "Juei (1182–1184)", "Genryaku (1184–1185)", "Bunji (1185–1190)", "Kenkyū (1190–1199)", "Shōji (1199–1201)", "Kennin (1201–1204)", "Genkyū (1204–1206)", "Ken’ei (1206–1207)", "Jōgen (1207–1211)", "Kenryaku (1211–1213)", "Kenpō (1213–1219)", "Jōkyū (1219–1222)", "Jōō (1222–1224)", "Gennin (1224–1225)", "Karoku (1225–1227)", "Antei (1227–1229)", "Kanki (1229–1232)", "Jōei (1232–1233)", "Tenpuku (1233–1234)", "Bunryaku (1234–1235)", "Katei (1235–1238)", "Ryakunin (1238–1239)", "En’ō (1239–1240)", "Ninji (1240–1243)", "Kangen (1243–1247)", "Hōji (1247–1249)", "Kenchō (1249–1256)", "Kōgen (1256–1257)", "Shōka (1257–1259)", "Shōgen (1259–1260)", "Bun’ō (1260–1261)", "Kōchō (1261–1264)", "Bun’ei (1264–1275)", "Kenji (1275–1278)", "Kōan (1278–1288)", "Shōō (1288–1293)", "Einin (1293–1299)", "Shōan (1299–1302)", "Kengen (1302–1303)", "Kagen (1303–1306)", "Tokuji (1306–1308)", "Enkyō (1308–1311)", "Ōchō (1311–1312)", "Shōwa (1312–1317)", "Bunpō (1317–1319)", "Genō (1319–1321)", "Genkō (1321–1324)", "Shōchū (1324–1326)", "Karyaku (1326–1329)", "Gentoku (1329–1331)", "Genkō (1331–1334)", "Kenmu (1334–1336)", "Engen (1336–1340)", "Kōkoku (1340–1346)", "Shōhei (1346–1370)", "Kentoku (1370–1372)", "Bunchū (1372–1375)", "Tenju (1375–1379)", "Kōryaku (1379–1381)", "Kōwa (1381–1384)", "Genchū (1384–1392)", "Meitoku (1384–1387)", "Kakei (1387–1389)", "Kōō (1389–1390)", "Meitoku (1390–1394)", "Ōei (1394–1428)", "Shōchō (1428–1429)", "Eikyō (1429–1441)", "Kakitsu (1441–1444)", "Bun’an (1444–1449)", "Hōtoku (1449–1452)", "Kyōtoku (1452–1455)", "Kōshō (1455–1457)", "Chōroku (1457–1460)", "Kanshō (1460–1466)", "Bunshō (1466–1467)", "Ōnin (1467–1469)", "Bunmei (1469–1487)", "Chōkyō (1487–1489)", "Entoku (1489–1492)", "Meiō (1492–1501)", "Bunki (1501–1504)", "Eishō (1504–1521)", "Taiei (1521–1528)", "Kyōroku (1528–1532)", "Tenbun (1532–1555)", "Kōji (1555–1558)", "Eiroku (1558–1570)", "Genki (1570–1573)", "Tenshō (1573–1592)", "Bunroku (1592–1596)", "Keichō (1596–1615)", "Genna (1615–1624)", "Kan’ei (1624–1644)", "Shōho (1644–1648)", "Keian (1648–1652)", "Jōō (1652–1655)", "Meireki (1655–1658)", "Manji (1658–1661)", "Kanbun (1661–1673)", "Enpō (1673–1681)", "Tenna (1681–1684)", "Jōkyō (1684–1688)", "Genroku (1688–1704)", "Hōei (1704–1711)", "Shōtoku (1711–1716)", "Kyōhō (1716–1736)", "Genbun (1736–1741)", "Kanpō (1741–1744)", "Enkyō (1744–1748)", "Kan’en (1748–1751)", "Hōreki (1751–1764)", "Meiwa (1764–1772)", "An’ei (1772–1781)", "Tenmei (1781–1789)", "Kansei (1789–1801)", "Kyōwa (1801–1804)", "Bunka (1804–1818)", "Bunsei (1818–1830)", "Tenpō (1830–1844)", "Kōka (1844–1848)", "Kaei (1848–1854)", "Ansei (1854–1860)", "Man’en (1860–1861)", "Bunkyū (1861–1864)", "Genji (1864–1865)", "Keiō (1865–1868)", "M", "T", "S", "H"],
- short: ["Taika (645–650)", "Hakuchi (650–671)", "Hakuhō (672–686)", "Shuchō (686–701)", "Taihō (701–704)", "Keiun (704–708)", "Wadō (708–715)", "Reiki (715–717)", "Yōrō (717–724)", "Jinki (724–729)", "Tenpyō (729–749)", "Tenpyō-kampō (749-749)", "Tenpyō-shōhō (749-757)", "Tenpyō-hōji (757-765)", "Tenpyō-jingo (765-767)", "Jingo-keiun (767-770)", "Hōki (770–780)", "Ten-ō (781-782)", "Enryaku (782–806)", "Daidō (806–810)", "Kōnin (810–824)", "Tenchō (824–834)", "Jōwa (834–848)", "Kajō (848–851)", "Ninju (851–854)", "Saikō (854–857)", "Ten-an (857-859)", "Jōgan (859–877)", "Gangyō (877–885)", "Ninna (885–889)", "Kanpyō (889–898)", "Shōtai (898–901)", "Engi (901–923)", "Enchō (923–931)", "Jōhei (931–938)", "Tengyō (938–947)", "Tenryaku (947–957)", "Tentoku (957–961)", "Ōwa (961–964)", "Kōhō (964–968)", "Anna (968–970)", "Tenroku (970–973)", "Ten’en (973–976)", "Jōgen (976–978)", "Tengen (978–983)", "Eikan (983–985)", "Kanna (985–987)", "Eien (987–989)", "Eiso (989–990)", "Shōryaku (990–995)", "Chōtoku (995–999)", "Chōhō (999–1004)", "Kankō (1004–1012)", "Chōwa (1012–1017)", "Kannin (1017–1021)", "Jian (1021–1024)", "Manju (1024–1028)", "Chōgen (1028–1037)", "Chōryaku (1037–1040)", "Chōkyū (1040–1044)", "Kantoku (1044–1046)", "Eishō (1046–1053)", "Tengi (1053–1058)", "Kōhei (1058–1065)", "Jiryaku (1065–1069)", "Enkyū (1069–1074)", "Shōho (1074–1077)", "Shōryaku (1077–1081)", "Eihō (1081–1084)", "Ōtoku (1084–1087)", "Kanji (1087–1094)", "Kahō (1094–1096)", "Eichō (1096–1097)", "Jōtoku (1097–1099)", "Kōwa (1099–1104)", "Chōji (1104–1106)", "Kashō (1106–1108)", "Tennin (1108–1110)", "Ten-ei (1110-1113)", "Eikyū (1113–1118)", "Gen’ei (1118–1120)", "Hōan (1120–1124)", "Tenji (1124–1126)", "Daiji (1126–1131)", "Tenshō (1131–1132)", "Chōshō (1132–1135)", "Hōen (1135–1141)", "Eiji (1141–1142)", "Kōji (1142–1144)", "Ten’yō (1144–1145)", "Kyūan (1145–1151)", "Ninpei (1151–1154)", "Kyūju (1154–1156)", "Hōgen (1156–1159)", "Heiji (1159–1160)", "Eiryaku (1160–1161)", "Ōho (1161–1163)", "Chōkan (1163–1165)", "Eiman (1165–1166)", "Nin’an (1166–1169)", "Kaō (1169–1171)", "Shōan (1171–1175)", "Angen (1175–1177)", "Jishō (1177–1181)", "Yōwa (1181–1182)", "Juei (1182–1184)", "Genryaku (1184–1185)", "Bunji (1185–1190)", "Kenkyū (1190–1199)", "Shōji (1199–1201)", "Kennin (1201–1204)", "Genkyū (1204–1206)", "Ken’ei (1206–1207)", "Jōgen (1207–1211)", "Kenryaku (1211–1213)", "Kenpō (1213–1219)", "Jōkyū (1219–1222)", "Jōō (1222–1224)", "Gennin (1224–1225)", "Karoku (1225–1227)", "Antei (1227–1229)", "Kanki (1229–1232)", "Jōei (1232–1233)", "Tenpuku (1233–1234)", "Bunryaku (1234–1235)", "Katei (1235–1238)", "Ryakunin (1238–1239)", "En’ō (1239–1240)", "Ninji (1240–1243)", "Kangen (1243–1247)", "Hōji (1247–1249)", "Kenchō (1249–1256)", "Kōgen (1256–1257)", "Shōka (1257–1259)", "Shōgen (1259–1260)", "Bun’ō (1260–1261)", "Kōchō (1261–1264)", "Bun’ei (1264–1275)", "Kenji (1275–1278)", "Kōan (1278–1288)", "Shōō (1288–1293)", "Einin (1293–1299)", "Shōan (1299–1302)", "Kengen (1302–1303)", "Kagen (1303–1306)", "Tokuji (1306–1308)", "Enkyō (1308–1311)", "Ōchō (1311–1312)", "Shōwa (1312–1317)", "Bunpō (1317–1319)", "Genō (1319–1321)", "Genkō (1321–1324)", "Shōchū (1324–1326)", "Karyaku (1326–1329)", "Gentoku (1329–1331)", "Genkō (1331–1334)", "Kenmu (1334–1336)", "Engen (1336–1340)", "Kōkoku (1340–1346)", "Shōhei (1346–1370)", "Kentoku (1370–1372)", "Bunchū (1372–1375)", "Tenju (1375–1379)", "Kōryaku (1379–1381)", "Kōwa (1381–1384)", "Genchū (1384–1392)", "Meitoku (1384–1387)", "Kakei (1387–1389)", "Kōō (1389–1390)", "Meitoku (1390–1394)", "Ōei (1394–1428)", "Shōchō (1428–1429)", "Eikyō (1429–1441)", "Kakitsu (1441–1444)", "Bun’an (1444–1449)", "Hōtoku (1449–1452)", "Kyōtoku (1452–1455)", "Kōshō (1455–1457)", "Chōroku (1457–1460)", "Kanshō (1460–1466)", "Bunshō (1466–1467)", "Ōnin (1467–1469)", "Bunmei (1469–1487)", "Chōkyō (1487–1489)", "Entoku (1489–1492)", "Meiō (1492–1501)", "Bunki (1501–1504)", "Eishō (1504–1521)", "Taiei (1521–1528)", "Kyōroku (1528–1532)", "Tenbun (1532–1555)", "Kōji (1555–1558)", "Eiroku (1558–1570)", "Genki (1570–1573)", "Tenshō (1573–1592)", "Bunroku (1592–1596)", "Keichō (1596–1615)", "Genna (1615–1624)", "Kan’ei (1624–1644)", "Shōho (1644–1648)", "Keian (1648–1652)", "Jōō (1652–1655)", "Meireki (1655–1658)", "Manji (1658–1661)", "Kanbun (1661–1673)", "Enpō (1673–1681)", "Tenna (1681–1684)", "Jōkyō (1684–1688)", "Genroku (1688–1704)", "Hōei (1704–1711)", "Shōtoku (1711–1716)", "Kyōhō (1716–1736)", "Genbun (1736–1741)", "Kanpō (1741–1744)", "Enkyō (1744–1748)", "Kan’en (1748–1751)", "Hōreki (1751–1764)", "Meiwa (1764–1772)", "An’ei (1772–1781)", "Tenmei (1781–1789)", "Kansei (1789–1801)", "Kyōwa (1801–1804)", "Bunka (1804–1818)", "Bunsei (1818–1830)", "Tenpō (1830–1844)", "Kōka (1844–1848)", "Kaei (1848–1854)", "Ansei (1854–1860)", "Man’en (1860–1861)", "Bunkyū (1861–1864)", "Genji (1864–1865)", "Keiō (1865–1868)", "Meiji", "Taishō", "Shōwa", "Heisei"],
- long: ["Taika (645–650)", "Hakuchi (650–671)", "Hakuhō (672–686)", "Shuchō (686–701)", "Taihō (701–704)", "Keiun (704–708)", "Wadō (708–715)", "Reiki (715–717)", "Yōrō (717–724)", "Jinki (724–729)", "Tenpyō (729–749)", "Tenpyō-kampō (749-749)", "Tenpyō-shōhō (749-757)", "Tenpyō-hōji (757-765)", "Tenpyō-jingo (765-767)", "Jingo-keiun (767-770)", "Hōki (770–780)", "Ten-ō (781-782)", "Enryaku (782–806)", "Daidō (806–810)", "Kōnin (810–824)", "Tenchō (824–834)", "Jōwa (834–848)", "Kajō (848–851)", "Ninju (851–854)", "Saikō (854–857)", "Ten-an (857-859)", "Jōgan (859–877)", "Gangyō (877–885)", "Ninna (885–889)", "Kanpyō (889–898)", "Shōtai (898–901)", "Engi (901–923)", "Enchō (923–931)", "Jōhei (931–938)", "Tengyō (938–947)", "Tenryaku (947–957)", "Tentoku (957–961)", "Ōwa (961–964)", "Kōhō (964–968)", "Anna (968–970)", "Tenroku (970–973)", "Ten’en (973–976)", "Jōgen (976–978)", "Tengen (978–983)", "Eikan (983–985)", "Kanna (985–987)", "Eien (987–989)", "Eiso (989–990)", "Shōryaku (990–995)", "Chōtoku (995–999)", "Chōhō (999–1004)", "Kankō (1004–1012)", "Chōwa (1012–1017)", "Kannin (1017–1021)", "Jian (1021–1024)", "Manju (1024–1028)", "Chōgen (1028–1037)", "Chōryaku (1037–1040)", "Chōkyū (1040–1044)", "Kantoku (1044–1046)", "Eishō (1046–1053)", "Tengi (1053–1058)", "Kōhei (1058–1065)", "Jiryaku (1065–1069)", "Enkyū (1069–1074)", "Shōho (1074–1077)", "Shōryaku (1077–1081)", "Eihō (1081–1084)", "Ōtoku (1084–1087)", "Kanji (1087–1094)", "Kahō (1094–1096)", "Eichō (1096–1097)", "Jōtoku (1097–1099)", "Kōwa (1099–1104)", "Chōji (1104–1106)", "Kashō (1106–1108)", "Tennin (1108–1110)", "Ten-ei (1110-1113)", "Eikyū (1113–1118)", "Gen’ei (1118–1120)", "Hōan (1120–1124)", "Tenji (1124–1126)", "Daiji (1126–1131)", "Tenshō (1131–1132)", "Chōshō (1132–1135)", "Hōen (1135–1141)", "Eiji (1141–1142)", "Kōji (1142–1144)", "Ten’yō (1144–1145)", "Kyūan (1145–1151)", "Ninpei (1151–1154)", "Kyūju (1154–1156)", "Hōgen (1156–1159)", "Heiji (1159–1160)", "Eiryaku (1160–1161)", "Ōho (1161–1163)", "Chōkan (1163–1165)", "Eiman (1165–1166)", "Nin’an (1166–1169)", "Kaō (1169–1171)", "Shōan (1171–1175)", "Angen (1175–1177)", "Jishō (1177–1181)", "Yōwa (1181–1182)", "Juei (1182–1184)", "Genryaku (1184–1185)", "Bunji (1185–1190)", "Kenkyū (1190–1199)", "Shōji (1199–1201)", "Kennin (1201–1204)", "Genkyū (1204–1206)", "Ken’ei (1206–1207)", "Jōgen (1207–1211)", "Kenryaku (1211–1213)", "Kenpō (1213–1219)", "Jōkyū (1219–1222)", "Jōō (1222–1224)", "Gennin (1224–1225)", "Karoku (1225–1227)", "Antei (1227–1229)", "Kanki (1229–1232)", "Jōei (1232–1233)", "Tenpuku (1233–1234)", "Bunryaku (1234–1235)", "Katei (1235–1238)", "Ryakunin (1238–1239)", "En’ō (1239–1240)", "Ninji (1240–1243)", "Kangen (1243–1247)", "Hōji (1247–1249)", "Kenchō (1249–1256)", "Kōgen (1256–1257)", "Shōka (1257–1259)", "Shōgen (1259–1260)", "Bun’ō (1260–1261)", "Kōchō (1261–1264)", "Bun’ei (1264–1275)", "Kenji (1275–1278)", "Kōan (1278–1288)", "Shōō (1288–1293)", "Einin (1293–1299)", "Shōan (1299–1302)", "Kengen (1302–1303)", "Kagen (1303–1306)", "Tokuji (1306–1308)", "Enkyō (1308–1311)", "Ōchō (1311–1312)", "Shōwa (1312–1317)", "Bunpō (1317–1319)", "Genō (1319–1321)", "Genkō (1321–1324)", "Shōchū (1324–1326)", "Karyaku (1326–1329)", "Gentoku (1329–1331)", "Genkō (1331–1334)", "Kenmu (1334–1336)", "Engen (1336–1340)", "Kōkoku (1340–1346)", "Shōhei (1346–1370)", "Kentoku (1370–1372)", "Bunchū (1372–1375)", "Tenju (1375–1379)", "Kōryaku (1379–1381)", "Kōwa (1381–1384)", "Genchū (1384–1392)", "Meitoku (1384–1387)", "Kakei (1387–1389)", "Kōō (1389–1390)", "Meitoku (1390–1394)", "Ōei (1394–1428)", "Shōchō (1428–1429)", "Eikyō (1429–1441)", "Kakitsu (1441–1444)", "Bun’an (1444–1449)", "Hōtoku (1449–1452)", "Kyōtoku (1452–1455)", "Kōshō (1455–1457)", "Chōroku (1457–1460)", "Kanshō (1460–1466)", "Bunshō (1466–1467)", "Ōnin (1467–1469)", "Bunmei (1469–1487)", "Chōkyō (1487–1489)", "Entoku (1489–1492)", "Meiō (1492–1501)", "Bunki (1501–1504)", "Eishō (1504–1521)", "Taiei (1521–1528)", "Kyōroku (1528–1532)", "Tenbun (1532–1555)", "Kōji (1555–1558)", "Eiroku (1558–1570)", "Genki (1570–1573)", "Tenshō (1573–1592)", "Bunroku (1592–1596)", "Keichō (1596–1615)", "Genna (1615–1624)", "Kan’ei (1624–1644)", "Shōho (1644–1648)", "Keian (1648–1652)", "Jōō (1652–1655)", "Meireki (1655–1658)", "Manji (1658–1661)", "Kanbun (1661–1673)", "Enpō (1673–1681)", "Tenna (1681–1684)", "Jōkyō (1684–1688)", "Genroku (1688–1704)", "Hōei (1704–1711)", "Shōtoku (1711–1716)", "Kyōhō (1716–1736)", "Genbun (1736–1741)", "Kanpō (1741–1744)", "Enkyō (1744–1748)", "Kan’en (1748–1751)", "Hōreki (1751–1764)", "Meiwa (1764–1772)", "An’ei (1772–1781)", "Tenmei (1781–1789)", "Kansei (1789–1801)", "Kyōwa (1801–1804)", "Bunka (1804–1818)", "Bunsei (1818–1830)", "Tenpō (1830–1844)", "Kōka (1844–1848)", "Kaei (1848–1854)", "Ansei (1854–1860)", "Man’en (1860–1861)", "Bunkyū (1861–1864)", "Genji (1864–1865)", "Keiō (1865–1868)", "Meiji", "Taishō", "Shōwa", "Heisei"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- persian: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Farvardin", "Ordibehesht", "Khordad", "Tir", "Mordad", "Shahrivar", "Mehr", "Aban", "Azar", "Dey", "Bahman", "Esfand"],
- long: ["Farvardin", "Ordibehesht", "Khordad", "Tir", "Mordad", "Shahrivar", "Mehr", "Aban", "Azar", "Dey", "Bahman", "Esfand"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["AP"],
- short: ["AP"],
- long: ["AP"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- roc: {
- months: {
- narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
- short: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
- long: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["Before R.O.C.", "Minguo"],
- short: ["Before R.O.C.", "Minguo"],
- long: ["Before R.O.C.", "Minguo"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
+
+ function G(e, r) {
+ if (!yr.test(r)) {
+ var t = {
+ originalPattern: r,
+ _: {},
+ };
+ return (
+ (t.extendedPattern = r.replace(hr, function (e) {
+ return C(e, t._);
+ })),
+ e.replace(hr, function (e) {
+ return C(e, t);
+ }),
+ q(t)
+ );
+ }
}
- }
- },
- number: {
- nu: ["latn"],
- patterns: {
- decimal: {
- positivePattern: "{number}",
- negativePattern: "{minusSign}{number}"
- },
- currency: {
- positivePattern: "{currency}{number}",
- negativePattern: "{minusSign}{currency}{number}"
- },
- percent: {
- positivePattern: "{number}{percentSign}",
- negativePattern: "{minusSign}{number}{percentSign}"
+
+ function Z(e) {
+ var r = e.availableFormats,
+ t = e.timeFormats,
+ n = e.dateFormats,
+ a = [],
+ i = void 0,
+ o = void 0,
+ s = void 0,
+ l = void 0,
+ c = void 0,
+ u = [],
+ g = [];
+ for (i in r)
+ r.hasOwnProperty(i) &&
+ ((o = r[i]),
+ (s = G(i, o)),
+ s && (a.push(s), I(s) ? g.push(s) : A(s) && u.push(s)));
+ for (i in t)
+ t.hasOwnProperty(i) &&
+ ((o = t[i]), (s = G(i, o)), s && (a.push(s), u.push(s)));
+ for (i in n)
+ n.hasOwnProperty(i) &&
+ ((o = n[i]), (s = G(i, o)), s && (a.push(s), g.push(s)));
+ for (l = 0; l < u.length; l += 1)
+ for (c = 0; c < g.length; c += 1)
+ (o =
+ 'long' === g[c].month
+ ? g[c].weekday
+ ? e.full
+ : e.long
+ : 'short' === g[c].month
+ ? e.medium
+ : e.short),
+ (s = R(g[c], u[l])),
+ (s.originalPattern = o),
+ (s.extendedPattern = o
+ .replace('{0}', u[l].extendedPattern)
+ .replace('{1}', g[c].extendedPattern)
+ .replace(/^[,\s]+|[,\s]+$/gi, '')),
+ a.push(q(s));
+ return a;
}
- },
- symbols: {
- latn: {
- decimal: ".",
- group: ",",
- nan: "NaN",
- plusSign: "+",
- minusSign: "-",
- percentSign: "%",
- infinity: "∞"
+
+ function B(e, r) {
+ if (xr[e] && xr[e][r]) {
+ var t;
+ return (
+ (t = {
+ originalPattern: xr[e][r],
+ _: ge({}, e, r),
+ extendedPattern: '{' + e + '}',
+ }),
+ ge(t, e, r),
+ ge(t, 'pattern12', '{' + e + '}'),
+ ge(t, 'pattern', '{' + e + '}'),
+ t
+ );
+ }
}
- },
- currencies: {
- AUD: "A$",
- BRL: "R$",
- CAD: "CA$",
- CNY: "CN¥",
- EUR: "€",
- GBP: "£",
- HKD: "HK$",
- ILS: "₪",
- INR: "₹",
- JPY: "¥",
- KRW: "₩",
- MXN: "MX$",
- NZD: "NZ$",
- TWD: "NT$",
- USD: "$",
- VND: "₫",
- XAF: "FCFA",
- XCD: "EC$",
- XOF: "CFA",
- XPF: "CFPF"
- }
- }
- });
-
- // Intl.~locale.de
- IntlPolyfill.__addLocaleData({
- locale: "de",
- date: {
- ca: ["gregory", "buddhist", "chinese", "coptic", "dangi", "ethioaa", "ethiopic", "generic", "hebrew", "indian", "islamic", "islamicc", "japanese", "persian", "roc"],
- hourNo0: true,
- hour12: false,
- formats: {
- short: "{1}, {0}",
- medium: "{1}, {0}",
- full: "{1} 'um' {0}",
- long: "{1} 'um' {0}",
- availableFormats: {
- "d": "d",
- "E": "ccc",
- Ed: "E, d.",
- Ehm: "E h:mm a",
- EHm: "E, HH:mm",
- Ehms: "E, h:mm:ss a",
- EHms: "E, HH:mm:ss",
- Gy: "y G",
- GyMMM: "MMM y G",
- GyMMMd: "d. MMM y G",
- GyMMMEd: "E, d. MMM y G",
- "h": "h a",
- "H": "HH 'Uhr'",
- hm: "h:mm a",
- Hm: "HH:mm",
- hms: "h:mm:ss a",
- Hms: "HH:mm:ss",
- hmsv: "h:mm:ss a v",
- Hmsv: "HH:mm:ss v",
- hmv: "h:mm a v",
- Hmv: "HH:mm v",
- "M": "L",
- Md: "d.M.",
- MEd: "E, d.M.",
- MMd: "d.MM.",
- MMdd: "dd.MM.",
- MMM: "LLL",
- MMMd: "d. MMM",
- MMMEd: "E, d. MMM",
- MMMMd: "d. MMMM",
- MMMMEd: "E, d. MMMM",
- ms: "mm:ss",
- "y": "y",
- yM: "M.y",
- yMd: "d.M.y",
- yMEd: "E, d.M.y",
- yMM: "MM.y",
- yMMdd: "dd.MM.y",
- yMMM: "MMM y",
- yMMMd: "d. MMM y",
- yMMMEd: "E, d. MMM y",
- yMMMM: "MMMM y",
- yQQQ: "QQQ y",
- yQQQQ: "QQQQ y"
- },
- dateFormats: {
- yMMMMEEEEd: "EEEE, d. MMMM y",
- yMMMMd: "d. MMMM y",
- yMMMd: "dd.MM.y",
- yMd: "dd.MM.yy"
- },
- timeFormats: {
- hmmsszzzz: "HH:mm:ss zzzz",
- hmsz: "HH:mm:ss z",
- hms: "HH:mm:ss",
- hm: "HH:mm"
+
+ function U(e, r, t, n, a) {
+ var i = e[r] && e[r][t] ? e[r][t] : e.gregory[t],
+ o = {
+ narrow: ['short', 'long'],
+ short: ['long', 'narrow'],
+ long: ['short', 'narrow'],
+ },
+ s = Me.call(i, n)
+ ? i[n]
+ : Me.call(i, o[n][0])
+ ? i[o[n][0]]
+ : i[o[n][1]];
+ return null !== a ? s[a] : s;
}
- },
- calendars: {
- buddhist: {
- months: {
- narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
- short: ["Jan.", "Feb.", "März", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."],
- long: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]
- },
- days: {
- narrow: ["S", "M", "D", "M", "D", "F", "S"],
- short: ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."],
- long: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
- },
- eras: {
- narrow: ["BE"],
- short: ["BE"],
- long: ["BE"]
- },
- dayPeriods: {
- am: "vorm.",
- pm: "nachm."
- }
- },
- chinese: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["M01", "M02", "M03", "M04", "M05", "M06", "M07", "M08", "M09", "M10", "M11", "M12"],
- long: ["M01", "M02", "M03", "M04", "M05", "M06", "M07", "M08", "M09", "M10", "M11", "M12"]
- },
- days: {
- narrow: ["S", "M", "D", "M", "D", "F", "S"],
- short: ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."],
- long: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
- },
- dayPeriods: {
- am: "vorm.",
- pm: "nachm."
- }
- },
- coptic: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"],
- short: ["Tout", "Baba", "Hator", "Kiahk", "Toba", "Amshir", "Baramhat", "Baramouda", "Bashans", "Paona", "Epep", "Mesra", "Nasie"],
- long: ["Tout", "Baba", "Hator", "Kiahk", "Toba", "Amshir", "Baramhat", "Baramouda", "Bashans", "Paona", "Epep", "Mesra", "Nasie"]
- },
- days: {
- narrow: ["S", "M", "D", "M", "D", "F", "S"],
- short: ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."],
- long: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
- },
- eras: {
- narrow: ["ERA0", "ERA1"],
- short: ["ERA0", "ERA1"],
- long: ["ERA0", "ERA1"]
- },
- dayPeriods: {
- am: "vorm.",
- pm: "nachm."
- }
- },
- dangi: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["M01", "M02", "M03", "M04", "M05", "M06", "M07", "M08", "M09", "M10", "M11", "M12"],
- long: ["M01", "M02", "M03", "M04", "M05", "M06", "M07", "M08", "M09", "M10", "M11", "M12"]
- },
- days: {
- narrow: ["S", "M", "D", "M", "D", "F", "S"],
- short: ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."],
- long: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
- },
- dayPeriods: {
- am: "vorm.",
- pm: "nachm."
- }
- },
- ethiopic: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"],
- short: ["Meskerem", "Tekemt", "Hedar", "Tahsas", "Ter", "Yekatit", "Megabit", "Miazia", "Genbot", "Sene", "Hamle", "Nehasse", "Pagumen"],
- long: ["Meskerem", "Tekemt", "Hedar", "Tahsas", "Ter", "Yekatit", "Megabit", "Miazia", "Genbot", "Sene", "Hamle", "Nehasse", "Pagumen"]
- },
- days: {
- narrow: ["S", "M", "D", "M", "D", "F", "S"],
- short: ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."],
- long: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
- },
- eras: {
- narrow: ["ERA0", "ERA1"],
- short: ["ERA0", "ERA1"],
- long: ["ERA0", "ERA1"]
- },
- dayPeriods: {
- am: "vorm.",
- pm: "nachm."
- }
- },
- ethioaa: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"],
- short: ["Meskerem", "Tekemt", "Hedar", "Tahsas", "Ter", "Yekatit", "Megabit", "Miazia", "Genbot", "Sene", "Hamle", "Nehasse", "Pagumen"],
- long: ["Meskerem", "Tekemt", "Hedar", "Tahsas", "Ter", "Yekatit", "Megabit", "Miazia", "Genbot", "Sene", "Hamle", "Nehasse", "Pagumen"]
- },
- days: {
- narrow: ["S", "M", "D", "M", "D", "F", "S"],
- short: ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."],
- long: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
- },
- eras: {
- narrow: ["ERA0"],
- short: ["ERA0"],
- long: ["ERA0"]
- },
- dayPeriods: {
- am: "vorm.",
- pm: "nachm."
- }
- },
- generic: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["M01", "M02", "M03", "M04", "M05", "M06", "M07", "M08", "M09", "M10", "M11", "M12"],
- long: ["M01", "M02", "M03", "M04", "M05", "M06", "M07", "M08", "M09", "M10", "M11", "M12"]
- },
- days: {
- narrow: ["S", "M", "D", "M", "D", "F", "S"],
- short: ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."],
- long: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
- },
- eras: {
- narrow: ["ERA0", "ERA1"],
- short: ["ERA0", "ERA1"],
- long: ["ERA0", "ERA1"]
- },
- dayPeriods: {
- am: "vorm.",
- pm: "nachm."
- }
- },
- gregory: {
- months: {
- narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
- short: ["Jan.", "Feb.", "März", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."],
- long: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]
- },
- days: {
- narrow: ["S", "M", "D", "M", "D", "F", "S"],
- short: ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."],
- long: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
- },
- eras: {
- narrow: ["v. Chr.", "n. Chr.", "v. u. Z.", "u. Z."],
- short: ["v. Chr.", "n. Chr.", "v. u. Z.", "u. Z."],
- long: ["v. Chr.", "n. Chr.", "vor unserer Zeitrechnung", "unserer Zeitrechnung"]
- },
- dayPeriods: {
- am: "vorm.",
- pm: "nachm."
- }
- },
- hebrew: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "7"],
- short: ["Tishri", "Heshvan", "Kislev", "Tevet", "Shevat", "Adar I", "Adar", "Nisan", "Iyar", "Sivan", "Tamuz", "Av", "Elul", "Adar II"],
- long: ["Tishri", "Heshvan", "Kislev", "Tevet", "Shevat", "Adar I", "Adar", "Nisan", "Iyar", "Sivan", "Tamuz", "Av", "Elul", "Adar II"]
- },
- days: {
- narrow: ["S", "M", "D", "M", "D", "F", "S"],
- short: ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."],
- long: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
- },
- eras: {
- narrow: ["AM"],
- short: ["AM"],
- long: ["AM"]
- },
- dayPeriods: {
- am: "vorm.",
- pm: "nachm."
- }
- },
- indian: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Chaitra", "Vaisakha", "Jyaistha", "Asadha", "Sravana", "Bhadra", "Asvina", "Kartika", "Agrahayana", "Pausa", "Magha", "Phalguna"],
- long: ["Chaitra", "Vaisakha", "Jyaistha", "Asadha", "Sravana", "Bhadra", "Asvina", "Kartika", "Agrahayana", "Pausa", "Magha", "Phalguna"]
- },
- days: {
- narrow: ["S", "M", "D", "M", "D", "F", "S"],
- short: ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."],
- long: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
- },
- eras: {
- narrow: ["Saka"],
- short: ["Saka"],
- long: ["Saka"]
- },
- dayPeriods: {
- am: "vorm.",
- pm: "nachm."
- }
- },
- islamic: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Muh.", "Saf.", "Rab. I", "Rab. II", "Jum. I", "Jum. II", "Raj.", "Sha.", "Ram.", "Shaw.", "Dhuʻl-Q.", "Dhuʻl-H."],
- long: ["Muharram", "Safar", "Rabiʻ I", "Rabiʻ II", "Jumada I", "Jumada II", "Rajab", "Shaʻban", "Ramadan", "Shawwal", "Dhuʻl-Qiʻdah", "Dhuʻl-Hijjah"]
- },
- days: {
- narrow: ["S", "M", "D", "M", "D", "F", "S"],
- short: ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."],
- long: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
- },
- eras: {
- narrow: ["AH"],
- short: ["AH"],
- long: ["AH"]
- },
- dayPeriods: {
- am: "vorm.",
- pm: "nachm."
- }
- },
- islamicc: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Muh.", "Saf.", "Rab. I", "Rab. II", "Jum. I", "Jum. II", "Raj.", "Sha.", "Ram.", "Shaw.", "Dhuʻl-Q.", "Dhuʻl-H."],
- long: ["Muharram", "Safar", "Rabiʻ I", "Rabiʻ II", "Jumada I", "Jumada II", "Rajab", "Shaʻban", "Ramadan", "Shawwal", "Dhuʻl-Qiʻdah", "Dhuʻl-Hijjah"]
- },
- days: {
- narrow: ["S", "M", "D", "M", "D", "F", "S"],
- short: ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."],
- long: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
- },
- eras: {
- narrow: ["AH"],
- short: ["AH"],
- long: ["AH"]
- },
- dayPeriods: {
- am: "vorm.",
- pm: "nachm."
- }
- },
- japanese: {
- months: {
- narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
- short: ["Jan.", "Feb.", "März", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."],
- long: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]
- },
- days: {
- narrow: ["S", "M", "D", "M", "D", "F", "S"],
- short: ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."],
- long: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
- },
- eras: {
- narrow: ["Taika (645–650)", "Hakuchi (650–671)", "Hakuhō (672–686)", "Shuchō (686–701)", "Taihō (701–704)", "Keiun (704–708)", "Wadō (708–715)", "Reiki (715–717)", "Yōrō (717–724)", "Jinki (724–729)", "Tenpyō (729–749)", "Tenpyō-kampō (749-749)", "Tenpyō-shōhō (749-757)", "Tenpyō-hōji (757-765)", "Tenpyō-jingo (765-767)", "Jingo-keiun (767-770)", "Hōki (770–780)", "Ten-ō (781-782)", "Enryaku (782–806)", "Daidō (806–810)", "Kōnin (810–824)", "Tenchō (824–834)", "Jōwa (834–848)", "Kajō (848–851)", "Ninju (851–854)", "Saikō (854–857)", "Ten-an (857-859)", "Jōgan (859–877)", "Gangyō (877–885)", "Ninna (885–889)", "Kanpyō (889–898)", "Shōtai (898–901)", "Engi (901–923)", "Enchō (923–931)", "Jōhei (931–938)", "Tengyō (938–947)", "Tenryaku (947–957)", "Tentoku (957–961)", "Ōwa (961–964)", "Kōhō (964–968)", "Anna (968–970)", "Tenroku (970–973)", "Ten’en (973–976)", "Jōgen (976–978)", "Tengen (978–983)", "Eikan (983–985)", "Kanna (985–987)", "Eien (987–989)", "Eiso (989–990)", "Shōryaku (990–995)", "Chōtoku (995–999)", "Chōhō (999–1004)", "Kankō (1004–1012)", "Chōwa (1012–1017)", "Kannin (1017–1021)", "Jian (1021–1024)", "Manju (1024–1028)", "Chōgen (1028–1037)", "Chōryaku (1037–1040)", "Chōkyū (1040–1044)", "Kantoku (1044–1046)", "Eishō (1046–1053)", "Tengi (1053–1058)", "Kōhei (1058–1065)", "Jiryaku (1065–1069)", "Enkyū (1069–1074)", "Shōho (1074–1077)", "Shōryaku (1077–1081)", "Eihō (1081–1084)", "Ōtoku (1084–1087)", "Kanji (1087–1094)", "Kahō (1094–1096)", "Eichō (1096–1097)", "Jōtoku (1097–1099)", "Kōwa (1099–1104)", "Chōji (1104–1106)", "Kashō (1106–1108)", "Tennin (1108–1110)", "Ten-ei (1110-1113)", "Eikyū (1113–1118)", "Gen’ei (1118–1120)", "Hōan (1120–1124)", "Tenji (1124–1126)", "Daiji (1126–1131)", "Tenshō (1131–1132)", "Chōshō (1132–1135)", "Hōen (1135–1141)", "Eiji (1141–1142)", "Kōji (1142–1144)", "Ten’yō (1144–1145)", "Kyūan (1145–1151)", "Ninpei (1151–1154)", "Kyūju (1154–1156)", "Hōgen (1156–1159)", "Heiji (1159–1160)", "Eiryaku (1160–1161)", "Ōho (1161–1163)", "Chōkan (1163–1165)", "Eiman (1165–1166)", "Nin’an (1166–1169)", "Kaō (1169–1171)", "Shōan (1171–1175)", "Angen (1175–1177)", "Jishō (1177–1181)", "Yōwa (1181–1182)", "Juei (1182–1184)", "Genryaku (1184–1185)", "Bunji (1185–1190)", "Kenkyū (1190–1199)", "Shōji (1199–1201)", "Kennin (1201–1204)", "Genkyū (1204–1206)", "Ken’ei (1206–1207)", "Jōgen (1207–1211)", "Kenryaku (1211–1213)", "Kenpō (1213–1219)", "Jōkyū (1219–1222)", "Jōō (1222–1224)", "Gennin (1224–1225)", "Karoku (1225–1227)", "Antei (1227–1229)", "Kanki (1229–1232)", "Jōei (1232–1233)", "Tenpuku (1233–1234)", "Bunryaku (1234–1235)", "Katei (1235–1238)", "Ryakunin (1238–1239)", "En’ō (1239–1240)", "Ninji (1240–1243)", "Kangen (1243–1247)", "Hōji (1247–1249)", "Kenchō (1249–1256)", "Kōgen (1256–1257)", "Shōka (1257–1259)", "Shōgen (1259–1260)", "Bun’ō (1260–1261)", "Kōchō (1261–1264)", "Bun’ei (1264–1275)", "Kenji (1275–1278)", "Kōan (1278–1288)", "Shōō (1288–1293)", "Einin (1293–1299)", "Shōan (1299–1302)", "Kengen (1302–1303)", "Kagen (1303–1306)", "Tokuji (1306–1308)", "Enkyō (1308–1311)", "Ōchō (1311–1312)", "Shōwa (1312–1317)", "Bunpō (1317–1319)", "Genō (1319–1321)", "Genkō (1321–1324)", "Shōchū (1324–1326)", "Karyaku (1326–1329)", "Gentoku (1329–1331)", "Genkō (1331–1334)", "Kenmu (1334–1336)", "Engen (1336–1340)", "Kōkoku (1340–1346)", "Shōhei (1346–1370)", "Kentoku (1370–1372)", "Bunchū (1372–1375)", "Tenju (1375–1379)", "Kōryaku (1379–1381)", "Kōwa (1381–1384)", "Genchū (1384–1392)", "Meitoku (1384–1387)", "Kakei (1387–1389)", "Kōō (1389–1390)", "Meitoku (1390–1394)", "Ōei (1394–1428)", "Shōchō (1428–1429)", "Eikyō (1429–1441)", "Kakitsu (1441–1444)", "Bun’an (1444–1449)", "Hōtoku (1449–1452)", "Kyōtoku (1452–1455)", "Kōshō (1455–1457)", "Chōroku (1457–1460)", "Kanshō (1460–1466)", "Bunshō (1466–1467)", "Ōnin (1467–1469)", "Bunmei (1469–1487)", "Chōkyō (1487–1489)", "Entoku (1489–1492)", "Meiō (1492–1501)", "Bunki (1501–1504)", "Eishō (1504–1521)", "Taiei (1521–1528)", "Kyōroku (1528–1532)", "Tenbun (1532–1555)", "Kōji (1555–1558)", "Eiroku (1558–1570)", "Genki (1570–1573)", "Tenshō (1573–1592)", "Bunroku (1592–1596)", "Keichō (1596–1615)", "Genna (1615–1624)", "Kan’ei (1624–1644)", "Shōho (1644–1648)", "Keian (1648–1652)", "Jōō (1652–1655)", "Meireki (1655–1658)", "Manji (1658–1661)", "Kanbun (1661–1673)", "Enpō (1673–1681)", "Tenna (1681–1684)", "Jōkyō (1684–1688)", "Genroku (1688–1704)", "Hōei (1704–1711)", "Shōtoku (1711–1716)", "Kyōhō (1716–1736)", "Genbun (1736–1741)", "Kanpō (1741–1744)", "Enkyō (1744–1748)", "Kan’en (1748–1751)", "Hōreki (1751–1764)", "Meiwa (1764–1772)", "An’ei (1772–1781)", "Tenmei (1781–1789)", "Kansei (1789–1801)", "Kyōwa (1801–1804)", "Bunka (1804–1818)", "Bunsei (1818–1830)", "Tenpō (1830–1844)", "Kōka (1844–1848)", "Kaei (1848–1854)", "Ansei (1854–1860)", "Man’en (1860–1861)", "Bunkyū (1861–1864)", "Genji (1864–1865)", "Keiō (1865–1868)", "M", "T", "S", "H"],
- short: ["Taika (645–650)", "Hakuchi (650–671)", "Hakuhō (672–686)", "Shuchō (686–701)", "Taihō (701–704)", "Keiun (704–708)", "Wadō (708–715)", "Reiki (715–717)", "Yōrō (717–724)", "Jinki (724–729)", "Tenpyō (729–749)", "Tenpyō-kampō (749-749)", "Tenpyō-shōhō (749-757)", "Tenpyō-hōji (757-765)", "Tenpyō-jingo (765-767)", "Jingo-keiun (767-770)", "Hōki (770–780)", "Ten-ō (781-782)", "Enryaku (782–806)", "Daidō (806–810)", "Kōnin (810–824)", "Tenchō (824–834)", "Jōwa (834–848)", "Kajō (848–851)", "Ninju (851–854)", "Saikō (854–857)", "Ten-an (857-859)", "Jōgan (859–877)", "Gangyō (877–885)", "Ninna (885–889)", "Kanpyō (889–898)", "Shōtai (898–901)", "Engi (901–923)", "Enchō (923–931)", "Jōhei (931–938)", "Tengyō (938–947)", "Tenryaku (947–957)", "Tentoku (957–961)", "Ōwa (961–964)", "Kōhō (964–968)", "Anna (968–970)", "Tenroku (970–973)", "Ten’en (973–976)", "Jōgen (976–978)", "Tengen (978–983)", "Eikan (983–985)", "Kanna (985–987)", "Eien (987–989)", "Eiso (989–990)", "Shōryaku (990–995)", "Chōtoku (995–999)", "Chōhō (999–1004)", "Kankō (1004–1012)", "Chōwa (1012–1017)", "Kannin (1017–1021)", "Jian (1021–1024)", "Manju (1024–1028)", "Chōgen (1028–1037)", "Chōryaku (1037–1040)", "Chōkyū (1040–1044)", "Kantoku (1044–1046)", "Eishō (1046–1053)", "Tengi (1053–1058)", "Kōhei (1058–1065)", "Jiryaku (1065–1069)", "Enkyū (1069–1074)", "Shōho (1074–1077)", "Shōryaku (1077–1081)", "Eihō (1081–1084)", "Ōtoku (1084–1087)", "Kanji (1087–1094)", "Kahō (1094–1096)", "Eichō (1096–1097)", "Jōtoku (1097–1099)", "Kōwa (1099–1104)", "Chōji (1104–1106)", "Kashō (1106–1108)", "Tennin (1108–1110)", "Ten-ei (1110-1113)", "Eikyū (1113–1118)", "Gen’ei (1118–1120)", "Hōan (1120–1124)", "Tenji (1124–1126)", "Daiji (1126–1131)", "Tenshō (1131–1132)", "Chōshō (1132–1135)", "Hōen (1135–1141)", "Eiji (1141–1142)", "Kōji (1142–1144)", "Ten’yō (1144–1145)", "Kyūan (1145–1151)", "Ninpei (1151–1154)", "Kyūju (1154–1156)", "Hōgen (1156–1159)", "Heiji (1159–1160)", "Eiryaku (1160–1161)", "Ōho (1161–1163)", "Chōkan (1163–1165)", "Eiman (1165–1166)", "Nin’an (1166–1169)", "Kaō (1169–1171)", "Shōan (1171–1175)", "Angen (1175–1177)", "Jishō (1177–1181)", "Yōwa (1181–1182)", "Juei (1182–1184)", "Genryaku (1184–1185)", "Bunji (1185–1190)", "Kenkyū (1190–1199)", "Shōji (1199–1201)", "Kennin (1201–1204)", "Genkyū (1204–1206)", "Ken’ei (1206–1207)", "Jōgen (1207–1211)", "Kenryaku (1211–1213)", "Kenpō (1213–1219)", "Jōkyū (1219–1222)", "Jōō (1222–1224)", "Gennin (1224–1225)", "Karoku (1225–1227)", "Antei (1227–1229)", "Kanki (1229–1232)", "Jōei (1232–1233)", "Tenpuku (1233–1234)", "Bunryaku (1234–1235)", "Katei (1235–1238)", "Ryakunin (1238–1239)", "En’ō (1239–1240)", "Ninji (1240–1243)", "Kangen (1243–1247)", "Hōji (1247–1249)", "Kenchō (1249–1256)", "Kōgen (1256–1257)", "Shōka (1257–1259)", "Shōgen (1259–1260)", "Bun’ō (1260–1261)", "Kōchō (1261–1264)", "Bun’ei (1264–1275)", "Kenji (1275–1278)", "Kōan (1278–1288)", "Shōō (1288–1293)", "Einin (1293–1299)", "Shōan (1299–1302)", "Kengen (1302–1303)", "Kagen (1303–1306)", "Tokuji (1306–1308)", "Enkyō (1308–1311)", "Ōchō (1311–1312)", "Shōwa (1312–1317)", "Bunpō (1317–1319)", "Genō (1319–1321)", "Genkō (1321–1324)", "Shōchū (1324–1326)", "Karyaku (1326–1329)", "Gentoku (1329–1331)", "Genkō (1331–1334)", "Kenmu (1334–1336)", "Engen (1336–1340)", "Kōkoku (1340–1346)", "Shōhei (1346–1370)", "Kentoku (1370–1372)", "Bunchū (1372–1375)", "Tenju (1375–1379)", "Kōryaku (1379–1381)", "Kōwa (1381–1384)", "Genchū (1384–1392)", "Meitoku (1384–1387)", "Kakei (1387–1389)", "Kōō (1389–1390)", "Meitoku (1390–1394)", "Ōei (1394–1428)", "Shōchō (1428–1429)", "Eikyō (1429–1441)", "Kakitsu (1441–1444)", "Bun’an (1444–1449)", "Hōtoku (1449–1452)", "Kyōtoku (1452–1455)", "Kōshō (1455–1457)", "Chōroku (1457–1460)", "Kanshō (1460–1466)", "Bunshō (1466–1467)", "Ōnin (1467–1469)", "Bunmei (1469–1487)", "Chōkyō (1487–1489)", "Entoku (1489–1492)", "Meiō (1492–1501)", "Bunki (1501–1504)", "Eishō (1504–1521)", "Taiei (1521–1528)", "Kyōroku (1528–1532)", "Tenbun (1532–1555)", "Kōji (1555–1558)", "Eiroku (1558–1570)", "Genki (1570–1573)", "Tenshō (1573–1592)", "Bunroku (1592–1596)", "Keichō (1596–1615)", "Genna (1615–1624)", "Kan’ei (1624–1644)", "Shōho (1644–1648)", "Keian (1648–1652)", "Jōō (1652–1655)", "Meireki (1655–1658)", "Manji (1658–1661)", "Kanbun (1661–1673)", "Enpō (1673–1681)", "Tenna (1681–1684)", "Jōkyō (1684–1688)", "Genroku (1688–1704)", "Hōei (1704–1711)", "Shōtoku (1711–1716)", "Kyōhō (1716–1736)", "Genbun (1736–1741)", "Kanpō (1741–1744)", "Enkyō (1744–1748)", "Kan’en (1748–1751)", "Hōreki (1751–1764)", "Meiwa (1764–1772)", "An’ei (1772–1781)", "Tenmei (1781–1789)", "Kansei (1789–1801)", "Kyōwa (1801–1804)", "Bunka (1804–1818)", "Bunsei (1818–1830)", "Tenpō (1830–1844)", "Kōka (1844–1848)", "Kaei (1848–1854)", "Ansei (1854–1860)", "Man’en (1860–1861)", "Bunkyū (1861–1864)", "Genji (1864–1865)", "Keiō (1865–1868)", "Meiji", "Taishō", "Shōwa", "Heisei"],
- long: ["Taika (645–650)", "Hakuchi (650–671)", "Hakuhō (672–686)", "Shuchō (686–701)", "Taihō (701–704)", "Keiun (704–708)", "Wadō (708–715)", "Reiki (715–717)", "Yōrō (717–724)", "Jinki (724–729)", "Tenpyō (729–749)", "Tenpyō-kampō (749-749)", "Tenpyō-shōhō (749-757)", "Tenpyō-hōji (757-765)", "Tenpyō-jingo (765-767)", "Jingo-keiun (767-770)", "Hōki (770–780)", "Ten-ō (781-782)", "Enryaku (782–806)", "Daidō (806–810)", "Kōnin (810–824)", "Tenchō (824–834)", "Jōwa (834–848)", "Kajō (848–851)", "Ninju (851–854)", "Saikō (854–857)", "Ten-an (857-859)", "Jōgan (859–877)", "Gangyō (877–885)", "Ninna (885–889)", "Kanpyō (889–898)", "Shōtai (898–901)", "Engi (901–923)", "Enchō (923–931)", "Jōhei (931–938)", "Tengyō (938–947)", "Tenryaku (947–957)", "Tentoku (957–961)", "Ōwa (961–964)", "Kōhō (964–968)", "Anna (968–970)", "Tenroku (970–973)", "Ten’en (973–976)", "Jōgen (976–978)", "Tengen (978–983)", "Eikan (983–985)", "Kanna (985–987)", "Eien (987–989)", "Eiso (989–990)", "Shōryaku (990–995)", "Chōtoku (995–999)", "Chōhō (999–1004)", "Kankō (1004–1012)", "Chōwa (1012–1017)", "Kannin (1017–1021)", "Jian (1021–1024)", "Manju (1024–1028)", "Chōgen (1028–1037)", "Chōryaku (1037–1040)", "Chōkyū (1040–1044)", "Kantoku (1044–1046)", "Eishō (1046–1053)", "Tengi (1053–1058)", "Kōhei (1058–1065)", "Jiryaku (1065–1069)", "Enkyū (1069–1074)", "Shōho (1074–1077)", "Shōryaku (1077–1081)", "Eihō (1081–1084)", "Ōtoku (1084–1087)", "Kanji (1087–1094)", "Kahō (1094–1096)", "Eichō (1096–1097)", "Jōtoku (1097–1099)", "Kōwa (1099–1104)", "Chōji (1104–1106)", "Kashō (1106–1108)", "Tennin (1108–1110)", "Ten-ei (1110-1113)", "Eikyū (1113–1118)", "Gen’ei (1118–1120)", "Hōan (1120–1124)", "Tenji (1124–1126)", "Daiji (1126–1131)", "Tenshō (1131–1132)", "Chōshō (1132–1135)", "Hōen (1135–1141)", "Eiji (1141–1142)", "Kōji (1142–1144)", "Ten’yō (1144–1145)", "Kyūan (1145–1151)", "Ninpei (1151–1154)", "Kyūju (1154–1156)", "Hōgen (1156–1159)", "Heiji (1159–1160)", "Eiryaku (1160–1161)", "Ōho (1161–1163)", "Chōkan (1163–1165)", "Eiman (1165–1166)", "Nin’an (1166–1169)", "Kaō (1169–1171)", "Shōan (1171–1175)", "Angen (1175–1177)", "Jishō (1177–1181)", "Yōwa (1181–1182)", "Juei (1182–1184)", "Genryaku (1184–1185)", "Bunji (1185–1190)", "Kenkyū (1190–1199)", "Shōji (1199–1201)", "Kennin (1201–1204)", "Genkyū (1204–1206)", "Ken’ei (1206–1207)", "Jōgen (1207–1211)", "Kenryaku (1211–1213)", "Kenpō (1213–1219)", "Jōkyū (1219–1222)", "Jōō (1222–1224)", "Gennin (1224–1225)", "Karoku (1225–1227)", "Antei (1227–1229)", "Kanki (1229–1232)", "Jōei (1232–1233)", "Tenpuku (1233–1234)", "Bunryaku (1234–1235)", "Katei (1235–1238)", "Ryakunin (1238–1239)", "En’ō (1239–1240)", "Ninji (1240–1243)", "Kangen (1243–1247)", "Hōji (1247–1249)", "Kenchō (1249–1256)", "Kōgen (1256–1257)", "Shōka (1257–1259)", "Shōgen (1259–1260)", "Bun’ō (1260–1261)", "Kōchō (1261–1264)", "Bun’ei (1264–1275)", "Kenji (1275–1278)", "Kōan (1278–1288)", "Shōō (1288–1293)", "Einin (1293–1299)", "Shōan (1299–1302)", "Kengen (1302–1303)", "Kagen (1303–1306)", "Tokuji (1306–1308)", "Enkyō (1308–1311)", "Ōchō (1311–1312)", "Shōwa (1312–1317)", "Bunpō (1317–1319)", "Genō (1319–1321)", "Genkō (1321–1324)", "Shōchū (1324–1326)", "Karyaku (1326–1329)", "Gentoku (1329–1331)", "Genkō (1331–1334)", "Kenmu (1334–1336)", "Engen (1336–1340)", "Kōkoku (1340–1346)", "Shōhei (1346–1370)", "Kentoku (1370–1372)", "Bunchū (1372–1375)", "Tenju (1375–1379)", "Kōryaku (1379–1381)", "Kōwa (1381–1384)", "Genchū (1384–1392)", "Meitoku (1384–1387)", "Kakei (1387–1389)", "Kōō (1389–1390)", "Meitoku (1390–1394)", "Ōei (1394–1428)", "Shōchō (1428–1429)", "Eikyō (1429–1441)", "Kakitsu (1441–1444)", "Bun’an (1444–1449)", "Hōtoku (1449–1452)", "Kyōtoku (1452–1455)", "Kōshō (1455–1457)", "Chōroku (1457–1460)", "Kanshō (1460–1466)", "Bunshō (1466–1467)", "Ōnin (1467–1469)", "Bunmei (1469–1487)", "Chōkyō (1487–1489)", "Entoku (1489–1492)", "Meiō (1492–1501)", "Bunki (1501–1504)", "Eishō (1504–1521)", "Taiei (1521–1528)", "Kyōroku (1528–1532)", "Tenbun (1532–1555)", "Kōji (1555–1558)", "Eiroku (1558–1570)", "Genki (1570–1573)", "Tenshō (1573–1592)", "Bunroku (1592–1596)", "Keichō (1596–1615)", "Genna (1615–1624)", "Kan’ei (1624–1644)", "Shōho (1644–1648)", "Keian (1648–1652)", "Jōō (1652–1655)", "Meireki (1655–1658)", "Manji (1658–1661)", "Kanbun (1661–1673)", "Enpō (1673–1681)", "Tenna (1681–1684)", "Jōkyō (1684–1688)", "Genroku (1688–1704)", "Hōei (1704–1711)", "Shōtoku (1711–1716)", "Kyōhō (1716–1736)", "Genbun (1736–1741)", "Kanpō (1741–1744)", "Enkyō (1744–1748)", "Kan’en (1748–1751)", "Hōreki (1751–1764)", "Meiwa (1764–1772)", "An’ei (1772–1781)", "Tenmei (1781–1789)", "Kansei (1789–1801)", "Kyōwa (1801–1804)", "Bunka (1804–1818)", "Bunsei (1818–1830)", "Tenpō (1830–1844)", "Kōka (1844–1848)", "Kaei (1848–1854)", "Ansei (1854–1860)", "Man’en (1860–1861)", "Bunkyū (1861–1864)", "Genji (1864–1865)", "Keiō (1865–1868)", "Meiji", "Taishō", "Shōwa", "Heisei"]
- },
- dayPeriods: {
- am: "vorm.",
- pm: "nachm."
- }
- },
- persian: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Farvardin", "Ordibehesht", "Khordad", "Tir", "Mordad", "Shahrivar", "Mehr", "Aban", "Azar", "Dey", "Bahman", "Esfand"],
- long: ["Farvardin", "Ordibehesht", "Khordad", "Tir", "Mordad", "Shahrivar", "Mehr", "Aban", "Azar", "Dey", "Bahman", "Esfand"]
- },
- days: {
- narrow: ["S", "M", "D", "M", "D", "F", "S"],
- short: ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."],
- long: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
- },
- eras: {
- narrow: ["AP"],
- short: ["AP"],
- long: ["AP"]
- },
- dayPeriods: {
- am: "vorm.",
- pm: "nachm."
- }
- },
- roc: {
- months: {
- narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
- short: ["Jan.", "Feb.", "März", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."],
- long: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]
- },
- days: {
- narrow: ["S", "M", "D", "M", "D", "F", "S"],
- short: ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."],
- long: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
- },
- eras: {
- narrow: ["Before R.O.C.", "Minguo"],
- short: ["Before R.O.C.", "Minguo"],
- long: ["Before R.O.C.", "Minguo"]
- },
- dayPeriods: {
- am: "vorm.",
- pm: "nachm."
- }
+
+ function $() {
+ var e = arguments[0],
+ r = arguments[1];
+ return this && this !== mr
+ ? K(a(this), e, r)
+ : new mr.DateTimeFormat(e, r);
}
- }
- },
- number: {
- nu: ["latn"],
- patterns: {
- decimal: {
- positivePattern: "{number}",
- negativePattern: "{minusSign}{number}"
- },
- currency: {
- positivePattern: "{number} {currency}",
- negativePattern: "{minusSign}{number} {currency}"
- },
- percent: {
- positivePattern: "{number} {percentSign}",
- negativePattern: "{minusSign}{number} {percentSign}"
+
+ function K(e, a, i) {
+ var o = l(e),
+ s = n();
+ if (o['[[initializedIntlObject]]'] === !0)
+ throw new TypeError(
+ '`this` object has already been initialized as an Intl object',
+ );
+ Ie(e, '__getInternalProperties', {
+ value: function () {
+ if (arguments[0] === Ke) return o;
+ },
+ }),
+ (o['[[initializedIntlObject]]'] = !0);
+ var c = d(a);
+ i = H(i, 'any', 'date');
+ var g = new r(),
+ f = D(
+ i,
+ 'localeMatcher',
+ 'string',
+ new t('lookup', 'best fit'),
+ 'best fit',
+ );
+ g['[[localeMatcher]]'] = f;
+ var m = $e.DateTimeFormat,
+ v = m['[[localeData]]'],
+ h = b(
+ m['[[availableLocales]]'],
+ c,
+ g,
+ m['[[relevantExtensionKeys]]'],
+ v,
+ );
+ (o['[[locale]]'] = h['[[locale]]']),
+ (o['[[calendar]]'] = h['[[ca]]']),
+ (o['[[numberingSystem]]'] = h['[[nu]]']),
+ (o['[[dataLocale]]'] = h['[[dataLocale]]']);
+ var p = h['[[dataLocale]]'],
+ y = i.timeZone;
+ if (void 0 !== y && ((y = u(y)), 'UTC' !== y))
+ throw new RangeError('timeZone is not supported.');
+ (o['[[timeZone]]'] = y), (g = new r());
+ for (var w in Dr)
+ if (Me.call(Dr, w)) {
+ var x = D(i, w, 'string', Dr[w]);
+ g['[[' + w + ']]'] = x;
+ }
+ var j = void 0,
+ z = v[p],
+ k = Y(z.formats);
+ if (
+ ((f = D(
+ i,
+ 'formatMatcher',
+ 'string',
+ new t('basic', 'best fit'),
+ 'best fit',
+ )),
+ (z.formats = k),
+ 'basic' === f)
+ )
+ j = W(g, k);
+ else {
+ var O = D(i, 'hour12', 'boolean');
+ (g.hour12 = void 0 === O ? z.hour12 : O), (j = X(g, k));
+ }
+ for (var F in Dr)
+ if (Me.call(Dr, F) && Me.call(j, F)) {
+ var S = j[F];
+ (S = j._ && Me.call(j._, F) ? j._[F] : S),
+ (o['[[' + F + ']]'] = S);
+ }
+ var E = void 0,
+ L = D(i, 'hour12', 'boolean');
+ if (o['[[hour]]'])
+ if (
+ ((L = void 0 === L ? z.hour12 : L),
+ (o['[[hour12]]'] = L),
+ L === !0)
+ ) {
+ var P = z.hourNo0;
+ (o['[[hourNo0]]'] = P), (E = j.pattern12);
+ } else E = j.pattern;
+ else E = j.pattern;
+ return (
+ (o['[[pattern]]'] = E),
+ (o['[[boundFormat]]'] = void 0),
+ (o['[[initializedDateTimeFormat]]'] = !0),
+ _e && (e.format = V.call(e)),
+ s(),
+ e
+ );
}
- },
- symbols: {
- latn: {
- decimal: ",",
- group: ".",
- nan: "NaN",
- plusSign: "+",
- minusSign: "-",
- percentSign: "%",
- infinity: "∞"
+
+ function Y(e) {
+ return '[object Array]' === Object.prototype.toString.call(e)
+ ? e
+ : Z(e);
}
- },
- currencies: {
- ATS: "öS",
- AUD: "AU$",
- BGM: "BGK",
- BGO: "BGJ",
- BRL: "R$",
- CAD: "CA$",
- CNY: "CN¥",
- DEM: "DM",
- EUR: "€",
- GBP: "£",
- HKD: "HK$",
- ILS: "₪",
- INR: "₹",
- JPY: "¥",
- KRW: "₩",
- MXN: "MX$",
- NZD: "NZ$",
- THB: "฿",
- TWD: "NT$",
- USD: "$",
- VND: "₫",
- XAF: "FCFA",
- XCD: "EC$",
- XOF: "CFA",
- XPF: "CFPF"
- }
- }
- });
-
- // Intl.~locale.en-GB
- IntlPolyfill.__addLocaleData({
- locale: "en-GB",
- date: {
- ca: ["gregory", "buddhist", "chinese", "coptic", "dangi", "ethioaa", "ethiopic", "generic", "hebrew", "indian", "islamic", "islamicc", "japanese", "persian", "roc"],
- hourNo0: true,
- hour12: false,
- formats: {
- short: "{1}, {0}",
- medium: "{1}, {0}",
- full: "{1} 'at' {0}",
- long: "{1} 'at' {0}",
- availableFormats: {
- "d": "d",
- "E": "ccc",
- Ed: "E d",
- Ehm: "E h:mm a",
- EHm: "E HH:mm",
- Ehms: "E h:mm:ss a",
- EHms: "E HH:mm:ss",
- Gy: "y G",
- GyMMM: "MMM y G",
- GyMMMd: "d MMM y G",
- GyMMMEd: "E, d MMM y G",
- "h": "h a",
- "H": "HH",
- hm: "h:mm a",
- Hm: "HH:mm",
- hms: "h:mm:ss a",
- Hms: "HH:mm:ss",
- hmsv: "h:mm:ss a v",
- Hmsv: "HH:mm:ss v",
- hmv: "h:mm a v",
- Hmv: "HH:mm v",
- "M": "L",
- Md: "dd/MM",
- MEd: "E, dd/MM",
- MMdd: "dd/MM",
- MMM: "LLL",
- MMMd: "d MMM",
- MMMEd: "E, d MMM",
- MMMMd: "d MMMM",
- ms: "mm:ss",
- "y": "y",
- yM: "MM/y",
- yMd: "dd/MM/y",
- yMEd: "E, dd/MM/y",
- yMMM: "MMM y",
- yMMMd: "d MMM y",
- yMMMEd: "E, d MMM y",
- yMMMM: "MMMM y",
- yQQQ: "QQQ y",
- yQQQQ: "QQQQ y"
- },
- dateFormats: {
- yMMMMEEEEd: "EEEE, d MMMM y",
- yMMMMd: "d MMMM y",
- yMMMd: "d MMM y",
- yMd: "dd/MM/y"
- },
- timeFormats: {
- hmmsszzzz: "HH:mm:ss zzzz",
- hmsz: "HH:mm:ss z",
- hms: "HH:mm:ss",
- hm: "HH:mm"
+
+ function H(e, t, n) {
+ if (void 0 === e) e = null;
+ else {
+ var i = a(e);
+ e = new r();
+ for (var o in i) e[o] = i[o];
+ }
+ var s = Re;
+ e = s(e);
+ var l = !0;
+ return (
+ ('date' !== t && 'any' !== t) ||
+ (void 0 === e.weekday &&
+ void 0 === e.year &&
+ void 0 === e.month &&
+ void 0 === e.day) ||
+ (l = !1),
+ ('time' !== t && 'any' !== t) ||
+ (void 0 === e.hour &&
+ void 0 === e.minute &&
+ void 0 === e.second) ||
+ (l = !1),
+ !l ||
+ ('date' !== n && 'all' !== n) ||
+ (e.year = e.month = e.day = 'numeric'),
+ !l ||
+ ('time' !== n && 'all' !== n) ||
+ (e.hour = e.minute = e.second = 'numeric'),
+ e
+ );
}
- },
- calendars: {
- buddhist: {
- months: {
- narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
- short: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
- long: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["BE"],
- short: ["BE"],
- long: ["BE"]
- },
- dayPeriods: {
- am: "am",
- pm: "pm"
- }
- },
- chinese: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Mo1", "Mo2", "Mo3", "Mo4", "Mo5", "Mo6", "Mo7", "Mo8", "Mo9", "Mo10", "Mo11", "Mo12"],
- long: ["Month1", "Month2", "Month3", "Month4", "Month5", "Month6", "Month7", "Month8", "Month9", "Month10", "Month11", "Month12"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- dayPeriods: {
- am: "am",
- pm: "pm"
- }
- },
- coptic: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"],
- short: ["Tout", "Baba", "Hator", "Kiahk", "Toba", "Amshir", "Baramhat", "Baramouda", "Bashans", "Paona", "Epep", "Mesra", "Nasie"],
- long: ["Tout", "Baba", "Hator", "Kiahk", "Toba", "Amshir", "Baramhat", "Baramouda", "Bashans", "Paona", "Epep", "Mesra", "Nasie"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["ERA0", "ERA1"],
- short: ["ERA0", "ERA1"],
- long: ["ERA0", "ERA1"]
- },
- dayPeriods: {
- am: "am",
- pm: "pm"
- }
- },
- dangi: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Mo1", "Mo2", "Mo3", "Mo4", "Mo5", "Mo6", "Mo7", "Mo8", "Mo9", "Mo10", "Mo11", "Mo12"],
- long: ["Month1", "Month2", "Month3", "Month4", "Month5", "Month6", "Month7", "Month8", "Month9", "Month10", "Month11", "Month12"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- dayPeriods: {
- am: "am",
- pm: "pm"
- }
- },
- ethiopic: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"],
- short: ["Meskerem", "Tekemt", "Hedar", "Tahsas", "Ter", "Yekatit", "Megabit", "Miazia", "Genbot", "Sene", "Hamle", "Nehasse", "Pagumen"],
- long: ["Meskerem", "Tekemt", "Hedar", "Tahsas", "Ter", "Yekatit", "Megabit", "Miazia", "Genbot", "Sene", "Hamle", "Nehasse", "Pagumen"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["ERA0", "ERA1"],
- short: ["ERA0", "ERA1"],
- long: ["ERA0", "ERA1"]
- },
- dayPeriods: {
- am: "am",
- pm: "pm"
- }
- },
- ethioaa: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"],
- short: ["Meskerem", "Tekemt", "Hedar", "Tahsas", "Ter", "Yekatit", "Megabit", "Miazia", "Genbot", "Sene", "Hamle", "Nehasse", "Pagumen"],
- long: ["Meskerem", "Tekemt", "Hedar", "Tahsas", "Ter", "Yekatit", "Megabit", "Miazia", "Genbot", "Sene", "Hamle", "Nehasse", "Pagumen"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["ERA0"],
- short: ["ERA0"],
- long: ["ERA0"]
- },
- dayPeriods: {
- am: "am",
- pm: "pm"
- }
- },
- generic: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["M01", "M02", "M03", "M04", "M05", "M06", "M07", "M08", "M09", "M10", "M11", "M12"],
- long: ["M01", "M02", "M03", "M04", "M05", "M06", "M07", "M08", "M09", "M10", "M11", "M12"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["ERA0", "ERA1"],
- short: ["ERA0", "ERA1"],
- long: ["ERA0", "ERA1"]
- },
- dayPeriods: {
- am: "am",
- pm: "pm"
- }
- },
- gregory: {
- months: {
- narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
- short: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
- long: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["B", "A", "BCE", "CE"],
- short: ["BC", "AD", "BCE", "CE"],
- long: ["Before Christ", "Anno Domini", "Before Common Era", "Common Era"]
- },
- dayPeriods: {
- am: "am",
- pm: "pm"
- }
- },
- hebrew: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "7"],
- short: ["Tishri", "Heshvan", "Kislev", "Tevet", "Shevat", "Adar I", "Adar", "Nisan", "Iyar", "Sivan", "Tamuz", "Av", "Elul", "Adar II"],
- long: ["Tishri", "Heshvan", "Kislev", "Tevet", "Shevat", "Adar I", "Adar", "Nisan", "Iyar", "Sivan", "Tamuz", "Av", "Elul", "Adar II"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["AM"],
- short: ["AM"],
- long: ["AM"]
- },
- dayPeriods: {
- am: "am",
- pm: "pm"
- }
- },
- indian: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Chaitra", "Vaisakha", "Jyaistha", "Asadha", "Sravana", "Bhadra", "Asvina", "Kartika", "Agrahayana", "Pausa", "Magha", "Phalguna"],
- long: ["Chaitra", "Vaisakha", "Jyaistha", "Asadha", "Sravana", "Bhadra", "Asvina", "Kartika", "Agrahayana", "Pausa", "Magha", "Phalguna"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["Saka"],
- short: ["Saka"],
- long: ["Saka"]
- },
- dayPeriods: {
- am: "am",
- pm: "pm"
- }
- },
- islamic: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Muh.", "Saf.", "Rab. I", "Rab. II", "Jum. I", "Jum. II", "Raj.", "Sha.", "Ram.", "Shaw.", "Dhuʻl-Q.", "Dhuʻl-H."],
- long: ["Muharram", "Safar", "Rabiʻ I", "Rabiʻ II", "Jumada I", "Jumada II", "Rajab", "Shaʻban", "Ramadan", "Shawwal", "Dhuʻl-Qiʻdah", "Dhuʻl-Hijjah"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["AH"],
- short: ["AH"],
- long: ["AH"]
- },
- dayPeriods: {
- am: "am",
- pm: "pm"
- }
- },
- islamicc: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Muh.", "Saf.", "Rab. I", "Rab. II", "Jum. I", "Jum. II", "Raj.", "Sha.", "Ram.", "Shaw.", "Dhuʻl-Q.", "Dhuʻl-H."],
- long: ["Muharram", "Safar", "Rabiʻ I", "Rabiʻ II", "Jumada I", "Jumada II", "Rajab", "Shaʻban", "Ramadan", "Shawwal", "Dhuʻl-Qiʻdah", "Dhuʻl-Hijjah"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["AH"],
- short: ["AH"],
- long: ["AH"]
- },
- dayPeriods: {
- am: "am",
- pm: "pm"
- }
- },
- japanese: {
- months: {
- narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
- short: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
- long: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["Taika (645–650)", "Hakuchi (650–671)", "Hakuhō (672–686)", "Shuchō (686–701)", "Taihō (701–704)", "Keiun (704–708)", "Wadō (708–715)", "Reiki (715–717)", "Yōrō (717–724)", "Jinki (724–729)", "Tenpyō (729–749)", "Tenpyō-kampō (749-749)", "Tenpyō-shōhō (749-757)", "Tenpyō-hōji (757-765)", "Tenpyō-jingo (765-767)", "Jingo-keiun (767-770)", "Hōki (770–780)", "Ten-ō (781-782)", "Enryaku (782–806)", "Daidō (806–810)", "Kōnin (810–824)", "Tenchō (824–834)", "Jōwa (834–848)", "Kajō (848–851)", "Ninju (851–854)", "Saikō (854–857)", "Ten-an (857-859)", "Jōgan (859–877)", "Gangyō (877–885)", "Ninna (885–889)", "Kanpyō (889–898)", "Shōtai (898–901)", "Engi (901–923)", "Enchō (923–931)", "Jōhei (931–938)", "Tengyō (938–947)", "Tenryaku (947–957)", "Tentoku (957–961)", "Ōwa (961–964)", "Kōhō (964–968)", "Anna (968–970)", "Tenroku (970–973)", "Ten’en (973–976)", "Jōgen (976–978)", "Tengen (978–983)", "Eikan (983–985)", "Kanna (985–987)", "Eien (987–989)", "Eiso (989–990)", "Shōryaku (990–995)", "Chōtoku (995–999)", "Chōhō (999–1004)", "Kankō (1004–1012)", "Chōwa (1012–1017)", "Kannin (1017–1021)", "Jian (1021–1024)", "Manju (1024–1028)", "Chōgen (1028–1037)", "Chōryaku (1037–1040)", "Chōkyū (1040–1044)", "Kantoku (1044–1046)", "Eishō (1046–1053)", "Tengi (1053–1058)", "Kōhei (1058–1065)", "Jiryaku (1065–1069)", "Enkyū (1069–1074)", "Shōho (1074–1077)", "Shōryaku (1077–1081)", "Eihō (1081–1084)", "Ōtoku (1084–1087)", "Kanji (1087–1094)", "Kahō (1094–1096)", "Eichō (1096–1097)", "Jōtoku (1097–1099)", "Kōwa (1099–1104)", "Chōji (1104–1106)", "Kashō (1106–1108)", "Tennin (1108–1110)", "Ten-ei (1110-1113)", "Eikyū (1113–1118)", "Gen’ei (1118–1120)", "Hōan (1120–1124)", "Tenji (1124–1126)", "Daiji (1126–1131)", "Tenshō (1131–1132)", "Chōshō (1132–1135)", "Hōen (1135–1141)", "Eiji (1141–1142)", "Kōji (1142–1144)", "Ten’yō (1144–1145)", "Kyūan (1145–1151)", "Ninpei (1151–1154)", "Kyūju (1154–1156)", "Hōgen (1156–1159)", "Heiji (1159–1160)", "Eiryaku (1160–1161)", "Ōho (1161–1163)", "Chōkan (1163–1165)", "Eiman (1165–1166)", "Nin’an (1166–1169)", "Kaō (1169–1171)", "Shōan (1171–1175)", "Angen (1175–1177)", "Jishō (1177–1181)", "Yōwa (1181–1182)", "Juei (1182–1184)", "Genryaku (1184–1185)", "Bunji (1185–1190)", "Kenkyū (1190–1199)", "Shōji (1199–1201)", "Kennin (1201–1204)", "Genkyū (1204–1206)", "Ken’ei (1206–1207)", "Jōgen (1207–1211)", "Kenryaku (1211–1213)", "Kenpō (1213–1219)", "Jōkyū (1219–1222)", "Jōō (1222–1224)", "Gennin (1224–1225)", "Karoku (1225–1227)", "Antei (1227–1229)", "Kanki (1229–1232)", "Jōei (1232–1233)", "Tenpuku (1233–1234)", "Bunryaku (1234–1235)", "Katei (1235–1238)", "Ryakunin (1238–1239)", "En’ō (1239–1240)", "Ninji (1240–1243)", "Kangen (1243–1247)", "Hōji (1247–1249)", "Kenchō (1249–1256)", "Kōgen (1256–1257)", "Shōka (1257–1259)", "Shōgen (1259–1260)", "Bun’ō (1260–1261)", "Kōchō (1261–1264)", "Bun’ei (1264–1275)", "Kenji (1275–1278)", "Kōan (1278–1288)", "Shōō (1288–1293)", "Einin (1293–1299)", "Shōan (1299–1302)", "Kengen (1302–1303)", "Kagen (1303–1306)", "Tokuji (1306–1308)", "Enkyō (1308–1311)", "Ōchō (1311–1312)", "Shōwa (1312–1317)", "Bunpō (1317–1319)", "Genō (1319–1321)", "Genkō (1321–1324)", "Shōchū (1324–1326)", "Karyaku (1326–1329)", "Gentoku (1329–1331)", "Genkō (1331–1334)", "Kenmu (1334–1336)", "Engen (1336–1340)", "Kōkoku (1340–1346)", "Shōhei (1346–1370)", "Kentoku (1370–1372)", "Bunchū (1372–1375)", "Tenju (1375–1379)", "Kōryaku (1379–1381)", "Kōwa (1381–1384)", "Genchū (1384–1392)", "Meitoku (1384–1387)", "Kakei (1387–1389)", "Kōō (1389–1390)", "Meitoku (1390–1394)", "Ōei (1394–1428)", "Shōchō (1428–1429)", "Eikyō (1429–1441)", "Kakitsu (1441–1444)", "Bun’an (1444–1449)", "Hōtoku (1449–1452)", "Kyōtoku (1452–1455)", "Kōshō (1455–1457)", "Chōroku (1457–1460)", "Kanshō (1460–1466)", "Bunshō (1466–1467)", "Ōnin (1467–1469)", "Bunmei (1469–1487)", "Chōkyō (1487–1489)", "Entoku (1489–1492)", "Meiō (1492–1501)", "Bunki (1501–1504)", "Eishō (1504–1521)", "Taiei (1521–1528)", "Kyōroku (1528–1532)", "Tenbun (1532–1555)", "Kōji (1555–1558)", "Eiroku (1558–1570)", "Genki (1570–1573)", "Tenshō (1573–1592)", "Bunroku (1592–1596)", "Keichō (1596–1615)", "Genna (1615–1624)", "Kan’ei (1624–1644)", "Shōho (1644–1648)", "Keian (1648–1652)", "Jōō (1652–1655)", "Meireki (1655–1658)", "Manji (1658–1661)", "Kanbun (1661–1673)", "Enpō (1673–1681)", "Tenna (1681–1684)", "Jōkyō (1684–1688)", "Genroku (1688–1704)", "Hōei (1704–1711)", "Shōtoku (1711–1716)", "Kyōhō (1716–1736)", "Genbun (1736–1741)", "Kanpō (1741–1744)", "Enkyō (1744–1748)", "Kan’en (1748–1751)", "Hōreki (1751–1764)", "Meiwa (1764–1772)", "An’ei (1772–1781)", "Tenmei (1781–1789)", "Kansei (1789–1801)", "Kyōwa (1801–1804)", "Bunka (1804–1818)", "Bunsei (1818–1830)", "Tenpō (1830–1844)", "Kōka (1844–1848)", "Kaei (1848–1854)", "Ansei (1854–1860)", "Man’en (1860–1861)", "Bunkyū (1861–1864)", "Genji (1864–1865)", "Keiō (1865–1868)", "M", "T", "S", "H"],
- short: ["Taika (645–650)", "Hakuchi (650–671)", "Hakuhō (672–686)", "Shuchō (686–701)", "Taihō (701–704)", "Keiun (704–708)", "Wadō (708–715)", "Reiki (715–717)", "Yōrō (717–724)", "Jinki (724–729)", "Tenpyō (729–749)", "Tenpyō-kampō (749-749)", "Tenpyō-shōhō (749-757)", "Tenpyō-hōji (757-765)", "Tenpyō-jingo (765-767)", "Jingo-keiun (767-770)", "Hōki (770–780)", "Ten-ō (781-782)", "Enryaku (782–806)", "Daidō (806–810)", "Kōnin (810–824)", "Tenchō (824–834)", "Jōwa (834–848)", "Kajō (848–851)", "Ninju (851–854)", "Saikō (854–857)", "Ten-an (857-859)", "Jōgan (859–877)", "Gangyō (877–885)", "Ninna (885–889)", "Kanpyō (889–898)", "Shōtai (898–901)", "Engi (901–923)", "Enchō (923–931)", "Jōhei (931–938)", "Tengyō (938–947)", "Tenryaku (947–957)", "Tentoku (957–961)", "Ōwa (961–964)", "Kōhō (964–968)", "Anna (968–970)", "Tenroku (970–973)", "Ten’en (973–976)", "Jōgen (976–978)", "Tengen (978–983)", "Eikan (983–985)", "Kanna (985–987)", "Eien (987–989)", "Eiso (989–990)", "Shōryaku (990–995)", "Chōtoku (995–999)", "Chōhō (999–1004)", "Kankō (1004–1012)", "Chōwa (1012–1017)", "Kannin (1017–1021)", "Jian (1021–1024)", "Manju (1024–1028)", "Chōgen (1028–1037)", "Chōryaku (1037–1040)", "Chōkyū (1040–1044)", "Kantoku (1044–1046)", "Eishō (1046–1053)", "Tengi (1053–1058)", "Kōhei (1058–1065)", "Jiryaku (1065–1069)", "Enkyū (1069–1074)", "Shōho (1074–1077)", "Shōryaku (1077–1081)", "Eihō (1081–1084)", "Ōtoku (1084–1087)", "Kanji (1087–1094)", "Kahō (1094–1096)", "Eichō (1096–1097)", "Jōtoku (1097–1099)", "Kōwa (1099–1104)", "Chōji (1104–1106)", "Kashō (1106–1108)", "Tennin (1108–1110)", "Ten-ei (1110-1113)", "Eikyū (1113–1118)", "Gen’ei (1118–1120)", "Hōan (1120–1124)", "Tenji (1124–1126)", "Daiji (1126–1131)", "Tenshō (1131–1132)", "Chōshō (1132–1135)", "Hōen (1135–1141)", "Eiji (1141–1142)", "Kōji (1142–1144)", "Ten’yō (1144–1145)", "Kyūan (1145–1151)", "Ninpei (1151–1154)", "Kyūju (1154–1156)", "Hōgen (1156–1159)", "Heiji (1159–1160)", "Eiryaku (1160–1161)", "Ōho (1161–1163)", "Chōkan (1163–1165)", "Eiman (1165–1166)", "Nin’an (1166–1169)", "Kaō (1169–1171)", "Shōan (1171–1175)", "Angen (1175–1177)", "Jishō (1177–1181)", "Yōwa (1181–1182)", "Juei (1182–1184)", "Genryaku (1184–1185)", "Bunji (1185–1190)", "Kenkyū (1190–1199)", "Shōji (1199–1201)", "Kennin (1201–1204)", "Genkyū (1204–1206)", "Ken’ei (1206–1207)", "Jōgen (1207–1211)", "Kenryaku (1211–1213)", "Kenpō (1213–1219)", "Jōkyū (1219–1222)", "Jōō (1222–1224)", "Gennin (1224–1225)", "Karoku (1225–1227)", "Antei (1227–1229)", "Kanki (1229–1232)", "Jōei (1232–1233)", "Tenpuku (1233–1234)", "Bunryaku (1234–1235)", "Katei (1235–1238)", "Ryakunin (1238–1239)", "En’ō (1239–1240)", "Ninji (1240–1243)", "Kangen (1243–1247)", "Hōji (1247–1249)", "Kenchō (1249–1256)", "Kōgen (1256–1257)", "Shōka (1257–1259)", "Shōgen (1259–1260)", "Bun’ō (1260–1261)", "Kōchō (1261–1264)", "Bun’ei (1264–1275)", "Kenji (1275–1278)", "Kōan (1278–1288)", "Shōō (1288–1293)", "Einin (1293–1299)", "Shōan (1299–1302)", "Kengen (1302–1303)", "Kagen (1303–1306)", "Tokuji (1306–1308)", "Enkyō (1308–1311)", "Ōchō (1311–1312)", "Shōwa (1312–1317)", "Bunpō (1317–1319)", "Genō (1319–1321)", "Genkō (1321–1324)", "Shōchū (1324–1326)", "Karyaku (1326–1329)", "Gentoku (1329–1331)", "Genkō (1331–1334)", "Kenmu (1334–1336)", "Engen (1336–1340)", "Kōkoku (1340–1346)", "Shōhei (1346–1370)", "Kentoku (1370–1372)", "Bunchū (1372–1375)", "Tenju (1375–1379)", "Kōryaku (1379–1381)", "Kōwa (1381–1384)", "Genchū (1384–1392)", "Meitoku (1384–1387)", "Kakei (1387–1389)", "Kōō (1389–1390)", "Meitoku (1390–1394)", "Ōei (1394–1428)", "Shōchō (1428–1429)", "Eikyō (1429–1441)", "Kakitsu (1441–1444)", "Bun’an (1444–1449)", "Hōtoku (1449–1452)", "Kyōtoku (1452–1455)", "Kōshō (1455–1457)", "Chōroku (1457–1460)", "Kanshō (1460–1466)", "Bunshō (1466–1467)", "Ōnin (1467–1469)", "Bunmei (1469–1487)", "Chōkyō (1487–1489)", "Entoku (1489–1492)", "Meiō (1492–1501)", "Bunki (1501–1504)", "Eishō (1504–1521)", "Taiei (1521–1528)", "Kyōroku (1528–1532)", "Tenbun (1532–1555)", "Kōji (1555–1558)", "Eiroku (1558–1570)", "Genki (1570–1573)", "Tenshō (1573–1592)", "Bunroku (1592–1596)", "Keichō (1596–1615)", "Genna (1615–1624)", "Kan’ei (1624–1644)", "Shōho (1644–1648)", "Keian (1648–1652)", "Jōō (1652–1655)", "Meireki (1655–1658)", "Manji (1658–1661)", "Kanbun (1661–1673)", "Enpō (1673–1681)", "Tenna (1681–1684)", "Jōkyō (1684–1688)", "Genroku (1688–1704)", "Hōei (1704–1711)", "Shōtoku (1711–1716)", "Kyōhō (1716–1736)", "Genbun (1736–1741)", "Kanpō (1741–1744)", "Enkyō (1744–1748)", "Kan’en (1748–1751)", "Hōreki (1751–1764)", "Meiwa (1764–1772)", "An’ei (1772–1781)", "Tenmei (1781–1789)", "Kansei (1789–1801)", "Kyōwa (1801–1804)", "Bunka (1804–1818)", "Bunsei (1818–1830)", "Tenpō (1830–1844)", "Kōka (1844–1848)", "Kaei (1848–1854)", "Ansei (1854–1860)", "Man’en (1860–1861)", "Bunkyū (1861–1864)", "Genji (1864–1865)", "Keiō (1865–1868)", "Meiji", "Taishō", "Shōwa", "Heisei"],
- long: ["Taika (645–650)", "Hakuchi (650–671)", "Hakuhō (672–686)", "Shuchō (686–701)", "Taihō (701–704)", "Keiun (704–708)", "Wadō (708–715)", "Reiki (715–717)", "Yōrō (717–724)", "Jinki (724–729)", "Tenpyō (729–749)", "Tenpyō-kampō (749-749)", "Tenpyō-shōhō (749-757)", "Tenpyō-hōji (757-765)", "Tenpyō-jingo (765-767)", "Jingo-keiun (767-770)", "Hōki (770–780)", "Ten-ō (781-782)", "Enryaku (782–806)", "Daidō (806–810)", "Kōnin (810–824)", "Tenchō (824–834)", "Jōwa (834–848)", "Kajō (848–851)", "Ninju (851–854)", "Saikō (854–857)", "Ten-an (857-859)", "Jōgan (859–877)", "Gangyō (877–885)", "Ninna (885–889)", "Kanpyō (889–898)", "Shōtai (898–901)", "Engi (901–923)", "Enchō (923–931)", "Jōhei (931–938)", "Tengyō (938–947)", "Tenryaku (947–957)", "Tentoku (957–961)", "Ōwa (961–964)", "Kōhō (964–968)", "Anna (968–970)", "Tenroku (970–973)", "Ten’en (973–976)", "Jōgen (976–978)", "Tengen (978–983)", "Eikan (983–985)", "Kanna (985–987)", "Eien (987–989)", "Eiso (989–990)", "Shōryaku (990–995)", "Chōtoku (995–999)", "Chōhō (999–1004)", "Kankō (1004–1012)", "Chōwa (1012–1017)", "Kannin (1017–1021)", "Jian (1021–1024)", "Manju (1024–1028)", "Chōgen (1028–1037)", "Chōryaku (1037–1040)", "Chōkyū (1040–1044)", "Kantoku (1044–1046)", "Eishō (1046–1053)", "Tengi (1053–1058)", "Kōhei (1058–1065)", "Jiryaku (1065–1069)", "Enkyū (1069–1074)", "Shōho (1074–1077)", "Shōryaku (1077–1081)", "Eihō (1081–1084)", "Ōtoku (1084–1087)", "Kanji (1087–1094)", "Kahō (1094–1096)", "Eichō (1096–1097)", "Jōtoku (1097–1099)", "Kōwa (1099–1104)", "Chōji (1104–1106)", "Kashō (1106–1108)", "Tennin (1108–1110)", "Ten-ei (1110-1113)", "Eikyū (1113–1118)", "Gen’ei (1118–1120)", "Hōan (1120–1124)", "Tenji (1124–1126)", "Daiji (1126–1131)", "Tenshō (1131–1132)", "Chōshō (1132–1135)", "Hōen (1135–1141)", "Eiji (1141–1142)", "Kōji (1142–1144)", "Ten’yō (1144–1145)", "Kyūan (1145–1151)", "Ninpei (1151–1154)", "Kyūju (1154–1156)", "Hōgen (1156–1159)", "Heiji (1159–1160)", "Eiryaku (1160–1161)", "Ōho (1161–1163)", "Chōkan (1163–1165)", "Eiman (1165–1166)", "Nin’an (1166–1169)", "Kaō (1169–1171)", "Shōan (1171–1175)", "Angen (1175–1177)", "Jishō (1177–1181)", "Yōwa (1181–1182)", "Juei (1182–1184)", "Genryaku (1184–1185)", "Bunji (1185–1190)", "Kenkyū (1190–1199)", "Shōji (1199–1201)", "Kennin (1201–1204)", "Genkyū (1204–1206)", "Ken’ei (1206–1207)", "Jōgen (1207–1211)", "Kenryaku (1211–1213)", "Kenpō (1213–1219)", "Jōkyū (1219–1222)", "Jōō (1222–1224)", "Gennin (1224–1225)", "Karoku (1225–1227)", "Antei (1227–1229)", "Kanki (1229–1232)", "Jōei (1232–1233)", "Tenpuku (1233–1234)", "Bunryaku (1234–1235)", "Katei (1235–1238)", "Ryakunin (1238–1239)", "En’ō (1239–1240)", "Ninji (1240–1243)", "Kangen (1243–1247)", "Hōji (1247–1249)", "Kenchō (1249–1256)", "Kōgen (1256–1257)", "Shōka (1257–1259)", "Shōgen (1259–1260)", "Bun’ō (1260–1261)", "Kōchō (1261–1264)", "Bun’ei (1264–1275)", "Kenji (1275–1278)", "Kōan (1278–1288)", "Shōō (1288–1293)", "Einin (1293–1299)", "Shōan (1299–1302)", "Kengen (1302–1303)", "Kagen (1303–1306)", "Tokuji (1306–1308)", "Enkyō (1308–1311)", "Ōchō (1311–1312)", "Shōwa (1312–1317)", "Bunpō (1317–1319)", "Genō (1319–1321)", "Genkō (1321–1324)", "Shōchū (1324–1326)", "Karyaku (1326–1329)", "Gentoku (1329–1331)", "Genkō (1331–1334)", "Kenmu (1334–1336)", "Engen (1336–1340)", "Kōkoku (1340–1346)", "Shōhei (1346–1370)", "Kentoku (1370–1372)", "Bunchū (1372–1375)", "Tenju (1375–1379)", "Kōryaku (1379–1381)", "Kōwa (1381–1384)", "Genchū (1384–1392)", "Meitoku (1384–1387)", "Kakei (1387–1389)", "Kōō (1389–1390)", "Meitoku (1390–1394)", "Ōei (1394–1428)", "Shōchō (1428–1429)", "Eikyō (1429–1441)", "Kakitsu (1441–1444)", "Bun’an (1444–1449)", "Hōtoku (1449–1452)", "Kyōtoku (1452–1455)", "Kōshō (1455–1457)", "Chōroku (1457–1460)", "Kanshō (1460–1466)", "Bunshō (1466–1467)", "Ōnin (1467–1469)", "Bunmei (1469–1487)", "Chōkyō (1487–1489)", "Entoku (1489–1492)", "Meiō (1492–1501)", "Bunki (1501–1504)", "Eishō (1504–1521)", "Taiei (1521–1528)", "Kyōroku (1528–1532)", "Tenbun (1532–1555)", "Kōji (1555–1558)", "Eiroku (1558–1570)", "Genki (1570–1573)", "Tenshō (1573–1592)", "Bunroku (1592–1596)", "Keichō (1596–1615)", "Genna (1615–1624)", "Kan’ei (1624–1644)", "Shōho (1644–1648)", "Keian (1648–1652)", "Jōō (1652–1655)", "Meireki (1655–1658)", "Manji (1658–1661)", "Kanbun (1661–1673)", "Enpō (1673–1681)", "Tenna (1681–1684)", "Jōkyō (1684–1688)", "Genroku (1688–1704)", "Hōei (1704–1711)", "Shōtoku (1711–1716)", "Kyōhō (1716–1736)", "Genbun (1736–1741)", "Kanpō (1741–1744)", "Enkyō (1744–1748)", "Kan’en (1748–1751)", "Hōreki (1751–1764)", "Meiwa (1764–1772)", "An’ei (1772–1781)", "Tenmei (1781–1789)", "Kansei (1789–1801)", "Kyōwa (1801–1804)", "Bunka (1804–1818)", "Bunsei (1818–1830)", "Tenpō (1830–1844)", "Kōka (1844–1848)", "Kaei (1848–1854)", "Ansei (1854–1860)", "Man’en (1860–1861)", "Bunkyū (1861–1864)", "Genji (1864–1865)", "Keiō (1865–1868)", "Meiji", "Taishō", "Shōwa", "Heisei"]
- },
- dayPeriods: {
- am: "am",
- pm: "pm"
- }
- },
- persian: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Farvardin", "Ordibehesht", "Khordad", "Tir", "Mordad", "Shahrivar", "Mehr", "Aban", "Azar", "Dey", "Bahman", "Esfand"],
- long: ["Farvardin", "Ordibehesht", "Khordad", "Tir", "Mordad", "Shahrivar", "Mehr", "Aban", "Azar", "Dey", "Bahman", "Esfand"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["AP"],
- short: ["AP"],
- long: ["AP"]
- },
- dayPeriods: {
- am: "am",
- pm: "pm"
- }
- },
- roc: {
- months: {
- narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
- short: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
- long: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
- },
- days: {
- narrow: ["S", "M", "T", "W", "T", "F", "S"],
- short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- long: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- },
- eras: {
- narrow: ["Before R.O.C.", "Minguo"],
- short: ["Before R.O.C.", "Minguo"],
- long: ["Before R.O.C.", "Minguo"]
- },
- dayPeriods: {
- am: "am",
- pm: "pm"
- }
+
+ function W(e, r) {
+ for (
+ var t = 120,
+ n = 20,
+ a = 8,
+ i = 6,
+ o = 6,
+ s = 3,
+ l = -(1 / 0),
+ c = void 0,
+ u = 0,
+ g = r.length;
+ u < g;
+
+ ) {
+ var f = r[u],
+ m = 0;
+ for (var v in Dr)
+ if (Me.call(Dr, v)) {
+ var d = e['[[' + v + ']]'],
+ h = Me.call(f, v) ? f[v] : void 0;
+ if (void 0 === d && void 0 !== h) m -= n;
+ else if (void 0 !== d && void 0 === h) m -= t;
+ else {
+ var p = [
+ '2-digit',
+ 'numeric',
+ 'narrow',
+ 'short',
+ 'long',
+ ],
+ y = Ae.call(p, d),
+ b = Ae.call(p, h),
+ w = Math.max(Math.min(b - y, 2), -2);
+ 2 === w
+ ? (m -= i)
+ : 1 === w
+ ? (m -= s)
+ : w === -1
+ ? (m -= o)
+ : w === -2 && (m -= a);
+ }
+ }
+ m > l && ((l = m), (c = f)), u++;
+ }
+ return c;
}
- }
- },
- number: {
- nu: ["latn"],
- patterns: {
- decimal: {
- positivePattern: "{number}",
- negativePattern: "{minusSign}{number}"
- },
- currency: {
- positivePattern: "{currency}{number}",
- negativePattern: "{minusSign}{currency}{number}"
- },
- percent: {
- positivePattern: "{number}{percentSign}",
- negativePattern: "{minusSign}{number}{percentSign}"
+
+ function X(e, r) {
+ var t = [];
+ for (var n in Dr)
+ Me.call(Dr, n) && void 0 !== e['[[' + n + ']]'] && t.push(n);
+ if (1 === t.length) {
+ var a = B(t[0], e['[[' + t[0] + ']]']);
+ if (a) return a;
+ }
+ for (
+ var i = 120,
+ o = 20,
+ s = 8,
+ l = 6,
+ c = 6,
+ u = 3,
+ g = 2,
+ f = 1,
+ m = -(1 / 0),
+ v = void 0,
+ d = 0,
+ h = r.length;
+ d < h;
+
+ ) {
+ var p = r[d],
+ y = 0;
+ for (var b in Dr)
+ if (Me.call(Dr, b)) {
+ var w = e['[[' + b + ']]'],
+ x = Me.call(p, b) ? p[b] : void 0,
+ j = Me.call(p._, b) ? p._[b] : void 0;
+ if ((w !== j && (y -= g), void 0 === w && void 0 !== x))
+ y -= o;
+ else if (void 0 !== w && void 0 === x) y -= i;
+ else {
+ var D = [
+ '2-digit',
+ 'numeric',
+ 'narrow',
+ 'short',
+ 'long',
+ ],
+ z = Ae.call(D, w),
+ k = Ae.call(D, x),
+ O = Math.max(Math.min(k - z, 2), -2);
+ (k <= 1 && z >= 2) || (k >= 2 && z <= 1)
+ ? O > 0
+ ? (y -= l)
+ : O < 0 && (y -= s)
+ : O > 1
+ ? (y -= u)
+ : O < -1 && (y -= c);
+ }
+ }
+ p._.hour12 !== e.hour12 && (y -= f),
+ y > m && ((m = y), (v = p)),
+ d++;
+ }
+ return v;
}
- },
- symbols: {
- latn: {
- decimal: ".",
- group: ",",
- nan: "NaN",
- plusSign: "+",
- minusSign: "-",
- percentSign: "%",
- infinity: "∞"
+
+ function V() {
+ var e = null !== this && 'object' === Ne.typeof(this) && l(this);
+ if (!e || !e['[[initializedDateTimeFormat]]'])
+ throw new TypeError(
+ '`this` value for format() is not an initialized Intl.DateTimeFormat object.',
+ );
+ if (void 0 === e['[[boundFormat]]']) {
+ var r = function () {
+ var e =
+ arguments.length <= 0 || void 0 === arguments[0]
+ ? void 0
+ : arguments[0],
+ r = void 0 === e ? Date.now() : i(e);
+ return ee(this, r);
+ },
+ t = Ue.call(r, this);
+ e['[[boundFormat]]'] = t;
+ }
+ return e['[[boundFormat]]'];
}
- },
- currencies: {
- AUD: "A$",
- BRL: "R$",
- CAD: "CA$",
- CNY: "CN¥",
- EUR: "€",
- GBP: "£",
- HKD: "HK$",
- ILS: "₪",
- INR: "₹",
- JPY: "JP¥",
- KRW: "₩",
- MXN: "MX$",
- NZD: "NZ$",
- TWD: "NT$",
- USD: "US$",
- VND: "₫",
- XAF: "FCFA",
- XCD: "EC$",
- XOF: "CFA",
- XPF: "CFPF"
- }
- }
- });
-
- // Intl.~locale.fr
- IntlPolyfill.__addLocaleData({
- locale: "fr",
- date: {
- ca: ["gregory", "buddhist", "chinese", "coptic", "dangi", "ethioaa", "ethiopic", "generic", "hebrew", "indian", "islamic", "islamicc", "japanese", "persian", "roc"],
- hourNo0: true,
- hour12: false,
- formats: {
- short: "{1} {0}",
- medium: "{1} 'à' {0}",
- full: "{1} 'à' {0}",
- long: "{1} 'à' {0}",
- availableFormats: {
- "d": "d",
- "E": "E",
- Ed: "E d",
- Ehm: "E h:mm a",
- EHm: "E HH:mm",
- Ehms: "E h:mm:ss a",
- EHms: "E HH:mm:ss",
- Gy: "y G",
- GyMMM: "MMM y G",
- GyMMMd: "d MMM y G",
- GyMMMEd: "E d MMM y G",
- "h": "h a",
- "H": "HH 'h'",
- hm: "h:mm a",
- Hm: "HH:mm",
- hms: "h:mm:ss a",
- Hms: "HH:mm:ss",
- hmsv: "h:mm:ss a v",
- Hmsv: "HH:mm:ss v",
- hmv: "h:mm a v",
- Hmv: "HH:mm v",
- "M": "L",
- Md: "dd/MM",
- MEd: "E dd/MM",
- MMM: "LLL",
- MMMd: "d MMM",
- MMMEd: "E d MMM",
- MMMMd: "d MMMM",
- ms: "mm:ss",
- "y": "y",
- yM: "MM/y",
- yMd: "dd/MM/y",
- yMEd: "E dd/MM/y",
- yMMM: "MMM y",
- yMMMd: "d MMM y",
- yMMMEd: "E d MMM y",
- yMMMM: "MMMM y",
- yQQQ: "QQQ y",
- yQQQQ: "QQQQ y"
- },
- dateFormats: {
- yMMMMEEEEd: "EEEE d MMMM y",
- yMMMMd: "d MMMM y",
- yMMMd: "d MMM y",
- yMd: "dd/MM/y"
- },
- timeFormats: {
- hmmsszzzz: "HH:mm:ss zzzz",
- hmsz: "HH:mm:ss z",
- hms: "HH:mm:ss",
- hm: "HH:mm"
+
+ function J() {
+ var e =
+ arguments.length <= 0 || void 0 === arguments[0]
+ ? void 0
+ : arguments[0],
+ r = null !== this && 'object' === Ne.typeof(this) && l(this);
+ if (!r || !r['[[initializedDateTimeFormat]]'])
+ throw new TypeError(
+ '`this` value for formatToParts() is not an initialized Intl.DateTimeFormat object.',
+ );
+ var t = void 0 === e ? Date.now() : i(e);
+ return re(this, t);
}
- },
- calendars: {
- buddhist: {
- months: {
- narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
- short: ["janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."],
- long: ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"]
- },
- days: {
- narrow: ["D", "L", "M", "M", "J", "V", "S"],
- short: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
- long: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]
- },
- eras: {
- narrow: ["E.B."],
- short: ["ère b."],
- long: ["ère bouddhiste"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- chinese: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["1yuè", "2yuè", "3yuè", "4yuè", "5yuè", "6yuè", "7yuè", "8yuè", "9yuè", "10yuè", "11yuè", "12yuè"],
- long: ["zhēngyuè", "èryuè", "sānyuè", "sìyuè", "wǔyuè", "liùyuè", "qīyuè", "bāyuè", "jiǔyuè", "shíyuè", "shíyīyuè", "shí’èryuè"]
- },
- days: {
- narrow: ["D", "L", "M", "M", "J", "V", "S"],
- short: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
- long: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- coptic: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"],
- short: ["Tout", "Baba", "Hator", "Kiahk", "Toba", "Amshir", "Baramhat", "Baramouda", "Bashans", "Paona", "Epep", "Mesra", "Nasie"],
- long: ["Tout", "Baba", "Hator", "Kiahk", "Toba", "Amshir", "Baramhat", "Baramouda", "Bashans", "Paona", "Epep", "Mesra", "Nasie"]
- },
- days: {
- narrow: ["D", "L", "M", "M", "J", "V", "S"],
- short: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
- long: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]
- },
- eras: {
- narrow: ["ERA0", "ERA1"],
- short: ["ERA0", "ERA1"],
- long: ["ERA0", "ERA1"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- dangi: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["1yuè", "2yuè", "3yuè", "4yuè", "5yuè", "6yuè", "7yuè", "8yuè", "9yuè", "10yuè", "11yuè", "12yuè"],
- long: ["zhēngyuè", "èryuè", "sānyuè", "sìyuè", "wǔyuè", "liùyuè", "qīyuè", "bāyuè", "jiǔyuè", "shíyuè", "shíyīyuè", "shí’èryuè"]
- },
- days: {
- narrow: ["D", "L", "M", "M", "J", "V", "S"],
- short: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
- long: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- ethiopic: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"],
- short: ["Meskerem", "Tekemt", "Hedar", "Tahsas", "Ter", "Yekatit", "Megabit", "Miazia", "Genbot", "Sene", "Hamle", "Nehasse", "Pagumen"],
- long: ["Meskerem", "Tekemt", "Hedar", "Tahsas", "Ter", "Yekatit", "Megabit", "Miazia", "Genbot", "Sene", "Hamle", "Nehasse", "Pagumen"]
- },
- days: {
- narrow: ["D", "L", "M", "M", "J", "V", "S"],
- short: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
- long: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]
- },
- eras: {
- narrow: ["ERA0", "ERA1"],
- short: ["ERA0", "ERA1"],
- long: ["ERA0", "ERA1"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- ethioaa: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"],
- short: ["Meskerem", "Tekemt", "Hedar", "Tahsas", "Ter", "Yekatit", "Megabit", "Miazia", "Genbot", "Sene", "Hamle", "Nehasse", "Pagumen"],
- long: ["Meskerem", "Tekemt", "Hedar", "Tahsas", "Ter", "Yekatit", "Megabit", "Miazia", "Genbot", "Sene", "Hamle", "Nehasse", "Pagumen"]
- },
- days: {
- narrow: ["D", "L", "M", "M", "J", "V", "S"],
- short: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
- long: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]
- },
- eras: {
- narrow: ["ERA0"],
- short: ["ERA0"],
- long: ["ERA0"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- generic: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["M01", "M02", "M03", "M04", "M05", "M06", "M07", "M08", "M09", "M10", "M11", "M12"],
- long: ["M01", "M02", "M03", "M04", "M05", "M06", "M07", "M08", "M09", "M10", "M11", "M12"]
- },
- days: {
- narrow: ["D", "L", "M", "M", "J", "V", "S"],
- short: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
- long: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]
- },
- eras: {
- narrow: ["ERA0", "ERA1"],
- short: ["ERA0", "ERA1"],
- long: ["ERA0", "ERA1"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- gregory: {
- months: {
- narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
- short: ["janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."],
- long: ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"]
- },
- days: {
- narrow: ["D", "L", "M", "M", "J", "V", "S"],
- short: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
- long: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]
- },
- eras: {
- narrow: ["av. J.-C.", "ap. J.-C.", "AEC", "EC"],
- short: ["av. J.-C.", "ap. J.-C.", "AEC", "EC"],
- long: ["avant Jésus-Christ", "après Jésus-Christ", "avant l’ère commune", "de l’ère commune"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- },
- hebrew: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "7"],
- short: ["Tisseri", "Hesvan", "Kislev", "Tébeth", "Schébat", "Adar I", "Adar", "Nissan", "Iyar", "Sivan", "Tamouz", "Ab", "Elloul", "Adar II"],
- long: ["Tisseri", "Hesvan", "Kislev", "Tébeth", "Schébat", "Adar I", "Adar", "Nissan", "Iyar", "Sivan", "Tamouz", "Ab", "Elloul", "Adar II"]
- },
- days: {
- narrow: ["D", "L", "M", "M", "J", "V", "S"],
- short: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
- long: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]
- },
- eras: {
- narrow: ["AM"],
- short: ["AM"],
- long: ["AM"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
+
+ function Q(e, r) {
+ if (!isFinite(r))
+ throw new RangeError('Invalid valid date passed to format');
+ var a = e.__getInternalProperties(Ke);
+ n();
+ for (
+ var i = a['[[locale]]'],
+ o = new mr.NumberFormat([i], {
+ useGrouping: !1,
+ }),
+ s = new mr.NumberFormat([i], {
+ minimumIntegerDigits: 2,
+ useGrouping: !1,
+ }),
+ l = te(r, a['[[calendar]]'], a['[[timeZone]]']),
+ c = a['[[pattern]]'],
+ u = new t(),
+ g = 0,
+ f = c.indexOf('{'),
+ m = 0,
+ v = a['[[dataLocale]]'],
+ d = $e.DateTimeFormat['[[localeData]]'][v].calendars,
+ h = a['[[calendar]]'];
+ f !== -1;
+
+ ) {
+ var p = void 0;
+ if (((m = c.indexOf('}', f)), m === -1))
+ throw new Error('Unclosed pattern');
+ f > g &&
+ Ge.call(u, {
+ type: 'literal',
+ value: c.substring(g, f),
+ });
+ var y = c.substring(f + 1, m);
+ if (Dr.hasOwnProperty(y)) {
+ var b = a['[[' + y + ']]'],
+ w = l['[[' + y + ']]'];
+ if (
+ ('year' === y && w <= 0
+ ? (w = 1 - w)
+ : 'month' === y
+ ? w++
+ : 'hour' === y &&
+ a['[[hour12]]'] === !0 &&
+ ((w %= 12),
+ 0 === w && a['[[hourNo0]]'] === !0 && (w = 12)),
+ 'numeric' === b)
+ )
+ p = T(o, w);
+ else if ('2-digit' === b)
+ (p = T(s, w)), p.length > 2 && (p = p.slice(-2));
+ else if (b in jr)
+ switch (y) {
+ case 'month':
+ p = U(d, h, 'months', b, l['[[' + y + ']]']);
+ break;
+ case 'weekday':
+ try {
+ p = U(d, h, 'days', b, l['[[' + y + ']]']);
+ } catch (e) {
+ throw new Error(
+ 'Could not find weekday data for locale ' +
+ i,
+ );
+ }
+ break;
+ case 'timeZoneName':
+ p = '';
+ break;
+ case 'era':
+ try {
+ p = U(d, h, 'eras', b, l['[[' + y + ']]']);
+ } catch (e) {
+ throw new Error(
+ 'Could not find era data for locale ' +
+ i,
+ );
+ }
+ break;
+ default:
+ p = l['[[' + y + ']]'];
+ }
+ Ge.call(u, {
+ type: y,
+ value: p,
+ });
+ } else if ('ampm' === y) {
+ var x = l['[[hour]]'];
+ (p = U(d, h, 'dayPeriods', x > 11 ? 'pm' : 'am', null)),
+ Ge.call(u, {
+ type: 'dayPeriod',
+ value: p,
+ });
+ } else
+ Ge.call(u, {
+ type: 'literal',
+ value: c.substring(f, m + 1),
+ });
+ (g = m + 1), (f = c.indexOf('{', g));
+ }
+ return (
+ m < c.length - 1 &&
+ Ge.call(u, {
+ type: 'literal',
+ value: c.substr(m + 1),
+ }),
+ u
+ );
+ }
+
+ function ee(e, r) {
+ for (var t = Q(e, r), n = '', a = 0; t.length > a; a++) {
+ var i = t[a];
+ n += i.value;
+ }
+ return n;
+ }
+
+ function re(e, r) {
+ for (var t = Q(e, r), n = [], a = 0; t.length > a; a++) {
+ var i = t[a];
+ n.push({
+ type: i.type,
+ value: i.value,
+ });
+ }
+ return n;
+ }
+
+ function te(e, t, n) {
+ var a = new Date(e),
+ i = 'get' + (n || '');
+ return new r({
+ '[[weekday]]': a[i + 'Day'](),
+ '[[era]]': +(a[i + 'FullYear']() >= 0),
+ '[[year]]': a[i + 'FullYear'](),
+ '[[month]]': a[i + 'Month'](),
+ '[[day]]': a[i + 'Date'](),
+ '[[hour]]': a[i + 'Hours'](),
+ '[[minute]]': a[i + 'Minutes'](),
+ '[[second]]': a[i + 'Seconds'](),
+ '[[inDST]]': !1,
+ });
+ }
+
+ function ne(e, r) {
+ if (!e.number)
+ throw new Error(
+ "Object passed doesn't contain locale data for Intl.NumberFormat",
+ );
+ var t = void 0,
+ n = [r],
+ a = r.split('-');
+ for (
+ a.length > 2 &&
+ 4 === a[1].length &&
+ Ge.call(n, a[0] + '-' + a[2]);
+ (t = Be.call(n));
+
+ )
+ Ge.call($e.NumberFormat['[[availableLocales]]'], t),
+ ($e.NumberFormat['[[localeData]]'][t] = e.number),
+ e.date &&
+ ((e.date.nu = e.number.nu),
+ Ge.call($e.DateTimeFormat['[[availableLocales]]'], t),
+ ($e.DateTimeFormat['[[localeData]]'][t] = e.date));
+ void 0 === cr && c(r);
+ }
+ var ae =
+ 'function' == typeof Symbol &&
+ 'symbol' == typeof Symbol.iterator
+ ? function (e) {
+ return typeof e;
+ }
+ : function (e) {
+ return e &&
+ 'function' == typeof Symbol &&
+ e.constructor === Symbol
+ ? 'symbol'
+ : typeof e;
+ },
+ ie = (function () {
+ var e =
+ ('function' == typeof Symbol &&
+ Symbol.for &&
+ Symbol.for('react.element')) ||
+ 60103;
+ return function (r, t, n, a) {
+ var i = r && r.defaultProps,
+ o = arguments.length - 3;
+ if ((t || 0 === o || (t = {}), t && i))
+ for (var s in i) void 0 === t[s] && (t[s] = i[s]);
+ else t || (t = i || {});
+ if (1 === o) t.children = a;
+ else if (o > 1) {
+ for (var l = Array(o), c = 0; c < o; c++)
+ l[c] = arguments[c + 3];
+ t.children = l;
+ }
+ return {
+ $$typeof: e,
+ type: r,
+ key: void 0 === n ? null : '' + n,
+ ref: null,
+ props: t,
+ _owner: null,
+ };
+ };
+ })(),
+ oe = function (e) {
+ return function () {
+ var r = e.apply(this, arguments);
+ return new Promise(function (e, t) {
+ function n(a, i) {
+ try {
+ var o = r[a](i),
+ s = o.value;
+ } catch (e) {
+ return void t(e);
+ }
+ return o.done
+ ? void e(s)
+ : Promise.resolve(s).then(
+ function (e) {
+ return n('next', e);
+ },
+ function (e) {
+ return n('throw', e);
+ },
+ );
+ }
+ return n('next');
+ });
+ };
+ },
+ se = function (e, r) {
+ if (!(e instanceof r))
+ throw new TypeError('Cannot call a class as a function');
+ },
+ le = (function () {
+ function e(e, r) {
+ for (var t = 0; t < r.length; t++) {
+ var n = r[t];
+ (n.enumerable = n.enumerable || !1),
+ (n.configurable = !0),
+ 'value' in n && (n.writable = !0),
+ Object.defineProperty(e, n.key, n);
+ }
+ }
+ return function (r, t, n) {
+ return t && e(r.prototype, t), n && e(r, n), r;
+ };
+ })(),
+ ce = function (e, r) {
+ for (var t in r) {
+ var n = r[t];
+ (n.configurable = n.enumerable = !0),
+ 'value' in n && (n.writable = !0),
+ Object.defineProperty(e, t, n);
+ }
+ return e;
+ },
+ ue = function (e, r) {
+ for (
+ var t = Object.getOwnPropertyNames(r), n = 0;
+ n < t.length;
+ n++
+ ) {
+ var a = t[n],
+ i = Object.getOwnPropertyDescriptor(r, a);
+ i &&
+ i.configurable &&
+ void 0 === e[a] &&
+ Object.defineProperty(e, a, i);
+ }
+ return e;
+ },
+ ge = function (e, r, t) {
+ return (
+ r in e
+ ? Object.defineProperty(e, r, {
+ value: t,
+ enumerable: !0,
+ configurable: !0,
+ writable: !0,
+ })
+ : (e[r] = t),
+ e
+ );
+ },
+ fe =
+ Object.assign ||
+ function (e) {
+ for (var r = 1; r < arguments.length; r++) {
+ var t = arguments[r];
+ for (var n in t)
+ Object.prototype.hasOwnProperty.call(t, n) &&
+ (e[n] = t[n]);
+ }
+ return e;
+ },
+ me = function e(r, t, n) {
+ null === r && (r = Function.prototype);
+ var a = Object.getOwnPropertyDescriptor(r, t);
+ if (void 0 === a) {
+ var i = Object.getPrototypeOf(r);
+ return null === i ? void 0 : e(i, t, n);
+ }
+ if ('value' in a) return a.value;
+ var o = a.get;
+ if (void 0 !== o) return o.call(n);
+ },
+ ve = function (e, r) {
+ if ('function' != typeof r && null !== r)
+ throw new TypeError(
+ 'Super expression must either be null or a function, not ' +
+ typeof r,
+ );
+ (e.prototype = Object.create(r && r.prototype, {
+ constructor: {
+ value: e,
+ enumerable: !1,
+ writable: !0,
+ configurable: !0,
+ },
+ })),
+ r &&
+ (Object.setPrototypeOf
+ ? Object.setPrototypeOf(e, r)
+ : (e.__proto__ = r));
+ },
+ de = function (e, r) {
+ return null != r &&
+ 'undefined' != typeof Symbol &&
+ r[Symbol.hasInstance]
+ ? r[Symbol.hasInstance](e)
+ : e instanceof r;
+ },
+ he = function (e) {
+ return e && e.__esModule
+ ? e
+ : {
+ default: e,
+ };
+ },
+ pe = function (e) {
+ if (e && e.__esModule) return e;
+ var r = {};
+ if (null != e)
+ for (var t in e)
+ Object.prototype.hasOwnProperty.call(e, t) &&
+ (r[t] = e[t]);
+ return (r.default = e), r;
+ },
+ ye = function (e, r) {
+ if (e !== r)
+ throw new TypeError('Cannot instantiate an arrow function');
+ },
+ be = function (e) {
+ if (null == e)
+ throw new TypeError('Cannot destructure undefined');
+ },
+ we = function (e, r) {
+ var t = {};
+ for (var n in e)
+ r.indexOf(n) >= 0 ||
+ (Object.prototype.hasOwnProperty.call(e, n) &&
+ (t[n] = e[n]));
+ return t;
+ },
+ xe = function (e, r) {
+ if (!e)
+ throw new ReferenceError(
+ "this hasn't been initialised - super() hasn't been called",
+ );
+ return !r || ('object' != typeof r && 'function' != typeof r)
+ ? e
+ : r;
+ },
+ je = 'undefined' == typeof global ? self : global,
+ De = function e(r, t, n, a) {
+ var i = Object.getOwnPropertyDescriptor(r, t);
+ if (void 0 === i) {
+ var o = Object.getPrototypeOf(r);
+ null !== o && e(o, t, n, a);
+ } else if ('value' in i && i.writable) i.value = n;
+ else {
+ var s = i.set;
+ void 0 !== s && s.call(a, n);
+ }
+ return n;
+ },
+ ze = (function () {
+ function e(e, r) {
+ var t = [],
+ n = !0,
+ a = !1,
+ i = void 0;
+ try {
+ for (
+ var o, s = e[Symbol.iterator]();
+ !(n = (o = s.next()).done) &&
+ (t.push(o.value), !r || t.length !== r);
+ n = !0
+ );
+ } catch (e) {
+ (a = !0), (i = e);
+ } finally {
+ try {
+ !n && s.return && s.return();
+ } finally {
+ if (a) throw i;
+ }
+ }
+ return t;
+ }
+ return function (r, t) {
+ if (Array.isArray(r)) return r;
+ if (Symbol.iterator in Object(r)) return e(r, t);
+ throw new TypeError(
+ 'Invalid attempt to destructure non-iterable instance',
+ );
+ };
+ })(),
+ ke = function (e, r) {
+ if (Array.isArray(e)) return e;
+ if (Symbol.iterator in Object(e)) {
+ for (
+ var t, n = [], a = e[Symbol.iterator]();
+ !(t = a.next()).done &&
+ (n.push(t.value), !r || n.length !== r);
+
+ );
+ return n;
+ }
+ throw new TypeError(
+ 'Invalid attempt to destructure non-iterable instance',
+ );
+ },
+ Oe = function (e, r) {
+ return Object.freeze(
+ Object.defineProperties(e, {
+ raw: {
+ value: Object.freeze(r),
+ },
+ }),
+ );
+ },
+ Fe = function (e, r) {
+ return (e.raw = r), e;
+ },
+ Se = function (e, r, t) {
+ if (e === t)
+ throw new ReferenceError(
+ r + ' is not defined - temporal dead zone',
+ );
+ return e;
+ },
+ Ee = {},
+ Le = function (e) {
+ return Array.isArray(e) ? e : Array.from(e);
+ },
+ Pe = function (e) {
+ if (Array.isArray(e)) {
+ for (var r = 0, t = Array(e.length); r < e.length; r++)
+ t[r] = e[r];
+ return t;
+ }
+ return Array.from(e);
+ },
+ Ne = Object.freeze({
+ jsx: ie,
+ asyncToGenerator: oe,
+ classCallCheck: se,
+ createClass: le,
+ defineEnumerableProperties: ce,
+ defaults: ue,
+ defineProperty: ge,
+ get: me,
+ inherits: ve,
+ interopRequireDefault: he,
+ interopRequireWildcard: pe,
+ newArrowCheck: ye,
+ objectDestructuringEmpty: be,
+ objectWithoutProperties: we,
+ possibleConstructorReturn: xe,
+ selfGlobal: je,
+ set: De,
+ slicedToArray: ze,
+ slicedToArrayLoose: ke,
+ taggedTemplateLiteral: Oe,
+ taggedTemplateLiteralLoose: Fe,
+ temporalRef: Se,
+ temporalUndefined: Ee,
+ toArray: Le,
+ toConsumableArray: Pe,
+ typeof: ae,
+ extends: fe,
+ instanceof: de,
+ }),
+ Te = (function () {
+ var e = function () {};
+ try {
+ return (
+ Object.defineProperty(e, 'a', {
+ get: function () {
+ return 1;
+ },
+ }),
+ Object.defineProperty(e, 'prototype', {
+ writable: !1,
+ }),
+ 1 === e.a && e.prototype instanceof Object
+ );
+ } catch (e) {
+ return !1;
+ }
+ })(),
+ _e = !Te && !Object.prototype.__defineGetter__,
+ Me = Object.prototype.hasOwnProperty,
+ Ie = Te
+ ? Object.defineProperty
+ : function (e, r, t) {
+ 'get' in t && e.__defineGetter__
+ ? e.__defineGetter__(r, t.get)
+ : (!Me.call(e, r) || 'value' in t) &&
+ (e[r] = t.value);
+ },
+ Ae =
+ Array.prototype.indexOf ||
+ function (e) {
+ var r = this;
+ if (!r.length) return -1;
+ for (var t = arguments[1] || 0, n = r.length; t < n; t++)
+ if (r[t] === e) return t;
+ return -1;
+ },
+ Re =
+ Object.create ||
+ function (e, r) {
+ function t() {}
+ var n = void 0;
+ (t.prototype = e), (n = new t());
+ for (var a in r) Me.call(r, a) && Ie(n, a, r[a]);
+ return n;
+ },
+ qe = Array.prototype.slice,
+ Ce = Array.prototype.concat,
+ Ge = Array.prototype.push,
+ Ze = Array.prototype.join,
+ Be = Array.prototype.shift,
+ Ue =
+ Function.prototype.bind ||
+ function (e) {
+ var r = this,
+ t = qe.call(arguments, 1);
+ return 1 === r.length
+ ? function () {
+ return r.apply(e, Ce.call(t, qe.call(arguments)));
+ }
+ : function () {
+ return r.apply(e, Ce.call(t, qe.call(arguments)));
+ };
+ },
+ $e = Re(null),
+ Ke = Math.random();
+ (r.prototype = Re(null)), (t.prototype = Re(null));
+ var Ye = '[a-z]{3}(?:-[a-z]{3}){0,2}',
+ He = '(?:[a-z]{2,3}(?:-' + Ye + ')?|[a-z]{4}|[a-z]{5,8})',
+ We = '[a-z]{4}',
+ Xe = '(?:[a-z]{2}|\\d{3})',
+ Ve = '(?:[a-z0-9]{5,8}|\\d[a-z0-9]{3})',
+ Je = '[0-9a-wy-z]',
+ Qe = Je + '(?:-[a-z0-9]{2,8})+',
+ er = 'x(?:-[a-z0-9]{1,8})+',
+ rr =
+ '(?:en-GB-oed|i-(?:ami|bnn|default|enochian|hak|klingon|lux|mingo|navajo|pwn|tao|tay|tsu)|sgn-(?:BE-FR|BE-NL|CH-DE))',
+ tr =
+ '(?:art-lojban|cel-gaulish|no-bok|no-nyn|zh-(?:guoyu|hakka|min|min-nan|xiang))',
+ nr = '(?:' + rr + '|' + tr + ')',
+ ar =
+ He +
+ '(?:-' +
+ We +
+ ')?(?:-' +
+ Xe +
+ ')?(?:-' +
+ Ve +
+ ')*(?:-' +
+ Qe +
+ ')*(?:-' +
+ er +
+ ')?',
+ ir = RegExp('^(?:' + ar + '|' + er + '|' + nr + ')$', 'i'),
+ or = RegExp(
+ '^(?!x).*?-(' + Ve + ')-(?:\\w{4,8}-(?!x-))*\\1\\b',
+ 'i',
+ ),
+ sr = RegExp('^(?!x).*?-(' + Je + ')-(?:\\w+-(?!x-))*\\1\\b', 'i'),
+ lr = RegExp('-' + Qe, 'ig'),
+ cr = void 0,
+ ur = {
+ tags: {
+ 'art-lojban': 'jbo',
+ 'i-ami': 'ami',
+ 'i-bnn': 'bnn',
+ 'i-hak': 'hak',
+ 'i-klingon': 'tlh',
+ 'i-lux': 'lb',
+ 'i-navajo': 'nv',
+ 'i-pwn': 'pwn',
+ 'i-tao': 'tao',
+ 'i-tay': 'tay',
+ 'i-tsu': 'tsu',
+ 'no-bok': 'nb',
+ 'no-nyn': 'nn',
+ 'sgn-BE-FR': 'sfb',
+ 'sgn-BE-NL': 'vgt',
+ 'sgn-CH-DE': 'sgg',
+ 'zh-guoyu': 'cmn',
+ 'zh-hakka': 'hak',
+ 'zh-min-nan': 'nan',
+ 'zh-xiang': 'hsn',
+ 'sgn-BR': 'bzs',
+ 'sgn-CO': 'csn',
+ 'sgn-DE': 'gsg',
+ 'sgn-DK': 'dsl',
+ 'sgn-ES': 'ssp',
+ 'sgn-FR': 'fsl',
+ 'sgn-GB': 'bfi',
+ 'sgn-GR': 'gss',
+ 'sgn-IE': 'isg',
+ 'sgn-IT': 'ise',
+ 'sgn-JP': 'jsl',
+ 'sgn-MX': 'mfs',
+ 'sgn-NI': 'ncs',
+ 'sgn-NL': 'dse',
+ 'sgn-NO': 'nsl',
+ 'sgn-PT': 'psr',
+ 'sgn-SE': 'swl',
+ 'sgn-US': 'ase',
+ 'sgn-ZA': 'sfs',
+ 'zh-cmn': 'cmn',
+ 'zh-cmn-Hans': 'cmn-Hans',
+ 'zh-cmn-Hant': 'cmn-Hant',
+ 'zh-gan': 'gan',
+ 'zh-wuu': 'wuu',
+ 'zh-yue': 'yue',
+ },
+ subtags: {
+ BU: 'MM',
+ DD: 'DE',
+ FX: 'FR',
+ TP: 'TL',
+ YD: 'YE',
+ ZR: 'CD',
+ heploc: 'alalc97',
+ in: 'id',
+ iw: 'he',
+ ji: 'yi',
+ jw: 'jv',
+ mo: 'ro',
+ ayx: 'nun',
+ bjd: 'drl',
+ ccq: 'rki',
+ cjr: 'mom',
+ cka: 'cmr',
+ cmk: 'xch',
+ drh: 'khk',
+ drw: 'prs',
+ gav: 'dev',
+ hrr: 'jal',
+ ibi: 'opa',
+ kgh: 'kml',
+ lcq: 'ppr',
+ mst: 'mry',
+ myt: 'mry',
+ sca: 'hle',
+ tie: 'ras',
+ tkk: 'twm',
+ tlw: 'weo',
+ tnf: 'prs',
+ ybd: 'rki',
+ yma: 'lrr',
+ },
+ extLang: {
+ aao: ['aao', 'ar'],
+ abh: ['abh', 'ar'],
+ abv: ['abv', 'ar'],
+ acm: ['acm', 'ar'],
+ acq: ['acq', 'ar'],
+ acw: ['acw', 'ar'],
+ acx: ['acx', 'ar'],
+ acy: ['acy', 'ar'],
+ adf: ['adf', 'ar'],
+ ads: ['ads', 'sgn'],
+ aeb: ['aeb', 'ar'],
+ aec: ['aec', 'ar'],
+ aed: ['aed', 'sgn'],
+ aen: ['aen', 'sgn'],
+ afb: ['afb', 'ar'],
+ afg: ['afg', 'sgn'],
+ ajp: ['ajp', 'ar'],
+ apc: ['apc', 'ar'],
+ apd: ['apd', 'ar'],
+ arb: ['arb', 'ar'],
+ arq: ['arq', 'ar'],
+ ars: ['ars', 'ar'],
+ ary: ['ary', 'ar'],
+ arz: ['arz', 'ar'],
+ ase: ['ase', 'sgn'],
+ asf: ['asf', 'sgn'],
+ asp: ['asp', 'sgn'],
+ asq: ['asq', 'sgn'],
+ asw: ['asw', 'sgn'],
+ auz: ['auz', 'ar'],
+ avl: ['avl', 'ar'],
+ ayh: ['ayh', 'ar'],
+ ayl: ['ayl', 'ar'],
+ ayn: ['ayn', 'ar'],
+ ayp: ['ayp', 'ar'],
+ bbz: ['bbz', 'ar'],
+ bfi: ['bfi', 'sgn'],
+ bfk: ['bfk', 'sgn'],
+ bjn: ['bjn', 'ms'],
+ bog: ['bog', 'sgn'],
+ bqn: ['bqn', 'sgn'],
+ bqy: ['bqy', 'sgn'],
+ btj: ['btj', 'ms'],
+ bve: ['bve', 'ms'],
+ bvl: ['bvl', 'sgn'],
+ bvu: ['bvu', 'ms'],
+ bzs: ['bzs', 'sgn'],
+ cdo: ['cdo', 'zh'],
+ cds: ['cds', 'sgn'],
+ cjy: ['cjy', 'zh'],
+ cmn: ['cmn', 'zh'],
+ coa: ['coa', 'ms'],
+ cpx: ['cpx', 'zh'],
+ csc: ['csc', 'sgn'],
+ csd: ['csd', 'sgn'],
+ cse: ['cse', 'sgn'],
+ csf: ['csf', 'sgn'],
+ csg: ['csg', 'sgn'],
+ csl: ['csl', 'sgn'],
+ csn: ['csn', 'sgn'],
+ csq: ['csq', 'sgn'],
+ csr: ['csr', 'sgn'],
+ czh: ['czh', 'zh'],
+ czo: ['czo', 'zh'],
+ doq: ['doq', 'sgn'],
+ dse: ['dse', 'sgn'],
+ dsl: ['dsl', 'sgn'],
+ dup: ['dup', 'ms'],
+ ecs: ['ecs', 'sgn'],
+ esl: ['esl', 'sgn'],
+ esn: ['esn', 'sgn'],
+ eso: ['eso', 'sgn'],
+ eth: ['eth', 'sgn'],
+ fcs: ['fcs', 'sgn'],
+ fse: ['fse', 'sgn'],
+ fsl: ['fsl', 'sgn'],
+ fss: ['fss', 'sgn'],
+ gan: ['gan', 'zh'],
+ gds: ['gds', 'sgn'],
+ gom: ['gom', 'kok'],
+ gse: ['gse', 'sgn'],
+ gsg: ['gsg', 'sgn'],
+ gsm: ['gsm', 'sgn'],
+ gss: ['gss', 'sgn'],
+ gus: ['gus', 'sgn'],
+ hab: ['hab', 'sgn'],
+ haf: ['haf', 'sgn'],
+ hak: ['hak', 'zh'],
+ hds: ['hds', 'sgn'],
+ hji: ['hji', 'ms'],
+ hks: ['hks', 'sgn'],
+ hos: ['hos', 'sgn'],
+ hps: ['hps', 'sgn'],
+ hsh: ['hsh', 'sgn'],
+ hsl: ['hsl', 'sgn'],
+ hsn: ['hsn', 'zh'],
+ icl: ['icl', 'sgn'],
+ ils: ['ils', 'sgn'],
+ inl: ['inl', 'sgn'],
+ ins: ['ins', 'sgn'],
+ ise: ['ise', 'sgn'],
+ isg: ['isg', 'sgn'],
+ isr: ['isr', 'sgn'],
+ jak: ['jak', 'ms'],
+ jax: ['jax', 'ms'],
+ jcs: ['jcs', 'sgn'],
+ jhs: ['jhs', 'sgn'],
+ jls: ['jls', 'sgn'],
+ jos: ['jos', 'sgn'],
+ jsl: ['jsl', 'sgn'],
+ jus: ['jus', 'sgn'],
+ kgi: ['kgi', 'sgn'],
+ knn: ['knn', 'kok'],
+ kvb: ['kvb', 'ms'],
+ kvk: ['kvk', 'sgn'],
+ kvr: ['kvr', 'ms'],
+ kxd: ['kxd', 'ms'],
+ lbs: ['lbs', 'sgn'],
+ lce: ['lce', 'ms'],
+ lcf: ['lcf', 'ms'],
+ liw: ['liw', 'ms'],
+ lls: ['lls', 'sgn'],
+ lsg: ['lsg', 'sgn'],
+ lsl: ['lsl', 'sgn'],
+ lso: ['lso', 'sgn'],
+ lsp: ['lsp', 'sgn'],
+ lst: ['lst', 'sgn'],
+ lsy: ['lsy', 'sgn'],
+ ltg: ['ltg', 'lv'],
+ lvs: ['lvs', 'lv'],
+ lzh: ['lzh', 'zh'],
+ max: ['max', 'ms'],
+ mdl: ['mdl', 'sgn'],
+ meo: ['meo', 'ms'],
+ mfa: ['mfa', 'ms'],
+ mfb: ['mfb', 'ms'],
+ mfs: ['mfs', 'sgn'],
+ min: ['min', 'ms'],
+ mnp: ['mnp', 'zh'],
+ mqg: ['mqg', 'ms'],
+ mre: ['mre', 'sgn'],
+ msd: ['msd', 'sgn'],
+ msi: ['msi', 'ms'],
+ msr: ['msr', 'sgn'],
+ mui: ['mui', 'ms'],
+ mzc: ['mzc', 'sgn'],
+ mzg: ['mzg', 'sgn'],
+ mzy: ['mzy', 'sgn'],
+ nan: ['nan', 'zh'],
+ nbs: ['nbs', 'sgn'],
+ ncs: ['ncs', 'sgn'],
+ nsi: ['nsi', 'sgn'],
+ nsl: ['nsl', 'sgn'],
+ nsp: ['nsp', 'sgn'],
+ nsr: ['nsr', 'sgn'],
+ nzs: ['nzs', 'sgn'],
+ okl: ['okl', 'sgn'],
+ orn: ['orn', 'ms'],
+ ors: ['ors', 'ms'],
+ pel: ['pel', 'ms'],
+ pga: ['pga', 'ar'],
+ pks: ['pks', 'sgn'],
+ prl: ['prl', 'sgn'],
+ prz: ['prz', 'sgn'],
+ psc: ['psc', 'sgn'],
+ psd: ['psd', 'sgn'],
+ pse: ['pse', 'ms'],
+ psg: ['psg', 'sgn'],
+ psl: ['psl', 'sgn'],
+ pso: ['pso', 'sgn'],
+ psp: ['psp', 'sgn'],
+ psr: ['psr', 'sgn'],
+ pys: ['pys', 'sgn'],
+ rms: ['rms', 'sgn'],
+ rsi: ['rsi', 'sgn'],
+ rsl: ['rsl', 'sgn'],
+ sdl: ['sdl', 'sgn'],
+ sfb: ['sfb', 'sgn'],
+ sfs: ['sfs', 'sgn'],
+ sgg: ['sgg', 'sgn'],
+ sgx: ['sgx', 'sgn'],
+ shu: ['shu', 'ar'],
+ slf: ['slf', 'sgn'],
+ sls: ['sls', 'sgn'],
+ sqk: ['sqk', 'sgn'],
+ sqs: ['sqs', 'sgn'],
+ ssh: ['ssh', 'ar'],
+ ssp: ['ssp', 'sgn'],
+ ssr: ['ssr', 'sgn'],
+ svk: ['svk', 'sgn'],
+ swc: ['swc', 'sw'],
+ swh: ['swh', 'sw'],
+ swl: ['swl', 'sgn'],
+ syy: ['syy', 'sgn'],
+ tmw: ['tmw', 'ms'],
+ tse: ['tse', 'sgn'],
+ tsm: ['tsm', 'sgn'],
+ tsq: ['tsq', 'sgn'],
+ tss: ['tss', 'sgn'],
+ tsy: ['tsy', 'sgn'],
+ tza: ['tza', 'sgn'],
+ ugn: ['ugn', 'sgn'],
+ ugy: ['ugy', 'sgn'],
+ ukl: ['ukl', 'sgn'],
+ uks: ['uks', 'sgn'],
+ urk: ['urk', 'ms'],
+ uzn: ['uzn', 'uz'],
+ uzs: ['uzs', 'uz'],
+ vgt: ['vgt', 'sgn'],
+ vkk: ['vkk', 'ms'],
+ vkt: ['vkt', 'ms'],
+ vsi: ['vsi', 'sgn'],
+ vsl: ['vsl', 'sgn'],
+ vsv: ['vsv', 'sgn'],
+ wuu: ['wuu', 'zh'],
+ xki: ['xki', 'sgn'],
+ xml: ['xml', 'sgn'],
+ xmm: ['xmm', 'ms'],
+ xms: ['xms', 'sgn'],
+ yds: ['yds', 'sgn'],
+ ysl: ['ysl', 'sgn'],
+ yue: ['yue', 'zh'],
+ zib: ['zib', 'sgn'],
+ zlm: ['zlm', 'ms'],
+ zmi: ['zmi', 'ms'],
+ zsl: ['zsl', 'sgn'],
+ zsm: ['zsm', 'ms'],
+ },
+ },
+ gr = /^[A-Z]{3}$/,
+ fr = /-u(?:-[0-9a-z]{2,8})+/gi,
+ mr = {};
+ Object.defineProperty(mr, 'getCanonicalLocales', {
+ enumerable: !1,
+ configurable: !0,
+ writable: !0,
+ value: k,
+ });
+ var vr = {
+ BHD: 3,
+ BYR: 0,
+ XOF: 0,
+ BIF: 0,
+ XAF: 0,
+ CLF: 4,
+ CLP: 0,
+ KMF: 0,
+ DJF: 0,
+ XPF: 0,
+ GNF: 0,
+ ISK: 0,
+ IQD: 3,
+ JPY: 0,
+ JOD: 3,
+ KRW: 0,
+ KWD: 3,
+ LYD: 3,
+ OMR: 3,
+ PYG: 0,
+ RWF: 0,
+ TND: 3,
+ UGX: 0,
+ UYI: 0,
+ VUV: 0,
+ VND: 0,
+ };
+ Ie(mr, 'NumberFormat', {
+ configurable: !0,
+ writable: !0,
+ value: O,
+ }),
+ Ie(mr.NumberFormat, 'prototype', {
+ writable: !1,
+ }),
+ ($e.NumberFormat = {
+ '[[availableLocales]]': [],
+ '[[relevantExtensionKeys]]': ['nu'],
+ '[[localeData]]': {},
+ }),
+ Ie(mr.NumberFormat, 'supportedLocalesOf', {
+ configurable: !0,
+ writable: !0,
+ value: Ue.call(function (e) {
+ if (!Me.call(this, '[[availableLocales]]'))
+ throw new TypeError(
+ 'supportedLocalesOf() is not a constructor',
+ );
+ var r = n(),
+ t = arguments[1],
+ a = this['[[availableLocales]]'],
+ i = d(e);
+ return r(), j(a, i, t);
+ }, $e.NumberFormat),
+ }),
+ Ie(mr.NumberFormat.prototype, 'format', {
+ configurable: !0,
+ get: E,
+ }),
+ Object.defineProperty(mr.NumberFormat.prototype, 'formatToParts', {
+ configurable: !0,
+ enumerable: !1,
+ writable: !0,
+ value: L,
+ });
+ var dr = {
+ arab: ['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩'],
+ arabext: ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'],
+ bali: ['᭐', '᭑', '᭒', '᭓', '᭔', '᭕', '᭖', '᭗', '᭘', '᭙'],
+ beng: ['০', '১', '২', '৩', '৪', '৫', '৬', '৭', '৮', '৯'],
+ deva: ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'],
+ fullwide: [
+ '0',
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ ],
+ gujr: ['૦', '૧', '૨', '૩', '૪', '૫', '૬', '૭', '૮', '૯'],
+ guru: ['੦', '੧', '੨', '੩', '੪', '੫', '੬', '੭', '੮', '੯'],
+ hanidec: [
+ '〇',
+ '一',
+ '二',
+ '三',
+ '四',
+ '五',
+ '六',
+ '七',
+ '八',
+ '九',
+ ],
+ khmr: ['០', '១', '២', '៣', '៤', '៥', '៦', '៧', '៨', '៩'],
+ knda: ['೦', '೧', '೨', '೩', '೪', '೫', '೬', '೭', '೮', '೯'],
+ laoo: ['໐', '໑', '໒', '໓', '໔', '໕', '໖', '໗', '໘', '໙'],
+ latn: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
+ limb: ['᥆', '᥇', '᥈', '᥉', '᥊', '᥋', '᥌', '᥍', '᥎', '᥏'],
+ mlym: ['൦', '൧', '൨', '൩', '൪', '൫', '൬', '൭', '൮', '൯'],
+ mong: ['᠐', '᠑', '᠒', '᠓', '᠔', '᠕', '᠖', '᠗', '᠘', '᠙'],
+ mymr: ['၀', '၁', '၂', '၃', '၄', '၅', '၆', '၇', '၈', '၉'],
+ orya: ['୦', '୧', '୨', '୩', '୪', '୫', '୬', '୭', '୮', '୯'],
+ tamldec: ['௦', '௧', '௨', '௩', '௪', '௫', '௬', '௭', '௮', '௯'],
+ telu: ['౦', '౧', '౨', '౩', '౪', '౫', '౬', '౭', '౮', '౯'],
+ thai: ['๐', '๑', '๒', '๓', '๔', '๕', '๖', '๗', '๘', '๙'],
+ tibt: ['༠', '༡', '༢', '༣', '༤', '༥', '༦', '༧', '༨', '༩'],
+ };
+ Ie(mr.NumberFormat.prototype, 'resolvedOptions', {
+ configurable: !0,
+ writable: !0,
+ value: function () {
+ var e = void 0,
+ t = new r(),
+ n = [
+ 'locale',
+ 'numberingSystem',
+ 'style',
+ 'currency',
+ 'currencyDisplay',
+ 'minimumIntegerDigits',
+ 'minimumFractionDigits',
+ 'maximumFractionDigits',
+ 'minimumSignificantDigits',
+ 'maximumSignificantDigits',
+ 'useGrouping',
+ ],
+ a =
+ null !== this &&
+ 'object' === Ne.typeof(this) &&
+ l(this);
+ if (!a || !a['[[initializedNumberFormat]]'])
+ throw new TypeError(
+ '`this` value for resolvedOptions() is not an initialized Intl.NumberFormat object.',
+ );
+ for (var i = 0, o = n.length; i < o; i++)
+ Me.call(a, (e = '[[' + n[i] + ']]')) &&
+ (t[n[i]] = {
+ value: a[e],
+ writable: !0,
+ configurable: !0,
+ enumerable: !0,
+ });
+ return Re({}, t);
+ },
+ });
+ var hr =
+ /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g,
+ pr = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+ yr = /[rqQASjJgwWIQq]/,
+ br = ['era', 'year', 'month', 'day', 'weekday', 'quarter'],
+ wr = ['hour', 'minute', 'second', 'hour12', 'timeZoneName'],
+ xr = {
+ second: {
+ numeric: 's',
+ '2-digit': 'ss',
+ },
+ minute: {
+ numeric: 'm',
+ '2-digit': 'mm',
+ },
+ year: {
+ numeric: 'y',
+ '2-digit': 'yy',
+ },
+ day: {
+ numeric: 'd',
+ '2-digit': 'dd',
+ },
+ month: {
+ numeric: 'L',
+ '2-digit': 'LL',
+ narrow: 'LLLLL',
+ short: 'LLL',
+ long: 'LLLL',
+ },
+ weekday: {
+ narrow: 'ccccc',
+ short: 'ccc',
+ long: 'cccc',
+ },
+ },
+ jr = Re(null, {
+ narrow: {},
+ short: {},
+ long: {},
+ });
+ Ie(mr, 'DateTimeFormat', {
+ configurable: !0,
+ writable: !0,
+ value: $,
+ }),
+ Ie($, 'prototype', {
+ writable: !1,
+ });
+ var Dr = {
+ weekday: ['narrow', 'short', 'long'],
+ era: ['narrow', 'short', 'long'],
+ year: ['2-digit', 'numeric'],
+ month: ['2-digit', 'numeric', 'narrow', 'short', 'long'],
+ day: ['2-digit', 'numeric'],
+ hour: ['2-digit', 'numeric'],
+ minute: ['2-digit', 'numeric'],
+ second: ['2-digit', 'numeric'],
+ timeZoneName: ['short', 'long'],
+ };
+ ($e.DateTimeFormat = {
+ '[[availableLocales]]': [],
+ '[[relevantExtensionKeys]]': ['ca', 'nu'],
+ '[[localeData]]': {},
+ }),
+ Ie(mr.DateTimeFormat, 'supportedLocalesOf', {
+ configurable: !0,
+ writable: !0,
+ value: Ue.call(function (e) {
+ if (!Me.call(this, '[[availableLocales]]'))
+ throw new TypeError(
+ 'supportedLocalesOf() is not a constructor',
+ );
+ var r = n(),
+ t = arguments[1],
+ a = this['[[availableLocales]]'],
+ i = d(e);
+ return r(), j(a, i, t);
+ }, $e.NumberFormat),
+ }),
+ Ie(mr.DateTimeFormat.prototype, 'format', {
+ configurable: !0,
+ get: V,
+ }),
+ Object.defineProperty(
+ mr.DateTimeFormat.prototype,
+ 'formatToParts',
+ {
+ enumerable: !1,
+ writable: !0,
+ configurable: !0,
+ value: J,
+ },
+ ),
+ Ie(mr.DateTimeFormat.prototype, 'resolvedOptions', {
+ writable: !0,
+ configurable: !0,
+ value: function () {
+ var e = void 0,
+ t = new r(),
+ n = [
+ 'locale',
+ 'calendar',
+ 'numberingSystem',
+ 'timeZone',
+ 'hour12',
+ 'weekday',
+ 'era',
+ 'year',
+ 'month',
+ 'day',
+ 'hour',
+ 'minute',
+ 'second',
+ 'timeZoneName',
+ ],
+ a =
+ null !== this &&
+ 'object' === Ne.typeof(this) &&
+ l(this);
+ if (!a || !a['[[initializedDateTimeFormat]]'])
+ throw new TypeError(
+ '`this` value for resolvedOptions() is not an initialized Intl.DateTimeFormat object.',
+ );
+ for (var i = 0, o = n.length; i < o; i++)
+ Me.call(a, (e = '[[' + n[i] + ']]')) &&
+ (t[n[i]] = {
+ value: a[e],
+ writable: !0,
+ configurable: !0,
+ enumerable: !0,
+ });
+ return Re({}, t);
+ },
+ });
+ var zr = (mr.__localeSensitiveProtos = {
+ Number: {},
+ Date: {},
+ });
+ if (
+ ((zr.Number.toLocaleString = function () {
+ if ('[object Number]' !== Object.prototype.toString.call(this))
+ throw new TypeError(
+ '`this` value must be a number for Number.prototype.toLocaleString()',
+ );
+ return T(new O(arguments[0], arguments[1]), this);
+ }),
+ (zr.Date.toLocaleString = function () {
+ if ('[object Date]' !== Object.prototype.toString.call(this))
+ throw new TypeError(
+ '`this` value must be a Date instance for Date.prototype.toLocaleString()',
+ );
+ var e = +this;
+ if (isNaN(e)) return 'Invalid Date';
+ var r = arguments[0],
+ t = arguments[1];
+ t = H(t, 'any', 'all');
+ var n = new $(r, t);
+ return ee(n, e);
+ }),
+ (zr.Date.toLocaleDateString = function () {
+ if ('[object Date]' !== Object.prototype.toString.call(this))
+ throw new TypeError(
+ '`this` value must be a Date instance for Date.prototype.toLocaleDateString()',
+ );
+ var e = +this;
+ if (isNaN(e)) return 'Invalid Date';
+ var r = arguments[0],
+ t = arguments[1];
+ t = H(t, 'date', 'date');
+ var n = new $(r, t);
+ return ee(n, e);
+ }),
+ (zr.Date.toLocaleTimeString = function () {
+ if ('[object Date]' !== Object.prototype.toString.call(this))
+ throw new TypeError(
+ '`this` value must be a Date instance for Date.prototype.toLocaleTimeString()',
+ );
+ var e = +this;
+ if (isNaN(e)) return 'Invalid Date';
+ var r = arguments[0],
+ t = arguments[1];
+ t = H(t, 'time', 'time');
+ var n = new $(r, t);
+ return ee(n, e);
+ }),
+ Ie(mr, '__applyLocaleSensitivePrototypes', {
+ writable: !0,
+ configurable: !0,
+ value: function () {
+ Ie(Number.prototype, 'toLocaleString', {
+ writable: !0,
+ configurable: !0,
+ value: zr.Number.toLocaleString,
+ }),
+ Ie(Date.prototype, 'toLocaleString', {
+ writable: !0,
+ configurable: !0,
+ value: zr.Date.toLocaleString,
+ });
+ for (var e in zr.Date)
+ Me.call(zr.Date, e) &&
+ Ie(Date.prototype, e, {
+ writable: !0,
+ configurable: !0,
+ value: zr.Date[e],
+ });
+ },
+ }),
+ Ie(mr, '__addLocaleData', {
+ value: function (e) {
+ if (!g(e.locale))
+ throw new Error(
+ "Object passed doesn't identify itself with a valid language tag",
+ );
+ ne(e, e.locale);
+ },
+ }),
+ Ie(mr, '__disableRegExpRestore', {
+ value: function () {
+ $e.disableRegExpRestore = !0;
+ },
+ }),
+ 'undefined' == typeof Intl)
+ )
+ try {
+ (window.Intl = mr), mr.__applyLocaleSensitivePrototypes();
+ } catch (e) {}
+ return mr;
+ });
+
+ // Intl.~locale.en-US
+ IntlPolyfill.__addLocaleData({
+ locale: 'en-US',
+ date: {
+ ca: [
+ 'gregory',
+ 'buddhist',
+ 'chinese',
+ 'coptic',
+ 'dangi',
+ 'ethioaa',
+ 'ethiopic',
+ 'generic',
+ 'hebrew',
+ 'indian',
+ 'islamic',
+ 'islamicc',
+ 'japanese',
+ 'persian',
+ 'roc',
+ ],
+ hourNo0: true,
+ hour12: true,
+ formats: {
+ short: '{1}, {0}',
+ medium: '{1}, {0}',
+ full: "{1} 'at' {0}",
+ long: "{1} 'at' {0}",
+ availableFormats: {
+ d: 'd',
+ E: 'ccc',
+ Ed: 'd E',
+ Ehm: 'E h:mm a',
+ EHm: 'E HH:mm',
+ Ehms: 'E h:mm:ss a',
+ EHms: 'E HH:mm:ss',
+ Gy: 'y G',
+ GyMMM: 'MMM y G',
+ GyMMMd: 'MMM d, y G',
+ GyMMMEd: 'E, MMM d, y G',
+ h: 'h a',
+ H: 'HH',
+ hm: 'h:mm a',
+ Hm: 'HH:mm',
+ hms: 'h:mm:ss a',
+ Hms: 'HH:mm:ss',
+ hmsv: 'h:mm:ss a v',
+ Hmsv: 'HH:mm:ss v',
+ hmv: 'h:mm a v',
+ Hmv: 'HH:mm v',
+ M: 'L',
+ Md: 'M/d',
+ MEd: 'E, M/d',
+ MMM: 'LLL',
+ MMMd: 'MMM d',
+ MMMEd: 'E, MMM d',
+ MMMMd: 'MMMM d',
+ ms: 'mm:ss',
+ y: 'y',
+ yM: 'M/y',
+ yMd: 'M/d/y',
+ yMEd: 'E, M/d/y',
+ yMMM: 'MMM y',
+ yMMMd: 'MMM d, y',
+ yMMMEd: 'E, MMM d, y',
+ yMMMM: 'MMMM y',
+ yQQQ: 'QQQ y',
+ yQQQQ: 'QQQQ y',
+ },
+ dateFormats: {
+ yMMMMEEEEd: 'EEEE, MMMM d, y',
+ yMMMMd: 'MMMM d, y',
+ yMMMd: 'MMM d, y',
+ yMd: 'M/d/yy',
+ },
+ timeFormats: {
+ hmmsszzzz: 'h:mm:ss a zzzz',
+ hmsz: 'h:mm:ss a z',
+ hms: 'h:mm:ss a',
+ hm: 'h:mm a',
+ },
+ },
+ calendars: {
+ buddhist: {
+ months: {
+ narrow: [
+ 'J',
+ 'F',
+ 'M',
+ 'A',
+ 'M',
+ 'J',
+ 'J',
+ 'A',
+ 'S',
+ 'O',
+ 'N',
+ 'D',
+ ],
+ short: [
+ 'Jan',
+ 'Feb',
+ 'Mar',
+ 'Apr',
+ 'May',
+ 'Jun',
+ 'Jul',
+ 'Aug',
+ 'Sep',
+ 'Oct',
+ 'Nov',
+ 'Dec',
+ ],
+ long: [
+ 'January',
+ 'February',
+ 'March',
+ 'April',
+ 'May',
+ 'June',
+ 'July',
+ 'August',
+ 'September',
+ 'October',
+ 'November',
+ 'December',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['BE'],
+ short: ['BE'],
+ long: ['BE'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ chinese: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Mo1',
+ 'Mo2',
+ 'Mo3',
+ 'Mo4',
+ 'Mo5',
+ 'Mo6',
+ 'Mo7',
+ 'Mo8',
+ 'Mo9',
+ 'Mo10',
+ 'Mo11',
+ 'Mo12',
+ ],
+ long: [
+ 'Month1',
+ 'Month2',
+ 'Month3',
+ 'Month4',
+ 'Month5',
+ 'Month6',
+ 'Month7',
+ 'Month8',
+ 'Month9',
+ 'Month10',
+ 'Month11',
+ 'Month12',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ coptic: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ ],
+ short: [
+ 'Tout',
+ 'Baba',
+ 'Hator',
+ 'Kiahk',
+ 'Toba',
+ 'Amshir',
+ 'Baramhat',
+ 'Baramouda',
+ 'Bashans',
+ 'Paona',
+ 'Epep',
+ 'Mesra',
+ 'Nasie',
+ ],
+ long: [
+ 'Tout',
+ 'Baba',
+ 'Hator',
+ 'Kiahk',
+ 'Toba',
+ 'Amshir',
+ 'Baramhat',
+ 'Baramouda',
+ 'Bashans',
+ 'Paona',
+ 'Epep',
+ 'Mesra',
+ 'Nasie',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['ERA0', 'ERA1'],
+ short: ['ERA0', 'ERA1'],
+ long: ['ERA0', 'ERA1'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ dangi: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Mo1',
+ 'Mo2',
+ 'Mo3',
+ 'Mo4',
+ 'Mo5',
+ 'Mo6',
+ 'Mo7',
+ 'Mo8',
+ 'Mo9',
+ 'Mo10',
+ 'Mo11',
+ 'Mo12',
+ ],
+ long: [
+ 'Month1',
+ 'Month2',
+ 'Month3',
+ 'Month4',
+ 'Month5',
+ 'Month6',
+ 'Month7',
+ 'Month8',
+ 'Month9',
+ 'Month10',
+ 'Month11',
+ 'Month12',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ ethiopic: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ ],
+ short: [
+ 'Meskerem',
+ 'Tekemt',
+ 'Hedar',
+ 'Tahsas',
+ 'Ter',
+ 'Yekatit',
+ 'Megabit',
+ 'Miazia',
+ 'Genbot',
+ 'Sene',
+ 'Hamle',
+ 'Nehasse',
+ 'Pagumen',
+ ],
+ long: [
+ 'Meskerem',
+ 'Tekemt',
+ 'Hedar',
+ 'Tahsas',
+ 'Ter',
+ 'Yekatit',
+ 'Megabit',
+ 'Miazia',
+ 'Genbot',
+ 'Sene',
+ 'Hamle',
+ 'Nehasse',
+ 'Pagumen',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['ERA0', 'ERA1'],
+ short: ['ERA0', 'ERA1'],
+ long: ['ERA0', 'ERA1'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ ethioaa: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ ],
+ short: [
+ 'Meskerem',
+ 'Tekemt',
+ 'Hedar',
+ 'Tahsas',
+ 'Ter',
+ 'Yekatit',
+ 'Megabit',
+ 'Miazia',
+ 'Genbot',
+ 'Sene',
+ 'Hamle',
+ 'Nehasse',
+ 'Pagumen',
+ ],
+ long: [
+ 'Meskerem',
+ 'Tekemt',
+ 'Hedar',
+ 'Tahsas',
+ 'Ter',
+ 'Yekatit',
+ 'Megabit',
+ 'Miazia',
+ 'Genbot',
+ 'Sene',
+ 'Hamle',
+ 'Nehasse',
+ 'Pagumen',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['ERA0'],
+ short: ['ERA0'],
+ long: ['ERA0'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ generic: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'M01',
+ 'M02',
+ 'M03',
+ 'M04',
+ 'M05',
+ 'M06',
+ 'M07',
+ 'M08',
+ 'M09',
+ 'M10',
+ 'M11',
+ 'M12',
+ ],
+ long: [
+ 'M01',
+ 'M02',
+ 'M03',
+ 'M04',
+ 'M05',
+ 'M06',
+ 'M07',
+ 'M08',
+ 'M09',
+ 'M10',
+ 'M11',
+ 'M12',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['ERA0', 'ERA1'],
+ short: ['ERA0', 'ERA1'],
+ long: ['ERA0', 'ERA1'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ gregory: {
+ months: {
+ narrow: [
+ 'J',
+ 'F',
+ 'M',
+ 'A',
+ 'M',
+ 'J',
+ 'J',
+ 'A',
+ 'S',
+ 'O',
+ 'N',
+ 'D',
+ ],
+ short: [
+ 'Jan',
+ 'Feb',
+ 'Mar',
+ 'Apr',
+ 'May',
+ 'Jun',
+ 'Jul',
+ 'Aug',
+ 'Sep',
+ 'Oct',
+ 'Nov',
+ 'Dec',
+ ],
+ long: [
+ 'January',
+ 'February',
+ 'March',
+ 'April',
+ 'May',
+ 'June',
+ 'July',
+ 'August',
+ 'September',
+ 'October',
+ 'November',
+ 'December',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['B', 'A', 'BCE', 'CE'],
+ short: ['BC', 'AD', 'BCE', 'CE'],
+ long: [
+ 'Before Christ',
+ 'Anno Domini',
+ 'Before Common Era',
+ 'Common Era',
+ ],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ hebrew: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ '7',
+ ],
+ short: [
+ 'Tishri',
+ 'Heshvan',
+ 'Kislev',
+ 'Tevet',
+ 'Shevat',
+ 'Adar I',
+ 'Adar',
+ 'Nisan',
+ 'Iyar',
+ 'Sivan',
+ 'Tamuz',
+ 'Av',
+ 'Elul',
+ 'Adar II',
+ ],
+ long: [
+ 'Tishri',
+ 'Heshvan',
+ 'Kislev',
+ 'Tevet',
+ 'Shevat',
+ 'Adar I',
+ 'Adar',
+ 'Nisan',
+ 'Iyar',
+ 'Sivan',
+ 'Tamuz',
+ 'Av',
+ 'Elul',
+ 'Adar II',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['AM'],
+ short: ['AM'],
+ long: ['AM'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ indian: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Chaitra',
+ 'Vaisakha',
+ 'Jyaistha',
+ 'Asadha',
+ 'Sravana',
+ 'Bhadra',
+ 'Asvina',
+ 'Kartika',
+ 'Agrahayana',
+ 'Pausa',
+ 'Magha',
+ 'Phalguna',
+ ],
+ long: [
+ 'Chaitra',
+ 'Vaisakha',
+ 'Jyaistha',
+ 'Asadha',
+ 'Sravana',
+ 'Bhadra',
+ 'Asvina',
+ 'Kartika',
+ 'Agrahayana',
+ 'Pausa',
+ 'Magha',
+ 'Phalguna',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['Saka'],
+ short: ['Saka'],
+ long: ['Saka'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ islamic: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Muh.',
+ 'Saf.',
+ 'Rab. I',
+ 'Rab. II',
+ 'Jum. I',
+ 'Jum. II',
+ 'Raj.',
+ 'Sha.',
+ 'Ram.',
+ 'Shaw.',
+ 'Dhuʻl-Q.',
+ 'Dhuʻl-H.',
+ ],
+ long: [
+ 'Muharram',
+ 'Safar',
+ 'Rabiʻ I',
+ 'Rabiʻ II',
+ 'Jumada I',
+ 'Jumada II',
+ 'Rajab',
+ 'Shaʻban',
+ 'Ramadan',
+ 'Shawwal',
+ 'Dhuʻl-Qiʻdah',
+ 'Dhuʻl-Hijjah',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['AH'],
+ short: ['AH'],
+ long: ['AH'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ islamicc: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Muh.',
+ 'Saf.',
+ 'Rab. I',
+ 'Rab. II',
+ 'Jum. I',
+ 'Jum. II',
+ 'Raj.',
+ 'Sha.',
+ 'Ram.',
+ 'Shaw.',
+ 'Dhuʻl-Q.',
+ 'Dhuʻl-H.',
+ ],
+ long: [
+ 'Muharram',
+ 'Safar',
+ 'Rabiʻ I',
+ 'Rabiʻ II',
+ 'Jumada I',
+ 'Jumada II',
+ 'Rajab',
+ 'Shaʻban',
+ 'Ramadan',
+ 'Shawwal',
+ 'Dhuʻl-Qiʻdah',
+ 'Dhuʻl-Hijjah',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['AH'],
+ short: ['AH'],
+ long: ['AH'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ japanese: {
+ months: {
+ narrow: [
+ 'J',
+ 'F',
+ 'M',
+ 'A',
+ 'M',
+ 'J',
+ 'J',
+ 'A',
+ 'S',
+ 'O',
+ 'N',
+ 'D',
+ ],
+ short: [
+ 'Jan',
+ 'Feb',
+ 'Mar',
+ 'Apr',
+ 'May',
+ 'Jun',
+ 'Jul',
+ 'Aug',
+ 'Sep',
+ 'Oct',
+ 'Nov',
+ 'Dec',
+ ],
+ long: [
+ 'January',
+ 'February',
+ 'March',
+ 'April',
+ 'May',
+ 'June',
+ 'July',
+ 'August',
+ 'September',
+ 'October',
+ 'November',
+ 'December',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: [
+ 'Taika (645–650)',
+ 'Hakuchi (650–671)',
+ 'Hakuhō (672–686)',
+ 'Shuchō (686–701)',
+ 'Taihō (701–704)',
+ 'Keiun (704–708)',
+ 'Wadō (708–715)',
+ 'Reiki (715–717)',
+ 'Yōrō (717–724)',
+ 'Jinki (724–729)',
+ 'Tenpyō (729–749)',
+ 'Tenpyō-kampō (749-749)',
+ 'Tenpyō-shōhō (749-757)',
+ 'Tenpyō-hōji (757-765)',
+ 'Tenpyō-jingo (765-767)',
+ 'Jingo-keiun (767-770)',
+ 'Hōki (770–780)',
+ 'Ten-ō (781-782)',
+ 'Enryaku (782–806)',
+ 'Daidō (806–810)',
+ 'Kōnin (810–824)',
+ 'Tenchō (824–834)',
+ 'Jōwa (834–848)',
+ 'Kajō (848–851)',
+ 'Ninju (851–854)',
+ 'Saikō (854–857)',
+ 'Ten-an (857-859)',
+ 'Jōgan (859–877)',
+ 'Gangyō (877–885)',
+ 'Ninna (885–889)',
+ 'Kanpyō (889–898)',
+ 'Shōtai (898–901)',
+ 'Engi (901–923)',
+ 'Enchō (923–931)',
+ 'Jōhei (931–938)',
+ 'Tengyō (938–947)',
+ 'Tenryaku (947–957)',
+ 'Tentoku (957–961)',
+ 'Ōwa (961–964)',
+ 'Kōhō (964–968)',
+ 'Anna (968–970)',
+ 'Tenroku (970–973)',
+ 'Ten’en (973–976)',
+ 'Jōgen (976–978)',
+ 'Tengen (978–983)',
+ 'Eikan (983–985)',
+ 'Kanna (985–987)',
+ 'Eien (987–989)',
+ 'Eiso (989–990)',
+ 'Shōryaku (990–995)',
+ 'Chōtoku (995–999)',
+ 'Chōhō (999–1004)',
+ 'Kankō (1004–1012)',
+ 'Chōwa (1012–1017)',
+ 'Kannin (1017–1021)',
+ 'Jian (1021–1024)',
+ 'Manju (1024–1028)',
+ 'Chōgen (1028–1037)',
+ 'Chōryaku (1037–1040)',
+ 'Chōkyū (1040–1044)',
+ 'Kantoku (1044–1046)',
+ 'Eishō (1046–1053)',
+ 'Tengi (1053–1058)',
+ 'Kōhei (1058–1065)',
+ 'Jiryaku (1065–1069)',
+ 'Enkyū (1069–1074)',
+ 'Shōho (1074–1077)',
+ 'Shōryaku (1077–1081)',
+ 'Eihō (1081–1084)',
+ 'Ōtoku (1084–1087)',
+ 'Kanji (1087–1094)',
+ 'Kahō (1094–1096)',
+ 'Eichō (1096–1097)',
+ 'Jōtoku (1097–1099)',
+ 'Kōwa (1099–1104)',
+ 'Chōji (1104–1106)',
+ 'Kashō (1106–1108)',
+ 'Tennin (1108–1110)',
+ 'Ten-ei (1110-1113)',
+ 'Eikyū (1113–1118)',
+ 'Gen’ei (1118–1120)',
+ 'Hōan (1120–1124)',
+ 'Tenji (1124–1126)',
+ 'Daiji (1126–1131)',
+ 'Tenshō (1131–1132)',
+ 'Chōshō (1132–1135)',
+ 'Hōen (1135–1141)',
+ 'Eiji (1141–1142)',
+ 'Kōji (1142–1144)',
+ 'Ten’yō (1144–1145)',
+ 'Kyūan (1145–1151)',
+ 'Ninpei (1151–1154)',
+ 'Kyūju (1154–1156)',
+ 'Hōgen (1156–1159)',
+ 'Heiji (1159–1160)',
+ 'Eiryaku (1160–1161)',
+ 'Ōho (1161–1163)',
+ 'Chōkan (1163–1165)',
+ 'Eiman (1165–1166)',
+ 'Nin’an (1166–1169)',
+ 'Kaō (1169–1171)',
+ 'Shōan (1171–1175)',
+ 'Angen (1175–1177)',
+ 'Jishō (1177–1181)',
+ 'Yōwa (1181–1182)',
+ 'Juei (1182–1184)',
+ 'Genryaku (1184–1185)',
+ 'Bunji (1185–1190)',
+ 'Kenkyū (1190–1199)',
+ 'Shōji (1199–1201)',
+ 'Kennin (1201–1204)',
+ 'Genkyū (1204–1206)',
+ 'Ken’ei (1206–1207)',
+ 'Jōgen (1207–1211)',
+ 'Kenryaku (1211–1213)',
+ 'Kenpō (1213–1219)',
+ 'Jōkyū (1219–1222)',
+ 'Jōō (1222–1224)',
+ 'Gennin (1224–1225)',
+ 'Karoku (1225–1227)',
+ 'Antei (1227–1229)',
+ 'Kanki (1229–1232)',
+ 'Jōei (1232–1233)',
+ 'Tenpuku (1233–1234)',
+ 'Bunryaku (1234–1235)',
+ 'Katei (1235–1238)',
+ 'Ryakunin (1238–1239)',
+ 'En’ō (1239–1240)',
+ 'Ninji (1240–1243)',
+ 'Kangen (1243–1247)',
+ 'Hōji (1247–1249)',
+ 'Kenchō (1249–1256)',
+ 'Kōgen (1256–1257)',
+ 'Shōka (1257–1259)',
+ 'Shōgen (1259–1260)',
+ 'Bun’ō (1260–1261)',
+ 'Kōchō (1261–1264)',
+ 'Bun’ei (1264–1275)',
+ 'Kenji (1275–1278)',
+ 'Kōan (1278–1288)',
+ 'Shōō (1288–1293)',
+ 'Einin (1293–1299)',
+ 'Shōan (1299–1302)',
+ 'Kengen (1302–1303)',
+ 'Kagen (1303–1306)',
+ 'Tokuji (1306–1308)',
+ 'Enkyō (1308–1311)',
+ 'Ōchō (1311–1312)',
+ 'Shōwa (1312–1317)',
+ 'Bunpō (1317–1319)',
+ 'Genō (1319–1321)',
+ 'Genkō (1321–1324)',
+ 'Shōchū (1324–1326)',
+ 'Karyaku (1326–1329)',
+ 'Gentoku (1329–1331)',
+ 'Genkō (1331–1334)',
+ 'Kenmu (1334–1336)',
+ 'Engen (1336–1340)',
+ 'Kōkoku (1340–1346)',
+ 'Shōhei (1346–1370)',
+ 'Kentoku (1370–1372)',
+ 'Bunchū (1372–1375)',
+ 'Tenju (1375–1379)',
+ 'Kōryaku (1379–1381)',
+ 'Kōwa (1381–1384)',
+ 'Genchū (1384–1392)',
+ 'Meitoku (1384–1387)',
+ 'Kakei (1387–1389)',
+ 'Kōō (1389–1390)',
+ 'Meitoku (1390–1394)',
+ 'Ōei (1394–1428)',
+ 'Shōchō (1428–1429)',
+ 'Eikyō (1429–1441)',
+ 'Kakitsu (1441–1444)',
+ 'Bun’an (1444–1449)',
+ 'Hōtoku (1449–1452)',
+ 'Kyōtoku (1452–1455)',
+ 'Kōshō (1455–1457)',
+ 'Chōroku (1457–1460)',
+ 'Kanshō (1460–1466)',
+ 'Bunshō (1466–1467)',
+ 'Ōnin (1467–1469)',
+ 'Bunmei (1469–1487)',
+ 'Chōkyō (1487–1489)',
+ 'Entoku (1489–1492)',
+ 'Meiō (1492–1501)',
+ 'Bunki (1501–1504)',
+ 'Eishō (1504–1521)',
+ 'Taiei (1521–1528)',
+ 'Kyōroku (1528–1532)',
+ 'Tenbun (1532–1555)',
+ 'Kōji (1555–1558)',
+ 'Eiroku (1558–1570)',
+ 'Genki (1570–1573)',
+ 'Tenshō (1573–1592)',
+ 'Bunroku (1592–1596)',
+ 'Keichō (1596–1615)',
+ 'Genna (1615–1624)',
+ 'Kan’ei (1624–1644)',
+ 'Shōho (1644–1648)',
+ 'Keian (1648–1652)',
+ 'Jōō (1652–1655)',
+ 'Meireki (1655–1658)',
+ 'Manji (1658–1661)',
+ 'Kanbun (1661–1673)',
+ 'Enpō (1673–1681)',
+ 'Tenna (1681–1684)',
+ 'Jōkyō (1684–1688)',
+ 'Genroku (1688–1704)',
+ 'Hōei (1704–1711)',
+ 'Shōtoku (1711–1716)',
+ 'Kyōhō (1716–1736)',
+ 'Genbun (1736–1741)',
+ 'Kanpō (1741–1744)',
+ 'Enkyō (1744–1748)',
+ 'Kan’en (1748–1751)',
+ 'Hōreki (1751–1764)',
+ 'Meiwa (1764–1772)',
+ 'An’ei (1772–1781)',
+ 'Tenmei (1781–1789)',
+ 'Kansei (1789–1801)',
+ 'Kyōwa (1801–1804)',
+ 'Bunka (1804–1818)',
+ 'Bunsei (1818–1830)',
+ 'Tenpō (1830–1844)',
+ 'Kōka (1844–1848)',
+ 'Kaei (1848–1854)',
+ 'Ansei (1854–1860)',
+ 'Man’en (1860–1861)',
+ 'Bunkyū (1861–1864)',
+ 'Genji (1864–1865)',
+ 'Keiō (1865–1868)',
+ 'M',
+ 'T',
+ 'S',
+ 'H',
+ ],
+ short: [
+ 'Taika (645–650)',
+ 'Hakuchi (650–671)',
+ 'Hakuhō (672–686)',
+ 'Shuchō (686–701)',
+ 'Taihō (701–704)',
+ 'Keiun (704–708)',
+ 'Wadō (708–715)',
+ 'Reiki (715–717)',
+ 'Yōrō (717–724)',
+ 'Jinki (724–729)',
+ 'Tenpyō (729–749)',
+ 'Tenpyō-kampō (749-749)',
+ 'Tenpyō-shōhō (749-757)',
+ 'Tenpyō-hōji (757-765)',
+ 'Tenpyō-jingo (765-767)',
+ 'Jingo-keiun (767-770)',
+ 'Hōki (770–780)',
+ 'Ten-ō (781-782)',
+ 'Enryaku (782–806)',
+ 'Daidō (806–810)',
+ 'Kōnin (810–824)',
+ 'Tenchō (824–834)',
+ 'Jōwa (834–848)',
+ 'Kajō (848–851)',
+ 'Ninju (851–854)',
+ 'Saikō (854–857)',
+ 'Ten-an (857-859)',
+ 'Jōgan (859–877)',
+ 'Gangyō (877–885)',
+ 'Ninna (885–889)',
+ 'Kanpyō (889–898)',
+ 'Shōtai (898–901)',
+ 'Engi (901–923)',
+ 'Enchō (923–931)',
+ 'Jōhei (931–938)',
+ 'Tengyō (938–947)',
+ 'Tenryaku (947–957)',
+ 'Tentoku (957–961)',
+ 'Ōwa (961–964)',
+ 'Kōhō (964–968)',
+ 'Anna (968–970)',
+ 'Tenroku (970–973)',
+ 'Ten’en (973–976)',
+ 'Jōgen (976–978)',
+ 'Tengen (978–983)',
+ 'Eikan (983–985)',
+ 'Kanna (985–987)',
+ 'Eien (987–989)',
+ 'Eiso (989–990)',
+ 'Shōryaku (990–995)',
+ 'Chōtoku (995–999)',
+ 'Chōhō (999–1004)',
+ 'Kankō (1004–1012)',
+ 'Chōwa (1012–1017)',
+ 'Kannin (1017–1021)',
+ 'Jian (1021–1024)',
+ 'Manju (1024–1028)',
+ 'Chōgen (1028–1037)',
+ 'Chōryaku (1037–1040)',
+ 'Chōkyū (1040–1044)',
+ 'Kantoku (1044–1046)',
+ 'Eishō (1046–1053)',
+ 'Tengi (1053–1058)',
+ 'Kōhei (1058–1065)',
+ 'Jiryaku (1065–1069)',
+ 'Enkyū (1069–1074)',
+ 'Shōho (1074–1077)',
+ 'Shōryaku (1077–1081)',
+ 'Eihō (1081–1084)',
+ 'Ōtoku (1084–1087)',
+ 'Kanji (1087–1094)',
+ 'Kahō (1094–1096)',
+ 'Eichō (1096–1097)',
+ 'Jōtoku (1097–1099)',
+ 'Kōwa (1099–1104)',
+ 'Chōji (1104–1106)',
+ 'Kashō (1106–1108)',
+ 'Tennin (1108–1110)',
+ 'Ten-ei (1110-1113)',
+ 'Eikyū (1113–1118)',
+ 'Gen’ei (1118–1120)',
+ 'Hōan (1120–1124)',
+ 'Tenji (1124–1126)',
+ 'Daiji (1126–1131)',
+ 'Tenshō (1131–1132)',
+ 'Chōshō (1132–1135)',
+ 'Hōen (1135–1141)',
+ 'Eiji (1141–1142)',
+ 'Kōji (1142–1144)',
+ 'Ten’yō (1144–1145)',
+ 'Kyūan (1145–1151)',
+ 'Ninpei (1151–1154)',
+ 'Kyūju (1154–1156)',
+ 'Hōgen (1156–1159)',
+ 'Heiji (1159–1160)',
+ 'Eiryaku (1160–1161)',
+ 'Ōho (1161–1163)',
+ 'Chōkan (1163–1165)',
+ 'Eiman (1165–1166)',
+ 'Nin’an (1166–1169)',
+ 'Kaō (1169–1171)',
+ 'Shōan (1171–1175)',
+ 'Angen (1175–1177)',
+ 'Jishō (1177–1181)',
+ 'Yōwa (1181–1182)',
+ 'Juei (1182–1184)',
+ 'Genryaku (1184–1185)',
+ 'Bunji (1185–1190)',
+ 'Kenkyū (1190–1199)',
+ 'Shōji (1199–1201)',
+ 'Kennin (1201–1204)',
+ 'Genkyū (1204–1206)',
+ 'Ken’ei (1206–1207)',
+ 'Jōgen (1207–1211)',
+ 'Kenryaku (1211–1213)',
+ 'Kenpō (1213–1219)',
+ 'Jōkyū (1219–1222)',
+ 'Jōō (1222–1224)',
+ 'Gennin (1224–1225)',
+ 'Karoku (1225–1227)',
+ 'Antei (1227–1229)',
+ 'Kanki (1229–1232)',
+ 'Jōei (1232–1233)',
+ 'Tenpuku (1233–1234)',
+ 'Bunryaku (1234–1235)',
+ 'Katei (1235–1238)',
+ 'Ryakunin (1238–1239)',
+ 'En’ō (1239–1240)',
+ 'Ninji (1240–1243)',
+ 'Kangen (1243–1247)',
+ 'Hōji (1247–1249)',
+ 'Kenchō (1249–1256)',
+ 'Kōgen (1256–1257)',
+ 'Shōka (1257–1259)',
+ 'Shōgen (1259–1260)',
+ 'Bun’ō (1260–1261)',
+ 'Kōchō (1261–1264)',
+ 'Bun’ei (1264–1275)',
+ 'Kenji (1275–1278)',
+ 'Kōan (1278–1288)',
+ 'Shōō (1288–1293)',
+ 'Einin (1293–1299)',
+ 'Shōan (1299–1302)',
+ 'Kengen (1302–1303)',
+ 'Kagen (1303–1306)',
+ 'Tokuji (1306–1308)',
+ 'Enkyō (1308–1311)',
+ 'Ōchō (1311–1312)',
+ 'Shōwa (1312–1317)',
+ 'Bunpō (1317–1319)',
+ 'Genō (1319–1321)',
+ 'Genkō (1321–1324)',
+ 'Shōchū (1324–1326)',
+ 'Karyaku (1326–1329)',
+ 'Gentoku (1329–1331)',
+ 'Genkō (1331–1334)',
+ 'Kenmu (1334–1336)',
+ 'Engen (1336–1340)',
+ 'Kōkoku (1340–1346)',
+ 'Shōhei (1346–1370)',
+ 'Kentoku (1370–1372)',
+ 'Bunchū (1372–1375)',
+ 'Tenju (1375–1379)',
+ 'Kōryaku (1379–1381)',
+ 'Kōwa (1381–1384)',
+ 'Genchū (1384–1392)',
+ 'Meitoku (1384–1387)',
+ 'Kakei (1387–1389)',
+ 'Kōō (1389–1390)',
+ 'Meitoku (1390–1394)',
+ 'Ōei (1394–1428)',
+ 'Shōchō (1428–1429)',
+ 'Eikyō (1429–1441)',
+ 'Kakitsu (1441–1444)',
+ 'Bun’an (1444–1449)',
+ 'Hōtoku (1449–1452)',
+ 'Kyōtoku (1452–1455)',
+ 'Kōshō (1455–1457)',
+ 'Chōroku (1457–1460)',
+ 'Kanshō (1460–1466)',
+ 'Bunshō (1466–1467)',
+ 'Ōnin (1467–1469)',
+ 'Bunmei (1469–1487)',
+ 'Chōkyō (1487–1489)',
+ 'Entoku (1489–1492)',
+ 'Meiō (1492–1501)',
+ 'Bunki (1501–1504)',
+ 'Eishō (1504–1521)',
+ 'Taiei (1521–1528)',
+ 'Kyōroku (1528–1532)',
+ 'Tenbun (1532–1555)',
+ 'Kōji (1555–1558)',
+ 'Eiroku (1558–1570)',
+ 'Genki (1570–1573)',
+ 'Tenshō (1573–1592)',
+ 'Bunroku (1592–1596)',
+ 'Keichō (1596–1615)',
+ 'Genna (1615–1624)',
+ 'Kan’ei (1624–1644)',
+ 'Shōho (1644–1648)',
+ 'Keian (1648–1652)',
+ 'Jōō (1652–1655)',
+ 'Meireki (1655–1658)',
+ 'Manji (1658–1661)',
+ 'Kanbun (1661–1673)',
+ 'Enpō (1673–1681)',
+ 'Tenna (1681–1684)',
+ 'Jōkyō (1684–1688)',
+ 'Genroku (1688–1704)',
+ 'Hōei (1704–1711)',
+ 'Shōtoku (1711–1716)',
+ 'Kyōhō (1716–1736)',
+ 'Genbun (1736–1741)',
+ 'Kanpō (1741–1744)',
+ 'Enkyō (1744–1748)',
+ 'Kan’en (1748–1751)',
+ 'Hōreki (1751–1764)',
+ 'Meiwa (1764–1772)',
+ 'An’ei (1772–1781)',
+ 'Tenmei (1781–1789)',
+ 'Kansei (1789–1801)',
+ 'Kyōwa (1801–1804)',
+ 'Bunka (1804–1818)',
+ 'Bunsei (1818–1830)',
+ 'Tenpō (1830–1844)',
+ 'Kōka (1844–1848)',
+ 'Kaei (1848–1854)',
+ 'Ansei (1854–1860)',
+ 'Man’en (1860–1861)',
+ 'Bunkyū (1861–1864)',
+ 'Genji (1864–1865)',
+ 'Keiō (1865–1868)',
+ 'Meiji',
+ 'Taishō',
+ 'Shōwa',
+ 'Heisei',
+ ],
+ long: [
+ 'Taika (645–650)',
+ 'Hakuchi (650–671)',
+ 'Hakuhō (672–686)',
+ 'Shuchō (686–701)',
+ 'Taihō (701–704)',
+ 'Keiun (704–708)',
+ 'Wadō (708–715)',
+ 'Reiki (715–717)',
+ 'Yōrō (717–724)',
+ 'Jinki (724–729)',
+ 'Tenpyō (729–749)',
+ 'Tenpyō-kampō (749-749)',
+ 'Tenpyō-shōhō (749-757)',
+ 'Tenpyō-hōji (757-765)',
+ 'Tenpyō-jingo (765-767)',
+ 'Jingo-keiun (767-770)',
+ 'Hōki (770–780)',
+ 'Ten-ō (781-782)',
+ 'Enryaku (782–806)',
+ 'Daidō (806–810)',
+ 'Kōnin (810–824)',
+ 'Tenchō (824–834)',
+ 'Jōwa (834–848)',
+ 'Kajō (848–851)',
+ 'Ninju (851–854)',
+ 'Saikō (854–857)',
+ 'Ten-an (857-859)',
+ 'Jōgan (859–877)',
+ 'Gangyō (877–885)',
+ 'Ninna (885–889)',
+ 'Kanpyō (889–898)',
+ 'Shōtai (898–901)',
+ 'Engi (901–923)',
+ 'Enchō (923–931)',
+ 'Jōhei (931–938)',
+ 'Tengyō (938–947)',
+ 'Tenryaku (947–957)',
+ 'Tentoku (957–961)',
+ 'Ōwa (961–964)',
+ 'Kōhō (964–968)',
+ 'Anna (968–970)',
+ 'Tenroku (970–973)',
+ 'Ten’en (973–976)',
+ 'Jōgen (976–978)',
+ 'Tengen (978–983)',
+ 'Eikan (983–985)',
+ 'Kanna (985–987)',
+ 'Eien (987–989)',
+ 'Eiso (989–990)',
+ 'Shōryaku (990–995)',
+ 'Chōtoku (995–999)',
+ 'Chōhō (999–1004)',
+ 'Kankō (1004–1012)',
+ 'Chōwa (1012–1017)',
+ 'Kannin (1017–1021)',
+ 'Jian (1021–1024)',
+ 'Manju (1024–1028)',
+ 'Chōgen (1028–1037)',
+ 'Chōryaku (1037–1040)',
+ 'Chōkyū (1040–1044)',
+ 'Kantoku (1044–1046)',
+ 'Eishō (1046–1053)',
+ 'Tengi (1053–1058)',
+ 'Kōhei (1058–1065)',
+ 'Jiryaku (1065–1069)',
+ 'Enkyū (1069–1074)',
+ 'Shōho (1074–1077)',
+ 'Shōryaku (1077–1081)',
+ 'Eihō (1081–1084)',
+ 'Ōtoku (1084–1087)',
+ 'Kanji (1087–1094)',
+ 'Kahō (1094–1096)',
+ 'Eichō (1096–1097)',
+ 'Jōtoku (1097–1099)',
+ 'Kōwa (1099–1104)',
+ 'Chōji (1104–1106)',
+ 'Kashō (1106–1108)',
+ 'Tennin (1108–1110)',
+ 'Ten-ei (1110-1113)',
+ 'Eikyū (1113–1118)',
+ 'Gen’ei (1118–1120)',
+ 'Hōan (1120–1124)',
+ 'Tenji (1124–1126)',
+ 'Daiji (1126–1131)',
+ 'Tenshō (1131–1132)',
+ 'Chōshō (1132–1135)',
+ 'Hōen (1135–1141)',
+ 'Eiji (1141–1142)',
+ 'Kōji (1142–1144)',
+ 'Ten’yō (1144–1145)',
+ 'Kyūan (1145–1151)',
+ 'Ninpei (1151–1154)',
+ 'Kyūju (1154–1156)',
+ 'Hōgen (1156–1159)',
+ 'Heiji (1159–1160)',
+ 'Eiryaku (1160–1161)',
+ 'Ōho (1161–1163)',
+ 'Chōkan (1163–1165)',
+ 'Eiman (1165–1166)',
+ 'Nin’an (1166–1169)',
+ 'Kaō (1169–1171)',
+ 'Shōan (1171–1175)',
+ 'Angen (1175–1177)',
+ 'Jishō (1177–1181)',
+ 'Yōwa (1181–1182)',
+ 'Juei (1182–1184)',
+ 'Genryaku (1184–1185)',
+ 'Bunji (1185–1190)',
+ 'Kenkyū (1190–1199)',
+ 'Shōji (1199–1201)',
+ 'Kennin (1201–1204)',
+ 'Genkyū (1204–1206)',
+ 'Ken’ei (1206–1207)',
+ 'Jōgen (1207–1211)',
+ 'Kenryaku (1211–1213)',
+ 'Kenpō (1213–1219)',
+ 'Jōkyū (1219–1222)',
+ 'Jōō (1222–1224)',
+ 'Gennin (1224–1225)',
+ 'Karoku (1225–1227)',
+ 'Antei (1227–1229)',
+ 'Kanki (1229–1232)',
+ 'Jōei (1232–1233)',
+ 'Tenpuku (1233–1234)',
+ 'Bunryaku (1234–1235)',
+ 'Katei (1235–1238)',
+ 'Ryakunin (1238–1239)',
+ 'En’ō (1239–1240)',
+ 'Ninji (1240–1243)',
+ 'Kangen (1243–1247)',
+ 'Hōji (1247–1249)',
+ 'Kenchō (1249–1256)',
+ 'Kōgen (1256–1257)',
+ 'Shōka (1257–1259)',
+ 'Shōgen (1259–1260)',
+ 'Bun’ō (1260–1261)',
+ 'Kōchō (1261–1264)',
+ 'Bun’ei (1264–1275)',
+ 'Kenji (1275–1278)',
+ 'Kōan (1278–1288)',
+ 'Shōō (1288–1293)',
+ 'Einin (1293–1299)',
+ 'Shōan (1299–1302)',
+ 'Kengen (1302–1303)',
+ 'Kagen (1303–1306)',
+ 'Tokuji (1306–1308)',
+ 'Enkyō (1308–1311)',
+ 'Ōchō (1311–1312)',
+ 'Shōwa (1312–1317)',
+ 'Bunpō (1317–1319)',
+ 'Genō (1319–1321)',
+ 'Genkō (1321–1324)',
+ 'Shōchū (1324–1326)',
+ 'Karyaku (1326–1329)',
+ 'Gentoku (1329–1331)',
+ 'Genkō (1331–1334)',
+ 'Kenmu (1334–1336)',
+ 'Engen (1336–1340)',
+ 'Kōkoku (1340–1346)',
+ 'Shōhei (1346–1370)',
+ 'Kentoku (1370–1372)',
+ 'Bunchū (1372–1375)',
+ 'Tenju (1375–1379)',
+ 'Kōryaku (1379–1381)',
+ 'Kōwa (1381–1384)',
+ 'Genchū (1384–1392)',
+ 'Meitoku (1384–1387)',
+ 'Kakei (1387–1389)',
+ 'Kōō (1389–1390)',
+ 'Meitoku (1390–1394)',
+ 'Ōei (1394–1428)',
+ 'Shōchō (1428–1429)',
+ 'Eikyō (1429–1441)',
+ 'Kakitsu (1441–1444)',
+ 'Bun’an (1444–1449)',
+ 'Hōtoku (1449–1452)',
+ 'Kyōtoku (1452–1455)',
+ 'Kōshō (1455–1457)',
+ 'Chōroku (1457–1460)',
+ 'Kanshō (1460–1466)',
+ 'Bunshō (1466–1467)',
+ 'Ōnin (1467–1469)',
+ 'Bunmei (1469–1487)',
+ 'Chōkyō (1487–1489)',
+ 'Entoku (1489–1492)',
+ 'Meiō (1492–1501)',
+ 'Bunki (1501–1504)',
+ 'Eishō (1504–1521)',
+ 'Taiei (1521–1528)',
+ 'Kyōroku (1528–1532)',
+ 'Tenbun (1532–1555)',
+ 'Kōji (1555–1558)',
+ 'Eiroku (1558–1570)',
+ 'Genki (1570–1573)',
+ 'Tenshō (1573–1592)',
+ 'Bunroku (1592–1596)',
+ 'Keichō (1596–1615)',
+ 'Genna (1615–1624)',
+ 'Kan’ei (1624–1644)',
+ 'Shōho (1644–1648)',
+ 'Keian (1648–1652)',
+ 'Jōō (1652–1655)',
+ 'Meireki (1655–1658)',
+ 'Manji (1658–1661)',
+ 'Kanbun (1661–1673)',
+ 'Enpō (1673–1681)',
+ 'Tenna (1681–1684)',
+ 'Jōkyō (1684–1688)',
+ 'Genroku (1688–1704)',
+ 'Hōei (1704–1711)',
+ 'Shōtoku (1711–1716)',
+ 'Kyōhō (1716–1736)',
+ 'Genbun (1736–1741)',
+ 'Kanpō (1741–1744)',
+ 'Enkyō (1744–1748)',
+ 'Kan’en (1748–1751)',
+ 'Hōreki (1751–1764)',
+ 'Meiwa (1764–1772)',
+ 'An’ei (1772–1781)',
+ 'Tenmei (1781–1789)',
+ 'Kansei (1789–1801)',
+ 'Kyōwa (1801–1804)',
+ 'Bunka (1804–1818)',
+ 'Bunsei (1818–1830)',
+ 'Tenpō (1830–1844)',
+ 'Kōka (1844–1848)',
+ 'Kaei (1848–1854)',
+ 'Ansei (1854–1860)',
+ 'Man’en (1860–1861)',
+ 'Bunkyū (1861–1864)',
+ 'Genji (1864–1865)',
+ 'Keiō (1865–1868)',
+ 'Meiji',
+ 'Taishō',
+ 'Shōwa',
+ 'Heisei',
+ ],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ persian: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Farvardin',
+ 'Ordibehesht',
+ 'Khordad',
+ 'Tir',
+ 'Mordad',
+ 'Shahrivar',
+ 'Mehr',
+ 'Aban',
+ 'Azar',
+ 'Dey',
+ 'Bahman',
+ 'Esfand',
+ ],
+ long: [
+ 'Farvardin',
+ 'Ordibehesht',
+ 'Khordad',
+ 'Tir',
+ 'Mordad',
+ 'Shahrivar',
+ 'Mehr',
+ 'Aban',
+ 'Azar',
+ 'Dey',
+ 'Bahman',
+ 'Esfand',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['AP'],
+ short: ['AP'],
+ long: ['AP'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ roc: {
+ months: {
+ narrow: [
+ 'J',
+ 'F',
+ 'M',
+ 'A',
+ 'M',
+ 'J',
+ 'J',
+ 'A',
+ 'S',
+ 'O',
+ 'N',
+ 'D',
+ ],
+ short: [
+ 'Jan',
+ 'Feb',
+ 'Mar',
+ 'Apr',
+ 'May',
+ 'Jun',
+ 'Jul',
+ 'Aug',
+ 'Sep',
+ 'Oct',
+ 'Nov',
+ 'Dec',
+ ],
+ long: [
+ 'January',
+ 'February',
+ 'March',
+ 'April',
+ 'May',
+ 'June',
+ 'July',
+ 'August',
+ 'September',
+ 'October',
+ 'November',
+ 'December',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['Before R.O.C.', 'Minguo'],
+ short: ['Before R.O.C.', 'Minguo'],
+ long: ['Before R.O.C.', 'Minguo'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ },
},
- indian: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Chaitra", "Vaisakha", "Jyaistha", "Asadha", "Sravana", "Bhadra", "Asvina", "Kartika", "Agrahayana", "Pausa", "Magha", "Phalguna"],
- long: ["Chaitra", "Vaisakha", "Jyaistha", "Asadha", "Sravana", "Bhadra", "Asvina", "Kartika", "Agrahayana", "Pausa", "Magha", "Phalguna"]
- },
- days: {
- narrow: ["D", "L", "M", "M", "J", "V", "S"],
- short: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
- long: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]
- },
- eras: {
- narrow: ["Saka"],
- short: ["Saka"],
- long: ["Saka"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
+ number: {
+ nu: ['latn'],
+ patterns: {
+ decimal: {
+ positivePattern: '{number}',
+ negativePattern: '{minusSign}{number}',
+ },
+ currency: {
+ positivePattern: '{currency}{number}',
+ negativePattern: '{minusSign}{currency}{number}',
+ },
+ percent: {
+ positivePattern: '{number}{percentSign}',
+ negativePattern: '{minusSign}{number}{percentSign}',
+ },
+ },
+ symbols: {
+ latn: {
+ decimal: '.',
+ group: ',',
+ nan: 'NaN',
+ plusSign: '+',
+ minusSign: '-',
+ percentSign: '%',
+ infinity: '∞',
+ },
+ },
+ currencies: {
+ AUD: 'A$',
+ BRL: 'R$',
+ CAD: 'CA$',
+ CNY: 'CN¥',
+ EUR: '€',
+ GBP: '£',
+ HKD: 'HK$',
+ ILS: '₪',
+ INR: '₹',
+ JPY: '¥',
+ KRW: '₩',
+ MXN: 'MX$',
+ NZD: 'NZ$',
+ TWD: 'NT$',
+ USD: '$',
+ VND: '₫',
+ XAF: 'FCFA',
+ XCD: 'EC$',
+ XOF: 'CFA',
+ XPF: 'CFPF',
+ },
},
- islamic: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["mouh.", "saf.", "rab. aw.", "rab. th.", "joum. oul.", "joum. tha.", "raj.", "chaa.", "ram.", "chaw.", "dhou. q.", "dhou. h."],
- long: ["mouharram", "safar", "rabia al awal", "rabia ath-thani", "joumada al oula", "joumada ath-thania", "rajab", "chaabane", "ramadan", "chawwal", "dhou al qi`da", "dhou al-hijja"]
- },
- days: {
- narrow: ["D", "L", "M", "M", "J", "V", "S"],
- short: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
- long: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]
- },
- eras: {
- narrow: ["AH"],
- short: ["AH"],
- long: ["AH"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
+ });
+
+ // Intl.~locale.de
+ IntlPolyfill.__addLocaleData({
+ locale: 'de',
+ date: {
+ ca: [
+ 'gregory',
+ 'buddhist',
+ 'chinese',
+ 'coptic',
+ 'dangi',
+ 'ethioaa',
+ 'ethiopic',
+ 'generic',
+ 'hebrew',
+ 'indian',
+ 'islamic',
+ 'islamicc',
+ 'japanese',
+ 'persian',
+ 'roc',
+ ],
+ hourNo0: true,
+ hour12: false,
+ formats: {
+ short: '{1}, {0}',
+ medium: '{1}, {0}',
+ full: "{1} 'um' {0}",
+ long: "{1} 'um' {0}",
+ availableFormats: {
+ d: 'd',
+ E: 'ccc',
+ Ed: 'E, d.',
+ Ehm: 'E h:mm a',
+ EHm: 'E, HH:mm',
+ Ehms: 'E, h:mm:ss a',
+ EHms: 'E, HH:mm:ss',
+ Gy: 'y G',
+ GyMMM: 'MMM y G',
+ GyMMMd: 'd. MMM y G',
+ GyMMMEd: 'E, d. MMM y G',
+ h: 'h a',
+ H: "HH 'Uhr'",
+ hm: 'h:mm a',
+ Hm: 'HH:mm',
+ hms: 'h:mm:ss a',
+ Hms: 'HH:mm:ss',
+ hmsv: 'h:mm:ss a v',
+ Hmsv: 'HH:mm:ss v',
+ hmv: 'h:mm a v',
+ Hmv: 'HH:mm v',
+ M: 'L',
+ Md: 'd.M.',
+ MEd: 'E, d.M.',
+ MMd: 'd.MM.',
+ MMdd: 'dd.MM.',
+ MMM: 'LLL',
+ MMMd: 'd. MMM',
+ MMMEd: 'E, d. MMM',
+ MMMMd: 'd. MMMM',
+ MMMMEd: 'E, d. MMMM',
+ ms: 'mm:ss',
+ y: 'y',
+ yM: 'M.y',
+ yMd: 'd.M.y',
+ yMEd: 'E, d.M.y',
+ yMM: 'MM.y',
+ yMMdd: 'dd.MM.y',
+ yMMM: 'MMM y',
+ yMMMd: 'd. MMM y',
+ yMMMEd: 'E, d. MMM y',
+ yMMMM: 'MMMM y',
+ yQQQ: 'QQQ y',
+ yQQQQ: 'QQQQ y',
+ },
+ dateFormats: {
+ yMMMMEEEEd: 'EEEE, d. MMMM y',
+ yMMMMd: 'd. MMMM y',
+ yMMMd: 'dd.MM.y',
+ yMd: 'dd.MM.yy',
+ },
+ timeFormats: {
+ hmmsszzzz: 'HH:mm:ss zzzz',
+ hmsz: 'HH:mm:ss z',
+ hms: 'HH:mm:ss',
+ hm: 'HH:mm',
+ },
+ },
+ calendars: {
+ buddhist: {
+ months: {
+ narrow: [
+ 'J',
+ 'F',
+ 'M',
+ 'A',
+ 'M',
+ 'J',
+ 'J',
+ 'A',
+ 'S',
+ 'O',
+ 'N',
+ 'D',
+ ],
+ short: [
+ 'Jan.',
+ 'Feb.',
+ 'März',
+ 'Apr.',
+ 'Mai',
+ 'Juni',
+ 'Juli',
+ 'Aug.',
+ 'Sep.',
+ 'Okt.',
+ 'Nov.',
+ 'Dez.',
+ ],
+ long: [
+ 'Januar',
+ 'Februar',
+ 'März',
+ 'April',
+ 'Mai',
+ 'Juni',
+ 'Juli',
+ 'August',
+ 'September',
+ 'Oktober',
+ 'November',
+ 'Dezember',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],
+ short: [
+ 'So.',
+ 'Mo.',
+ 'Di.',
+ 'Mi.',
+ 'Do.',
+ 'Fr.',
+ 'Sa.',
+ ],
+ long: [
+ 'Sonntag',
+ 'Montag',
+ 'Dienstag',
+ 'Mittwoch',
+ 'Donnerstag',
+ 'Freitag',
+ 'Samstag',
+ ],
+ },
+ eras: {
+ narrow: ['BE'],
+ short: ['BE'],
+ long: ['BE'],
+ },
+ dayPeriods: {
+ am: 'vorm.',
+ pm: 'nachm.',
+ },
+ },
+ chinese: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'M01',
+ 'M02',
+ 'M03',
+ 'M04',
+ 'M05',
+ 'M06',
+ 'M07',
+ 'M08',
+ 'M09',
+ 'M10',
+ 'M11',
+ 'M12',
+ ],
+ long: [
+ 'M01',
+ 'M02',
+ 'M03',
+ 'M04',
+ 'M05',
+ 'M06',
+ 'M07',
+ 'M08',
+ 'M09',
+ 'M10',
+ 'M11',
+ 'M12',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],
+ short: [
+ 'So.',
+ 'Mo.',
+ 'Di.',
+ 'Mi.',
+ 'Do.',
+ 'Fr.',
+ 'Sa.',
+ ],
+ long: [
+ 'Sonntag',
+ 'Montag',
+ 'Dienstag',
+ 'Mittwoch',
+ 'Donnerstag',
+ 'Freitag',
+ 'Samstag',
+ ],
+ },
+ dayPeriods: {
+ am: 'vorm.',
+ pm: 'nachm.',
+ },
+ },
+ coptic: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ ],
+ short: [
+ 'Tout',
+ 'Baba',
+ 'Hator',
+ 'Kiahk',
+ 'Toba',
+ 'Amshir',
+ 'Baramhat',
+ 'Baramouda',
+ 'Bashans',
+ 'Paona',
+ 'Epep',
+ 'Mesra',
+ 'Nasie',
+ ],
+ long: [
+ 'Tout',
+ 'Baba',
+ 'Hator',
+ 'Kiahk',
+ 'Toba',
+ 'Amshir',
+ 'Baramhat',
+ 'Baramouda',
+ 'Bashans',
+ 'Paona',
+ 'Epep',
+ 'Mesra',
+ 'Nasie',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],
+ short: [
+ 'So.',
+ 'Mo.',
+ 'Di.',
+ 'Mi.',
+ 'Do.',
+ 'Fr.',
+ 'Sa.',
+ ],
+ long: [
+ 'Sonntag',
+ 'Montag',
+ 'Dienstag',
+ 'Mittwoch',
+ 'Donnerstag',
+ 'Freitag',
+ 'Samstag',
+ ],
+ },
+ eras: {
+ narrow: ['ERA0', 'ERA1'],
+ short: ['ERA0', 'ERA1'],
+ long: ['ERA0', 'ERA1'],
+ },
+ dayPeriods: {
+ am: 'vorm.',
+ pm: 'nachm.',
+ },
+ },
+ dangi: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'M01',
+ 'M02',
+ 'M03',
+ 'M04',
+ 'M05',
+ 'M06',
+ 'M07',
+ 'M08',
+ 'M09',
+ 'M10',
+ 'M11',
+ 'M12',
+ ],
+ long: [
+ 'M01',
+ 'M02',
+ 'M03',
+ 'M04',
+ 'M05',
+ 'M06',
+ 'M07',
+ 'M08',
+ 'M09',
+ 'M10',
+ 'M11',
+ 'M12',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],
+ short: [
+ 'So.',
+ 'Mo.',
+ 'Di.',
+ 'Mi.',
+ 'Do.',
+ 'Fr.',
+ 'Sa.',
+ ],
+ long: [
+ 'Sonntag',
+ 'Montag',
+ 'Dienstag',
+ 'Mittwoch',
+ 'Donnerstag',
+ 'Freitag',
+ 'Samstag',
+ ],
+ },
+ dayPeriods: {
+ am: 'vorm.',
+ pm: 'nachm.',
+ },
+ },
+ ethiopic: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ ],
+ short: [
+ 'Meskerem',
+ 'Tekemt',
+ 'Hedar',
+ 'Tahsas',
+ 'Ter',
+ 'Yekatit',
+ 'Megabit',
+ 'Miazia',
+ 'Genbot',
+ 'Sene',
+ 'Hamle',
+ 'Nehasse',
+ 'Pagumen',
+ ],
+ long: [
+ 'Meskerem',
+ 'Tekemt',
+ 'Hedar',
+ 'Tahsas',
+ 'Ter',
+ 'Yekatit',
+ 'Megabit',
+ 'Miazia',
+ 'Genbot',
+ 'Sene',
+ 'Hamle',
+ 'Nehasse',
+ 'Pagumen',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],
+ short: [
+ 'So.',
+ 'Mo.',
+ 'Di.',
+ 'Mi.',
+ 'Do.',
+ 'Fr.',
+ 'Sa.',
+ ],
+ long: [
+ 'Sonntag',
+ 'Montag',
+ 'Dienstag',
+ 'Mittwoch',
+ 'Donnerstag',
+ 'Freitag',
+ 'Samstag',
+ ],
+ },
+ eras: {
+ narrow: ['ERA0', 'ERA1'],
+ short: ['ERA0', 'ERA1'],
+ long: ['ERA0', 'ERA1'],
+ },
+ dayPeriods: {
+ am: 'vorm.',
+ pm: 'nachm.',
+ },
+ },
+ ethioaa: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ ],
+ short: [
+ 'Meskerem',
+ 'Tekemt',
+ 'Hedar',
+ 'Tahsas',
+ 'Ter',
+ 'Yekatit',
+ 'Megabit',
+ 'Miazia',
+ 'Genbot',
+ 'Sene',
+ 'Hamle',
+ 'Nehasse',
+ 'Pagumen',
+ ],
+ long: [
+ 'Meskerem',
+ 'Tekemt',
+ 'Hedar',
+ 'Tahsas',
+ 'Ter',
+ 'Yekatit',
+ 'Megabit',
+ 'Miazia',
+ 'Genbot',
+ 'Sene',
+ 'Hamle',
+ 'Nehasse',
+ 'Pagumen',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],
+ short: [
+ 'So.',
+ 'Mo.',
+ 'Di.',
+ 'Mi.',
+ 'Do.',
+ 'Fr.',
+ 'Sa.',
+ ],
+ long: [
+ 'Sonntag',
+ 'Montag',
+ 'Dienstag',
+ 'Mittwoch',
+ 'Donnerstag',
+ 'Freitag',
+ 'Samstag',
+ ],
+ },
+ eras: {
+ narrow: ['ERA0'],
+ short: ['ERA0'],
+ long: ['ERA0'],
+ },
+ dayPeriods: {
+ am: 'vorm.',
+ pm: 'nachm.',
+ },
+ },
+ generic: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'M01',
+ 'M02',
+ 'M03',
+ 'M04',
+ 'M05',
+ 'M06',
+ 'M07',
+ 'M08',
+ 'M09',
+ 'M10',
+ 'M11',
+ 'M12',
+ ],
+ long: [
+ 'M01',
+ 'M02',
+ 'M03',
+ 'M04',
+ 'M05',
+ 'M06',
+ 'M07',
+ 'M08',
+ 'M09',
+ 'M10',
+ 'M11',
+ 'M12',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],
+ short: [
+ 'So.',
+ 'Mo.',
+ 'Di.',
+ 'Mi.',
+ 'Do.',
+ 'Fr.',
+ 'Sa.',
+ ],
+ long: [
+ 'Sonntag',
+ 'Montag',
+ 'Dienstag',
+ 'Mittwoch',
+ 'Donnerstag',
+ 'Freitag',
+ 'Samstag',
+ ],
+ },
+ eras: {
+ narrow: ['ERA0', 'ERA1'],
+ short: ['ERA0', 'ERA1'],
+ long: ['ERA0', 'ERA1'],
+ },
+ dayPeriods: {
+ am: 'vorm.',
+ pm: 'nachm.',
+ },
+ },
+ gregory: {
+ months: {
+ narrow: [
+ 'J',
+ 'F',
+ 'M',
+ 'A',
+ 'M',
+ 'J',
+ 'J',
+ 'A',
+ 'S',
+ 'O',
+ 'N',
+ 'D',
+ ],
+ short: [
+ 'Jan.',
+ 'Feb.',
+ 'März',
+ 'Apr.',
+ 'Mai',
+ 'Juni',
+ 'Juli',
+ 'Aug.',
+ 'Sep.',
+ 'Okt.',
+ 'Nov.',
+ 'Dez.',
+ ],
+ long: [
+ 'Januar',
+ 'Februar',
+ 'März',
+ 'April',
+ 'Mai',
+ 'Juni',
+ 'Juli',
+ 'August',
+ 'September',
+ 'Oktober',
+ 'November',
+ 'Dezember',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],
+ short: [
+ 'So.',
+ 'Mo.',
+ 'Di.',
+ 'Mi.',
+ 'Do.',
+ 'Fr.',
+ 'Sa.',
+ ],
+ long: [
+ 'Sonntag',
+ 'Montag',
+ 'Dienstag',
+ 'Mittwoch',
+ 'Donnerstag',
+ 'Freitag',
+ 'Samstag',
+ ],
+ },
+ eras: {
+ narrow: ['v. Chr.', 'n. Chr.', 'v. u. Z.', 'u. Z.'],
+ short: ['v. Chr.', 'n. Chr.', 'v. u. Z.', 'u. Z.'],
+ long: [
+ 'v. Chr.',
+ 'n. Chr.',
+ 'vor unserer Zeitrechnung',
+ 'unserer Zeitrechnung',
+ ],
+ },
+ dayPeriods: {
+ am: 'vorm.',
+ pm: 'nachm.',
+ },
+ },
+ hebrew: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ '7',
+ ],
+ short: [
+ 'Tishri',
+ 'Heshvan',
+ 'Kislev',
+ 'Tevet',
+ 'Shevat',
+ 'Adar I',
+ 'Adar',
+ 'Nisan',
+ 'Iyar',
+ 'Sivan',
+ 'Tamuz',
+ 'Av',
+ 'Elul',
+ 'Adar II',
+ ],
+ long: [
+ 'Tishri',
+ 'Heshvan',
+ 'Kislev',
+ 'Tevet',
+ 'Shevat',
+ 'Adar I',
+ 'Adar',
+ 'Nisan',
+ 'Iyar',
+ 'Sivan',
+ 'Tamuz',
+ 'Av',
+ 'Elul',
+ 'Adar II',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],
+ short: [
+ 'So.',
+ 'Mo.',
+ 'Di.',
+ 'Mi.',
+ 'Do.',
+ 'Fr.',
+ 'Sa.',
+ ],
+ long: [
+ 'Sonntag',
+ 'Montag',
+ 'Dienstag',
+ 'Mittwoch',
+ 'Donnerstag',
+ 'Freitag',
+ 'Samstag',
+ ],
+ },
+ eras: {
+ narrow: ['AM'],
+ short: ['AM'],
+ long: ['AM'],
+ },
+ dayPeriods: {
+ am: 'vorm.',
+ pm: 'nachm.',
+ },
+ },
+ indian: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Chaitra',
+ 'Vaisakha',
+ 'Jyaistha',
+ 'Asadha',
+ 'Sravana',
+ 'Bhadra',
+ 'Asvina',
+ 'Kartika',
+ 'Agrahayana',
+ 'Pausa',
+ 'Magha',
+ 'Phalguna',
+ ],
+ long: [
+ 'Chaitra',
+ 'Vaisakha',
+ 'Jyaistha',
+ 'Asadha',
+ 'Sravana',
+ 'Bhadra',
+ 'Asvina',
+ 'Kartika',
+ 'Agrahayana',
+ 'Pausa',
+ 'Magha',
+ 'Phalguna',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],
+ short: [
+ 'So.',
+ 'Mo.',
+ 'Di.',
+ 'Mi.',
+ 'Do.',
+ 'Fr.',
+ 'Sa.',
+ ],
+ long: [
+ 'Sonntag',
+ 'Montag',
+ 'Dienstag',
+ 'Mittwoch',
+ 'Donnerstag',
+ 'Freitag',
+ 'Samstag',
+ ],
+ },
+ eras: {
+ narrow: ['Saka'],
+ short: ['Saka'],
+ long: ['Saka'],
+ },
+ dayPeriods: {
+ am: 'vorm.',
+ pm: 'nachm.',
+ },
+ },
+ islamic: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Muh.',
+ 'Saf.',
+ 'Rab. I',
+ 'Rab. II',
+ 'Jum. I',
+ 'Jum. II',
+ 'Raj.',
+ 'Sha.',
+ 'Ram.',
+ 'Shaw.',
+ 'Dhuʻl-Q.',
+ 'Dhuʻl-H.',
+ ],
+ long: [
+ 'Muharram',
+ 'Safar',
+ 'Rabiʻ I',
+ 'Rabiʻ II',
+ 'Jumada I',
+ 'Jumada II',
+ 'Rajab',
+ 'Shaʻban',
+ 'Ramadan',
+ 'Shawwal',
+ 'Dhuʻl-Qiʻdah',
+ 'Dhuʻl-Hijjah',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],
+ short: [
+ 'So.',
+ 'Mo.',
+ 'Di.',
+ 'Mi.',
+ 'Do.',
+ 'Fr.',
+ 'Sa.',
+ ],
+ long: [
+ 'Sonntag',
+ 'Montag',
+ 'Dienstag',
+ 'Mittwoch',
+ 'Donnerstag',
+ 'Freitag',
+ 'Samstag',
+ ],
+ },
+ eras: {
+ narrow: ['AH'],
+ short: ['AH'],
+ long: ['AH'],
+ },
+ dayPeriods: {
+ am: 'vorm.',
+ pm: 'nachm.',
+ },
+ },
+ islamicc: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Muh.',
+ 'Saf.',
+ 'Rab. I',
+ 'Rab. II',
+ 'Jum. I',
+ 'Jum. II',
+ 'Raj.',
+ 'Sha.',
+ 'Ram.',
+ 'Shaw.',
+ 'Dhuʻl-Q.',
+ 'Dhuʻl-H.',
+ ],
+ long: [
+ 'Muharram',
+ 'Safar',
+ 'Rabiʻ I',
+ 'Rabiʻ II',
+ 'Jumada I',
+ 'Jumada II',
+ 'Rajab',
+ 'Shaʻban',
+ 'Ramadan',
+ 'Shawwal',
+ 'Dhuʻl-Qiʻdah',
+ 'Dhuʻl-Hijjah',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],
+ short: [
+ 'So.',
+ 'Mo.',
+ 'Di.',
+ 'Mi.',
+ 'Do.',
+ 'Fr.',
+ 'Sa.',
+ ],
+ long: [
+ 'Sonntag',
+ 'Montag',
+ 'Dienstag',
+ 'Mittwoch',
+ 'Donnerstag',
+ 'Freitag',
+ 'Samstag',
+ ],
+ },
+ eras: {
+ narrow: ['AH'],
+ short: ['AH'],
+ long: ['AH'],
+ },
+ dayPeriods: {
+ am: 'vorm.',
+ pm: 'nachm.',
+ },
+ },
+ japanese: {
+ months: {
+ narrow: [
+ 'J',
+ 'F',
+ 'M',
+ 'A',
+ 'M',
+ 'J',
+ 'J',
+ 'A',
+ 'S',
+ 'O',
+ 'N',
+ 'D',
+ ],
+ short: [
+ 'Jan.',
+ 'Feb.',
+ 'März',
+ 'Apr.',
+ 'Mai',
+ 'Juni',
+ 'Juli',
+ 'Aug.',
+ 'Sep.',
+ 'Okt.',
+ 'Nov.',
+ 'Dez.',
+ ],
+ long: [
+ 'Januar',
+ 'Februar',
+ 'März',
+ 'April',
+ 'Mai',
+ 'Juni',
+ 'Juli',
+ 'August',
+ 'September',
+ 'Oktober',
+ 'November',
+ 'Dezember',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],
+ short: [
+ 'So.',
+ 'Mo.',
+ 'Di.',
+ 'Mi.',
+ 'Do.',
+ 'Fr.',
+ 'Sa.',
+ ],
+ long: [
+ 'Sonntag',
+ 'Montag',
+ 'Dienstag',
+ 'Mittwoch',
+ 'Donnerstag',
+ 'Freitag',
+ 'Samstag',
+ ],
+ },
+ eras: {
+ narrow: [
+ 'Taika (645–650)',
+ 'Hakuchi (650–671)',
+ 'Hakuhō (672–686)',
+ 'Shuchō (686–701)',
+ 'Taihō (701–704)',
+ 'Keiun (704–708)',
+ 'Wadō (708–715)',
+ 'Reiki (715–717)',
+ 'Yōrō (717–724)',
+ 'Jinki (724–729)',
+ 'Tenpyō (729–749)',
+ 'Tenpyō-kampō (749-749)',
+ 'Tenpyō-shōhō (749-757)',
+ 'Tenpyō-hōji (757-765)',
+ 'Tenpyō-jingo (765-767)',
+ 'Jingo-keiun (767-770)',
+ 'Hōki (770–780)',
+ 'Ten-ō (781-782)',
+ 'Enryaku (782–806)',
+ 'Daidō (806–810)',
+ 'Kōnin (810–824)',
+ 'Tenchō (824–834)',
+ 'Jōwa (834–848)',
+ 'Kajō (848–851)',
+ 'Ninju (851–854)',
+ 'Saikō (854–857)',
+ 'Ten-an (857-859)',
+ 'Jōgan (859–877)',
+ 'Gangyō (877–885)',
+ 'Ninna (885–889)',
+ 'Kanpyō (889–898)',
+ 'Shōtai (898–901)',
+ 'Engi (901–923)',
+ 'Enchō (923–931)',
+ 'Jōhei (931–938)',
+ 'Tengyō (938–947)',
+ 'Tenryaku (947–957)',
+ 'Tentoku (957–961)',
+ 'Ōwa (961–964)',
+ 'Kōhō (964–968)',
+ 'Anna (968–970)',
+ 'Tenroku (970–973)',
+ 'Ten’en (973–976)',
+ 'Jōgen (976–978)',
+ 'Tengen (978–983)',
+ 'Eikan (983–985)',
+ 'Kanna (985–987)',
+ 'Eien (987–989)',
+ 'Eiso (989–990)',
+ 'Shōryaku (990–995)',
+ 'Chōtoku (995–999)',
+ 'Chōhō (999–1004)',
+ 'Kankō (1004–1012)',
+ 'Chōwa (1012–1017)',
+ 'Kannin (1017–1021)',
+ 'Jian (1021–1024)',
+ 'Manju (1024–1028)',
+ 'Chōgen (1028–1037)',
+ 'Chōryaku (1037–1040)',
+ 'Chōkyū (1040–1044)',
+ 'Kantoku (1044–1046)',
+ 'Eishō (1046–1053)',
+ 'Tengi (1053–1058)',
+ 'Kōhei (1058–1065)',
+ 'Jiryaku (1065–1069)',
+ 'Enkyū (1069–1074)',
+ 'Shōho (1074–1077)',
+ 'Shōryaku (1077–1081)',
+ 'Eihō (1081–1084)',
+ 'Ōtoku (1084–1087)',
+ 'Kanji (1087–1094)',
+ 'Kahō (1094–1096)',
+ 'Eichō (1096–1097)',
+ 'Jōtoku (1097–1099)',
+ 'Kōwa (1099–1104)',
+ 'Chōji (1104–1106)',
+ 'Kashō (1106–1108)',
+ 'Tennin (1108–1110)',
+ 'Ten-ei (1110-1113)',
+ 'Eikyū (1113–1118)',
+ 'Gen’ei (1118–1120)',
+ 'Hōan (1120–1124)',
+ 'Tenji (1124–1126)',
+ 'Daiji (1126–1131)',
+ 'Tenshō (1131–1132)',
+ 'Chōshō (1132–1135)',
+ 'Hōen (1135–1141)',
+ 'Eiji (1141–1142)',
+ 'Kōji (1142–1144)',
+ 'Ten’yō (1144–1145)',
+ 'Kyūan (1145–1151)',
+ 'Ninpei (1151–1154)',
+ 'Kyūju (1154–1156)',
+ 'Hōgen (1156–1159)',
+ 'Heiji (1159–1160)',
+ 'Eiryaku (1160–1161)',
+ 'Ōho (1161–1163)',
+ 'Chōkan (1163–1165)',
+ 'Eiman (1165–1166)',
+ 'Nin’an (1166–1169)',
+ 'Kaō (1169–1171)',
+ 'Shōan (1171–1175)',
+ 'Angen (1175–1177)',
+ 'Jishō (1177–1181)',
+ 'Yōwa (1181–1182)',
+ 'Juei (1182–1184)',
+ 'Genryaku (1184–1185)',
+ 'Bunji (1185–1190)',
+ 'Kenkyū (1190–1199)',
+ 'Shōji (1199–1201)',
+ 'Kennin (1201–1204)',
+ 'Genkyū (1204–1206)',
+ 'Ken’ei (1206–1207)',
+ 'Jōgen (1207–1211)',
+ 'Kenryaku (1211–1213)',
+ 'Kenpō (1213–1219)',
+ 'Jōkyū (1219–1222)',
+ 'Jōō (1222–1224)',
+ 'Gennin (1224–1225)',
+ 'Karoku (1225–1227)',
+ 'Antei (1227–1229)',
+ 'Kanki (1229–1232)',
+ 'Jōei (1232–1233)',
+ 'Tenpuku (1233–1234)',
+ 'Bunryaku (1234–1235)',
+ 'Katei (1235–1238)',
+ 'Ryakunin (1238–1239)',
+ 'En’ō (1239–1240)',
+ 'Ninji (1240–1243)',
+ 'Kangen (1243–1247)',
+ 'Hōji (1247–1249)',
+ 'Kenchō (1249–1256)',
+ 'Kōgen (1256–1257)',
+ 'Shōka (1257–1259)',
+ 'Shōgen (1259–1260)',
+ 'Bun’ō (1260–1261)',
+ 'Kōchō (1261–1264)',
+ 'Bun’ei (1264–1275)',
+ 'Kenji (1275–1278)',
+ 'Kōan (1278–1288)',
+ 'Shōō (1288–1293)',
+ 'Einin (1293–1299)',
+ 'Shōan (1299–1302)',
+ 'Kengen (1302–1303)',
+ 'Kagen (1303–1306)',
+ 'Tokuji (1306–1308)',
+ 'Enkyō (1308–1311)',
+ 'Ōchō (1311–1312)',
+ 'Shōwa (1312–1317)',
+ 'Bunpō (1317–1319)',
+ 'Genō (1319–1321)',
+ 'Genkō (1321–1324)',
+ 'Shōchū (1324–1326)',
+ 'Karyaku (1326–1329)',
+ 'Gentoku (1329–1331)',
+ 'Genkō (1331–1334)',
+ 'Kenmu (1334–1336)',
+ 'Engen (1336–1340)',
+ 'Kōkoku (1340–1346)',
+ 'Shōhei (1346–1370)',
+ 'Kentoku (1370–1372)',
+ 'Bunchū (1372–1375)',
+ 'Tenju (1375–1379)',
+ 'Kōryaku (1379–1381)',
+ 'Kōwa (1381–1384)',
+ 'Genchū (1384–1392)',
+ 'Meitoku (1384–1387)',
+ 'Kakei (1387–1389)',
+ 'Kōō (1389–1390)',
+ 'Meitoku (1390–1394)',
+ 'Ōei (1394–1428)',
+ 'Shōchō (1428–1429)',
+ 'Eikyō (1429–1441)',
+ 'Kakitsu (1441–1444)',
+ 'Bun’an (1444–1449)',
+ 'Hōtoku (1449–1452)',
+ 'Kyōtoku (1452–1455)',
+ 'Kōshō (1455–1457)',
+ 'Chōroku (1457–1460)',
+ 'Kanshō (1460–1466)',
+ 'Bunshō (1466–1467)',
+ 'Ōnin (1467–1469)',
+ 'Bunmei (1469–1487)',
+ 'Chōkyō (1487–1489)',
+ 'Entoku (1489–1492)',
+ 'Meiō (1492–1501)',
+ 'Bunki (1501–1504)',
+ 'Eishō (1504–1521)',
+ 'Taiei (1521–1528)',
+ 'Kyōroku (1528–1532)',
+ 'Tenbun (1532–1555)',
+ 'Kōji (1555–1558)',
+ 'Eiroku (1558–1570)',
+ 'Genki (1570–1573)',
+ 'Tenshō (1573–1592)',
+ 'Bunroku (1592–1596)',
+ 'Keichō (1596–1615)',
+ 'Genna (1615–1624)',
+ 'Kan’ei (1624–1644)',
+ 'Shōho (1644–1648)',
+ 'Keian (1648–1652)',
+ 'Jōō (1652–1655)',
+ 'Meireki (1655–1658)',
+ 'Manji (1658–1661)',
+ 'Kanbun (1661–1673)',
+ 'Enpō (1673–1681)',
+ 'Tenna (1681–1684)',
+ 'Jōkyō (1684–1688)',
+ 'Genroku (1688–1704)',
+ 'Hōei (1704–1711)',
+ 'Shōtoku (1711–1716)',
+ 'Kyōhō (1716–1736)',
+ 'Genbun (1736–1741)',
+ 'Kanpō (1741–1744)',
+ 'Enkyō (1744–1748)',
+ 'Kan’en (1748–1751)',
+ 'Hōreki (1751–1764)',
+ 'Meiwa (1764–1772)',
+ 'An’ei (1772–1781)',
+ 'Tenmei (1781–1789)',
+ 'Kansei (1789–1801)',
+ 'Kyōwa (1801–1804)',
+ 'Bunka (1804–1818)',
+ 'Bunsei (1818–1830)',
+ 'Tenpō (1830–1844)',
+ 'Kōka (1844–1848)',
+ 'Kaei (1848–1854)',
+ 'Ansei (1854–1860)',
+ 'Man’en (1860–1861)',
+ 'Bunkyū (1861–1864)',
+ 'Genji (1864–1865)',
+ 'Keiō (1865–1868)',
+ 'M',
+ 'T',
+ 'S',
+ 'H',
+ ],
+ short: [
+ 'Taika (645–650)',
+ 'Hakuchi (650–671)',
+ 'Hakuhō (672–686)',
+ 'Shuchō (686–701)',
+ 'Taihō (701–704)',
+ 'Keiun (704–708)',
+ 'Wadō (708–715)',
+ 'Reiki (715–717)',
+ 'Yōrō (717–724)',
+ 'Jinki (724–729)',
+ 'Tenpyō (729–749)',
+ 'Tenpyō-kampō (749-749)',
+ 'Tenpyō-shōhō (749-757)',
+ 'Tenpyō-hōji (757-765)',
+ 'Tenpyō-jingo (765-767)',
+ 'Jingo-keiun (767-770)',
+ 'Hōki (770–780)',
+ 'Ten-ō (781-782)',
+ 'Enryaku (782–806)',
+ 'Daidō (806–810)',
+ 'Kōnin (810–824)',
+ 'Tenchō (824–834)',
+ 'Jōwa (834–848)',
+ 'Kajō (848–851)',
+ 'Ninju (851–854)',
+ 'Saikō (854–857)',
+ 'Ten-an (857-859)',
+ 'Jōgan (859–877)',
+ 'Gangyō (877–885)',
+ 'Ninna (885–889)',
+ 'Kanpyō (889–898)',
+ 'Shōtai (898–901)',
+ 'Engi (901–923)',
+ 'Enchō (923–931)',
+ 'Jōhei (931–938)',
+ 'Tengyō (938–947)',
+ 'Tenryaku (947–957)',
+ 'Tentoku (957–961)',
+ 'Ōwa (961–964)',
+ 'Kōhō (964–968)',
+ 'Anna (968–970)',
+ 'Tenroku (970–973)',
+ 'Ten’en (973–976)',
+ 'Jōgen (976–978)',
+ 'Tengen (978–983)',
+ 'Eikan (983–985)',
+ 'Kanna (985–987)',
+ 'Eien (987–989)',
+ 'Eiso (989–990)',
+ 'Shōryaku (990–995)',
+ 'Chōtoku (995–999)',
+ 'Chōhō (999–1004)',
+ 'Kankō (1004–1012)',
+ 'Chōwa (1012–1017)',
+ 'Kannin (1017–1021)',
+ 'Jian (1021–1024)',
+ 'Manju (1024–1028)',
+ 'Chōgen (1028–1037)',
+ 'Chōryaku (1037–1040)',
+ 'Chōkyū (1040–1044)',
+ 'Kantoku (1044–1046)',
+ 'Eishō (1046–1053)',
+ 'Tengi (1053–1058)',
+ 'Kōhei (1058–1065)',
+ 'Jiryaku (1065–1069)',
+ 'Enkyū (1069–1074)',
+ 'Shōho (1074–1077)',
+ 'Shōryaku (1077–1081)',
+ 'Eihō (1081–1084)',
+ 'Ōtoku (1084–1087)',
+ 'Kanji (1087–1094)',
+ 'Kahō (1094–1096)',
+ 'Eichō (1096–1097)',
+ 'Jōtoku (1097–1099)',
+ 'Kōwa (1099–1104)',
+ 'Chōji (1104–1106)',
+ 'Kashō (1106–1108)',
+ 'Tennin (1108–1110)',
+ 'Ten-ei (1110-1113)',
+ 'Eikyū (1113–1118)',
+ 'Gen’ei (1118–1120)',
+ 'Hōan (1120–1124)',
+ 'Tenji (1124–1126)',
+ 'Daiji (1126–1131)',
+ 'Tenshō (1131–1132)',
+ 'Chōshō (1132–1135)',
+ 'Hōen (1135–1141)',
+ 'Eiji (1141–1142)',
+ 'Kōji (1142–1144)',
+ 'Ten’yō (1144–1145)',
+ 'Kyūan (1145–1151)',
+ 'Ninpei (1151–1154)',
+ 'Kyūju (1154–1156)',
+ 'Hōgen (1156–1159)',
+ 'Heiji (1159–1160)',
+ 'Eiryaku (1160–1161)',
+ 'Ōho (1161–1163)',
+ 'Chōkan (1163–1165)',
+ 'Eiman (1165–1166)',
+ 'Nin’an (1166–1169)',
+ 'Kaō (1169–1171)',
+ 'Shōan (1171–1175)',
+ 'Angen (1175–1177)',
+ 'Jishō (1177–1181)',
+ 'Yōwa (1181–1182)',
+ 'Juei (1182–1184)',
+ 'Genryaku (1184–1185)',
+ 'Bunji (1185–1190)',
+ 'Kenkyū (1190–1199)',
+ 'Shōji (1199–1201)',
+ 'Kennin (1201–1204)',
+ 'Genkyū (1204–1206)',
+ 'Ken’ei (1206–1207)',
+ 'Jōgen (1207–1211)',
+ 'Kenryaku (1211–1213)',
+ 'Kenpō (1213–1219)',
+ 'Jōkyū (1219–1222)',
+ 'Jōō (1222–1224)',
+ 'Gennin (1224–1225)',
+ 'Karoku (1225–1227)',
+ 'Antei (1227–1229)',
+ 'Kanki (1229–1232)',
+ 'Jōei (1232–1233)',
+ 'Tenpuku (1233–1234)',
+ 'Bunryaku (1234–1235)',
+ 'Katei (1235–1238)',
+ 'Ryakunin (1238–1239)',
+ 'En’ō (1239–1240)',
+ 'Ninji (1240–1243)',
+ 'Kangen (1243–1247)',
+ 'Hōji (1247–1249)',
+ 'Kenchō (1249–1256)',
+ 'Kōgen (1256–1257)',
+ 'Shōka (1257–1259)',
+ 'Shōgen (1259–1260)',
+ 'Bun’ō (1260–1261)',
+ 'Kōchō (1261–1264)',
+ 'Bun’ei (1264–1275)',
+ 'Kenji (1275–1278)',
+ 'Kōan (1278–1288)',
+ 'Shōō (1288–1293)',
+ 'Einin (1293–1299)',
+ 'Shōan (1299–1302)',
+ 'Kengen (1302–1303)',
+ 'Kagen (1303–1306)',
+ 'Tokuji (1306–1308)',
+ 'Enkyō (1308–1311)',
+ 'Ōchō (1311–1312)',
+ 'Shōwa (1312–1317)',
+ 'Bunpō (1317–1319)',
+ 'Genō (1319–1321)',
+ 'Genkō (1321–1324)',
+ 'Shōchū (1324–1326)',
+ 'Karyaku (1326–1329)',
+ 'Gentoku (1329–1331)',
+ 'Genkō (1331–1334)',
+ 'Kenmu (1334–1336)',
+ 'Engen (1336–1340)',
+ 'Kōkoku (1340–1346)',
+ 'Shōhei (1346–1370)',
+ 'Kentoku (1370–1372)',
+ 'Bunchū (1372–1375)',
+ 'Tenju (1375–1379)',
+ 'Kōryaku (1379–1381)',
+ 'Kōwa (1381–1384)',
+ 'Genchū (1384–1392)',
+ 'Meitoku (1384–1387)',
+ 'Kakei (1387–1389)',
+ 'Kōō (1389–1390)',
+ 'Meitoku (1390–1394)',
+ 'Ōei (1394–1428)',
+ 'Shōchō (1428–1429)',
+ 'Eikyō (1429–1441)',
+ 'Kakitsu (1441–1444)',
+ 'Bun’an (1444–1449)',
+ 'Hōtoku (1449–1452)',
+ 'Kyōtoku (1452–1455)',
+ 'Kōshō (1455–1457)',
+ 'Chōroku (1457–1460)',
+ 'Kanshō (1460–1466)',
+ 'Bunshō (1466–1467)',
+ 'Ōnin (1467–1469)',
+ 'Bunmei (1469–1487)',
+ 'Chōkyō (1487–1489)',
+ 'Entoku (1489–1492)',
+ 'Meiō (1492–1501)',
+ 'Bunki (1501–1504)',
+ 'Eishō (1504–1521)',
+ 'Taiei (1521–1528)',
+ 'Kyōroku (1528–1532)',
+ 'Tenbun (1532–1555)',
+ 'Kōji (1555–1558)',
+ 'Eiroku (1558–1570)',
+ 'Genki (1570–1573)',
+ 'Tenshō (1573–1592)',
+ 'Bunroku (1592–1596)',
+ 'Keichō (1596–1615)',
+ 'Genna (1615–1624)',
+ 'Kan’ei (1624–1644)',
+ 'Shōho (1644–1648)',
+ 'Keian (1648–1652)',
+ 'Jōō (1652–1655)',
+ 'Meireki (1655–1658)',
+ 'Manji (1658–1661)',
+ 'Kanbun (1661–1673)',
+ 'Enpō (1673–1681)',
+ 'Tenna (1681–1684)',
+ 'Jōkyō (1684–1688)',
+ 'Genroku (1688–1704)',
+ 'Hōei (1704–1711)',
+ 'Shōtoku (1711–1716)',
+ 'Kyōhō (1716–1736)',
+ 'Genbun (1736–1741)',
+ 'Kanpō (1741–1744)',
+ 'Enkyō (1744–1748)',
+ 'Kan’en (1748–1751)',
+ 'Hōreki (1751–1764)',
+ 'Meiwa (1764–1772)',
+ 'An’ei (1772–1781)',
+ 'Tenmei (1781–1789)',
+ 'Kansei (1789–1801)',
+ 'Kyōwa (1801–1804)',
+ 'Bunka (1804–1818)',
+ 'Bunsei (1818–1830)',
+ 'Tenpō (1830–1844)',
+ 'Kōka (1844–1848)',
+ 'Kaei (1848–1854)',
+ 'Ansei (1854–1860)',
+ 'Man’en (1860–1861)',
+ 'Bunkyū (1861–1864)',
+ 'Genji (1864–1865)',
+ 'Keiō (1865–1868)',
+ 'Meiji',
+ 'Taishō',
+ 'Shōwa',
+ 'Heisei',
+ ],
+ long: [
+ 'Taika (645–650)',
+ 'Hakuchi (650–671)',
+ 'Hakuhō (672–686)',
+ 'Shuchō (686–701)',
+ 'Taihō (701–704)',
+ 'Keiun (704–708)',
+ 'Wadō (708–715)',
+ 'Reiki (715–717)',
+ 'Yōrō (717–724)',
+ 'Jinki (724–729)',
+ 'Tenpyō (729–749)',
+ 'Tenpyō-kampō (749-749)',
+ 'Tenpyō-shōhō (749-757)',
+ 'Tenpyō-hōji (757-765)',
+ 'Tenpyō-jingo (765-767)',
+ 'Jingo-keiun (767-770)',
+ 'Hōki (770–780)',
+ 'Ten-ō (781-782)',
+ 'Enryaku (782–806)',
+ 'Daidō (806–810)',
+ 'Kōnin (810–824)',
+ 'Tenchō (824–834)',
+ 'Jōwa (834–848)',
+ 'Kajō (848–851)',
+ 'Ninju (851–854)',
+ 'Saikō (854–857)',
+ 'Ten-an (857-859)',
+ 'Jōgan (859–877)',
+ 'Gangyō (877–885)',
+ 'Ninna (885–889)',
+ 'Kanpyō (889–898)',
+ 'Shōtai (898–901)',
+ 'Engi (901–923)',
+ 'Enchō (923–931)',
+ 'Jōhei (931–938)',
+ 'Tengyō (938–947)',
+ 'Tenryaku (947–957)',
+ 'Tentoku (957–961)',
+ 'Ōwa (961–964)',
+ 'Kōhō (964–968)',
+ 'Anna (968–970)',
+ 'Tenroku (970–973)',
+ 'Ten’en (973–976)',
+ 'Jōgen (976–978)',
+ 'Tengen (978–983)',
+ 'Eikan (983–985)',
+ 'Kanna (985–987)',
+ 'Eien (987–989)',
+ 'Eiso (989–990)',
+ 'Shōryaku (990–995)',
+ 'Chōtoku (995–999)',
+ 'Chōhō (999–1004)',
+ 'Kankō (1004–1012)',
+ 'Chōwa (1012–1017)',
+ 'Kannin (1017–1021)',
+ 'Jian (1021–1024)',
+ 'Manju (1024–1028)',
+ 'Chōgen (1028–1037)',
+ 'Chōryaku (1037–1040)',
+ 'Chōkyū (1040–1044)',
+ 'Kantoku (1044–1046)',
+ 'Eishō (1046–1053)',
+ 'Tengi (1053–1058)',
+ 'Kōhei (1058–1065)',
+ 'Jiryaku (1065–1069)',
+ 'Enkyū (1069–1074)',
+ 'Shōho (1074–1077)',
+ 'Shōryaku (1077–1081)',
+ 'Eihō (1081–1084)',
+ 'Ōtoku (1084–1087)',
+ 'Kanji (1087–1094)',
+ 'Kahō (1094–1096)',
+ 'Eichō (1096–1097)',
+ 'Jōtoku (1097–1099)',
+ 'Kōwa (1099–1104)',
+ 'Chōji (1104–1106)',
+ 'Kashō (1106–1108)',
+ 'Tennin (1108–1110)',
+ 'Ten-ei (1110-1113)',
+ 'Eikyū (1113–1118)',
+ 'Gen’ei (1118–1120)',
+ 'Hōan (1120–1124)',
+ 'Tenji (1124–1126)',
+ 'Daiji (1126–1131)',
+ 'Tenshō (1131–1132)',
+ 'Chōshō (1132–1135)',
+ 'Hōen (1135–1141)',
+ 'Eiji (1141–1142)',
+ 'Kōji (1142–1144)',
+ 'Ten’yō (1144–1145)',
+ 'Kyūan (1145–1151)',
+ 'Ninpei (1151–1154)',
+ 'Kyūju (1154–1156)',
+ 'Hōgen (1156–1159)',
+ 'Heiji (1159–1160)',
+ 'Eiryaku (1160–1161)',
+ 'Ōho (1161–1163)',
+ 'Chōkan (1163–1165)',
+ 'Eiman (1165–1166)',
+ 'Nin’an (1166–1169)',
+ 'Kaō (1169–1171)',
+ 'Shōan (1171–1175)',
+ 'Angen (1175–1177)',
+ 'Jishō (1177–1181)',
+ 'Yōwa (1181–1182)',
+ 'Juei (1182–1184)',
+ 'Genryaku (1184–1185)',
+ 'Bunji (1185–1190)',
+ 'Kenkyū (1190–1199)',
+ 'Shōji (1199–1201)',
+ 'Kennin (1201–1204)',
+ 'Genkyū (1204–1206)',
+ 'Ken’ei (1206–1207)',
+ 'Jōgen (1207–1211)',
+ 'Kenryaku (1211–1213)',
+ 'Kenpō (1213–1219)',
+ 'Jōkyū (1219–1222)',
+ 'Jōō (1222–1224)',
+ 'Gennin (1224–1225)',
+ 'Karoku (1225–1227)',
+ 'Antei (1227–1229)',
+ 'Kanki (1229–1232)',
+ 'Jōei (1232–1233)',
+ 'Tenpuku (1233–1234)',
+ 'Bunryaku (1234–1235)',
+ 'Katei (1235–1238)',
+ 'Ryakunin (1238–1239)',
+ 'En’ō (1239–1240)',
+ 'Ninji (1240–1243)',
+ 'Kangen (1243–1247)',
+ 'Hōji (1247–1249)',
+ 'Kenchō (1249–1256)',
+ 'Kōgen (1256–1257)',
+ 'Shōka (1257–1259)',
+ 'Shōgen (1259–1260)',
+ 'Bun’ō (1260–1261)',
+ 'Kōchō (1261–1264)',
+ 'Bun’ei (1264–1275)',
+ 'Kenji (1275–1278)',
+ 'Kōan (1278–1288)',
+ 'Shōō (1288–1293)',
+ 'Einin (1293–1299)',
+ 'Shōan (1299–1302)',
+ 'Kengen (1302–1303)',
+ 'Kagen (1303–1306)',
+ 'Tokuji (1306–1308)',
+ 'Enkyō (1308–1311)',
+ 'Ōchō (1311–1312)',
+ 'Shōwa (1312–1317)',
+ 'Bunpō (1317–1319)',
+ 'Genō (1319–1321)',
+ 'Genkō (1321–1324)',
+ 'Shōchū (1324–1326)',
+ 'Karyaku (1326–1329)',
+ 'Gentoku (1329–1331)',
+ 'Genkō (1331–1334)',
+ 'Kenmu (1334–1336)',
+ 'Engen (1336–1340)',
+ 'Kōkoku (1340–1346)',
+ 'Shōhei (1346–1370)',
+ 'Kentoku (1370–1372)',
+ 'Bunchū (1372–1375)',
+ 'Tenju (1375–1379)',
+ 'Kōryaku (1379–1381)',
+ 'Kōwa (1381–1384)',
+ 'Genchū (1384–1392)',
+ 'Meitoku (1384–1387)',
+ 'Kakei (1387–1389)',
+ 'Kōō (1389–1390)',
+ 'Meitoku (1390–1394)',
+ 'Ōei (1394–1428)',
+ 'Shōchō (1428–1429)',
+ 'Eikyō (1429–1441)',
+ 'Kakitsu (1441–1444)',
+ 'Bun’an (1444–1449)',
+ 'Hōtoku (1449–1452)',
+ 'Kyōtoku (1452–1455)',
+ 'Kōshō (1455–1457)',
+ 'Chōroku (1457–1460)',
+ 'Kanshō (1460–1466)',
+ 'Bunshō (1466–1467)',
+ 'Ōnin (1467–1469)',
+ 'Bunmei (1469–1487)',
+ 'Chōkyō (1487–1489)',
+ 'Entoku (1489–1492)',
+ 'Meiō (1492–1501)',
+ 'Bunki (1501–1504)',
+ 'Eishō (1504–1521)',
+ 'Taiei (1521–1528)',
+ 'Kyōroku (1528–1532)',
+ 'Tenbun (1532–1555)',
+ 'Kōji (1555–1558)',
+ 'Eiroku (1558–1570)',
+ 'Genki (1570–1573)',
+ 'Tenshō (1573–1592)',
+ 'Bunroku (1592–1596)',
+ 'Keichō (1596–1615)',
+ 'Genna (1615–1624)',
+ 'Kan’ei (1624–1644)',
+ 'Shōho (1644–1648)',
+ 'Keian (1648–1652)',
+ 'Jōō (1652–1655)',
+ 'Meireki (1655–1658)',
+ 'Manji (1658–1661)',
+ 'Kanbun (1661–1673)',
+ 'Enpō (1673–1681)',
+ 'Tenna (1681–1684)',
+ 'Jōkyō (1684–1688)',
+ 'Genroku (1688–1704)',
+ 'Hōei (1704–1711)',
+ 'Shōtoku (1711–1716)',
+ 'Kyōhō (1716–1736)',
+ 'Genbun (1736–1741)',
+ 'Kanpō (1741–1744)',
+ 'Enkyō (1744–1748)',
+ 'Kan’en (1748–1751)',
+ 'Hōreki (1751–1764)',
+ 'Meiwa (1764–1772)',
+ 'An’ei (1772–1781)',
+ 'Tenmei (1781–1789)',
+ 'Kansei (1789–1801)',
+ 'Kyōwa (1801–1804)',
+ 'Bunka (1804–1818)',
+ 'Bunsei (1818–1830)',
+ 'Tenpō (1830–1844)',
+ 'Kōka (1844–1848)',
+ 'Kaei (1848–1854)',
+ 'Ansei (1854–1860)',
+ 'Man’en (1860–1861)',
+ 'Bunkyū (1861–1864)',
+ 'Genji (1864–1865)',
+ 'Keiō (1865–1868)',
+ 'Meiji',
+ 'Taishō',
+ 'Shōwa',
+ 'Heisei',
+ ],
+ },
+ dayPeriods: {
+ am: 'vorm.',
+ pm: 'nachm.',
+ },
+ },
+ persian: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Farvardin',
+ 'Ordibehesht',
+ 'Khordad',
+ 'Tir',
+ 'Mordad',
+ 'Shahrivar',
+ 'Mehr',
+ 'Aban',
+ 'Azar',
+ 'Dey',
+ 'Bahman',
+ 'Esfand',
+ ],
+ long: [
+ 'Farvardin',
+ 'Ordibehesht',
+ 'Khordad',
+ 'Tir',
+ 'Mordad',
+ 'Shahrivar',
+ 'Mehr',
+ 'Aban',
+ 'Azar',
+ 'Dey',
+ 'Bahman',
+ 'Esfand',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],
+ short: [
+ 'So.',
+ 'Mo.',
+ 'Di.',
+ 'Mi.',
+ 'Do.',
+ 'Fr.',
+ 'Sa.',
+ ],
+ long: [
+ 'Sonntag',
+ 'Montag',
+ 'Dienstag',
+ 'Mittwoch',
+ 'Donnerstag',
+ 'Freitag',
+ 'Samstag',
+ ],
+ },
+ eras: {
+ narrow: ['AP'],
+ short: ['AP'],
+ long: ['AP'],
+ },
+ dayPeriods: {
+ am: 'vorm.',
+ pm: 'nachm.',
+ },
+ },
+ roc: {
+ months: {
+ narrow: [
+ 'J',
+ 'F',
+ 'M',
+ 'A',
+ 'M',
+ 'J',
+ 'J',
+ 'A',
+ 'S',
+ 'O',
+ 'N',
+ 'D',
+ ],
+ short: [
+ 'Jan.',
+ 'Feb.',
+ 'März',
+ 'Apr.',
+ 'Mai',
+ 'Juni',
+ 'Juli',
+ 'Aug.',
+ 'Sep.',
+ 'Okt.',
+ 'Nov.',
+ 'Dez.',
+ ],
+ long: [
+ 'Januar',
+ 'Februar',
+ 'März',
+ 'April',
+ 'Mai',
+ 'Juni',
+ 'Juli',
+ 'August',
+ 'September',
+ 'Oktober',
+ 'November',
+ 'Dezember',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],
+ short: [
+ 'So.',
+ 'Mo.',
+ 'Di.',
+ 'Mi.',
+ 'Do.',
+ 'Fr.',
+ 'Sa.',
+ ],
+ long: [
+ 'Sonntag',
+ 'Montag',
+ 'Dienstag',
+ 'Mittwoch',
+ 'Donnerstag',
+ 'Freitag',
+ 'Samstag',
+ ],
+ },
+ eras: {
+ narrow: ['Before R.O.C.', 'Minguo'],
+ short: ['Before R.O.C.', 'Minguo'],
+ long: ['Before R.O.C.', 'Minguo'],
+ },
+ dayPeriods: {
+ am: 'vorm.',
+ pm: 'nachm.',
+ },
+ },
+ },
},
- islamicc: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["mouh.", "saf.", "rab. aw.", "rab. th.", "joum. oul.", "joum. tha.", "raj.", "chaa.", "ram.", "chaw.", "dhou. q.", "dhou. h."],
- long: ["mouharram", "safar", "rabia al awal", "rabia ath-thani", "joumada al oula", "joumada ath-thania", "rajab", "chaabane", "ramadan", "chawwal", "dhou al qi`da", "dhou al-hijja"]
- },
- days: {
- narrow: ["D", "L", "M", "M", "J", "V", "S"],
- short: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
- long: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]
- },
- eras: {
- narrow: ["AH"],
- short: ["AH"],
- long: ["AH"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
+ number: {
+ nu: ['latn'],
+ patterns: {
+ decimal: {
+ positivePattern: '{number}',
+ negativePattern: '{minusSign}{number}',
+ },
+ currency: {
+ positivePattern: '{number} {currency}',
+ negativePattern: '{minusSign}{number} {currency}',
+ },
+ percent: {
+ positivePattern: '{number} {percentSign}',
+ negativePattern: '{minusSign}{number} {percentSign}',
+ },
+ },
+ symbols: {
+ latn: {
+ decimal: ',',
+ group: '.',
+ nan: 'NaN',
+ plusSign: '+',
+ minusSign: '-',
+ percentSign: '%',
+ infinity: '∞',
+ },
+ },
+ currencies: {
+ ATS: 'öS',
+ AUD: 'AU$',
+ BGM: 'BGK',
+ BGO: 'BGJ',
+ BRL: 'R$',
+ CAD: 'CA$',
+ CNY: 'CN¥',
+ DEM: 'DM',
+ EUR: '€',
+ GBP: '£',
+ HKD: 'HK$',
+ ILS: '₪',
+ INR: '₹',
+ JPY: '¥',
+ KRW: '₩',
+ MXN: 'MX$',
+ NZD: 'NZ$',
+ THB: '฿',
+ TWD: 'NT$',
+ USD: '$',
+ VND: '₫',
+ XAF: 'FCFA',
+ XCD: 'EC$',
+ XOF: 'CFA',
+ XPF: 'CFPF',
+ },
},
- japanese: {
- months: {
- narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
- short: ["janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."],
- long: ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"]
- },
- days: {
- narrow: ["D", "L", "M", "M", "J", "V", "S"],
- short: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
- long: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]
- },
- eras: {
- narrow: ["Taika (645–650)", "Hakuchi (650–671)", "Hakuhō (672–686)", "Shuchō (686–701)", "Taihō (701–704)", "Keiun (704–708)", "Wadō (708–715)", "Reiki (715–717)", "Yōrō (717–724)", "Jinki (724–729)", "Tenpyō (729–749)", "Tenpyō-kampō (749-749)", "Tenpyō-shōhō (749-757)", "Tenpyō-hōji (757-765)", "Tenpyō-jingo (765-767)", "Jingo-keiun (767-770)", "Hōki (770–780)", "Ten-ō (781-782)", "Enryaku (782–806)", "Daidō (806–810)", "Kōnin (810–824)", "Tenchō (824–834)", "Jōwa (834–848)", "Kajō (848–851)", "Ninju (851–854)", "Saikō (854–857)", "Ten-an (857-859)", "Jōgan (859–877)", "Gangyō (877–885)", "Ninna (885–889)", "Kanpyō (889–898)", "Shōtai (898–901)", "Engi (901–923)", "Enchō (923–931)", "Jōhei (931–938)", "Tengyō (938–947)", "Tenryaku (947–957)", "Tentoku (957–961)", "Ōwa (961–964)", "Kōhō (964–968)", "Anna (968–970)", "Tenroku (970–973)", "Ten’en (973–976)", "Jōgen (976–978)", "Tengen (978–983)", "Eikan (983–985)", "Kanna (985–987)", "Eien (987–989)", "Eiso (989–990)", "Shōryaku (990–995)", "Chōtoku (995–999)", "Chōhō (999–1004)", "Kankō (1004–1012)", "Chōwa (1012–1017)", "Kannin (1017–1021)", "Jian (1021–1024)", "Manju (1024–1028)", "Chōgen (1028–1037)", "Chōryaku (1037–1040)", "Chōkyū (1040–1044)", "Kantoku (1044–1046)", "Eishō (1046–1053)", "Tengi (1053–1058)", "Kōhei (1058–1065)", "Jiryaku (1065–1069)", "Enkyū (1069–1074)", "Shōho (1074–1077)", "Shōryaku (1077–1081)", "Eihō (1081–1084)", "Ōtoku (1084–1087)", "Kanji (1087–1094)", "Kahō (1094–1096)", "Eichō (1096–1097)", "Jōtoku (1097–1099)", "Kōwa (1099–1104)", "Chōji (1104–1106)", "Kashō (1106–1108)", "Tennin (1108–1110)", "Ten-ei (1110-1113)", "Eikyū (1113–1118)", "Gen’ei (1118–1120)", "Hōan (1120–1124)", "Tenji (1124–1126)", "Daiji (1126–1131)", "Tenshō (1131–1132)", "Chōshō (1132–1135)", "Hōen (1135–1141)", "Eiji (1141–1142)", "Kōji (1142–1144)", "Ten’yō (1144–1145)", "Kyūan (1145–1151)", "Ninpei (1151–1154)", "Kyūju (1154–1156)", "Hōgen (1156–1159)", "Heiji (1159–1160)", "Eiryaku (1160–1161)", "Ōho (1161–1163)", "Chōkan (1163–1165)", "Eiman (1165–1166)", "Nin’an (1166–1169)", "Kaō (1169–1171)", "Shōan (1171–1175)", "Angen (1175–1177)", "Jishō (1177–1181)", "Yōwa (1181–1182)", "Juei (1182–1184)", "Genryaku (1184–1185)", "Bunji (1185–1190)", "Kenkyū (1190–1199)", "Shōji (1199–1201)", "Kennin (1201–1204)", "Genkyū (1204–1206)", "Ken’ei (1206–1207)", "Jōgen (1207–1211)", "Kenryaku (1211–1213)", "Kenpō (1213–1219)", "Jōkyū (1219–1222)", "Jōō (1222–1224)", "Gennin (1224–1225)", "Karoku (1225–1227)", "Antei (1227–1229)", "Kanki (1229–1232)", "Jōei (1232–1233)", "Tenpuku (1233–1234)", "Bunryaku (1234–1235)", "Katei (1235–1238)", "Ryakunin (1238–1239)", "En’ō (1239–1240)", "Ninji (1240–1243)", "Kangen (1243–1247)", "Hōji (1247–1249)", "Kenchō (1249–1256)", "Kōgen (1256–1257)", "Shōka (1257–1259)", "Shōgen (1259–1260)", "Bun’ō (1260–1261)", "Kōchō (1261–1264)", "Bun’ei (1264–1275)", "Kenji (1275–1278)", "Kōan (1278–1288)", "Shōō (1288–1293)", "Einin (1293–1299)", "Shōan (1299–1302)", "Kengen (1302–1303)", "Kagen (1303–1306)", "Tokuji (1306–1308)", "Enkyō (1308–1311)", "Ōchō (1311–1312)", "Shōwa (1312–1317)", "Bunpō (1317–1319)", "Genō (1319–1321)", "Genkō (1321–1324)", "Shōchū (1324–1326)", "Karyaku (1326–1329)", "Gentoku (1329–1331)", "Genkō (1331–1334)", "Kenmu (1334–1336)", "Engen (1336–1340)", "Kōkoku (1340–1346)", "Shōhei (1346–1370)", "Kentoku (1370–1372)", "Bunchū (1372–1375)", "Tenju (1375–1379)", "Kōryaku (1379–1381)", "Kōwa (1381–1384)", "Genchū (1384–1392)", "Meitoku (1384–1387)", "Kakei (1387–1389)", "Kōō (1389–1390)", "Meitoku (1390–1394)", "Ōei (1394–1428)", "Shōchō (1428–1429)", "Eikyō (1429–1441)", "Kakitsu (1441–1444)", "Bun’an (1444–1449)", "Hōtoku (1449–1452)", "Kyōtoku (1452–1455)", "Kōshō (1455–1457)", "Chōroku (1457–1460)", "Kanshō (1460–1466)", "Bunshō (1466–1467)", "Ōnin (1467–1469)", "Bunmei (1469–1487)", "Chōkyō (1487–1489)", "Entoku (1489–1492)", "Meiō (1492–1501)", "Bunki (1501–1504)", "Eishō (1504–1521)", "Taiei (1521–1528)", "Kyōroku (1528–1532)", "Tenbun (1532–1555)", "Kōji (1555–1558)", "Eiroku (1558–1570)", "Genki (1570–1573)", "Tenshō (1573–1592)", "Bunroku (1592–1596)", "Keichō (1596–1615)", "Genna (1615–1624)", "Kan’ei (1624–1644)", "Shōho (1644–1648)", "Keian (1648–1652)", "Jōō (1652–1655)", "Meireki (1655–1658)", "Manji (1658–1661)", "Kanbun (1661–1673)", "Enpō (1673–1681)", "Tenna (1681–1684)", "Jōkyō (1684–1688)", "Genroku (1688–1704)", "Hōei (1704–1711)", "Shōtoku (1711–1716)", "Kyōhō (1716–1736)", "Genbun (1736–1741)", "Kanpō (1741–1744)", "Enkyō (1744–1748)", "Kan’en (1748–1751)", "Hōreki (1751–1764)", "Meiwa (1764–1772)", "An’ei (1772–1781)", "Tenmei (1781–1789)", "Kansei (1789–1801)", "Kyōwa (1801–1804)", "Bunka (1804–1818)", "Bunsei (1818–1830)", "Tenpō (1830–1844)", "Kōka (1844–1848)", "Kaei (1848–1854)", "Ansei (1854–1860)", "Man’en (1860–1861)", "Bunkyū (1861–1864)", "Genji (1864–1865)", "Keiō (1865–1868)", "M", "T", "S", "H"],
- short: ["Taika (645–650)", "Hakuchi (650–671)", "Hakuhō (672–686)", "Shuchō (686–701)", "Taihō (701–704)", "Keiun (704–708)", "Wadō (708–715)", "Reiki (715–717)", "Yōrō (717–724)", "Jinki (724–729)", "Tenpyō (729–749)", "Tenpyō-kampō (749-749)", "Tenpyō-shōhō (749-757)", "Tenpyō-hōji (757-765)", "Tenpyō-jingo (765-767)", "Jingo-keiun (767-770)", "Hōki (770–780)", "Ten-ō (781-782)", "Enryaku (782–806)", "Daidō (806–810)", "Kōnin (810–824)", "Tenchō (824–834)", "Jōwa (834–848)", "Kajō (848–851)", "Ninju (851–854)", "Saikō (854–857)", "Ten-an (857-859)", "Jōgan (859–877)", "Gangyō (877–885)", "Ninna (885–889)", "Kanpyō (889–898)", "Shōtai (898–901)", "Engi (901–923)", "Enchō (923–931)", "Jōhei (931–938)", "Tengyō (938–947)", "Tenryaku (947–957)", "Tentoku (957–961)", "Ōwa (961–964)", "Kōhō (964–968)", "Anna (968–970)", "Tenroku (970–973)", "Ten’en (973–976)", "Jōgen (976–978)", "Tengen (978–983)", "Eikan (983–985)", "Kanna (985–987)", "Eien (987–989)", "Eiso (989–990)", "Shōryaku (990–995)", "Chōtoku (995–999)", "Chōhō (999–1004)", "Kankō (1004–1012)", "Chōwa (1012–1017)", "Kannin (1017–1021)", "Jian (1021–1024)", "Manju (1024–1028)", "Chōgen (1028–1037)", "Chōryaku (1037–1040)", "Chōkyū (1040–1044)", "Kantoku (1044–1046)", "Eishō (1046–1053)", "Tengi (1053–1058)", "Kōhei (1058–1065)", "Jiryaku (1065–1069)", "Enkyū (1069–1074)", "Shōho (1074–1077)", "Shōryaku (1077–1081)", "Eihō (1081–1084)", "Ōtoku (1084–1087)", "Kanji (1087–1094)", "Kahō (1094–1096)", "Eichō (1096–1097)", "Jōtoku (1097–1099)", "Kōwa (1099–1104)", "Chōji (1104–1106)", "Kashō (1106–1108)", "Tennin (1108–1110)", "Ten-ei (1110-1113)", "Eikyū (1113–1118)", "Gen’ei (1118–1120)", "Hōan (1120–1124)", "Tenji (1124–1126)", "Daiji (1126–1131)", "Tenshō (1131–1132)", "Chōshō (1132–1135)", "Hōen (1135–1141)", "Eiji (1141–1142)", "Kōji (1142–1144)", "Ten’yō (1144–1145)", "Kyūan (1145–1151)", "Ninpei (1151–1154)", "Kyūju (1154–1156)", "Hōgen (1156–1159)", "Heiji (1159–1160)", "Eiryaku (1160–1161)", "Ōho (1161–1163)", "Chōkan (1163–1165)", "Eiman (1165–1166)", "Nin’an (1166–1169)", "Kaō (1169–1171)", "Shōan (1171–1175)", "Angen (1175–1177)", "Jishō (1177–1181)", "Yōwa (1181–1182)", "Juei (1182–1184)", "Genryaku (1184–1185)", "Bunji (1185–1190)", "Kenkyū (1190–1199)", "Shōji (1199–1201)", "Kennin (1201–1204)", "Genkyū (1204–1206)", "Ken’ei (1206–1207)", "Jōgen (1207–1211)", "Kenryaku (1211–1213)", "Kenpō (1213–1219)", "Jōkyū (1219–1222)", "Jōō (1222–1224)", "Gennin (1224–1225)", "Karoku (1225–1227)", "Antei (1227–1229)", "Kanki (1229–1232)", "Jōei (1232–1233)", "Tenpuku (1233–1234)", "Bunryaku (1234–1235)", "Katei (1235–1238)", "Ryakunin (1238–1239)", "En’ō (1239–1240)", "Ninji (1240–1243)", "Kangen (1243–1247)", "Hōji (1247–1249)", "Kenchō (1249–1256)", "Kōgen (1256–1257)", "Shōka (1257–1259)", "Shōgen (1259–1260)", "Bun’ō (1260–1261)", "Kōchō (1261–1264)", "Bun’ei (1264–1275)", "Kenji (1275–1278)", "Kōan (1278–1288)", "Shōō (1288–1293)", "Einin (1293–1299)", "Shōan (1299–1302)", "Kengen (1302–1303)", "Kagen (1303–1306)", "Tokuji (1306–1308)", "Enkyō (1308–1311)", "Ōchō (1311–1312)", "Shōwa (1312–1317)", "Bunpō (1317–1319)", "Genō (1319–1321)", "Genkō (1321–1324)", "Shōchū (1324–1326)", "Karyaku (1326–1329)", "Gentoku (1329–1331)", "Genkō (1331–1334)", "Kenmu (1334–1336)", "Engen (1336–1340)", "Kōkoku (1340–1346)", "Shōhei (1346–1370)", "Kentoku (1370–1372)", "Bunchū (1372–1375)", "Tenju (1375–1379)", "Kōryaku (1379–1381)", "Kōwa (1381–1384)", "Genchū (1384–1392)", "Meitoku (1384–1387)", "Kakei (1387–1389)", "Kōō (1389–1390)", "Meitoku (1390–1394)", "Ōei (1394–1428)", "Shōchō (1428–1429)", "Eikyō (1429–1441)", "Kakitsu (1441–1444)", "Bun’an (1444–1449)", "Hōtoku (1449–1452)", "Kyōtoku (1452–1455)", "Kōshō (1455–1457)", "Chōroku (1457–1460)", "Kanshō (1460–1466)", "Bunshō (1466–1467)", "Ōnin (1467–1469)", "Bunmei (1469–1487)", "Chōkyō (1487–1489)", "Entoku (1489–1492)", "Meiō (1492–1501)", "Bunki (1501–1504)", "Eishō (1504–1521)", "Taiei (1521–1528)", "Kyōroku (1528–1532)", "Tenbun (1532–1555)", "Kōji (1555–1558)", "Eiroku (1558–1570)", "Genki (1570–1573)", "Tenshō (1573–1592)", "Bunroku (1592–1596)", "Keichō (1596–1615)", "Genna (1615–1624)", "Kan’ei (1624–1644)", "Shōho (1644–1648)", "Keian (1648–1652)", "Jōō (1652–1655)", "Meireki (1655–1658)", "Manji (1658–1661)", "Kanbun (1661–1673)", "Enpō (1673–1681)", "Tenna (1681–1684)", "Jōkyō (1684–1688)", "Genroku (1688–1704)", "Hōei (1704–1711)", "Shōtoku (1711–1716)", "Kyōhō (1716–1736)", "Genbun (1736–1741)", "Kanpō (1741–1744)", "Enkyō (1744–1748)", "Kan’en (1748–1751)", "Hōreki (1751–1764)", "Meiwa (1764–1772)", "An’ei (1772–1781)", "Tenmei (1781–1789)", "Kansei (1789–1801)", "Kyōwa (1801–1804)", "Bunka (1804–1818)", "Bunsei (1818–1830)", "Tenpō (1830–1844)", "Kōka (1844–1848)", "Kaei (1848–1854)", "Ansei (1854–1860)", "Man’en (1860–1861)", "Bunkyū (1861–1864)", "Genji (1864–1865)", "Keiō (1865–1868)", "Meiji", "Taishō", "Shōwa", "Heisei"],
- long: ["Taika (645–650)", "Hakuchi (650–671)", "Hakuhō (672–686)", "Shuchō (686–701)", "Taihō (701–704)", "Keiun (704–708)", "Wadō (708–715)", "Reiki (715–717)", "Yōrō (717–724)", "Jinki (724–729)", "Tenpyō (729–749)", "Tenpyō-kampō (749-749)", "Tenpyō-shōhō (749-757)", "Tenpyō-hōji (757-765)", "Tenpyō-jingo (765-767)", "Jingo-keiun (767-770)", "Hōki (770–780)", "Ten-ō (781-782)", "Enryaku (782–806)", "Daidō (806–810)", "Kōnin (810–824)", "Tenchō (824–834)", "Jōwa (834–848)", "Kajō (848–851)", "Ninju (851–854)", "Saikō (854–857)", "Ten-an (857-859)", "Jōgan (859–877)", "Gangyō (877–885)", "Ninna (885–889)", "Kanpyō (889–898)", "Shōtai (898–901)", "Engi (901–923)", "Enchō (923–931)", "Jōhei (931–938)", "Tengyō (938–947)", "Tenryaku (947–957)", "Tentoku (957–961)", "Ōwa (961–964)", "Kōhō (964–968)", "Anna (968–970)", "Tenroku (970–973)", "Ten’en (973–976)", "Jōgen (976–978)", "Tengen (978–983)", "Eikan (983–985)", "Kanna (985–987)", "Eien (987–989)", "Eiso (989–990)", "Shōryaku (990–995)", "Chōtoku (995–999)", "Chōhō (999–1004)", "Kankō (1004–1012)", "Chōwa (1012–1017)", "Kannin (1017–1021)", "Jian (1021–1024)", "Manju (1024–1028)", "Chōgen (1028–1037)", "Chōryaku (1037–1040)", "Chōkyū (1040–1044)", "Kantoku (1044–1046)", "Eishō (1046–1053)", "Tengi (1053–1058)", "Kōhei (1058–1065)", "Jiryaku (1065–1069)", "Enkyū (1069–1074)", "Shōho (1074–1077)", "Shōryaku (1077–1081)", "Eihō (1081–1084)", "Ōtoku (1084–1087)", "Kanji (1087–1094)", "Kahō (1094–1096)", "Eichō (1096–1097)", "Jōtoku (1097–1099)", "Kōwa (1099–1104)", "Chōji (1104–1106)", "Kashō (1106–1108)", "Tennin (1108–1110)", "Ten-ei (1110-1113)", "Eikyū (1113–1118)", "Gen’ei (1118–1120)", "Hōan (1120–1124)", "Tenji (1124–1126)", "Daiji (1126–1131)", "Tenshō (1131–1132)", "Chōshō (1132–1135)", "Hōen (1135–1141)", "Eiji (1141–1142)", "Kōji (1142–1144)", "Ten’yō (1144–1145)", "Kyūan (1145–1151)", "Ninpei (1151–1154)", "Kyūju (1154–1156)", "Hōgen (1156–1159)", "Heiji (1159–1160)", "Eiryaku (1160–1161)", "Ōho (1161–1163)", "Chōkan (1163–1165)", "Eiman (1165–1166)", "Nin’an (1166–1169)", "Kaō (1169–1171)", "Shōan (1171–1175)", "Angen (1175–1177)", "Jishō (1177–1181)", "Yōwa (1181–1182)", "Juei (1182–1184)", "Genryaku (1184–1185)", "Bunji (1185–1190)", "Kenkyū (1190–1199)", "Shōji (1199–1201)", "Kennin (1201–1204)", "Genkyū (1204–1206)", "Ken’ei (1206–1207)", "Jōgen (1207–1211)", "Kenryaku (1211–1213)", "Kenpō (1213–1219)", "Jōkyū (1219–1222)", "Jōō (1222–1224)", "Gennin (1224–1225)", "Karoku (1225–1227)", "Antei (1227–1229)", "Kanki (1229–1232)", "Jōei (1232–1233)", "Tenpuku (1233–1234)", "Bunryaku (1234–1235)", "Katei (1235–1238)", "Ryakunin (1238–1239)", "En’ō (1239–1240)", "Ninji (1240–1243)", "Kangen (1243–1247)", "Hōji (1247–1249)", "Kenchō (1249–1256)", "Kōgen (1256–1257)", "Shōka (1257–1259)", "Shōgen (1259–1260)", "Bun’ō (1260–1261)", "Kōchō (1261–1264)", "Bun’ei (1264–1275)", "Kenji (1275–1278)", "Kōan (1278–1288)", "Shōō (1288–1293)", "Einin (1293–1299)", "Shōan (1299–1302)", "Kengen (1302–1303)", "Kagen (1303–1306)", "Tokuji (1306–1308)", "Enkyō (1308–1311)", "Ōchō (1311–1312)", "Shōwa (1312–1317)", "Bunpō (1317–1319)", "Genō (1319–1321)", "Genkō (1321–1324)", "Shōchū (1324–1326)", "Karyaku (1326–1329)", "Gentoku (1329–1331)", "Genkō (1331–1334)", "Kenmu (1334–1336)", "Engen (1336–1340)", "Kōkoku (1340–1346)", "Shōhei (1346–1370)", "Kentoku (1370–1372)", "Bunchū (1372–1375)", "Tenju (1375–1379)", "Kōryaku (1379–1381)", "Kōwa (1381–1384)", "Genchū (1384–1392)", "Meitoku (1384–1387)", "Kakei (1387–1389)", "Kōō (1389–1390)", "Meitoku (1390–1394)", "Ōei (1394–1428)", "Shōchō (1428–1429)", "Eikyō (1429–1441)", "Kakitsu (1441–1444)", "Bun’an (1444–1449)", "Hōtoku (1449–1452)", "Kyōtoku (1452–1455)", "Kōshō (1455–1457)", "Chōroku (1457–1460)", "Kanshō (1460–1466)", "Bunshō (1466–1467)", "Ōnin (1467–1469)", "Bunmei (1469–1487)", "Chōkyō (1487–1489)", "Entoku (1489–1492)", "Meiō (1492–1501)", "Bunki (1501–1504)", "Eishō (1504–1521)", "Taiei (1521–1528)", "Kyōroku (1528–1532)", "Tenbun (1532–1555)", "Kōji (1555–1558)", "Eiroku (1558–1570)", "Genki (1570–1573)", "Tenshō (1573–1592)", "Bunroku (1592–1596)", "Keichō (1596–1615)", "Genna (1615–1624)", "Kan’ei (1624–1644)", "Shōho (1644–1648)", "Keian (1648–1652)", "Jōō (1652–1655)", "Meireki (1655–1658)", "Manji (1658–1661)", "Kanbun (1661–1673)", "Enpō (1673–1681)", "Tenna (1681–1684)", "Jōkyō (1684–1688)", "Genroku (1688–1704)", "Hōei (1704–1711)", "Shōtoku (1711–1716)", "Kyōhō (1716–1736)", "Genbun (1736–1741)", "Kanpō (1741–1744)", "Enkyō (1744–1748)", "Kan’en (1748–1751)", "Hōreki (1751–1764)", "Meiwa (1764–1772)", "An’ei (1772–1781)", "Tenmei (1781–1789)", "Kansei (1789–1801)", "Kyōwa (1801–1804)", "Bunka (1804–1818)", "Bunsei (1818–1830)", "Tenpō (1830–1844)", "Kōka (1844–1848)", "Kaei (1848–1854)", "Ansei (1854–1860)", "Man’en (1860–1861)", "Bunkyū (1861–1864)", "Genji (1864–1865)", "Keiō (1865–1868)", "Meiji", "Taishō", "Shōwa", "Heisei"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
+ });
+
+ // Intl.~locale.en-GB
+ IntlPolyfill.__addLocaleData({
+ locale: 'en-GB',
+ date: {
+ ca: [
+ 'gregory',
+ 'buddhist',
+ 'chinese',
+ 'coptic',
+ 'dangi',
+ 'ethioaa',
+ 'ethiopic',
+ 'generic',
+ 'hebrew',
+ 'indian',
+ 'islamic',
+ 'islamicc',
+ 'japanese',
+ 'persian',
+ 'roc',
+ ],
+ hourNo0: true,
+ hour12: false,
+ formats: {
+ short: '{1}, {0}',
+ medium: '{1}, {0}',
+ full: "{1} 'at' {0}",
+ long: "{1} 'at' {0}",
+ availableFormats: {
+ d: 'd',
+ E: 'ccc',
+ Ed: 'E d',
+ Ehm: 'E h:mm a',
+ EHm: 'E HH:mm',
+ Ehms: 'E h:mm:ss a',
+ EHms: 'E HH:mm:ss',
+ Gy: 'y G',
+ GyMMM: 'MMM y G',
+ GyMMMd: 'd MMM y G',
+ GyMMMEd: 'E, d MMM y G',
+ h: 'h a',
+ H: 'HH',
+ hm: 'h:mm a',
+ Hm: 'HH:mm',
+ hms: 'h:mm:ss a',
+ Hms: 'HH:mm:ss',
+ hmsv: 'h:mm:ss a v',
+ Hmsv: 'HH:mm:ss v',
+ hmv: 'h:mm a v',
+ Hmv: 'HH:mm v',
+ M: 'L',
+ Md: 'dd/MM',
+ MEd: 'E, dd/MM',
+ MMdd: 'dd/MM',
+ MMM: 'LLL',
+ MMMd: 'd MMM',
+ MMMEd: 'E, d MMM',
+ MMMMd: 'd MMMM',
+ ms: 'mm:ss',
+ y: 'y',
+ yM: 'MM/y',
+ yMd: 'dd/MM/y',
+ yMEd: 'E, dd/MM/y',
+ yMMM: 'MMM y',
+ yMMMd: 'd MMM y',
+ yMMMEd: 'E, d MMM y',
+ yMMMM: 'MMMM y',
+ yQQQ: 'QQQ y',
+ yQQQQ: 'QQQQ y',
+ },
+ dateFormats: {
+ yMMMMEEEEd: 'EEEE, d MMMM y',
+ yMMMMd: 'd MMMM y',
+ yMMMd: 'd MMM y',
+ yMd: 'dd/MM/y',
+ },
+ timeFormats: {
+ hmmsszzzz: 'HH:mm:ss zzzz',
+ hmsz: 'HH:mm:ss z',
+ hms: 'HH:mm:ss',
+ hm: 'HH:mm',
+ },
+ },
+ calendars: {
+ buddhist: {
+ months: {
+ narrow: [
+ 'J',
+ 'F',
+ 'M',
+ 'A',
+ 'M',
+ 'J',
+ 'J',
+ 'A',
+ 'S',
+ 'O',
+ 'N',
+ 'D',
+ ],
+ short: [
+ 'Jan',
+ 'Feb',
+ 'Mar',
+ 'Apr',
+ 'May',
+ 'Jun',
+ 'Jul',
+ 'Aug',
+ 'Sep',
+ 'Oct',
+ 'Nov',
+ 'Dec',
+ ],
+ long: [
+ 'January',
+ 'February',
+ 'March',
+ 'April',
+ 'May',
+ 'June',
+ 'July',
+ 'August',
+ 'September',
+ 'October',
+ 'November',
+ 'December',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['BE'],
+ short: ['BE'],
+ long: ['BE'],
+ },
+ dayPeriods: {
+ am: 'am',
+ pm: 'pm',
+ },
+ },
+ chinese: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Mo1',
+ 'Mo2',
+ 'Mo3',
+ 'Mo4',
+ 'Mo5',
+ 'Mo6',
+ 'Mo7',
+ 'Mo8',
+ 'Mo9',
+ 'Mo10',
+ 'Mo11',
+ 'Mo12',
+ ],
+ long: [
+ 'Month1',
+ 'Month2',
+ 'Month3',
+ 'Month4',
+ 'Month5',
+ 'Month6',
+ 'Month7',
+ 'Month8',
+ 'Month9',
+ 'Month10',
+ 'Month11',
+ 'Month12',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ dayPeriods: {
+ am: 'am',
+ pm: 'pm',
+ },
+ },
+ coptic: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ ],
+ short: [
+ 'Tout',
+ 'Baba',
+ 'Hator',
+ 'Kiahk',
+ 'Toba',
+ 'Amshir',
+ 'Baramhat',
+ 'Baramouda',
+ 'Bashans',
+ 'Paona',
+ 'Epep',
+ 'Mesra',
+ 'Nasie',
+ ],
+ long: [
+ 'Tout',
+ 'Baba',
+ 'Hator',
+ 'Kiahk',
+ 'Toba',
+ 'Amshir',
+ 'Baramhat',
+ 'Baramouda',
+ 'Bashans',
+ 'Paona',
+ 'Epep',
+ 'Mesra',
+ 'Nasie',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['ERA0', 'ERA1'],
+ short: ['ERA0', 'ERA1'],
+ long: ['ERA0', 'ERA1'],
+ },
+ dayPeriods: {
+ am: 'am',
+ pm: 'pm',
+ },
+ },
+ dangi: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Mo1',
+ 'Mo2',
+ 'Mo3',
+ 'Mo4',
+ 'Mo5',
+ 'Mo6',
+ 'Mo7',
+ 'Mo8',
+ 'Mo9',
+ 'Mo10',
+ 'Mo11',
+ 'Mo12',
+ ],
+ long: [
+ 'Month1',
+ 'Month2',
+ 'Month3',
+ 'Month4',
+ 'Month5',
+ 'Month6',
+ 'Month7',
+ 'Month8',
+ 'Month9',
+ 'Month10',
+ 'Month11',
+ 'Month12',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ dayPeriods: {
+ am: 'am',
+ pm: 'pm',
+ },
+ },
+ ethiopic: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ ],
+ short: [
+ 'Meskerem',
+ 'Tekemt',
+ 'Hedar',
+ 'Tahsas',
+ 'Ter',
+ 'Yekatit',
+ 'Megabit',
+ 'Miazia',
+ 'Genbot',
+ 'Sene',
+ 'Hamle',
+ 'Nehasse',
+ 'Pagumen',
+ ],
+ long: [
+ 'Meskerem',
+ 'Tekemt',
+ 'Hedar',
+ 'Tahsas',
+ 'Ter',
+ 'Yekatit',
+ 'Megabit',
+ 'Miazia',
+ 'Genbot',
+ 'Sene',
+ 'Hamle',
+ 'Nehasse',
+ 'Pagumen',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['ERA0', 'ERA1'],
+ short: ['ERA0', 'ERA1'],
+ long: ['ERA0', 'ERA1'],
+ },
+ dayPeriods: {
+ am: 'am',
+ pm: 'pm',
+ },
+ },
+ ethioaa: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ ],
+ short: [
+ 'Meskerem',
+ 'Tekemt',
+ 'Hedar',
+ 'Tahsas',
+ 'Ter',
+ 'Yekatit',
+ 'Megabit',
+ 'Miazia',
+ 'Genbot',
+ 'Sene',
+ 'Hamle',
+ 'Nehasse',
+ 'Pagumen',
+ ],
+ long: [
+ 'Meskerem',
+ 'Tekemt',
+ 'Hedar',
+ 'Tahsas',
+ 'Ter',
+ 'Yekatit',
+ 'Megabit',
+ 'Miazia',
+ 'Genbot',
+ 'Sene',
+ 'Hamle',
+ 'Nehasse',
+ 'Pagumen',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['ERA0'],
+ short: ['ERA0'],
+ long: ['ERA0'],
+ },
+ dayPeriods: {
+ am: 'am',
+ pm: 'pm',
+ },
+ },
+ generic: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'M01',
+ 'M02',
+ 'M03',
+ 'M04',
+ 'M05',
+ 'M06',
+ 'M07',
+ 'M08',
+ 'M09',
+ 'M10',
+ 'M11',
+ 'M12',
+ ],
+ long: [
+ 'M01',
+ 'M02',
+ 'M03',
+ 'M04',
+ 'M05',
+ 'M06',
+ 'M07',
+ 'M08',
+ 'M09',
+ 'M10',
+ 'M11',
+ 'M12',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['ERA0', 'ERA1'],
+ short: ['ERA0', 'ERA1'],
+ long: ['ERA0', 'ERA1'],
+ },
+ dayPeriods: {
+ am: 'am',
+ pm: 'pm',
+ },
+ },
+ gregory: {
+ months: {
+ narrow: [
+ 'J',
+ 'F',
+ 'M',
+ 'A',
+ 'M',
+ 'J',
+ 'J',
+ 'A',
+ 'S',
+ 'O',
+ 'N',
+ 'D',
+ ],
+ short: [
+ 'Jan',
+ 'Feb',
+ 'Mar',
+ 'Apr',
+ 'May',
+ 'Jun',
+ 'Jul',
+ 'Aug',
+ 'Sep',
+ 'Oct',
+ 'Nov',
+ 'Dec',
+ ],
+ long: [
+ 'January',
+ 'February',
+ 'March',
+ 'April',
+ 'May',
+ 'June',
+ 'July',
+ 'August',
+ 'September',
+ 'October',
+ 'November',
+ 'December',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['B', 'A', 'BCE', 'CE'],
+ short: ['BC', 'AD', 'BCE', 'CE'],
+ long: [
+ 'Before Christ',
+ 'Anno Domini',
+ 'Before Common Era',
+ 'Common Era',
+ ],
+ },
+ dayPeriods: {
+ am: 'am',
+ pm: 'pm',
+ },
+ },
+ hebrew: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ '7',
+ ],
+ short: [
+ 'Tishri',
+ 'Heshvan',
+ 'Kislev',
+ 'Tevet',
+ 'Shevat',
+ 'Adar I',
+ 'Adar',
+ 'Nisan',
+ 'Iyar',
+ 'Sivan',
+ 'Tamuz',
+ 'Av',
+ 'Elul',
+ 'Adar II',
+ ],
+ long: [
+ 'Tishri',
+ 'Heshvan',
+ 'Kislev',
+ 'Tevet',
+ 'Shevat',
+ 'Adar I',
+ 'Adar',
+ 'Nisan',
+ 'Iyar',
+ 'Sivan',
+ 'Tamuz',
+ 'Av',
+ 'Elul',
+ 'Adar II',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['AM'],
+ short: ['AM'],
+ long: ['AM'],
+ },
+ dayPeriods: {
+ am: 'am',
+ pm: 'pm',
+ },
+ },
+ indian: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Chaitra',
+ 'Vaisakha',
+ 'Jyaistha',
+ 'Asadha',
+ 'Sravana',
+ 'Bhadra',
+ 'Asvina',
+ 'Kartika',
+ 'Agrahayana',
+ 'Pausa',
+ 'Magha',
+ 'Phalguna',
+ ],
+ long: [
+ 'Chaitra',
+ 'Vaisakha',
+ 'Jyaistha',
+ 'Asadha',
+ 'Sravana',
+ 'Bhadra',
+ 'Asvina',
+ 'Kartika',
+ 'Agrahayana',
+ 'Pausa',
+ 'Magha',
+ 'Phalguna',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['Saka'],
+ short: ['Saka'],
+ long: ['Saka'],
+ },
+ dayPeriods: {
+ am: 'am',
+ pm: 'pm',
+ },
+ },
+ islamic: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Muh.',
+ 'Saf.',
+ 'Rab. I',
+ 'Rab. II',
+ 'Jum. I',
+ 'Jum. II',
+ 'Raj.',
+ 'Sha.',
+ 'Ram.',
+ 'Shaw.',
+ 'Dhuʻl-Q.',
+ 'Dhuʻl-H.',
+ ],
+ long: [
+ 'Muharram',
+ 'Safar',
+ 'Rabiʻ I',
+ 'Rabiʻ II',
+ 'Jumada I',
+ 'Jumada II',
+ 'Rajab',
+ 'Shaʻban',
+ 'Ramadan',
+ 'Shawwal',
+ 'Dhuʻl-Qiʻdah',
+ 'Dhuʻl-Hijjah',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['AH'],
+ short: ['AH'],
+ long: ['AH'],
+ },
+ dayPeriods: {
+ am: 'am',
+ pm: 'pm',
+ },
+ },
+ islamicc: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Muh.',
+ 'Saf.',
+ 'Rab. I',
+ 'Rab. II',
+ 'Jum. I',
+ 'Jum. II',
+ 'Raj.',
+ 'Sha.',
+ 'Ram.',
+ 'Shaw.',
+ 'Dhuʻl-Q.',
+ 'Dhuʻl-H.',
+ ],
+ long: [
+ 'Muharram',
+ 'Safar',
+ 'Rabiʻ I',
+ 'Rabiʻ II',
+ 'Jumada I',
+ 'Jumada II',
+ 'Rajab',
+ 'Shaʻban',
+ 'Ramadan',
+ 'Shawwal',
+ 'Dhuʻl-Qiʻdah',
+ 'Dhuʻl-Hijjah',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['AH'],
+ short: ['AH'],
+ long: ['AH'],
+ },
+ dayPeriods: {
+ am: 'am',
+ pm: 'pm',
+ },
+ },
+ japanese: {
+ months: {
+ narrow: [
+ 'J',
+ 'F',
+ 'M',
+ 'A',
+ 'M',
+ 'J',
+ 'J',
+ 'A',
+ 'S',
+ 'O',
+ 'N',
+ 'D',
+ ],
+ short: [
+ 'Jan',
+ 'Feb',
+ 'Mar',
+ 'Apr',
+ 'May',
+ 'Jun',
+ 'Jul',
+ 'Aug',
+ 'Sep',
+ 'Oct',
+ 'Nov',
+ 'Dec',
+ ],
+ long: [
+ 'January',
+ 'February',
+ 'March',
+ 'April',
+ 'May',
+ 'June',
+ 'July',
+ 'August',
+ 'September',
+ 'October',
+ 'November',
+ 'December',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: [
+ 'Taika (645–650)',
+ 'Hakuchi (650–671)',
+ 'Hakuhō (672–686)',
+ 'Shuchō (686–701)',
+ 'Taihō (701–704)',
+ 'Keiun (704–708)',
+ 'Wadō (708–715)',
+ 'Reiki (715–717)',
+ 'Yōrō (717–724)',
+ 'Jinki (724–729)',
+ 'Tenpyō (729–749)',
+ 'Tenpyō-kampō (749-749)',
+ 'Tenpyō-shōhō (749-757)',
+ 'Tenpyō-hōji (757-765)',
+ 'Tenpyō-jingo (765-767)',
+ 'Jingo-keiun (767-770)',
+ 'Hōki (770–780)',
+ 'Ten-ō (781-782)',
+ 'Enryaku (782–806)',
+ 'Daidō (806–810)',
+ 'Kōnin (810–824)',
+ 'Tenchō (824–834)',
+ 'Jōwa (834–848)',
+ 'Kajō (848–851)',
+ 'Ninju (851–854)',
+ 'Saikō (854–857)',
+ 'Ten-an (857-859)',
+ 'Jōgan (859–877)',
+ 'Gangyō (877–885)',
+ 'Ninna (885–889)',
+ 'Kanpyō (889–898)',
+ 'Shōtai (898–901)',
+ 'Engi (901–923)',
+ 'Enchō (923–931)',
+ 'Jōhei (931–938)',
+ 'Tengyō (938–947)',
+ 'Tenryaku (947–957)',
+ 'Tentoku (957–961)',
+ 'Ōwa (961–964)',
+ 'Kōhō (964–968)',
+ 'Anna (968–970)',
+ 'Tenroku (970–973)',
+ 'Ten’en (973–976)',
+ 'Jōgen (976–978)',
+ 'Tengen (978–983)',
+ 'Eikan (983–985)',
+ 'Kanna (985–987)',
+ 'Eien (987–989)',
+ 'Eiso (989–990)',
+ 'Shōryaku (990–995)',
+ 'Chōtoku (995–999)',
+ 'Chōhō (999–1004)',
+ 'Kankō (1004–1012)',
+ 'Chōwa (1012–1017)',
+ 'Kannin (1017–1021)',
+ 'Jian (1021–1024)',
+ 'Manju (1024–1028)',
+ 'Chōgen (1028–1037)',
+ 'Chōryaku (1037–1040)',
+ 'Chōkyū (1040–1044)',
+ 'Kantoku (1044–1046)',
+ 'Eishō (1046–1053)',
+ 'Tengi (1053–1058)',
+ 'Kōhei (1058–1065)',
+ 'Jiryaku (1065–1069)',
+ 'Enkyū (1069–1074)',
+ 'Shōho (1074–1077)',
+ 'Shōryaku (1077–1081)',
+ 'Eihō (1081–1084)',
+ 'Ōtoku (1084–1087)',
+ 'Kanji (1087–1094)',
+ 'Kahō (1094–1096)',
+ 'Eichō (1096–1097)',
+ 'Jōtoku (1097–1099)',
+ 'Kōwa (1099–1104)',
+ 'Chōji (1104–1106)',
+ 'Kashō (1106–1108)',
+ 'Tennin (1108–1110)',
+ 'Ten-ei (1110-1113)',
+ 'Eikyū (1113–1118)',
+ 'Gen’ei (1118–1120)',
+ 'Hōan (1120–1124)',
+ 'Tenji (1124–1126)',
+ 'Daiji (1126–1131)',
+ 'Tenshō (1131–1132)',
+ 'Chōshō (1132–1135)',
+ 'Hōen (1135–1141)',
+ 'Eiji (1141–1142)',
+ 'Kōji (1142–1144)',
+ 'Ten’yō (1144–1145)',
+ 'Kyūan (1145–1151)',
+ 'Ninpei (1151–1154)',
+ 'Kyūju (1154–1156)',
+ 'Hōgen (1156–1159)',
+ 'Heiji (1159–1160)',
+ 'Eiryaku (1160–1161)',
+ 'Ōho (1161–1163)',
+ 'Chōkan (1163–1165)',
+ 'Eiman (1165–1166)',
+ 'Nin’an (1166–1169)',
+ 'Kaō (1169–1171)',
+ 'Shōan (1171–1175)',
+ 'Angen (1175–1177)',
+ 'Jishō (1177–1181)',
+ 'Yōwa (1181–1182)',
+ 'Juei (1182–1184)',
+ 'Genryaku (1184–1185)',
+ 'Bunji (1185–1190)',
+ 'Kenkyū (1190–1199)',
+ 'Shōji (1199–1201)',
+ 'Kennin (1201–1204)',
+ 'Genkyū (1204–1206)',
+ 'Ken’ei (1206–1207)',
+ 'Jōgen (1207–1211)',
+ 'Kenryaku (1211–1213)',
+ 'Kenpō (1213–1219)',
+ 'Jōkyū (1219–1222)',
+ 'Jōō (1222–1224)',
+ 'Gennin (1224–1225)',
+ 'Karoku (1225–1227)',
+ 'Antei (1227–1229)',
+ 'Kanki (1229–1232)',
+ 'Jōei (1232–1233)',
+ 'Tenpuku (1233–1234)',
+ 'Bunryaku (1234–1235)',
+ 'Katei (1235–1238)',
+ 'Ryakunin (1238–1239)',
+ 'En’ō (1239–1240)',
+ 'Ninji (1240–1243)',
+ 'Kangen (1243–1247)',
+ 'Hōji (1247–1249)',
+ 'Kenchō (1249–1256)',
+ 'Kōgen (1256–1257)',
+ 'Shōka (1257–1259)',
+ 'Shōgen (1259–1260)',
+ 'Bun’ō (1260–1261)',
+ 'Kōchō (1261–1264)',
+ 'Bun’ei (1264–1275)',
+ 'Kenji (1275–1278)',
+ 'Kōan (1278–1288)',
+ 'Shōō (1288–1293)',
+ 'Einin (1293–1299)',
+ 'Shōan (1299–1302)',
+ 'Kengen (1302–1303)',
+ 'Kagen (1303–1306)',
+ 'Tokuji (1306–1308)',
+ 'Enkyō (1308–1311)',
+ 'Ōchō (1311–1312)',
+ 'Shōwa (1312–1317)',
+ 'Bunpō (1317–1319)',
+ 'Genō (1319–1321)',
+ 'Genkō (1321–1324)',
+ 'Shōchū (1324–1326)',
+ 'Karyaku (1326–1329)',
+ 'Gentoku (1329–1331)',
+ 'Genkō (1331–1334)',
+ 'Kenmu (1334–1336)',
+ 'Engen (1336–1340)',
+ 'Kōkoku (1340–1346)',
+ 'Shōhei (1346–1370)',
+ 'Kentoku (1370–1372)',
+ 'Bunchū (1372–1375)',
+ 'Tenju (1375–1379)',
+ 'Kōryaku (1379–1381)',
+ 'Kōwa (1381–1384)',
+ 'Genchū (1384–1392)',
+ 'Meitoku (1384–1387)',
+ 'Kakei (1387–1389)',
+ 'Kōō (1389–1390)',
+ 'Meitoku (1390–1394)',
+ 'Ōei (1394–1428)',
+ 'Shōchō (1428–1429)',
+ 'Eikyō (1429–1441)',
+ 'Kakitsu (1441–1444)',
+ 'Bun’an (1444–1449)',
+ 'Hōtoku (1449–1452)',
+ 'Kyōtoku (1452–1455)',
+ 'Kōshō (1455–1457)',
+ 'Chōroku (1457–1460)',
+ 'Kanshō (1460–1466)',
+ 'Bunshō (1466–1467)',
+ 'Ōnin (1467–1469)',
+ 'Bunmei (1469–1487)',
+ 'Chōkyō (1487–1489)',
+ 'Entoku (1489–1492)',
+ 'Meiō (1492–1501)',
+ 'Bunki (1501–1504)',
+ 'Eishō (1504–1521)',
+ 'Taiei (1521–1528)',
+ 'Kyōroku (1528–1532)',
+ 'Tenbun (1532–1555)',
+ 'Kōji (1555–1558)',
+ 'Eiroku (1558–1570)',
+ 'Genki (1570–1573)',
+ 'Tenshō (1573–1592)',
+ 'Bunroku (1592–1596)',
+ 'Keichō (1596–1615)',
+ 'Genna (1615–1624)',
+ 'Kan’ei (1624–1644)',
+ 'Shōho (1644–1648)',
+ 'Keian (1648–1652)',
+ 'Jōō (1652–1655)',
+ 'Meireki (1655–1658)',
+ 'Manji (1658–1661)',
+ 'Kanbun (1661–1673)',
+ 'Enpō (1673–1681)',
+ 'Tenna (1681–1684)',
+ 'Jōkyō (1684–1688)',
+ 'Genroku (1688–1704)',
+ 'Hōei (1704–1711)',
+ 'Shōtoku (1711–1716)',
+ 'Kyōhō (1716–1736)',
+ 'Genbun (1736–1741)',
+ 'Kanpō (1741–1744)',
+ 'Enkyō (1744–1748)',
+ 'Kan’en (1748–1751)',
+ 'Hōreki (1751–1764)',
+ 'Meiwa (1764–1772)',
+ 'An’ei (1772–1781)',
+ 'Tenmei (1781–1789)',
+ 'Kansei (1789–1801)',
+ 'Kyōwa (1801–1804)',
+ 'Bunka (1804–1818)',
+ 'Bunsei (1818–1830)',
+ 'Tenpō (1830–1844)',
+ 'Kōka (1844–1848)',
+ 'Kaei (1848–1854)',
+ 'Ansei (1854–1860)',
+ 'Man’en (1860–1861)',
+ 'Bunkyū (1861–1864)',
+ 'Genji (1864–1865)',
+ 'Keiō (1865–1868)',
+ 'M',
+ 'T',
+ 'S',
+ 'H',
+ ],
+ short: [
+ 'Taika (645–650)',
+ 'Hakuchi (650–671)',
+ 'Hakuhō (672–686)',
+ 'Shuchō (686–701)',
+ 'Taihō (701–704)',
+ 'Keiun (704–708)',
+ 'Wadō (708–715)',
+ 'Reiki (715–717)',
+ 'Yōrō (717–724)',
+ 'Jinki (724–729)',
+ 'Tenpyō (729–749)',
+ 'Tenpyō-kampō (749-749)',
+ 'Tenpyō-shōhō (749-757)',
+ 'Tenpyō-hōji (757-765)',
+ 'Tenpyō-jingo (765-767)',
+ 'Jingo-keiun (767-770)',
+ 'Hōki (770–780)',
+ 'Ten-ō (781-782)',
+ 'Enryaku (782–806)',
+ 'Daidō (806–810)',
+ 'Kōnin (810–824)',
+ 'Tenchō (824–834)',
+ 'Jōwa (834–848)',
+ 'Kajō (848–851)',
+ 'Ninju (851–854)',
+ 'Saikō (854–857)',
+ 'Ten-an (857-859)',
+ 'Jōgan (859–877)',
+ 'Gangyō (877–885)',
+ 'Ninna (885–889)',
+ 'Kanpyō (889–898)',
+ 'Shōtai (898–901)',
+ 'Engi (901–923)',
+ 'Enchō (923–931)',
+ 'Jōhei (931–938)',
+ 'Tengyō (938–947)',
+ 'Tenryaku (947–957)',
+ 'Tentoku (957–961)',
+ 'Ōwa (961–964)',
+ 'Kōhō (964–968)',
+ 'Anna (968–970)',
+ 'Tenroku (970–973)',
+ 'Ten’en (973–976)',
+ 'Jōgen (976–978)',
+ 'Tengen (978–983)',
+ 'Eikan (983–985)',
+ 'Kanna (985–987)',
+ 'Eien (987–989)',
+ 'Eiso (989–990)',
+ 'Shōryaku (990–995)',
+ 'Chōtoku (995–999)',
+ 'Chōhō (999–1004)',
+ 'Kankō (1004–1012)',
+ 'Chōwa (1012–1017)',
+ 'Kannin (1017–1021)',
+ 'Jian (1021–1024)',
+ 'Manju (1024–1028)',
+ 'Chōgen (1028–1037)',
+ 'Chōryaku (1037–1040)',
+ 'Chōkyū (1040–1044)',
+ 'Kantoku (1044–1046)',
+ 'Eishō (1046–1053)',
+ 'Tengi (1053–1058)',
+ 'Kōhei (1058–1065)',
+ 'Jiryaku (1065–1069)',
+ 'Enkyū (1069–1074)',
+ 'Shōho (1074–1077)',
+ 'Shōryaku (1077–1081)',
+ 'Eihō (1081–1084)',
+ 'Ōtoku (1084–1087)',
+ 'Kanji (1087–1094)',
+ 'Kahō (1094–1096)',
+ 'Eichō (1096–1097)',
+ 'Jōtoku (1097–1099)',
+ 'Kōwa (1099–1104)',
+ 'Chōji (1104–1106)',
+ 'Kashō (1106–1108)',
+ 'Tennin (1108–1110)',
+ 'Ten-ei (1110-1113)',
+ 'Eikyū (1113–1118)',
+ 'Gen’ei (1118–1120)',
+ 'Hōan (1120–1124)',
+ 'Tenji (1124–1126)',
+ 'Daiji (1126–1131)',
+ 'Tenshō (1131–1132)',
+ 'Chōshō (1132–1135)',
+ 'Hōen (1135–1141)',
+ 'Eiji (1141–1142)',
+ 'Kōji (1142–1144)',
+ 'Ten’yō (1144–1145)',
+ 'Kyūan (1145–1151)',
+ 'Ninpei (1151–1154)',
+ 'Kyūju (1154–1156)',
+ 'Hōgen (1156–1159)',
+ 'Heiji (1159–1160)',
+ 'Eiryaku (1160–1161)',
+ 'Ōho (1161–1163)',
+ 'Chōkan (1163–1165)',
+ 'Eiman (1165–1166)',
+ 'Nin’an (1166–1169)',
+ 'Kaō (1169–1171)',
+ 'Shōan (1171–1175)',
+ 'Angen (1175–1177)',
+ 'Jishō (1177–1181)',
+ 'Yōwa (1181–1182)',
+ 'Juei (1182–1184)',
+ 'Genryaku (1184–1185)',
+ 'Bunji (1185–1190)',
+ 'Kenkyū (1190–1199)',
+ 'Shōji (1199–1201)',
+ 'Kennin (1201–1204)',
+ 'Genkyū (1204–1206)',
+ 'Ken’ei (1206–1207)',
+ 'Jōgen (1207–1211)',
+ 'Kenryaku (1211–1213)',
+ 'Kenpō (1213–1219)',
+ 'Jōkyū (1219–1222)',
+ 'Jōō (1222–1224)',
+ 'Gennin (1224–1225)',
+ 'Karoku (1225–1227)',
+ 'Antei (1227–1229)',
+ 'Kanki (1229–1232)',
+ 'Jōei (1232–1233)',
+ 'Tenpuku (1233–1234)',
+ 'Bunryaku (1234–1235)',
+ 'Katei (1235–1238)',
+ 'Ryakunin (1238–1239)',
+ 'En’ō (1239–1240)',
+ 'Ninji (1240–1243)',
+ 'Kangen (1243–1247)',
+ 'Hōji (1247–1249)',
+ 'Kenchō (1249–1256)',
+ 'Kōgen (1256–1257)',
+ 'Shōka (1257–1259)',
+ 'Shōgen (1259–1260)',
+ 'Bun’ō (1260–1261)',
+ 'Kōchō (1261–1264)',
+ 'Bun’ei (1264–1275)',
+ 'Kenji (1275–1278)',
+ 'Kōan (1278–1288)',
+ 'Shōō (1288–1293)',
+ 'Einin (1293–1299)',
+ 'Shōan (1299–1302)',
+ 'Kengen (1302–1303)',
+ 'Kagen (1303–1306)',
+ 'Tokuji (1306–1308)',
+ 'Enkyō (1308–1311)',
+ 'Ōchō (1311–1312)',
+ 'Shōwa (1312–1317)',
+ 'Bunpō (1317–1319)',
+ 'Genō (1319–1321)',
+ 'Genkō (1321–1324)',
+ 'Shōchū (1324–1326)',
+ 'Karyaku (1326–1329)',
+ 'Gentoku (1329–1331)',
+ 'Genkō (1331–1334)',
+ 'Kenmu (1334–1336)',
+ 'Engen (1336–1340)',
+ 'Kōkoku (1340–1346)',
+ 'Shōhei (1346–1370)',
+ 'Kentoku (1370–1372)',
+ 'Bunchū (1372–1375)',
+ 'Tenju (1375–1379)',
+ 'Kōryaku (1379–1381)',
+ 'Kōwa (1381–1384)',
+ 'Genchū (1384–1392)',
+ 'Meitoku (1384–1387)',
+ 'Kakei (1387–1389)',
+ 'Kōō (1389–1390)',
+ 'Meitoku (1390–1394)',
+ 'Ōei (1394–1428)',
+ 'Shōchō (1428–1429)',
+ 'Eikyō (1429–1441)',
+ 'Kakitsu (1441–1444)',
+ 'Bun’an (1444–1449)',
+ 'Hōtoku (1449–1452)',
+ 'Kyōtoku (1452–1455)',
+ 'Kōshō (1455–1457)',
+ 'Chōroku (1457–1460)',
+ 'Kanshō (1460–1466)',
+ 'Bunshō (1466–1467)',
+ 'Ōnin (1467–1469)',
+ 'Bunmei (1469–1487)',
+ 'Chōkyō (1487–1489)',
+ 'Entoku (1489–1492)',
+ 'Meiō (1492–1501)',
+ 'Bunki (1501–1504)',
+ 'Eishō (1504–1521)',
+ 'Taiei (1521–1528)',
+ 'Kyōroku (1528–1532)',
+ 'Tenbun (1532–1555)',
+ 'Kōji (1555–1558)',
+ 'Eiroku (1558–1570)',
+ 'Genki (1570–1573)',
+ 'Tenshō (1573–1592)',
+ 'Bunroku (1592–1596)',
+ 'Keichō (1596–1615)',
+ 'Genna (1615–1624)',
+ 'Kan’ei (1624–1644)',
+ 'Shōho (1644–1648)',
+ 'Keian (1648–1652)',
+ 'Jōō (1652–1655)',
+ 'Meireki (1655–1658)',
+ 'Manji (1658–1661)',
+ 'Kanbun (1661–1673)',
+ 'Enpō (1673–1681)',
+ 'Tenna (1681–1684)',
+ 'Jōkyō (1684–1688)',
+ 'Genroku (1688–1704)',
+ 'Hōei (1704–1711)',
+ 'Shōtoku (1711–1716)',
+ 'Kyōhō (1716–1736)',
+ 'Genbun (1736–1741)',
+ 'Kanpō (1741–1744)',
+ 'Enkyō (1744–1748)',
+ 'Kan’en (1748–1751)',
+ 'Hōreki (1751–1764)',
+ 'Meiwa (1764–1772)',
+ 'An’ei (1772–1781)',
+ 'Tenmei (1781–1789)',
+ 'Kansei (1789–1801)',
+ 'Kyōwa (1801–1804)',
+ 'Bunka (1804–1818)',
+ 'Bunsei (1818–1830)',
+ 'Tenpō (1830–1844)',
+ 'Kōka (1844–1848)',
+ 'Kaei (1848–1854)',
+ 'Ansei (1854–1860)',
+ 'Man’en (1860–1861)',
+ 'Bunkyū (1861–1864)',
+ 'Genji (1864–1865)',
+ 'Keiō (1865–1868)',
+ 'Meiji',
+ 'Taishō',
+ 'Shōwa',
+ 'Heisei',
+ ],
+ long: [
+ 'Taika (645–650)',
+ 'Hakuchi (650–671)',
+ 'Hakuhō (672–686)',
+ 'Shuchō (686–701)',
+ 'Taihō (701–704)',
+ 'Keiun (704–708)',
+ 'Wadō (708–715)',
+ 'Reiki (715–717)',
+ 'Yōrō (717–724)',
+ 'Jinki (724–729)',
+ 'Tenpyō (729–749)',
+ 'Tenpyō-kampō (749-749)',
+ 'Tenpyō-shōhō (749-757)',
+ 'Tenpyō-hōji (757-765)',
+ 'Tenpyō-jingo (765-767)',
+ 'Jingo-keiun (767-770)',
+ 'Hōki (770–780)',
+ 'Ten-ō (781-782)',
+ 'Enryaku (782–806)',
+ 'Daidō (806–810)',
+ 'Kōnin (810–824)',
+ 'Tenchō (824–834)',
+ 'Jōwa (834–848)',
+ 'Kajō (848–851)',
+ 'Ninju (851–854)',
+ 'Saikō (854–857)',
+ 'Ten-an (857-859)',
+ 'Jōgan (859–877)',
+ 'Gangyō (877–885)',
+ 'Ninna (885–889)',
+ 'Kanpyō (889–898)',
+ 'Shōtai (898–901)',
+ 'Engi (901–923)',
+ 'Enchō (923–931)',
+ 'Jōhei (931–938)',
+ 'Tengyō (938–947)',
+ 'Tenryaku (947–957)',
+ 'Tentoku (957–961)',
+ 'Ōwa (961–964)',
+ 'Kōhō (964–968)',
+ 'Anna (968–970)',
+ 'Tenroku (970–973)',
+ 'Ten’en (973–976)',
+ 'Jōgen (976–978)',
+ 'Tengen (978–983)',
+ 'Eikan (983–985)',
+ 'Kanna (985–987)',
+ 'Eien (987–989)',
+ 'Eiso (989–990)',
+ 'Shōryaku (990–995)',
+ 'Chōtoku (995–999)',
+ 'Chōhō (999–1004)',
+ 'Kankō (1004–1012)',
+ 'Chōwa (1012–1017)',
+ 'Kannin (1017–1021)',
+ 'Jian (1021–1024)',
+ 'Manju (1024–1028)',
+ 'Chōgen (1028–1037)',
+ 'Chōryaku (1037–1040)',
+ 'Chōkyū (1040–1044)',
+ 'Kantoku (1044–1046)',
+ 'Eishō (1046–1053)',
+ 'Tengi (1053–1058)',
+ 'Kōhei (1058–1065)',
+ 'Jiryaku (1065–1069)',
+ 'Enkyū (1069–1074)',
+ 'Shōho (1074–1077)',
+ 'Shōryaku (1077–1081)',
+ 'Eihō (1081–1084)',
+ 'Ōtoku (1084–1087)',
+ 'Kanji (1087–1094)',
+ 'Kahō (1094–1096)',
+ 'Eichō (1096–1097)',
+ 'Jōtoku (1097–1099)',
+ 'Kōwa (1099–1104)',
+ 'Chōji (1104–1106)',
+ 'Kashō (1106–1108)',
+ 'Tennin (1108–1110)',
+ 'Ten-ei (1110-1113)',
+ 'Eikyū (1113–1118)',
+ 'Gen’ei (1118–1120)',
+ 'Hōan (1120–1124)',
+ 'Tenji (1124–1126)',
+ 'Daiji (1126–1131)',
+ 'Tenshō (1131–1132)',
+ 'Chōshō (1132–1135)',
+ 'Hōen (1135–1141)',
+ 'Eiji (1141–1142)',
+ 'Kōji (1142–1144)',
+ 'Ten’yō (1144–1145)',
+ 'Kyūan (1145–1151)',
+ 'Ninpei (1151–1154)',
+ 'Kyūju (1154–1156)',
+ 'Hōgen (1156–1159)',
+ 'Heiji (1159–1160)',
+ 'Eiryaku (1160–1161)',
+ 'Ōho (1161–1163)',
+ 'Chōkan (1163–1165)',
+ 'Eiman (1165–1166)',
+ 'Nin’an (1166–1169)',
+ 'Kaō (1169–1171)',
+ 'Shōan (1171–1175)',
+ 'Angen (1175–1177)',
+ 'Jishō (1177–1181)',
+ 'Yōwa (1181–1182)',
+ 'Juei (1182–1184)',
+ 'Genryaku (1184–1185)',
+ 'Bunji (1185–1190)',
+ 'Kenkyū (1190–1199)',
+ 'Shōji (1199–1201)',
+ 'Kennin (1201–1204)',
+ 'Genkyū (1204–1206)',
+ 'Ken’ei (1206–1207)',
+ 'Jōgen (1207–1211)',
+ 'Kenryaku (1211–1213)',
+ 'Kenpō (1213–1219)',
+ 'Jōkyū (1219–1222)',
+ 'Jōō (1222–1224)',
+ 'Gennin (1224–1225)',
+ 'Karoku (1225–1227)',
+ 'Antei (1227–1229)',
+ 'Kanki (1229–1232)',
+ 'Jōei (1232–1233)',
+ 'Tenpuku (1233–1234)',
+ 'Bunryaku (1234–1235)',
+ 'Katei (1235–1238)',
+ 'Ryakunin (1238–1239)',
+ 'En’ō (1239–1240)',
+ 'Ninji (1240–1243)',
+ 'Kangen (1243–1247)',
+ 'Hōji (1247–1249)',
+ 'Kenchō (1249–1256)',
+ 'Kōgen (1256–1257)',
+ 'Shōka (1257–1259)',
+ 'Shōgen (1259–1260)',
+ 'Bun’ō (1260–1261)',
+ 'Kōchō (1261–1264)',
+ 'Bun’ei (1264–1275)',
+ 'Kenji (1275–1278)',
+ 'Kōan (1278–1288)',
+ 'Shōō (1288–1293)',
+ 'Einin (1293–1299)',
+ 'Shōan (1299–1302)',
+ 'Kengen (1302–1303)',
+ 'Kagen (1303–1306)',
+ 'Tokuji (1306–1308)',
+ 'Enkyō (1308–1311)',
+ 'Ōchō (1311–1312)',
+ 'Shōwa (1312–1317)',
+ 'Bunpō (1317–1319)',
+ 'Genō (1319–1321)',
+ 'Genkō (1321–1324)',
+ 'Shōchū (1324–1326)',
+ 'Karyaku (1326–1329)',
+ 'Gentoku (1329–1331)',
+ 'Genkō (1331–1334)',
+ 'Kenmu (1334–1336)',
+ 'Engen (1336–1340)',
+ 'Kōkoku (1340–1346)',
+ 'Shōhei (1346–1370)',
+ 'Kentoku (1370–1372)',
+ 'Bunchū (1372–1375)',
+ 'Tenju (1375–1379)',
+ 'Kōryaku (1379–1381)',
+ 'Kōwa (1381–1384)',
+ 'Genchū (1384–1392)',
+ 'Meitoku (1384–1387)',
+ 'Kakei (1387–1389)',
+ 'Kōō (1389–1390)',
+ 'Meitoku (1390–1394)',
+ 'Ōei (1394–1428)',
+ 'Shōchō (1428–1429)',
+ 'Eikyō (1429–1441)',
+ 'Kakitsu (1441–1444)',
+ 'Bun’an (1444–1449)',
+ 'Hōtoku (1449–1452)',
+ 'Kyōtoku (1452–1455)',
+ 'Kōshō (1455–1457)',
+ 'Chōroku (1457–1460)',
+ 'Kanshō (1460–1466)',
+ 'Bunshō (1466–1467)',
+ 'Ōnin (1467–1469)',
+ 'Bunmei (1469–1487)',
+ 'Chōkyō (1487–1489)',
+ 'Entoku (1489–1492)',
+ 'Meiō (1492–1501)',
+ 'Bunki (1501–1504)',
+ 'Eishō (1504–1521)',
+ 'Taiei (1521–1528)',
+ 'Kyōroku (1528–1532)',
+ 'Tenbun (1532–1555)',
+ 'Kōji (1555–1558)',
+ 'Eiroku (1558–1570)',
+ 'Genki (1570–1573)',
+ 'Tenshō (1573–1592)',
+ 'Bunroku (1592–1596)',
+ 'Keichō (1596–1615)',
+ 'Genna (1615–1624)',
+ 'Kan’ei (1624–1644)',
+ 'Shōho (1644–1648)',
+ 'Keian (1648–1652)',
+ 'Jōō (1652–1655)',
+ 'Meireki (1655–1658)',
+ 'Manji (1658–1661)',
+ 'Kanbun (1661–1673)',
+ 'Enpō (1673–1681)',
+ 'Tenna (1681–1684)',
+ 'Jōkyō (1684–1688)',
+ 'Genroku (1688–1704)',
+ 'Hōei (1704–1711)',
+ 'Shōtoku (1711–1716)',
+ 'Kyōhō (1716–1736)',
+ 'Genbun (1736–1741)',
+ 'Kanpō (1741–1744)',
+ 'Enkyō (1744–1748)',
+ 'Kan’en (1748–1751)',
+ 'Hōreki (1751–1764)',
+ 'Meiwa (1764–1772)',
+ 'An’ei (1772–1781)',
+ 'Tenmei (1781–1789)',
+ 'Kansei (1789–1801)',
+ 'Kyōwa (1801–1804)',
+ 'Bunka (1804–1818)',
+ 'Bunsei (1818–1830)',
+ 'Tenpō (1830–1844)',
+ 'Kōka (1844–1848)',
+ 'Kaei (1848–1854)',
+ 'Ansei (1854–1860)',
+ 'Man’en (1860–1861)',
+ 'Bunkyū (1861–1864)',
+ 'Genji (1864–1865)',
+ 'Keiō (1865–1868)',
+ 'Meiji',
+ 'Taishō',
+ 'Shōwa',
+ 'Heisei',
+ ],
+ },
+ dayPeriods: {
+ am: 'am',
+ pm: 'pm',
+ },
+ },
+ persian: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Farvardin',
+ 'Ordibehesht',
+ 'Khordad',
+ 'Tir',
+ 'Mordad',
+ 'Shahrivar',
+ 'Mehr',
+ 'Aban',
+ 'Azar',
+ 'Dey',
+ 'Bahman',
+ 'Esfand',
+ ],
+ long: [
+ 'Farvardin',
+ 'Ordibehesht',
+ 'Khordad',
+ 'Tir',
+ 'Mordad',
+ 'Shahrivar',
+ 'Mehr',
+ 'Aban',
+ 'Azar',
+ 'Dey',
+ 'Bahman',
+ 'Esfand',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['AP'],
+ short: ['AP'],
+ long: ['AP'],
+ },
+ dayPeriods: {
+ am: 'am',
+ pm: 'pm',
+ },
+ },
+ roc: {
+ months: {
+ narrow: [
+ 'J',
+ 'F',
+ 'M',
+ 'A',
+ 'M',
+ 'J',
+ 'J',
+ 'A',
+ 'S',
+ 'O',
+ 'N',
+ 'D',
+ ],
+ short: [
+ 'Jan',
+ 'Feb',
+ 'Mar',
+ 'Apr',
+ 'May',
+ 'Jun',
+ 'Jul',
+ 'Aug',
+ 'Sep',
+ 'Oct',
+ 'Nov',
+ 'Dec',
+ ],
+ long: [
+ 'January',
+ 'February',
+ 'March',
+ 'April',
+ 'May',
+ 'June',
+ 'July',
+ 'August',
+ 'September',
+ 'October',
+ 'November',
+ 'December',
+ ],
+ },
+ days: {
+ narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+ short: [
+ 'Sun',
+ 'Mon',
+ 'Tue',
+ 'Wed',
+ 'Thu',
+ 'Fri',
+ 'Sat',
+ ],
+ long: [
+ 'Sunday',
+ 'Monday',
+ 'Tuesday',
+ 'Wednesday',
+ 'Thursday',
+ 'Friday',
+ 'Saturday',
+ ],
+ },
+ eras: {
+ narrow: ['Before R.O.C.', 'Minguo'],
+ short: ['Before R.O.C.', 'Minguo'],
+ long: ['Before R.O.C.', 'Minguo'],
+ },
+ dayPeriods: {
+ am: 'am',
+ pm: 'pm',
+ },
+ },
+ },
},
- persian: {
- months: {
- narrow: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
- short: ["Farvardin", "Ordibehesht", "Khordad", "Tir", "Mordad", "Shahrivar", "Mehr", "Aban", "Azar", "Dey", "Bahman", "Esfand"],
- long: ["Farvardin", "Ordibehesht", "Khordad", "Tir", "Mordad", "Shahrivar", "Mehr", "Aban", "Azar", "Dey", "Bahman", "Esfand"]
- },
- days: {
- narrow: ["D", "L", "M", "M", "J", "V", "S"],
- short: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
- long: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]
- },
- eras: {
- narrow: ["AP"],
- short: ["AP"],
- long: ["AP"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
+ number: {
+ nu: ['latn'],
+ patterns: {
+ decimal: {
+ positivePattern: '{number}',
+ negativePattern: '{minusSign}{number}',
+ },
+ currency: {
+ positivePattern: '{currency}{number}',
+ negativePattern: '{minusSign}{currency}{number}',
+ },
+ percent: {
+ positivePattern: '{number}{percentSign}',
+ negativePattern: '{minusSign}{number}{percentSign}',
+ },
+ },
+ symbols: {
+ latn: {
+ decimal: '.',
+ group: ',',
+ nan: 'NaN',
+ plusSign: '+',
+ minusSign: '-',
+ percentSign: '%',
+ infinity: '∞',
+ },
+ },
+ currencies: {
+ AUD: 'A$',
+ BRL: 'R$',
+ CAD: 'CA$',
+ CNY: 'CN¥',
+ EUR: '€',
+ GBP: '£',
+ HKD: 'HK$',
+ ILS: '₪',
+ INR: '₹',
+ JPY: 'JP¥',
+ KRW: '₩',
+ MXN: 'MX$',
+ NZD: 'NZ$',
+ TWD: 'NT$',
+ USD: 'US$',
+ VND: '₫',
+ XAF: 'FCFA',
+ XCD: 'EC$',
+ XOF: 'CFA',
+ XPF: 'CFPF',
+ },
},
- roc: {
- months: {
- narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
- short: ["janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."],
- long: ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"]
- },
- days: {
- narrow: ["D", "L", "M", "M", "J", "V", "S"],
- short: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
- long: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]
- },
- eras: {
- narrow: ["avant RdC", "RdC"],
- short: ["avant RdC", "RdC"],
- long: ["avant RdC", "RdC"]
- },
- dayPeriods: {
- am: "AM",
- pm: "PM"
- }
- }
- }
- },
- number: {
- nu: ["latn"],
- patterns: {
- decimal: {
- positivePattern: "{number}",
- negativePattern: "{minusSign}{number}"
+ });
+
+ // Intl.~locale.fr
+ IntlPolyfill.__addLocaleData({
+ locale: 'fr',
+ date: {
+ ca: [
+ 'gregory',
+ 'buddhist',
+ 'chinese',
+ 'coptic',
+ 'dangi',
+ 'ethioaa',
+ 'ethiopic',
+ 'generic',
+ 'hebrew',
+ 'indian',
+ 'islamic',
+ 'islamicc',
+ 'japanese',
+ 'persian',
+ 'roc',
+ ],
+ hourNo0: true,
+ hour12: false,
+ formats: {
+ short: '{1} {0}',
+ medium: "{1} 'à' {0}",
+ full: "{1} 'à' {0}",
+ long: "{1} 'à' {0}",
+ availableFormats: {
+ d: 'd',
+ E: 'E',
+ Ed: 'E d',
+ Ehm: 'E h:mm a',
+ EHm: 'E HH:mm',
+ Ehms: 'E h:mm:ss a',
+ EHms: 'E HH:mm:ss',
+ Gy: 'y G',
+ GyMMM: 'MMM y G',
+ GyMMMd: 'd MMM y G',
+ GyMMMEd: 'E d MMM y G',
+ h: 'h a',
+ H: "HH 'h'",
+ hm: 'h:mm a',
+ Hm: 'HH:mm',
+ hms: 'h:mm:ss a',
+ Hms: 'HH:mm:ss',
+ hmsv: 'h:mm:ss a v',
+ Hmsv: 'HH:mm:ss v',
+ hmv: 'h:mm a v',
+ Hmv: 'HH:mm v',
+ M: 'L',
+ Md: 'dd/MM',
+ MEd: 'E dd/MM',
+ MMM: 'LLL',
+ MMMd: 'd MMM',
+ MMMEd: 'E d MMM',
+ MMMMd: 'd MMMM',
+ ms: 'mm:ss',
+ y: 'y',
+ yM: 'MM/y',
+ yMd: 'dd/MM/y',
+ yMEd: 'E dd/MM/y',
+ yMMM: 'MMM y',
+ yMMMd: 'd MMM y',
+ yMMMEd: 'E d MMM y',
+ yMMMM: 'MMMM y',
+ yQQQ: 'QQQ y',
+ yQQQQ: 'QQQQ y',
+ },
+ dateFormats: {
+ yMMMMEEEEd: 'EEEE d MMMM y',
+ yMMMMd: 'd MMMM y',
+ yMMMd: 'd MMM y',
+ yMd: 'dd/MM/y',
+ },
+ timeFormats: {
+ hmmsszzzz: 'HH:mm:ss zzzz',
+ hmsz: 'HH:mm:ss z',
+ hms: 'HH:mm:ss',
+ hm: 'HH:mm',
+ },
+ },
+ calendars: {
+ buddhist: {
+ months: {
+ narrow: [
+ 'J',
+ 'F',
+ 'M',
+ 'A',
+ 'M',
+ 'J',
+ 'J',
+ 'A',
+ 'S',
+ 'O',
+ 'N',
+ 'D',
+ ],
+ short: [
+ 'janv.',
+ 'févr.',
+ 'mars',
+ 'avr.',
+ 'mai',
+ 'juin',
+ 'juil.',
+ 'août',
+ 'sept.',
+ 'oct.',
+ 'nov.',
+ 'déc.',
+ ],
+ long: [
+ 'janvier',
+ 'février',
+ 'mars',
+ 'avril',
+ 'mai',
+ 'juin',
+ 'juillet',
+ 'août',
+ 'septembre',
+ 'octobre',
+ 'novembre',
+ 'décembre',
+ ],
+ },
+ days: {
+ narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+ short: [
+ 'dim.',
+ 'lun.',
+ 'mar.',
+ 'mer.',
+ 'jeu.',
+ 'ven.',
+ 'sam.',
+ ],
+ long: [
+ 'dimanche',
+ 'lundi',
+ 'mardi',
+ 'mercredi',
+ 'jeudi',
+ 'vendredi',
+ 'samedi',
+ ],
+ },
+ eras: {
+ narrow: ['E.B.'],
+ short: ['ère b.'],
+ long: ['ère bouddhiste'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ chinese: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ '1yuè',
+ '2yuè',
+ '3yuè',
+ '4yuè',
+ '5yuè',
+ '6yuè',
+ '7yuè',
+ '8yuè',
+ '9yuè',
+ '10yuè',
+ '11yuè',
+ '12yuè',
+ ],
+ long: [
+ 'zhēngyuè',
+ 'èryuè',
+ 'sānyuè',
+ 'sìyuè',
+ 'wǔyuè',
+ 'liùyuè',
+ 'qīyuè',
+ 'bāyuè',
+ 'jiǔyuè',
+ 'shíyuè',
+ 'shíyīyuè',
+ 'shí’èryuè',
+ ],
+ },
+ days: {
+ narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+ short: [
+ 'dim.',
+ 'lun.',
+ 'mar.',
+ 'mer.',
+ 'jeu.',
+ 'ven.',
+ 'sam.',
+ ],
+ long: [
+ 'dimanche',
+ 'lundi',
+ 'mardi',
+ 'mercredi',
+ 'jeudi',
+ 'vendredi',
+ 'samedi',
+ ],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ coptic: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ ],
+ short: [
+ 'Tout',
+ 'Baba',
+ 'Hator',
+ 'Kiahk',
+ 'Toba',
+ 'Amshir',
+ 'Baramhat',
+ 'Baramouda',
+ 'Bashans',
+ 'Paona',
+ 'Epep',
+ 'Mesra',
+ 'Nasie',
+ ],
+ long: [
+ 'Tout',
+ 'Baba',
+ 'Hator',
+ 'Kiahk',
+ 'Toba',
+ 'Amshir',
+ 'Baramhat',
+ 'Baramouda',
+ 'Bashans',
+ 'Paona',
+ 'Epep',
+ 'Mesra',
+ 'Nasie',
+ ],
+ },
+ days: {
+ narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+ short: [
+ 'dim.',
+ 'lun.',
+ 'mar.',
+ 'mer.',
+ 'jeu.',
+ 'ven.',
+ 'sam.',
+ ],
+ long: [
+ 'dimanche',
+ 'lundi',
+ 'mardi',
+ 'mercredi',
+ 'jeudi',
+ 'vendredi',
+ 'samedi',
+ ],
+ },
+ eras: {
+ narrow: ['ERA0', 'ERA1'],
+ short: ['ERA0', 'ERA1'],
+ long: ['ERA0', 'ERA1'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ dangi: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ '1yuè',
+ '2yuè',
+ '3yuè',
+ '4yuè',
+ '5yuè',
+ '6yuè',
+ '7yuè',
+ '8yuè',
+ '9yuè',
+ '10yuè',
+ '11yuè',
+ '12yuè',
+ ],
+ long: [
+ 'zhēngyuè',
+ 'èryuè',
+ 'sānyuè',
+ 'sìyuè',
+ 'wǔyuè',
+ 'liùyuè',
+ 'qīyuè',
+ 'bāyuè',
+ 'jiǔyuè',
+ 'shíyuè',
+ 'shíyīyuè',
+ 'shí’èryuè',
+ ],
+ },
+ days: {
+ narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+ short: [
+ 'dim.',
+ 'lun.',
+ 'mar.',
+ 'mer.',
+ 'jeu.',
+ 'ven.',
+ 'sam.',
+ ],
+ long: [
+ 'dimanche',
+ 'lundi',
+ 'mardi',
+ 'mercredi',
+ 'jeudi',
+ 'vendredi',
+ 'samedi',
+ ],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ ethiopic: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ ],
+ short: [
+ 'Meskerem',
+ 'Tekemt',
+ 'Hedar',
+ 'Tahsas',
+ 'Ter',
+ 'Yekatit',
+ 'Megabit',
+ 'Miazia',
+ 'Genbot',
+ 'Sene',
+ 'Hamle',
+ 'Nehasse',
+ 'Pagumen',
+ ],
+ long: [
+ 'Meskerem',
+ 'Tekemt',
+ 'Hedar',
+ 'Tahsas',
+ 'Ter',
+ 'Yekatit',
+ 'Megabit',
+ 'Miazia',
+ 'Genbot',
+ 'Sene',
+ 'Hamle',
+ 'Nehasse',
+ 'Pagumen',
+ ],
+ },
+ days: {
+ narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+ short: [
+ 'dim.',
+ 'lun.',
+ 'mar.',
+ 'mer.',
+ 'jeu.',
+ 'ven.',
+ 'sam.',
+ ],
+ long: [
+ 'dimanche',
+ 'lundi',
+ 'mardi',
+ 'mercredi',
+ 'jeudi',
+ 'vendredi',
+ 'samedi',
+ ],
+ },
+ eras: {
+ narrow: ['ERA0', 'ERA1'],
+ short: ['ERA0', 'ERA1'],
+ long: ['ERA0', 'ERA1'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ ethioaa: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ ],
+ short: [
+ 'Meskerem',
+ 'Tekemt',
+ 'Hedar',
+ 'Tahsas',
+ 'Ter',
+ 'Yekatit',
+ 'Megabit',
+ 'Miazia',
+ 'Genbot',
+ 'Sene',
+ 'Hamle',
+ 'Nehasse',
+ 'Pagumen',
+ ],
+ long: [
+ 'Meskerem',
+ 'Tekemt',
+ 'Hedar',
+ 'Tahsas',
+ 'Ter',
+ 'Yekatit',
+ 'Megabit',
+ 'Miazia',
+ 'Genbot',
+ 'Sene',
+ 'Hamle',
+ 'Nehasse',
+ 'Pagumen',
+ ],
+ },
+ days: {
+ narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+ short: [
+ 'dim.',
+ 'lun.',
+ 'mar.',
+ 'mer.',
+ 'jeu.',
+ 'ven.',
+ 'sam.',
+ ],
+ long: [
+ 'dimanche',
+ 'lundi',
+ 'mardi',
+ 'mercredi',
+ 'jeudi',
+ 'vendredi',
+ 'samedi',
+ ],
+ },
+ eras: {
+ narrow: ['ERA0'],
+ short: ['ERA0'],
+ long: ['ERA0'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ generic: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'M01',
+ 'M02',
+ 'M03',
+ 'M04',
+ 'M05',
+ 'M06',
+ 'M07',
+ 'M08',
+ 'M09',
+ 'M10',
+ 'M11',
+ 'M12',
+ ],
+ long: [
+ 'M01',
+ 'M02',
+ 'M03',
+ 'M04',
+ 'M05',
+ 'M06',
+ 'M07',
+ 'M08',
+ 'M09',
+ 'M10',
+ 'M11',
+ 'M12',
+ ],
+ },
+ days: {
+ narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+ short: [
+ 'dim.',
+ 'lun.',
+ 'mar.',
+ 'mer.',
+ 'jeu.',
+ 'ven.',
+ 'sam.',
+ ],
+ long: [
+ 'dimanche',
+ 'lundi',
+ 'mardi',
+ 'mercredi',
+ 'jeudi',
+ 'vendredi',
+ 'samedi',
+ ],
+ },
+ eras: {
+ narrow: ['ERA0', 'ERA1'],
+ short: ['ERA0', 'ERA1'],
+ long: ['ERA0', 'ERA1'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ gregory: {
+ months: {
+ narrow: [
+ 'J',
+ 'F',
+ 'M',
+ 'A',
+ 'M',
+ 'J',
+ 'J',
+ 'A',
+ 'S',
+ 'O',
+ 'N',
+ 'D',
+ ],
+ short: [
+ 'janv.',
+ 'févr.',
+ 'mars',
+ 'avr.',
+ 'mai',
+ 'juin',
+ 'juil.',
+ 'août',
+ 'sept.',
+ 'oct.',
+ 'nov.',
+ 'déc.',
+ ],
+ long: [
+ 'janvier',
+ 'février',
+ 'mars',
+ 'avril',
+ 'mai',
+ 'juin',
+ 'juillet',
+ 'août',
+ 'septembre',
+ 'octobre',
+ 'novembre',
+ 'décembre',
+ ],
+ },
+ days: {
+ narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+ short: [
+ 'dim.',
+ 'lun.',
+ 'mar.',
+ 'mer.',
+ 'jeu.',
+ 'ven.',
+ 'sam.',
+ ],
+ long: [
+ 'dimanche',
+ 'lundi',
+ 'mardi',
+ 'mercredi',
+ 'jeudi',
+ 'vendredi',
+ 'samedi',
+ ],
+ },
+ eras: {
+ narrow: ['av. J.-C.', 'ap. J.-C.', 'AEC', 'EC'],
+ short: ['av. J.-C.', 'ap. J.-C.', 'AEC', 'EC'],
+ long: [
+ 'avant Jésus-Christ',
+ 'après Jésus-Christ',
+ 'avant l’ère commune',
+ 'de l’ère commune',
+ ],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ hebrew: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ '13',
+ '7',
+ ],
+ short: [
+ 'Tisseri',
+ 'Hesvan',
+ 'Kislev',
+ 'Tébeth',
+ 'Schébat',
+ 'Adar I',
+ 'Adar',
+ 'Nissan',
+ 'Iyar',
+ 'Sivan',
+ 'Tamouz',
+ 'Ab',
+ 'Elloul',
+ 'Adar II',
+ ],
+ long: [
+ 'Tisseri',
+ 'Hesvan',
+ 'Kislev',
+ 'Tébeth',
+ 'Schébat',
+ 'Adar I',
+ 'Adar',
+ 'Nissan',
+ 'Iyar',
+ 'Sivan',
+ 'Tamouz',
+ 'Ab',
+ 'Elloul',
+ 'Adar II',
+ ],
+ },
+ days: {
+ narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+ short: [
+ 'dim.',
+ 'lun.',
+ 'mar.',
+ 'mer.',
+ 'jeu.',
+ 'ven.',
+ 'sam.',
+ ],
+ long: [
+ 'dimanche',
+ 'lundi',
+ 'mardi',
+ 'mercredi',
+ 'jeudi',
+ 'vendredi',
+ 'samedi',
+ ],
+ },
+ eras: {
+ narrow: ['AM'],
+ short: ['AM'],
+ long: ['AM'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ indian: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Chaitra',
+ 'Vaisakha',
+ 'Jyaistha',
+ 'Asadha',
+ 'Sravana',
+ 'Bhadra',
+ 'Asvina',
+ 'Kartika',
+ 'Agrahayana',
+ 'Pausa',
+ 'Magha',
+ 'Phalguna',
+ ],
+ long: [
+ 'Chaitra',
+ 'Vaisakha',
+ 'Jyaistha',
+ 'Asadha',
+ 'Sravana',
+ 'Bhadra',
+ 'Asvina',
+ 'Kartika',
+ 'Agrahayana',
+ 'Pausa',
+ 'Magha',
+ 'Phalguna',
+ ],
+ },
+ days: {
+ narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+ short: [
+ 'dim.',
+ 'lun.',
+ 'mar.',
+ 'mer.',
+ 'jeu.',
+ 'ven.',
+ 'sam.',
+ ],
+ long: [
+ 'dimanche',
+ 'lundi',
+ 'mardi',
+ 'mercredi',
+ 'jeudi',
+ 'vendredi',
+ 'samedi',
+ ],
+ },
+ eras: {
+ narrow: ['Saka'],
+ short: ['Saka'],
+ long: ['Saka'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ islamic: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'mouh.',
+ 'saf.',
+ 'rab. aw.',
+ 'rab. th.',
+ 'joum. oul.',
+ 'joum. tha.',
+ 'raj.',
+ 'chaa.',
+ 'ram.',
+ 'chaw.',
+ 'dhou. q.',
+ 'dhou. h.',
+ ],
+ long: [
+ 'mouharram',
+ 'safar',
+ 'rabia al awal',
+ 'rabia ath-thani',
+ 'joumada al oula',
+ 'joumada ath-thania',
+ 'rajab',
+ 'chaabane',
+ 'ramadan',
+ 'chawwal',
+ 'dhou al qi`da',
+ 'dhou al-hijja',
+ ],
+ },
+ days: {
+ narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+ short: [
+ 'dim.',
+ 'lun.',
+ 'mar.',
+ 'mer.',
+ 'jeu.',
+ 'ven.',
+ 'sam.',
+ ],
+ long: [
+ 'dimanche',
+ 'lundi',
+ 'mardi',
+ 'mercredi',
+ 'jeudi',
+ 'vendredi',
+ 'samedi',
+ ],
+ },
+ eras: {
+ narrow: ['AH'],
+ short: ['AH'],
+ long: ['AH'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ islamicc: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'mouh.',
+ 'saf.',
+ 'rab. aw.',
+ 'rab. th.',
+ 'joum. oul.',
+ 'joum. tha.',
+ 'raj.',
+ 'chaa.',
+ 'ram.',
+ 'chaw.',
+ 'dhou. q.',
+ 'dhou. h.',
+ ],
+ long: [
+ 'mouharram',
+ 'safar',
+ 'rabia al awal',
+ 'rabia ath-thani',
+ 'joumada al oula',
+ 'joumada ath-thania',
+ 'rajab',
+ 'chaabane',
+ 'ramadan',
+ 'chawwal',
+ 'dhou al qi`da',
+ 'dhou al-hijja',
+ ],
+ },
+ days: {
+ narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+ short: [
+ 'dim.',
+ 'lun.',
+ 'mar.',
+ 'mer.',
+ 'jeu.',
+ 'ven.',
+ 'sam.',
+ ],
+ long: [
+ 'dimanche',
+ 'lundi',
+ 'mardi',
+ 'mercredi',
+ 'jeudi',
+ 'vendredi',
+ 'samedi',
+ ],
+ },
+ eras: {
+ narrow: ['AH'],
+ short: ['AH'],
+ long: ['AH'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ japanese: {
+ months: {
+ narrow: [
+ 'J',
+ 'F',
+ 'M',
+ 'A',
+ 'M',
+ 'J',
+ 'J',
+ 'A',
+ 'S',
+ 'O',
+ 'N',
+ 'D',
+ ],
+ short: [
+ 'janv.',
+ 'févr.',
+ 'mars',
+ 'avr.',
+ 'mai',
+ 'juin',
+ 'juil.',
+ 'août',
+ 'sept.',
+ 'oct.',
+ 'nov.',
+ 'déc.',
+ ],
+ long: [
+ 'janvier',
+ 'février',
+ 'mars',
+ 'avril',
+ 'mai',
+ 'juin',
+ 'juillet',
+ 'août',
+ 'septembre',
+ 'octobre',
+ 'novembre',
+ 'décembre',
+ ],
+ },
+ days: {
+ narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+ short: [
+ 'dim.',
+ 'lun.',
+ 'mar.',
+ 'mer.',
+ 'jeu.',
+ 'ven.',
+ 'sam.',
+ ],
+ long: [
+ 'dimanche',
+ 'lundi',
+ 'mardi',
+ 'mercredi',
+ 'jeudi',
+ 'vendredi',
+ 'samedi',
+ ],
+ },
+ eras: {
+ narrow: [
+ 'Taika (645–650)',
+ 'Hakuchi (650–671)',
+ 'Hakuhō (672–686)',
+ 'Shuchō (686–701)',
+ 'Taihō (701–704)',
+ 'Keiun (704–708)',
+ 'Wadō (708–715)',
+ 'Reiki (715–717)',
+ 'Yōrō (717–724)',
+ 'Jinki (724–729)',
+ 'Tenpyō (729–749)',
+ 'Tenpyō-kampō (749-749)',
+ 'Tenpyō-shōhō (749-757)',
+ 'Tenpyō-hōji (757-765)',
+ 'Tenpyō-jingo (765-767)',
+ 'Jingo-keiun (767-770)',
+ 'Hōki (770–780)',
+ 'Ten-ō (781-782)',
+ 'Enryaku (782–806)',
+ 'Daidō (806–810)',
+ 'Kōnin (810–824)',
+ 'Tenchō (824–834)',
+ 'Jōwa (834–848)',
+ 'Kajō (848–851)',
+ 'Ninju (851–854)',
+ 'Saikō (854–857)',
+ 'Ten-an (857-859)',
+ 'Jōgan (859–877)',
+ 'Gangyō (877–885)',
+ 'Ninna (885–889)',
+ 'Kanpyō (889–898)',
+ 'Shōtai (898–901)',
+ 'Engi (901–923)',
+ 'Enchō (923–931)',
+ 'Jōhei (931–938)',
+ 'Tengyō (938–947)',
+ 'Tenryaku (947–957)',
+ 'Tentoku (957–961)',
+ 'Ōwa (961–964)',
+ 'Kōhō (964–968)',
+ 'Anna (968–970)',
+ 'Tenroku (970–973)',
+ 'Ten’en (973–976)',
+ 'Jōgen (976–978)',
+ 'Tengen (978–983)',
+ 'Eikan (983–985)',
+ 'Kanna (985–987)',
+ 'Eien (987–989)',
+ 'Eiso (989–990)',
+ 'Shōryaku (990–995)',
+ 'Chōtoku (995–999)',
+ 'Chōhō (999–1004)',
+ 'Kankō (1004–1012)',
+ 'Chōwa (1012–1017)',
+ 'Kannin (1017–1021)',
+ 'Jian (1021–1024)',
+ 'Manju (1024–1028)',
+ 'Chōgen (1028–1037)',
+ 'Chōryaku (1037–1040)',
+ 'Chōkyū (1040–1044)',
+ 'Kantoku (1044–1046)',
+ 'Eishō (1046–1053)',
+ 'Tengi (1053–1058)',
+ 'Kōhei (1058–1065)',
+ 'Jiryaku (1065–1069)',
+ 'Enkyū (1069–1074)',
+ 'Shōho (1074–1077)',
+ 'Shōryaku (1077–1081)',
+ 'Eihō (1081–1084)',
+ 'Ōtoku (1084–1087)',
+ 'Kanji (1087–1094)',
+ 'Kahō (1094–1096)',
+ 'Eichō (1096–1097)',
+ 'Jōtoku (1097–1099)',
+ 'Kōwa (1099–1104)',
+ 'Chōji (1104–1106)',
+ 'Kashō (1106–1108)',
+ 'Tennin (1108–1110)',
+ 'Ten-ei (1110-1113)',
+ 'Eikyū (1113–1118)',
+ 'Gen’ei (1118–1120)',
+ 'Hōan (1120–1124)',
+ 'Tenji (1124–1126)',
+ 'Daiji (1126–1131)',
+ 'Tenshō (1131–1132)',
+ 'Chōshō (1132–1135)',
+ 'Hōen (1135–1141)',
+ 'Eiji (1141–1142)',
+ 'Kōji (1142–1144)',
+ 'Ten’yō (1144–1145)',
+ 'Kyūan (1145–1151)',
+ 'Ninpei (1151–1154)',
+ 'Kyūju (1154–1156)',
+ 'Hōgen (1156–1159)',
+ 'Heiji (1159–1160)',
+ 'Eiryaku (1160–1161)',
+ 'Ōho (1161–1163)',
+ 'Chōkan (1163–1165)',
+ 'Eiman (1165–1166)',
+ 'Nin’an (1166–1169)',
+ 'Kaō (1169–1171)',
+ 'Shōan (1171–1175)',
+ 'Angen (1175–1177)',
+ 'Jishō (1177–1181)',
+ 'Yōwa (1181–1182)',
+ 'Juei (1182–1184)',
+ 'Genryaku (1184–1185)',
+ 'Bunji (1185–1190)',
+ 'Kenkyū (1190–1199)',
+ 'Shōji (1199–1201)',
+ 'Kennin (1201–1204)',
+ 'Genkyū (1204–1206)',
+ 'Ken’ei (1206–1207)',
+ 'Jōgen (1207–1211)',
+ 'Kenryaku (1211–1213)',
+ 'Kenpō (1213–1219)',
+ 'Jōkyū (1219–1222)',
+ 'Jōō (1222–1224)',
+ 'Gennin (1224–1225)',
+ 'Karoku (1225–1227)',
+ 'Antei (1227–1229)',
+ 'Kanki (1229–1232)',
+ 'Jōei (1232–1233)',
+ 'Tenpuku (1233–1234)',
+ 'Bunryaku (1234–1235)',
+ 'Katei (1235–1238)',
+ 'Ryakunin (1238–1239)',
+ 'En’ō (1239–1240)',
+ 'Ninji (1240–1243)',
+ 'Kangen (1243–1247)',
+ 'Hōji (1247–1249)',
+ 'Kenchō (1249–1256)',
+ 'Kōgen (1256–1257)',
+ 'Shōka (1257–1259)',
+ 'Shōgen (1259–1260)',
+ 'Bun’ō (1260–1261)',
+ 'Kōchō (1261–1264)',
+ 'Bun’ei (1264–1275)',
+ 'Kenji (1275–1278)',
+ 'Kōan (1278–1288)',
+ 'Shōō (1288–1293)',
+ 'Einin (1293–1299)',
+ 'Shōan (1299–1302)',
+ 'Kengen (1302–1303)',
+ 'Kagen (1303–1306)',
+ 'Tokuji (1306–1308)',
+ 'Enkyō (1308–1311)',
+ 'Ōchō (1311–1312)',
+ 'Shōwa (1312–1317)',
+ 'Bunpō (1317–1319)',
+ 'Genō (1319–1321)',
+ 'Genkō (1321–1324)',
+ 'Shōchū (1324–1326)',
+ 'Karyaku (1326–1329)',
+ 'Gentoku (1329–1331)',
+ 'Genkō (1331–1334)',
+ 'Kenmu (1334–1336)',
+ 'Engen (1336–1340)',
+ 'Kōkoku (1340–1346)',
+ 'Shōhei (1346–1370)',
+ 'Kentoku (1370–1372)',
+ 'Bunchū (1372–1375)',
+ 'Tenju (1375–1379)',
+ 'Kōryaku (1379–1381)',
+ 'Kōwa (1381–1384)',
+ 'Genchū (1384–1392)',
+ 'Meitoku (1384–1387)',
+ 'Kakei (1387–1389)',
+ 'Kōō (1389–1390)',
+ 'Meitoku (1390–1394)',
+ 'Ōei (1394–1428)',
+ 'Shōchō (1428–1429)',
+ 'Eikyō (1429–1441)',
+ 'Kakitsu (1441–1444)',
+ 'Bun’an (1444–1449)',
+ 'Hōtoku (1449–1452)',
+ 'Kyōtoku (1452–1455)',
+ 'Kōshō (1455–1457)',
+ 'Chōroku (1457–1460)',
+ 'Kanshō (1460–1466)',
+ 'Bunshō (1466–1467)',
+ 'Ōnin (1467–1469)',
+ 'Bunmei (1469–1487)',
+ 'Chōkyō (1487–1489)',
+ 'Entoku (1489–1492)',
+ 'Meiō (1492–1501)',
+ 'Bunki (1501–1504)',
+ 'Eishō (1504–1521)',
+ 'Taiei (1521–1528)',
+ 'Kyōroku (1528–1532)',
+ 'Tenbun (1532–1555)',
+ 'Kōji (1555–1558)',
+ 'Eiroku (1558–1570)',
+ 'Genki (1570–1573)',
+ 'Tenshō (1573–1592)',
+ 'Bunroku (1592–1596)',
+ 'Keichō (1596–1615)',
+ 'Genna (1615–1624)',
+ 'Kan’ei (1624–1644)',
+ 'Shōho (1644–1648)',
+ 'Keian (1648–1652)',
+ 'Jōō (1652–1655)',
+ 'Meireki (1655–1658)',
+ 'Manji (1658–1661)',
+ 'Kanbun (1661–1673)',
+ 'Enpō (1673–1681)',
+ 'Tenna (1681–1684)',
+ 'Jōkyō (1684–1688)',
+ 'Genroku (1688–1704)',
+ 'Hōei (1704–1711)',
+ 'Shōtoku (1711–1716)',
+ 'Kyōhō (1716–1736)',
+ 'Genbun (1736–1741)',
+ 'Kanpō (1741–1744)',
+ 'Enkyō (1744–1748)',
+ 'Kan’en (1748–1751)',
+ 'Hōreki (1751–1764)',
+ 'Meiwa (1764–1772)',
+ 'An’ei (1772–1781)',
+ 'Tenmei (1781–1789)',
+ 'Kansei (1789–1801)',
+ 'Kyōwa (1801–1804)',
+ 'Bunka (1804–1818)',
+ 'Bunsei (1818–1830)',
+ 'Tenpō (1830–1844)',
+ 'Kōka (1844–1848)',
+ 'Kaei (1848–1854)',
+ 'Ansei (1854–1860)',
+ 'Man’en (1860–1861)',
+ 'Bunkyū (1861–1864)',
+ 'Genji (1864–1865)',
+ 'Keiō (1865–1868)',
+ 'M',
+ 'T',
+ 'S',
+ 'H',
+ ],
+ short: [
+ 'Taika (645–650)',
+ 'Hakuchi (650–671)',
+ 'Hakuhō (672–686)',
+ 'Shuchō (686–701)',
+ 'Taihō (701–704)',
+ 'Keiun (704–708)',
+ 'Wadō (708–715)',
+ 'Reiki (715–717)',
+ 'Yōrō (717–724)',
+ 'Jinki (724–729)',
+ 'Tenpyō (729–749)',
+ 'Tenpyō-kampō (749-749)',
+ 'Tenpyō-shōhō (749-757)',
+ 'Tenpyō-hōji (757-765)',
+ 'Tenpyō-jingo (765-767)',
+ 'Jingo-keiun (767-770)',
+ 'Hōki (770–780)',
+ 'Ten-ō (781-782)',
+ 'Enryaku (782–806)',
+ 'Daidō (806–810)',
+ 'Kōnin (810–824)',
+ 'Tenchō (824–834)',
+ 'Jōwa (834–848)',
+ 'Kajō (848–851)',
+ 'Ninju (851–854)',
+ 'Saikō (854–857)',
+ 'Ten-an (857-859)',
+ 'Jōgan (859–877)',
+ 'Gangyō (877–885)',
+ 'Ninna (885–889)',
+ 'Kanpyō (889–898)',
+ 'Shōtai (898–901)',
+ 'Engi (901–923)',
+ 'Enchō (923–931)',
+ 'Jōhei (931–938)',
+ 'Tengyō (938–947)',
+ 'Tenryaku (947–957)',
+ 'Tentoku (957–961)',
+ 'Ōwa (961–964)',
+ 'Kōhō (964–968)',
+ 'Anna (968–970)',
+ 'Tenroku (970–973)',
+ 'Ten’en (973–976)',
+ 'Jōgen (976–978)',
+ 'Tengen (978–983)',
+ 'Eikan (983–985)',
+ 'Kanna (985–987)',
+ 'Eien (987–989)',
+ 'Eiso (989–990)',
+ 'Shōryaku (990–995)',
+ 'Chōtoku (995–999)',
+ 'Chōhō (999–1004)',
+ 'Kankō (1004–1012)',
+ 'Chōwa (1012–1017)',
+ 'Kannin (1017–1021)',
+ 'Jian (1021–1024)',
+ 'Manju (1024–1028)',
+ 'Chōgen (1028–1037)',
+ 'Chōryaku (1037–1040)',
+ 'Chōkyū (1040–1044)',
+ 'Kantoku (1044–1046)',
+ 'Eishō (1046–1053)',
+ 'Tengi (1053–1058)',
+ 'Kōhei (1058–1065)',
+ 'Jiryaku (1065–1069)',
+ 'Enkyū (1069–1074)',
+ 'Shōho (1074–1077)',
+ 'Shōryaku (1077–1081)',
+ 'Eihō (1081–1084)',
+ 'Ōtoku (1084–1087)',
+ 'Kanji (1087–1094)',
+ 'Kahō (1094–1096)',
+ 'Eichō (1096–1097)',
+ 'Jōtoku (1097–1099)',
+ 'Kōwa (1099–1104)',
+ 'Chōji (1104–1106)',
+ 'Kashō (1106–1108)',
+ 'Tennin (1108–1110)',
+ 'Ten-ei (1110-1113)',
+ 'Eikyū (1113–1118)',
+ 'Gen’ei (1118–1120)',
+ 'Hōan (1120–1124)',
+ 'Tenji (1124–1126)',
+ 'Daiji (1126–1131)',
+ 'Tenshō (1131–1132)',
+ 'Chōshō (1132–1135)',
+ 'Hōen (1135–1141)',
+ 'Eiji (1141–1142)',
+ 'Kōji (1142–1144)',
+ 'Ten’yō (1144–1145)',
+ 'Kyūan (1145–1151)',
+ 'Ninpei (1151–1154)',
+ 'Kyūju (1154–1156)',
+ 'Hōgen (1156–1159)',
+ 'Heiji (1159–1160)',
+ 'Eiryaku (1160–1161)',
+ 'Ōho (1161–1163)',
+ 'Chōkan (1163–1165)',
+ 'Eiman (1165–1166)',
+ 'Nin’an (1166–1169)',
+ 'Kaō (1169–1171)',
+ 'Shōan (1171–1175)',
+ 'Angen (1175–1177)',
+ 'Jishō (1177–1181)',
+ 'Yōwa (1181–1182)',
+ 'Juei (1182–1184)',
+ 'Genryaku (1184–1185)',
+ 'Bunji (1185–1190)',
+ 'Kenkyū (1190–1199)',
+ 'Shōji (1199–1201)',
+ 'Kennin (1201–1204)',
+ 'Genkyū (1204–1206)',
+ 'Ken’ei (1206–1207)',
+ 'Jōgen (1207–1211)',
+ 'Kenryaku (1211–1213)',
+ 'Kenpō (1213–1219)',
+ 'Jōkyū (1219–1222)',
+ 'Jōō (1222–1224)',
+ 'Gennin (1224–1225)',
+ 'Karoku (1225–1227)',
+ 'Antei (1227–1229)',
+ 'Kanki (1229–1232)',
+ 'Jōei (1232–1233)',
+ 'Tenpuku (1233–1234)',
+ 'Bunryaku (1234–1235)',
+ 'Katei (1235–1238)',
+ 'Ryakunin (1238–1239)',
+ 'En’ō (1239–1240)',
+ 'Ninji (1240–1243)',
+ 'Kangen (1243–1247)',
+ 'Hōji (1247–1249)',
+ 'Kenchō (1249–1256)',
+ 'Kōgen (1256–1257)',
+ 'Shōka (1257–1259)',
+ 'Shōgen (1259–1260)',
+ 'Bun’ō (1260–1261)',
+ 'Kōchō (1261–1264)',
+ 'Bun’ei (1264–1275)',
+ 'Kenji (1275–1278)',
+ 'Kōan (1278–1288)',
+ 'Shōō (1288–1293)',
+ 'Einin (1293–1299)',
+ 'Shōan (1299–1302)',
+ 'Kengen (1302–1303)',
+ 'Kagen (1303–1306)',
+ 'Tokuji (1306–1308)',
+ 'Enkyō (1308–1311)',
+ 'Ōchō (1311–1312)',
+ 'Shōwa (1312–1317)',
+ 'Bunpō (1317–1319)',
+ 'Genō (1319–1321)',
+ 'Genkō (1321–1324)',
+ 'Shōchū (1324–1326)',
+ 'Karyaku (1326–1329)',
+ 'Gentoku (1329–1331)',
+ 'Genkō (1331–1334)',
+ 'Kenmu (1334–1336)',
+ 'Engen (1336–1340)',
+ 'Kōkoku (1340–1346)',
+ 'Shōhei (1346–1370)',
+ 'Kentoku (1370–1372)',
+ 'Bunchū (1372–1375)',
+ 'Tenju (1375–1379)',
+ 'Kōryaku (1379–1381)',
+ 'Kōwa (1381–1384)',
+ 'Genchū (1384–1392)',
+ 'Meitoku (1384–1387)',
+ 'Kakei (1387–1389)',
+ 'Kōō (1389–1390)',
+ 'Meitoku (1390–1394)',
+ 'Ōei (1394–1428)',
+ 'Shōchō (1428–1429)',
+ 'Eikyō (1429–1441)',
+ 'Kakitsu (1441–1444)',
+ 'Bun’an (1444–1449)',
+ 'Hōtoku (1449–1452)',
+ 'Kyōtoku (1452–1455)',
+ 'Kōshō (1455–1457)',
+ 'Chōroku (1457–1460)',
+ 'Kanshō (1460–1466)',
+ 'Bunshō (1466–1467)',
+ 'Ōnin (1467–1469)',
+ 'Bunmei (1469–1487)',
+ 'Chōkyō (1487–1489)',
+ 'Entoku (1489–1492)',
+ 'Meiō (1492–1501)',
+ 'Bunki (1501–1504)',
+ 'Eishō (1504–1521)',
+ 'Taiei (1521–1528)',
+ 'Kyōroku (1528–1532)',
+ 'Tenbun (1532–1555)',
+ 'Kōji (1555–1558)',
+ 'Eiroku (1558–1570)',
+ 'Genki (1570–1573)',
+ 'Tenshō (1573–1592)',
+ 'Bunroku (1592–1596)',
+ 'Keichō (1596–1615)',
+ 'Genna (1615–1624)',
+ 'Kan’ei (1624–1644)',
+ 'Shōho (1644–1648)',
+ 'Keian (1648–1652)',
+ 'Jōō (1652–1655)',
+ 'Meireki (1655–1658)',
+ 'Manji (1658–1661)',
+ 'Kanbun (1661–1673)',
+ 'Enpō (1673–1681)',
+ 'Tenna (1681–1684)',
+ 'Jōkyō (1684–1688)',
+ 'Genroku (1688–1704)',
+ 'Hōei (1704–1711)',
+ 'Shōtoku (1711–1716)',
+ 'Kyōhō (1716–1736)',
+ 'Genbun (1736–1741)',
+ 'Kanpō (1741–1744)',
+ 'Enkyō (1744–1748)',
+ 'Kan’en (1748–1751)',
+ 'Hōreki (1751–1764)',
+ 'Meiwa (1764–1772)',
+ 'An’ei (1772–1781)',
+ 'Tenmei (1781–1789)',
+ 'Kansei (1789–1801)',
+ 'Kyōwa (1801–1804)',
+ 'Bunka (1804–1818)',
+ 'Bunsei (1818–1830)',
+ 'Tenpō (1830–1844)',
+ 'Kōka (1844–1848)',
+ 'Kaei (1848–1854)',
+ 'Ansei (1854–1860)',
+ 'Man’en (1860–1861)',
+ 'Bunkyū (1861–1864)',
+ 'Genji (1864–1865)',
+ 'Keiō (1865–1868)',
+ 'Meiji',
+ 'Taishō',
+ 'Shōwa',
+ 'Heisei',
+ ],
+ long: [
+ 'Taika (645–650)',
+ 'Hakuchi (650–671)',
+ 'Hakuhō (672–686)',
+ 'Shuchō (686–701)',
+ 'Taihō (701–704)',
+ 'Keiun (704–708)',
+ 'Wadō (708–715)',
+ 'Reiki (715–717)',
+ 'Yōrō (717–724)',
+ 'Jinki (724–729)',
+ 'Tenpyō (729–749)',
+ 'Tenpyō-kampō (749-749)',
+ 'Tenpyō-shōhō (749-757)',
+ 'Tenpyō-hōji (757-765)',
+ 'Tenpyō-jingo (765-767)',
+ 'Jingo-keiun (767-770)',
+ 'Hōki (770–780)',
+ 'Ten-ō (781-782)',
+ 'Enryaku (782–806)',
+ 'Daidō (806–810)',
+ 'Kōnin (810–824)',
+ 'Tenchō (824–834)',
+ 'Jōwa (834–848)',
+ 'Kajō (848–851)',
+ 'Ninju (851–854)',
+ 'Saikō (854–857)',
+ 'Ten-an (857-859)',
+ 'Jōgan (859–877)',
+ 'Gangyō (877–885)',
+ 'Ninna (885–889)',
+ 'Kanpyō (889–898)',
+ 'Shōtai (898–901)',
+ 'Engi (901–923)',
+ 'Enchō (923–931)',
+ 'Jōhei (931–938)',
+ 'Tengyō (938–947)',
+ 'Tenryaku (947–957)',
+ 'Tentoku (957–961)',
+ 'Ōwa (961–964)',
+ 'Kōhō (964–968)',
+ 'Anna (968–970)',
+ 'Tenroku (970–973)',
+ 'Ten’en (973–976)',
+ 'Jōgen (976–978)',
+ 'Tengen (978–983)',
+ 'Eikan (983–985)',
+ 'Kanna (985–987)',
+ 'Eien (987–989)',
+ 'Eiso (989–990)',
+ 'Shōryaku (990–995)',
+ 'Chōtoku (995–999)',
+ 'Chōhō (999–1004)',
+ 'Kankō (1004–1012)',
+ 'Chōwa (1012–1017)',
+ 'Kannin (1017–1021)',
+ 'Jian (1021–1024)',
+ 'Manju (1024–1028)',
+ 'Chōgen (1028–1037)',
+ 'Chōryaku (1037–1040)',
+ 'Chōkyū (1040–1044)',
+ 'Kantoku (1044–1046)',
+ 'Eishō (1046–1053)',
+ 'Tengi (1053–1058)',
+ 'Kōhei (1058–1065)',
+ 'Jiryaku (1065–1069)',
+ 'Enkyū (1069–1074)',
+ 'Shōho (1074–1077)',
+ 'Shōryaku (1077–1081)',
+ 'Eihō (1081–1084)',
+ 'Ōtoku (1084–1087)',
+ 'Kanji (1087–1094)',
+ 'Kahō (1094–1096)',
+ 'Eichō (1096–1097)',
+ 'Jōtoku (1097–1099)',
+ 'Kōwa (1099–1104)',
+ 'Chōji (1104–1106)',
+ 'Kashō (1106–1108)',
+ 'Tennin (1108–1110)',
+ 'Ten-ei (1110-1113)',
+ 'Eikyū (1113–1118)',
+ 'Gen’ei (1118–1120)',
+ 'Hōan (1120–1124)',
+ 'Tenji (1124–1126)',
+ 'Daiji (1126–1131)',
+ 'Tenshō (1131–1132)',
+ 'Chōshō (1132–1135)',
+ 'Hōen (1135–1141)',
+ 'Eiji (1141–1142)',
+ 'Kōji (1142–1144)',
+ 'Ten’yō (1144–1145)',
+ 'Kyūan (1145–1151)',
+ 'Ninpei (1151–1154)',
+ 'Kyūju (1154–1156)',
+ 'Hōgen (1156–1159)',
+ 'Heiji (1159–1160)',
+ 'Eiryaku (1160–1161)',
+ 'Ōho (1161–1163)',
+ 'Chōkan (1163–1165)',
+ 'Eiman (1165–1166)',
+ 'Nin’an (1166–1169)',
+ 'Kaō (1169–1171)',
+ 'Shōan (1171–1175)',
+ 'Angen (1175–1177)',
+ 'Jishō (1177–1181)',
+ 'Yōwa (1181–1182)',
+ 'Juei (1182–1184)',
+ 'Genryaku (1184–1185)',
+ 'Bunji (1185–1190)',
+ 'Kenkyū (1190–1199)',
+ 'Shōji (1199–1201)',
+ 'Kennin (1201–1204)',
+ 'Genkyū (1204–1206)',
+ 'Ken’ei (1206–1207)',
+ 'Jōgen (1207–1211)',
+ 'Kenryaku (1211–1213)',
+ 'Kenpō (1213–1219)',
+ 'Jōkyū (1219–1222)',
+ 'Jōō (1222–1224)',
+ 'Gennin (1224–1225)',
+ 'Karoku (1225–1227)',
+ 'Antei (1227–1229)',
+ 'Kanki (1229–1232)',
+ 'Jōei (1232–1233)',
+ 'Tenpuku (1233–1234)',
+ 'Bunryaku (1234–1235)',
+ 'Katei (1235–1238)',
+ 'Ryakunin (1238–1239)',
+ 'En’ō (1239–1240)',
+ 'Ninji (1240–1243)',
+ 'Kangen (1243–1247)',
+ 'Hōji (1247–1249)',
+ 'Kenchō (1249–1256)',
+ 'Kōgen (1256–1257)',
+ 'Shōka (1257–1259)',
+ 'Shōgen (1259–1260)',
+ 'Bun’ō (1260–1261)',
+ 'Kōchō (1261–1264)',
+ 'Bun’ei (1264–1275)',
+ 'Kenji (1275–1278)',
+ 'Kōan (1278–1288)',
+ 'Shōō (1288–1293)',
+ 'Einin (1293–1299)',
+ 'Shōan (1299–1302)',
+ 'Kengen (1302–1303)',
+ 'Kagen (1303–1306)',
+ 'Tokuji (1306–1308)',
+ 'Enkyō (1308–1311)',
+ 'Ōchō (1311–1312)',
+ 'Shōwa (1312–1317)',
+ 'Bunpō (1317–1319)',
+ 'Genō (1319–1321)',
+ 'Genkō (1321–1324)',
+ 'Shōchū (1324–1326)',
+ 'Karyaku (1326–1329)',
+ 'Gentoku (1329–1331)',
+ 'Genkō (1331–1334)',
+ 'Kenmu (1334–1336)',
+ 'Engen (1336–1340)',
+ 'Kōkoku (1340–1346)',
+ 'Shōhei (1346–1370)',
+ 'Kentoku (1370–1372)',
+ 'Bunchū (1372–1375)',
+ 'Tenju (1375–1379)',
+ 'Kōryaku (1379–1381)',
+ 'Kōwa (1381–1384)',
+ 'Genchū (1384–1392)',
+ 'Meitoku (1384–1387)',
+ 'Kakei (1387–1389)',
+ 'Kōō (1389–1390)',
+ 'Meitoku (1390–1394)',
+ 'Ōei (1394–1428)',
+ 'Shōchō (1428–1429)',
+ 'Eikyō (1429–1441)',
+ 'Kakitsu (1441–1444)',
+ 'Bun’an (1444–1449)',
+ 'Hōtoku (1449–1452)',
+ 'Kyōtoku (1452–1455)',
+ 'Kōshō (1455–1457)',
+ 'Chōroku (1457–1460)',
+ 'Kanshō (1460–1466)',
+ 'Bunshō (1466–1467)',
+ 'Ōnin (1467–1469)',
+ 'Bunmei (1469–1487)',
+ 'Chōkyō (1487–1489)',
+ 'Entoku (1489–1492)',
+ 'Meiō (1492–1501)',
+ 'Bunki (1501–1504)',
+ 'Eishō (1504–1521)',
+ 'Taiei (1521–1528)',
+ 'Kyōroku (1528–1532)',
+ 'Tenbun (1532–1555)',
+ 'Kōji (1555–1558)',
+ 'Eiroku (1558–1570)',
+ 'Genki (1570–1573)',
+ 'Tenshō (1573–1592)',
+ 'Bunroku (1592–1596)',
+ 'Keichō (1596–1615)',
+ 'Genna (1615–1624)',
+ 'Kan’ei (1624–1644)',
+ 'Shōho (1644–1648)',
+ 'Keian (1648–1652)',
+ 'Jōō (1652–1655)',
+ 'Meireki (1655–1658)',
+ 'Manji (1658–1661)',
+ 'Kanbun (1661–1673)',
+ 'Enpō (1673–1681)',
+ 'Tenna (1681–1684)',
+ 'Jōkyō (1684–1688)',
+ 'Genroku (1688–1704)',
+ 'Hōei (1704–1711)',
+ 'Shōtoku (1711–1716)',
+ 'Kyōhō (1716–1736)',
+ 'Genbun (1736–1741)',
+ 'Kanpō (1741–1744)',
+ 'Enkyō (1744–1748)',
+ 'Kan’en (1748–1751)',
+ 'Hōreki (1751–1764)',
+ 'Meiwa (1764–1772)',
+ 'An’ei (1772–1781)',
+ 'Tenmei (1781–1789)',
+ 'Kansei (1789–1801)',
+ 'Kyōwa (1801–1804)',
+ 'Bunka (1804–1818)',
+ 'Bunsei (1818–1830)',
+ 'Tenpō (1830–1844)',
+ 'Kōka (1844–1848)',
+ 'Kaei (1848–1854)',
+ 'Ansei (1854–1860)',
+ 'Man’en (1860–1861)',
+ 'Bunkyū (1861–1864)',
+ 'Genji (1864–1865)',
+ 'Keiō (1865–1868)',
+ 'Meiji',
+ 'Taishō',
+ 'Shōwa',
+ 'Heisei',
+ ],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ persian: {
+ months: {
+ narrow: [
+ '1',
+ '2',
+ '3',
+ '4',
+ '5',
+ '6',
+ '7',
+ '8',
+ '9',
+ '10',
+ '11',
+ '12',
+ ],
+ short: [
+ 'Farvardin',
+ 'Ordibehesht',
+ 'Khordad',
+ 'Tir',
+ 'Mordad',
+ 'Shahrivar',
+ 'Mehr',
+ 'Aban',
+ 'Azar',
+ 'Dey',
+ 'Bahman',
+ 'Esfand',
+ ],
+ long: [
+ 'Farvardin',
+ 'Ordibehesht',
+ 'Khordad',
+ 'Tir',
+ 'Mordad',
+ 'Shahrivar',
+ 'Mehr',
+ 'Aban',
+ 'Azar',
+ 'Dey',
+ 'Bahman',
+ 'Esfand',
+ ],
+ },
+ days: {
+ narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+ short: [
+ 'dim.',
+ 'lun.',
+ 'mar.',
+ 'mer.',
+ 'jeu.',
+ 'ven.',
+ 'sam.',
+ ],
+ long: [
+ 'dimanche',
+ 'lundi',
+ 'mardi',
+ 'mercredi',
+ 'jeudi',
+ 'vendredi',
+ 'samedi',
+ ],
+ },
+ eras: {
+ narrow: ['AP'],
+ short: ['AP'],
+ long: ['AP'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ roc: {
+ months: {
+ narrow: [
+ 'J',
+ 'F',
+ 'M',
+ 'A',
+ 'M',
+ 'J',
+ 'J',
+ 'A',
+ 'S',
+ 'O',
+ 'N',
+ 'D',
+ ],
+ short: [
+ 'janv.',
+ 'févr.',
+ 'mars',
+ 'avr.',
+ 'mai',
+ 'juin',
+ 'juil.',
+ 'août',
+ 'sept.',
+ 'oct.',
+ 'nov.',
+ 'déc.',
+ ],
+ long: [
+ 'janvier',
+ 'février',
+ 'mars',
+ 'avril',
+ 'mai',
+ 'juin',
+ 'juillet',
+ 'août',
+ 'septembre',
+ 'octobre',
+ 'novembre',
+ 'décembre',
+ ],
+ },
+ days: {
+ narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
+ short: [
+ 'dim.',
+ 'lun.',
+ 'mar.',
+ 'mer.',
+ 'jeu.',
+ 'ven.',
+ 'sam.',
+ ],
+ long: [
+ 'dimanche',
+ 'lundi',
+ 'mardi',
+ 'mercredi',
+ 'jeudi',
+ 'vendredi',
+ 'samedi',
+ ],
+ },
+ eras: {
+ narrow: ['avant RdC', 'RdC'],
+ short: ['avant RdC', 'RdC'],
+ long: ['avant RdC', 'RdC'],
+ },
+ dayPeriods: {
+ am: 'AM',
+ pm: 'PM',
+ },
+ },
+ },
},
- currency: {
- positivePattern: "{number} {currency}",
- negativePattern: "{minusSign}{number} {currency}"
+ number: {
+ nu: ['latn'],
+ patterns: {
+ decimal: {
+ positivePattern: '{number}',
+ negativePattern: '{minusSign}{number}',
+ },
+ currency: {
+ positivePattern: '{number} {currency}',
+ negativePattern: '{minusSign}{number} {currency}',
+ },
+ percent: {
+ positivePattern: '{number} {percentSign}',
+ negativePattern: '{minusSign}{number} {percentSign}',
+ },
+ },
+ symbols: {
+ latn: {
+ decimal: ',',
+ group: ' ',
+ nan: 'NaN',
+ plusSign: '+',
+ minusSign: '-',
+ percentSign: '%',
+ infinity: '∞',
+ },
+ },
+ currencies: {
+ ARS: '$AR',
+ AUD: '$AU',
+ BEF: 'FB',
+ BMD: '$BM',
+ BND: '$BN',
+ BRL: 'R$',
+ BSD: '$BS',
+ BZD: '$BZ',
+ CAD: '$CA',
+ CLP: '$CL',
+ COP: '$CO',
+ CYP: '£CY',
+ EUR: '€',
+ FJD: '$FJ',
+ FKP: '£FK',
+ FRF: 'F',
+ GBP: '£GB',
+ GIP: '£GI',
+ IEP: '£IE',
+ ILP: '£IL',
+ ILS: '₪',
+ INR: '₹',
+ ITL: '₤IT',
+ KRW: '₩',
+ LBP: '£LB',
+ MTP: '£MT',
+ MXN: '$MX',
+ NAD: '$NA',
+ NZD: '$NZ',
+ RHD: '$RH',
+ SBD: '$SB',
+ SGD: '$SG',
+ SRD: '$SR',
+ TTD: '$TT',
+ USD: '$US',
+ UYU: '$UY',
+ VND: '₫',
+ WST: 'WS$',
+ XAF: 'FCFA',
+ XOF: 'CFA',
+ XPF: 'FCFP',
+ },
},
- percent: {
- positivePattern: "{number} {percentSign}",
- negativePattern: "{minusSign}{number} {percentSign}"
- }
- },
- symbols: {
- latn: {
- decimal: ",",
- group: " ",
- nan: "NaN",
- plusSign: "+",
- minusSign: "-",
- percentSign: "%",
- infinity: "∞"
- }
- },
- currencies: {
- ARS: "$AR",
- AUD: "$AU",
- BEF: "FB",
- BMD: "$BM",
- BND: "$BN",
- BRL: "R$",
- BSD: "$BS",
- BZD: "$BZ",
- CAD: "$CA",
- CLP: "$CL",
- COP: "$CO",
- CYP: "£CY",
- EUR: "€",
- FJD: "$FJ",
- FKP: "£FK",
- FRF: "F",
- GBP: "£GB",
- GIP: "£GI",
- IEP: "£IE",
- ILP: "£IL",
- ILS: "₪",
- INR: "₹",
- ITL: "₤IT",
- KRW: "₩",
- LBP: "£LB",
- MTP: "£MT",
- MXN: "$MX",
- NAD: "$NA",
- NZD: "$NZ",
- RHD: "$RH",
- SBD: "$SB",
- SGD: "$SG",
- SRD: "$SR",
- TTD: "$TT",
- USD: "$US",
- UYU: "$UY",
- VND: "₫",
- WST: "WS$",
- XAF: "FCFA",
- XOF: "CFA",
- XPF: "FCFP"
- }
- }
- });
+ });
}).call(global);
global._Intl = global.Intl;
global.Intl = global.IntlPolyfill;
-Number.prototype.toLocaleString = function(locale, options) {
- let formatter = Intl.NumberFormat(locale, options);
- return formatter.format(this);
-}
\ No newline at end of file
+Number.prototype.toLocaleString = function (locale, options) {
+ let formatter = Intl.NumberFormat(locale, options);
+ return formatter.format(this);
+};
diff --git a/test/updateRenders.js b/test/updateRenders.js
index b829d292d1..13d74e79d5 100644
--- a/test/updateRenders.js
+++ b/test/updateRenders.js
@@ -16,114 +16,180 @@ Components.setComponents(AllComponents);
const dir = './test/renders';
const componentDir = './lib/cjs/components';
if (!fs.existsSync(dir)) {
- fs.mkdirSync(dir);
+ fs.mkdirSync(dir);
}
const fixComponent = (instance, index = 0) => {
- instance.id = instance.key;
- index++;
- if (instance.everyComponent) {
- instance.everyComponent((component) => fixComponent(component, index));
- if (Object.prototype.hasOwnProperty.call(instance, 'subForm') && instance.subForm) {
- instance.subForm.id = instance.key;
+ instance.id = instance.key;
+ index++;
+ if (instance.everyComponent) {
+ instance.everyComponent((component) => fixComponent(component, index));
+ if (
+ Object.prototype.hasOwnProperty.call(instance, 'subForm') &&
+ instance.subForm
+ ) {
+ instance.subForm.id = instance.key;
+ }
}
- }
};
const renderForm = (form, options) => {
- return new Form(form, options).ready.then(instance => {
- fixComponent(instance);
- return pretty(instance.render(), { ocd: true });
- });
+ return new Form(form, options).ready.then((instance) => {
+ fixComponent(instance);
+ return pretty(instance.render(), { ocd: true });
+ });
};
const renderComponent = (Type, definition, options, value) => {
- const instance = new Type(definition, options);
- if (value !== undefined) {
- instance.dataValue = value;
- }
- fixComponent(instance);
- return pretty(instance.render(), { ocd: true });
+ const instance = new Type(definition, options);
+ if (value !== undefined) {
+ instance.dataValue = value;
+ }
+ fixComponent(instance);
+ return pretty(instance.render(), { ocd: true });
};
const renderAsString = (Type, definition, options, value) => {
- const instance = new Type(definition, options);
- return instance.getValueAsString(value);
+ const instance = new Type(definition, options);
+ return instance.getValueAsString(value);
};
-Object.keys(templates).forEach(framework => {
- // Render forms
- Object.keys(forms).forEach(form => {
- renderForm(forms[form], { template: framework }).then(html => {
- fs.writeFileSync(`${dir}/form-${framework}-${form}.html`, html);
- }).catch(err => console.log(err));
- renderForm(forms[form], { template: framework, readOnly: true }).then(html => {
- fs.writeFileSync(`${dir}/form-${framework}-readOnly-${form}.html`, html);
- }).catch(err => console.log(err));
- });
- // Object.keys(formtests).forEach(form => {
- // fs.writeFileSync(`${dir}/form-${framework}-${form}.html`, renderForm(formtests[form].form, {}));
- // });
-
- // Render components
- Object.keys(AllComponents).forEach(component => {
- if (component !== 'componentmodal') {
- // Basic
- fs.writeFileSync(`${dir}/component-${framework}-${component}.html`, renderComponent(AllComponents[component], {}, { template: framework }));
-
- // Required
- fs.writeFileSync(`${dir}/component-${framework}-${component}-required.html`, renderComponent(AllComponents[component], {
- validate: {
- required: true
+Object.keys(templates).forEach((framework) => {
+ // Render forms
+ Object.keys(forms).forEach((form) => {
+ renderForm(forms[form], { template: framework })
+ .then((html) => {
+ fs.writeFileSync(`${dir}/form-${framework}-${form}.html`, html);
+ })
+ .catch((err) => console.log(err));
+ renderForm(forms[form], { template: framework, readOnly: true })
+ .then((html) => {
+ fs.writeFileSync(
+ `${dir}/form-${framework}-readOnly-${form}.html`,
+ html,
+ );
+ })
+ .catch((err) => console.log(err));
+ });
+ // Object.keys(formtests).forEach(form => {
+ // fs.writeFileSync(`${dir}/form-${framework}-${form}.html`, renderForm(formtests[form].form, {}));
+ // });
+
+ // Render components
+ Object.keys(AllComponents).forEach((component) => {
+ if (component !== 'componentmodal') {
+ // Basic
+ fs.writeFileSync(
+ `${dir}/component-${framework}-${component}.html`,
+ renderComponent(
+ AllComponents[component],
+ {},
+ { template: framework },
+ ),
+ );
+
+ // Required
+ fs.writeFileSync(
+ `${dir}/component-${framework}-${component}-required.html`,
+ renderComponent(
+ AllComponents[component],
+ {
+ validate: {
+ required: true,
+ },
+ },
+ {
+ template: framework,
+ },
+ ),
+ );
+
+ // Read only
+ fs.writeFileSync(
+ `${dir}/component-${framework}-${component}-readOnly.html`,
+ renderComponent(
+ AllComponents[component],
+ {},
+ {
+ template: framework,
+ readOnly: true,
+ },
+ ),
+ );
+
+ // Multiple
+ fs.writeFileSync(
+ `${dir}/component-${framework}-${component}-multiple.html`,
+ renderComponent(
+ AllComponents[component],
+ {
+ multiple: true,
+ },
+ {
+ template: framework,
+ },
+ ),
+ );
+
+ // Values
+ if (
+ fs.existsSync(`${componentDir}/${component}/fixtures/values.js`)
+ ) {
+ const values = require(
+ `../${componentDir}/${component}/fixtures/values.js`,
+ ).default.slice(0);
+
+ values.unshift(undefined);
+
+ values.forEach((value, index) => {
+ fs.writeFileSync(
+ `${dir}/component-${framework}-${component}-html-value${index}.html`,
+ renderComponent(
+ AllComponents[component],
+ {},
+ {
+ template: framework,
+ flatten: true,
+ renderMode: 'html',
+ },
+ value,
+ ),
+ );
+
+ fs.writeFileSync(
+ `${dir}/component-${framework}-${component}-readOnly-value${index}.html`,
+ renderComponent(
+ AllComponents[component],
+ {},
+ {
+ template: framework,
+ flatten: true,
+ readOnly: true,
+ },
+ value,
+ ),
+ );
+
+ fs.writeFileSync(
+ `${dir}/component-${framework}-${component}-string-value${index}.html`,
+ renderAsString(
+ AllComponents[component],
+ {},
+ {
+ template: framework,
+ flatten: true,
+ renderMode: 'html',
+ },
+ value,
+ ),
+ );
+ });
+ }
}
- }, {
- template: framework,
- }));
-
- // Read only
- fs.writeFileSync(`${dir}/component-${framework}-${component}-readOnly.html`, renderComponent(AllComponents[component], {}, {
- template: framework,
- readOnly: true
- }));
-
- // Multiple
- fs.writeFileSync(`${dir}/component-${framework}-${component}-multiple.html`, renderComponent(AllComponents[component], {
- multiple: true
- }, {
- template: framework,
- }));
-
- // Values
- if (fs.existsSync(`${componentDir}/${component}/fixtures/values.js`)) {
- const values = require(`../${componentDir}/${component}/fixtures/values.js`).default.slice(0);
-
- values.unshift(undefined);
-
- values.forEach((value, index) => {
- fs.writeFileSync(`${dir}/component-${framework}-${component}-html-value${index}.html`, renderComponent(AllComponents[component], {}, {
- template: framework,
- flatten: true,
- renderMode: 'html',
- }, value));
-
- fs.writeFileSync(`${dir}/component-${framework}-${component}-readOnly-value${index}.html`, renderComponent(AllComponents[component], {}, {
- template: framework,
- flatten: true,
- readOnly: true,
- }, value));
-
- fs.writeFileSync(`${dir}/component-${framework}-${component}-string-value${index}.html`, renderAsString(AllComponents[component], {}, {
- template: framework,
- flatten: true,
- renderMode: 'html',
- }, value));
- });
- }
- }
- });
+ });
});
process.on('unhandledRejection', (reason, p) => {
- console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
- // application specific logging, throwing an error, or other logic here
+ console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
+ // application specific logging, throwing an error, or other logic here
});
diff --git a/test/wizards/condional.next.page.js b/test/wizards/condional.next.page.js
index 5fb07a1174..5080b9b6e7 100644
--- a/test/wizards/condional.next.page.js
+++ b/test/wizards/condional.next.page.js
@@ -5,453 +5,568 @@ import { expect } from 'chai';
import Harness from '../harness';
export default {
- title: 'Wizard With Conditional Next Page',
- form: {
- _id: '58cdd541d482d500aaf48368',
- machineName: 'eguamgudzerbvzc:wizard',
- modified: '2017-03-19T00:48:02.035Z',
- title: 'Wizard',
- display: 'wizard',
- name: 'wizard',
- path: 'wizard',
- project: '58cc056767cb9600a75712e2',
- created: '2017-03-19T00:48:01.666Z',
- components: [{
- key: 'panel1',
- input: false,
- title: 'Page 1',
- nextPage: 'if (data.a == "goTo2") { next = 2; } else { next = 1; }',
- theme: 'default',
- components: [{
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'a',
- key: 'a',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- clearOnHide: true,
- validate: {required: true, minLength: '', maxLength: '', pattern: '', custom: '', customPrivate: false},
- conditional: {show: '', when: null, eq: ''},
- type: 'textfield',
- tags: []
- }, {
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'b',
- key: 'b',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- clearOnHide: true,
- validate: {required: false, minLength: '', maxLength: '', pattern: '', custom: '', customPrivate: false},
- conditional: {show: '', when: null, eq: ''},
- type: 'textfield',
- tags: []
- }],
- type: 'panel',
- tags: [],
- conditional: {show: '', when: null, eq: ''}
- }, {
- key: 'panel2',
- input: false,
- title: 'Page 2',
- theme: 'default',
- nextPage: 'if (data.c == "directSubmit") { next = null; } else { next = 2 }',
- components: [{
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'c',
- key: 'c',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- clearOnHide: true,
- validate: {required: false, minLength: '', maxLength: '', pattern: '', custom: '', customPrivate: false},
- conditional: {show: '', when: null, eq: ''},
- type: 'textfield',
- tags: []
- }, {
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'd',
- key: 'd',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- clearOnHide: true,
- validate: {required: false, minLength: '', maxLength: '', pattern: '', custom: '', customPrivate: false},
- conditional: {show: '', when: null, eq: ''},
- type: 'textfield',
- tags: []
- }],
- type: 'panel',
- tags: [],
- conditional: {show: '', when: null, eq: ''}
- }, {
- key: 'panel3',
- input: false,
- title: 'Page 3',
- theme: 'default',
- components: [{
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'e',
- key: 'e',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- clearOnHide: true,
- validate: {required: false, minLength: '', maxLength: '', pattern: '', custom: '', customPrivate: false},
- conditional: {show: '', when: null, eq: ''},
- type: 'textfield',
- tags: []
- }, {
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'f',
- key: 'f',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- clearOnHide: true,
- validate: {required: false, minLength: '', maxLength: '', pattern: '', custom: '', customPrivate: false},
- conditional: {show: '', when: null, eq: ''},
- type: 'textfield',
- tags: []
- }, {
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'g',
- key: 'g',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- clearOnHide: true,
- validate: {required: false, minLength: '', maxLength: '', pattern: '', custom: '', customPrivate: false},
- conditional: {show: '', when: null, eq: ''},
- type: 'textfield',
- tags: []
- }],
- type: 'panel',
- tags: [],
- conditional: {show: '', when: null, eq: ''}
- }, {
- input: true,
- label: 'Submit',
- tableView: false,
- key: 'submit',
- size: 'md',
- leftIcon: '',
- rightIcon: '',
- block: false,
- action: 'submit',
- disableOnInvalid: false,
- theme: 'primary',
- type: 'button'
- }],
- owner: '57605b5965901601001cbbd2',
- submissionAccess: [],
- access: [{
- type: 'read_all',
- roles: ['58cc056767cb9600a75712e3', '58cc056767cb9600a75712e4', '58cc056767cb9600a75712e5']
- }],
- tags: [],
- type: 'form'
- },
- tests: {
- /**
- * Test Schema:
- * - Wizard With Condinal Next Page: ByPass page
- * 'a' == 'goTo2' => click on 'Next' page bypass page 1
- * - Wizard With Condinal Next Page: Direct Submit
- * 'c' == 'directSubmit' => Submit direclty and bypass page 2
- */
-
- 'Wizard With Condinal Next Page: ByPass page'(form, done) {
- // Check current page
- expect(form.page, 'shod start form page 0').to.equal(0);
- Harness.testElements(form, 'input[type="text"]', 2);
- const buttonsToValid = ['Cancel', 'Next'];
- const buttonsText = _map(Harness.testElements(form, 'button'), (button) => button.innerText);
- assert.deepEqual(buttonsText, buttonsToValid);
+ title: 'Wizard With Conditional Next Page',
+ form: {
+ _id: '58cdd541d482d500aaf48368',
+ machineName: 'eguamgudzerbvzc:wizard',
+ modified: '2017-03-19T00:48:02.035Z',
+ title: 'Wizard',
+ display: 'wizard',
+ name: 'wizard',
+ path: 'wizard',
+ project: '58cc056767cb9600a75712e2',
+ created: '2017-03-19T00:48:01.666Z',
+ components: [
+ {
+ key: 'panel1',
+ input: false,
+ title: 'Page 1',
+ nextPage:
+ 'if (data.a == "goTo2") { next = 2; } else { next = 1; }',
+ theme: 'default',
+ components: [
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'a',
+ key: 'a',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ clearOnHide: true,
+ validate: {
+ required: true,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: { show: '', when: null, eq: '' },
+ type: 'textfield',
+ tags: [],
+ },
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'b',
+ key: 'b',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: { show: '', when: null, eq: '' },
+ type: 'textfield',
+ tags: [],
+ },
+ ],
+ type: 'panel',
+ tags: [],
+ conditional: { show: '', when: null, eq: '' },
+ },
+ {
+ key: 'panel2',
+ input: false,
+ title: 'Page 2',
+ theme: 'default',
+ nextPage:
+ 'if (data.c == "directSubmit") { next = null; } else { next = 2 }',
+ components: [
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'c',
+ key: 'c',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: { show: '', when: null, eq: '' },
+ type: 'textfield',
+ tags: [],
+ },
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'd',
+ key: 'd',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: { show: '', when: null, eq: '' },
+ type: 'textfield',
+ tags: [],
+ },
+ ],
+ type: 'panel',
+ tags: [],
+ conditional: { show: '', when: null, eq: '' },
+ },
+ {
+ key: 'panel3',
+ input: false,
+ title: 'Page 3',
+ theme: 'default',
+ components: [
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'e',
+ key: 'e',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: { show: '', when: null, eq: '' },
+ type: 'textfield',
+ tags: [],
+ },
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'f',
+ key: 'f',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: { show: '', when: null, eq: '' },
+ type: 'textfield',
+ tags: [],
+ },
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'g',
+ key: 'g',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: { show: '', when: null, eq: '' },
+ type: 'textfield',
+ tags: [],
+ },
+ ],
+ type: 'panel',
+ tags: [],
+ conditional: { show: '', when: null, eq: '' },
+ },
+ {
+ input: true,
+ label: 'Submit',
+ tableView: false,
+ key: 'submit',
+ size: 'md',
+ leftIcon: '',
+ rightIcon: '',
+ block: false,
+ action: 'submit',
+ disableOnInvalid: false,
+ theme: 'primary',
+ type: 'button',
+ },
+ ],
+ owner: '57605b5965901601001cbbd2',
+ submissionAccess: [],
+ access: [
+ {
+ type: 'read_all',
+ roles: [
+ '58cc056767cb9600a75712e3',
+ '58cc056767cb9600a75712e4',
+ '58cc056767cb9600a75712e5',
+ ],
+ },
+ ],
+ tags: [],
+ type: 'form',
+ },
+ tests: {
+ /**
+ * Test Schema:
+ * - Wizard With Condinal Next Page: ByPass page
+ * 'a' == 'goTo2' => click on 'Next' page bypass page 1
+ * - Wizard With Condinal Next Page: Direct Submit
+ * 'c' == 'directSubmit' => Submit direclty and bypass page 2
+ */
- // Write data
- const wizardData = {
- a: 'goTo2',
- b: 'b'
- };
- Harness.testSubmission(form, {
- data: wizardData
- });
+ 'Wizard With Condinal Next Page: ByPass page'(form, done) {
+ // Check current page
+ expect(form.page, 'shod start form page 0').to.equal(0);
+ Harness.testElements(form, 'input[type="text"]', 2);
+ const buttonsToValid = ['Cancel', 'Next'];
+ const buttonsText = _map(
+ Harness.testElements(form, 'button'),
+ (button) => button.innerText,
+ );
+ assert.deepEqual(buttonsText, buttonsToValid);
- // Go to page 2 (due to condional nextPage function)
- return Harness.testWizardNextPage(form)
- .catch((error) => {
- // Should returns a success
- done(error);
- })
- .then(() => {
- // Check next page
- assert.equal(form.page, 2);
- Harness.testElements(form, 'input[type="text"]', 3);
- const buttonsToValid = ['Cancel', 'Previous', 'Submit Form'];
- const buttonsText = _map(Harness.testElements(form, 'button'), (button) => button.innerText);
- assert.deepEqual(buttonsText, buttonsToValid);
- })
- .then(() => {
- // Write data
- const wizardData = {
- a: 'goTo2',
- b: 'b',
- e: 'e',
- f: 'f',
- g: 'g'
- };
- Harness.testSubmission(form, {
- data: wizardData
- });
- })
- .then(() => {
- // Go to prev page.
- return Harness.testWizardPrevPage(form, null, (data) => {
- // Check prevPage event
- assert.equal(data.page, 1);
- assert.deepEqual(data.submission.data, {
- a: 'goTo2',
- b: 'b',
- e: 'e',
- f: 'f',
- g: 'g',
- c: '',
- d: ''
- });
- });
- })
- .catch((error) => {
- // Should returns a success
- done(error);
- })
- .then(() => {
- // Check previous page
- assert.equal(form.page, 1);
- Harness.testElements(form, 'input[type="text"]', 2);
- const buttonsToValid = ['Cancel', 'Previous', 'Next'];
- const buttonsText = _map(Harness.testElements(form, 'button'), (button) => button.innerText);
- assert.deepEqual(buttonsText, buttonsToValid);
- })
- .then(() => {
- // Go to last page.
- return Harness.testWizardNextPage(form, null, (data) => {
- // Check nextPage event
- assert.equal(data.page, 2);
- assert.deepEqual(data.submission.data, {
- a: 'goTo2',
- b: 'b',
- e: 'e',
- f: 'f',
- g: 'g',
- c: '',
- d: ''
- });
- });
- })
- .catch((error) => {
- // Should returns a success
- done(error);
- })
- .then(() => {
- // Check last page
- assert.equal(form.page, 2);
- Harness.testElements(form, 'input[type="text"]', 3);
- const buttonsToValid = ['Cancel', 'Previous', 'Submit Form'];
- const buttonsText = _map(Harness.testElements(form, 'button'), (button) => button.innerText);
- assert.deepEqual(buttonsText, buttonsToValid);
- })
- .then(() => {
- // Write data
- const wizardData = {
- a: 'goTo2',
- b: 'b',
- e: 'e',
- f: 'f',
- g: 'g',
- c: '',
- d: ''
- };
- Harness.testSubmission(form, {
- data: wizardData
- });
- })
- .then(() => {
- // Check submit event
- form.on('submit', (submission) => {
- assert.deepEqual(submission.data, {
- a: 'goTo2',
- b: 'b',
- c: '',
- d: '',
- e: 'e',
- f: 'f',
- g: 'g'
+ // Write data
+ const wizardData = {
+ a: 'goTo2',
+ b: 'b',
+ };
+ Harness.testSubmission(form, {
+ data: wizardData,
});
- });
- // Submit
- return form.submit();
- })
- .then((submission) => {
- // Check submission
- assert.deepEqual(submission.data, {
- a: 'goTo2',
- b: 'b',
- c: '',
- d: '',
- e: 'e',
- f: 'f',
- g: 'g'
- });
- })
- .catch((error) => {
- // Should returns a success
- if (error[0] instanceof Error) {
- done(error[0]);
- }
- done(error);
- })
+ // Go to page 2 (due to condional nextPage function)
+ return (
+ Harness.testWizardNextPage(form)
+ .catch((error) => {
+ // Should returns a success
+ done(error);
+ })
+ .then(() => {
+ // Check next page
+ assert.equal(form.page, 2);
+ Harness.testElements(form, 'input[type="text"]', 3);
+ const buttonsToValid = [
+ 'Cancel',
+ 'Previous',
+ 'Submit Form',
+ ];
+ const buttonsText = _map(
+ Harness.testElements(form, 'button'),
+ (button) => button.innerText,
+ );
+ assert.deepEqual(buttonsText, buttonsToValid);
+ })
+ .then(() => {
+ // Write data
+ const wizardData = {
+ a: 'goTo2',
+ b: 'b',
+ e: 'e',
+ f: 'f',
+ g: 'g',
+ };
+ Harness.testSubmission(form, {
+ data: wizardData,
+ });
+ })
+ .then(() => {
+ // Go to prev page.
+ return Harness.testWizardPrevPage(
+ form,
+ null,
+ (data) => {
+ // Check prevPage event
+ assert.equal(data.page, 1);
+ assert.deepEqual(data.submission.data, {
+ a: 'goTo2',
+ b: 'b',
+ e: 'e',
+ f: 'f',
+ g: 'g',
+ c: '',
+ d: '',
+ });
+ },
+ );
+ })
+ .catch((error) => {
+ // Should returns a success
+ done(error);
+ })
+ .then(() => {
+ // Check previous page
+ assert.equal(form.page, 1);
+ Harness.testElements(form, 'input[type="text"]', 2);
+ const buttonsToValid = ['Cancel', 'Previous', 'Next'];
+ const buttonsText = _map(
+ Harness.testElements(form, 'button'),
+ (button) => button.innerText,
+ );
+ assert.deepEqual(buttonsText, buttonsToValid);
+ })
+ .then(() => {
+ // Go to last page.
+ return Harness.testWizardNextPage(
+ form,
+ null,
+ (data) => {
+ // Check nextPage event
+ assert.equal(data.page, 2);
+ assert.deepEqual(data.submission.data, {
+ a: 'goTo2',
+ b: 'b',
+ e: 'e',
+ f: 'f',
+ g: 'g',
+ c: '',
+ d: '',
+ });
+ },
+ );
+ })
+ .catch((error) => {
+ // Should returns a success
+ done(error);
+ })
+ .then(() => {
+ // Check last page
+ assert.equal(form.page, 2);
+ Harness.testElements(form, 'input[type="text"]', 3);
+ const buttonsToValid = [
+ 'Cancel',
+ 'Previous',
+ 'Submit Form',
+ ];
+ const buttonsText = _map(
+ Harness.testElements(form, 'button'),
+ (button) => button.innerText,
+ );
+ assert.deepEqual(buttonsText, buttonsToValid);
+ })
+ .then(() => {
+ // Write data
+ const wizardData = {
+ a: 'goTo2',
+ b: 'b',
+ e: 'e',
+ f: 'f',
+ g: 'g',
+ c: '',
+ d: '',
+ };
+ Harness.testSubmission(form, {
+ data: wizardData,
+ });
+ })
+ .then(() => {
+ // Check submit event
+ form.on('submit', (submission) => {
+ assert.deepEqual(submission.data, {
+ a: 'goTo2',
+ b: 'b',
+ c: '',
+ d: '',
+ e: 'e',
+ f: 'f',
+ g: 'g',
+ });
+ });
+ // Submit
+ return form.submit();
+ })
+ .then((submission) => {
+ // Check submission
+ assert.deepEqual(submission.data, {
+ a: 'goTo2',
+ b: 'b',
+ c: '',
+ d: '',
+ e: 'e',
+ f: 'f',
+ g: 'g',
+ });
+ })
+ .catch((error) => {
+ // Should returns a success
+ if (error[0] instanceof Error) {
+ done(error[0]);
+ }
- // Call done
- .then(() => {
- done();
- });
- },
- 'Wizard With Condinal Next Page: Direct Submit'(form, done) {
- // Check current page
- assert.equal(form.page, 0);
- Harness.testElements(form, 'input[type="text"]', 2);
- const buttonsToValid = ['Cancel', 'Next'];
- const buttonsText = _map(Harness.testElements(form, 'button'), (button) => button.innerText);
- assert.deepEqual(buttonsText, buttonsToValid);
+ done(error);
+ })
- // Write data
- const wizardData = {
- a: 'a',
- b: 'b'
- };
- Harness.testSubmission(form, {
- data: wizardData
- });
+ // Call done
+ .then(() => {
+ done();
+ })
+ );
+ },
+ 'Wizard With Condinal Next Page: Direct Submit'(form, done) {
+ // Check current page
+ assert.equal(form.page, 0);
+ Harness.testElements(form, 'input[type="text"]', 2);
+ const buttonsToValid = ['Cancel', 'Next'];
+ const buttonsText = _map(
+ Harness.testElements(form, 'button'),
+ (button) => button.innerText,
+ );
+ assert.deepEqual(buttonsText, buttonsToValid);
- // Go to page 1
- return Harness.testWizardNextPage(form)
- .catch((error) => {
- // Should returns a success
- done(error);
- })
- .then(() => {
- // Check next page
- assert.equal(form.page, 1);
- Harness.testElements(form, 'input[type="text"]', 2);
- const buttonsToValid = ['Cancel', 'Previous', 'Next'];
- const buttonsText = _map(Harness.testElements(form, 'button'), (button) => button.innerText);
- assert.deepEqual(buttonsText, buttonsToValid);
- })
- .then(() => {
- // Check updateWizardNav event
- form.on('updateWizardNav', (change) => {
- assert.equal(change.oldpage, 2);
- assert.equal(change.newpage, null);
- // Check submission
- assert.deepEqual(change.submission.data, {
- a: 'a',
- b: 'b',
- c: 'directSubmit',
- d: ''
+ // Write data
+ const wizardData = {
+ a: 'a',
+ b: 'b',
+ };
+ Harness.testSubmission(form, {
+ data: wizardData,
});
- // Should show a submit button instead of next button
- const buttonsToValid = ['Cancel', 'Previous', 'Submit Form'];
- const buttonsText = _map(Harness.testElements(form, 'button'), (button) => button.innerText);
- assert.deepEqual(buttonsText, buttonsToValid);
- form.submit()
- .then((submission) => {
- // Check submission
- assert.deepEqual(submission.data, {
- a: 'a',
- b: 'b',
- c: 'directSubmit',
- d: '',
- e: '',
- f: '',
- g: ''
- });
+ // Go to page 1
+ return Harness.testWizardNextPage(form)
+ .catch((error) => {
+ // Should returns a success
+ done(error);
+ })
+ .then(() => {
+ // Check next page
+ assert.equal(form.page, 1);
+ Harness.testElements(form, 'input[type="text"]', 2);
+ const buttonsToValid = ['Cancel', 'Previous', 'Next'];
+ const buttonsText = _map(
+ Harness.testElements(form, 'button'),
+ (button) => button.innerText,
+ );
+ assert.deepEqual(buttonsText, buttonsToValid);
+ })
+ .then(() => {
+ // Check updateWizardNav event
+ form.on('updateWizardNav', (change) => {
+ assert.equal(change.oldpage, 2);
+ assert.equal(change.newpage, null);
+ // Check submission
+ assert.deepEqual(change.submission.data, {
+ a: 'a',
+ b: 'b',
+ c: 'directSubmit',
+ d: '',
+ });
- done();
- })
- .catch(done);
- });
+ // Should show a submit button instead of next button
+ const buttonsToValid = [
+ 'Cancel',
+ 'Previous',
+ 'Submit Form',
+ ];
+ const buttonsText = _map(
+ Harness.testElements(form, 'button'),
+ (button) => button.innerText,
+ );
+ assert.deepEqual(buttonsText, buttonsToValid);
+ form.submit()
+ .then((submission) => {
+ // Check submission
+ assert.deepEqual(submission.data, {
+ a: 'a',
+ b: 'b',
+ c: 'directSubmit',
+ d: '',
+ e: '',
+ f: '',
+ g: '',
+ });
- // Write data
- const wizardData = {
- a: 'a',
- b: 'b',
- c: 'directSubmit',
- d: ''
- };
- Harness.testSubmission(form, {
- data: wizardData
- });
- })
- .catch(done);
- }
- }
+ done();
+ })
+ .catch(done);
+ });
+
+ // Write data
+ const wizardData = {
+ a: 'a',
+ b: 'b',
+ c: 'directSubmit',
+ d: '',
+ };
+ Harness.testSubmission(form, {
+ data: wizardData,
+ });
+ })
+ .catch(done);
+ },
+ },
};
diff --git a/test/wizards/index.js b/test/wizards/index.js
index 94edf4bc6a..b57208515e 100644
--- a/test/wizards/index.js
+++ b/test/wizards/index.js
@@ -1,6 +1,3 @@
import Simple from './simple';
import Conditional from './condional.next.page';
-export default [
- Simple,
- Conditional
-];
+export default [Simple, Conditional];
diff --git a/test/wizards/simple.js b/test/wizards/simple.js
index 411d575d20..2a35321cf1 100644
--- a/test/wizards/simple.js
+++ b/test/wizards/simple.js
@@ -5,485 +5,595 @@ import { expect } from 'chai';
import Harness from '../harness';
export default {
- title: 'Simple Wizard',
- form: {
- _id: '58cdd541d482d500aaf48368',
- machineName: 'eguamgudzerbvzc:wizard',
- modified: '2017-03-19T00:48:02.035Z',
- title: 'Wizard',
- display: 'wizard',
- name: 'wizard',
- path: 'wizard',
- project: '58cc056767cb9600a75712e2',
- created: '2017-03-19T00:48:01.666Z',
- components: [{
- key: 'panel1',
- input: false,
- title: 'Page 1',
- theme: 'default',
- components: [{
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'a',
- key: 'a',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- clearOnHide: true,
- validate: {required: true, minLength: '', maxLength: '', pattern: '', custom: '', customPrivate: false},
- conditional: {show: '', when: null, eq: ''},
- type: 'textfield',
- tags: []
- }, {
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'b',
- key: 'b',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- clearOnHide: true,
- validate: {required: false, minLength: '', maxLength: '', pattern: '', custom: '', customPrivate: false},
- conditional: {show: '', when: null, eq: ''},
- type: 'textfield',
- tags: []
- }],
- type: 'panel',
- tags: [],
- conditional: {show: '', when: null, eq: ''}
- }, {
- key: 'panel2',
- input: false,
- title: 'Page 2',
- theme: 'default',
- components: [{
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'c',
- key: 'c',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- clearOnHide: true,
- validate: {required: false, minLength: '', maxLength: '', pattern: '', custom: '', customPrivate: false},
- conditional: {show: '', when: null, eq: ''},
- type: 'textfield',
- tags: []
- }, {
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'd',
- key: 'd',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- clearOnHide: true,
- validate: {required: false, minLength: '', maxLength: '', pattern: '', custom: '', customPrivate: false},
- conditional: {show: '', when: null, eq: ''},
- type: 'textfield',
- tags: []
- }],
- type: 'panel',
- tags: [],
- conditional: {show: '', when: null, eq: ''}
- }, {
- key: 'panel3',
- input: false,
- title: 'Page 3',
- theme: 'default',
- components: [{
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'e',
- key: 'e',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- clearOnHide: true,
- validate: {required: false, minLength: '', maxLength: '', pattern: '', custom: '', customPrivate: false},
- conditional: {show: '', when: null, eq: ''},
- type: 'textfield',
- tags: []
- }, {
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'f',
- key: 'f',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- clearOnHide: true,
- validate: {required: false, minLength: '', maxLength: '', pattern: '', custom: '', customPrivate: false},
- conditional: {show: '', when: null, eq: ''},
- type: 'textfield',
- tags: []
- }, {
- input: true,
- tableView: true,
- inputType: 'text',
- inputMask: '',
- label: 'g',
- key: 'g',
- placeholder: '',
- prefix: '',
- suffix: '',
- multiple: false,
- defaultValue: '',
- protected: false,
- unique: false,
- persistent: true,
- clearOnHide: true,
- validate: {required: false, minLength: '', maxLength: '', pattern: '', custom: '', customPrivate: false},
- conditional: {show: '', when: null, eq: ''},
- type: 'textfield',
- tags: []
- }],
- type: 'panel',
- tags: [],
- conditional: {show: '', when: null, eq: ''}
- }, {
- input: true,
- label: 'Submit',
- tableView: false,
- key: 'submit',
- size: 'md',
- leftIcon: '',
- rightIcon: '',
- block: false,
- action: 'submit',
- disableOnInvalid: false,
- theme: 'primary',
- type: 'button'
- }],
- owner: '57605b5965901601001cbbd2',
- submissionAccess: [],
- access: [{
- type: 'read_all',
- roles: ['58cc056767cb9600a75712e3', '58cc056767cb9600a75712e4', '58cc056767cb9600a75712e5']
- }],
- tags: [],
- type: 'form'
- },
- tests: {
- 'Test Wizard valid submission': (form, done) => {
- // Check current page
- assert.equal(form.page, 0);
- assert.deepStrictEqual(form._seenPages, [0]);
- Harness.testElements(form, 'input[type="text"]', 2);
- const buttonsToValid = ['Cancel', 'Next'];
- const buttonsText = _map(Harness.testElements(form, 'button'), (button) => button.innerText);
- assert.deepEqual(buttonsText, buttonsToValid);
+ title: 'Simple Wizard',
+ form: {
+ _id: '58cdd541d482d500aaf48368',
+ machineName: 'eguamgudzerbvzc:wizard',
+ modified: '2017-03-19T00:48:02.035Z',
+ title: 'Wizard',
+ display: 'wizard',
+ name: 'wizard',
+ path: 'wizard',
+ project: '58cc056767cb9600a75712e2',
+ created: '2017-03-19T00:48:01.666Z',
+ components: [
+ {
+ key: 'panel1',
+ input: false,
+ title: 'Page 1',
+ theme: 'default',
+ components: [
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'a',
+ key: 'a',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ clearOnHide: true,
+ validate: {
+ required: true,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: { show: '', when: null, eq: '' },
+ type: 'textfield',
+ tags: [],
+ },
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'b',
+ key: 'b',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: { show: '', when: null, eq: '' },
+ type: 'textfield',
+ tags: [],
+ },
+ ],
+ type: 'panel',
+ tags: [],
+ conditional: { show: '', when: null, eq: '' },
+ },
+ {
+ key: 'panel2',
+ input: false,
+ title: 'Page 2',
+ theme: 'default',
+ components: [
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'c',
+ key: 'c',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: { show: '', when: null, eq: '' },
+ type: 'textfield',
+ tags: [],
+ },
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'd',
+ key: 'd',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: { show: '', when: null, eq: '' },
+ type: 'textfield',
+ tags: [],
+ },
+ ],
+ type: 'panel',
+ tags: [],
+ conditional: { show: '', when: null, eq: '' },
+ },
+ {
+ key: 'panel3',
+ input: false,
+ title: 'Page 3',
+ theme: 'default',
+ components: [
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'e',
+ key: 'e',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: { show: '', when: null, eq: '' },
+ type: 'textfield',
+ tags: [],
+ },
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'f',
+ key: 'f',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: { show: '', when: null, eq: '' },
+ type: 'textfield',
+ tags: [],
+ },
+ {
+ input: true,
+ tableView: true,
+ inputType: 'text',
+ inputMask: '',
+ label: 'g',
+ key: 'g',
+ placeholder: '',
+ prefix: '',
+ suffix: '',
+ multiple: false,
+ defaultValue: '',
+ protected: false,
+ unique: false,
+ persistent: true,
+ clearOnHide: true,
+ validate: {
+ required: false,
+ minLength: '',
+ maxLength: '',
+ pattern: '',
+ custom: '',
+ customPrivate: false,
+ },
+ conditional: { show: '', when: null, eq: '' },
+ type: 'textfield',
+ tags: [],
+ },
+ ],
+ type: 'panel',
+ tags: [],
+ conditional: { show: '', when: null, eq: '' },
+ },
+ {
+ input: true,
+ label: 'Submit',
+ tableView: false,
+ key: 'submit',
+ size: 'md',
+ leftIcon: '',
+ rightIcon: '',
+ block: false,
+ action: 'submit',
+ disableOnInvalid: false,
+ theme: 'primary',
+ type: 'button',
+ },
+ ],
+ owner: '57605b5965901601001cbbd2',
+ submissionAccess: [],
+ access: [
+ {
+ type: 'read_all',
+ roles: [
+ '58cc056767cb9600a75712e3',
+ '58cc056767cb9600a75712e4',
+ '58cc056767cb9600a75712e5',
+ ],
+ },
+ ],
+ tags: [],
+ type: 'form',
+ },
+ tests: {
+ 'Test Wizard valid submission': (form, done) => {
+ // Check current page
+ assert.equal(form.page, 0);
+ assert.deepStrictEqual(form._seenPages, [0]);
+ Harness.testElements(form, 'input[type="text"]', 2);
+ const buttonsToValid = ['Cancel', 'Next'];
+ const buttonsText = _map(
+ Harness.testElements(form, 'button'),
+ (button) => button.innerText,
+ );
+ assert.deepEqual(buttonsText, buttonsToValid);
- // Try to go to previous page. Stay on page 0
- return Harness.testWizardPrevPage(form)
- .then(() => {
- expect(form.page, 'should stay on page 0').to.equal(0);
- })
- .then(() => {
- return form.submit();
- })
- .then(() => {
- // Should returns a reject
- done('Should not be called');
- })
- .catch((errors) => {
- if (errors instanceof Error) done(errors);
- // Submission should include only 2 fields.
- assert.equal(Object.keys(form.submission.data).length, 2);
- assert.equal(errors.length, 1);
- assert.equal(errors[0].message, 'a is required');
- })
- .then(() => {
- // Try to go to next page. Stay on page 0
- return Harness.testWizardNextPage(form, [{
- component: 'a',
- message: 'a is required'
- }]);
- })
- .then(() => {
- // Should returns a reject
- done('Should not be called');
- })
- .catch(errors => {
- if (errors instanceof Error) done(errors);
- // Catch next page error
- assert.equal(errors.length, 1);
- assert.equal(errors[0].message, 'a is required');
- assert.equal(form.page, 0);
- })
- .then(() => {
- // Write data
- const wizardData = {
- a: 'a',
- b: 'b'
- };
- Harness.testSubmission(form, {
- data: wizardData
- });
- assert.deepStrictEqual(form._seenPages, [0]);
- assert.equal(form.page, 0);
- })
- .then(() => {
- // Go to next page.
- return Harness.testWizardNextPage(form);
- })
- .catch((error) => {
- // Should returns a success
- done(error);
- })
- .then(() => {
- // Check next page
- assert.equal(form.page, 1);
- // Check that 0 and 1 pages have been seen.
- assert.deepStrictEqual(form._seenPages, [0, 1]);
- Harness.testElements(form, 'input[type="text"]', 2);
- const buttonsToValid = ['Cancel', 'Previous', 'Next'];
- const buttonsText = _map(Harness.testElements(form, 'button'), (button) => button.innerText);
- assert.deepEqual(buttonsText, buttonsToValid);
- })
- .then(() => {
- // Click on cancel.
- return form.cancel(true);
- })
- .catch((error) => {
- // Should returns a success
- done(error);
- })
- .then(() => {
- // Check start page
- assert.deepEqual(form.data, {
- a: '',
- b: ''
- });
- assert.equal(form.page, 0);
- assert.deepStrictEqual(form._seenPages, [0, 1]);
- Harness.testElements(form, 'input[type="text"]', 2);
- const buttonsToValid = ['Cancel', 'Next'];
- const buttonsText = _map(Harness.testElements(form, 'button'), (button) => button.innerText);
- assert.deepEqual(buttonsText, buttonsToValid);
- })
- .then(() => {
- // Write data
- const wizardData = {
- a: 'a',
- b: 'b',
- c: '',
- d: ''
- };
- Harness.testSubmission(form, {
- data: wizardData
- });
- assert.equal(form.page, 0);
- assert.deepStrictEqual(form._seenPages, [0, 1]);
- })
- .then(() => {
- // Go to next page.
- return Harness.testWizardNextPage(form);
- })
- .catch((error) => {
- // Should returns a success
- done(error);
- })
- .then(() => {
- // Check next page
- assert.equal(form.page, 1);
- assert.deepStrictEqual(form._seenPages, [0, 1]);
- Harness.testElements(form, 'input[type="text"]', 2);
- const buttonsToValid = ['Cancel', 'Previous', 'Next'];
- const buttonsText = _map(Harness.testElements(form, 'button'), (button) => button.innerText);
- assert.deepEqual(buttonsText, buttonsToValid);
- })
- .then(() => {
- // Write data
- const wizardData = {
- a: 'a',
- b: 'b',
- c: 'c',
- d: ''
- };
- Harness.testSubmission(form, {
- data: wizardData
- });
- })
- .then(() => {
- // Go to previous page.
- return Harness.testWizardPrevPage(form, null, (data) => {
- // Check prevPage event
- assert.equal(data.page, 0);
- assert.deepEqual(data.submission.data, {
- a: 'a',
- b: 'b',
- c: 'c',
- d: ''
- });
- });
- })
- .catch((error) => {
- // Should returns a success
- done(error);
- })
- .then(() => {
- // Check previous page
- assert.equal(form.page, 0);
- Harness.testElements(form, 'input[type="text"]', 2);
- const buttonsToValid = ['Cancel', 'Next'];
- const buttonsText = _map(Harness.testElements(form, 'button'), (button) => button.innerText);
- assert.deepEqual(buttonsText, buttonsToValid);
- })
- .then(() => {
- // Go to next page.
- return Harness.testWizardNextPage(form);
- })
- .catch((error) => {
- // Should returns a success
- done(error);
- })
- .then(() => {
- // Check next page
- assert.equal(form.page, 1);
- Harness.testElements(form, 'input[type="text"]', 2);
- const buttonsToValid = ['Cancel', 'Previous', 'Next'];
- const buttonsText = _map(Harness.testElements(form, 'button'), (button) => button.innerText);
- assert.deepEqual(buttonsText, buttonsToValid);
- })
- .then(() => {
- // Go to last page.
- return Harness.testWizardNextPage(form, null, (data) => {
- // Check nextPage event
- assert.equal(data.page, 2);
- assert.deepStrictEqual(form._seenPages, [0, 1, 2]);
- assert.deepEqual(data.submission.data, {
- a: 'a',
- b: 'b',
- c: 'c',
- d: '',
- e: '',
- f: '',
- g: ''
- });
- });
- })
- .catch((error) => {
- // Should returns a success
- done(error);
- })
- .then(() => {
- // Check last page
- assert.equal(form.page, 2);
- Harness.testElements(form, 'input[type="text"]', 3);
- const buttonsToValid = ['Cancel', 'Previous', 'Submit Form'];
- const buttonsText = _map(Harness.testElements(form, 'button'), (button) => button.innerText);
- assert.deepEqual(buttonsText, buttonsToValid);
- })
- .then(() => {
- // Write data
- const wizardData = {
- a: 'a',
- b: 'b',
- c: 'c',
- d: '',
- e: 'e',
- f: 'f',
- g: 'g'
- };
- Harness.testSubmission(form, {
- data: wizardData
- });
- })
- .then(() => {
- // Check submit event
- form.on('submit', (submission) => {
- assert.deepEqual(submission.data, {
- a: 'a',
- b: 'b',
- c: 'c',
- d: '',
- e: 'e',
- f: 'f',
- g: 'g'
+ // Try to go to previous page. Stay on page 0
+ return (
+ Harness.testWizardPrevPage(form)
+ .then(() => {
+ expect(form.page, 'should stay on page 0').to.equal(0);
+ })
+ .then(() => {
+ return form.submit();
+ })
+ .then(() => {
+ // Should returns a reject
+ done('Should not be called');
+ })
+ .catch((errors) => {
+ if (errors instanceof Error) done(errors);
+ // Submission should include only 2 fields.
+ assert.equal(
+ Object.keys(form.submission.data).length,
+ 2,
+ );
+ assert.equal(errors.length, 1);
+ assert.equal(errors[0].message, 'a is required');
+ })
+ .then(() => {
+ // Try to go to next page. Stay on page 0
+ return Harness.testWizardNextPage(form, [
+ {
+ component: 'a',
+ message: 'a is required',
+ },
+ ]);
+ })
+ .then(() => {
+ // Should returns a reject
+ done('Should not be called');
+ })
+ .catch((errors) => {
+ if (errors instanceof Error) done(errors);
+ // Catch next page error
+ assert.equal(errors.length, 1);
+ assert.equal(errors[0].message, 'a is required');
+ assert.equal(form.page, 0);
+ })
+ .then(() => {
+ // Write data
+ const wizardData = {
+ a: 'a',
+ b: 'b',
+ };
+ Harness.testSubmission(form, {
+ data: wizardData,
+ });
+ assert.deepStrictEqual(form._seenPages, [0]);
+ assert.equal(form.page, 0);
+ })
+ .then(() => {
+ // Go to next page.
+ return Harness.testWizardNextPage(form);
+ })
+ .catch((error) => {
+ // Should returns a success
+ done(error);
+ })
+ .then(() => {
+ // Check next page
+ assert.equal(form.page, 1);
+ // Check that 0 and 1 pages have been seen.
+ assert.deepStrictEqual(form._seenPages, [0, 1]);
+ Harness.testElements(form, 'input[type="text"]', 2);
+ const buttonsToValid = ['Cancel', 'Previous', 'Next'];
+ const buttonsText = _map(
+ Harness.testElements(form, 'button'),
+ (button) => button.innerText,
+ );
+ assert.deepEqual(buttonsText, buttonsToValid);
+ })
+ .then(() => {
+ // Click on cancel.
+ return form.cancel(true);
+ })
+ .catch((error) => {
+ // Should returns a success
+ done(error);
+ })
+ .then(() => {
+ // Check start page
+ assert.deepEqual(form.data, {
+ a: '',
+ b: '',
+ });
+ assert.equal(form.page, 0);
+ assert.deepStrictEqual(form._seenPages, [0, 1]);
+ Harness.testElements(form, 'input[type="text"]', 2);
+ const buttonsToValid = ['Cancel', 'Next'];
+ const buttonsText = _map(
+ Harness.testElements(form, 'button'),
+ (button) => button.innerText,
+ );
+ assert.deepEqual(buttonsText, buttonsToValid);
+ })
+ .then(() => {
+ // Write data
+ const wizardData = {
+ a: 'a',
+ b: 'b',
+ c: '',
+ d: '',
+ };
+ Harness.testSubmission(form, {
+ data: wizardData,
+ });
+ assert.equal(form.page, 0);
+ assert.deepStrictEqual(form._seenPages, [0, 1]);
+ })
+ .then(() => {
+ // Go to next page.
+ return Harness.testWizardNextPage(form);
+ })
+ .catch((error) => {
+ // Should returns a success
+ done(error);
+ })
+ .then(() => {
+ // Check next page
+ assert.equal(form.page, 1);
+ assert.deepStrictEqual(form._seenPages, [0, 1]);
+ Harness.testElements(form, 'input[type="text"]', 2);
+ const buttonsToValid = ['Cancel', 'Previous', 'Next'];
+ const buttonsText = _map(
+ Harness.testElements(form, 'button'),
+ (button) => button.innerText,
+ );
+ assert.deepEqual(buttonsText, buttonsToValid);
+ })
+ .then(() => {
+ // Write data
+ const wizardData = {
+ a: 'a',
+ b: 'b',
+ c: 'c',
+ d: '',
+ };
+ Harness.testSubmission(form, {
+ data: wizardData,
+ });
+ })
+ .then(() => {
+ // Go to previous page.
+ return Harness.testWizardPrevPage(
+ form,
+ null,
+ (data) => {
+ // Check prevPage event
+ assert.equal(data.page, 0);
+ assert.deepEqual(data.submission.data, {
+ a: 'a',
+ b: 'b',
+ c: 'c',
+ d: '',
+ });
+ },
+ );
+ })
+ .catch((error) => {
+ // Should returns a success
+ done(error);
+ })
+ .then(() => {
+ // Check previous page
+ assert.equal(form.page, 0);
+ Harness.testElements(form, 'input[type="text"]', 2);
+ const buttonsToValid = ['Cancel', 'Next'];
+ const buttonsText = _map(
+ Harness.testElements(form, 'button'),
+ (button) => button.innerText,
+ );
+ assert.deepEqual(buttonsText, buttonsToValid);
+ })
+ .then(() => {
+ // Go to next page.
+ return Harness.testWizardNextPage(form);
+ })
+ .catch((error) => {
+ // Should returns a success
+ done(error);
+ })
+ .then(() => {
+ // Check next page
+ assert.equal(form.page, 1);
+ Harness.testElements(form, 'input[type="text"]', 2);
+ const buttonsToValid = ['Cancel', 'Previous', 'Next'];
+ const buttonsText = _map(
+ Harness.testElements(form, 'button'),
+ (button) => button.innerText,
+ );
+ assert.deepEqual(buttonsText, buttonsToValid);
+ })
+ .then(() => {
+ // Go to last page.
+ return Harness.testWizardNextPage(
+ form,
+ null,
+ (data) => {
+ // Check nextPage event
+ assert.equal(data.page, 2);
+ assert.deepStrictEqual(
+ form._seenPages,
+ [0, 1, 2],
+ );
+ assert.deepEqual(data.submission.data, {
+ a: 'a',
+ b: 'b',
+ c: 'c',
+ d: '',
+ e: '',
+ f: '',
+ g: '',
+ });
+ },
+ );
+ })
+ .catch((error) => {
+ // Should returns a success
+ done(error);
+ })
+ .then(() => {
+ // Check last page
+ assert.equal(form.page, 2);
+ Harness.testElements(form, 'input[type="text"]', 3);
+ const buttonsToValid = [
+ 'Cancel',
+ 'Previous',
+ 'Submit Form',
+ ];
+ const buttonsText = _map(
+ Harness.testElements(form, 'button'),
+ (button) => button.innerText,
+ );
+ assert.deepEqual(buttonsText, buttonsToValid);
+ })
+ .then(() => {
+ // Write data
+ const wizardData = {
+ a: 'a',
+ b: 'b',
+ c: 'c',
+ d: '',
+ e: 'e',
+ f: 'f',
+ g: 'g',
+ };
+ Harness.testSubmission(form, {
+ data: wizardData,
+ });
+ })
+ .then(() => {
+ // Check submit event
+ form.on('submit', (submission) => {
+ assert.deepEqual(submission.data, {
+ a: 'a',
+ b: 'b',
+ c: 'c',
+ d: '',
+ e: 'e',
+ f: 'f',
+ g: 'g',
+ });
+ });
+ // Submit
+ return form.submit();
+ })
+ .then((submission) => {
+ // Check submission
+ assert.deepEqual(submission.data, {
+ a: 'a',
+ b: 'b',
+ c: 'c',
+ d: '',
+ e: 'e',
+ f: 'f',
+ g: 'g',
+ });
+ })
+ .catch((error) => {
+ // Should returns a success
+ done(error);
+ })
+ // Call done
+ .then(() => {
+ done();
+ })
+ );
+ },
+ 'Test Wizard.setPage with invalid page number': (form, done) => {
+ let res;
+ try {
+ res = form.setPage(-1);
+ } catch (error) {
+ done(error);
+ }
+
+ res.then(() => expect.fail('should reject')).catch((error) => {
+ expect(error).to.equal('Page not found');
+ done();
});
- });
- // Submit
- return form.submit();
- })
- .then((submission) => {
- // Check submission
- assert.deepEqual(submission.data, {
- a: 'a',
- b: 'b',
- c: 'c',
- d: '',
- e: 'e',
- f: 'f',
- g: 'g'
- });
- })
- .catch((error) => {
- // Should returns a success
- done(error);
- })
- // Call done
- .then(() => {
- done();
- });
+ },
},
- 'Test Wizard.setPage with invalid page number': (form, done) => {
- let res;
- try {
- res = form.setPage(-1);
- }
- catch (error) {
- done(error);
- }
-
- res
- .then(() => expect.fail('should reject'))
- .catch(error => {
- expect(error).to.equal('Page not found');
- done();
- });
- }
- }
};
diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json
index 80b26c8029..f581bd2c48 100644
--- a/tsconfig.cjs.json
+++ b/tsconfig.cjs.json
@@ -6,4 +6,4 @@
"target": "es2015",
"declaration": true
}
-}
\ No newline at end of file
+}
diff --git a/tsconfig.json b/tsconfig.json
index d1811e9f96..0fed5925d1 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,38 +1,38 @@
{
- "compilerOptions": {
- "module": "commonjs",
- "outDir": "lib",
- "target": "es2015",
- "allowJs": true, /* Allow javascript files to be compiled. */
- "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
- "noImplicitThis": false, /* Raise error on 'this' expressions with an implied 'any' type. */
- "declaration": false, /* Generates corresponding '.d.ts' file. */
- "baseUrl": "src", /* Base directory to resolve non-absolute module names. */
- "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
- "inlineSourceMap": false, /* Emit a single file with source maps instead of having a separate file. */
- "lib": ["esnext"], /* Specify library files to be included in the compilation. */
- "listEmittedFiles": false,
- "listFiles": false,
- "moduleResolution": "node",
- "noFallthroughCasesInSwitch": true,
- "pretty": true,
- "resolveJsonModule": true,
- "skipLibCheck": true,
- "strict": true,
- "traceResolution": false,
- "types": ["node"],
- "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
- "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */
- },
- "include": [
- "src/**/*.js"
- ],
- "exclude": [
- "node_modules",
- "test",
- "dist",
- "lib",
- "**/*.spec.js",
- "**/*.unit.js"
- ]
+ "compilerOptions": {
+ "module": "commonjs",
+ "outDir": "lib",
+ "target": "es2015",
+ "allowJs": true /* Allow javascript files to be compiled. */,
+ "allowSyntheticDefaultImports": true /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */,
+ "noImplicitThis": false /* Raise error on 'this' expressions with an implied 'any' type. */,
+ "declaration": false /* Generates corresponding '.d.ts' file. */,
+ "baseUrl": "src" /* Base directory to resolve non-absolute module names. */,
+ "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */,
+ "inlineSourceMap": false /* Emit a single file with source maps instead of having a separate file. */,
+ "lib": [
+ "esnext"
+ ] /* Specify library files to be included in the compilation. */,
+ "listEmittedFiles": false,
+ "listFiles": false,
+ "moduleResolution": "node",
+ "noFallthroughCasesInSwitch": true,
+ "pretty": true,
+ "resolveJsonModule": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "traceResolution": false,
+ "types": ["node"],
+ "experimentalDecorators": true /* Enables experimental support for ES7 decorators. */,
+ "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */
+ },
+ "include": ["src/**/*.js"],
+ "exclude": [
+ "node_modules",
+ "test",
+ "dist",
+ "lib",
+ "**/*.spec.js",
+ "**/*.unit.js"
+ ]
}
diff --git a/tsconfig.mjs.json b/tsconfig.mjs.json
index f818f58ff4..586f4ed2eb 100644
--- a/tsconfig.mjs.json
+++ b/tsconfig.mjs.json
@@ -6,4 +6,4 @@
"target": "esnext",
"declaration": true
}
-}
\ No newline at end of file
+}
diff --git a/types/builders.d.ts b/types/builders.d.ts
index fee9af8a82..903651d7d3 100644
--- a/types/builders.d.ts
+++ b/types/builders.d.ts
@@ -1,7 +1,7 @@
export class Builders {
- static readonly builders: any;
- static addBuilder(name: string, builder: any): void;
- static addBuilders(builders: any): void;
- static getBuilder(name: string): any;
- static getBuilder(): any;
+ static readonly builders: any;
+ static addBuilder(name: string, builder: any): void;
+ static addBuilders(builders: any): void;
+ static getBuilder(name: string): any;
+ static getBuilder(): any;
}
diff --git a/types/components/_classes/component/component.d.ts b/types/components/_classes/component/component.d.ts
index 443c94441f..60a4b53672 100644
--- a/types/components/_classes/component/component.d.ts
+++ b/types/components/_classes/component/component.d.ts
@@ -1,174 +1,201 @@
import { Element } from '../../../element';
-import { ComponentSchema, ElementInfo, ExtendedComponentSchema, ValidateOptions } from './../../schema.d';
+import {
+ ComponentSchema,
+ ElementInfo,
+ ExtendedComponentSchema,
+ ValidateOptions,
+} from './../../schema.d';
export class Component extends Element {
- static schema(sources: ExtendedComponentSchema): ExtendedComponentSchema;
- static tableView(value: any, options: any): void;
- constructor(component: any, options: Object, data: Object);
- public originalComponent: any | Component;
- public refs: Object;
- public attached: boolean;
- public rendered: boolean;
- public data: Object;
- public component: any;
- public error: string;
- public tooltip: string;
- public row: any;
- public pristine: boolean;
- public parent: any;
- public root: any;
- public lastChanged: any;
- public triggerRedraw: Function;
- public tooltips: any[];
- public invalid: boolean;
- public isBuilt: boolean;
- readonly ready: any;
- readonly labelInfo: any;
- init(): void;
- destroy(): void;
- readonly shouldDisabled: any | boolean;
- readonly isInputComponent: boolean;
- readonly defaultSchema: ComponentSchema;
- readonly hasInput: boolean;
- readonly key: any;
- public parentVisible: any | boolean;
- public parentDisabled: any | boolean;
- public visible: any | boolean;
- public currentForm: any;
- readonly fullMode: boolean;
- readonly builderMode: boolean;
- getModifiedSchema(
- schema: ExtendedComponentSchema,
- defaultSchema: ComponentSchema,
- recursion: boolean,
- ): ExtendedComponentSchema;
- readonly schema: ExtendedComponentSchema;
- t(text: string, params?: Object): any;
- labelIsHidden(): boolean;
- readonly transform: any;
- getTemplate(names: any, modes: any): any;
- checkTemplate(templates: any, names: any, modes: any): any;
- checkTemplateMode(templatesByName: any, modes: any): any;
- renderTemplate(name: any, data: any, modeOption?: any[]): any;
- sanitize(dirty: string): any;
- renderString(template: any, data: any): HTMLElement;
- performInputMapping(input: any): any;
- getBrowserLanguage(): string | null;
- beforeNext(): any;
- beforePage(): any;
- beforeSubmit(): any;
- readonly submissionTimezone: string | any;
- readonly canDisable: boolean;
- loadRefs(element: any, refs: any): any;
- build(element: any): any;
- render(children: any, topLevel?: boolean): any;
- attach(element: any): any;
- addShortcut(element: any, shortcut: any): void;
- removeShortcut(element: any, shortcut: any): void;
- detach(): void;
- attachRefreshEvent(refreshData: any): void;
- attachRefreshOn(): void;
- refresh(value: any): void;
- inContext(component: any): boolean;
- readonly viewOnly: boolean | any;
- createViewOnlyElement(): HTMLElement;
- readonly defaultViewOnlyValue: '-';
- getValueAsString(value: any): string;
- getView(value: any): string;
- updateItems(...args: any[]): void;
- createModal(): HTMLElement;
- readonly className: string;
- readonly customStyle: string;
- getElement(): HTMLElement;
- evalContext(additional: any): any;
- setPristine(pristine: boolean): void;
- removeValue(index: number): void;
- iconClass(name: any, spinning: any): any;
- readonly name: string;
- readonly errorLabel: string;
- errorMessage(type: any): any;
- setContent(element: any, content: any): boolean;
- redraw(): any;
- rebuild(): any;
- removeEventListeners(): void;
- hasClass(element: any, className: string): any;
- addClass(element: any, className: string): any;
- removeClass(element: any, className: string): any;
- hasCondition(): boolean;
- conditionallyVisible(data: any): boolean;
- checkCondition(row: any, data: Object): boolean;
- checkConditions(data: any): any;
- readonly logic: any[];
- fieldLogic(data: any): any;
- applyActions(actions: any[], result: any, data: any, newComponent: any): boolean;
- addInputError(message: any, dirty: boolean): void;
- clearOnHide(show: boolean): void;
- onChange(flags: Object, fromRoot: boolean): void;
- readonly wysiwygDefault: {
- theme: string;
- placeholder: any | string;
- modules: {
- clipboard: {
- matchVisual: boolean;
- };
- toolbar: any[];
+ static schema(sources: ExtendedComponentSchema): ExtendedComponentSchema;
+ static tableView(value: any, options: any): void;
+ constructor(component: any, options: Object, data: Object);
+ public originalComponent: any | Component;
+ public refs: Object;
+ public attached: boolean;
+ public rendered: boolean;
+ public data: Object;
+ public component: any;
+ public error: string;
+ public tooltip: string;
+ public row: any;
+ public pristine: boolean;
+ public parent: any;
+ public root: any;
+ public lastChanged: any;
+ public triggerRedraw: Function;
+ public tooltips: any[];
+ public invalid: boolean;
+ public isBuilt: boolean;
+ readonly ready: any;
+ readonly labelInfo: any;
+ init(): void;
+ destroy(): void;
+ readonly shouldDisabled: any | boolean;
+ readonly isInputComponent: boolean;
+ readonly defaultSchema: ComponentSchema;
+ readonly hasInput: boolean;
+ readonly key: any;
+ public parentVisible: any | boolean;
+ public parentDisabled: any | boolean;
+ public visible: any | boolean;
+ public currentForm: any;
+ readonly fullMode: boolean;
+ readonly builderMode: boolean;
+ getModifiedSchema(
+ schema: ExtendedComponentSchema,
+ defaultSchema: ComponentSchema,
+ recursion: boolean
+ ): ExtendedComponentSchema;
+ readonly schema: ExtendedComponentSchema;
+ t(text: string, params?: Object): any;
+ labelIsHidden(): boolean;
+ readonly transform: any;
+ getTemplate(names: any, modes: any): any;
+ checkTemplate(templates: any, names: any, modes: any): any;
+ checkTemplateMode(templatesByName: any, modes: any): any;
+ renderTemplate(name: any, data: any, modeOption?: any[]): any;
+ sanitize(dirty: string): any;
+ renderString(template: any, data: any): HTMLElement;
+ performInputMapping(input: any): any;
+ getBrowserLanguage(): string | null;
+ beforeNext(): any;
+ beforePage(): any;
+ beforeSubmit(): any;
+ readonly submissionTimezone: string | any;
+ readonly canDisable: boolean;
+ loadRefs(element: any, refs: any): any;
+ build(element: any): any;
+ render(children: any, topLevel?: boolean): any;
+ attach(element: any): any;
+ addShortcut(element: any, shortcut: any): void;
+ removeShortcut(element: any, shortcut: any): void;
+ detach(): void;
+ attachRefreshEvent(refreshData: any): void;
+ attachRefreshOn(): void;
+ refresh(value: any): void;
+ inContext(component: any): boolean;
+ readonly viewOnly: boolean | any;
+ createViewOnlyElement(): HTMLElement;
+ readonly defaultViewOnlyValue: '-';
+ getValueAsString(value: any): string;
+ getView(value: any): string;
+ updateItems(...args: any[]): void;
+ createModal(): HTMLElement;
+ readonly className: string;
+ readonly customStyle: string;
+ getElement(): HTMLElement;
+ evalContext(additional: any): any;
+ setPristine(pristine: boolean): void;
+ removeValue(index: number): void;
+ iconClass(name: any, spinning: any): any;
+ readonly name: string;
+ readonly errorLabel: string;
+ errorMessage(type: any): any;
+ setContent(element: any, content: any): boolean;
+ redraw(): any;
+ rebuild(): any;
+ removeEventListeners(): void;
+ hasClass(element: any, className: string): any;
+ addClass(element: any, className: string): any;
+ removeClass(element: any, className: string): any;
+ hasCondition(): boolean;
+ conditionallyVisible(data: any): boolean;
+ checkCondition(row: any, data: Object): boolean;
+ checkConditions(data: any): any;
+ readonly logic: any[];
+ fieldLogic(data: any): any;
+ applyActions(
+ actions: any[],
+ result: any,
+ data: any,
+ newComponent: any
+ ): boolean;
+ addInputError(message: any, dirty: boolean): void;
+ clearOnHide(show: boolean): void;
+ onChange(flags: Object, fromRoot: boolean): void;
+ readonly wysiwygDefault: {
+ theme: string;
+ placeholder: any | string;
+ modules: {
+ clipboard: {
+ matchVisual: boolean;
+ };
+ toolbar: any[];
+ };
};
- };
- addCKE(element: HTMLElement | any, settings: Object, onChange: (input: any) => any): any;
- addQuill(element: HTMLElement | any, settings: Object, onChange: (input: any) => any): any;
- addAce(element: HTMLElement | any, settings: Object, onChange: (input: any) => any): any;
- readonly emptyValue: null;
- hasValue(data: Object): boolean;
- readonly rootValue: any;
- readonly rootPristine: any;
- public dataValue: any;
- splice(index: number | string): void;
- deleteValue(): void;
- readonly defaultValue: any;
- getValue(): any;
- getValueAt(index: number): any;
- setValue(value: any, flags: any): boolean;
- setValueAt(index: number, value: any, flags: any): void;
- readonly hasSetValue: boolean;
- restoreValue(): void;
- normalizeValue(value: any): any;
- getIcon(name: any | string, content: any, styles: any, ref?: string): any | HTMLElement;
- resetValue(): void;
- hasChanged(before: any, after: any): boolean;
- updateOnChange(flags: any, changed: boolean | any): boolean;
- calculateValue(data: Object, flags: any): boolean;
- public label: any | string;
- getRoot(): Component;
- invalidMessage(data: any, dirty: boolean, ignoreCondition?: boolean): any;
- isValid(data: any, dirty: boolean): boolean;
- checkValidity(data: any, dirty: any | boolean, rowData: any): boolean;
- readonly validationValue: any;
- isEmpty(value: any): boolean;
- validateMultiple(): boolean;
- readonly errors: any[];
- setCustomValidity(message: any, dirty: any): void;
- shouldSkipValidation(data: any, dirty: any, rowData: any): boolean;
- whenReady(): any | Promise;
- readonly dataReady: any | Promise;
- asString(value: any): string;
- public disabled: boolean;
- setDisabled(element: any, disabled: any | boolean): void;
- setLoading(element: any, loading: any | boolean): void;
- selectOptions(select: any, tag: any, options: any, defaultValue: any): void;
- setSelectValue(select: any, value: any): void;
- clear(): any;
- append(element: HTMLElement): void;
- prepend(element: HTMLElement): void;
- removeChild(element: HTMLElement): void;
- attachLogic(): void;
- elementInfo(): ElementInfo;
- autofocus(): void;
- focus(): void;
- readonly shouldDisable: boolean;
- readonly info: ElementInfo;
- public element: any;
- public validators: (keyof ValidateOptions)[];
- public calculatedValue: any;
- public options: any;
- public labelElement: any;
+ addCKE(
+ element: HTMLElement | any,
+ settings: Object,
+ onChange: (input: any) => any
+ ): any;
+ addQuill(
+ element: HTMLElement | any,
+ settings: Object,
+ onChange: (input: any) => any
+ ): any;
+ addAce(
+ element: HTMLElement | any,
+ settings: Object,
+ onChange: (input: any) => any
+ ): any;
+ readonly emptyValue: null;
+ hasValue(data: Object): boolean;
+ readonly rootValue: any;
+ readonly rootPristine: any;
+ public dataValue: any;
+ splice(index: number | string): void;
+ deleteValue(): void;
+ readonly defaultValue: any;
+ getValue(): any;
+ getValueAt(index: number): any;
+ setValue(value: any, flags: any): boolean;
+ setValueAt(index: number, value: any, flags: any): void;
+ readonly hasSetValue: boolean;
+ restoreValue(): void;
+ normalizeValue(value: any): any;
+ getIcon(
+ name: any | string,
+ content: any,
+ styles: any,
+ ref?: string
+ ): any | HTMLElement;
+ resetValue(): void;
+ hasChanged(before: any, after: any): boolean;
+ updateOnChange(flags: any, changed: boolean | any): boolean;
+ calculateValue(data: Object, flags: any): boolean;
+ public label: any | string;
+ getRoot(): Component;
+ invalidMessage(data: any, dirty: boolean, ignoreCondition?: boolean): any;
+ isValid(data: any, dirty: boolean): boolean;
+ checkValidity(data: any, dirty: any | boolean, rowData: any): boolean;
+ readonly validationValue: any;
+ isEmpty(value: any): boolean;
+ validateMultiple(): boolean;
+ readonly errors: any[];
+ setCustomValidity(message: any, dirty: any): void;
+ shouldSkipValidation(data: any, dirty: any, rowData: any): boolean;
+ whenReady(): any | Promise;
+ readonly dataReady: any | Promise;
+ asString(value: any): string;
+ public disabled: boolean;
+ setDisabled(element: any, disabled: any | boolean): void;
+ setLoading(element: any, loading: any | boolean): void;
+ selectOptions(select: any, tag: any, options: any, defaultValue: any): void;
+ setSelectValue(select: any, value: any): void;
+ clear(): any;
+ append(element: HTMLElement): void;
+ prepend(element: HTMLElement): void;
+ removeChild(element: HTMLElement): void;
+ attachLogic(): void;
+ elementInfo(): ElementInfo;
+ autofocus(): void;
+ focus(): void;
+ readonly shouldDisable: boolean;
+ readonly info: ElementInfo;
+ public element: any;
+ public validators: (keyof ValidateOptions)[];
+ public calculatedValue: any;
+ public options: any;
+ public labelElement: any;
}
diff --git a/types/components/_classes/componentmodal/componentmodal.d.ts b/types/components/_classes/componentmodal/componentmodal.d.ts
index 9c6b65ab14..086313a9ae 100644
--- a/types/components/_classes/componentmodal/componentmodal.d.ts
+++ b/types/components/_classes/componentmodal/componentmodal.d.ts
@@ -1,31 +1,40 @@
import { Component } from '../component/component';
export class ComponentModal {
- constructor(component: Component | any, element: any, isOpened: boolean, currentValue: any);
- public isOpened: boolean;
- public component: Component | any;
- public element: any;
- public currentValue: any;
- public dataLoaded: boolean;
- static render(component: Component | any, data: any, topLevel: boolean): any;
- readonly refs: any;
- init(): void;
- setValue(value: any): any;
- setOpenModalElement(template: string): void;
- readonly templateRefs: any;
- loadRefs(): void;
- removeEventListeners(): void;
- setEventListeners(): void;
- isValueChanged(): boolean;
- setOpenEventListener(): void;
- openModalHandler(event: Event): void;
- positionOverElement(): void;
- openModal(): void;
- updateView(): void;
- closeModal(): void;
- closeModalHandler(event: Event): void;
- showDialog(): void;
- closeDialog(event: Event): void;
- saveDialog(event: Event): void;
- saveModalValueHandler(event: Event): void;
+ constructor(
+ component: Component | any,
+ element: any,
+ isOpened: boolean,
+ currentValue: any
+ );
+ public isOpened: boolean;
+ public component: Component | any;
+ public element: any;
+ public currentValue: any;
+ public dataLoaded: boolean;
+ static render(
+ component: Component | any,
+ data: any,
+ topLevel: boolean
+ ): any;
+ readonly refs: any;
+ init(): void;
+ setValue(value: any): any;
+ setOpenModalElement(template: string): void;
+ readonly templateRefs: any;
+ loadRefs(): void;
+ removeEventListeners(): void;
+ setEventListeners(): void;
+ isValueChanged(): boolean;
+ setOpenEventListener(): void;
+ openModalHandler(event: Event): void;
+ positionOverElement(): void;
+ openModal(): void;
+ updateView(): void;
+ closeModal(): void;
+ closeModalHandler(event: Event): void;
+ showDialog(): void;
+ closeDialog(event: Event): void;
+ saveDialog(event: Event): void;
+ saveModalValueHandler(event: Event): void;
}
diff --git a/types/components/_classes/field/field.d.ts b/types/components/_classes/field/field.d.ts
index 25590c4f6a..e542effdf4 100644
--- a/types/components/_classes/field/field.d.ts
+++ b/types/components/_classes/field/field.d.ts
@@ -1,5 +1,5 @@
import { Component } from '../component/component';
export class Field extends Component {
- render(element: any): any;
+ render(element: any): any;
}
diff --git a/types/components/_classes/input/input.d.ts b/types/components/_classes/input/input.d.ts
index a49179abab..3e83cbab4f 100644
--- a/types/components/_classes/input/input.d.ts
+++ b/types/components/_classes/input/input.d.ts
@@ -3,28 +3,33 @@ import { Multivalue } from '../multivalue/multivalue';
import { Element } from './../../../element.d';
export class Input extends Multivalue {
- constructor(component: Component | any, options: Object, data: any);
- readonly inputInfo: {
- id: string | number;
- type: string;
- changeEvent: string;
- content?: any;
- attr: any;
- };
- readonly maskOptions: { label: any; value: any }[];
- readonly isMultipleMasksField: boolean;
- getMaskByName(maskName: string): any;
- setInputMask(input: any, inputMask: any): any;
- getMaskOptions(): { label: any; value: any }[];
- readonly remainingWords: number;
- renderElement(value: any, index: string | number): any;
- setCounter(type: string, element: any | Element, count: number, max: number): void;
- updateValueAt(value: any, flags: any, index: string | number): void;
- getValueAt(index: string | number): any;
- updateValue(value: any, flags: any, index: string | number): any;
- attach(element: any): any;
- attachElement(element: any | Element, index: string | number): void;
- readonly widget: any;
- createWidget(index: string | number): any;
- addFocusBlurEvents(element: any | Element): void;
+ constructor(component: Component | any, options: Object, data: any);
+ readonly inputInfo: {
+ id: string | number;
+ type: string;
+ changeEvent: string;
+ content?: any;
+ attr: any;
+ };
+ readonly maskOptions: { label: any; value: any }[];
+ readonly isMultipleMasksField: boolean;
+ getMaskByName(maskName: string): any;
+ setInputMask(input: any, inputMask: any): any;
+ getMaskOptions(): { label: any; value: any }[];
+ readonly remainingWords: number;
+ renderElement(value: any, index: string | number): any;
+ setCounter(
+ type: string,
+ element: any | Element,
+ count: number,
+ max: number
+ ): void;
+ updateValueAt(value: any, flags: any, index: string | number): void;
+ getValueAt(index: string | number): any;
+ updateValue(value: any, flags: any, index: string | number): any;
+ attach(element: any): any;
+ attachElement(element: any | Element, index: string | number): void;
+ readonly widget: any;
+ createWidget(index: string | number): any;
+ addFocusBlurEvents(element: any | Element): void;
}
diff --git a/types/components/_classes/multivalue/multivalue.d.ts b/types/components/_classes/multivalue/multivalue.d.ts
index 7e700d46c3..7c8efed90f 100644
--- a/types/components/_classes/multivalue/multivalue.d.ts
+++ b/types/components/_classes/multivalue/multivalue.d.ts
@@ -1,16 +1,16 @@
import { Field } from '../field/field';
export class Multivalue extends Field {
- public dataValue: any;
- readonly defaultValue: any;
- readonly addAnother: any;
- useWrapper(): boolean;
- renderRow(value: any, index: any): any;
- attach(dom: any): any;
- attachElement(element: any, index: number | string): any;
- onSelectMaskHandler(event: any): void;
- tryAttachMultipleMasksInput(): boolean;
- updateMask(input: any, mask: any): void;
- addNewValue(value: any): void;
- addValue(): void;
+ public dataValue: any;
+ readonly defaultValue: any;
+ readonly addAnother: any;
+ useWrapper(): boolean;
+ renderRow(value: any, index: any): any;
+ attach(dom: any): any;
+ attachElement(element: any, index: number | string): any;
+ onSelectMaskHandler(event: any): void;
+ tryAttachMultipleMasksInput(): boolean;
+ updateMask(input: any, mask: any): void;
+ addNewValue(value: any): void;
+ addValue(): void;
}
diff --git a/types/components/_classes/nested/nestedComponent.d.ts b/types/components/_classes/nested/nestedComponent.d.ts
index c73ff4299d..384bec23bf 100644
--- a/types/components/_classes/nested/nestedComponent.d.ts
+++ b/types/components/_classes/nested/nestedComponent.d.ts
@@ -2,60 +2,79 @@ import { Field } from '../field/field';
import { Component } from './../component/component.d';
export class NestedComponent extends Field {
- constructor(component: any | Component, options: Object, data: any);
- readonly defaultSchema: any;
- readonly schema: any;
- public collapsed: any | boolean;
- public visible: any | boolean;
- public parentVisible: boolean;
- public disabled: boolean;
- public parentDisabled: any | boolean;
- readonly ready: any;
- public currentForm: any;
- public data: any;
- getComponents(): any[] | Component[];
- getAllComponents(): any[] | Component[];
- everyComponent(fn: Function): void;
- flattenComponents(): Object;
- eachComponent(fn: Function): void;
- getComponent(path: string, fn: Function): Object;
- getComponentById(id: string, fn: Function): Object;
- createComponent(component: any | Component, options: Object, data: any, before: any): any | Object;
- getContainer(): any;
- readonly componentComponents: any[];
- readonly nestedKey: string;
- readonly templateName: string;
- init(): void;
- addComponents(data: any, options: Object): void;
- addComponent(component: any, data: Object, before: HTMLElement, noAdd?: any): Component;
- render(children: any): any;
- renderComponents(components: any): any;
- attach(element: any): any;
- attachComponents(element: any, components: any | Component[], container: any): any;
- removeComponent(component: Component, components: Component[]): any;
- removeComponentByKey(key: string, fn: Function): null;
- removeComponentById(id: string, fn: Function): null;
- updateValue(value: any, flags: any, source: any): any;
- hasChanged(): boolean;
- checkData(data: any, flags: any, source: any): boolean;
- checkModal(isValid: boolean, dirty: boolean): void;
- checkConditions(data: any, norecurse?: any): any;
- clearOnHide(show: boolean): void;
- restoreComponentsContext(): void;
- beforePage(next?: any): any;
- beforeSubmit(): any;
- calculateValue(data: any, flags: any): any;
- isLastPage(): boolean;
- isValid(data: any, dirty: any): boolean;
- checkValidity(data: any, dirty: any): any | boolean;
- setPristine(pristine: any): void;
- detach(): void;
- destroy(): void;
- destroyComponents(): void;
- readonly errors: any[];
- getValue(): any;
- resetValue(): void;
- readonly dataReady: any;
- setNestedValue(component: any | Component, value: any, flags: any | Object, changed: boolean): any;
- setValue(value: any, flags: any | Object): boolean;
+ constructor(component: any | Component, options: Object, data: any);
+ readonly defaultSchema: any;
+ readonly schema: any;
+ public collapsed: any | boolean;
+ public visible: any | boolean;
+ public parentVisible: boolean;
+ public disabled: boolean;
+ public parentDisabled: any | boolean;
+ readonly ready: any;
+ public currentForm: any;
+ public data: any;
+ getComponents(): any[] | Component[];
+ getAllComponents(): any[] | Component[];
+ everyComponent(fn: Function): void;
+ flattenComponents(): Object;
+ eachComponent(fn: Function): void;
+ getComponent(path: string, fn: Function): Object;
+ getComponentById(id: string, fn: Function): Object;
+ createComponent(
+ component: any | Component,
+ options: Object,
+ data: any,
+ before: any
+ ): any | Object;
+ getContainer(): any;
+ readonly componentComponents: any[];
+ readonly nestedKey: string;
+ readonly templateName: string;
+ init(): void;
+ addComponents(data: any, options: Object): void;
+ addComponent(
+ component: any,
+ data: Object,
+ before: HTMLElement,
+ noAdd?: any
+ ): Component;
+ render(children: any): any;
+ renderComponents(components: any): any;
+ attach(element: any): any;
+ attachComponents(
+ element: any,
+ components: any | Component[],
+ container: any
+ ): any;
+ removeComponent(component: Component, components: Component[]): any;
+ removeComponentByKey(key: string, fn: Function): null;
+ removeComponentById(id: string, fn: Function): null;
+ updateValue(value: any, flags: any, source: any): any;
+ hasChanged(): boolean;
+ checkData(data: any, flags: any, source: any): boolean;
+ checkModal(isValid: boolean, dirty: boolean): void;
+ checkConditions(data: any, norecurse?: any): any;
+ clearOnHide(show: boolean): void;
+ restoreComponentsContext(): void;
+ beforePage(next?: any): any;
+ beforeSubmit(): any;
+ calculateValue(data: any, flags: any): any;
+ isLastPage(): boolean;
+ isValid(data: any, dirty: any): boolean;
+ checkValidity(data: any, dirty: any): any | boolean;
+ setPristine(pristine: any): void;
+ detach(): void;
+ destroy(): void;
+ destroyComponents(): void;
+ readonly errors: any[];
+ getValue(): any;
+ resetValue(): void;
+ readonly dataReady: any;
+ setNestedValue(
+ component: any | Component,
+ value: any,
+ flags: any | Object,
+ changed: boolean
+ ): any;
+ setValue(value: any, flags: any | Object): boolean;
}
diff --git a/types/components/_classes/widgetcomponent/widgetComponent.d.ts b/types/components/_classes/widgetcomponent/widgetComponent.d.ts
index daffa44f94..d2ef6efb56 100644
--- a/types/components/_classes/widgetcomponent/widgetComponent.d.ts
+++ b/types/components/_classes/widgetcomponent/widgetComponent.d.ts
@@ -1,6 +1,6 @@
import { Input } from '../input/input';
export class WidgetComponent extends Input {
- readonly widgetLocale: any;
- readonly widgetData: any;
+ readonly widgetLocale: any;
+ readonly widgetData: any;
}
diff --git a/types/components/components.d.ts b/types/components/components.d.ts
index 9bdb2a5399..8517d47af5 100644
--- a/types/components/components.d.ts
+++ b/types/components/components.d.ts
@@ -7,63 +7,70 @@ import { Multivalue } from './_classes/multivalue/multivalue';
import { NestedComponent } from './_classes/nested/nestedComponent';
import { WidgetComponent } from './_classes/widgetcomponent/widgetComponent';
-type ClassWithEditForm = C & { editForm: () => { components: ExtendedComponentSchema[] } };
+type ClassWithEditForm = C & {
+ editForm: () => { components: ExtendedComponentSchema[] };
+};
export namespace Components {
- function setComponents(comps: Object): void;
- function setComponent(name: string, comp: Object): void;
- function addComponent(name: string, comp: Object): void;
- function create(component: any, options: Object, data?: any, flag?: any): Object;
- let baseEditForm: any;
- let EditFormUtils: any;
- namespace components {
- class base extends Component {}
- class componentmodal extends ComponentModal {}
- class input extends Input {}
- class nested extends NestedComponent {}
- class multivalue extends Multivalue {}
- class field extends Field {}
+ function setComponents(comps: Object): void;
+ function setComponent(name: string, comp: Object): void;
+ function addComponent(name: string, comp: Object): void;
+ function create(
+ component: any,
+ options: Object,
+ data?: any,
+ flag?: any
+ ): Object;
+ let baseEditForm: any;
+ let EditFormUtils: any;
+ namespace components {
+ class base extends Component {}
+ class componentmodal extends ComponentModal {}
+ class input extends Input {}
+ class nested extends NestedComponent {}
+ class multivalue extends Multivalue {}
+ class field extends Field {}
- const address: ClassWithEditForm;
- const button: ClassWithEditForm;
- const checkbox: ClassWithEditForm;
- const columns: ClassWithEditForm;
- const container: ClassWithEditForm;
- const content: ClassWithEditForm;
- const currency: ClassWithEditForm;
- const datagrid: ClassWithEditForm;
- const datamap: ClassWithEditForm;
- const datetime: ClassWithEditForm;
- const day: ClassWithEditForm;
- const editgrid: ClassWithEditForm;
- const email: ClassWithEditForm;
- const fieldset: ClassWithEditForm;
- const file: ClassWithEditForm;
- const form: ClassWithEditForm;
- const hidden: ClassWithEditForm;
- const htmlelement: ClassWithEditForm;
- const number: ClassWithEditForm;
- const panel: ClassWithEditForm;
- const password: ClassWithEditForm;
- const phoneNumber: ClassWithEditForm;
- const radio: ClassWithEditForm;
- const recaptcha: ClassWithEditForm;
- const resource: ClassWithEditForm;
- const select: ClassWithEditForm;
- const selectboxes: ClassWithEditForm;
- const signature: ClassWithEditForm;
- const sketchpad: ClassWithEditForm;
- const survey: ClassWithEditForm;
- const table: ClassWithEditForm;
- const tabs: ClassWithEditForm;
- const tagpad: ClassWithEditForm;
- const tags: ClassWithEditForm;
- const textarea: ClassWithEditForm;
- const textfield: ClassWithEditForm;
- const time: ClassWithEditForm;
- const tree: ClassWithEditForm;
- const unknown: ClassWithEditForm;
- const url: ClassWithEditForm;
- const well: ClassWithEditForm;
- }
+ const address: ClassWithEditForm;
+ const button: ClassWithEditForm;
+ const checkbox: ClassWithEditForm;
+ const columns: ClassWithEditForm;
+ const container: ClassWithEditForm;
+ const content: ClassWithEditForm;
+ const currency: ClassWithEditForm;
+ const datagrid: ClassWithEditForm;
+ const datamap: ClassWithEditForm;
+ const datetime: ClassWithEditForm;
+ const day: ClassWithEditForm;
+ const editgrid: ClassWithEditForm;
+ const email: ClassWithEditForm;
+ const fieldset: ClassWithEditForm;
+ const file: ClassWithEditForm;
+ const form: ClassWithEditForm;
+ const hidden: ClassWithEditForm;
+ const htmlelement: ClassWithEditForm;
+ const number: ClassWithEditForm;
+ const panel: ClassWithEditForm;
+ const password: ClassWithEditForm;
+ const phoneNumber: ClassWithEditForm;
+ const radio: ClassWithEditForm;
+ const recaptcha: ClassWithEditForm;
+ const resource: ClassWithEditForm;
+ const select: ClassWithEditForm;
+ const selectboxes: ClassWithEditForm;
+ const signature: ClassWithEditForm;
+ const sketchpad: ClassWithEditForm;
+ const survey: ClassWithEditForm;
+ const table: ClassWithEditForm;
+ const tabs: ClassWithEditForm;
+ const tagpad: ClassWithEditForm;
+ const tags: ClassWithEditForm;
+ const textarea: ClassWithEditForm;
+ const textfield: ClassWithEditForm;
+ const time: ClassWithEditForm;
+ const tree: ClassWithEditForm;
+ const unknown: ClassWithEditForm;
+ const url: ClassWithEditForm;
+ const well: ClassWithEditForm;
+ }
}
diff --git a/types/components/schema.d.ts b/types/components/schema.d.ts
index fc3b2e7186..bfa6b886ab 100644
--- a/types/components/schema.d.ts
+++ b/types/components/schema.d.ts
@@ -1,92 +1,92 @@
export interface ComponentSchema {
- /**
- * The type of component
- */
- type?: string;
-
- /**
- * The data key for this component (how the data is stored in the database, referenced as API key in docs).
- */
- key?: string;
-
- /**
- * The HTML label to give this component.
- */
- label?: string;
-
- /**
- * The input placeholder for this component.
- */
- placeholder?: string;
-
- /**
- * Determines if this component provides an input.
- */
- input?: boolean;
-
- /**
- * If this component should be included as a column within a submission table.
- * Determines if this field will show in the data tables output.
- */
- tableView?: boolean;
-
- /**
- * If this component should allow an array of values to be captured.
- */
- multiple?: boolean;
-
- /**
- * If the data of this component should be protected (no GET api requests can see the data)
- */
- protected?: boolean;
-
- /**
- * The prefix text to put in front of the input
- */
- prefix?: string;
-
- /**
- * The suffix text to put after the input
- */
- suffix?: string;
-
- /**
- * The default value of this compoennt.
- */
- defaultValue?: T;
-
- /**
- * If the value of this field should be cleared when it is conditionally hidden.
- */
- clearOnHide?: boolean;
-
- /**
- * Validate if the value of this component should be unique within the form.
- */
- unique?: boolean;
-
- /**
- * If the value of this component should be persisted within the backend api database.
- */
- persistent?: boolean;
-
- /**
- * Determines if the component should be within the form, but not visible.
- * This can be overridden with the conditionals.
- */
- hidden?: boolean;
-
- /**
- * The validation criteria for this component.
- */
- validate?: ValidateOptions;
-
- /**
- * Determines when this component should be added to the form for both processing and input.
- */
- conditional?: ConditionalOptions;
-
- /**
+ /**
+ * The type of component
+ */
+ type?: string;
+
+ /**
+ * The data key for this component (how the data is stored in the database, referenced as API key in docs).
+ */
+ key?: string;
+
+ /**
+ * The HTML label to give this component.
+ */
+ label?: string;
+
+ /**
+ * The input placeholder for this component.
+ */
+ placeholder?: string;
+
+ /**
+ * Determines if this component provides an input.
+ */
+ input?: boolean;
+
+ /**
+ * If this component should be included as a column within a submission table.
+ * Determines if this field will show in the data tables output.
+ */
+ tableView?: boolean;
+
+ /**
+ * If this component should allow an array of values to be captured.
+ */
+ multiple?: boolean;
+
+ /**
+ * If the data of this component should be protected (no GET api requests can see the data)
+ */
+ protected?: boolean;
+
+ /**
+ * The prefix text to put in front of the input
+ */
+ prefix?: string;
+
+ /**
+ * The suffix text to put after the input
+ */
+ suffix?: string;
+
+ /**
+ * The default value of this compoennt.
+ */
+ defaultValue?: T;
+
+ /**
+ * If the value of this field should be cleared when it is conditionally hidden.
+ */
+ clearOnHide?: boolean;
+
+ /**
+ * Validate if the value of this component should be unique within the form.
+ */
+ unique?: boolean;
+
+ /**
+ * If the value of this component should be persisted within the backend api database.
+ */
+ persistent?: boolean;
+
+ /**
+ * Determines if the component should be within the form, but not visible.
+ * This can be overridden with the conditionals.
+ */
+ hidden?: boolean;
+
+ /**
+ * The validation criteria for this component.
+ */
+ validate?: ValidateOptions;
+
+ /**
+ * Determines when this component should be added to the form for both processing and input.
+ */
+ conditional?: ConditionalOptions;
+
+ /**
* Allows customizable errors to be displayed for each component when an error occurs. This is an object with the following keys:
required
min
@@ -101,140 +101,142 @@ export interface ComponentSchema {
An object (keys listed above), values are the strings you wish to display. Each string has the {{ field }} to use within the string. Example.
{"required": "{{ field }} is required. Try again."}
*/
- errors?: Object;
+ errors?: Object;
- /**
+ /**
* Allows changing the component definition in reaction to data entered in a form. For example, changing a field to required, disabled or hidden when a value is entered.
An array of instances of the Field Logic Schema
Fyi: https://github.com/formio/formio.js/wiki/Field-Logic-Schema
*/
- logic?: Object[];
-
- /**
- * The custom CSS class to provide to this component.
- */
- customClass?: string;
-
- /**
- * If true, will show label when component is in a datagrid.
- */
- dataGridLabel?: boolean;
-
- labelPosition?: 'top' | 'bottom' | 'left' | 'right';
- labelWidth?: number;
- labelMargin?: number;
- description?: string;
- errorLabel?: string;
- tooltip?: string;
- hideLabel?: boolean;
- tabindex?: string;
- disabled?: boolean;
- autofocus?: boolean;
- dbIndex?: boolean;
- customDefaultValue?: any;
- calculateValue?: any;
- allowCalculateOverride?: boolean;
- widget?: any; // Input widgets i.e. calendar widget
-
- /**
- * This will refresh this component when this field changes.
- */
- refreshOn?: string;
-
- /**
- * Determines if we should clear our value when a refresh occurs.
- */
- clearOnRefresh?: boolean;
-
- /**
- * This will perform the validation on either "change" or "blur" of the input element.
- */
- validateOn?: 'change' | 'blur';
+ logic?: Object[];
+
+ /**
+ * The custom CSS class to provide to this component.
+ */
+ customClass?: string;
+
+ /**
+ * If true, will show label when component is in a datagrid.
+ */
+ dataGridLabel?: boolean;
+
+ labelPosition?: 'top' | 'bottom' | 'left' | 'right';
+ labelWidth?: number;
+ labelMargin?: number;
+ description?: string;
+ errorLabel?: string;
+ tooltip?: string;
+ hideLabel?: boolean;
+ tabindex?: string;
+ disabled?: boolean;
+ autofocus?: boolean;
+ dbIndex?: boolean;
+ customDefaultValue?: any;
+ calculateValue?: any;
+ allowCalculateOverride?: boolean;
+ widget?: any; // Input widgets i.e. calendar widget
+
+ /**
+ * This will refresh this component when this field changes.
+ */
+ refreshOn?: string;
+
+ /**
+ * Determines if we should clear our value when a refresh occurs.
+ */
+ clearOnRefresh?: boolean;
+
+ /**
+ * This will perform the validation on either "change" or "blur" of the input element.
+ */
+ validateOn?: 'change' | 'blur';
}
-export type ExtendedComponentSchema = ComponentSchema & { [key: string]: any };
+export type ExtendedComponentSchema = ComponentSchema & {
+ [key: string]: any;
+};
export interface ConditionalOptions {
- /** If the field should show if the condition is true */
- show?: boolean;
- /** The field API key that it should compare its value against to determine if the condition is triggered. */
- when?: string;
- /** The value that should be checked against the comparison component */
- eq?: string;
- /** The JSON Logic to determine if this component is conditionally available.
- * Fyi: http://jsonlogic.com/
- */
- json?: Object;
+ /** If the field should show if the condition is true */
+ show?: boolean;
+ /** The field API key that it should compare its value against to determine if the condition is triggered. */
+ when?: string;
+ /** The value that should be checked against the comparison component */
+ eq?: string;
+ /** The JSON Logic to determine if this component is conditionally available.
+ * Fyi: http://jsonlogic.com/
+ */
+ json?: Object;
}
export interface ValidateOptions {
- /**
- * If this component is required.
- */
- required?: boolean;
-
- /**
- * For text input, this checks the minimum length of text for valid input
- */
- minLength?: number;
-
- /**
- * For text input, this checks the maximum length of text for valid input
- */
- maxLength?: number;
-
- /**
- * For text input, this checks the text agains a Regular expression pattern.
- */
- pattern?: string;
-
- /**
- * A custom javascript based validation or a JSON object for using JSON Logic
- */
- custom?: any;
-
- /**
- * If the custom validation should remain private (only the backend will see it and execute it).
- */
- customPrivate?: boolean;
-
- /**
- * Minimum value for numbers
- */
- min?: number;
-
- /**
- * Maximum value for numbers
- */
- max?: number;
-
- minSelectedCount?: number;
- maxSelectedCount?: number;
- minWords?: number;
- maxWords?: number;
- email?: boolean;
- url?: boolean;
- date?: boolean;
- day?: boolean;
- json?: string;
- mask?: boolean;
- minDate?: any;
- maxDate?: any;
+ /**
+ * If this component is required.
+ */
+ required?: boolean;
+
+ /**
+ * For text input, this checks the minimum length of text for valid input
+ */
+ minLength?: number;
+
+ /**
+ * For text input, this checks the maximum length of text for valid input
+ */
+ maxLength?: number;
+
+ /**
+ * For text input, this checks the text agains a Regular expression pattern.
+ */
+ pattern?: string;
+
+ /**
+ * A custom javascript based validation or a JSON object for using JSON Logic
+ */
+ custom?: any;
+
+ /**
+ * If the custom validation should remain private (only the backend will see it and execute it).
+ */
+ customPrivate?: boolean;
+
+ /**
+ * Minimum value for numbers
+ */
+ min?: number;
+
+ /**
+ * Maximum value for numbers
+ */
+ max?: number;
+
+ minSelectedCount?: number;
+ maxSelectedCount?: number;
+ minWords?: number;
+ maxWords?: number;
+ email?: boolean;
+ url?: boolean;
+ date?: boolean;
+ day?: boolean;
+ json?: string;
+ mask?: boolean;
+ minDate?: any;
+ maxDate?: any;
}
export interface ElementInfo {
- type: string;
- component: ExtendedComponentSchema;
- changeEvent: string;
- attr: any;
- content: string;
+ type: string;
+ component: ExtendedComponentSchema;
+ changeEvent: string;
+ attr: any;
+ content: string;
}
export interface BuilderInfo {
- title: string;
- group: string;
- icon: string;
- documentation?: string;
- weight?: number;
- schema?: ExtendedComponentSchema;
+ title: string;
+ group: string;
+ icon: string;
+ documentation?: string;
+ weight?: number;
+ schema?: ExtendedComponentSchema;
}
diff --git a/types/displays.d.ts b/types/displays.d.ts
index 4585dff10f..90aaa9336d 100644
--- a/types/displays.d.ts
+++ b/types/displays.d.ts
@@ -1,7 +1,7 @@
export class Displays {
- static readonly displays: any;
- static addDisplay(name: string, display: any): void;
- static addDisplays(name: string, display: any): void;
- static getDisplay(name: string): any;
- static getDisplays(name: string): any;
+ static readonly displays: any;
+ static addDisplay(name: string, display: any): void;
+ static addDisplays(name: string, display: any): void;
+ static getDisplay(name: string): any;
+ static getDisplays(name: string): any;
}
diff --git a/types/element.d.ts b/types/element.d.ts
index 3419ce9537..c160fea116 100644
--- a/types/element.d.ts
+++ b/types/element.d.ts
@@ -1,45 +1,60 @@
import { EventEmitter } from './eventEmitter.d';
export class Element {
- options: Object;
- id: string;
- eventHandlers: any[];
- i18next: any;
- events: EventEmitter;
- defaultMask: any;
- inputMasks: any[];
- constructor(options: any);
- on(event: string, cb: Function, internal: boolean, once?: boolean): any;
- once(event: string, cb: Function, internal: boolean): any;
- onAny(cb: Function): any;
- off(event: string): void;
- emit(event: string, data: Object): void;
- addEventListener(obj: HTMLElement, type: string, func: Function, persistent?: boolean): any;
- removeEventListener(obj: Object, type: any): any;
- removeEventListeners(): void;
- removeAllEvents(includeExternal: boolean): void;
- destroy(): void;
- appendTo(element: HTMLElement, container: HTMLElement): any;
- prependTo(element: HTMLElement, container: HTMLElement): any;
- removeChildFrom(element: HTMLElement, container: HTMLElement): any;
- ce(type: string, attr?: Object, children?: HTMLElement | string | Array): HTMLElement;
- appendChild(element: any, child: any): any;
- maskPlaceholder(mask: HTMLElement): string;
- setInputMask(input: HTMLElement, inputMask: string, placeholder: boolean): void;
- t(text: string, params?: Object): string;
- text(text: string): Text;
- attr(element: HTMLElement, attr: Object): void;
- hasClass(element: HTMLElement | any, className: string): boolean;
- addClass(element: HTMLElement, className: string): any;
- removeClass(element: HTMLElement, className: string): any;
- empty(element: HTMLElement): void;
- evalContext(additional: any): any;
- interpolate(string: any, data: any): any;
- evaluate(
- func: any,
- args: { component: any; form: any; instance: any; row: any; data: any } | any,
- ret: any,
- tokenize?: any,
- ): any;
- hook(...args: any[]): any;
+ options: Object;
+ id: string;
+ eventHandlers: any[];
+ i18next: any;
+ events: EventEmitter;
+ defaultMask: any;
+ inputMasks: any[];
+ constructor(options: any);
+ on(event: string, cb: Function, internal: boolean, once?: boolean): any;
+ once(event: string, cb: Function, internal: boolean): any;
+ onAny(cb: Function): any;
+ off(event: string): void;
+ emit(event: string, data: Object): void;
+ addEventListener(
+ obj: HTMLElement,
+ type: string,
+ func: Function,
+ persistent?: boolean
+ ): any;
+ removeEventListener(obj: Object, type: any): any;
+ removeEventListeners(): void;
+ removeAllEvents(includeExternal: boolean): void;
+ destroy(): void;
+ appendTo(element: HTMLElement, container: HTMLElement): any;
+ prependTo(element: HTMLElement, container: HTMLElement): any;
+ removeChildFrom(element: HTMLElement, container: HTMLElement): any;
+ ce(
+ type: string,
+ attr?: Object,
+ children?: HTMLElement | string | Array
+ ): HTMLElement;
+ appendChild(element: any, child: any): any;
+ maskPlaceholder(mask: HTMLElement): string;
+ setInputMask(
+ input: HTMLElement,
+ inputMask: string,
+ placeholder: boolean
+ ): void;
+ t(text: string, params?: Object): string;
+ text(text: string): Text;
+ attr(element: HTMLElement, attr: Object): void;
+ hasClass(element: HTMLElement | any, className: string): boolean;
+ addClass(element: HTMLElement, className: string): any;
+ removeClass(element: HTMLElement, className: string): any;
+ empty(element: HTMLElement): void;
+ evalContext(additional: any): any;
+ interpolate(string: any, data: any): any;
+ evaluate(
+ func: any,
+ args:
+ | { component: any; form: any; instance: any; row: any; data: any }
+ | any,
+ ret: any,
+ tokenize?: any
+ ): any;
+ hook(...args: any[]): any;
}
diff --git a/types/eventEmitter.d.ts b/types/eventEmitter.d.ts
index 6b95e0a09f..4948f7891d 100644
--- a/types/eventEmitter.d.ts
+++ b/types/eventEmitter.d.ts
@@ -1,3 +1,3 @@
export class EventEmitter /* extends EventEmitter3 */ {
- constructor(conf: Object);
+ constructor(conf: Object);
}
diff --git a/types/form.d.ts b/types/form.d.ts
index c7652f44b4..bcd9ef5e4a 100644
--- a/types/form.d.ts
+++ b/types/form.d.ts
@@ -1,18 +1,18 @@
import { Element } from './element';
export class Form extends Element {
- form: any;
- instance: any;
- ready: Promise;
- constructor(...args: any[]);
- create(display: 'wizard' | 'form' | 'pdf'): any;
- setForm(formParam: any): any;
- setDisplay(display: any): any;
- empty(): void;
- render(): any | Promise;
- static embed(element: any): any;
- sanitize(dirty: string): any;
- setContent(element: any, content: any): boolean;
- build(): Promise;
- attach(element: any): any | Promise;
+ form: any;
+ instance: any;
+ ready: Promise;
+ constructor(...args: any[]);
+ create(display: 'wizard' | 'form' | 'pdf'): any;
+ setForm(formParam: any): any;
+ setDisplay(display: any): any;
+ empty(): void;
+ render(): any | Promise;
+ static embed(element: any): any;
+ sanitize(dirty: string): any;
+ setContent(element: any, content: any): boolean;
+ build(): Promise;
+ attach(element: any): any | Promise;
}
diff --git a/types/formbuilder.d.ts b/types/formbuilder.d.ts
index 745d31527e..0bd106a210 100644
--- a/types/formbuilder.d.ts
+++ b/types/formbuilder.d.ts
@@ -1,6 +1,6 @@
import { Form } from './form';
export class FormBuilder extends Form {
- constructor(element: any, form: any, options: any);
- create(display: string): any;
+ constructor(element: any, form: any, options: any);
+ create(display: string): any;
}
diff --git a/types/formio.d.ts b/types/formio.d.ts
index 91266641d9..ad4c88a195 100644
--- a/types/formio.d.ts
+++ b/types/formio.d.ts
@@ -1,121 +1,168 @@
export class Formio {
- constructor(url: string, options?: Object);
- public base: string;
- public projectsUrl: string;
- public projectUrl: string;
- public projectId: string;
- public formId: string;
- public submissionId: string;
- public actionsUrl: string;
- public actionId: string;
- public actionUrl: string;
- public vsUrl: string;
- public vId: string;
- public vUrl: string;
- public query: string;
- public formUrl?: string;
- public formsUrl?: string;
- public submissionUrl?: string;
- public submissionsUrl?: string;
- public token: any | string;
- static libraries: any;
- static Promise: any;
- static fetch: any;
- static Headers: any;
- static baseUrl: string;
- static projectUrl: string;
- static authUrl: string;
- static projectUrlSet: boolean;
- static plugins: any;
- static cache: any;
- static license: string;
- static providers: any;
- static events: any; // EventEmitter3
- static namespace: string;
- static formOnly?: boolean;
- static rulesEntities: any;
- static options: any;
- delete(type: any, opts?: any): any;
- index(type: any, query?: any, opts?: any): any;
- save(type: any, data: any, opts?: any): any;
- load(type: any, query?: any, opts?: any): any;
- makeRequest(...args: any[]): any;
- loadProject(query?: any, opts?: any): any;
- saveProject(data: any, opts?: any): any;
- deleteProject(opts?: any): any;
- static loadProjects(query?: any, opts?: any): any;
- static createForm(element: any, form: string | Object, options?: Object): Promise;
- static setBaseUrl(url: string): void;
- static setProjectUrl(url: string): void;
- static setAuthUrl(url: string): void;
- static getToken(options?: any): any;
- static makeStaticRequest(url: string, method?: string, data?: any, opts?: Object): any;
- static makeRequest(formio?: Formio, type?: string, url?: string, method?: string, data?: any, opts?: Object): any;
- static currentUser(formio?: Formio, options?: Object): any;
- static logout(formio?: Formio, options?: Object): any;
- static clearCache(): void;
- static setUser(user: any, opts?: Object): any;
- loadForm(query?: any, opts?: Object): any;
- loadForms(query?: any, opts?: Object): any;
- loadSubmission(query?: any, opts?: Object): any;
- loadSubmissions(query?: any, opts?: Object): any;
- userPermissions(
- user?: any,
- form?: any,
- submission?: any,
- ): Promise<{ create: boolean; read: boolean; edit: boolean; delete: boolean }>;
- createform(form: Object): Promise;
- saveForm(data: any, opts?: Object): any;
- saveSubmission(data: any, opts?: Object): any;
- deleteForm(opts?: Object): any;
- deleteSubmission(opts?: Object): any;
- saveAction(data: any, opts?: any): any;
- deleteAction(opts?: any): any;
- loadAction(query?: any, opts?: any): any;
- loadActions(query?: any, opts?: any): any;
- availableActions(): any;
- actionInfo(name: any): any;
- isObjectId(id: any): any;
- getProjectId(): any;
- getFormId(): any;
- currentUser(options?: Object): any;
- accessInfo(): any;
- getToken(options?: Object): any;
- setToken(token: any, options?: Object): any;
- getTempToken(expire: any, allowed: any, options?: Object): any;
- getDownloadUrl(form: any): any;
- uploadFile(storage: any, file: any, fileName: any, dir: any, progressCallback: any, url: any, options?: Object): any;
- downloadFile(file: any, options?: Object): any;
- canSubmit(): any;
- getUrlParts(url: any): any;
- static use(plugin: any): any;
- static getUrlParts(url: any, formio?: Formio): any;
- static serialize(obj: any, _interpolate: any): any;
- static getRequestArgs(formio: Formio, type: string, url: string, method?: string, data?: any, opts?: any): any;
- static request(url: any, method?: any, data?: any, header?: any, opts?: any): any;
- static setToken(token: string, opts?: any): any;
- static getUser(options?: Object): any;
- static getBaseUrl(): string;
- static setApiUrl(url: string): any;
- static getApiUrl(): any;
- static setAppUrl(url: string): any;
- static getAppUrl(): any;
- static getProjectUrl(): any;
- static noop(): any;
- static identity(value: any): any;
- static deregisterPlugin(plugin: any): any;
- static registerPlugin(plugin: any, name: string): any;
- static getPlugin(name: any | string): any;
- static pluginWait(pluginFn: any, ...args: any[]): any;
- static pluginGet(pluginFn: any, ...args: any[]): any;
- static pluginAlter(pluginFn: any, value: any, ...args: any[]): any;
- static accessInfo(formio?: Formio): any;
- static pageQuery(): any;
- static oAuthCurrentUser(formio?: Formio, token?: any): any;
- static samlInit(options?: Object): any;
- static oktaInit(options?: Object): any;
- static ssoInit(type: any, options?: Object): any;
- static requireLibrary(name: any, property: any, src: any, polling?: boolean): any;
- static libraryReady(name: string): any;
- oauthLogoutURI(uri: string, options?: any): any;
+ constructor(url: string, options?: Object);
+ public base: string;
+ public projectsUrl: string;
+ public projectUrl: string;
+ public projectId: string;
+ public formId: string;
+ public submissionId: string;
+ public actionsUrl: string;
+ public actionId: string;
+ public actionUrl: string;
+ public vsUrl: string;
+ public vId: string;
+ public vUrl: string;
+ public query: string;
+ public formUrl?: string;
+ public formsUrl?: string;
+ public submissionUrl?: string;
+ public submissionsUrl?: string;
+ public token: any | string;
+ static libraries: any;
+ static Promise: any;
+ static fetch: any;
+ static Headers: any;
+ static baseUrl: string;
+ static projectUrl: string;
+ static authUrl: string;
+ static projectUrlSet: boolean;
+ static plugins: any;
+ static cache: any;
+ static license: string;
+ static providers: any;
+ static events: any; // EventEmitter3
+ static namespace: string;
+ static formOnly?: boolean;
+ static rulesEntities: any;
+ static options: any;
+ delete(type: any, opts?: any): any;
+ index(type: any, query?: any, opts?: any): any;
+ save(type: any, data: any, opts?: any): any;
+ load(type: any, query?: any, opts?: any): any;
+ makeRequest(...args: any[]): any;
+ loadProject(query?: any, opts?: any): any;
+ saveProject(data: any, opts?: any): any;
+ deleteProject(opts?: any): any;
+ static loadProjects(query?: any, opts?: any): any;
+ static createForm(
+ element: any,
+ form: string | Object,
+ options?: Object
+ ): Promise;
+ static setBaseUrl(url: string): void;
+ static setProjectUrl(url: string): void;
+ static setAuthUrl(url: string): void;
+ static getToken(options?: any): any;
+ static makeStaticRequest(
+ url: string,
+ method?: string,
+ data?: any,
+ opts?: Object
+ ): any;
+ static makeRequest(
+ formio?: Formio,
+ type?: string,
+ url?: string,
+ method?: string,
+ data?: any,
+ opts?: Object
+ ): any;
+ static currentUser(formio?: Formio, options?: Object): any;
+ static logout(formio?: Formio, options?: Object): any;
+ static clearCache(): void;
+ static setUser(user: any, opts?: Object): any;
+ loadForm(query?: any, opts?: Object): any;
+ loadForms(query?: any, opts?: Object): any;
+ loadSubmission(query?: any, opts?: Object): any;
+ loadSubmissions(query?: any, opts?: Object): any;
+ userPermissions(
+ user?: any,
+ form?: any,
+ submission?: any
+ ): Promise<{
+ create: boolean;
+ read: boolean;
+ edit: boolean;
+ delete: boolean;
+ }>;
+ createform(form: Object): Promise;
+ saveForm(data: any, opts?: Object): any;
+ saveSubmission(data: any, opts?: Object): any;
+ deleteForm(opts?: Object): any;
+ deleteSubmission(opts?: Object): any;
+ saveAction(data: any, opts?: any): any;
+ deleteAction(opts?: any): any;
+ loadAction(query?: any, opts?: any): any;
+ loadActions(query?: any, opts?: any): any;
+ availableActions(): any;
+ actionInfo(name: any): any;
+ isObjectId(id: any): any;
+ getProjectId(): any;
+ getFormId(): any;
+ currentUser(options?: Object): any;
+ accessInfo(): any;
+ getToken(options?: Object): any;
+ setToken(token: any, options?: Object): any;
+ getTempToken(expire: any, allowed: any, options?: Object): any;
+ getDownloadUrl(form: any): any;
+ uploadFile(
+ storage: any,
+ file: any,
+ fileName: any,
+ dir: any,
+ progressCallback: any,
+ url: any,
+ options?: Object
+ ): any;
+ downloadFile(file: any, options?: Object): any;
+ canSubmit(): any;
+ getUrlParts(url: any): any;
+ static use(plugin: any): any;
+ static getUrlParts(url: any, formio?: Formio): any;
+ static serialize(obj: any, _interpolate: any): any;
+ static getRequestArgs(
+ formio: Formio,
+ type: string,
+ url: string,
+ method?: string,
+ data?: any,
+ opts?: any
+ ): any;
+ static request(
+ url: any,
+ method?: any,
+ data?: any,
+ header?: any,
+ opts?: any
+ ): any;
+ static setToken(token: string, opts?: any): any;
+ static getUser(options?: Object): any;
+ static getBaseUrl(): string;
+ static setApiUrl(url: string): any;
+ static getApiUrl(): any;
+ static setAppUrl(url: string): any;
+ static getAppUrl(): any;
+ static getProjectUrl(): any;
+ static noop(): any;
+ static identity(value: any): any;
+ static deregisterPlugin(plugin: any): any;
+ static registerPlugin(plugin: any, name: string): any;
+ static getPlugin(name: any | string): any;
+ static pluginWait(pluginFn: any, ...args: any[]): any;
+ static pluginGet(pluginFn: any, ...args: any[]): any;
+ static pluginAlter(pluginFn: any, value: any, ...args: any[]): any;
+ static accessInfo(formio?: Formio): any;
+ static pageQuery(): any;
+ static oAuthCurrentUser(formio?: Formio, token?: any): any;
+ static samlInit(options?: Object): any;
+ static oktaInit(options?: Object): any;
+ static ssoInit(type: any, options?: Object): any;
+ static requireLibrary(
+ name: any,
+ property: any,
+ src: any,
+ polling?: boolean
+ ): any;
+ static libraryReady(name: string): any;
+ oauthLogoutURI(uri: string, options?: any): any;
}
diff --git a/types/licenses.d.ts b/types/licenses.d.ts
index a9ed473be2..1c8b9982be 100644
--- a/types/licenses.d.ts
+++ b/types/licenses.d.ts
@@ -1,7 +1,7 @@
export class Licenses {
- static readonly licenses: any;
- static addLicense(name: string, license: any): void;
- static removeLicense(name: string): void;
- static getLicense(name: string): any;
- static getLicenses(): any;
+ static readonly licenses: any;
+ static addLicense(name: string, license: any): void;
+ static removeLicense(name: string): void;
+ static getLicense(name: string): any;
+ static getLicenses(): any;
}
diff --git a/types/providers.d.ts b/types/providers.d.ts
index 39392df3fd..94c6eb8db3 100644
--- a/types/providers.d.ts
+++ b/types/providers.d.ts
@@ -1,8 +1,7 @@
export class Providers {
- static readonly providers: any;
- static addProvider(type: string, name: string, provider:any): void;
- static addProviders(type:string, providers: any): void;
- static getProvider(type: string, name: string): any;
- static getProviders(type: string): any;
+ static readonly providers: any;
+ static addProvider(type: string, name: string, provider: any): void;
+ static addProviders(type: string, providers: any): void;
+ static getProvider(type: string, name: string): any;
+ static getProviders(type: string): any;
}
-
diff --git a/types/rulesEngine/conjunctions.d.ts b/types/rulesEngine/conjunctions.d.ts
index 0fa8ef07fa..0e501cfcd7 100644
--- a/types/rulesEngine/conjunctions.d.ts
+++ b/types/rulesEngine/conjunctions.d.ts
@@ -1,7 +1,7 @@
export class Conjunctions {
- static readonly conjunctions: any;
- static addConjunction(name: string, conjunction: any): void;
- static addConjunctions(conjunctions: any): void;
- static getConjunction(name: string): any;
- static getConjunctions(): any;
+ static readonly conjunctions: any;
+ static addConjunction(name: string, conjunction: any): void;
+ static addConjunctions(conjunctions: any): void;
+ static getConjunction(name: string): any;
+ static getConjunctions(): any;
}
diff --git a/types/rulesEngine/operators.d.ts b/types/rulesEngine/operators.d.ts
index 0205a1c3b0..2f1dde7cfa 100644
--- a/types/rulesEngine/operators.d.ts
+++ b/types/rulesEngine/operators.d.ts
@@ -1,7 +1,7 @@
export class Operators {
- static readonly operators: any;
- static addOperator(name: string, conjunction: any): void;
- static addOperators(conjunctions: any): void;
- static getOperator(name: string): any;
- static getOperators(): any;
+ static readonly operators: any;
+ static addOperator(name: string, conjunction: any): void;
+ static addOperators(conjunctions: any): void;
+ static getOperator(name: string): any;
+ static getOperators(): any;
}
diff --git a/types/rulesEngine/quckRules.d.ts b/types/rulesEngine/quckRules.d.ts
index 4dc7a5f8d0..cc1f03e1a1 100644
--- a/types/rulesEngine/quckRules.d.ts
+++ b/types/rulesEngine/quckRules.d.ts
@@ -1,7 +1,7 @@
export class QuickRules {
- static readonly quickRules: any;
- static addQuickRule(name: string, conjunction: any): void;
- static addQuickRules(conjunctions: any): void;
- static getQuickRule(name: string): any;
- static getQuickRules(): any;
+ static readonly quickRules: any;
+ static addQuickRule(name: string, conjunction: any): void;
+ static addQuickRules(conjunctions: any): void;
+ static getQuickRule(name: string): any;
+ static getQuickRules(): any;
}
diff --git a/types/rulesEngine/rules.d.ts b/types/rulesEngine/rules.d.ts
index 567f0f6934..22035b38d1 100644
--- a/types/rulesEngine/rules.d.ts
+++ b/types/rulesEngine/rules.d.ts
@@ -1,7 +1,7 @@
export class Rules {
- static readonly rules: any;
- static addRule(name: string, conjunction: any): void;
- static addRules(conjunctions: any): void;
- static getRule(name: string): any;
- static getRules(): any;
+ static readonly rules: any;
+ static addRule(name: string, conjunction: any): void;
+ static addRules(conjunctions: any): void;
+ static getRule(name: string): any;
+ static getRules(): any;
}
diff --git a/types/rulesEngine/transformers.d.ts b/types/rulesEngine/transformers.d.ts
index b516fc86b9..eae0d5c3fc 100644
--- a/types/rulesEngine/transformers.d.ts
+++ b/types/rulesEngine/transformers.d.ts
@@ -1,7 +1,7 @@
export class Transformers {
- static readonly transformers: any;
- static addTransformer(name: string, conjunction: any): void;
- static addTransformers(conjunctions: any): void;
- static getTransformer(name: string): any;
- static getTransformers(): any;
+ static readonly transformers: any;
+ static addTransformer(name: string, conjunction: any): void;
+ static addTransformers(conjunctions: any): void;
+ static getTransformer(name: string): any;
+ static getTransformers(): any;
}
diff --git a/types/rulesEngine/valueSources.d.ts b/types/rulesEngine/valueSources.d.ts
index 8f0227585c..81e33b4dcd 100644
--- a/types/rulesEngine/valueSources.d.ts
+++ b/types/rulesEngine/valueSources.d.ts
@@ -1,7 +1,7 @@
export class ValueSources {
- static readonly valueSources: any;
- static addValueSource(name: string, conjunction: any): void;
- static addValueSources(conjunctions: any): void;
- static getValueSource(name: string): any;
- static getValueSources(): any;
+ static readonly valueSources: any;
+ static addValueSource(name: string, conjunction: any): void;
+ static addValueSources(conjunctions: any): void;
+ static getValueSource(name: string): any;
+ static getValueSources(): any;
}
diff --git a/types/templates.d.ts b/types/templates.d.ts
index 296fe6541c..d9a2a27742 100644
--- a/types/templates.d.ts
+++ b/types/templates.d.ts
@@ -1,8 +1,8 @@
export class Templates {
- static readonly templates: any;
- static addTemplate(name: string, template: any): void;
- static setTemplate(name: string, template: any): void;
- static current: any;
- static readonly defaultTemplates: any;
- static framework: any;
+ static readonly templates: any;
+ static addTemplate(name: string, template: any): void;
+ static setTemplate(name: string, template: any): void;
+ static current: any;
+ static readonly defaultTemplates: any;
+ static framework: any;
}
diff --git a/types/utils.d.ts b/types/utils.d.ts
index 7bbaa15ca7..bc54e0fbe3 100644
--- a/types/utils.d.ts
+++ b/types/utils.d.ts
@@ -3,155 +3,240 @@ import * as moment from 'moment';
export type AnyForJSON = { [key: string]: any } | any;
export namespace Utils {
- const ConditionOperators: any;
- const componentValueTypes: { [key: string]: string };
- const Evaluator: any;
- const _: any;
- function getComponentSavedTypes(schema: object): Array | null;
- function evaluate(
- func: any,
- args: { component: any; form: any; instance: any; row: any; data: any } | any,
- ret: any,
- tokenize?: any,
- ): any;
- function getRandomComponentId(): string;
- function getPropertyValue(style: CSSStyleDeclaration, prop: string): number;
- function getElementRect(element: any): { x: number; y: number; width: number; height: number };
- function boolValue(value: boolean | string): boolean;
- function isMongoId(text: any): any;
- function checkCalculated(component: { calculateValue?: any; key: any } | any, submission: any, rowData: any): void;
- function checkSimpleConditional(
- component: any /* unused */,
- condition: { eq: any; show: any; when: any } & any,
- row: any,
- data: any,
- instance: any
- ): boolean;
- function checkCustomConditional(
- component: any /* unused */,
- custom: string | any,
- row: any,
- data: any,
- form: any,
- variable: any,
- onError: any,
- instance: { evaluate?: any } | any,
- ): any;
- function checkJsonConditional(
- component: { key: string | any } | any,
- json: AnyForJSON,
- row: any,
- data: any,
- form: any,
- onError: any,
- ): any;
- function checkCondition(
- component: { customConditional: any; conditional: { when: any; json: AnyForJSON } } | any,
- row: any,
- data: any,
- form: any,
- instance: any,
- ): boolean;
- function checkTrigger(
- component: any,
- trigger: { type: string; simple: any; json: AnyForJSON; javascript: any } | any,
- row: any,
- data: any,
- form: any,
- instance: any,
- ): boolean | any;
- function setActionProperty(
- component: any,
- action: { property: { type: string | any; value: any } | any; state: boolean | any; text: any },
- row: any,
- data: any,
- result: any,
- instance?: { interpolate: (textValue: any, evalData: any) => any | any },
- ): any;
- function interpolateTemplate(template: string): any;
- function addTemplateHash(template: string): number;
- function interpolate(rawTemplate: number | string, data: any): any;
- function uniqueName(name: string, template: string, evalContext: Object): string;
- function guid(): string;
- function getDateSetting(date: any): null | Date;
- function isValidDate(date: any): boolean;
- function currentTimezone(): string;
- function offsetDate(date: Date, timezone: string): { date: Date; abbr: string };
- function zonesLoaded(): boolean;
- function shouldLoadZones(timezone: string): boolean;
- function loadZones(timezone?: string): Promise;
- function momentDate(value: moment.MomentInput, format: string, timezone: string): moment.Moment;
- function formatDate(value: moment.MomentInput, format: string, timezone: string): string;
- function formatOffset(
- formatFn: (date: any, format: any) => string,
- date: Date | any,
- format: string | any,
- timezone: string,
- ): string;
- function getLocaleDateFormatInfo(locale: string | string[]): { dayFirst: boolean };
- function convertFormatToFlatpickr(format: string): string;
- function convertFormatToMoment(format: string): string;
- function convertFormatToMask(format: string): string;
- function getInputMask(mask: string | RegExp[]): RegExp[];
- function matchInputMask(value: string | RegExp, inputMask?: string | RegExp): boolean;
- function getNumberSeparators(lang: string): { delimiter: string; decimalSeparator: string };
- function getNumberDecimalLimit(component: any): number;
- function getCurrencyAffixes(input: {
- currency: string;
- decimalLimit: number;
- decimalSeparator: string;
- lang: string | string[];
- }): { prefix: string; suffix: string };
- function fieldData(data: Object, component: { key: string | any[]; multiple: boolean | any } | any): any;
- function delay(fn: Function, delay: number, args: any[]): any;
- function iterateKey(key: string): string;
- function uniqueKey(map: Object, base: string): string;
- function bootstrapVersion(options: { bootstrap?: any } | any): number;
- function unfold(e: any): any;
- const firstNonNil: any;
- function withSwitch(a: any, b: any): [Function, Function];
- function observeOverload(callback: Function, options?: { limit?: number; delay?: number }): any;
- function getContextComponents(context: any, excludeNested?: any, excludedTypes?: any): any;
- function sanitize(string: string, options: any): any;
+ const ConditionOperators: any;
+ const componentValueTypes: { [key: string]: string };
+ const Evaluator: any;
+ const _: any;
+ function getComponentSavedTypes(schema: object): Array | null;
+ function evaluate(
+ func: any,
+ args:
+ | { component: any; form: any; instance: any; row: any; data: any }
+ | any,
+ ret: any,
+ tokenize?: any
+ ): any;
+ function getRandomComponentId(): string;
+ function getPropertyValue(style: CSSStyleDeclaration, prop: string): number;
+ function getElementRect(element: any): {
+ x: number;
+ y: number;
+ width: number;
+ height: number;
+ };
+ function boolValue(value: boolean | string): boolean;
+ function isMongoId(text: any): any;
+ function checkCalculated(
+ component: { calculateValue?: any; key: any } | any,
+ submission: any,
+ rowData: any
+ ): void;
+ function checkSimpleConditional(
+ component: any /* unused */,
+ condition: { eq: any; show: any; when: any } & any,
+ row: any,
+ data: any,
+ instance: any
+ ): boolean;
+ function checkCustomConditional(
+ component: any /* unused */,
+ custom: string | any,
+ row: any,
+ data: any,
+ form: any,
+ variable: any,
+ onError: any,
+ instance: { evaluate?: any } | any
+ ): any;
+ function checkJsonConditional(
+ component: { key: string | any } | any,
+ json: AnyForJSON,
+ row: any,
+ data: any,
+ form: any,
+ onError: any
+ ): any;
+ function checkCondition(
+ component:
+ | {
+ customConditional: any;
+ conditional: { when: any; json: AnyForJSON };
+ }
+ | any,
+ row: any,
+ data: any,
+ form: any,
+ instance: any
+ ): boolean;
+ function checkTrigger(
+ component: any,
+ trigger:
+ | { type: string; simple: any; json: AnyForJSON; javascript: any }
+ | any,
+ row: any,
+ data: any,
+ form: any,
+ instance: any
+ ): boolean | any;
+ function setActionProperty(
+ component: any,
+ action: {
+ property: { type: string | any; value: any } | any;
+ state: boolean | any;
+ text: any;
+ },
+ row: any,
+ data: any,
+ result: any,
+ instance?: { interpolate: (textValue: any, evalData: any) => any | any }
+ ): any;
+ function interpolateTemplate(template: string): any;
+ function addTemplateHash(template: string): number;
+ function interpolate(rawTemplate: number | string, data: any): any;
+ function uniqueName(
+ name: string,
+ template: string,
+ evalContext: Object
+ ): string;
+ function guid(): string;
+ function getDateSetting(date: any): null | Date;
+ function isValidDate(date: any): boolean;
+ function currentTimezone(): string;
+ function offsetDate(
+ date: Date,
+ timezone: string
+ ): { date: Date; abbr: string };
+ function zonesLoaded(): boolean;
+ function shouldLoadZones(timezone: string): boolean;
+ function loadZones(timezone?: string): Promise;
+ function momentDate(
+ value: moment.MomentInput,
+ format: string,
+ timezone: string
+ ): moment.Moment;
+ function formatDate(
+ value: moment.MomentInput,
+ format: string,
+ timezone: string
+ ): string;
+ function formatOffset(
+ formatFn: (date: any, format: any) => string,
+ date: Date | any,
+ format: string | any,
+ timezone: string
+ ): string;
+ function getLocaleDateFormatInfo(locale: string | string[]): {
+ dayFirst: boolean;
+ };
+ function convertFormatToFlatpickr(format: string): string;
+ function convertFormatToMoment(format: string): string;
+ function convertFormatToMask(format: string): string;
+ function getInputMask(mask: string | RegExp[]): RegExp[];
+ function matchInputMask(
+ value: string | RegExp,
+ inputMask?: string | RegExp
+ ): boolean;
+ function getNumberSeparators(lang: string): {
+ delimiter: string;
+ decimalSeparator: string;
+ };
+ function getNumberDecimalLimit(component: any): number;
+ function getCurrencyAffixes(input: {
+ currency: string;
+ decimalLimit: number;
+ decimalSeparator: string;
+ lang: string | string[];
+ }): { prefix: string; suffix: string };
+ function fieldData(
+ data: Object,
+ component: { key: string | any[]; multiple: boolean | any } | any
+ ): any;
+ function delay(fn: Function, delay: number, args: any[]): any;
+ function iterateKey(key: string): string;
+ function uniqueKey(map: Object, base: string): string;
+ function bootstrapVersion(options: { bootstrap?: any } | any): number;
+ function unfold(e: any): any;
+ const firstNonNil: any;
+ function withSwitch(a: any, b: any): [Function, Function];
+ function observeOverload(
+ callback: Function,
+ options?: { limit?: number; delay?: number }
+ ): any;
+ function getContextComponents(
+ context: any,
+ excludeNested?: any,
+ excludedTypes?: any
+ ): any;
+ function sanitize(string: string, options: any): any;
- // Form Utils
- function isLayoutComponent(component: { columns: any; rows: any; components: any } | any): boolean;
- function eachComponent(components: any[], fn: Function, includeAll?: boolean, path?: string, parent?: Object): any;
- function matchComponent(component: any, query: any): boolean;
- function getComponent(components: any[], key: string | Object | any, includeAll: boolean): any;
- function searchComponents(components: any[], query: any): any;
- function findComponent(components: any[], key: any, path: any, fn: Function): boolean;
- function removeComponent(components: any[], path: any): void;
- function fastCloneDeep(json: any): any;
- function generateFormChange(
- type: string | any,
- data: { schema: any; parent: { key: any } | any; originalComponent: any },
- ): {
- op: string;
- key: any;
- container?: any;
- index?: number;
- component?: any;
- patches?: any;
- };
- function applyFormChanges(form: any, changes: any[]): { form: any; failed: any[] };
- function flattenComponents(components: any[], includeAll: boolean): any;
- function hasCondition(component: any): boolean;
- function parseFloatExt(value: any): number;
- function formatAsCurrency(value: any): string;
- function escapeRegExCharacters(value: string): string;
- function getValue(submission: any, key: string): any;
- function getStrings(
- form: { components: any[] } | any,
- ): { key: any; type?: any; property: string; string: string | any };
+ // Form Utils
+ function isLayoutComponent(
+ component: { columns: any; rows: any; components: any } | any
+ ): boolean;
+ function eachComponent(
+ components: any[],
+ fn: Function,
+ includeAll?: boolean,
+ path?: string,
+ parent?: Object
+ ): any;
+ function matchComponent(component: any, query: any): boolean;
+ function getComponent(
+ components: any[],
+ key: string | Object | any,
+ includeAll: boolean
+ ): any;
+ function searchComponents(components: any[], query: any): any;
+ function findComponent(
+ components: any[],
+ key: any,
+ path: any,
+ fn: Function
+ ): boolean;
+ function removeComponent(components: any[], path: any): void;
+ function fastCloneDeep(json: any): any;
+ function generateFormChange(
+ type: string | any,
+ data: {
+ schema: any;
+ parent: { key: any } | any;
+ originalComponent: any;
+ }
+ ): {
+ op: string;
+ key: any;
+ container?: any;
+ index?: number;
+ component?: any;
+ patches?: any;
+ };
+ function applyFormChanges(
+ form: any,
+ changes: any[]
+ ): { form: any; failed: any[] };
+ function flattenComponents(components: any[], includeAll: boolean): any;
+ function hasCondition(component: any): boolean;
+ function parseFloatExt(value: any): number;
+ function formatAsCurrency(value: any): string;
+ function escapeRegExCharacters(value: string): string;
+ function getValue(submission: any, key: string): any;
+ function getStrings(form: { components: any[] } | any): {
+ key: any;
+ type?: any;
+ property: string;
+ string: string | any;
+ };
- // Builder Utils
- namespace BuilderUtils {
- function uniquify(container: any[], component: any): boolean;
- const additionalShortcuts: { button: ['Enter', 'Esc'] };
- function getAlphaShortcuts(): string[];
- function getAdditionalShortcuts(type: string): string[];
- function getBindedShortcuts(components: any[], input: any): any[];
- function getAvailableShortcuts(form: { components: any[] } | any, component: { type: any } | any): string[];
- }
+ // Builder Utils
+ namespace BuilderUtils {
+ function uniquify(container: any[], component: any): boolean;
+ const additionalShortcuts: { button: ['Enter', 'Esc'] };
+ function getAlphaShortcuts(): string[];
+ function getAdditionalShortcuts(type: string): string[];
+ function getBindedShortcuts(components: any[], input: any): any[];
+ function getAvailableShortcuts(
+ form: { components: any[] } | any,
+ component: { type: any } | any
+ ): string[];
+ }
}
diff --git a/types/widgets.d.ts b/types/widgets.d.ts
index ad62c4446b..3118ac73ae 100644
--- a/types/widgets.d.ts
+++ b/types/widgets.d.ts
@@ -1,4 +1,4 @@
export class Widgets {
- static readonly calendar: any;
- static readonly input: any;
+ static readonly calendar: any;
+ static readonly input: any;
}
diff --git a/webpack.config.js b/webpack.config.js
index 84c58d1fb5..85a151f0f5 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -2,46 +2,46 @@ const webpack = require('webpack');
const path = require('path');
const packageJSON = require('./package.json');
module.exports = {
- mode: 'development',
- performance: {
- hints: false
- },
- entry: {
- 'formio': './lib/cjs/Formio.js',
- 'formio.utils': './lib/cjs/utils/utils.js',
- 'formio.full': './lib/cjs/index.js',
- 'formio.form': './lib/cjs/formio.form.js',
- 'formio.embed': './lib/cjs/formio.embed.js'
- },
- output: {
- library: 'Formio',
- libraryTarget: 'umd',
- libraryExport: 'Formio',
- path: path.resolve(__dirname, './dist'),
- filename: '[name].js',
- environment: {
- arrowFunction: false
+ mode: 'development',
+ performance: {
+ hints: false,
+ },
+ entry: {
+ formio: './lib/cjs/Formio.js',
+ 'formio.utils': './lib/cjs/utils/utils.js',
+ 'formio.full': './lib/cjs/index.js',
+ 'formio.form': './lib/cjs/formio.form.js',
+ 'formio.embed': './lib/cjs/formio.embed.js',
+ },
+ output: {
+ library: 'Formio',
+ libraryTarget: 'umd',
+ libraryExport: 'Formio',
+ path: path.resolve(__dirname, './dist'),
+ filename: '[name].js',
+ environment: {
+ arrowFunction: false,
+ },
+ },
+ module: {
+ rules: [
+ {
+ test: /\/(Formio|Embed)\.js$/,
+ loader: 'string-replace-loader',
+ options: {
+ search: 'FORMIO_VERSION',
+ replace: packageJSON.version,
+ },
+ },
+ ],
+ },
+ plugins: [
+ new webpack.IgnorePlugin({
+ resourceRegExp: /^\.\/locale$/,
+ contextRegExp: /moment$/,
+ }),
+ ],
+ resolve: {
+ extensions: ['.js'],
},
- },
- module: {
- rules: [
- {
- test: /\/(Formio|Embed)\.js$/,
- loader: 'string-replace-loader',
- options: {
- search: 'FORMIO_VERSION',
- replace: packageJSON.version,
- }
- }
- ]
- },
- plugins: [
- new webpack.IgnorePlugin({
- resourceRegExp: /^\.\/locale$/,
- contextRegExp: /moment$/
- }),
- ],
- resolve: {
- extensions: ['.js'],
- }
};
diff --git a/webpack.prod.js b/webpack.prod.js
index da34748e66..75cc8736d5 100644
--- a/webpack.prod.js
+++ b/webpack.prod.js
@@ -2,20 +2,20 @@ const _ = require('lodash');
const webpack = require('webpack');
const packageJSON = require('./package.json');
module.exports = _.merge({}, require('./webpack.config'), {
- mode: 'production',
- output: {
- filename: '[name].min.js'
- },
- plugins: [
- new webpack.DefinePlugin({
- FORMIO_VERSION: `'${packageJSON.version}'`
- }),
- new webpack.IgnorePlugin({
- resourceRegExp: /^\.\/locale$/,
- contextRegExp: /moment$/
- }),
- new webpack.BannerPlugin(
- `formiojs v${packageJSON.version} | https://unpkg.com/formiojs@${packageJSON.version}/LICENSE.txt`
- )
- ]
+ mode: 'production',
+ output: {
+ filename: '[name].min.js',
+ },
+ plugins: [
+ new webpack.DefinePlugin({
+ FORMIO_VERSION: `'${packageJSON.version}'`,
+ }),
+ new webpack.IgnorePlugin({
+ resourceRegExp: /^\.\/locale$/,
+ contextRegExp: /moment$/,
+ }),
+ new webpack.BannerPlugin(
+ `formiojs v${packageJSON.version} | https://unpkg.com/formiojs@${packageJSON.version}/LICENSE.txt`,
+ ),
+ ],
});