mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[MNT-22348] - Fixed visibility when complex cases are appling (#7176)
* [MNT-22348] - Fixed visibility when complex cases are appling * [MNT-22348] - Fixed lint errrors * [MNT-22461] Unit test for visibility condition behaviour for checkxox expression is added * fixed unit test for visibility condition * [MNT-22348] - Fixed wrong form definition * [MNT-22348] - Fixed wrong quote * [MNT-22348] - Fixed wrong form definition * [MNT-22348] - fixed form definition Co-authored-by: Ketevani Kvirikashvili <qqetikv@gmail.com>
This commit is contained in:
@@ -158,7 +158,7 @@
|
|||||||
nextCondition: {
|
nextCondition: {
|
||||||
leftFormFieldId: 'textTwo',
|
leftFormFieldId: 'textTwo',
|
||||||
leftRestResponseId: '',
|
leftRestResponseId: '',
|
||||||
operator: 'not equal',
|
operator: '!=',
|
||||||
rightValue: 'aaa',
|
rightValue: 'aaa',
|
||||||
rightType: null,
|
rightType: null,
|
||||||
rightFormFieldId: '',
|
rightFormFieldId: '',
|
||||||
@@ -190,12 +190,12 @@
|
|||||||
nextCondition: {
|
nextCondition: {
|
||||||
leftFormFieldId: 'textTwo',
|
leftFormFieldId: 'textTwo',
|
||||||
leftRestResponseId: '',
|
leftRestResponseId: '',
|
||||||
operator: 'not equal',
|
operator: '!=',
|
||||||
rightValue: 'aaa',
|
rightValue: 'aaa',
|
||||||
rightType: null,
|
rightType: null,
|
||||||
rightFormFieldId: '',
|
rightFormFieldId: '',
|
||||||
rightRestResponseId: '',
|
rightRestResponseId: '',
|
||||||
nextConditionOperator: 'and not',
|
nextConditionOperator: 'and-not',
|
||||||
nextCondition: {
|
nextCondition: {
|
||||||
leftFormFieldId: 'textThree',
|
leftFormFieldId: 'textThree',
|
||||||
leftRestResponseId: '',
|
leftRestResponseId: '',
|
||||||
@@ -208,12 +208,12 @@
|
|||||||
nextCondition: {
|
nextCondition: {
|
||||||
leftFormFieldId: 'textfour',
|
leftFormFieldId: 'textfour',
|
||||||
leftRestResponseId: '',
|
leftRestResponseId: '',
|
||||||
operator: 'not empty',
|
operator: '!empty',
|
||||||
rightValue: 'aaa',
|
rightValue: 'aaa',
|
||||||
rightType: null,
|
rightType: null,
|
||||||
rightFormFieldId: '',
|
rightFormFieldId: '',
|
||||||
rightRestResponseId: '',
|
rightRestResponseId: '',
|
||||||
nextConditionOperator: 'or not',
|
nextConditionOperator: 'or-not',
|
||||||
nextCondition: {
|
nextCondition: {
|
||||||
leftFormFieldId: 'textfive',
|
leftFormFieldId: 'textfive',
|
||||||
leftRestResponseId: '',
|
leftRestResponseId: '',
|
||||||
@@ -252,16 +252,16 @@
|
|||||||
nextCondition: {
|
nextCondition: {
|
||||||
leftFormFieldId: '',
|
leftFormFieldId: '',
|
||||||
leftRestResponseId: '08f66ebb-1e5c-4ae4-a8cc-ec9c674d1e40',
|
leftRestResponseId: '08f66ebb-1e5c-4ae4-a8cc-ec9c674d1e40',
|
||||||
operator: 'not equal',
|
operator: '!=',
|
||||||
rightValue: '',
|
rightValue: '',
|
||||||
rightType: null,
|
rightType: null,
|
||||||
rightFormFieldId: 'textOne',
|
rightFormFieldId: 'textOne',
|
||||||
rightRestResponseId: '',
|
rightRestResponseId: '',
|
||||||
nextConditionOperator: 'and not',
|
nextConditionOperator: 'and-not',
|
||||||
nextCondition: {
|
nextCondition: {
|
||||||
leftFormFieldId: '',
|
leftFormFieldId: '',
|
||||||
leftRestResponseId: '888786b1-e948-4e7a-9caa-deb2583d222f',
|
leftRestResponseId: '888786b1-e948-4e7a-9caa-deb2583d222f',
|
||||||
operator: 'not equal',
|
operator: '!=',
|
||||||
rightValue: '',
|
rightValue: '',
|
||||||
rightType: null,
|
rightType: null,
|
||||||
rightFormFieldId: 'textThree',
|
rightFormFieldId: 'textThree',
|
||||||
@@ -270,12 +270,12 @@
|
|||||||
nextCondition: {
|
nextCondition: {
|
||||||
leftFormFieldId: '',
|
leftFormFieldId: '',
|
||||||
leftRestResponseId: '5007cf47-aa68-42c0-b1ab-a98f0dff6bdc',
|
leftRestResponseId: '5007cf47-aa68-42c0-b1ab-a98f0dff6bdc',
|
||||||
operator: 'not equal',
|
operator: '!=',
|
||||||
rightValue: '',
|
rightValue: '',
|
||||||
rightType: null,
|
rightType: null,
|
||||||
rightFormFieldId: 'textfour',
|
rightFormFieldId: 'textfour',
|
||||||
rightRestResponseId: '',
|
rightRestResponseId: '',
|
||||||
nextConditionOperator: 'or not',
|
nextConditionOperator: 'or-not',
|
||||||
nextCondition: {
|
nextCondition: {
|
||||||
leftFormFieldId: '',
|
leftFormFieldId: '',
|
||||||
leftRestResponseId: '948aa549-5011-423e-b8a2-020e69daae5f',
|
leftRestResponseId: '948aa549-5011-423e-b8a2-020e69daae5f',
|
||||||
@@ -314,16 +314,16 @@
|
|||||||
nextCondition: {
|
nextCondition: {
|
||||||
leftFormFieldId: 'textTwo',
|
leftFormFieldId: 'textTwo',
|
||||||
leftRestResponseId: '',
|
leftRestResponseId: '',
|
||||||
operator: 'not equal',
|
operator: '!=',
|
||||||
rightValue: '',
|
rightValue: '',
|
||||||
rightType: null,
|
rightType: null,
|
||||||
rightFormFieldId: '',
|
rightFormFieldId: '',
|
||||||
rightRestResponseId: '08f66ebb-1e5c-4ae4-a8cc-ec9c674d1e40',
|
rightRestResponseId: '08f66ebb-1e5c-4ae4-a8cc-ec9c674d1e40',
|
||||||
nextConditionOperator: 'and not',
|
nextConditionOperator: 'and-not',
|
||||||
nextCondition: {
|
nextCondition: {
|
||||||
leftFormFieldId: 'textThree',
|
leftFormFieldId: 'textThree',
|
||||||
leftRestResponseId: '',
|
leftRestResponseId: '',
|
||||||
operator: 'not equal',
|
operator: '!=',
|
||||||
rightValue: '',
|
rightValue: '',
|
||||||
rightType: null,
|
rightType: null,
|
||||||
rightFormFieldId: '',
|
rightFormFieldId: '',
|
||||||
@@ -332,12 +332,12 @@
|
|||||||
nextCondition: {
|
nextCondition: {
|
||||||
leftFormFieldId: 'textfour',
|
leftFormFieldId: 'textfour',
|
||||||
leftRestResponseId: '',
|
leftRestResponseId: '',
|
||||||
operator: 'not equal',
|
operator: '!=',
|
||||||
rightValue: '',
|
rightValue: '',
|
||||||
rightType: null,
|
rightType: null,
|
||||||
rightFormFieldId: '',
|
rightFormFieldId: '',
|
||||||
rightRestResponseId: '5007cf47-aa68-42c0-b1ab-a98f0dff6bdc',
|
rightRestResponseId: '5007cf47-aa68-42c0-b1ab-a98f0dff6bdc',
|
||||||
nextConditionOperator: 'or not',
|
nextConditionOperator: 'or-not',
|
||||||
nextCondition: {
|
nextCondition: {
|
||||||
leftFormFieldId: 'textfive',
|
leftFormFieldId: 'textfive',
|
||||||
leftRestResponseId: '',
|
leftRestResponseId: '',
|
||||||
|
@@ -61,54 +61,6 @@ describe('WidgetVisibilityCloudService', () => {
|
|||||||
jasmine.Ajax.uninstall();
|
jasmine.Ajax.uninstall();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('should be able to evaluate logic operations', () => {
|
|
||||||
|
|
||||||
it('using AND and return true', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation('and', true, true);
|
|
||||||
expect(booleanResult).toBeTruthy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('using AND and return false', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation('and', true, false);
|
|
||||||
expect(booleanResult).toBeFalsy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('using OR and return true', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation('or', true, false);
|
|
||||||
expect(booleanResult).toBeTruthy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('using OR and return false', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation('or', false, false);
|
|
||||||
expect(booleanResult).toBeFalsy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('using AND NOT and return true', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation('and-not', true, false);
|
|
||||||
expect(booleanResult).toBeTruthy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('using AND NOT and return false', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation('and-not', false, false);
|
|
||||||
expect(booleanResult).toBeFalsy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('using OR NOT and return true', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation('or-not', true, true);
|
|
||||||
expect(booleanResult).toBeTruthy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('using OR NOT and return false', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation('or-not', false, true);
|
|
||||||
expect(booleanResult).toBeFalsy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should fail with invalid operation', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation(undefined, false, true);
|
|
||||||
expect(booleanResult).toBeUndefined();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('should be able to evaluate next condition operations', () => {
|
describe('should be able to evaluate next condition operations', () => {
|
||||||
|
|
||||||
it('using == and return true', () => {
|
it('using == and return true', () => {
|
||||||
|
@@ -32,7 +32,9 @@ import {
|
|||||||
fakeFormJson, formTest,
|
fakeFormJson, formTest,
|
||||||
formValues, complexVisibilityJsonVisible,
|
formValues, complexVisibilityJsonVisible,
|
||||||
complexVisibilityJsonNotVisible, tabVisibilityJsonMock,
|
complexVisibilityJsonNotVisible, tabVisibilityJsonMock,
|
||||||
tabInvalidFormVisibility
|
tabInvalidFormVisibility,
|
||||||
|
fakeFormChainedVisibilityJson,
|
||||||
|
fakeFormCheckBoxVisibilityJson
|
||||||
} from 'core/mock/form/widget-visibility.service.mock';
|
} from 'core/mock/form/widget-visibility.service.mock';
|
||||||
import { CoreTestingModule } from '../../testing/core.testing.module';
|
import { CoreTestingModule } from '../../testing/core.testing.module';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
@@ -63,50 +65,6 @@ describe('WidgetVisibilityService', () => {
|
|||||||
|
|
||||||
describe('should be able to evaluate logic operations', () => {
|
describe('should be able to evaluate logic operations', () => {
|
||||||
|
|
||||||
it('using AND and return true', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation('and', true, true);
|
|
||||||
expect(booleanResult).toBeTruthy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('using AND and return false', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation('and', true, false);
|
|
||||||
expect(booleanResult).toBeFalsy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('using OR and return true', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation('or', true, false);
|
|
||||||
expect(booleanResult).toBeTruthy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('using OR and return false', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation('or', false, false);
|
|
||||||
expect(booleanResult).toBeFalsy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('using AND NOT and return true', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation('and-not', true, false);
|
|
||||||
expect(booleanResult).toBeTruthy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('using AND NOT and return false', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation('and-not', false, false);
|
|
||||||
expect(booleanResult).toBeFalsy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('using OR NOT and return true', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation('or-not', true, true);
|
|
||||||
expect(booleanResult).toBeTruthy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('using OR NOT and return false', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation('or-not', false, true);
|
|
||||||
expect(booleanResult).toBeFalsy();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should fail with invalid operation', () => {
|
|
||||||
booleanResult = service.evaluateLogicalOperation(undefined, false, true);
|
|
||||||
expect(booleanResult).toBeUndefined();
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('should be able to evaluate next condition operations', () => {
|
describe('should be able to evaluate next condition operations', () => {
|
||||||
@@ -1122,4 +1080,65 @@ describe('WidgetVisibilityService', () => {
|
|||||||
expect(invalidTabVisibilityJsonModel.isValid).toBeTruthy();
|
expect(invalidTabVisibilityJsonModel.isValid).toBeTruthy();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('Visibility calculation in complex forms', () => {
|
||||||
|
|
||||||
|
const fakeFormWithVariables = new FormModel(fakeFormChainedVisibilityJson);
|
||||||
|
|
||||||
|
it('Should be able to validate correctly the visibility for the text field for complex expressions', () => {
|
||||||
|
const instalmentField = fakeFormWithVariables.getFieldById('installments');
|
||||||
|
const scheduleField = fakeFormWithVariables.getFieldById('schedule');
|
||||||
|
|
||||||
|
instalmentField.value = '6';
|
||||||
|
scheduleField.value = scheduleField.options[1].id;
|
||||||
|
|
||||||
|
service.refreshVisibility(fakeFormWithVariables);
|
||||||
|
|
||||||
|
let textField = fakeFormWithVariables.getFieldById('showtext');
|
||||||
|
|
||||||
|
expect(textField.isVisible).toBe(true);
|
||||||
|
|
||||||
|
instalmentField.value = '5';
|
||||||
|
scheduleField.value = scheduleField.options[1].id;
|
||||||
|
|
||||||
|
service.refreshVisibility(fakeFormWithVariables);
|
||||||
|
|
||||||
|
textField = fakeFormWithVariables.getFieldById('showtext');
|
||||||
|
|
||||||
|
expect(textField.isVisible).toBe(false);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Visibility calculation in checkbox forms', () => {
|
||||||
|
|
||||||
|
const fakeFormWithValues = new FormModel(fakeFormCheckBoxVisibilityJson);
|
||||||
|
|
||||||
|
it('Should be able to validate correctly the visibility for the checkbox expression', () => {
|
||||||
|
const fieldA = fakeFormWithValues.getFieldById('a');
|
||||||
|
const fieldB = fakeFormWithValues.getFieldById('b');
|
||||||
|
const fieldC = fakeFormWithValues.getFieldById('c');
|
||||||
|
const fieldD = fakeFormWithValues.getFieldById('d');
|
||||||
|
fieldA.value = true;
|
||||||
|
fieldB.value = true;
|
||||||
|
fieldC.value = false;
|
||||||
|
fieldD.value = false;
|
||||||
|
|
||||||
|
service.refreshVisibility(fakeFormWithValues);
|
||||||
|
const textField = fakeFormWithValues.getFieldById('a_b_c_d');
|
||||||
|
|
||||||
|
expect(textField.isVisible).toBe(true);
|
||||||
|
|
||||||
|
fieldB.value = false;
|
||||||
|
|
||||||
|
service.refreshVisibility(fakeFormWithValues);
|
||||||
|
expect(textField.isVisible).toBe(false);
|
||||||
|
|
||||||
|
fieldA.value = false;
|
||||||
|
fieldC.value = true;
|
||||||
|
fieldD.value = true;
|
||||||
|
|
||||||
|
service.refreshVisibility(fakeFormWithValues);
|
||||||
|
expect(textField.isVisible).toBe(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@@ -84,28 +84,38 @@ export class WidgetVisibilityService {
|
|||||||
const rightValue = this.getRightValue(form, visibilityObj);
|
const rightValue = this.getRightValue(form, visibilityObj);
|
||||||
const actualResult = this.evaluateCondition(leftValue, rightValue, visibilityObj.operator);
|
const actualResult = this.evaluateCondition(leftValue, rightValue, visibilityObj.operator);
|
||||||
|
|
||||||
if (this.isValidOperator(visibilityObj.nextConditionOperator)) {
|
|
||||||
accumulator.push({ value: actualResult, operator: visibilityObj.nextConditionOperator });
|
accumulator.push({ value: actualResult, operator: visibilityObj.nextConditionOperator });
|
||||||
}
|
|
||||||
|
|
||||||
if (this.isValidCondition(visibilityObj.nextCondition)) {
|
if (this.isValidCondition(visibilityObj.nextCondition)) {
|
||||||
result = this.isFieldVisible(form, visibilityObj.nextCondition, accumulator);
|
result = this.isFieldVisible(form, visibilityObj.nextCondition, accumulator);
|
||||||
} else if (accumulator[0] !== undefined) {
|
} else if (accumulator[0] !== undefined) {
|
||||||
result = accumulator[0].value;
|
result = Function('"use strict";return (' +
|
||||||
for (let i = 1; i < accumulator.length; i++) {
|
accumulator.map((expression) => this.transformToLiteralExpression(expression)).join('') +
|
||||||
if (accumulator[i] !== undefined) {
|
')')();
|
||||||
result = this.evaluateLogicalOperation(
|
|
||||||
accumulator[i - 1].operator,
|
|
||||||
result,
|
|
||||||
accumulator[i].value
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
result = actualResult;
|
result = actualResult;
|
||||||
}
|
}
|
||||||
return !!result;
|
return !!result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private transformToLiteralExpression(currentExpression: any): string {
|
||||||
|
const currentTransformedValue = !!currentExpression.value ? 'true' : 'false';
|
||||||
|
return currentTransformedValue.concat(this.transformToLiteralOperator(currentExpression.operator));
|
||||||
|
}
|
||||||
|
|
||||||
|
private transformToLiteralOperator(currentOperator): string {
|
||||||
|
switch (currentOperator) {
|
||||||
|
case 'and':
|
||||||
|
return '&&';
|
||||||
|
case 'or' :
|
||||||
|
return '||';
|
||||||
|
case 'and-not':
|
||||||
|
return '&& !';
|
||||||
|
case 'or-not':
|
||||||
|
return '|| !';
|
||||||
|
default:
|
||||||
|
return '';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
getLeftValue(form: FormModel, visibilityObj: WidgetVisibilityModel): string {
|
getLeftValue(form: FormModel, visibilityObj: WidgetVisibilityModel): string {
|
||||||
@@ -280,22 +290,6 @@ export class WidgetVisibilityService {
|
|||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
evaluateLogicalOperation(logicOp: string, previousValue: any, newValue: any): boolean | undefined {
|
|
||||||
switch (logicOp) {
|
|
||||||
case 'and':
|
|
||||||
return previousValue && newValue;
|
|
||||||
case 'or' :
|
|
||||||
return previousValue || newValue;
|
|
||||||
case 'and-not':
|
|
||||||
return previousValue && !newValue;
|
|
||||||
case 'or-not':
|
|
||||||
return previousValue || !newValue;
|
|
||||||
default:
|
|
||||||
this.logService.error(`Invalid operator: ${logicOp}`);
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
evaluateCondition(leftValue: any, rightValue: any, operator: string): boolean | undefined {
|
evaluateCondition(leftValue: any, rightValue: any, operator: string): boolean | undefined {
|
||||||
switch (operator) {
|
switch (operator) {
|
||||||
case '==':
|
case '==':
|
||||||
@@ -340,10 +334,6 @@ export class WidgetVisibilityService {
|
|||||||
return res || {};
|
return res || {};
|
||||||
}
|
}
|
||||||
|
|
||||||
private isValidOperator(operator: string): boolean {
|
|
||||||
return operator !== undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
private isValidCondition(condition: WidgetVisibilityModel): boolean {
|
private isValidCondition(condition: WidgetVisibilityModel): boolean {
|
||||||
return !!(condition && condition.operator);
|
return !!(condition && condition.operator);
|
||||||
}
|
}
|
||||||
|
@@ -116,6 +116,700 @@ export const fakeFormJson: any = {
|
|||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const fakeFormCheckBoxVisibilityJson: any = {
|
||||||
|
referenceId: '33033',
|
||||||
|
name: 'test_condition_form',
|
||||||
|
description: '',
|
||||||
|
tabs: [],
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
fieldType: 'ContainerRepresentation',
|
||||||
|
id: '1623514352532',
|
||||||
|
name: 'Label',
|
||||||
|
type: 'container',
|
||||||
|
value: 'null',
|
||||||
|
required: 'false',
|
||||||
|
readOnly: 'false',
|
||||||
|
overrideId: 'false',
|
||||||
|
colspan: '1',
|
||||||
|
placeholder: 'null',
|
||||||
|
minLength: '0',
|
||||||
|
maxLength: '0',
|
||||||
|
minValue: 'null',
|
||||||
|
maxValue: 'null',
|
||||||
|
regexPattern: 'null',
|
||||||
|
optionType: 'null',
|
||||||
|
hasEmptyValue: 'null',
|
||||||
|
options: 'null',
|
||||||
|
restUrl: 'null',
|
||||||
|
restResponsePath: 'null',
|
||||||
|
restIdProperty: 'null',
|
||||||
|
restLabelProperty: 'null',
|
||||||
|
tab: 'null',
|
||||||
|
className: 'null',
|
||||||
|
dateDisplayFormat: 'null',
|
||||||
|
layout: 'null',
|
||||||
|
sizeX: '2',
|
||||||
|
sizeY: '1',
|
||||||
|
row: '-1',
|
||||||
|
col: '-1',
|
||||||
|
visibilityCondition: 'null',
|
||||||
|
numberOfColumns: '2',
|
||||||
|
fields: {
|
||||||
|
1: [
|
||||||
|
{
|
||||||
|
fieldType: 'FormFieldRepresentation',
|
||||||
|
id: 'a',
|
||||||
|
name: 'A',
|
||||||
|
type: 'boolean',
|
||||||
|
value: 'null',
|
||||||
|
required: 'false',
|
||||||
|
readOnly: 'false',
|
||||||
|
overrideId: 'false',
|
||||||
|
colspan: '1',
|
||||||
|
placeholder: 'null',
|
||||||
|
minLength: '0',
|
||||||
|
maxLength: '0',
|
||||||
|
minValue: 'null',
|
||||||
|
maxValue: 'null',
|
||||||
|
regexPattern: 'null',
|
||||||
|
optionType: 'null',
|
||||||
|
hasEmptyValue: 'null',
|
||||||
|
options: 'null',
|
||||||
|
restUrl: 'null',
|
||||||
|
restResponsePath: 'null',
|
||||||
|
restIdProperty: 'null',
|
||||||
|
restLabelProperty: 'null',
|
||||||
|
tab: 'null',
|
||||||
|
className: 'null',
|
||||||
|
params: {
|
||||||
|
existingColspan: '1',
|
||||||
|
maxColspan: '2'
|
||||||
|
},
|
||||||
|
dateDisplayFormat: 'null',
|
||||||
|
layout: {
|
||||||
|
row: '-1',
|
||||||
|
column: '-1',
|
||||||
|
colspan: '1'
|
||||||
|
},
|
||||||
|
sizeX: '1',
|
||||||
|
sizeY: '1',
|
||||||
|
row: '-1',
|
||||||
|
col: '-1',
|
||||||
|
visibilityCondition: 'null'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
2: [
|
||||||
|
{
|
||||||
|
fieldType: 'FormFieldRepresentation',
|
||||||
|
id: 'b',
|
||||||
|
name: 'B',
|
||||||
|
type: 'boolean',
|
||||||
|
value: 'null',
|
||||||
|
required: 'false',
|
||||||
|
readOnly: 'false',
|
||||||
|
overrideId: 'false',
|
||||||
|
colspan: '1',
|
||||||
|
placeholder: 'null',
|
||||||
|
minLength: '0',
|
||||||
|
maxLength: '0',
|
||||||
|
minValue: 'null',
|
||||||
|
maxValue: 'null',
|
||||||
|
regexPattern: 'null',
|
||||||
|
optionType: 'null',
|
||||||
|
hasEmptyValue: 'null',
|
||||||
|
options: 'null',
|
||||||
|
restUrl: 'null',
|
||||||
|
restResponsePath: 'null',
|
||||||
|
restIdProperty: 'null',
|
||||||
|
restLabelProperty: 'null',
|
||||||
|
tab: 'null',
|
||||||
|
className: 'null',
|
||||||
|
params: {
|
||||||
|
existingColspan: '1',
|
||||||
|
maxColspan: '1'
|
||||||
|
},
|
||||||
|
dateDisplayFormat: 'null',
|
||||||
|
layout: {
|
||||||
|
row: '-1',
|
||||||
|
column: '-1',
|
||||||
|
colspan: '1'
|
||||||
|
},
|
||||||
|
sizeX: '1',
|
||||||
|
sizeY: '1',
|
||||||
|
row: '-1',
|
||||||
|
col: '-1',
|
||||||
|
visibilityCondition: 'null'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fieldType: 'ContainerRepresentation',
|
||||||
|
id: '1623514356352',
|
||||||
|
name: 'Label',
|
||||||
|
type: 'container',
|
||||||
|
value: 'null',
|
||||||
|
required: 'false',
|
||||||
|
readOnly: 'false',
|
||||||
|
overrideId: 'false',
|
||||||
|
colspan: '1',
|
||||||
|
placeholder: 'null',
|
||||||
|
minLength: '0',
|
||||||
|
maxLength: '0',
|
||||||
|
minValue: 'null',
|
||||||
|
maxValue: 'null',
|
||||||
|
regexPattern: 'null',
|
||||||
|
optionType: 'null',
|
||||||
|
hasEmptyValue: 'null',
|
||||||
|
options: 'null',
|
||||||
|
restUrl: 'null',
|
||||||
|
restResponsePath: 'null',
|
||||||
|
restIdProperty: 'null',
|
||||||
|
restLabelProperty: 'null',
|
||||||
|
tab: 'null',
|
||||||
|
className: 'null',
|
||||||
|
dateDisplayFormat: 'null',
|
||||||
|
layout: 'null',
|
||||||
|
sizeX: '2',
|
||||||
|
sizeY: '1',
|
||||||
|
row: '-1',
|
||||||
|
col: '-1',
|
||||||
|
visibilityCondition: 'null',
|
||||||
|
numberOfColumns: '2',
|
||||||
|
fields: {
|
||||||
|
1: [
|
||||||
|
{
|
||||||
|
fieldType: 'FormFieldRepresentation',
|
||||||
|
id: 'c',
|
||||||
|
name: 'C',
|
||||||
|
type: 'boolean',
|
||||||
|
value: 'null',
|
||||||
|
required: 'false',
|
||||||
|
readOnly: 'false',
|
||||||
|
overrideId: 'false',
|
||||||
|
colspan: '1',
|
||||||
|
placeholder: 'null',
|
||||||
|
minLength: '0',
|
||||||
|
maxLength: '0',
|
||||||
|
minValue: 'null',
|
||||||
|
maxValue: 'null',
|
||||||
|
regexPattern: 'null',
|
||||||
|
optionType: 'null',
|
||||||
|
hasEmptyValue: 'null',
|
||||||
|
options: 'null',
|
||||||
|
restUrl: 'null',
|
||||||
|
restResponsePath: 'null',
|
||||||
|
restIdProperty: 'null',
|
||||||
|
restLabelProperty: 'null',
|
||||||
|
tab: 'null',
|
||||||
|
className: 'null',
|
||||||
|
params: {
|
||||||
|
existingColspan: '1',
|
||||||
|
maxColspan: '2'
|
||||||
|
},
|
||||||
|
dateDisplayFormat: 'null',
|
||||||
|
layout: {
|
||||||
|
row: '-1',
|
||||||
|
column: '-1',
|
||||||
|
colspan: '1'
|
||||||
|
},
|
||||||
|
sizeX: '1',
|
||||||
|
sizeY: '1',
|
||||||
|
row: '-1',
|
||||||
|
col: '-1',
|
||||||
|
visibilityCondition: 'null'
|
||||||
|
}],
|
||||||
|
2: [
|
||||||
|
{
|
||||||
|
fieldType: 'FormFieldRepresentation',
|
||||||
|
id: 'd',
|
||||||
|
name: 'D',
|
||||||
|
type: 'boolean',
|
||||||
|
value: 'null',
|
||||||
|
required: 'false',
|
||||||
|
readOnly: 'false',
|
||||||
|
overrideId: 'false',
|
||||||
|
colspan: '1',
|
||||||
|
placeholder: 'null',
|
||||||
|
minLength: '0',
|
||||||
|
maxLength: '0',
|
||||||
|
minValue: 'null',
|
||||||
|
maxValue: 'null',
|
||||||
|
regexPattern: 'null',
|
||||||
|
optionType: 'null',
|
||||||
|
hasEmptyValue: 'null',
|
||||||
|
options: 'null',
|
||||||
|
restUrl: 'null',
|
||||||
|
restResponsePath: 'null',
|
||||||
|
restIdProperty: 'null',
|
||||||
|
restLabelProperty: 'null',
|
||||||
|
tab: 'null',
|
||||||
|
className: 'null',
|
||||||
|
params: {
|
||||||
|
existingColspan: '1',
|
||||||
|
maxColspan: '1'
|
||||||
|
},
|
||||||
|
dateDisplayFormat: 'null',
|
||||||
|
layout: {
|
||||||
|
row: '-1',
|
||||||
|
column: '-1',
|
||||||
|
colspan: '1'
|
||||||
|
},
|
||||||
|
sizeX: '1',
|
||||||
|
sizeY: '1',
|
||||||
|
row: '-1',
|
||||||
|
col: '-1',
|
||||||
|
visibilityCondition: 'null'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fieldType: 'ContainerRepresentation',
|
||||||
|
id: '1623514409166',
|
||||||
|
name: 'Label',
|
||||||
|
type: 'container',
|
||||||
|
value: 'null',
|
||||||
|
required: 'false',
|
||||||
|
readOnly: 'false',
|
||||||
|
overrideId: 'false',
|
||||||
|
colspan: '1',
|
||||||
|
placeholder: 'null',
|
||||||
|
minLength: '0',
|
||||||
|
maxLength: '0',
|
||||||
|
minValue: 'null',
|
||||||
|
maxValue: 'null',
|
||||||
|
regexPattern: 'null',
|
||||||
|
optionType: 'null',
|
||||||
|
hasEmptyValue: 'null',
|
||||||
|
options: 'null',
|
||||||
|
restUrl: 'null',
|
||||||
|
restResponsePath: 'null',
|
||||||
|
restIdProperty: 'null',
|
||||||
|
restLabelProperty: 'null',
|
||||||
|
tab: 'null',
|
||||||
|
className: 'null',
|
||||||
|
dateDisplayFormat: 'null',
|
||||||
|
layout: 'null',
|
||||||
|
sizeX: '2',
|
||||||
|
sizeY: '1',
|
||||||
|
row: '-1',
|
||||||
|
col: '-1',
|
||||||
|
visibilityCondition: 'null',
|
||||||
|
numberOfColumns: '2',
|
||||||
|
fields: {
|
||||||
|
1: [
|
||||||
|
{
|
||||||
|
fieldType: 'FormFieldRepresentation',
|
||||||
|
id: 'a_b_c_d',
|
||||||
|
name: 'Textfield ( A && B || C && D)',
|
||||||
|
type: 'text',
|
||||||
|
value: 'null',
|
||||||
|
required: 'false',
|
||||||
|
readOnly: 'false',
|
||||||
|
overrideId: 'true',
|
||||||
|
colspan: '1',
|
||||||
|
placeholder: 'null',
|
||||||
|
minLength: '0',
|
||||||
|
maxLength: '0',
|
||||||
|
minValue: 'null',
|
||||||
|
maxValue: 'null',
|
||||||
|
regexPattern: 'null',
|
||||||
|
optionType: 'null',
|
||||||
|
hasEmptyValue: 'null',
|
||||||
|
options: 'null',
|
||||||
|
restUrl: 'null',
|
||||||
|
restResponsePath: 'null',
|
||||||
|
restIdProperty: 'null',
|
||||||
|
restLabelProperty: 'null',
|
||||||
|
tab: 'null',
|
||||||
|
className: 'null',
|
||||||
|
params: {
|
||||||
|
existingColspan: '1',
|
||||||
|
maxColspan: '2'
|
||||||
|
},
|
||||||
|
dateDisplayFormat: 'null',
|
||||||
|
layout: {
|
||||||
|
row: '-1',
|
||||||
|
column: '-1',
|
||||||
|
colspan: '1'
|
||||||
|
},
|
||||||
|
sizeX: '1',
|
||||||
|
sizeY: '1',
|
||||||
|
row: '-1',
|
||||||
|
col: '-1',
|
||||||
|
visibilityCondition: {
|
||||||
|
leftFormFieldId: 'a',
|
||||||
|
leftRestResponseId: 'null',
|
||||||
|
operator: '==',
|
||||||
|
rightValue: 'true',
|
||||||
|
rightType: 'null',
|
||||||
|
rightFormFieldId: '',
|
||||||
|
rightRestResponseId: '',
|
||||||
|
nextConditionOperator: 'and',
|
||||||
|
nextCondition: {
|
||||||
|
leftFormFieldId: 'b',
|
||||||
|
leftRestResponseId: 'null',
|
||||||
|
operator: '==',
|
||||||
|
rightValue: 'true',
|
||||||
|
rightType: 'null',
|
||||||
|
rightFormFieldId: '',
|
||||||
|
rightRestResponseId: '',
|
||||||
|
nextConditionOperator: 'or',
|
||||||
|
nextCondition: {
|
||||||
|
leftFormFieldId: 'c',
|
||||||
|
leftRestResponseId: 'null',
|
||||||
|
operator: '==',
|
||||||
|
rightValue: 'true',
|
||||||
|
rightType: 'null',
|
||||||
|
rightFormFieldId: '',
|
||||||
|
rightRestResponseId: '',
|
||||||
|
nextConditionOperator: 'and',
|
||||||
|
nextCondition: {
|
||||||
|
leftFormFieldId: 'd',
|
||||||
|
leftRestResponseId: 'null',
|
||||||
|
operator: '==',
|
||||||
|
rightValue: 'true',
|
||||||
|
rightType: 'null',
|
||||||
|
rightFormFieldId: '',
|
||||||
|
rightRestResponseId: '',
|
||||||
|
nextConditionOperator: '',
|
||||||
|
nextCondition: 'null'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
2: []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
outcomes: [],
|
||||||
|
javascriptEvents: [],
|
||||||
|
className: '',
|
||||||
|
style: '',
|
||||||
|
customFieldTemplates: {},
|
||||||
|
metadata: {},
|
||||||
|
variables: [],
|
||||||
|
customFieldsValueInfo: {},
|
||||||
|
gridsterForm: 'false'
|
||||||
|
};
|
||||||
|
|
||||||
|
export const fakeFormChainedVisibilityJson: any = {
|
||||||
|
id: '8800',
|
||||||
|
name: 'FORM_VISIBILITYl_CHAIN',
|
||||||
|
processDefinitionId: 'PROCESS_TEST: 9: 9999',
|
||||||
|
processDefinitionName: 'PROCESS_TEST',
|
||||||
|
processDefinitionKey: 'PROCESS_TEST',
|
||||||
|
taskId: '999',
|
||||||
|
taskName: 'TEST',
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
fieldType: 'ContainerRepresentation',
|
||||||
|
id: '1615506402205',
|
||||||
|
name: 'Label',
|
||||||
|
type: 'container',
|
||||||
|
value: null,
|
||||||
|
required: false,
|
||||||
|
readOnly: false,
|
||||||
|
overrideId: false,
|
||||||
|
colspan: 1,
|
||||||
|
placeholder: null,
|
||||||
|
minLength: 0,
|
||||||
|
maxLength: 0,
|
||||||
|
minValue: null,
|
||||||
|
maxValue: null,
|
||||||
|
regexPattern: null,
|
||||||
|
optionType: null,
|
||||||
|
hasEmptyValue: null,
|
||||||
|
options: null,
|
||||||
|
restUrl: null,
|
||||||
|
restResponsePath: null,
|
||||||
|
restIdProperty: null,
|
||||||
|
restLabelProperty: null,
|
||||||
|
tab: null,
|
||||||
|
className: null,
|
||||||
|
dateDisplayFormat: null,
|
||||||
|
layout: null,
|
||||||
|
sizeX: 2,
|
||||||
|
sizeY: 1,
|
||||||
|
row: -1,
|
||||||
|
col: -1,
|
||||||
|
visibilityCondition: null,
|
||||||
|
numberOfColumns: 2,
|
||||||
|
fields: {
|
||||||
|
1: [
|
||||||
|
{
|
||||||
|
fieldType: 'FormFieldRepresentation',
|
||||||
|
id: 'installments',
|
||||||
|
name: 'Installments',
|
||||||
|
type: 'integer',
|
||||||
|
value: null,
|
||||||
|
required: true,
|
||||||
|
readOnly: false,
|
||||||
|
overrideId: false,
|
||||||
|
colspan: 1,
|
||||||
|
placeholder: null,
|
||||||
|
minLength: 0,
|
||||||
|
maxLength: 0,
|
||||||
|
minValue: null,
|
||||||
|
maxValue: null,
|
||||||
|
regexPattern: null,
|
||||||
|
optionType: null,
|
||||||
|
hasEmptyValue: null,
|
||||||
|
options: null,
|
||||||
|
restUrl: null,
|
||||||
|
restResponsePath: null,
|
||||||
|
restIdProperty: null,
|
||||||
|
restLabelProperty: null,
|
||||||
|
tab: null,
|
||||||
|
className: null,
|
||||||
|
params: {
|
||||||
|
existingColspan: 1,
|
||||||
|
maxColspan: 2
|
||||||
|
},
|
||||||
|
dateDisplayFormat: null,
|
||||||
|
layout: {
|
||||||
|
row: -1,
|
||||||
|
column: -1,
|
||||||
|
colspan: 1
|
||||||
|
},
|
||||||
|
sizeX: 1,
|
||||||
|
sizeY: 1,
|
||||||
|
row: -1,
|
||||||
|
col: -1,
|
||||||
|
visibilityCondition: null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
2: [
|
||||||
|
{
|
||||||
|
fieldType: 'RestFieldRepresentation',
|
||||||
|
id: 'schedule',
|
||||||
|
name: 'Schedule',
|
||||||
|
type: 'dropdown',
|
||||||
|
value: 'Choose one...',
|
||||||
|
required: false,
|
||||||
|
readOnly: false,
|
||||||
|
overrideId: false,
|
||||||
|
colspan: 1,
|
||||||
|
placeholder: null,
|
||||||
|
minLength: 0,
|
||||||
|
maxLength: 0,
|
||||||
|
minValue: null,
|
||||||
|
maxValue: null,
|
||||||
|
regexPattern: null,
|
||||||
|
optionType: null,
|
||||||
|
hasEmptyValue: true,
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
id: 'empty',
|
||||||
|
name: 'Choose one...'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ANNUAL',
|
||||||
|
name: 'Annual'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'QUARTERLY',
|
||||||
|
name: 'Quarterly'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'MONTHLY',
|
||||||
|
name: 'Monthly'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
restUrl: null,
|
||||||
|
restResponsePath: null,
|
||||||
|
restIdProperty: null,
|
||||||
|
restLabelProperty: null,
|
||||||
|
tab: null,
|
||||||
|
className: null,
|
||||||
|
params: {
|
||||||
|
existingColspan: 1,
|
||||||
|
maxColspan: 1
|
||||||
|
},
|
||||||
|
dateDisplayFormat: null,
|
||||||
|
layout: {
|
||||||
|
row: -1,
|
||||||
|
column: -1,
|
||||||
|
colspan: 1
|
||||||
|
},
|
||||||
|
sizeX: 1,
|
||||||
|
sizeY: 1,
|
||||||
|
row: -1,
|
||||||
|
col: -1,
|
||||||
|
visibilityCondition: null,
|
||||||
|
endpoint: null,
|
||||||
|
requestHeaders: null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fieldType: 'ContainerRepresentation',
|
||||||
|
id: 1615506384790,
|
||||||
|
name: 'Label',
|
||||||
|
type: 'container',
|
||||||
|
value: null,
|
||||||
|
required: false,
|
||||||
|
readOnly: false,
|
||||||
|
overrideId: false,
|
||||||
|
colspan: 1,
|
||||||
|
placeholder: null,
|
||||||
|
minLength: 0,
|
||||||
|
maxLength: 0,
|
||||||
|
minValue: null,
|
||||||
|
maxValue: null,
|
||||||
|
regexPattern: null,
|
||||||
|
optionType: null,
|
||||||
|
hasEmptyValue: null,
|
||||||
|
options: null,
|
||||||
|
restUrl: null,
|
||||||
|
restResponsePath: null,
|
||||||
|
restIdProperty: null,
|
||||||
|
restLabelProperty: null,
|
||||||
|
tab: null,
|
||||||
|
className: null,
|
||||||
|
dateDisplayFormat: null,
|
||||||
|
layout: null,
|
||||||
|
sizeX: 2,
|
||||||
|
sizeY: 1,
|
||||||
|
row: -1,
|
||||||
|
col: -1,
|
||||||
|
visibilityCondition: null,
|
||||||
|
numberOfColumns: 2,
|
||||||
|
fields: {
|
||||||
|
1: [
|
||||||
|
{
|
||||||
|
fieldType: 'FormFieldRepresentation',
|
||||||
|
id: 'showtext',
|
||||||
|
name: 'Show text',
|
||||||
|
type: 'readonly-text',
|
||||||
|
value: 'This test is shown when the visibility logic is displayed.\nThis should only show under the following conditions:\nAnnual and installment > 5\nQuarterly and installment > 20\nMonthly and installment > 60',
|
||||||
|
required: false,
|
||||||
|
readOnly: false,
|
||||||
|
overrideId: false,
|
||||||
|
colspan: 1,
|
||||||
|
placeholder: null,
|
||||||
|
minLength: 0,
|
||||||
|
maxLength: 0,
|
||||||
|
minValue: null,
|
||||||
|
maxValue: null,
|
||||||
|
regexPattern: null,
|
||||||
|
optionType: null,
|
||||||
|
hasEmptyValue: null,
|
||||||
|
options: null,
|
||||||
|
restUrl: null,
|
||||||
|
restResponsePath: null,
|
||||||
|
restIdProperty: null,
|
||||||
|
restLabelProperty: null,
|
||||||
|
tab: null,
|
||||||
|
className: null,
|
||||||
|
params: {
|
||||||
|
existingColspan: 1,
|
||||||
|
maxColspan: 2
|
||||||
|
},
|
||||||
|
dateDisplayFormat: null,
|
||||||
|
layout: {
|
||||||
|
row: -1,
|
||||||
|
column: -1,
|
||||||
|
colspan: 1
|
||||||
|
},
|
||||||
|
sizeX: 1,
|
||||||
|
sizeY: 1,
|
||||||
|
row: -1,
|
||||||
|
col: -1,
|
||||||
|
visibilityCondition: {
|
||||||
|
leftFormFieldId: 'schedule',
|
||||||
|
leftRestResponseId: null,
|
||||||
|
operator: '==',
|
||||||
|
rightValue: 'ANNUAL',
|
||||||
|
rightType: null,
|
||||||
|
rightFormFieldId: '',
|
||||||
|
rightRestResponseId: '',
|
||||||
|
nextConditionOperator: 'and',
|
||||||
|
nextCondition: {
|
||||||
|
leftFormFieldId: 'installments',
|
||||||
|
leftRestResponseId: null,
|
||||||
|
operator: '>',
|
||||||
|
rightValue: 5,
|
||||||
|
rightType: null,
|
||||||
|
rightFormFieldId: '',
|
||||||
|
rightRestResponseId: '',
|
||||||
|
nextConditionOperator: 'or',
|
||||||
|
nextCondition: {
|
||||||
|
leftFormFieldId: 'schedule',
|
||||||
|
leftRestResponseId: null,
|
||||||
|
operator: '==',
|
||||||
|
rightValue: 'QUARTERLY',
|
||||||
|
rightType: null,
|
||||||
|
rightFormFieldId: '',
|
||||||
|
rightRestResponseId: '',
|
||||||
|
nextConditionOperator: 'and',
|
||||||
|
nextCondition: {
|
||||||
|
leftFormFieldId: 'installments',
|
||||||
|
leftRestResponseId: null,
|
||||||
|
operator: '>',
|
||||||
|
rightValue: 20,
|
||||||
|
rightType: null,
|
||||||
|
rightFormFieldId: '',
|
||||||
|
rightRestResponseId: '',
|
||||||
|
nextConditionOperator: 'or',
|
||||||
|
nextCondition: {
|
||||||
|
leftFormFieldId: 'schedule',
|
||||||
|
leftRestResponseId: null,
|
||||||
|
operator: '==',
|
||||||
|
rightValue: 'MONTHLY',
|
||||||
|
rightType: null,
|
||||||
|
rightFormFieldId: '',
|
||||||
|
rightRestResponseId: '',
|
||||||
|
nextConditionOperator: 'and',
|
||||||
|
nextCondition: {
|
||||||
|
leftFormFieldId: 'installments',
|
||||||
|
leftRestResponseId: null,
|
||||||
|
operator: '>',
|
||||||
|
rightValue: 60,
|
||||||
|
rightType: null,
|
||||||
|
rightFormFieldId: '',
|
||||||
|
rightRestResponseId: '',
|
||||||
|
nextConditionOperator: '',
|
||||||
|
nextCondition: null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
2: []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
variables: [
|
||||||
|
{
|
||||||
|
'id': 'e621e8ff-42a6-499c-8121-33c7c35d8641',
|
||||||
|
'name': 'age',
|
||||||
|
'type': 'integer',
|
||||||
|
'value': 11
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': '4f8aa99e-8526-429c-9d99-809978489d96',
|
||||||
|
'name': 'name',
|
||||||
|
'type': 'string',
|
||||||
|
'value': 'abc'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': '0207b649-ff07-4f3a-a589-d10afa507b9b',
|
||||||
|
'name': 'dob',
|
||||||
|
'type': 'date',
|
||||||
|
'value': '2019-05-13'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
export const complexVisibilityJsonVisible: any = {
|
export const complexVisibilityJsonVisible: any = {
|
||||||
'id': 47591,
|
'id': 47591,
|
||||||
'name': 'Test-visibility',
|
'name': 'Test-visibility',
|
||||||
|
Reference in New Issue
Block a user