{
  "eventsAndFunctions": [
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "ReadModel",
            "modelVariableName": "salesTeamId",
            "variableName": "salesTeamId"
          },
          {
            "command": "WriteModel",
            "expression": "^salesTeamId",
            "modelVariableName": "selectedSalesTeamId"
          },
          {
            "command": "Execute",
            "expression": "loadSalesTeamTree()"
          }
        ],
        "typeReturn": "any",
        "variables": [
          {
            "name": "salesTeamId",
            "type": "string"
          },
          {
            "name": "salesTeam",
            "type": "ExtPresales.SalesTeam"
          }
        ]
      },
      "name": "mainResponsive_init"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "data",
            "type": "any"
          }
        ],
        "statements": [
          {
            "command": "ReadModel",
            "modelVariableName": "salesTeamId",
            "variableName": "salesTeamId"
          },
          {
            "children": [
              {
                "command": "OpenInContainer",
                "expressionIcon": "^data.icon",
                "expressionStartModel": "{ salesTeamId: ^data.salesTeamId }",
                "expressionTitle": "^data.title",
                "expressionUiComponentName": "^data.component",
                "widgetNameContainer": "centerContainer"
              }
            ],
            "command": "If",
            "expression": "!IsNull(^data.component)"
          }
        ],
        "typeReturn": "any",
        "variables": [
          {
            "name": "salesTeamId",
            "type": "integer"
          }
        ]
      },
      "name": "main_receiveData"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "recordRef",
            "type": "string"
          },
          {
            "name": "arg",
            "type": "string"
          }
        ],
        "statements": [
          {
            "command": "OpenInContainer",
            "expressionIcon": "\"\"",
            "expressionStartModel": "{salesTeamId: ^arg}",
            "expressionTitle": "\"\"",
            "uiComponentName": "CmpMainPsSalesTeamCards",
            "widgetNameContainer": "centerContainer"
          },
          {
            "command": "WriteModel",
            "expression": "^arg",
            "modelVariableName": "selectedSalesTeamId"
          }
        ],
        "typeReturn": "any",
        "variables": []
      },
      "name": "renTitle_handlerRecordAction_navigateSalesTeam"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "treeNodeRef",
            "type": "string"
          }
        ],
        "statements": [
          {
            "command": "ReadTreeNode",
            "expressionTreeNodeRef": "^treeNodeRef",
            "variableName": "node",
            "widgetName": "salesTeamTree"
          },
          {
            "children": [
              {
                "command": "Set",
                "expression": "^node.properties.breadcrumb",
                "variableName": "breadcrumb"
              },
              {
                "command": "SetValue",
                "expression": "GetSalesTeamBreadcrumb(^breadcrumb)",
                "widgetName": "renTitle"
              },
              {
                "command": "OpenInContainer",
                "expressionIcon": "\"\"",
                "expressionStartModel": "{salesTeamId: ^node.properties.id, salesTeamName: ^node.properties.name}",
                "expressionTitle": "\"\"",
                "uiComponentName": "CmpMainPsSalesTeamCards",
                "widgetNameContainer": "centerContainer"
              },
              {
                "command": "WriteModel",
                "expression": "^node.properties.id",
                "modelVariableName": "selectedSalesTeamId"
              }
            ],
            "command": "If",
            "expression": "IsNotNull(^node.properties)"
          }
        ],
        "typeReturn": "any",
        "variables": [
          {
            "name": "node",
            "type": "TreeNode"
          },
          {
            "name": "breadcrumb",
            "type": "string"
          }
        ]
      },
      "name": "salesTeamTree_selectTreeNode"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "recordRef",
            "type": "string"
          },
          {
            "name": "arg",
            "type": "string"
          }
        ],
        "statements": [
          {
            "command": "OpenInContainer",
            "expressionIcon": "\"\"",
            "expressionStartModel": "{salesTeamId: ^arg}",
            "expressionTitle": "\"\"",
            "uiComponentName": "CmpMainPsSalesTeamCards",
            "widgetNameContainer": "centerContainer"
          }
        ],
        "typeReturn": "any",
        "variables": []
      },
      "name": "renTitle_handlerRecordAction_cards"
    },
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "Execute",
            "expression": "addSalesTeam()"
          }
        ],
        "typeReturn": "any",
        "variables": []
      },
      "name": "salesTeamTree_handlerAction_add"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "parentTreeNode",
            "type": "TreeNode"
          }
        ],
        "statements": [],
        "typeReturn": "list(TreeNode)",
        "variables": []
      },
      "name": "salesTeamTree_loadTreeNodes"
    },
    {
      "algorithm": {
        "parameters": [
          {
            "name": "salesTeam",
            "type": "ExtPresales.SalesTeam"
          },
          {
            "name": "icon",
            "type": "string"
          },
          {
            "name": "breadcrumb",
            "type": "string"
          }
        ],
        "statements": [
          {
            "command": "Set",
            "expression": "^salesTeam.name",
            "variableName": "name"
          },
          {
            "children": [
              {
                "command": "Set",
                "expression": "Concat(^name, \" (\", ^salesTeam.responsibleVendor.name,\")\")",
                "variableName": "name"
              }
            ],
            "command": "If",
            "expression": "IsNotNull(^salesTeam.responsibleVendor)"
          },
          {
            "command": "Set",
            "expression": "Concat(^breadcrumb,\"/\", ^salesTeam.name,\"|\",^salesTeam.id)",
            "variableName": "breadcrumbInternal"
          },
          {
            "command": "Set",
            "expression": "{icon: ^icon, text: ^name, children: [], expanded:true, properties:{type:\"salesTeam\", id: ^salesTeam.id, path: ^salesTeam.path, breadcrumb: ^breadcrumbInternal, name: ^salesTeam.name}}",
            "variableName": "node"
          },
          {
            "children": [
              {
                "children": [
                  {
                    "command": "Push",
                    "expressionItem": "convertSalesTeamToTreeNode(^child, \"user.svg\", ^breadcrumbInternal)",
                    "variableNameList": "node.children"
                  }
                ],
                "command": "ForEach",
                "expressionList": "^salesTeam.childs",
                "variableNameItem": "child"
              }
            ],
            "command": "If",
            "expression": "IsNotNull(^salesTeam.childs)"
          },
          {
            "command": "Return",
            "expression": "^node"
          }
        ],
        "typeReturn": "TreeNode",
        "variables": [
          {
            "name": "breadcrumbInternal",
            "type": "string"
          },
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "node",
            "type": "TreeNode"
          },
          {
            "name": "child",
            "type": "ExtPresales.SalesTeam"
          }
        ]
      },
      "name": "convertSalesTeamToTreeNode"
    },
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "ReadModel",
            "modelVariableName": "selectedSalesTeamId",
            "variableName": "parentSalesTeamId"
          },
          {
            "command": "Set",
            "expression": "{ parentSalesTeam: ^parentSalesTeamId }",
            "variableName": "salesTeam"
          },
          {
            "buttons": "ok-cancel",
            "command": "Open",
            "expressionIcon": "\"add.svg\"",
            "expressionStartModel": "{ salesTeam: ^salesTeam }",
            "expressionTitle": "\"[[Add]] [[SalesTeam]]\"",
            "mode": "right-drawer",
            "size": "default",
            "uiComponentName": "CmpPsSalesTeamEdit"
          },
          {
            "children": [
              {
                "command": "CloseCurrent"
              },
              {
                "command": "Execute",
                "expression": "loadSalesTeamTree()"
              }
            ],
            "command": "OnOk",
            "variableNameOpenedModel": "openedModel"
          }
        ],
        "typeReturn": "any",
        "variables": [
          {
            "name": "salesTeam",
            "type": "ExtPresales.SalesTeamCreation"
          },
          {
            "name": "openedModel",
            "type": "any"
          },
          {
            "name": "parentSalesTeamId",
            "type": "string"
          }
        ]
      },
      "name": "addSalesTeam"
    },
    {
      "algorithm": {
        "parameters": [],
        "statements": [
          {
            "command": "Set",
            "expression": "[]",
            "variableName": "breadcrumb"
          },
          {
            "command": "ReadModel",
            "modelVariableName": "salesTeamId",
            "variableName": "salesTeamId"
          },
          {
            "children": [
              {
                "command": "Set",
                "expression": "ExtPresales.SalesTeamRetrieve(^salesTeamId, {fields: [\"Childs\",\"Responsible\"]})",
                "variableName": "salesTeam"
              },
              {
                "command": "SetValue",
                "expression": "convertSalesTeamToTreeNode(^salesTeam, \"people.svg\", \"\")",
                "widgetName": "salesTeamTree"
              },
              {
                "command": "SetValue",
                "expression": "GetSalesTeamBreadcrumb(Concat(\"/\",^salesTeam.name,\"|\",^salesTeam.id))",
                "widgetName": "renTitle"
              }
            ],
            "command": "If",
            "expression": "!IsNull(^salesTeamId)"
          }
        ],
        "typeReturn": "any",
        "variables": [
          {
            "name": "salesTeamId",
            "type": "string"
          },
          {
            "name": "salesTeam",
            "type": "ExtPresales.SalesTeam"
          },
          {
            "name": "breadcrumb",
            "type": "any"
          }
        ]
      },
      "name": "loadSalesTeamTree"
    }
  ],
  "model": [
    {
      "name": "salesTeamId",
      "required": true,
      "type": "string"
    },
    {
      "name": "selectedSalesTeamId",
      "required": true,
      "type": "string"
    }
  ],
  "root": {
    "children": [
      {
        "children": [
          {
            "children": [
              {
                "htmlTemplate": "<div>\n  <ul class=\"blz-breadcrumb\">\n  \n  {{#each paths}}\n  <li>\n  \t<a onclick=\"[RecordAction:navigateSalesTeam|{{key}}]\">{{value}}</a>\n  </li>\n  {{/each}}\n  </ul>\n</div>",
                "name": "renTitle",
                "recordActions": [
                  {
                    "key": "navigateSalesTeam",
                    "text": "[[NavigateSalesTeam]]"
                  },
                  {
                    "key": "cards"
                  }
                ],
                "widget": "HtmlRenderer"
              }
            ],
            "cssClass": "blz-area-default blz-padding-top blz-padding-right-large blz-padding-left-large blz-padding-bottom blz-border-top blz-border-right blz-border-left blz-border-bottom blz-border-radius",
            "height": 50,
            "layout": "fit"
          }
        ],
        "cssClass": "blz-padding-top-large blz-padding-right-large blz-padding-left-large blz-padding-bottom-large",
        "layout": "responsive",
        "name": "mainHeader"
      },
      {
        "children": [
          {
            "children": [
              {
                "actions": [
                  {
                    "icon": "add.svg",
                    "key": "add",
                    "text": "[[Add]]"
                  }
                ],
                "cssClass": "blz-padding-top-large blz-padding-bottom-large",
                "name": "salesTeamTree",
                "title": "[[Structure]]",
                "widget": "Tree"
              }
            ],
            "cssClass": "blz-area-default blz-padding-top blz-padding-bottom blz-border-top blz-border-right blz-border-left blz-border-bottom blz-border-radius blz-cast-shadow",
            "layout": "fit"
          }
        ],
        "cssClass": "blz-padding-right blz-padding-left-large blz-padding-bottom-large",
        "layout": "responsive",
        "name": "left",
        "size": 3
      },
      {
        "children": [
          {
            "name": "centerContainer",
            "widget": "FixedContainer"
          }
        ],
        "cssClass": "blz-padding-right-large blz-padding-bottom-large",
        "layout": "responsive",
        "name": "center",
        "size": 9
      }
    ],
    "layout": "responsive",
    "name": "mainResponsive"
  },
  "routing": {
    "path": "/ps-sales-team/{salesTeamId}"
  },
  "unused": [
    {
      "name": "salesTeamSelectedTitle",
      "widget": "HtmlRenderer"
    }
  ]
}