@nocobase/flow-engine
Version:
A standalone flow engine for NocoBase, managing workflows, models, and actions.
98 lines (96 loc) • 3.42 kB
JavaScript
/**
* 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 ViewNavigation_exports = {};
__export(ViewNavigation_exports, {
ViewNavigation: () => ViewNavigation,
generatePathnameFromViewParams: () => generatePathnameFromViewParams
});
module.exports = __toCommonJS(ViewNavigation_exports);
function generatePathnameFromViewParams(viewParams) {
if (!viewParams || viewParams.length === 0) {
return "/admin";
}
const segments = ["admin"];
viewParams.forEach((viewParam, index) => {
if (index > 0) {
segments.push("view");
}
segments.push(viewParam.viewUid);
if (viewParam.tabUid) {
segments.push("tab", viewParam.tabUid);
}
if (viewParam.filterByTk) {
segments.push("filterbytk", viewParam.filterByTk);
}
if (viewParam.sourceId) {
segments.push("sourceid", viewParam.sourceId);
}
});
return "/" + segments.join("/");
}
__name(generatePathnameFromViewParams, "generatePathnameFromViewParams");
const _ViewNavigation = class _ViewNavigation {
viewStack;
ctx;
constructor(ctx, viewParams) {
this.viewStack = [...viewParams];
this.ctx = ctx;
}
changeTo(viewParam) {
if (this.viewStack.length === 0) {
this.viewStack.push(viewParam);
} else {
this.viewStack[this.viewStack.length - 1] = { ...this.viewStack[this.viewStack.length - 1], ...viewParam };
}
const newPathname = generatePathnameFromViewParams(this.viewStack);
this.ctx.router.navigate(newPathname, { replace: true });
}
navigateTo(viewParam, opts) {
const newViewPathname = generatePathnameFromViewParams([...this.viewStack, viewParam]);
const newPathname = newViewPathname;
if (location.pathname.endsWith(newPathname)) {
return this.ctx.router.navigate(-1);
}
this.ctx.router.navigate(newPathname, opts);
if (this.viewStack.length === 0) {
this.viewStack.push(viewParam);
}
}
back() {
const pathname = generatePathnameFromViewParams(this.viewStack);
if (location.pathname.endsWith(pathname)) {
this.ctx.router.navigate(-1);
}
}
};
__name(_ViewNavigation, "ViewNavigation");
let ViewNavigation = _ViewNavigation;
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
ViewNavigation,
generatePathnameFromViewParams
});