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

const OadpPaginationMeta: IPublicTypeComponentMetadata = {
  "componentName": "OadpPagination",
  "title": "分页器",
  "category": "高级组件",
  "group": "低代码组件",
  "docUrl": "",
  "screenshot": "https://alifd.oss-cn-hangzhou.aliyuncs.com/fusion-cool/icons/icon-light/ic_light_pagination.png",
  "devMode": "proCode",
  "npm": {
    "package": "oadp-material",
    "version": "{{version}}",
    "exportName": "OadpPagination",
    "main": "src/index.tsx",
    "destructuring": true,
    "subName": ""
  },
  "configure": {
    "props": [     
      {
        "name": "DataSetting",
        "title": "数据设置",
        "type": "group",
        "display": "block",
        "items": [              
          {
            "name": "defaultCurrent",
            "title": {
              "label": {
                "type": "i18n",
                "en-US": "defaultCurrent",
                "zh-CN": "初始页码"
              },
              "tip":  {
                "type": "i18n",
                "zh_CN": "属性: defaultCurrent | 说明:初始页码。",
                "en_US": "prop: defaultCurrent | Description: defaultCurrent.",
              },
            },
            "setter": {
              "componentName": "NumberSetter",
              "isRequired": false,
              "initialValue": 1
            }
          },
          {
            "name": "current",
            "title": {
              "label": {
                "type": "i18n",
                "en-US": "current",
                "zh-CN": "当前页码"
              },
              "tip":  {
                "type": "i18n",
                "zh_CN": "属性: current | 说明:当前页码。",
                "en_US": "prop: current | Description: current.",
              },
            },
            "setter": {
              "componentName": "MixedSetter",
              "props": {
                "setters": [
                  {
                    "componentName": "NumberSetter",
                    "isRequired": false,
                    "initialValue": 1
                  },
                  {
                    "componentName": "ExpressionSetter", 
                  }
                ]
              }
            } 
          },
          {
            "name": "pageSize",
            "title": {
              "label": {
                "type": "i18n",
                "en-US": "pageSize",
                "zh-CN": "每页条数"
              },
              "tip":  {
                "type": "i18n",
                "zh_CN": "属性: pageSize | 说明:每页条数。",
                "en_US": "prop: pageSize | Description: pageSize.",
              },
            },
            "setter": {
              "componentName": "MixedSetter",
              "props": {
                "setters": [
                  {
                    "componentName": "NumberSetter",
                    "isRequired": false,
                    "initialValue": 20
                  },
                  {
                    "componentName": "ExpressionSetter", 
                  }
                ]
              }
            } 
          },
          {
            "name": "total",
            "title": {
              "label": {
                "type": "i18n",
                "en-US": "total",
                "zh-CN": "总记录数"
              },
              "tip":  {
                "type": "i18n",
                "zh_CN": "属性: total | 说明:总记录数。",
                "en_US": "prop: total | Description: total.",
              },
            },
            "setter": {
              "componentName": "MixedSetter",
              "props": {
                "setters": [
                  {
                    "componentName": "NumberSetter",
                    "isRequired": false,
                    "initialValue": 100
                  },
                  {
                    "componentName": "ExpressionSetter", 
                  }
                ]
              }
            }
          },
        ]
      },
      {
        "name": "DisplaySetting",
        "title": "显示设置",
        "type": "group",
        "display": "block",
        "items": [
          {
            "title": {
              "label": {
                "type": "i18n",
                "en-US": "type",
                "zh-CN": "分页模式"
              },
              "tip":  {
                "type": "i18n",
                "zh_CN": "属性: type | 说明:分页类型，可选值:normal=常规模式, simple=简单模式, mini=迷你模式。默认为:normal。",
                "en_US": "prop: type | description: Set to fixed to indicate that the content will not affect the layout of the column. Optional values: fixed=fixed mode, auto=automatic mode. The default is: auto.",
              },
            },
            "name": "type",
            "setter": {
              "componentName": "RadioGroupSetter",
              "props": {
                "dataSource": [
                  {
                    "label": "常规模式",
                    "value": "normal"
                  },
                  {
                    "label": "简单模式",
                    "value": "simple"
                  },
                  {
                    "label": "迷你模式",
                    "value": "mini"
                  }
                ],
                "options": [
                  {
                    "label": "常规模式",
                    "value": "normal"
                  },
                  {
                    "label": "简单模式",
                    "value": "simple"
                  },
                  {
                    "label": "迷你模式",
                    "value": "mini"
                  }
                ]
              },
              "initialValue": "normal"
            }
          },
          {
            "name": "size",
            "title": {
              "label": {
                "type": "i18n",
                "en-US": "size",
                "zh-CN": "分页大小"
              },
              "tip":  {
                "type": "i18n",
                "zh_CN": "属性: size | 说明:分页大小，可选值:large=大, medium=中, mini=小。默认为:medium。",
                "en_US": "prop: size | description: Size. Optional values: large=large mode, medium=medium mode, mini=mini mode. The default is: medium.",
              },
            },
            "setter": {
              "componentName": "RadioGroupSetter",
              "props": {
                "dataSource": [
                  {
                    "label": "大",
                    "value": "large"
                  },
                  {
                    "label": "中",
                    "value": "medium"
                  },
                  {
                    "label": "小",
                    "value": "small"
                  }
                ],
                "options": [
                  {
                    "label": "大",
                    "value": "large"
                  },
                  {
                    "label": "中",
                    "value": "medium"
                  },
                  {
                    "label": "小",
                    "value": "small"
                  }
                ]
              },
              "initialValue": "medium"
            }
          },
          {
            "name": "shape",
            "title": {
              "label": {
                "type": "i18n",
                "en-US": "shape",
                "zh-CN": "按钮样式"
              },
              "tip":  {
                "type": "i18n",
                "zh_CN": "属性: size | 说明:按钮样式，可选值:normal=常规, arrow-only=仅箭头, arrow-prev-only=仅前箭头, no-border=无边框。默认为:no-border。",
                "en_US": "prop: size | Description: Button style, optional values: normal=regular, arrow only=arrow only, arrow preview only=front arrow only, no order=no border. The default is: normal.",
              },
            },
            "setter": {
              "componentName": "RadioGroupSetter",
              "props": {
                "dataSource": [
                  {
                    "label": "常规",
                    "value": "normal"
                  },
                  {
                    "label": "仅箭头",
                    "value": "arrow-only"
                  },
                  {
                    "label": "仅前箭头",
                    "value": "arrow-prev-only"
                  },
                  {
                    "label": "无边框",
                    "value": "no-border"
                  }
                ],
                "options": [
                  {
                    "label": "常规",
                    "value": "normal"
                  },
                  {
                    "label": "仅箭头",
                    "value": "arrow-only"
                  },
                  {
                    "label": "仅前箭头",
                    "value": "arrow-prev-only"
                  },
                  {
                    "label": "无边框",
                    "value": "no-border"
                  }
                ]
              },
              "initialValue": "normal"
            }
          },
          {
            "name": "pageShowCount",
            "title": {
              "label": {
                "type": "i18n",
                "en-US": "pageShowCount",
                "zh-CN": "显示页数"
              },
              "tip":  {
                "type": "i18n",
                "zh_CN": "属性: pageShowCount | 说明:显示页数。",
                "en_US": "prop: pageShowCount | Description: pageShowCount.",
              },
            },
            "setter": {
              "componentName": "NumberSetter",
              "isRequired": false,
              "initialValue": 4
            }
          },
          {
            "title": {
              "label": {
                "type": "i18n",
                "en-US": "pageSizeSelector",
                "zh-CN": "每页显示选择类型"
              },
              "tip":  {
                "type": "i18n",
                "zh_CN": "属性: pageSizeSelector | 说明:每页显示选择类型，可选值:false=无, filter=过滤, dropdown=下拉。默认为:false。",
                "en_US": "prop: pageSizeSelector | Description: pageSizeSelector.",
              },
            },
            "name": "pageSizeSelector",
            "setter": {
              "componentName": "RadioGroupSetter",
              "props": {
                "dataSource": [
                  {
                    "label": "无",
                    "value": false
                  },
                  {
                    "label": "过滤",
                    "value": "filter"
                  },
                  {
                    "label": "下拉",
                    "value": "dropdown"
                  }
                ],
                "options": [
                  {
                    "label": "无",
                    "value": false
                  },
                  {
                    "label": "过滤",
                    "value": "filter"
                  },
                  {
                    "label": "下拉",
                    "value": "dropdown"
                  }
                ]
              },
              "initialValue": "dropdown"
            }
          },
          {
            "title": {
              "label": {
                "type": "i18n",
                "en-US": "pageSizePosition",
                "zh-CN": "每页显示可选位置"
              },
              "tip":  {
                "type": "i18n",
                "zh_CN": "属性: pageSizePosition | 说明:每页显示可选位置，可选值:normal=常规模式, simple=简单模式, mini=迷你模式。默认为:normal。",
                "en_US": "prop: pageSizePosition | Description: pageSizePosition.",
              },
            },
            "name": "pageSizePosition",
            "setter": {
              "componentName": "RadioGroupSetter",
              "props": {
                "dataSource": [
                  {
                    "label": "居左显示",
                    "value": "start"
                  },
                  {
                    "label": "居右显示",
                    "value": "end"
                  }
                ],
                "options": [
                  {
                    "label": "居左显示",
                    "value": "start"
                  },
                  {
                    "label": "居右显示",
                    "value": "end"
                  }
                ]
              },
              "initialValue": "end"
            }
          },
          {
            "title": {
              "label": {
                "type": "i18n",
                "en-US": "pageSizeList",
                "zh-CN": "每页显示可选条数"
              },
              "tip":  {
                "type": "i18n",
                "zh_CN": "属性: pageSizeList | 说明:每页显示可选条数。",
                "en_US": "prop: pageSizeList | Description: pageSizeList.",
              },
            },
            "name": "pageSizeList",
            "setter": {
              "componentName": "ArraySetter",
              "props": {
                "itemSetter": {
                  "componentName": "NumberSetter",
                  "isRequired": false,
                  "initialValue": 20
                }
              },
              "initialValue": [ 20, 50, 100, 500]
            },
          },
        ]
      }, 
      {
        "name": "InteractionSetting",
        "title": "交互设置",
        "type": "group",
        "display": "block",
        "items": [
          {
            "name": "onChange",
            "title": {
              "label": {
                "type": "i18n",
                "en-US": "onChange",
                "zh-CN": "页码改变回调函数"
              },
              "tip": {
                "type": "i18n",
                "en-US": "prop: type | description: onChange | type: (current: number, e: object) => void.",
                "zh-CN": "属性: onChange | 说明: 页码改变回调函数 | 类型：(current: number, e: object) => void。"
              }
            },
            "description": "属性: onChange | 说明: 页码改变回调函数 | 类型：(current: number, e: object) => void。",
            "setter": {
              "componentName": "FunctionSetter"
            }
          },
          {
            "name": "onPageSizeChange",
            "title": {
              "label": {
                "type": "i18n",
                "en-US": "onPageSizeChange",
                "zh-CN": "每页显示改变回调函数"
              },
              "tip": {
                "type": "i18n",
                "en-US": "prop: type | description: onPageSizeChange | type: (pageSize: number) => void.",
                "zh-CN": "属性: onPageSizeChange | 说明: 每页显示改变回调函数, 类型：(pageSize: number) => void。"
              }
            },
            "description": "属性: onPageSizeChange | 说明: 每页显示改变回调函数, 类型：(pageSize: number) => void。",
            "setter": {
              "componentName": "FunctionSetter"
            }
          }
        ]
      },
    ],
    "supports": {
      "style": true
    },
    "component": {}
  }
};
const snippets: IPublicTypeSnippet[] = [
  {
    "title": "分页器",
    "screenshot": "https://alifd.oss-cn-hangzhou.aliyuncs.com/fusion-cool/icons/icon-light/ic_light_pagination.png",
    "schema": {
      "componentName": "OadpPagination",
      "props": {
        "defaultCurrent": 1,
        "current": 1,
        "total": 100,
        "pageSize": 10,
        "type": "normal",
        "size": "medium",
        "shape": "no-border",
        "pageSizeSelector": "dropdown",
        "pageSizePosition": "end",
        "style": { 
          "marginTop": "5px",
          "marginBottom": "5px",
          "marginLeft": "10px",
          "marginRight": "10px",
          "textAlign": "right"
        }
      }
    }
  }
];

export default {
  ...OadpPaginationMeta,
  snippets
};
