{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/array-items/src/index.ts"],"sourcesContent":["import { computed, defineComponent, h, ref } from 'vue'\nimport { useNamespace } from 'element-plus'\nimport { moveArrayElement, useSortable } from '@vueuse/integrations/useSortable'\nimport { composeExport, isArray } from '@element-plus/utils'\nimport { DIV_TAG } from '@element-plus/constants'\nimport { useField } from '@element-plus/components/array-base/src/hooks'\nimport ArrayBase from '@element-plus/components/array-base'\nimport { sortHandleKls } from '@element-plus/components/array-base/src/constant'\nimport type { IFieldContext } from '@element-plus/components/array-base/src/array-base'\n\nexport const ArrayItemsInner = defineComponent({\n  name: 'ElArrayItems',\n  setup(props, { slots }) {\n    const ns = useNamespace('array-items')\n    const prefixCls = ns.b()\n\n    const field: IFieldContext = useField()\n    const { getKey, keyMap } = ArrayBase.useKey()\n\n    const target = ref<HTMLDivElement>()\n\n    const dataSource = computed(() =>\n      field ? (isArray(field.fieldValue) ? field.fieldValue.slice() : []) : []\n    )\n\n    useSortable(target, [], {\n      animation: 200,\n      handle: sortHandleKls,\n      onUpdate: (e: any) => {\n        const { oldIndex, newIndex } = e\n\n        // update list\n        if (field && isArray(field.fieldValue)) {\n          moveArrayElement(field.fieldValue, oldIndex, newIndex, e)\n        }\n\n        // update key\n        if (isArray(keyMap)) {\n          keyMap.splice(newIndex, 0, keyMap.splice(oldIndex, 1)[0])\n        }\n      },\n    })\n\n    return () => {\n      const renderItems = () => {\n        const renderItem = ({\n          record,\n          index,\n        }: {\n          record: any\n          index: number\n        }) => {\n          const key = getKey(index)\n          return h(\n            DIV_TAG,\n            {\n              key,\n              class: [ns.b('list-item')],\n            },\n            h(\n              ArrayBase.Item,\n              {\n                key,\n                index,\n                record,\n              },\n              {\n                default: () =>\n                  slots?.default?.({\n                    $index: index,\n                    $record: record,\n                    field,\n                  }),\n              }\n            )\n          )\n        }\n\n        return h(\n          DIV_TAG,\n          {\n            ref: target,\n            class: [ns.b('list')],\n          },\n          dataSource.value.map((data: any, index: number) =>\n            renderItem({ record: data, index })\n          )\n        )\n      }\n\n      return h(\n        ArrayBase,\n        {\n          keyMap,\n        },\n        {\n          default: () =>\n            h(\n              DIV_TAG,\n              {\n                class: [prefixCls],\n              },\n              {\n                default: () => [\n                  slots?.prepend?.({ field, keyMap, getKey }),\n                  renderItems(),\n                  slots?.addition?.({ field, keyMap, getKey }),\n                  slots?.append?.({ field, keyMap, getKey }),\n                ],\n              }\n            ),\n        }\n      )\n    }\n  },\n})\n\nexport default composeExport(ArrayItemsInner, {\n  Addition: ArrayBase.Addition,\n  Remove: ArrayBase.Remove,\n  SortHandle: ArrayBase.SortHandle,\n  MoveDown: ArrayBase.MoveDown,\n  MoveUp: ArrayBase.MoveUp,\n  Index: ArrayBase.Index,\n})\n"],"names":["ArrayBase"],"mappings":"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"}