import { IPublicTypeComponentMetadata, IPublicTypeSnippet } from '@alilc/lowcode-types';

const SkuListMeta: IPublicTypeComponentMetadata = {
  "componentName": "SkuList",
  "title": "SkuList",
  "docUrl": "",
  "screenshot": "",
  "devMode": "proCode",
  "npm": {
    "package": "@pisell/private-materials",
    "version": "1.0.4",
    "exportName": "SkuList",
    "main": "src/index.ts",
    "destructuring": true,
    "subName": ""
  },
  "configure": {
    "props": [
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "className",
            "zh-CN": "类名"
          }
        },
        "name": "className",
        "setter": "StringSetter"
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "style",
            "zh-CN": "样式"
          }
        },
        "name": "style",
        "setter": "StyleSetter"
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "自适应规则",
            "zh-CN": "自适应规则"
          }
        },
        "name": "responsive",
        "setter": {
          "componentName": "RadioGroupSetter",
          "props": {
            "options": [
              {
                "title": "PC",
                "value": "pc"
              },
              {
                "title": "pad端",
                "value": "pad"
              },
              {
                "title": "移动端",
                "value": "mobile"
              }
            ]
          }
        },
        "defaultValue": "pc"
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "tab样式",
            "zh-CN": "tab样式"
          }
        },
        "name": "tabStyle",
        "setter": {
          "componentName": "RadioGroupSetter",
          "props": {
            "options": [
              {
                "title": "锚点式",
                "value": "anchor"
              },
              {
                "title": "切换式",
                "value": "switch"
              },
              {
                "title": "不显示",
                "value": "none"
              }
            ]
          }
        },
        "defaultValue": "anchor"
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "tab分组",
            "zh-CN": "tab分组"
          }
        },
        "name": "tabGroup",
        "setter": "StringSetter",
        "defaultValue": "字段"
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "显示样式",
            "zh-CN": "显示样式"
          }
        },
        "name": "displayStyle",
        "setter": {
          "componentName": "RadioGroupSetter",
          "props": {
            "options": [
              {
                "title": "栅格",
                "value": "grid"
              },
              {
                "title": "瀑布流",
                "value": "waterfall"
              }
            ]
          }
        },
        "defaultValue": "grid"
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "宽度",
            "zh-CN": "宽度"
          }
        },
        "name": "width",
        "setter": "StringSetter",
        "defaultValue": "auto"
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "高度",
            "zh-CN": "高度"
          }
        },
        "name": "height",
        "setter": "StringSetter",
        "defaultValue": "auto",
        "description": "数值不填为auto"
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "分页方式",
            "zh-CN": "分页方式"
          }
        },
        "name": "paginationType",
        "setter": {
          "componentName": "RadioGroupSetter",
          "props": {
            "options": [
              {
                "title": "全部显示",
                "value": "all"
              },
              {
                "title": "滚动加载",
                "value": "scroll"
              },
              {
                "title": "分页器",
                "value": "pager"
              },
              {
                "title": "查看更多",
                "value": "more"
              }
            ]
          }
        },
        "defaultValue": "all"
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "默认显示个数",
            "zh-CN": "默认显示个数"
          }
        },
        "name": "defaultPageSize",
        "setter": "NumberSetter",
        "defaultValue": 6,
        "condition": (target) => target.getProps().getPropValue('paginationType') !== 'all'
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "每次加载个数",
            "zh-CN": "每次加载个数"
          }
        },
        "name": "pageSize",
        "setter": "NumberSetter",
        "defaultValue": 30,
        "condition": (target) => target.getProps().getPropValue('paginationType') !== 'all'
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "排版方式",
            "zh-CN": "排版方式"
          }
        },
        "name": "layoutDirection",
        "setter": {
          "componentName": "RadioGroupSetter",
          "props": {
            "options": [
              {
                "title": "左右",
                "value": "horizontal"
              },
              {
                "title": "上下",
                "value": "vertical"
              }
            ]
          }
        },
        "defaultValue": "horizontal"
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "缩放倍率",
            "zh-CN": "缩放倍率"
          }
        },
        "name": "zoom",
        "setter": "NumberSetter",
        "defaultValue": 1,
        "description": "zoom"
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "列数",
            "zh-CN": "列数"
          }
        },
        "name": "columns",
        "setter": "NumberSetter",
        "defaultValue": 2,
        "description": "只在上下排版时显示此配置项",
        "condition": (target) => target.getProps().getPropValue('layoutDirection') === 'vertical'
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "行数",
            "zh-CN": "行数"
          }
        },
        "name": "rows",
        "setter": "NumberSetter",
        "defaultValue": 2,
        "description": "只在左右排版时显示此配置项",
        "condition": (target) => target.getProps().getPropValue('layoutDirection') === 'horizontal'
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "顶部固定",
            "zh-CN": "顶部固定"
          }
        },
        "name": "stickyTop",
        "setter": "BoolSetter",
        "defaultValue": true
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "列间距",
            "zh-CN": "列间距"
          }
        },
        "name": "columnGap",
        "setter": "NumberSetter",
        "defaultValue": 12
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "行间距",
            "zh-CN": "行间距"
          }
        },
        "name": "rowGap",
        "setter": "NumberSetter",
        "defaultValue": 12
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "Tab数据源",
            "zh-CN": "Tab数据源"
          }
        },
        "name": "tabData",
        "setter": {
          "componentName": "MixedSetter",
          "props": {
            "setters": ["JsonSetter", "VariableSetter"]
          }
        }
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "列表数据源",
            "zh-CN": "列表数据源"
          }
        },
        "name": "data",
        "setter": {
          "componentName": "MixedSetter",
          "props": {
            "setters": ["JsonSetter", "VariableSetter"]
          }
        }
      },
      {
        "title": {
          "label": {
            "type": "i18n",
            "en-US": "数据加载回调",
            "zh-CN": "数据加载回调"
          }
        },
        "name": "onLoadData",
        "setter": "FunctionSetter",
        "description": "统一的数据加载回调，包含触发类型、页码、页大小、Tab信息等参数"
      },
    ],
    "supports": {
      "style": true,
      "className": true
    },
    "component": {
      "isContainer": true
    }
  }
};

const snippets: IPublicTypeSnippet[] = [
  {
    "title": "SkuList",
    "screenshot": "",
    "schema": {
      "componentName": "SkuList",
      "props": {
        "responsive": "pc",
        "tabStyle": "anchor",
        "displayStyle": "grid",
        "width": "auto",
        "height": "auto",
        "paginationType": "all",
        "layoutDirection": "horizontal",
        "zoom": 1,
        "columns": 2,
        "rows": 2,
        "stickyTop": true,
        "columnGap": 12,
        "rowGap": 12
      }
    }
  }
];

export default {
  ...SkuListMeta,
  snippets
};
