{"version":3,"file":"index.mjs","sources":["../../../../../../package/formily/array-cards/src/index.ts"],"sourcesContent":["import { defineComponent, h } from \"vue\";\nimport { ElCard, ElEmpty, ElRow } from \"element-plus\";\nimport { ArrayField } from \"@formily/core\";\nimport { useField, useFieldSchema, RecursionField } from \"@formily/vue\";\nimport { observer } from \"@formily/reactive-vue\";\nimport { ISchema } from \"@formily/json-schema\";\nimport { stylePrefix } from \"../../__builtins__/configs\";\nimport { ArrayBase } from \"../../array-base/src\";\nimport { composeExport } from \"../../__builtins__/shared\";\n\nconst isAdditionComponent = (schema: ISchema) => {\n  if (typeof schema[\"x-component\"] !== \"string\") return false;\n  return schema[\"x-component\"]?.indexOf(\"Addition\") > -1;\n};\n\nconst isIndexComponent = (schema: ISchema) => {\n  if (typeof schema[\"x-component\"] !== \"string\") return false;\n  return schema[\"x-component\"]?.indexOf(\"Index\") > -1;\n};\n\nconst isRemoveComponent = (schema: ISchema) => {\n  if (typeof schema[\"x-component\"] !== \"string\") return false;\n  return schema[\"x-component\"]?.indexOf(\"Remove\") > -1;\n};\n\nconst isMoveUpComponent = (schema: ISchema) => {\n  if (typeof schema[\"x-component\"] !== \"string\") return false;\n  return schema[\"x-component\"]?.indexOf(\"MoveUp\") > -1;\n};\n\nconst isMoveDownComponent = (schema: ISchema) => {\n  if (typeof schema[\"x-component\"] !== \"string\") return false;\n  return schema[\"x-component\"]?.indexOf(\"MoveDown\") > -1;\n};\n\nconst isOperationComponent = (schema: ISchema) => {\n  return (\n    isAdditionComponent(schema) ||\n    isRemoveComponent(schema) ||\n    isMoveDownComponent(schema) ||\n    isMoveUpComponent(schema)\n  );\n};\nconst ArrayCardsInner = observer(\n  defineComponent({\n    name: \"FArrayCards\",\n    inheritAttrs: false,\n    props: [\"onChange\"],\n    setup(props, { attrs }) {\n      const fieldRef = useField<ArrayField>();\n      const schemaRef = useFieldSchema();\n      const prefixCls = `${stylePrefix}-array-cards`;\n      const { getKey, keyMap } = ArrayBase.useKey(schemaRef.value);\n\n      return () => {\n        const field = fieldRef.value;\n        const schema = schemaRef.value;\n        const dataSource = Array.isArray(field.value) ? field.value : [];\n        if (!schema) throw new Error(\"can not found schema object\");\n\n        const renderItems = () => {\n          return dataSource?.map((item, index) => {\n            const items = Array.isArray(schema.items)\n              ? schema.items[index] || schema.items[0]\n              : schema.items;\n\n            const title = h(\n              \"span\",\n              {},\n              {\n                default: () => [\n                  h(\n                    RecursionField,\n                    {\n                      schema: items,\n                      name: index,\n                      filterProperties: (schema: ISchema) => {\n                        if (!isIndexComponent(schema)) return false;\n                        return true;\n                      },\n                      onlyRenderProperties: true\n                    },\n                    {}\n                  ),\n                  attrs.title || field.title\n                ]\n              }\n            );\n            const extra = h(\n              \"span\",\n              {},\n              {\n                default: () => [\n                  h(\n                    RecursionField,\n                    {\n                      schema: items,\n                      name: index,\n                      filterProperties: (schema: ISchema) => {\n                        if (!isOperationComponent(schema)) return false;\n                        return true;\n                      },\n                      onlyRenderProperties: true\n                    },\n                    {}\n                  ),\n                  attrs.extra\n                ]\n              }\n            );\n            const content = h(\n              RecursionField,\n              {\n                schema: items,\n                name: index,\n                filterProperties: (schema: ISchema) => {\n                  if (isIndexComponent(schema)) return false;\n                  if (isOperationComponent(schema)) return false;\n                  return true;\n                }\n              },\n              {}\n            );\n            return h(\n              ArrayBase.Item,\n              {\n                key: getKey(item, index),\n                index,\n                record: item\n              },\n              {\n                default: () =>\n                  h(\n                    ElCard,\n                    {\n                      shadow: \"never\",\n                      ...attrs,\n                      class: [`${prefixCls}-item`].concat((attrs as any).class)\n                    },\n                    {\n                      default: () => [content],\n                      header: () =>\n                        h(\n                          ElRow,\n                          {\n                            type: \"flex\",\n                            justify: \"space-between\"\n                          },\n                          {\n                            default: () => [title, extra]\n                          }\n                        )\n                    }\n                  )\n              }\n            );\n          });\n        };\n        const renderAddition = () => {\n          return schema.reduceProperties((addition, schema) => {\n            if (isAdditionComponent(schema)) {\n              return h(\n                RecursionField,\n                {\n                  schema,\n                  name: \"addition\"\n                },\n                {}\n              );\n            }\n            return addition;\n          }, null);\n        };\n        const renderEmpty = () => {\n          if (dataSource?.length) return;\n          return h(\n            ElCard,\n            {\n              class: [`${prefixCls}-item`],\n              shadow: \"never\",\n              ...attrs,\n              header: attrs.title || field.title\n            },\n            {\n              default: () => h(ElEmpty, { props: { description: \"No Data\", imageSize: 100 } }, {})\n            }\n          );\n        };\n\n        return h(\n          \"div\",\n          {\n            class: [prefixCls]\n          },\n          h(\n            ArrayBase,\n            {\n              keyMap\n            },\n            {\n              default: () => {\n                return [renderEmpty(), renderItems(), renderAddition()];\n              }\n            }\n          )\n        );\n      };\n    }\n  })\n);\n\nexport const ArrayCards = composeExport(ArrayCardsInner, {\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});\n\nexport default ArrayCards;\n"],"names":["schema"],"mappings":"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"}