UNPKG

tav-ui

Version:
111 lines (108 loc) 4.46 kB
import { computed } from 'vue'; import '../../../../../locales/index2.mjs'; import '../../../../../utils/index2.mjs'; import '../../utils/index2.mjs'; import { tavI18n } from '../../../../../locales/transfer2.mjs'; import { isViewBtnVisible, isDeleteBtnVisible, isUpdateBtnVisible, isDownloadWatermarkBtnVisible, isDownloadBtnVisible, isLogBtnVisible, isVersionColVisible } from '../../utils/visibile2.mjs'; import { validateVersionCachesHasApiFile } from '../../utils/validate2.mjs'; import { isFunction } from '../../../../../utils/is2.mjs'; function defaultActionsBuilder(mode, enabledPreview, enabledUpdate, enabledOwner, enabledVersion, row, handleViewBtnClick, handleUpdateBtnClick, handleDownloadWatermarkBtnClick, handleDownloadBtnClick, handleDeleteBtnClick, handleLogBtnClick, globalConfigUserInfo, VersionCachesController) { const DEFAULT_ACTIONS = [...enabledPreview ? [{ field: "view", label: tavI18n("Tav.file.actions.1"), enabled: isViewBtnVisible(row.hyperlink), icon: "ant-design:eye-outlined", onClick: () => { handleViewBtnClick(row); } }] : [], { field: "delete", label: tavI18n("Tav.file.actions.6"), enabled: isDeleteBtnVisible(mode, enabledOwner, globalConfigUserInfo.value, row.owner), icon: "ant-design:delete-outlined", popConfirm: { title: tavI18n("Tav.file.message.9"), confirm: async () => { try { await handleDeleteBtnClick(row); return true; } catch (error) { console.warn("[tavui TaFileCard] delete has error: ", error); return true; } } } }, ...isUpdateBtnVisible(enabledUpdate, mode, row.hyperlink, row.auto, enabledOwner, globalConfigUserInfo.value, row.owner) ? [{ field: "update", label: tavI18n("Tav.file.actions.5"), enabled: isUpdateBtnVisible(enabledUpdate, mode, row.hyperlink, row.auto, enabledOwner, globalConfigUserInfo.value, row.owner), disabled: mode === "create" && !validateVersionCachesHasApiFile(VersionCachesController["caches"][row.actualId]), icon: "ant-design:upload-outlined", onClick: async () => { await handleUpdateBtnClick(row); } }] : [], { field: "downloadWatermark", label: tavI18n("Tav.file.actions.4"), enabled: isDownloadWatermarkBtnVisible(row.hyperlink, row.watermarkFileDownload), icon: "ant-design:cloud-download-outlined", onClick: async () => { await handleDownloadWatermarkBtnClick(row); } }, { field: "download", label: tavI18n("Tav.file.actions.3"), enabled: isDownloadBtnVisible(row.hyperlink, row.sourceFileDownload), icon: "ant-design:download-outlined", onClick: async () => { await handleDownloadBtnClick(row); } }, { field: "log", label: tavI18n("Tav.file.actions.7"), enabled: isLogBtnVisible(enabledOwner, globalConfigUserInfo.value, row.owner), icon: "ant-design:file-text-outlined", onClick: async () => { await handleLogBtnClick(row); } }, { field: "version", label: tavI18n("Tav.file.columns.4"), enabled: isVersionColVisible(enabledVersion, row.hyperlink, row.auto), icon: "ant-design:interaction-outlined", onClick: async () => { await handleLogBtnClick(row); } }]; return DEFAULT_ACTIONS; } function useActions(options) { const { mergedProps, handleViewBtnClick, handleUpdateBtnClick, handleDownloadWatermarkBtnClick, handleDownloadBtnClick, handleDeleteBtnClick, handleLogBtnClick, globalConfigUserInfo, VersionCachesController } = options; return computed(() => (row) => { const actions = mergedProps.value.actions; const mode = mergedProps.value.mode; const enabledPreview = mergedProps.value.enabledPreview; const enabledUpdate = mergedProps.value.enabledUpdate; const enabledOwner = mergedProps.value.enabledOwner; const enabledVersion = mergedProps.value.enabledVersion; let result = defaultActionsBuilder(mode, enabledPreview, enabledUpdate, enabledOwner, enabledVersion, row, handleViewBtnClick, handleUpdateBtnClick, handleDownloadWatermarkBtnClick, handleDownloadBtnClick, handleDeleteBtnClick, handleLogBtnClick, globalConfigUserInfo, VersionCachesController); if (actions && isFunction(actions)) { result = actions(result, { row }); } return result; }); } export { defaultActionsBuilder, useActions }; //# sourceMappingURL=use-actions2.mjs.map