UNPKG

@nocobase/flow-engine

Version:

A standalone flow engine for NocoBase, managing workflows, models, and actions.

111 lines (109 loc) 4.23 kB
/** * This file is part of the NocoBase (R) project. * Copyright (c) 2020-2024 NocoBase Co., Ltd. * Authors: NocoBase Team. * * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. * For more information, please refer to: https://www.nocobase.com/agreement. */ var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var StepSettings_exports = {}; __export(StepSettings_exports, { openStepSettings: () => openStepSettings, openStepSettingsDialog: () => import_StepSettingsDialog.openStepSettingsDialog, openStepSettingsDrawer: () => import_StepSettingsDrawer.openStepSettingsDrawer }); module.exports = __toCommonJS(StepSettings_exports); var import_reactive = require("@formily/reactive"); var import_antd = require("antd"); var import_flowContext = require("../../../../flowContext"); var import_utils = require("../../../../utils"); var import_StepSettingsDialog = require("./StepSettingsDialog"); var import_StepSettingsDrawer = require("./StepSettingsDrawer"); const openStepSettings = /* @__PURE__ */ __name(async ({ model, flowKey, stepKey, width = 600, title }) => { var _a; const t = (0, import_utils.getT)(model); const flow = model.getFlow(flowKey); const step = (_a = flow == null ? void 0 : flow.steps) == null ? void 0 : _a[stepKey]; if (!flow) { import_antd.message.error(t("Flow with key {{flowKey}} not found", { flowKey })); throw new Error(t("Flow with key {{flowKey}} not found", { flowKey })); } if (!step) { import_antd.message.error(t("Step with key {{stepKey}} not found", { stepKey })); throw new Error(t("Step with key {{stepKey}} not found", { stepKey })); } const ctx = new import_flowContext.FlowRuntimeContext(model, flowKey, "settings"); (0, import_utils.setupRuntimeContextSteps)(ctx, flow.steps, model, flowKey); ctx.defineProperty("currentStep", { value: step }); const resolvedUiMode = await (0, import_utils.resolveUiMode)(step.uiMode, ctx); let settingMode; let uiModeProps = {}; let cleanup; if (typeof resolvedUiMode === "string") { settingMode = resolvedUiMode; } else if (typeof resolvedUiMode === "object") { settingMode = resolvedUiMode.type || "dialog"; uiModeProps = (0, import_reactive.model)(resolvedUiMode.props || {}); const disposer = (0, import_reactive.autorun)(() => { (0, import_utils.resolveUiMode)(step.uiMode, ctx).then((newUiMode) => { if (typeof newUiMode === "object") { Object.assign(uiModeProps, newUiMode.props || {}); } }).catch((error) => { console.warn("Error resolving uiMode:", error); }); }); cleanup = /* @__PURE__ */ __name(() => { disposer(); }, "cleanup"); } else { settingMode = "dialog"; } if (settingMode === "drawer") { return (0, import_StepSettingsDrawer.openStepSettingsDrawer)({ model, flowKey, stepKey, drawerWidth: width, drawerTitle: title, ctx, uiModeProps, cleanup }); } else { return (0, import_StepSettingsDialog.openStepSettingsDialog)({ model, flowKey, stepKey, dialogWidth: width, dialogTitle: title, ctx, uiModeProps, cleanup }); } }, "openStepSettings"); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { openStepSettings, openStepSettingsDialog, openStepSettingsDrawer });