PromucFlow_constructor/app/client/src/utils/DSLMigrationsUtils.test.ts

1171 lines
56 KiB
TypeScript
Raw Normal View History

import { transformDSL } from "./DSLMigrations";
import { LATEST_PAGE_VERSION, RenderModes } from "constants/WidgetConstants";
import { ContainerWidgetProps } from "widgets/ContainerWidget/widget";
import { WidgetProps } from "widgets/BaseWidget";
describe("correctly migrate dsl", () => {
it("AddsPrivateWidgetsToAllListWidgets", () => {
const currentVersion = 49;
const nextVersion = LATEST_PAGE_VERSION;
const currentDSL: ContainerWidgetProps<WidgetProps> = {
backgroundColor: "none",
bottomRow: 740,
canExtend: true,
children: [
{
widgetName: "Input1",
displayName: "Input",
iconSVG: "/static/media/icon.9f505595.svg",
topRow: 18,
bottomRow: 22,
parentRowSpace: 10,
autoFocus: false,
type: "INPUT_WIDGET",
hideCard: false,
animateLoading: true,
parentColumnSpace: 15.0625,
dynamicTriggerPathList: [],
resetOnSubmit: true,
leftColumn: 23,
dynamicBindingPathList: [],
labelStyle: "",
inputType: "TEXT",
isDisabled: false,
key: "ftefjorusw",
isRequired: false,
rightColumn: 43,
widgetId: "lz9hvhcltl",
isVisible: true,
label: "",
allowCurrencyChange: false,
version: 1,
parentId: "0",
renderMode: "CANVAS",
isLoading: false,
iconAlign: "left",
defaultText: "",
},
{
widgetName: "Button1",
onClick:
'{{Api1.run(()=>{\ndownload((\nfunction(){\nreturn "data:image/jpeg;base64,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
buttonColor: "#03B365",
dynamicPropertyPathList: [
{
key: "onClick",
},
],
displayName: "Button",
iconSVG: "/static/media/icon.cca02633.svg",
topRow: 29,
bottomRow: 33,
tooltip: "",
parentRowSpace: 10,
type: "BUTTON_WIDGET",
hideCard: false,
animateLoading: true,
parentColumnSpace: 14.0625,
dynamicTriggerPathList: [
{
key: "onClick",
},
],
leftColumn: 20,
dynamicBindingPathList: [],
text: "Submit",
isDisabled: false,
key: "pg01cxraj1",
rightColumn: 36,
isDefaultClickDisabled: true,
widgetId: "d229q1ydul",
isVisible: true,
recaptchaType: "V3",
version: 1,
parentId: "0",
renderMode: "CANVAS",
isLoading: false,
buttonVariant: "PRIMARY",
placement: "CENTER",
},
{
widgetName: "Input2",
displayName: "Input",
iconSVG: "/static/media/icon.9f505595.svg",
topRow: 44,
bottomRow: 48,
parentRowSpace: 10,
autoFocus: false,
type: "INPUT_WIDGET",
hideCard: false,
animateLoading: true,
parentColumnSpace: 14.0625,
resetOnSubmit: true,
leftColumn: 9,
labelStyle: "",
inputType: "TEXT",
isDisabled: false,
key: "519sr07k1u",
isRequired: false,
rightColumn: 29,
widgetId: "eenq4c022d",
isVisible: true,
label: "",
allowCurrencyChange: false,
version: 1,
parentId: "0",
renderMode: "CANVAS",
isLoading: false,
iconAlign: "left",
defaultText: "",
},
{
version: 1,
template: {
Image1: {
isVisible: true,
defaultImage: "https://assets.appsmith.com/widgets/default.png",
imageShape: "RECTANGLE",
maxZoomLevel: 1,
enableRotation: false,
enableDownload: false,
objectFit: "contain",
image: "{{List1.listData.map((currentItem) => currentItem.img)}}",
widgetName: "Image1",
version: 1,
animateLoading: true,
type: "IMAGE_WIDGET",
hideCard: false,
displayName: "Image",
key: "9cn4ooadxj",
iconSVG: "/static/media/icon.52d8fb96.svg",
dynamicBindingPathList: [
{
key: "image",
},
],
dynamicTriggerPathList: [],
widgetId: "yqofym38tn",
renderMode: "CANVAS",
isLoading: false,
leftColumn: 0,
rightColumn: 16,
topRow: 0,
bottomRow: 8.4,
parentId: "vqn2okwc6a",
},
Text1: {
isVisible: true,
text: "{{List1.listData.map((currentItem) => currentItem.name)}}",
fontSize: "PARAGRAPH",
fontStyle: "BOLD",
textAlign: "LEFT",
textColor: "#231F20",
truncateButtonColor: "#FFC13D",
widgetName: "Text1",
shouldScroll: false,
shouldTruncate: false,
version: 1,
animateLoading: true,
type: "TEXT_WIDGET",
hideCard: false,
displayName: "Text",
key: "yd217bk315",
iconSVG: "/static/media/icon.97c59b52.svg",
textStyle: "HEADING",
dynamicBindingPathList: [
{
key: "text",
},
],
dynamicTriggerPathList: [],
widgetId: "zeqf6yfm3s",
renderMode: "CANVAS",
isLoading: false,
leftColumn: 16,
rightColumn: 28,
topRow: 0,
bottomRow: 4,
parentId: "vqn2okwc6a",
},
Text2: {
isVisible: true,
text: "{{List1.listData.map((currentItem) => currentItem.id)}}",
fontSize: "PARAGRAPH",
fontStyle: "BOLD",
textAlign: "LEFT",
textColor: "#231F20",
truncateButtonColor: "#FFC13D",
widgetName: "Text2",
shouldScroll: false,
shouldTruncate: false,
version: 1,
animateLoading: true,
type: "TEXT_WIDGET",
hideCard: false,
displayName: "Text",
key: "yd217bk315",
iconSVG: "/static/media/icon.97c59b52.svg",
textStyle: "BODY",
dynamicBindingPathList: [
{
key: "text",
},
],
dynamicTriggerPathList: [],
widgetId: "8wyekp2o6e",
renderMode: "CANVAS",
isLoading: false,
leftColumn: 16,
rightColumn: 24,
topRow: 4,
bottomRow: 8,
parentId: "vqn2okwc6a",
},
},
widgetName: "List1",
listData: [
{
id: "001",
name: "Blue",
img: "https://assets.appsmith.com/widgets/default.png",
},
{
id: "002",
name: "Green",
img: "https://assets.appsmith.com/widgets/default.png",
},
{
id: "003",
name: "Red",
img: "https://assets.appsmith.com/widgets/default.png",
},
],
isCanvas: true,
displayName: "List",
iconSVG: "/static/media/icon.9925ee17.svg",
topRow: 34,
bottomRow: 74,
parentRowSpace: 10,
type: "LIST_WIDGET",
hideCard: false,
gridGap: 0,
animateLoading: true,
parentColumnSpace: 14.0625,
leftColumn: 39,
dynamicBindingPathList: [
{
key: "template.Image1.image",
},
{
key: "template.Text1.text",
},
{
key: "template.Text2.text",
},
],
gridType: "vertical",
enhancements: true,
children: [
{
widgetName: "Canvas1",
displayName: "Canvas",
topRow: 0,
bottomRow: 400,
parentRowSpace: 1,
type: "CANVAS_WIDGET",
canExtend: false,
hideCard: true,
dropDisabled: true,
openParentPropertyPane: true,
minHeight: 400,
noPad: true,
parentColumnSpace: 1,
leftColumn: 0,
children: [
{
boxShadow: "NONE",
widgetName: "Container1",
borderColor: "transparent",
disallowCopy: true,
isCanvas: true,
displayName: "Container",
iconSVG: "/static/media/icon.1977dca3.svg",
topRow: 0,
bottomRow: 12,
dragDisabled: true,
type: "CONTAINER_WIDGET",
hideCard: false,
openParentPropertyPane: true,
isDeletable: false,
animateLoading: true,
leftColumn: 0,
children: [
{
widgetName: "Canvas2",
detachFromLayout: true,
displayName: "Canvas",
widgetId: "vqn2okwc6a",
containerStyle: "none",
topRow: 0,
parentRowSpace: 1,
isVisible: true,
type: "CANVAS_WIDGET",
canExtend: false,
version: 1,
hideCard: true,
parentId: "9e77epyavg",
renderMode: "CANVAS",
isLoading: false,
parentColumnSpace: 1,
leftColumn: 0,
children: [
{
widgetName: "Image1",
displayName: "Image",
iconSVG: "/static/media/icon.52d8fb96.svg",
topRow: 0,
bottomRow: 8.4,
type: "IMAGE_WIDGET",
hideCard: false,
animateLoading: true,
dynamicTriggerPathList: [],
imageShape: "RECTANGLE",
dynamicBindingPathList: [
{
key: "image",
},
],
leftColumn: 0,
defaultImage:
"https://assets.appsmith.com/widgets/default.png",
key: "9cn4ooadxj",
image: "{{currentItem.img}}",
rightColumn: 16,
objectFit: "contain",
widgetId: "yqofym38tn",
logBlackList: {
isVisible: true,
defaultImage: true,
imageShape: true,
maxZoomLevel: true,
enableRotation: true,
enableDownload: true,
objectFit: true,
image: true,
widgetName: true,
version: true,
animateLoading: true,
type: true,
hideCard: true,
displayName: true,
key: true,
iconSVG: true,
isCanvas: true,
dynamicBindingPathList: true,
dynamicTriggerPathList: true,
minHeight: true,
widgetId: true,
renderMode: true,
isLoading: true,
parentColumnSpace: true,
parentRowSpace: true,
leftColumn: true,
rightColumn: true,
topRow: true,
bottomRow: true,
parentId: true,
},
isVisible: true,
version: 1,
parentId: "vqn2okwc6a",
renderMode: "CANVAS",
isLoading: false,
maxZoomLevel: 1,
enableDownload: false,
enableRotation: false,
},
{
widgetName: "Text1",
displayName: "Text",
iconSVG: "/static/media/icon.97c59b52.svg",
topRow: 0,
bottomRow: 4,
type: "TEXT_WIDGET",
hideCard: false,
animateLoading: true,
dynamicTriggerPathList: [],
dynamicBindingPathList: [
{
key: "text",
},
],
leftColumn: 16,
shouldTruncate: false,
truncateButtonColor: "#FFC13D",
text: "{{currentItem.name}}",
key: "yd217bk315",
rightColumn: 28,
textAlign: "LEFT",
widgetId: "zeqf6yfm3s",
logBlackList: {
isVisible: true,
text: true,
fontSize: true,
fontStyle: true,
textAlign: true,
textColor: true,
truncateButtonColor: true,
widgetName: true,
shouldScroll: true,
shouldTruncate: true,
version: true,
animateLoading: true,
type: true,
hideCard: true,
displayName: true,
key: true,
iconSVG: true,
isCanvas: true,
textStyle: true,
dynamicBindingPathList: true,
dynamicTriggerPathList: true,
minHeight: true,
widgetId: true,
renderMode: true,
isLoading: true,
parentColumnSpace: true,
parentRowSpace: true,
leftColumn: true,
rightColumn: true,
topRow: true,
bottomRow: true,
parentId: true,
},
isVisible: true,
fontStyle: "BOLD",
textColor: "#231F20",
shouldScroll: false,
version: 1,
parentId: "vqn2okwc6a",
renderMode: "CANVAS",
isLoading: false,
fontSize: "PARAGRAPH",
textStyle: "HEADING",
},
{
widgetName: "Text2",
displayName: "Text",
iconSVG: "/static/media/icon.97c59b52.svg",
topRow: 4,
bottomRow: 8,
type: "TEXT_WIDGET",
hideCard: false,
animateLoading: true,
dynamicTriggerPathList: [],
dynamicBindingPathList: [
{
key: "text",
},
],
leftColumn: 16,
shouldTruncate: false,
truncateButtonColor: "#FFC13D",
text: "{{currentItem.id}}",
key: "yd217bk315",
rightColumn: 24,
textAlign: "LEFT",
widgetId: "8wyekp2o6e",
logBlackList: {
isVisible: true,
text: true,
fontSize: true,
fontStyle: true,
textAlign: true,
textColor: true,
truncateButtonColor: true,
widgetName: true,
shouldScroll: true,
shouldTruncate: true,
version: true,
animateLoading: true,
type: true,
hideCard: true,
displayName: true,
key: true,
iconSVG: true,
isCanvas: true,
textStyle: true,
dynamicBindingPathList: true,
dynamicTriggerPathList: true,
minHeight: true,
widgetId: true,
renderMode: true,
isLoading: true,
parentColumnSpace: true,
parentRowSpace: true,
leftColumn: true,
rightColumn: true,
topRow: true,
bottomRow: true,
parentId: true,
},
isVisible: true,
fontStyle: "BOLD",
textColor: "#231F20",
shouldScroll: false,
version: 1,
parentId: "vqn2okwc6a",
renderMode: "CANVAS",
isLoading: false,
fontSize: "PARAGRAPH",
textStyle: "BODY",
},
],
key: "omhgz5cakp",
},
],
borderWidth: "0",
key: "ca3a42k2a4",
disablePropertyPane: true,
backgroundColor: "white",
rightColumn: 64,
widgetId: "9e77epyavg",
containerStyle: "card",
isVisible: true,
version: 1,
parentId: "q3ype57cdo",
renderMode: "CANVAS",
isLoading: false,
borderRadius: "0",
},
],
key: "omhgz5cakp",
rightColumn: 337.5,
detachFromLayout: true,
widgetId: "q3ype57cdo",
containerStyle: "none",
isVisible: true,
version: 1,
parentId: "iupz1d99ka",
renderMode: "CANVAS",
isLoading: false,
},
],
key: "axex98spx3",
backgroundColor: "transparent",
rightColumn: 63,
itemBackgroundColor: "#FFFFFF",
widgetId: "iupz1d99ka",
isVisible: true,
parentId: "0",
renderMode: "CANVAS",
isLoading: false,
},
],
containerStyle: "none",
detachFromLayout: true,
dynamicBindingPathList: [],
dynamicTriggerPathList: [],
leftColumn: 0,
minHeight: 640,
parentColumnSpace: 1,
parentRowSpace: 1,
rightColumn: 912,
snapColumns: 64,
snapRows: 125,
topRow: 0,
type: "CANVAS_WIDGET",
version: currentVersion,
widgetId: "0",
widgetName: "MainContainer",
renderMode: "CANVAS",
isLoading: false,
};
const expectedNextDSL: ContainerWidgetProps<WidgetProps> = {
backgroundColor: "none",
bottomRow: 740,
canExtend: true,
version: nextVersion,
children: [
{
widgetName: "Input1",
displayName: "Input",
iconSVG: "/static/media/icon.9f505595.svg",
topRow: 18,
bottomRow: 22,
parentRowSpace: 10,
autoFocus: false,
type: "INPUT_WIDGET",
hideCard: false,
animateLoading: true,
parentColumnSpace: 15.0625,
dynamicTriggerPathList: [],
resetOnSubmit: true,
leftColumn: 23,
dynamicBindingPathList: [],
labelStyle: "",
inputType: "TEXT",
isDisabled: false,
key: "ftefjorusw",
isRequired: false,
rightColumn: 43,
widgetId: "lz9hvhcltl",
isVisible: true,
label: "",
allowCurrencyChange: false,
version: 1,
parentId: "0",
renderMode: "CANVAS",
isLoading: false,
iconAlign: "left",
defaultText: "",
},
{
widgetName: "Button1",
onClick:
'{{Api1.run(()=>{\ndownload((\nfunction(){\nreturn "data:image/jpeg;base64,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
buttonColor: "#03B365",
dynamicPropertyPathList: [
{
key: "onClick",
},
],
displayName: "Button",
iconSVG: "/static/media/icon.cca02633.svg",
topRow: 29,
bottomRow: 33,
tooltip: "",
parentRowSpace: 10,
type: "BUTTON_WIDGET",
hideCard: false,
animateLoading: true,
parentColumnSpace: 14.0625,
dynamicTriggerPathList: [
{
key: "onClick",
},
],
leftColumn: 20,
dynamicBindingPathList: [],
text: "Submit",
isDisabled: false,
key: "pg01cxraj1",
rightColumn: 36,
isDefaultClickDisabled: true,
widgetId: "d229q1ydul",
isVisible: true,
recaptchaType: "V3",
version: 1,
parentId: "0",
renderMode: "CANVAS",
isLoading: false,
buttonVariant: "PRIMARY",
placement: "CENTER",
},
{
widgetName: "Input2",
displayName: "Input",
iconSVG: "/static/media/icon.9f505595.svg",
topRow: 44,
bottomRow: 48,
parentRowSpace: 10,
autoFocus: false,
type: "INPUT_WIDGET",
hideCard: false,
animateLoading: true,
parentColumnSpace: 14.0625,
resetOnSubmit: true,
leftColumn: 9,
labelStyle: "",
inputType: "TEXT",
isDisabled: false,
key: "519sr07k1u",
isRequired: false,
rightColumn: 29,
widgetId: "eenq4c022d",
isVisible: true,
label: "",
allowCurrencyChange: false,
version: 1,
parentId: "0",
renderMode: "CANVAS",
isLoading: false,
iconAlign: "left",
defaultText: "",
},
{
widgetName: "List1",
template: {
Image1: {
isVisible: true,
defaultImage: "https://assets.appsmith.com/widgets/default.png",
imageShape: "RECTANGLE",
maxZoomLevel: 1,
enableRotation: false,
enableDownload: false,
objectFit: "contain",
image: "{{List1.listData.map((currentItem) => currentItem.img)}}",
widgetName: "Image1",
version: 1,
animateLoading: true,
type: "IMAGE_WIDGET",
hideCard: false,
displayName: "Image",
key: "9cn4ooadxj",
iconSVG: "/static/media/icon.52d8fb96.svg",
dynamicBindingPathList: [
{
key: "image",
},
],
dynamicTriggerPathList: [],
widgetId: "yqofym38tn",
renderMode: "CANVAS",
isLoading: false,
leftColumn: 0,
rightColumn: 16,
topRow: 0,
bottomRow: 8.4,
parentId: "vqn2okwc6a",
},
Text1: {
isVisible: true,
text: "{{List1.listData.map((currentItem) => currentItem.name)}}",
fontSize: "PARAGRAPH",
fontStyle: "BOLD",
textAlign: "LEFT",
textColor: "#231F20",
truncateButtonColor: "#FFC13D",
widgetName: "Text1",
shouldScroll: false,
shouldTruncate: false,
version: 1,
animateLoading: true,
type: "TEXT_WIDGET",
hideCard: false,
displayName: "Text",
key: "yd217bk315",
iconSVG: "/static/media/icon.97c59b52.svg",
textStyle: "HEADING",
dynamicBindingPathList: [
{
key: "text",
},
],
dynamicTriggerPathList: [],
widgetId: "zeqf6yfm3s",
renderMode: "CANVAS",
isLoading: false,
leftColumn: 16,
rightColumn: 28,
topRow: 0,
bottomRow: 4,
parentId: "vqn2okwc6a",
},
Text2: {
isVisible: true,
text: "{{List1.listData.map((currentItem) => currentItem.id)}}",
fontSize: "PARAGRAPH",
fontStyle: "BOLD",
textAlign: "LEFT",
textColor: "#231F20",
truncateButtonColor: "#FFC13D",
widgetName: "Text2",
shouldScroll: false,
shouldTruncate: false,
version: 1,
animateLoading: true,
type: "TEXT_WIDGET",
hideCard: false,
displayName: "Text",
key: "yd217bk315",
iconSVG: "/static/media/icon.97c59b52.svg",
textStyle: "BODY",
dynamicBindingPathList: [
{
key: "text",
},
],
dynamicTriggerPathList: [],
widgetId: "8wyekp2o6e",
renderMode: "CANVAS",
isLoading: false,
leftColumn: 16,
rightColumn: 24,
topRow: 4,
bottomRow: 8,
parentId: "vqn2okwc6a",
},
},
listData: [
{
id: "001",
name: "Blue",
img: "https://assets.appsmith.com/widgets/default.png",
},
{
id: "002",
name: "Green",
img: "https://assets.appsmith.com/widgets/default.png",
},
{
id: "003",
name: "Red",
img: "https://assets.appsmith.com/widgets/default.png",
},
],
isCanvas: true,
displayName: "List",
iconSVG: "/static/media/icon.9925ee17.svg",
topRow: 34,
bottomRow: 74,
parentRowSpace: 10,
type: "LIST_WIDGET",
hideCard: false,
gridGap: 0,
animateLoading: true,
parentColumnSpace: 14.0625,
leftColumn: 39,
dynamicBindingPathList: [
{
key: "template.Image1.image",
},
{
key: "template.Text1.text",
},
{
key: "template.Text2.text",
},
],
gridType: "vertical",
enhancements: true,
children: [
{
widgetName: "Canvas1",
displayName: "Canvas",
topRow: 0,
bottomRow: 400,
parentRowSpace: 1,
type: "CANVAS_WIDGET",
canExtend: false,
hideCard: true,
dropDisabled: true,
openParentPropertyPane: true,
minHeight: 400,
noPad: true,
parentColumnSpace: 1,
leftColumn: 0,
children: [
{
boxShadow: "NONE",
widgetName: "Container1",
borderColor: "transparent",
disallowCopy: true,
isCanvas: true,
displayName: "Container",
iconSVG: "/static/media/icon.1977dca3.svg",
topRow: 0,
bottomRow: 12,
dragDisabled: true,
type: "CONTAINER_WIDGET",
hideCard: false,
openParentPropertyPane: true,
isDeletable: false,
animateLoading: true,
leftColumn: 0,
children: [
{
widgetName: "Canvas2",
detachFromLayout: true,
displayName: "Canvas",
widgetId: "vqn2okwc6a",
containerStyle: "none",
topRow: 0,
parentRowSpace: 1,
isVisible: true,
type: "CANVAS_WIDGET",
canExtend: false,
version: 1,
hideCard: true,
parentId: "9e77epyavg",
renderMode: "CANVAS",
isLoading: false,
parentColumnSpace: 1,
leftColumn: 0,
children: [
{
widgetName: "Image1",
displayName: "Image",
iconSVG: "/static/media/icon.52d8fb96.svg",
topRow: 0,
bottomRow: 8.4,
type: "IMAGE_WIDGET",
hideCard: false,
animateLoading: true,
dynamicTriggerPathList: [],
imageShape: "RECTANGLE",
dynamicBindingPathList: [
{
key: "image",
},
],
leftColumn: 0,
defaultImage:
"https://assets.appsmith.com/widgets/default.png",
key: "9cn4ooadxj",
image: "{{currentItem.img}}",
rightColumn: 16,
objectFit: "contain",
widgetId: "yqofym38tn",
logBlackList: {
isVisible: true,
defaultImage: true,
imageShape: true,
maxZoomLevel: true,
enableRotation: true,
enableDownload: true,
objectFit: true,
image: true,
widgetName: true,
version: true,
animateLoading: true,
type: true,
hideCard: true,
displayName: true,
key: true,
iconSVG: true,
isCanvas: true,
dynamicBindingPathList: true,
dynamicTriggerPathList: true,
minHeight: true,
widgetId: true,
renderMode: true,
isLoading: true,
parentColumnSpace: true,
parentRowSpace: true,
leftColumn: true,
rightColumn: true,
topRow: true,
bottomRow: true,
parentId: true,
},
isVisible: true,
version: 1,
parentId: "vqn2okwc6a",
renderMode: "CANVAS",
isLoading: false,
maxZoomLevel: 1,
enableDownload: false,
enableRotation: false,
},
{
widgetName: "Text1",
displayName: "Text",
iconSVG: "/static/media/icon.97c59b52.svg",
topRow: 0,
bottomRow: 4,
type: "TEXT_WIDGET",
hideCard: false,
animateLoading: true,
dynamicTriggerPathList: [],
dynamicBindingPathList: [
{
key: "text",
},
],
leftColumn: 16,
shouldTruncate: false,
truncateButtonColor: "#FFC13D",
text: "{{currentItem.name}}",
key: "yd217bk315",
rightColumn: 28,
textAlign: "LEFT",
widgetId: "zeqf6yfm3s",
logBlackList: {
isVisible: true,
text: true,
fontSize: true,
fontStyle: true,
textAlign: true,
textColor: true,
truncateButtonColor: true,
widgetName: true,
shouldScroll: true,
shouldTruncate: true,
version: true,
animateLoading: true,
type: true,
hideCard: true,
displayName: true,
key: true,
iconSVG: true,
isCanvas: true,
textStyle: true,
dynamicBindingPathList: true,
dynamicTriggerPathList: true,
minHeight: true,
widgetId: true,
renderMode: true,
isLoading: true,
parentColumnSpace: true,
parentRowSpace: true,
leftColumn: true,
rightColumn: true,
topRow: true,
bottomRow: true,
parentId: true,
},
isVisible: true,
fontStyle: "BOLD",
textColor: "#231F20",
shouldScroll: false,
version: 1,
parentId: "vqn2okwc6a",
renderMode: "CANVAS",
isLoading: false,
fontSize: "PARAGRAPH",
textStyle: "HEADING",
},
{
widgetName: "Text2",
displayName: "Text",
iconSVG: "/static/media/icon.97c59b52.svg",
topRow: 4,
bottomRow: 8,
type: "TEXT_WIDGET",
hideCard: false,
animateLoading: true,
dynamicTriggerPathList: [],
dynamicBindingPathList: [
{
key: "text",
},
],
leftColumn: 16,
shouldTruncate: false,
truncateButtonColor: "#FFC13D",
text: "{{currentItem.id}}",
key: "yd217bk315",
rightColumn: 24,
textAlign: "LEFT",
widgetId: "8wyekp2o6e",
logBlackList: {
isVisible: true,
text: true,
fontSize: true,
fontStyle: true,
textAlign: true,
textColor: true,
truncateButtonColor: true,
widgetName: true,
shouldScroll: true,
shouldTruncate: true,
version: true,
animateLoading: true,
type: true,
hideCard: true,
displayName: true,
key: true,
iconSVG: true,
isCanvas: true,
textStyle: true,
dynamicBindingPathList: true,
dynamicTriggerPathList: true,
minHeight: true,
widgetId: true,
renderMode: true,
isLoading: true,
parentColumnSpace: true,
parentRowSpace: true,
leftColumn: true,
rightColumn: true,
topRow: true,
bottomRow: true,
parentId: true,
},
isVisible: true,
fontStyle: "BOLD",
textColor: "#231F20",
shouldScroll: false,
version: 1,
parentId: "vqn2okwc6a",
renderMode: "CANVAS",
isLoading: false,
fontSize: "PARAGRAPH",
textStyle: "BODY",
},
],
key: "omhgz5cakp",
},
],
borderWidth: "0",
key: "ca3a42k2a4",
disablePropertyPane: true,
backgroundColor: "white",
rightColumn: 64,
widgetId: "9e77epyavg",
containerStyle: "card",
isVisible: true,
version: 1,
parentId: "q3ype57cdo",
renderMode: "CANVAS",
isLoading: false,
borderRadius: "0",
},
],
key: "omhgz5cakp",
rightColumn: 337.5,
detachFromLayout: true,
widgetId: "q3ype57cdo",
containerStyle: "none",
isVisible: true,
version: 1,
parentId: "iupz1d99ka",
renderMode: "CANVAS",
isLoading: false,
},
],
privateWidgets: {
Image1: true,
Text1: true,
Text2: true,
},
key: "axex98spx3",
backgroundColor: "transparent",
rightColumn: 63,
itemBackgroundColor: "#FFFFFF",
widgetId: "iupz1d99ka",
isVisible: true,
parentId: "0",
renderMode: "CANVAS",
isLoading: false,
version: 1,
},
],
containerStyle: "none",
detachFromLayout: true,
dynamicBindingPathList: [],
dynamicTriggerPathList: [],
leftColumn: 0,
minHeight: 640,
parentColumnSpace: 1,
parentRowSpace: 1,
rightColumn: 912,
snapColumns: 64,
snapRows: 125,
topRow: 0,
type: "CANVAS_WIDGET",
version: nextVersion,
widgetId: "0",
widgetName: "MainContainer",
renderMode: RenderModes.CANVAS,
isLoading: false,
};
const actualNextDsl = transformDSL(currentDSL, false);
expect(actualNextDsl).toEqual(expectedNextDSL);
});
});