{"version":3,"file":"index.mjs","sources":["../../../../../../package/formily/array-collapse/src/index.ts"],"sourcesContent":["/* eslint-disable indent */\nimport { defineComponent, ref, watchEffect, Ref, h } from \"vue\";\nimport {\n  ElCard,\n  ElCollapse,\n  ElCollapseItem,\n  ElEmpty,\n  ElRow,\n  ElBadge,\n  CollapseModelValue\n} 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\";\n\nimport { stylePrefix } from \"../../__builtins__/configs\";\nimport { ArrayBase } from \"../../array-base/src\";\nimport { composeExport } from \"../../__builtins__/shared\";\n\ntype ElCollapseProps = typeof ElCollapse;\ntype ElCollapseItemProps = typeof ElCollapseItem;\n\nexport type IArrayCollapseProps = ElCollapseProps & {\n  defaultOpenPanelCount?: number;\n};\n\nconst isAdditionComponent = (schema: ISchema) => {\n  return schema[\"x-component\"]?.indexOf(\"Addition\") > -1;\n};\n\nconst isIndexComponent = (schema: ISchema) => {\n  return schema[\"x-component\"]?.indexOf(\"Index\") > -1;\n};\n\nconst isRemoveComponent = (schema: ISchema) => {\n  return schema[\"x-component\"]?.indexOf(\"Remove\") > -1;\n};\n\nconst isMoveUpComponent = (schema: ISchema) => {\n  return schema[\"x-component\"]?.indexOf(\"MoveUp\") > -1;\n};\n\nconst isMoveDownComponent = (schema: ISchema) => {\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};\n\nconst range = (count: number) => Array.from({ length: count }).map((_, i) => i);\n\nconst takeDefaultActiveKeys = (\n  dataSourceLength: number,\n  defaultOpenPanelCount: number,\n  accordion = false\n) => {\n  if (accordion) {\n    return 0;\n  }\n  if (dataSourceLength < defaultOpenPanelCount) return range(dataSourceLength);\n\n  return range(defaultOpenPanelCount);\n};\n\nconst insertActiveKeys = (activeKeys: CollapseModelValue, index: number, accordion = false) => {\n  if (accordion) return index;\n  if ((activeKeys as number[]).length <= index) return (activeKeys as number[]).concat(index);\n  return (activeKeys as number[]).reduce((buf, key) => {\n    if (key < index) return buf.concat(key);\n    if (key === index) return buf.concat([key, key + 1]);\n    return buf.concat(key + 1);\n  }, [] as number[]);\n};\n\nexport const ArrayCollapseInner = observer(\n  defineComponent({\n    name: \"FArrayCollapse\",\n    props: {\n      defaultOpenPanelCount: {\n        type: Number,\n        default: 5\n      },\n      onChange: { type: Function }\n    },\n    setup(props, { attrs }) {\n      const fieldRef = useField<ArrayField>();\n      const schemaRef = useFieldSchema();\n\n      const prefixCls = `${stylePrefix}-array-collapse`;\n      const activeKeys: Ref<CollapseModelValue> = ref([]);\n\n      watchEffect(() => {\n        const field = fieldRef.value;\n        const dataSource = Array.isArray(field.value) ? field.value.slice() : [];\n        if (!field.modified && dataSource.length) {\n          activeKeys.value = takeDefaultActiveKeys(\n            dataSource.length,\n            props.defaultOpenPanelCount,\n            attrs.accordion as boolean\n          );\n        }\n      });\n\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.slice() : [];\n        if (!schema) throw new Error(\"can not found schema object\");\n\n        const renderItems = () => {\n          if (!dataSource.length) {\n            return null;\n          }\n\n          const items = dataSource?.map((item, index) => {\n            const items = Array.isArray(schema.items)\n              ? schema.items[index] || schema.items[0]\n              : schema.items;\n            const key = getKey(item, index);\n            const panelProps = field.query(`${field.address}.${index}`).get(\"componentProps\");\n            const props: ElCollapseItemProps = items?.[\"x-component-props\"];\n            const headerTitle = panelProps?.title || props.title || field.title;\n            const path = field.address.concat(index);\n            const errors = field.form.queryFeedbacks({\n              type: \"error\",\n              address: `${path}.**`\n            });\n\n            const title = h(\n              ArrayBase.Item,\n              {\n                index,\n                record: item\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                  errors.length\n                    ? h(\n                        ElBadge,\n                        {\n                          class: [`${prefixCls}-errors-badge`],\n                          value: errors.length\n                        },\n                        { default: () => headerTitle }\n                      )\n                    : headerTitle\n                ]\n              }\n            );\n            const extra = h(\n              ArrayBase.Item,\n              {\n                index,\n                record: item\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                ]\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\n            return h(\n              ElCollapseItem,\n              {\n                ...props,\n                ...panelProps,\n                name: index,\n                key\n              },\n              {\n                default: () => [\n                  h(\n                    ArrayBase.Item,\n                    {\n                      index,\n                      record: item\n                    },\n                    {\n                      default: () => [content]\n                    }\n                  )\n                ],\n                title: () => {\n                  return h(\n                    ElRow,\n                    {\n                      style: { flex: 1 },\n                      type: \"flex\",\n                      justify: \"space-between\"\n                    },\n                    {\n                      default: () => [\n                        // title(),\n                        // extra\n                        h(\"span\", {}, title),\n                        h(\"span\", {}, extra)\n                      ]\n                    }\n                  );\n                }\n              }\n            );\n          });\n\n          return h(\n            ElCollapse,\n            {\n              class: [`${prefixCls}-item`],\n              ...attrs,\n              modelValue: activeKeys.value,\n              onChange: (keys: CollapseModelValue) => {\n                activeKeys.value = keys;\n              }\n            },\n            {\n              default: () => [items]\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, { 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              add: (index: number) => {\n                activeKeys.value = insertActiveKeys(\n                  activeKeys.value,\n                  index,\n                  attrs.accordion as boolean\n                );\n              }\n            },\n            {\n              default: () => [renderEmpty(), renderItems(), renderAddition()]\n            }\n          )\n        );\n      };\n    }\n  })\n);\n\nexport const ArrayCollapseItem = defineComponent({\n  name: \"FArrayCollapseItem\",\n  setup(_props, { slots }) {\n    return () => h(\"div\", {}, slots);\n  }\n});\n\nexport const ArrayCollapse = composeExport(ArrayCollapseInner, {\n  Item: ArrayCollapseItem,\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 ArrayCollapse;\n"],"names":["items","props","schema"],"mappings":"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"}