| Server IP : 159.203.156.69 / Your IP : 216.73.217.172 Web Server : nginx/1.24.0 System : Linux main-ubuntu 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/tanviranik.com/node_modules/vinext/dist/server/ |
Upload File : |
//#region src/server/app-page-segment-state.ts
function isOptionalCatchAllSegment(segment) {
return segment.startsWith("[[...") && segment.endsWith("]]") && segment.length > 7;
}
function isCatchAllSegment(segment) {
return segment.startsWith("[...") && segment.endsWith("]") && segment.length > 5;
}
function isDynamicSegment(segment) {
return segment.startsWith("[") && segment.endsWith("]") && !segment.includes(".");
}
function isRouteGroupSegment(segment) {
return segment.startsWith("(") && segment.endsWith(")");
}
function formatParamSegmentValue(value) {
if (Array.isArray(value)) return value.join("/");
return value;
}
function readSegmentParam(segment) {
if (isOptionalCatchAllSegment(segment)) return {
name: segment.slice(5, -2),
type: "oc"
};
if (isCatchAllSegment(segment)) return {
name: segment.slice(4, -1),
type: "c"
};
if (isDynamicSegment(segment)) return {
name: segment.slice(1, -1),
type: "d"
};
return null;
}
function formatSegmentStateParamValue(param, params, fallbackSegment) {
const value = params[param.name];
if (param.type === "oc" && (value === void 0 || Array.isArray(value) && value.length === 0)) return "";
return formatParamSegmentValue(value) ?? fallbackSegment;
}
function resolveSingleSegmentStateKey(segment, params) {
const param = readSegmentParam(segment);
if (!param) return segment;
return `${param.name}|${formatSegmentStateParamValue(param, params, segment)}|${param.type}`;
}
function resolveAppPageChildSegments(routeSegments, treePosition, params) {
const rawSegments = routeSegments.slice(treePosition);
const resolvedSegments = [];
for (const segment of rawSegments) {
if (isOptionalCatchAllSegment(segment)) {
const paramValue = params[segment.slice(5, -2)];
if (Array.isArray(paramValue) && paramValue.length === 0) continue;
const resolvedValue = formatParamSegmentValue(paramValue);
if (resolvedValue !== void 0) resolvedSegments.push(resolvedValue);
continue;
}
if (isCatchAllSegment(segment)) {
const paramName = segment.slice(4, -1);
resolvedSegments.push(formatParamSegmentValue(params[paramName]) ?? segment);
continue;
}
if (isDynamicSegment(segment)) {
const paramName = segment.slice(1, -1);
resolvedSegments.push(formatParamSegmentValue(params[paramName]) ?? segment);
continue;
}
resolvedSegments.push(segment);
}
return resolvedSegments;
}
function resolveAppPageSegmentStateKey(routeSegments, treePosition, params) {
for (const segment of routeSegments.slice(treePosition)) if (!isRouteGroupSegment(segment)) return resolveSingleSegmentStateKey(segment, params);
return "";
}
function resolveAppPageRouteStateKey(routeSegments, params) {
const statePath = [];
for (const segment of routeSegments) if (!isRouteGroupSegment(segment)) statePath.push(resolveSingleSegmentStateKey(segment, params));
return statePath.length > 0 ? JSON.stringify(statePath) : "";
}
function resolveAppPageLeafSegmentStateKey(routeSegments, params) {
for (let treePosition = routeSegments.length - 1; treePosition >= 0; treePosition--) {
const segmentStateKey = resolveAppPageSegmentStateKey(routeSegments, treePosition, params);
if (segmentStateKey) return segmentStateKey;
}
return "";
}
//#endregion
export { resolveAppPageChildSegments, resolveAppPageLeafSegmentStateKey, resolveAppPageRouteStateKey, resolveAppPageSegmentStateKey };
//# sourceMappingURL=app-page-segment-state.js.map