name: "SAP Fiori List Report"
description: "With a list report, users can view and work with a large set of items. This floorplan offers powerful features for finding and acting on relevant items."
variables:
  - varname: ServiceName
    default: ""
    prompt: "Please select the service"
    inputKind: "service"

  - varname: Service
    expression: "GetService(ServiceName)"

  - varname: CollectionName
    expression: "GetStringFromMap(Service,'services.List.data.response')"

  - varname: Collection
    expression: "GetType(CollectionName)"

  - varname: InnerTypeName
    default: "GetStringFromMap(Collection,'fields.entities.type')"
    prompt: "Please select the type which is displayed in the result table"
    inputKind: "type"

  - varname: InnerType
    expression: "GetType(InnerTypeName)"

  - varname: FilterObjectName
    default: ""
    prompt: "Please select your filter object. This is used to build the filter-options panel."
    inputKind: "type"

  - varname: FilterType
    expression: "GetType(FilterObjectName)"

  - varname: Description
    default: ""
    prompt: "Enter a short description"
    inputKind: "string"


  - varname: Dir
    default: "'./src/' + GetStringFromMap(InnerType,'__proto.package')"
    prompt: "Target directory"
    inputKind: "directory"


  - varname: ComponentsPrefix
    default: "GetStringFromMap(InnerType,'__proto.package')"
    prompt: "Please enter prefix for the sub components"
    inputKind: "string"

  - varname: LowerPrefix
    expression: "ToLower(ComponentsPrefix)"

  - varname: PageComponentName
    default: "'page-' + ComponentsPrefix + '-list-report'"
    prompt: "Enter the component name for the list report page"
    inputKind: "directory"

  - varname: PageClassName
    expression: "ToCamel(PageComponentName)"

  - varname: SubPageComponentName
    expression: "'subpage-' + ComponentsPrefix + '-list-report'"

  - varname: SubPageClassName
    expression: "ToCamel(PageComponentName)"

  - varname: FilterPanelComponentName
    expression: "ComponentsPrefix + '-listreport-filter-options'"

  - varname: FilterPanelClassName
    expression: "ToCamel(FilterPanelComponentName)"

  - varname: SearchResultsComponentName
    expression: "ComponentsPrefix + '-listreport-filter-results'"


  - varname: SearchResultsClassName
    expression: "ToCamel(SearchResultsComponentName)"


structure:
  - target: "Dir + '/' + PageComponentName + '.js'"
    template: "page-xx-xx-list-report.js.tpl"
    notes: ""
    condition: ""


  - target: "Dir + '/list-report/' + SubPageComponentName + '.js'"
    template: "list-report/subpage-xx-xx-list-report.js.tpl"
    notes: ""
    condition: ""


  - target: "Dir + '/list-report/' + FilterPanelComponentName + '.js'"
    template: "list-report/xx-xx-listreport-filter-options.js.tpl"
    notes: ""
    condition: ""

  - target: "Dir + '/list-report/' + SearchResultsComponentName + '.js'"
    template: "list-report/xx-xx-listreport-filter-results.js.tpl"
    notes: ""
    condition: ""



data: #additional data, this goes directly to your template and is not parsed or evaluated.
