{"version":3,"file":"key-value.vue2.mjs","sources":["../../../../../../packages/components/key-value/src/key-value.vue"],"sourcesContent":["<!-- @ts-nocheck -->\r\n<template>\r\n  <div :class=\"bem.b()\">\r\n    <a-spin :spinning=\"props.loading\">\r\n      <div v-if=\"innerValue.length > 0\" :class=\"bem.e('list')\">\r\n        <key-value-item\r\n          v-for=\"(_item, idx) in innerValue\"\r\n          :key=\"_item.guid\"\r\n          :ref=\"(el) => setKeyValueItems(el, _item.guid)\"\r\n          v-model:value=\"innerValue[idx]\"\r\n          :idx=\"idx\"\r\n          :key-label=\"props.keyLabel\"\r\n          :value-label=\"props.valueLabel\"\r\n          :key-value-type-dict=\"keyValueTypeDict\"\r\n          :key-value-type=\"props.keyValueType\"\r\n          :key-type=\"props.keyType\"\r\n          :key-types=\"props.keyTypes\"\r\n          :value-type=\"props.valueType\"\r\n          :values=\"innerValue\"\r\n          :disabled=\"props.disabled\"\r\n          :disabled-value=\"props.disabledValue\"\r\n          :disabled-key=\"props.disabledKey\"\r\n          :disabled-delete=\"props.disabledDelete\"\r\n          :keep-last=\"props.keepLast\"\r\n          @delete=\"handleDelete(idx)\"\r\n        >\r\n          <template\r\n            v-for=\"item in Object.keys($slots)\"\r\n            :key=\"item\"\r\n            #[item]=\"data\"\r\n          >\r\n            <slot :name=\"item\" v-bind=\"data || {}\" :index=\"idx\"></slot>\r\n          </template>\r\n        </key-value-item>\r\n      </div>\r\n\r\n      <ll-button\r\n        :class=\"bem.e('add')\"\r\n        :loading=\"loading\"\r\n        :disabled=\"props.disabled || props.disabledAdd\"\r\n        @click=\"handleAddItem\"\r\n      >\r\n        <div :class=\"bem.e('plus')\">\r\n          <ll-icon\r\n            v-if=\"!loading\"\r\n            icon-name=\"icon-add\"\r\n            :class=\"bem.e('icon-add')\"\r\n          />\r\n          {{ props.addText }}\r\n        </div>\r\n      </ll-button>\r\n    </a-spin>\r\n  </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\n// @ts-nocheck\r\nimport { ref, computed, watch, nextTick } from 'vue'\r\nimport { Form } from 'ant-design-vue'\r\nimport { createNamespace, deepCompare, hasValue, guid } from '@ll-plus/utils'\r\nimport {\r\n  keyValueProps,\r\n  keyValueEmits,\r\n  getKeyValueItem,\r\n  type IKeyValueItem,\r\n  type IKeyValueReturn,\r\n  type IKeyValueAddEmits,\r\n} from './config'\r\nimport keyValueItem from './components/key-value-item.vue'\r\nimport type { FormColumn } from '@ll-plus/components'\r\n\r\ntype KeyValueItemInstance = InstanceType<typeof keyValueItem>\r\n\r\ndefineOptions({ name: 'LlKeyValue' })\r\n\r\nconst props = defineProps(keyValueProps)\r\nconst emits = defineEmits(keyValueEmits)\r\nconst bem = createNamespace('key-value')\r\nconst formItemContext = Form.useInjectFormItemContext()\r\n\r\nconst innerValue = ref<IKeyValueItem[]>(\r\n  !props.value || (props.value && !props.value.length)\r\n    ? ([{ key: null, value: null, guid: guid() }] as IKeyValueItem[])\r\n    : (props.value.map((e) => {\r\n        return {\r\n          ...e,\r\n          guid: guid(),\r\n        }\r\n      }) as IKeyValueItem[])\r\n)\r\nconst keyValueItems = ref<Record<string, KeyValueItemInstance>>({})\r\n\r\nconst setKeyValueItems = (\r\n  el: KeyValueItemInstance | null,\r\n  type: string\r\n): void => {\r\n  if (el) {\r\n    keyValueItems.value[type] = el\r\n  }\r\n}\r\n\r\nconst keyValueTypeDict = computed<Record<string, FormColumn>>(() => {\r\n  const obj: Record<string, FormColumn> = {}\r\n  props.keyTypes.forEach((e) => {\r\n    obj[e.value] = e.option\r\n  })\r\n  return obj\r\n})\r\n\r\nconst validate = async (): Promise<{ valid: boolean; errors?: any[] }> => {\r\n  await nextTick()\r\n\r\n  const validationPromises = Object.values(keyValueItems.value).map(\r\n    async (item) => {\r\n      try {\r\n        await item.validate()\r\n        return { item, valid: true }\r\n      } catch (error) {\r\n        console.error('Validation failed for item:', item, error)\r\n        return { item, valid: false, error }\r\n      }\r\n    }\r\n  )\r\n\r\n  const validationResults = await Promise.all(validationPromises)\r\n\r\n  const allValid = validationResults.every((result) => result.valid)\r\n  const errors = validationResults.filter((result) => !result.valid)\r\n\r\n  if (!allValid) {\r\n    console.log('Validation errors:', errors)\r\n    return { valid: false, errors }\r\n  }\r\n\r\n  return { valid: true }\r\n}\r\n\r\nconst resetFields = async (): Promise<void> => {\r\n  await nextTick()\r\n  for (const i of Object.values(keyValueItems.value)) {\r\n    if (i) {\r\n      i.resetFields()\r\n    }\r\n  }\r\n}\r\n\r\nconst clearValidate = async (): Promise<void> => {\r\n  await nextTick()\r\n  for (const i of Object.values(keyValueItems.value)) {\r\n    if (i) {\r\n      i.clearValidate()\r\n    }\r\n  }\r\n}\r\n\r\nconst handleAddItem = async (): Promise<void> => {\r\n  const { valid } = await validate()\r\n  if (!valid) return\r\n  innerValue.value.push(getKeyValueItem())\r\n  emits('add', {\r\n    index: innerValue.value.length - 1,\r\n    item: innerValue.value[innerValue.value.length - 1],\r\n    value: innerValue.value,\r\n  } as IKeyValueAddEmits)\r\n}\r\n\r\nconst handleDelete = (idx: number): void => {\r\n  if (innerValue.value.length === 1) {\r\n    innerValue.value = [{ key: null, value: null, guid: guid() }]\r\n  } else {\r\n    innerValue.value.splice(idx, 1)\r\n    emits('delete', idx)\r\n  }\r\n}\r\n\r\nconst getValue = (\r\n  val: IKeyValueItem[] | IKeyValueReturn[]\r\n): IKeyValueReturn[] => {\r\n  return val\r\n    .filter((e) => hasValue(e.key) || hasValue(e.value))\r\n    .map((e) => ({\r\n      key: e.key,\r\n      value: e.value,\r\n    }))\r\n}\r\n\r\nwatch(\r\n  () => props.value,\r\n  (n: IKeyValueReturn[]) => {\r\n    if (!n || (n && !n.length)) return\r\n    const copyInnerValue = getValue(innerValue.value)\r\n    const copyPropsValue = getValue(n)\r\n    if (deepCompare(copyInnerValue, copyPropsValue)) return\r\n    innerValue.value = [\r\n      ...(n && n.length > 0\r\n        ? n\r\n        : props.keepLast\r\n        ? [{ key: null, value: null, guid: guid() }]\r\n        : n),\r\n    ].map((e) => {\r\n      return {\r\n        ...e,\r\n        guid: guid(),\r\n      }\r\n    })\r\n  },\r\n  {\r\n    immediate: true,\r\n    deep: true,\r\n  }\r\n)\r\n\r\nwatch(\r\n  () => innerValue.value,\r\n  (val: IKeyValueItem[]) => {\r\n    const copyInnerValue = getValue(val)\r\n    const copyPropsValue = getValue(props.value)\r\n    if (deepCompare(copyInnerValue, copyPropsValue)) return\r\n    try {\r\n      formItemContext.onFieldChange()\r\n      emits('change', copyInnerValue)\r\n      emits('update:value', copyInnerValue)\r\n    } catch (error) {\r\n      console.error(error)\r\n    }\r\n  },\r\n  {\r\n    deep: true,\r\n  }\r\n)\r\n\r\ndefineExpose({\r\n  validate,\r\n  resetFields,\r\n  clearValidate,\r\n})\r\n</script>\r\n"],"names":["_createElementBlock","_normalizeClass","_unref","_createVNode","_openBlock","_Fragment","_renderList","_createBlock","keyValueItem","$slots","_withCtx","_renderSlot","_mergeProps","loading","_createElementVNode","_toDisplayString"],"mappings":"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"}