{"version":3,"file":"current.mjs","sources":["../../../../../../../packages/components/table/src/store/current.ts"],"sourcesContent":["// @ts-nocheck\nimport { getCurrentInstance, ref, unref } from 'vue'\nimport { getRowIdentity } from '../util'\n\nimport type { Ref } from 'vue'\nimport type { Table } from '../table/defaults'\nimport type { WatcherPropsData } from '.'\n\nfunction useCurrent<T>(watcherData: WatcherPropsData<T>) {\n  const instance = getCurrentInstance() as Table<T>\n  const _currentRowKey = ref<string>(null)\n  const currentRow: Ref<T> = ref(null)\n\n  const setCurrentRowKey = (key: string) => {\n    instance.store.assertRowKey()\n    _currentRowKey.value = key\n    setCurrentRowByKey(key)\n  }\n\n  const restoreCurrentRowKey = () => {\n    _currentRowKey.value = null\n  }\n\n  const setCurrentRowByKey = (key: string) => {\n    const { data, rowKey } = watcherData\n    let _currentRow = null\n    if (rowKey.value) {\n      _currentRow = (unref(data) || []).find(\n        (item) => getRowIdentity(item, rowKey.value) === key\n      )\n    }\n    currentRow.value = _currentRow\n    instance.emit('current-change', currentRow.value, null)\n  }\n\n  const updateCurrentRow = (_currentRow: T) => {\n    const oldCurrentRow = currentRow.value\n    if (_currentRow && _currentRow !== oldCurrentRow) {\n      currentRow.value = _currentRow\n      instance.emit('current-change', currentRow.value, oldCurrentRow)\n      return\n    }\n    if (!_currentRow && oldCurrentRow) {\n      currentRow.value = null\n      instance.emit('current-change', null, oldCurrentRow)\n    }\n  }\n\n  const updateCurrentRowData = () => {\n    const rowKey = watcherData.rowKey.value\n    const data = watcherData.data.value || []\n    const oldCurrentRow = currentRow.value\n    if (!data.includes(oldCurrentRow) && oldCurrentRow) {\n      if (rowKey) {\n        const currentRowKey = getRowIdentity(oldCurrentRow, rowKey)\n        setCurrentRowByKey(currentRowKey)\n      } else {\n        currentRow.value = null\n      }\n      if (currentRow.value === null) {\n        instance.emit('current-change', null, oldCurrentRow)\n      }\n    } else if (_currentRowKey.value) {\n      setCurrentRowByKey(_currentRowKey.value)\n      restoreCurrentRowKey()\n    }\n  }\n\n  return {\n    setCurrentRowKey,\n    restoreCurrentRowKey,\n    setCurrentRowByKey,\n    updateCurrentRow,\n    updateCurrentRowData,\n    states: {\n      _currentRowKey,\n      currentRow,\n    },\n  }\n}\n\nexport default useCurrent\n"],"names":[],"mappings":"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"}