{"version":3,"file":"use-actions2.mjs","sources":["../../../../../../../../../packages/components/file/src/FileCard/hooks/use-actions.tsx"],"sourcesContent":["import { type ComputedRef, type Ref, computed } from 'vue'\nimport { tavI18n } from '@tav-ui/locales'\nimport { isFunction } from '@tav-ui/utils'\nimport { type FileCardListItemAction, type FileCardProps } from '../types'\nimport { type FileActionUploadApiResponseRecord, type GlobalConfigFileProps } from '../../typings'\nimport {\n  isDeleteBtnVisible,\n  isDownloadBtnVisible,\n  isDownloadWatermarkBtnVisible,\n  isLogBtnVisible,\n  isUpdateBtnVisible,\n  isVersionColVisible,\n  isViewBtnVisible,\n  validateVersionCachesHasApiFile,\n} from '../../utils'\nimport { type VersionCaches } from '../../hooks'\n\nexport function defaultActionsBuilder(\n  mode: FileCardProps['mode'],\n  enabledPreview: FileCardProps['enabledPreview'],\n  enabledUpdate: FileCardProps['enabledUpdate'],\n  enabledOwner: FileCardProps['enabledOwner'],\n  enabledVersion: FileCardProps['enabledVersion'],\n  row: FileActionUploadApiResponseRecord,\n  handleViewBtnClick: (row: FileActionUploadApiResponseRecord) => void,\n  handleUpdateBtnClick: (row: FileActionUploadApiResponseRecord) => Promise<void>,\n  handleDownloadWatermarkBtnClick: (row: FileActionUploadApiResponseRecord) => Promise<void>,\n  handleDownloadBtnClick: (row: FileActionUploadApiResponseRecord) => Promise<void>,\n  handleDeleteBtnClick: (row: FileActionUploadApiResponseRecord) => Promise<void>,\n  handleLogBtnClick: (row: FileActionUploadApiResponseRecord) => Promise<void>,\n  globalConfigUserInfo: Ref<Record<string, any>>,\n  VersionCachesController: VersionCaches\n) {\n  const DEFAULT_ACTIONS: FileCardListItemAction[] = [\n    ...(enabledPreview\n      ? [\n          {\n            field: 'view',\n            label: tavI18n('Tav.file.actions.1'),\n            enabled: isViewBtnVisible(row.hyperlink!),\n            icon: 'ant-design:eye-outlined',\n            onClick: () => {\n              handleViewBtnClick(row)\n            },\n          },\n        ]\n      : []),\n    {\n      field: 'delete',\n      label: tavI18n('Tav.file.actions.6'),\n      enabled: isDeleteBtnVisible(mode, enabledOwner, globalConfigUserInfo.value, row.owner),\n      icon: 'ant-design:delete-outlined',\n      popConfirm: {\n        title: tavI18n('Tav.file.message.9'),\n        confirm: async () => {\n          try {\n            await handleDeleteBtnClick(row)\n            return true\n          } catch (error) {\n            console.warn('[tavui TaFileCard] delete has error: ', error)\n            return true\n          }\n        },\n      },\n    },\n    ...(isUpdateBtnVisible(\n      enabledUpdate,\n      mode,\n      row.hyperlink!,\n      row.auto!,\n      enabledOwner,\n      globalConfigUserInfo.value,\n      row.owner\n    )\n      ? [\n          {\n            field: 'update',\n            label: tavI18n('Tav.file.actions.5'),\n            enabled: isUpdateBtnVisible(\n              enabledUpdate,\n              mode,\n              row.hyperlink!,\n              row.auto!,\n              enabledOwner,\n              globalConfigUserInfo.value,\n              row.owner\n            ),\n            disabled:\n              mode === 'create' &&\n              !validateVersionCachesHasApiFile(VersionCachesController['caches'][row.actualId!]),\n            icon: 'ant-design:upload-outlined',\n            onClick: async () => {\n              await handleUpdateBtnClick(row)\n            },\n          },\n        ]\n      : []),\n    {\n      field: 'downloadWatermark',\n      label: tavI18n('Tav.file.actions.4'),\n      enabled: isDownloadWatermarkBtnVisible(row.hyperlink!, row.watermarkFileDownload!),\n      icon: 'ant-design:cloud-download-outlined',\n      onClick: async () => {\n        await handleDownloadWatermarkBtnClick(row)\n      },\n    },\n    {\n      field: 'download',\n      label: tavI18n('Tav.file.actions.3'),\n      enabled: isDownloadBtnVisible(row.hyperlink!, row.sourceFileDownload!),\n      icon: 'ant-design:download-outlined',\n      onClick: async () => {\n        await handleDownloadBtnClick(row)\n      },\n    },\n    {\n      field: 'log',\n      label: tavI18n('Tav.file.actions.7'),\n      enabled: isLogBtnVisible(enabledOwner, globalConfigUserInfo.value, row.owner),\n      icon: 'ant-design:file-text-outlined',\n      onClick: async () => {\n        await handleLogBtnClick(row)\n      },\n    },\n    {\n      field: 'version',\n      label: tavI18n('Tav.file.columns.4'),\n      enabled: isVersionColVisible(enabledVersion, row.hyperlink, row.auto),\n      icon: 'ant-design:interaction-outlined',\n      onClick: async () => {\n        await handleLogBtnClick(row)\n      },\n    },\n  ]\n\n  return DEFAULT_ACTIONS\n}\n\nexport function useActions(options: {\n  mergedProps: ComputedRef<GlobalConfigFileProps & FileCardProps>\n  handleViewBtnClick: (row: FileActionUploadApiResponseRecord) => void\n  handleUpdateBtnClick: (row: FileActionUploadApiResponseRecord) => Promise<void>\n  handleDownloadWatermarkBtnClick: (row: FileActionUploadApiResponseRecord) => Promise<void>\n  handleDownloadBtnClick: (row: FileActionUploadApiResponseRecord) => Promise<void>\n  handleDeleteBtnClick: (row: FileActionUploadApiResponseRecord) => Promise<void>\n  handleLogBtnClick: (row: FileActionUploadApiResponseRecord) => Promise<void>\n  globalConfigUserInfo: Ref<Record<string, any>>\n  VersionCachesController: VersionCaches\n}) {\n  const {\n    mergedProps,\n    handleViewBtnClick,\n    handleUpdateBtnClick,\n    handleDownloadWatermarkBtnClick,\n    handleDownloadBtnClick,\n    handleDeleteBtnClick,\n    handleLogBtnClick,\n    globalConfigUserInfo,\n    VersionCachesController,\n  } = options\n\n  return computed(() => (row: FileActionUploadApiResponseRecord) => {\n    const actions = mergedProps.value.actions\n    const mode = mergedProps.value.mode\n    const enabledPreview = mergedProps.value.enabledPreview\n    const enabledUpdate = mergedProps.value.enabledUpdate\n    const enabledOwner = mergedProps.value.enabledOwner\n    const enabledVersion = mergedProps.value.enabledVersion\n\n    let result = defaultActionsBuilder(\n      mode,\n      enabledPreview,\n      enabledUpdate,\n      enabledOwner,\n      enabledVersion,\n      row,\n      handleViewBtnClick,\n      handleUpdateBtnClick,\n      handleDownloadWatermarkBtnClick,\n      handleDownloadBtnClick,\n      handleDeleteBtnClick,\n      handleLogBtnClick,\n      globalConfigUserInfo,\n      VersionCachesController\n    )\n\n    if (actions && isFunction(actions)) {\n      result = actions(result, { row })\n    }\n\n    return result\n  })\n}\n"],"names":["defaultActionsBuilder","mode","enabledPreview","enabledUpdate","enabledOwner","enabledVersion","row","handleViewBtnClick","handleUpdateBtnClick","handleDownloadWatermarkBtnClick","handleDownloadBtnClick","handleDeleteBtnClick","handleLogBtnClick","globalConfigUserInfo","VersionCachesController","DEFAULT_ACTIONS","field","label","tavI18n","enabled","isViewBtnVisible","hyperlink","icon","onClick","isDeleteBtnVisible","value","owner","popConfirm","title","confirm","error","console","warn","isUpdateBtnVisible","auto","disabled","validateVersionCachesHasApiFile","actualId","isDownloadWatermarkBtnVisible","watermarkFileDownload","isDownloadBtnVisible","sourceFileDownload","isLogBtnVisible","isVersionColVisible","useActions","options","mergedProps","computed","actions","result","isFunction"],"mappings":"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"}