{"version":3,"file":"index.mjs","sources":["../../../../../../package/formily/array-table/src/index.ts"],"sourcesContent":["/* eslint-disable indent */\nimport { computed, defineComponent, Ref, h, withDirectives, toRef } from \"vue\";\nimport { GeneralField, IVoidFieldFactoryProps, FieldDisplayTypes, ArrayField } from \"@formily/core\";\nimport {\n  useField,\n  useFieldSchema,\n  RecursionField as _RecursionField,\n  FragmentComponent,\n  useForm\n} from \"@formily/vue\";\nimport { observer } from \"@formily/reactive-vue\";\nimport { isArr, isBool } from \"@formily/shared\";\nimport type { Schema } from \"@formily/json-schema\";\n\nimport type { VNode, Component, PropType } from \"vue\";\nimport { ElTable, ElTableColumn, ElPagination, ElLoading } from \"element-plus\";\n\nimport { Space } from \"../../space/src\";\nimport { ArrayBase } from \"../../array-base/src\";\nimport { stylePrefix } from \"../../__builtins__/configs\";\nimport { composeExport, isVueOptions, resolveComponent } from \"../../__builtins__/shared\";\nimport { PreviewText } from \"@vue-admin-core/formily/preview-text\";\nimport { batch, model } from \"@formily/reactive\";\nimport eachTree from \"xe-utils/eachTree.js\";\nimport { each, get } from \"lodash-es\";\n\nimport defaultProps from \"element-plus/es/components/table/src/table/defaults\";\n\nexport const arrayTableProps = {\n  ...defaultProps,\n  loading: {\n    type: Boolean\n  },\n  table: {\n    type: Object as PropType<ITable>\n  },\n  pagination: {\n    type: [Boolean, Object] as PropType<boolean | IPagination>,\n    default: false\n  }\n};\n\ntype ElColumnProps = typeof ElTableColumn;\n\nconst RecursionField = _RecursionField as unknown as Component;\n\ninterface ObservableColumnSource {\n  field: GeneralField | undefined;\n  fieldProps: IVoidFieldFactoryProps<any, any>;\n  columnProps: ElColumnProps & { title: string; asterisk: boolean };\n  schema: Schema;\n  display: FieldDisplayTypes;\n  required: boolean;\n  name: string;\n  children?: ObservableColumnSource[];\n}\n\ntype ColumnProps = ElColumnProps & {\n  key: string | number;\n  asterisk: boolean;\n  schema: Schema;\n  render?: (\n    startIndex?: Ref<number>\n  ) => (props: { row: Record<string, any>; column: ElColumnProps; $index: number }) => VNode;\n  children?: ColumnProps[];\n};\n\n// #region createTable\ninterface createTable {\n  (): ITable;\n}\n\nexport interface ITable {\n  /**\n   * ElTable 实例\n   */\n  instance: InstanceType<typeof ElTable> | null;\n  onInit(tableRef: InstanceType<typeof ElTable>): void;\n  setExpandRow(row: any, expandedRows: any[] | boolean): void;\n  /**\n   * 展开的列\n   */\n  expandRows: any[];\n  /**\n   * 用于多选表格，清空用户的选择\n   */\n  clearSelection(): void;\n  /**\n   * 返回当前选中的行\n   */\n  getSelectionRows(): any;\n  /**\n   * 用于多选表格，切换某一行的选中状态， 如果使用了第二个参数，则可直接设置这一行选中与否\n   * @param row\n   * @param selected\n   */\n  toggleRowSelection(row: any, selected: boolean): void;\n  /**\n   * 用于多选表格，切换全选和全不选\n   */\n  toggleAllSelection(): void;\n  /**\n   * 用于可扩展的表格或树表格，如果某行被扩展，则切换。 使用第二个参数，您可以直接设置该行应该被扩展或折叠。\n   * @param row\n   * @param expanded\n   */\n  toggleRowExpansion(row: any, expanded?: boolean | undefined): void;\n  /**\n   *  展开所有行\n   * @param isTree 是否是树表格\n   */\n  expandAll(isTree: boolean): any[];\n  /**\n   * 关闭所有展开行\n   */\n  clearExpand(): void;\n  /**\n   * 用于单选表格，设定某一行为选中行， 如果调用时不加参数，则会取消目前高亮行的选中状态。\n   * @param row\n   */\n  setCurrentRow(row: any): void;\n  /**\n   * 用于清空排序条件，数据会恢复成未排序的状态\n   */\n  clearSort(): void;\n  /**\n   * 传入由columnKey 组成的数组以清除指定列的过滤条件。 如果没有参数，清除所有过滤器\n   * @param columnKeys\n   */\n  clearFilter(columnKeys?: string[] | undefined): void;\n  /**\n   * 对 Table 进行重新布局。 当表格可见性变化时，您可能需要调用此方法以获得正确的布局\n   */\n  doLayout(): void;\n  /**\n   * 手动排序表格。 参数 prop 属性指定排序列，order 指定排序顺序。\n   * @param prop\n   * @param<\"ascending\" | \"descending\">order\n   */\n  sort(prop: string, order: \"ascending\" | \"descending\"): void;\n  /**\n   * 滚动到一组特定坐标\n   * @param options\n   * @param yCoord\n   */\n  scrollTo(options: number | ScrollToOptions, yCoord?: number | undefined): void;\n  /**\n   * 设置垂直滚动位置\n   * @param top\n   */\n  setScrollTop(top?: number | undefined): void;\n  /**\n   * 设置水平滚动位置\n   * @param left\n   */\n  setScrollLeft(left?: number | undefined): void;\n}\n// #endregion createTable\n\n// #region createPagination\ntype PaginationOptions = {\n  // 当前页 默认1\n  current?: number;\n  // 页面大小 默认 10\n  pageSize?: number;\n  // 总是 默认 0\n  total?: number;\n  // 可选的每页显示条数 默认 [10, 20, 50, 100]\n  pageSizes?: number[];\n  // 位置 默认 right\n  align?: \"left\" | \"right\" | \"center\";\n  // 改变事件\n  onChange?: (current: number, pageSize: number) => void;\n};\ninterface createPagination {\n  (options?: PaginationOptions): IPagination;\n}\n\ninterface IPagination {\n  // 当前页 默认1\n  current: number;\n  // 页面大小 默认 10\n  pageSize: number;\n  // 总是 默认 0\n  total: number;\n  // 可选的每页显示条数 默认 [10, 20, 50, 100]\n  pageSizes: number[];\n  // 位置 默认 right\n  align: \"left\" | \"right\" | \"center\";\n  // 改变事件\n  onChange?: (current: number, pageSize: number) => void;\n  setCurrent(current: number): void;\n  setPageSize(pageSize: number): void;\n  setPageSizes(pageSizes: number[]): void;\n  setTotal(total: number): void;\n  setAlign(align: \"left\" | \"right\" | \"center\"): void;\n}\n\n// #endregion createPagination\nconst isColumnComponent = (schema: Schema) => {\n  if (typeof schema[\"x-component\"] !== \"string\") return false;\n  return schema[\"x-component\"]?.indexOf(\"Column\") > -1;\n};\n\nconst isOperationsComponent = (schema: Schema) => {\n  if (typeof schema[\"x-component\"] !== \"string\") return false;\n  return schema[\"x-component\"]?.indexOf(\"Operation\") > -1;\n};\n\nconst isAdditionComponent = (schema: Schema) => {\n  if (typeof schema[\"x-component\"] !== \"string\") return false;\n  return schema[\"x-component\"]?.indexOf(\"Addition\") > -1;\n};\n\nconst getDefaultRender = (schema: Schema) => {\n  const content = schema[\"x-render\"];\n  if (typeof content === \"string\") return content;\n  if (typeof content === \"function\") return content;\n  if (typeof content === \"object\" && !isVueOptions(content) && content[\"default\"])\n    return content[\"default\"];\n  return undefined;\n};\n\n/**\n *\n * @param arrayFieldRef\n * @param schemaRef\n * @returns\n */\nconst getArrayTableSources = (arrayFieldRef: Ref<ArrayField>, schemaRef: Ref<Schema>) => {\n  const arrayField = arrayFieldRef.value;\n  const parseSources = (schema: Schema): ObservableColumnSource[] => {\n    if (isColumnComponent(schema) || isOperationsComponent(schema) || isAdditionComponent(schema)) {\n      if (!schema[\"x-component-props\"]?.[\"prop\"] && !schema[\"name\"]) return [];\n      const name = schema[\"x-component-props\"]?.[\"prop\"] || schema[\"name\"];\n      const field = arrayField.query(arrayField.address.concat(name)).take();\n      const fieldProps = field?.props || schema.toFieldProps();\n      const columnProps = (field?.component as any[])?.[1] || schema[\"x-component-props\"] || {};\n      const display = field?.display || schema[\"x-display\"] || \"visible\";\n\n      const required = schema.reduceProperties((required, property) => {\n        if (required) {\n          return required;\n        }\n        return !!property.required;\n      }, false);\n      return [\n        {\n          name,\n          display,\n          required,\n          field,\n          fieldProps,\n          schema,\n          columnProps,\n          children: schema[\"x-table-header\"]\n            ? schema.reduceProperties((buf: any[], schema) => {\n                return buf.concat(parseSources(schema));\n              }, [])\n            : undefined\n        }\n      ];\n    } else if (schema.properties) {\n      return schema.reduceProperties((buf: any[], schema) => {\n        return buf.concat(parseSources(schema));\n      }, []);\n    } else {\n      return [];\n    }\n  };\n\n  const parseArrayTable = (schema: Schema[\"items\"]) => {\n    if (!schema) return [];\n    const sources: ObservableColumnSource[] = [];\n    const items = isArr(schema) ? schema : ([schema] as Schema[]);\n    return items.reduce((columns, schema) => {\n      const item = parseSources(schema);\n      if (item) {\n        return columns.concat(item);\n      }\n      return columns;\n    }, sources);\n  };\n\n  if (!schemaRef.value) throw new Error(\"can not found schema object\");\n\n  return parseArrayTable(schemaRef.value.items);\n};\n\nconst getArrayTableColumns = (sources: ObservableColumnSource[]): ColumnProps[] => {\n  return sources.reduce(\n    (\n      buf: ColumnProps[],\n      { name, columnProps, schema, display, required, field, children },\n      key\n    ) => {\n      const { title, asterisk, ...props } = columnProps;\n      if (display !== \"visible\") return buf;\n      if (!isColumnComponent(schema) && !isOperationsComponent(schema)) return buf;\n\n      if (isOperationsComponent(schema) && field?.pattern !== \"editable\") return buf;\n\n      const render = (startIndex?: Ref<number>) => {\n        return columnProps?.type &&\n          columnProps?.type !== \"default\" &&\n          columnProps?.type !== \"expand\"\n          ? undefined\n          : (props: { row: Record<string, any>; column: ElColumnProps; $index: number }): VNode => {\n              const index = (startIndex?.value ?? 0) + props.$index;\n              const children = h(\n                ArrayBase.Item,\n                { index, record: props.row, key: `${key}${index}` },\n                {\n                  default: () => {\n                    const defaultRender = getDefaultRender(schema);\n                    if (defaultRender) {\n                      return resolveComponent(defaultRender, props);\n                    }\n                    if (!schema.properties) {\n                      if (columnProps.valueType === \"date\") {\n                        return h(PreviewText.DatePicker, {\n                          value: get(props.row, name),\n                          format: columnProps.format || \"YYYY-MM-DD\"\n                        });\n                      } else if (columnProps.valueType === \"dateTime\") {\n                        return h(PreviewText.DatePicker, {\n                          value: get(props.row, name)\n                        });\n                      } else if (columnProps.valueType === \"time\") {\n                        return h(PreviewText.TimePicker, {\n                          value: get(props.row, name),\n                          format: columnProps.format\n                        });\n                      } else if (columnProps.valueType === \"currency\") {\n                        return h(PreviewText, {\n                          value: get(props.row, name),\n                          format: columnProps.format || \"$0,0.00\"\n                        });\n                      } else if (columnProps.valueType === \"bytes\") {\n                        return h(PreviewText, {\n                          value: get(props.row, name),\n                          format: columnProps.format || \"0b\"\n                        });\n                      } else if (columnProps.valueType === \"percent\") {\n                        return h(PreviewText, {\n                          value: get(props.row, name),\n                          format: columnProps.format || \"0%\"\n                        });\n                      } else if (columnProps.valueType === \"address\") {\n                        return h(PreviewText.Cascader, { value: get(props.row, name) });\n                      }\n                      if (schema.enum) {\n                        return h(PreviewText.Select, {\n                          value: get(props.row, name),\n                          options: schema.enum,\n                          multiple: columnProps.multiple\n                        });\n                      }\n                      return h(PreviewText, {\n                        value: get(props.row, name),\n                        format: columnProps.format\n                      });\n                    }\n                    return h(\n                      RecursionField as any,\n                      {\n                        schema,\n                        name: index,\n                        onlyRenderProperties: true\n                      },\n                      {}\n                    );\n                  }\n                }\n              );\n              return children;\n            };\n      };\n\n      const item = {\n        label: title,\n        ...props,\n        key,\n        prop: name,\n        asterisk: asterisk ?? required,\n        schema\n      };\n      if (children && children.length > 0) {\n        (item as any).children = getArrayTableColumns(children);\n      } else {\n        item.render = render;\n      }\n\n      return (buf as any).concat(item);\n    },\n    []\n  );\n};\n\nconst renderAddition = () => {\n  const schema = useFieldSchema();\n  return schema.value.reduceProperties((addition, schema) => {\n    if (isAdditionComponent(schema) || schema[\"x-addition\"]) {\n      return h(\n        RecursionField as any,\n        {\n          schema,\n          name: \"addition\"\n        },\n        {}\n      );\n    }\n    return addition;\n  }, null);\n};\nconst createPagination = (options?: PaginationOptions) => {\n  const pagination = model<IPagination>({\n    current: options?.current || 1,\n    pageSize: options?.pageSize || 10,\n    pageSizes: options?.pageSizes || [10, 20, 50, 100],\n    total: options?.total || 0,\n    align: options?.align || \"right\",\n    onChange: options?.onChange,\n    setCurrent(current: number) {\n      pagination.current = current;\n    },\n    setPageSize(pageSize: number) {\n      pagination.pageSize = pageSize;\n    },\n    setPageSizes(pageSizes: number[]) {\n      pagination.pageSizes = pageSizes;\n    },\n    setTotal(total: number) {\n      pagination.total = total;\n    },\n    setAlign(align: \"left\" | \"right\" | \"center\") {\n      pagination.align = align;\n    }\n  });\n\n  return pagination;\n};\n\nconst createTable = () => {\n  const table: ITable = {\n    instance: null as InstanceType<typeof ElTable> | null,\n    expandRows: [] as any[],\n    onInit(tableRef: InstanceType<typeof ElTable>) {\n      table.instance = tableRef;\n    },\n    setExpandRow(row: any, expandedRows: any[] | boolean) {\n      if (typeof expandedRows === \"boolean\") {\n        if (expandedRows) {\n          table.expandRows.push(row);\n        } else {\n          table.expandRows.splice(table.expandRows.indexOf(row), 1);\n        }\n      } else {\n        table.expandRows = expandedRows;\n      }\n    },\n    clearSelection() {\n      table.instance?.clearSelection();\n    },\n    getSelectionRows() {\n      return table.instance?.getSelectionRows();\n    },\n    toggleRowSelection(row: any, selected: boolean) {\n      table.instance?.toggleRowSelection(row, selected);\n    },\n    toggleAllSelection() {\n      table.instance?.toggleAllSelection();\n    },\n    toggleRowExpansion(row: any, expanded?: boolean | undefined) {\n      table.instance?.toggleRowExpansion(row, expanded);\n    },\n    expandAll(isTree: boolean) {\n      const rows: any[] = [];\n      if (isTree) {\n        const { children, hasChildren } = table.instance?.treeProps as any;\n        eachTree(\n          table.instance?.data,\n          (item: any) => {\n            if ((item[children] && item[children].length > 0) || item[hasChildren]) {\n              rows.push(item);\n              table.toggleRowExpansion(item, true);\n            }\n          },\n          { children }\n        );\n      } else {\n        each(table.instance?.data, (item: any) => {\n          rows.push(item);\n          table.toggleRowExpansion(item, true);\n        });\n      }\n      table.expandRows = rows;\n      return rows;\n    },\n    clearExpand() {\n      each([...table.expandRows], (item: any) => {\n        table.toggleRowExpansion(item, false);\n      });\n      table.expandRows = [];\n    },\n    setCurrentRow(row: any) {\n      table.instance?.setCurrentRow(row);\n    },\n    clearSort() {\n      table.instance?.clearSort();\n    },\n    clearFilter(columnKeys?: string[] | undefined) {\n      table.instance?.clearFilter(columnKeys);\n    },\n    doLayout() {\n      table.instance?.doLayout();\n    },\n    sort(prop: string, order: string) {\n      table.instance?.sort(prop, order);\n    },\n    scrollTo(options: number | ScrollToOptions, yCoord?: number | undefined) {\n      table.instance?.scrollTo(options, yCoord);\n    },\n    setScrollTop(top?: number | undefined) {\n      table.instance?.setScrollTop(top);\n    },\n    setScrollLeft(left?: number | undefined) {\n      table.instance?.setScrollLeft(left);\n    }\n  };\n  return table;\n};\n\nconst ArrayTablePagination = defineComponent({\n  inheritAttrs: false,\n  props: [\"dataSource\", \"pagination\"],\n  setup(props, { attrs, slots }) {\n    const prefixCls = `${stylePrefix}-array-table`;\n\n    const dataSource = computed(() => props.dataSource);\n    const paginationRef = computed(() => props.pagination ?? createPagination());\n\n    const renderPagination = function () {\n      const pagination = paginationRef.value;\n      const current = pagination.current;\n      const pageSize = pagination.pageSize;\n      const pageSizes = pagination.pageSizes;\n      const total = props.pagination ? pagination.total : dataSource.value?.length;\n      const totalPage = Math.ceil(total / pageSize);\n      const align = pagination.align;\n      if (totalPage <= 1) return;\n      return h(\n        \"div\",\n        {\n          class: [`${prefixCls}-pagination`],\n          style: {\n            justifyContent: align\n          }\n        },\n        h(\n          Space,\n          {},\n          {\n            default: () => [\n              h(\n                ElPagination,\n                {\n                  background: true,\n                  layout: \"total, sizes, prev, pager, next, jumper\",\n                  ...attrs,\n                  pageSize: pageSize,\n                  pageSizes: pageSizes,\n                  pageCount: totalPage,\n                  currentPage: current,\n                  total: total,\n                  small: true,\n                  onCurrentChange: (val: number) => {\n                    pagination.setCurrent(val);\n                    // pagination.onChange?.(val, pageSize);\n                  },\n                  onSizeChange: (val: number) => {\n                    batch(() => {\n                      pagination.setCurrent(1);\n                      pagination.setPageSize(val);\n                    });\n                    // pagination.onChange?.(current, val);\n                  }\n                },\n                {}\n              )\n            ]\n          }\n        )\n      );\n    };\n\n    return () => {\n      const pagination = paginationRef.value;\n      const startIndex = (pagination.current - 1) * pagination.pageSize;\n      const endIndex = startIndex + pagination.pageSize - 1; // computed(() => startIndex.value + pageSize.value - 1);\n      return h(\n        FragmentComponent,\n        {},\n        {\n          default: () =>\n            slots?.default?.(\n              props.pagination\n                ? dataSource.value\n                : dataSource.value?.slice(startIndex, endIndex + 1),\n              renderPagination,\n              props.pagination ? null : toRef(startIndex)\n            )\n        }\n      );\n    };\n  }\n});\n\nconst ArrayTableInner = observer(\n  defineComponent({\n    name: \"FArrayTable\",\n    inheritAttrs: false,\n    props: arrayTableProps,\n    setup(props, { attrs, slots }) {\n      const fieldRef = useField<ArrayField>();\n      const schemaRef = useFieldSchema();\n      const formRef = useForm();\n      const prefixCls = `${stylePrefix}-array-table`;\n      const { getKey, keyMap } = ArrayBase.useKey(schemaRef.value);\n      const defaultRowKey = (record: any, index: number) => {\n        return getKey(record, index);\n      };\n\n      const tableRef = computed(() => props.table ?? createTable());\n\n      return () => {\n        // const props = attrs as unknown as ArrayTableProps;\n        const field = fieldRef.value;\n        const form = formRef.value;\n        const dataSource = Array.isArray(field.value) ? field.value.slice() : [];\n        const pagination = props.pagination;\n        const sources = getArrayTableSources(fieldRef, schemaRef);\n        const columns = getArrayTableColumns(sources);\n\n        const renderColumns = (startIndex?: Ref<number>) => {\n          const renderColumn = (columns: ColumnProps[]) => {\n            return columns.map(\n              ({ key, render, asterisk, schema, children: headerChildren, ...props }) => {\n                if (headerChildren) {\n                  return h(\n                    ElTableColumn as any,\n                    {\n                      ...props,\n                      key\n                    },\n                    {\n                      default: () => renderColumn(headerChildren)\n                    }\n                  );\n                }\n\n                const children = {} as Record<string, any>;\n                if (render) {\n                  children.default = render(startIndex);\n                }\n                if (asterisk) {\n                  children.header = ({\n                    column,\n                    $index\n                  }: {\n                    column: ElColumnProps;\n                    $index: number;\n                  }) =>\n                    h(\"span\", {}, [\n                      h(\"span\", { class: `${prefixCls}-inner-asterisk` }, \"*\"),\n                      schema[\"x-render\"] && schema[\"x-render\"][\"header\"]\n                        ? resolveComponent(schema[\"x-render\"][\"header\"], { column, $index })\n                        : column.label\n                    ]);\n                } else {\n                  if (schema[\"x-render\"] && schema[\"x-render\"][\"header\"]) {\n                    children.header = ({\n                      column,\n                      $index\n                    }: {\n                      column: ElColumnProps;\n                      $index: number;\n                    }) => resolveComponent(schema[\"x-render\"][\"header\"], { column, $index });\n                  }\n                }\n                return h(\n                  ElTableColumn as any,\n                  {\n                    ...props,\n                    key\n                  },\n                  children\n                );\n              }\n            );\n          };\n\n          return renderColumn(columns);\n        };\n\n        const renderStateManager = () =>\n          sources.map((column, key) => {\n            //专门用来承接对Column的状态管理\n            if (!isColumnComponent(column.schema) && !isOperationsComponent(column.schema)) return;\n            return h(\n              RecursionField as any,\n              {\n                name: column.name,\n                schema: column.schema,\n                onlyRenderSelf: true,\n                key\n              },\n              {}\n            );\n          });\n        const renderTable = (dataSource?: any[], pager?: () => VNode, startIndex?: Ref<number>) => {\n          return h(\n            \"div\",\n            { class: prefixCls },\n            h(\n              ArrayBase,\n              {\n                keyMap\n              },\n              {\n                default: () => [\n                  withDirectives(\n                    h(\n                      ElTable as any,\n                      {\n                        ...props,\n                        ...attrs,\n                        rowKey: props.rowKey ? props.rowKey : defaultRowKey,\n                        data: dataSource,\n                        ref: (inst) => {\n                          tableRef.value.onInit(inst as any);\n                          field.inject({\n                            getRef: () => inst\n                          });\n                        },\n                        onExpandChange: (row: any, expandedRows: any[] | boolean) => {\n                          tableRef.value.setExpandRow(row, expandedRows);\n                          (attrs as any)?.onExpandChange?.(row, expandedRows);\n                        }\n                      },\n                      {\n                        ...slots,\n                        default: () => renderColumns(startIndex)\n                      }\n                    ),\n                    [\n                      [\n                        ElLoading.directive,\n                        props.loading !== undefined\n                          ? props.loading\n                          : field?.loading || form?.submitting\n                      ]\n                    ]\n                  ),\n                  pager?.(),\n                  renderStateManager(),\n                  renderAddition()\n                ]\n              }\n            )\n          );\n        };\n\n        if (!pagination) {\n          return renderTable(dataSource);\n        }\n        return h(\n          ArrayTablePagination,\n          {\n            pagination: isBool(pagination) ? null : pagination,\n            dataSource\n          },\n          { default: renderTable }\n        );\n      };\n    }\n  })\n);\n\nconst ArrayTableColumn: Component = {\n  name: \"FArrayTableColumn\",\n  render() {\n    return null;\n  }\n};\n\nexport const ArrayTable = composeExport(ArrayTableInner, {\n  Column: ArrayTableColumn,\n  Index: ArrayBase.Index,\n  SortHandle: ArrayBase.SortHandle,\n  Addition: ArrayBase.Addition,\n  Remove: ArrayBase.Remove,\n  MoveDown: ArrayBase.MoveDown,\n  MoveUp: ArrayBase.MoveUp,\n  useArray: ArrayBase.useArray,\n  useIndex: ArrayBase.useIndex,\n  useRecord: ArrayBase.useRecord,\n  ButtonGroup: ArrayBase.ButtonGroup,\n  Button: ArrayBase.Button,\n  createPagination: createPagination,\n  createTable: createTable\n});\n\nexport default ArrayTable;\n"],"names":["_RecursionField","required","schema","props","children","columns","dataSource"],"mappings":"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"}