@stn-uiux/pub-ui-react 0.1.89 → 0.1.90
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +183 -5
- package/dist/index.js +1369 -661
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -8439,18 +8439,19 @@ var StnStack = forwardRef38(function StnStack2({
|
|
|
8439
8439
|
});
|
|
8440
8440
|
|
|
8441
8441
|
// src/components/topology/stnTopologyShared.ts
|
|
8442
|
-
var
|
|
8442
|
+
var TOPOLOGY_GRAPH_NODE_SIZE = {
|
|
8443
8443
|
xs: 6,
|
|
8444
|
-
// var(--stn-topology-node-radius-xs) = 6px (직경 12px, --stn-topology-node-size-xs)
|
|
8444
|
+
// var(--stn-topology-graph-node-radius-xs) = 6px (직경 12px, --stn-topology-graph-node-size-xs)
|
|
8445
8445
|
sm: 8,
|
|
8446
|
-
// var(--stn-topology-node-radius-sm) = 8px (직경 16px, --stn-topology-node-size-sm)
|
|
8446
|
+
// var(--stn-topology-graph-node-radius-sm) = 8px (직경 16px, --stn-topology-graph-node-size-sm)
|
|
8447
8447
|
md: 10,
|
|
8448
|
-
// var(--stn-topology-node-radius-md) = 10px (직경 20px, --stn-topology-node-size-md)
|
|
8448
|
+
// var(--stn-topology-graph-node-radius-md) = 10px (직경 20px, --stn-topology-graph-node-size-md)
|
|
8449
8449
|
lg: 12,
|
|
8450
|
-
// var(--stn-topology-node-radius-lg) = 12px (직경 24px, --stn-topology-node-size-lg)
|
|
8450
|
+
// var(--stn-topology-graph-node-radius-lg) = 12px (직경 24px, --stn-topology-graph-node-size-lg)
|
|
8451
8451
|
xl: 14
|
|
8452
|
-
// var(--stn-topology-node-radius-xl) = 14px (직경 28px, --stn-topology-node-size-xl)
|
|
8452
|
+
// var(--stn-topology-graph-node-radius-xl) = 14px (직경 28px, --stn-topology-graph-node-size-xl)
|
|
8453
8453
|
};
|
|
8454
|
+
var TOPOLOGY_NODE_SIZE_MAP = TOPOLOGY_GRAPH_NODE_SIZE;
|
|
8454
8455
|
var STN_TOPOLOGY_NODE_SHAPES = [
|
|
8455
8456
|
"circle",
|
|
8456
8457
|
"square",
|
|
@@ -8562,13 +8563,14 @@ var STN_TOPOLOGY_STATUS_COLORS = {
|
|
|
8562
8563
|
}
|
|
8563
8564
|
};
|
|
8564
8565
|
var TOPOLOGY_NODE_STROKE = 1.2;
|
|
8565
|
-
var
|
|
8566
|
-
xs: { r:
|
|
8567
|
-
sm: { r:
|
|
8568
|
-
md: { r:
|
|
8569
|
-
lg: { r:
|
|
8570
|
-
xl: { r:
|
|
8566
|
+
var TOPOLOGY_RING_NODE_SIZE = {
|
|
8567
|
+
xs: { r: 12, size: 24, icon: 14, countFont: 9, labelFont: 11, statusFont: 10, stroke: TOPOLOGY_NODE_STROKE },
|
|
8568
|
+
sm: { r: 16, size: 32, icon: 16, countFont: 10, labelFont: 11, statusFont: 10, stroke: TOPOLOGY_NODE_STROKE },
|
|
8569
|
+
md: { r: 20, size: 40, icon: 18, countFont: 11, labelFont: 12, statusFont: 11, stroke: TOPOLOGY_NODE_STROKE },
|
|
8570
|
+
lg: { r: 24, size: 48, icon: 22, countFont: 12, labelFont: 13, statusFont: 12, stroke: TOPOLOGY_NODE_STROKE },
|
|
8571
|
+
xl: { r: 28, size: 56, icon: 26, countFont: 13, labelFont: 14, statusFont: 13, stroke: TOPOLOGY_NODE_STROKE }
|
|
8571
8572
|
};
|
|
8573
|
+
var STN_TOPOLOGY_NODE_SIZE = TOPOLOGY_RING_NODE_SIZE;
|
|
8572
8574
|
function formatTopologyCount(count) {
|
|
8573
8575
|
if (count == null || count === "") return "0";
|
|
8574
8576
|
if (typeof count === "string") return count;
|
|
@@ -8682,7 +8684,7 @@ function StnTopologyNodeItem({
|
|
|
8682
8684
|
fontSize: metrics.countFont,
|
|
8683
8685
|
fontWeight: 800,
|
|
8684
8686
|
lineHeight: 1,
|
|
8685
|
-
color: color || "var(--stn-
|
|
8687
|
+
color: color || "var(--stn-text-primary)"
|
|
8686
8688
|
},
|
|
8687
8689
|
children: countText
|
|
8688
8690
|
}
|
|
@@ -9248,17 +9250,17 @@ function renderTopologyNodeShapeGeometry({
|
|
|
9248
9250
|
const strokeW = strokeWidth ?? 1.4;
|
|
9249
9251
|
const strokeStyle = { strokeWidth: strokeW };
|
|
9250
9252
|
if (shape === "square") {
|
|
9251
|
-
const s = r *
|
|
9253
|
+
const s = r * 2;
|
|
9252
9254
|
const half = s / 2;
|
|
9253
|
-
const rx = Math.max(1.5, 2 * (r / 10));
|
|
9255
|
+
const rx = Math.max(1.5, 2.5 * (r / 10));
|
|
9254
9256
|
const sSmall = s * innerRatio;
|
|
9255
9257
|
const halfSmall = sSmall / 2;
|
|
9256
9258
|
const rxSmall = rx * 0.75;
|
|
9257
|
-
const
|
|
9258
|
-
const
|
|
9259
|
-
const
|
|
9259
|
+
const sEqual = r * 1.7;
|
|
9260
|
+
const halfEqual = sEqual / 2;
|
|
9261
|
+
const rxEqual = rx * 0.85;
|
|
9260
9262
|
if (variant === "solid") {
|
|
9261
|
-
return /* @__PURE__ */ jsx62("rect", { x: -
|
|
9263
|
+
return /* @__PURE__ */ jsx62("rect", { x: -halfEqual, y: -halfEqual, width: sEqual, height: sEqual, rx: rxEqual, fill: statusColor });
|
|
9262
9264
|
}
|
|
9263
9265
|
if (variant === "combined") {
|
|
9264
9266
|
return /* @__PURE__ */ jsxs49("g", { children: [
|
|
@@ -9266,7 +9268,7 @@ function renderTopologyNodeShapeGeometry({
|
|
|
9266
9268
|
/* @__PURE__ */ jsx62("rect", { x: -halfSmall, y: -halfSmall, width: sSmall, height: sSmall, rx: rxSmall, fill: statusColor })
|
|
9267
9269
|
] });
|
|
9268
9270
|
}
|
|
9269
|
-
return /* @__PURE__ */ jsx62("rect", { x: -
|
|
9271
|
+
return /* @__PURE__ */ jsx62("rect", { x: -halfEqual, y: -halfEqual, width: sEqual, height: sEqual, rx: rxEqual, fill: surfaceBg, stroke: statusColor, strokeWidth: strokeW, style: strokeStyle });
|
|
9270
9272
|
}
|
|
9271
9273
|
if (shape === "triangle") {
|
|
9272
9274
|
const R2 = r * 1.25;
|
|
@@ -9769,6 +9771,43 @@ function StnTopologyGraphMinimap({ className, style }) {
|
|
|
9769
9771
|
}
|
|
9770
9772
|
);
|
|
9771
9773
|
}
|
|
9774
|
+
function StnTopologyGraphZoomLevel({
|
|
9775
|
+
resetOnClick = true,
|
|
9776
|
+
targetZoom = 1,
|
|
9777
|
+
className,
|
|
9778
|
+
style
|
|
9779
|
+
}) {
|
|
9780
|
+
const { zoom, setZoom, isMinimapOpen, showMinimap } = useStnTopologyGraph();
|
|
9781
|
+
const percent = Math.round(zoom * 100);
|
|
9782
|
+
const minimapModifier = showMinimap ? isMinimapOpen ? "stn-topology-zoom-badge--with-minimap" : "stn-topology-zoom-badge--with-minimap-collapsed" : void 0;
|
|
9783
|
+
return /* @__PURE__ */ jsx63(
|
|
9784
|
+
"div",
|
|
9785
|
+
{
|
|
9786
|
+
className: cn("stn-topology-zoom-badge", minimapModifier, resetOnClick && "is-clickable", className),
|
|
9787
|
+
style,
|
|
9788
|
+
onClick: (e) => {
|
|
9789
|
+
e.stopPropagation();
|
|
9790
|
+
if (resetOnClick) {
|
|
9791
|
+
setZoom(targetZoom);
|
|
9792
|
+
}
|
|
9793
|
+
},
|
|
9794
|
+
title: `\uD604\uC7AC \uC90C \uBC30\uC728: ${percent}%${resetOnClick ? " (\uD074\uB9AD \uC2DC 100% \uB9AC\uC14B)" : ""}`,
|
|
9795
|
+
"aria-label": `\uD604\uC7AC \uC90C \uBC30\uC728: ${percent}%`,
|
|
9796
|
+
role: resetOnClick ? "button" : void 0,
|
|
9797
|
+
tabIndex: resetOnClick ? 0 : void 0,
|
|
9798
|
+
onKeyDown: (e) => {
|
|
9799
|
+
if (resetOnClick && (e.key === "Enter" || e.key === " ")) {
|
|
9800
|
+
e.preventDefault();
|
|
9801
|
+
setZoom(targetZoom);
|
|
9802
|
+
}
|
|
9803
|
+
},
|
|
9804
|
+
children: /* @__PURE__ */ jsxs50("span", { className: "stn-topology-zoom-badge__text", children: [
|
|
9805
|
+
percent,
|
|
9806
|
+
"%"
|
|
9807
|
+
] })
|
|
9808
|
+
}
|
|
9809
|
+
);
|
|
9810
|
+
}
|
|
9772
9811
|
function render3DNodeGlyph({
|
|
9773
9812
|
shape,
|
|
9774
9813
|
variant,
|
|
@@ -9855,13 +9894,17 @@ function renderCurrentNodeRing({
|
|
|
9855
9894
|
}
|
|
9856
9895
|
) });
|
|
9857
9896
|
}
|
|
9858
|
-
function StnTopologyGraphViewport({ className, style }) {
|
|
9897
|
+
function StnTopologyGraphViewport({ className, style, viewBox: customViewBox }) {
|
|
9859
9898
|
const {
|
|
9860
9899
|
viewMode,
|
|
9861
9900
|
renderGridLines,
|
|
9862
9901
|
projectedLinks,
|
|
9863
9902
|
sortedNodes,
|
|
9864
9903
|
zoom,
|
|
9904
|
+
fixedNodeSize,
|
|
9905
|
+
calibrateScreenPixels,
|
|
9906
|
+
screenPixelsRatio = 1,
|
|
9907
|
+
dynamicViewBox,
|
|
9865
9908
|
selectedId,
|
|
9866
9909
|
onNodeClick,
|
|
9867
9910
|
onNodeContextMenu,
|
|
@@ -9880,6 +9923,8 @@ function StnTopologyGraphViewport({ className, style }) {
|
|
|
9880
9923
|
setHoveredNodeId,
|
|
9881
9924
|
hasDraggedRef
|
|
9882
9925
|
} = useStnTopologyGraph();
|
|
9926
|
+
const calibration = calibrateScreenPixels && screenPixelsRatio > 0 ? 1 / screenPixelsRatio : 1;
|
|
9927
|
+
const activeViewBox = customViewBox ?? dynamicViewBox ?? "-250 -250 500 500";
|
|
9883
9928
|
const [hoveredLinkKey, setHoveredLinkKey] = useState17(null);
|
|
9884
9929
|
const isAnyLinkHovered = hoveredLinkKey !== null;
|
|
9885
9930
|
return /* @__PURE__ */ jsxs50(
|
|
@@ -9888,7 +9933,7 @@ function StnTopologyGraphViewport({ className, style }) {
|
|
|
9888
9933
|
className: cn("stn-topology-graph__svg", className),
|
|
9889
9934
|
width: "100%",
|
|
9890
9935
|
height: "100%",
|
|
9891
|
-
viewBox:
|
|
9936
|
+
viewBox: activeViewBox,
|
|
9892
9937
|
style: { display: "block", pointerEvents: "auto", ...style },
|
|
9893
9938
|
onClick: (e) => {
|
|
9894
9939
|
onCanvasClick?.(e);
|
|
@@ -9925,7 +9970,8 @@ function StnTopologyGraphViewport({ className, style }) {
|
|
|
9925
9970
|
if (isDot) {
|
|
9926
9971
|
const midSX = (n1.sx + n2.sx) / 2;
|
|
9927
9972
|
const midSY = (n1.sy + n2.sy) / 2;
|
|
9928
|
-
const
|
|
9973
|
+
const avgScale = n1 && n2 ? (n1.scale + n2.scale) / 2 : 1;
|
|
9974
|
+
const dotRadius = fixedNodeSize ? 3 * calibration : Math.max(1.5, 3 * avgScale * calibration);
|
|
9929
9975
|
const dotFill = link.color ?? statusColor ?? "var(--stn-topology-node-normal)";
|
|
9930
9976
|
dotElement = /* @__PURE__ */ jsx63("circle", { cx: midSX, cy: midSY, r: dotRadius, fill: dotFill, opacity: effectiveLineOpacity });
|
|
9931
9977
|
}
|
|
@@ -10044,7 +10090,7 @@ function StnTopologyGraphViewport({ className, style }) {
|
|
|
10044
10090
|
),
|
|
10045
10091
|
/* @__PURE__ */ jsx63("g", { className: "stn-topology-nodes-group", children: sortedNodes.map((n) => {
|
|
10046
10092
|
const depthScale = 550 / (550 + n.depth);
|
|
10047
|
-
const scale = Math.max(0.
|
|
10093
|
+
const scale = fixedNodeSize ? calibration : Math.max(0.3, n.scale * calibration);
|
|
10048
10094
|
const baseOpacity = Math.max(0.75, Math.min(1, depthScale));
|
|
10049
10095
|
const opacity = resolveTopologyOpacity(n.opacity, baseOpacity);
|
|
10050
10096
|
const isSelected = (Array.isArray(selectedId) ? selectedId.some((sid) => String(sid) === String(n.id)) : selectedId !== void 0 && selectedId !== null && String(selectedId) === String(n.id)) || Boolean(n.isCurrent) || Boolean(n.isSelected);
|
|
@@ -10062,7 +10108,7 @@ function StnTopologyGraphViewport({ className, style }) {
|
|
|
10062
10108
|
const statusColor = n.color ? n.color : isCritical ? "var(--stn-grade-critical)" : isMajor ? "var(--stn-grade-major)" : isMinor ? "var(--stn-grade-minor)" : isWarning ? "var(--stn-grade-warning)" : isPrimary || isCore ? "var(--stn-primary)" : isNormal || isNeutral ? "var(--stn-topology-node-normal)" : "var(--stn-topology-node-normal)";
|
|
10063
10109
|
const baseRadius = typeof n.size === "number" ? n.size : n.size && TOPOLOGY_NODE_SIZE_MAP[n.size] ? TOPOLOGY_NODE_SIZE_MAP[n.size] : isCore ? TOPOLOGY_NODE_SIZE_MAP.lg : TOPOLOGY_NODE_SIZE_MAP.md;
|
|
10064
10110
|
const r = baseRadius * scale;
|
|
10065
|
-
const strokeWidth = "var(--stn-topology-node-stroke, 1.2px)";
|
|
10111
|
+
const strokeWidth = calibrateScreenPixels ? Number((1.2 * calibration).toFixed(2)) : "var(--stn-topology-node-stroke, 1.2px)";
|
|
10066
10112
|
const rOuter = Math.max(baseRadius, (baseRadius + 2) * scale);
|
|
10067
10113
|
const pulseRing = hasPulse && /* @__PURE__ */ jsxs50("g", { children: [
|
|
10068
10114
|
/* @__PURE__ */ jsx63(
|
|
@@ -10103,9 +10149,10 @@ function StnTopologyGraphViewport({ className, style }) {
|
|
|
10103
10149
|
if (renderBadge) {
|
|
10104
10150
|
topBadgeElement = renderBadge(n, { r, position: "top", badgeText });
|
|
10105
10151
|
} else {
|
|
10106
|
-
const
|
|
10107
|
-
const
|
|
10108
|
-
const badgeScale = 0.
|
|
10152
|
+
const badgeText2 = String(n.badge);
|
|
10153
|
+
const bW = Math.max(140, badgeText2.length * 14 + 36);
|
|
10154
|
+
const badgeScale = calibrateScreenPixels ? Number((0.95 * calibration).toFixed(2)) : fixedNodeSize ? 0.6 : 0.6 * Math.max(0.65, Math.min(1.4, depthScale));
|
|
10155
|
+
const bH = Math.max(30, Math.round(26 * badgeScale));
|
|
10109
10156
|
const badgeHalfHeight = 18 * badgeScale / 2;
|
|
10110
10157
|
const posY = -r - 2.5 - badgeHalfHeight - bH / 2;
|
|
10111
10158
|
topBadgeElement = /* @__PURE__ */ jsx63(
|
|
@@ -10126,7 +10173,7 @@ function StnTopologyGraphViewport({ className, style }) {
|
|
|
10126
10173
|
{
|
|
10127
10174
|
color: n.badgeColor ?? "primary",
|
|
10128
10175
|
appearance: n.badgeAppearance ?? "solid",
|
|
10129
|
-
badgeContent:
|
|
10176
|
+
badgeContent: badgeText2,
|
|
10130
10177
|
...n.badgeProps
|
|
10131
10178
|
}
|
|
10132
10179
|
)
|
|
@@ -10147,9 +10194,9 @@ function StnTopologyGraphViewport({ className, style }) {
|
|
|
10147
10194
|
} else if (renderBadge && n.badgePlacement === "bottom") {
|
|
10148
10195
|
bottomLabelElement = renderBadge(n, { r, position: "bottom", badgeText: labelText });
|
|
10149
10196
|
} else if (mode === "badge") {
|
|
10150
|
-
const bW =
|
|
10151
|
-
const
|
|
10152
|
-
const
|
|
10197
|
+
const bW = Math.max(160, Math.min(360, labelText.length * 12 + 40));
|
|
10198
|
+
const badgeScale = calibrateScreenPixels ? Number((0.95 * calibration).toFixed(2)) : fixedNodeSize ? 0.6 : 0.6 * Math.max(0.65, Math.min(1.4, depthScale));
|
|
10199
|
+
const bH = Math.max(30, Math.round(24 * badgeScale));
|
|
10153
10200
|
const badgeHalfHeight = 16 * badgeScale / 2;
|
|
10154
10201
|
const posY = r + 2.5 + badgeHalfHeight - bH / 2;
|
|
10155
10202
|
bottomLabelElement = /* @__PURE__ */ jsx63(
|
|
@@ -10180,6 +10227,7 @@ function StnTopologyGraphViewport({ className, style }) {
|
|
|
10180
10227
|
}
|
|
10181
10228
|
);
|
|
10182
10229
|
} else {
|
|
10230
|
+
const plainFontSize = calibrateScreenPixels ? Number((9.5 * calibration).toFixed(1)) : fixedNodeSize ? TOPOLOGY_LINK_LABEL_SPEC.baseFontSize : Number((TOPOLOGY_LINK_LABEL_SPEC.baseFontSize * Math.max(0.65, Math.min(1.4, depthScale))).toFixed(1));
|
|
10183
10231
|
bottomLabelElement = /* @__PURE__ */ jsx63("g", { className: "stn-topology-node__bottom-label stn-topology-node__bottom-label--plain", transform: `translate(0, ${bottomY})`, children: /* @__PURE__ */ jsx63(
|
|
10184
10232
|
"text",
|
|
10185
10233
|
{
|
|
@@ -10189,11 +10237,11 @@ function StnTopologyGraphViewport({ className, style }) {
|
|
|
10189
10237
|
dominantBaseline: "middle",
|
|
10190
10238
|
fill: "var(--stn-topology-node-label-fg, var(--stn-text-primary))",
|
|
10191
10239
|
stroke: "var(--stn-topology-node-label-halo, var(--stn-elevation-surface-0))",
|
|
10192
|
-
strokeWidth:
|
|
10240
|
+
strokeWidth: TOPOLOGY_LINK_LABEL_SPEC.haloStrokeWidth,
|
|
10193
10241
|
paintOrder: "stroke",
|
|
10194
10242
|
strokeLinejoin: "round",
|
|
10195
|
-
fontSize:
|
|
10196
|
-
fontWeight:
|
|
10243
|
+
fontSize: plainFontSize,
|
|
10244
|
+
fontWeight: 600,
|
|
10197
10245
|
letterSpacing: "-0.2px",
|
|
10198
10246
|
children: labelText
|
|
10199
10247
|
}
|
|
@@ -10220,7 +10268,7 @@ function StnTopologyGraphViewport({ className, style }) {
|
|
|
10220
10268
|
if (hasDraggedRef.current) {
|
|
10221
10269
|
return;
|
|
10222
10270
|
}
|
|
10223
|
-
onNodeClick?.(n);
|
|
10271
|
+
onNodeClick?.(n, e);
|
|
10224
10272
|
},
|
|
10225
10273
|
onContextMenu: (e) => {
|
|
10226
10274
|
if (onNodeContextMenu) {
|
|
@@ -10244,7 +10292,7 @@ function StnTopologyGraphViewport({ className, style }) {
|
|
|
10244
10292
|
const isTooltipVisible = Boolean(showTooltips) || hoveredNodeId === n.id;
|
|
10245
10293
|
if (!isTooltipVisible || !n.label) return null;
|
|
10246
10294
|
const depthScale = 550 / (550 + n.depth);
|
|
10247
|
-
const scale = Math.max(0.4, n.scale);
|
|
10295
|
+
const scale = fixedNodeSize ? calibration : Math.max(0.4, n.scale * calibration);
|
|
10248
10296
|
const baseRadius = typeof n.size === "number" ? n.size : n.size && TOPOLOGY_NODE_SIZE_MAP[n.size] ? TOPOLOGY_NODE_SIZE_MAP[n.size] : Boolean(n.isCore) ? TOPOLOGY_NODE_SIZE_MAP.lg : TOPOLOGY_NODE_SIZE_MAP.md;
|
|
10249
10297
|
const r = baseRadius * scale;
|
|
10250
10298
|
const isCritical = n.status === "critical";
|
|
@@ -10256,14 +10304,18 @@ function StnTopologyGraphViewport({ className, style }) {
|
|
|
10256
10304
|
const tooltipBg = tone === "primary" ? "var(--stn-primary)" : tone === "critical" ? "var(--stn-grade-critical)" : tone === "warning" ? "var(--stn-grade-warning)" : tone === "major" ? "var(--stn-grade-major)" : tone === "minor" ? "var(--stn-grade-minor)" : "var(--stn-tooltip-bg-neutral)";
|
|
10257
10305
|
const tooltipFg = "var(--stn-tooltip-fg-neutral)";
|
|
10258
10306
|
const hasBadge = Boolean(n.badge) && (n.badgePlacement ?? "top") === "top";
|
|
10259
|
-
const
|
|
10260
|
-
const
|
|
10261
|
-
const
|
|
10262
|
-
const
|
|
10263
|
-
const
|
|
10307
|
+
const topBadgeScale = calibrateScreenPixels ? Number((0.95 * calibration).toFixed(2)) : fixedNodeSize ? 0.6 : 0.6 * Math.max(0.65, Math.min(1.4, depthScale));
|
|
10308
|
+
const badgeHeight = hasBadge ? 18 * topBadgeScale : 0;
|
|
10309
|
+
const tooltipScale = calibrateScreenPixels ? calibration : fixedNodeSize ? 1 : Math.max(0.65, Math.min(1.4, depthScale));
|
|
10310
|
+
const tooltipH = 18 * tooltipScale;
|
|
10311
|
+
const arrowH = 3.5 * tooltipScale;
|
|
10312
|
+
const arrowW = 7 * tooltipScale;
|
|
10313
|
+
const gap = 3.5 * tooltipScale;
|
|
10264
10314
|
const tooltipBoxY = -r - badgeHeight - gap - arrowH - tooltipH;
|
|
10265
10315
|
const charCount = n.label.length;
|
|
10266
|
-
const
|
|
10316
|
+
const tooltipFontSize = Number((10 * tooltipScale).toFixed(1));
|
|
10317
|
+
const tooltipW = Math.max(32 * tooltipScale, charCount * 6.8 * tooltipScale + 16 * tooltipScale);
|
|
10318
|
+
const rx = 3 * tooltipScale;
|
|
10267
10319
|
const nodeOpacity = resolveTopologyOpacity(n.opacity, Math.max(0.75, Math.min(1, depthScale)));
|
|
10268
10320
|
return /* @__PURE__ */ jsx63(
|
|
10269
10321
|
"g",
|
|
@@ -10284,7 +10336,7 @@ function StnTopologyGraphViewport({ className, style }) {
|
|
|
10284
10336
|
y: 0,
|
|
10285
10337
|
width: tooltipW,
|
|
10286
10338
|
height: tooltipH,
|
|
10287
|
-
rx
|
|
10339
|
+
rx,
|
|
10288
10340
|
fill: tooltipBg
|
|
10289
10341
|
}
|
|
10290
10342
|
),
|
|
@@ -10303,7 +10355,7 @@ function StnTopologyGraphViewport({ className, style }) {
|
|
|
10303
10355
|
textAnchor: "middle",
|
|
10304
10356
|
dominantBaseline: "central",
|
|
10305
10357
|
fill: tooltipFg,
|
|
10306
|
-
fontSize:
|
|
10358
|
+
fontSize: tooltipFontSize,
|
|
10307
10359
|
fontWeight: 600,
|
|
10308
10360
|
letterSpacing: "-0.1px",
|
|
10309
10361
|
children: n.label
|
|
@@ -10336,6 +10388,9 @@ var StnTopologyGraphInternal = forwardRef39(
|
|
|
10336
10388
|
showModeToggle = true,
|
|
10337
10389
|
showToolbar = true,
|
|
10338
10390
|
showMinimap = false,
|
|
10391
|
+
showZoomLevel = false,
|
|
10392
|
+
fixedNodeSize = false,
|
|
10393
|
+
calibrateScreenPixels = false,
|
|
10339
10394
|
showTooltips = false,
|
|
10340
10395
|
showNodeLabels = true,
|
|
10341
10396
|
nodeLabelMode = "badge",
|
|
@@ -10417,6 +10472,58 @@ var StnTopologyGraphInternal = forwardRef39(
|
|
|
10417
10472
|
yawRef.current = yaw;
|
|
10418
10473
|
const zoomRef = useRef11(zoom);
|
|
10419
10474
|
zoomRef.current = zoom;
|
|
10475
|
+
const [containerDimensions, setContainerDimensions] = useState17({
|
|
10476
|
+
width: 500,
|
|
10477
|
+
height: 500
|
|
10478
|
+
});
|
|
10479
|
+
const [screenPixelsRatio, setScreenPixelsRatio] = useState17(1);
|
|
10480
|
+
useEffect14(() => {
|
|
10481
|
+
const container = containerRef.current;
|
|
10482
|
+
if (!container) return;
|
|
10483
|
+
const updateDimensionsAndScale = () => {
|
|
10484
|
+
const rect = container.getBoundingClientRect();
|
|
10485
|
+
if (rect.width > 0 && rect.height > 0) {
|
|
10486
|
+
setContainerDimensions({ width: rect.width, height: rect.height });
|
|
10487
|
+
}
|
|
10488
|
+
if (calibrateScreenPixels) {
|
|
10489
|
+
const svg = container.querySelector("svg.stn-topology-graph__svg");
|
|
10490
|
+
const ctm = svg?.getScreenCTM();
|
|
10491
|
+
if (ctm && ctm.a > 0) {
|
|
10492
|
+
setScreenPixelsRatio(ctm.a);
|
|
10493
|
+
} else if (rect.width > 0 && rect.height > 0) {
|
|
10494
|
+
const minDim = Math.min(rect.width, rect.height);
|
|
10495
|
+
setScreenPixelsRatio(minDim / 500);
|
|
10496
|
+
}
|
|
10497
|
+
}
|
|
10498
|
+
};
|
|
10499
|
+
updateDimensionsAndScale();
|
|
10500
|
+
const ro = new ResizeObserver(() => {
|
|
10501
|
+
updateDimensionsAndScale();
|
|
10502
|
+
});
|
|
10503
|
+
ro.observe(container);
|
|
10504
|
+
window.addEventListener("resize", updateDimensionsAndScale);
|
|
10505
|
+
return () => {
|
|
10506
|
+
ro.disconnect();
|
|
10507
|
+
window.removeEventListener("resize", updateDimensionsAndScale);
|
|
10508
|
+
};
|
|
10509
|
+
}, [calibrateScreenPixels]);
|
|
10510
|
+
const dynamicViewBox = useMemo4(() => {
|
|
10511
|
+
const { width, height: height2 } = containerDimensions;
|
|
10512
|
+
if (width <= 0 || height2 <= 0) return "-250 -250 500 500";
|
|
10513
|
+
const aspect = width / height2;
|
|
10514
|
+
let vWidth = 500;
|
|
10515
|
+
let vHeight = 500;
|
|
10516
|
+
if (aspect >= 1) {
|
|
10517
|
+
vWidth = 500 * aspect;
|
|
10518
|
+
vHeight = 500;
|
|
10519
|
+
} else {
|
|
10520
|
+
vWidth = 500;
|
|
10521
|
+
vHeight = 500 / aspect;
|
|
10522
|
+
}
|
|
10523
|
+
const minX = -vWidth / 2;
|
|
10524
|
+
const minY = -vHeight / 2;
|
|
10525
|
+
return `${minX.toFixed(1)} ${minY.toFixed(1)} ${vWidth.toFixed(1)} ${vHeight.toFixed(1)}`;
|
|
10526
|
+
}, [containerDimensions]);
|
|
10420
10527
|
useEffect14(() => {
|
|
10421
10528
|
setNodeList((prev) => {
|
|
10422
10529
|
if (prev === effectiveNodes) return prev;
|
|
@@ -10704,6 +10811,12 @@ var StnTopologyGraphInternal = forwardRef39(
|
|
|
10704
10811
|
setProjectionType,
|
|
10705
10812
|
isMinimapOpen,
|
|
10706
10813
|
setIsMinimapOpen,
|
|
10814
|
+
showMinimap,
|
|
10815
|
+
showZoomLevel,
|
|
10816
|
+
fixedNodeSize,
|
|
10817
|
+
calibrateScreenPixels,
|
|
10818
|
+
screenPixelsRatio,
|
|
10819
|
+
dynamicViewBox,
|
|
10707
10820
|
handleResetWorld,
|
|
10708
10821
|
handleZoom,
|
|
10709
10822
|
handleToggleFullscreen,
|
|
@@ -10751,7 +10864,8 @@ var StnTopologyGraphInternal = forwardRef39(
|
|
|
10751
10864
|
showModeToggle && /* @__PURE__ */ jsx63(StnTopologyGraphModeToggle, {}),
|
|
10752
10865
|
/* @__PURE__ */ jsx63(StnTopologyGraphViewport, {}),
|
|
10753
10866
|
showToolbar && /* @__PURE__ */ jsx63(StnTopologyGraphToolbar, {}),
|
|
10754
|
-
showMinimap && /* @__PURE__ */ jsx63(StnTopologyGraphMinimap, {})
|
|
10867
|
+
showMinimap && /* @__PURE__ */ jsx63(StnTopologyGraphMinimap, {}),
|
|
10868
|
+
showZoomLevel && /* @__PURE__ */ jsx63(StnTopologyGraphZoomLevel, {})
|
|
10755
10869
|
] }),
|
|
10756
10870
|
tooltip.visible && /* @__PURE__ */ jsx63(
|
|
10757
10871
|
"div",
|
|
@@ -10790,6 +10904,7 @@ StnTopologyGraph2.LinkGlyph = StnTopologyLinkGlyph;
|
|
|
10790
10904
|
StnTopologyGraph2.ModeToggle = StnTopologyGraphModeToggle;
|
|
10791
10905
|
StnTopologyGraph2.Toolbar = StnTopologyGraphToolbar;
|
|
10792
10906
|
StnTopologyGraph2.Minimap = StnTopologyGraphMinimap;
|
|
10907
|
+
StnTopologyGraph2.ZoomLevel = StnTopologyGraphZoomLevel;
|
|
10793
10908
|
StnTopologyGraph2.Viewport = StnTopologyGraphViewport;
|
|
10794
10909
|
StnTopologyGraph2.displayName = "StnTopologyGraph";
|
|
10795
10910
|
|
|
@@ -11009,9 +11124,595 @@ var StnTopologyNodeContextMenu = forwardRef40(
|
|
|
11009
11124
|
);
|
|
11010
11125
|
StnTopologyNodeContextMenu.displayName = "StnTopologyNodeContextMenu";
|
|
11011
11126
|
|
|
11127
|
+
// src/components/topology/StnTopologyNodeDetailPopover.tsx
|
|
11128
|
+
import { forwardRef as forwardRef41 } from "react";
|
|
11129
|
+
import { jsx as jsx65, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
11130
|
+
var DEFAULT_TUNNELS = [
|
|
11131
|
+
{ id: "t1", source: "NODE-4", target: "NODE-3", count: 6, bandwidthText: "200M / 1G", utilization: 20 },
|
|
11132
|
+
{ id: "t2", source: "NODE-2", target: "NODE-3", count: 0, bandwidthText: "200M / 1G", utilization: 20 },
|
|
11133
|
+
{ id: "t3", source: "NODE-6", target: "NODE-3", count: 2, bandwidthText: "100M / 1G", utilization: 10 },
|
|
11134
|
+
{ id: "t4", source: "NODE-7", target: "NODE-3", count: 3, bandwidthText: "100M / 1G", utilization: 10 }
|
|
11135
|
+
];
|
|
11136
|
+
var StnTopologyNodeDetailPopover = forwardRef41(function StnTopologyNodeDetailPopover2({ target, onClose, onConnectDevice, data: propData, className, ...rest }, ref) {
|
|
11137
|
+
if (!target) return null;
|
|
11138
|
+
const { node, mouseX, mouseY, data: targetData } = target;
|
|
11139
|
+
const data = propData ?? targetData;
|
|
11140
|
+
const nodeLabel = node.label ?? String(node.id);
|
|
11141
|
+
const nodeIp = data?.ip ?? "1.1.1.2";
|
|
11142
|
+
const tunnels = data?.tunnels ?? DEFAULT_TUNNELS.map((t) => ({
|
|
11143
|
+
...t,
|
|
11144
|
+
target: nodeLabel,
|
|
11145
|
+
source: t.source === nodeLabel ? "NODE-1" : t.source
|
|
11146
|
+
}));
|
|
11147
|
+
const syncStatus = data?.syncStatus ?? "failure";
|
|
11148
|
+
const syncStatusLabel = data?.syncStatusLabel ?? (syncStatus === "failure" ? "\uC2E4\uD328" : "\uC815\uC0C1");
|
|
11149
|
+
const syncLastTime = data?.syncLastTime ?? "2026-11-02 15:20";
|
|
11150
|
+
const syncMethod = data?.syncMethod ?? "\xB7 \uC790\uB3D9(\uC8FC\uAE30 \uC218\uC9D1)";
|
|
11151
|
+
const syncFailureReason = data?.syncFailureReason ?? "\uC7A5\uBE44\uAC00 SNMP \uC5D0 \uC751\uB2F5\uD558\uC9C0 \uC54A\uC74C";
|
|
11152
|
+
return /* @__PURE__ */ jsx65(
|
|
11153
|
+
StnPopover,
|
|
11154
|
+
{
|
|
11155
|
+
ref,
|
|
11156
|
+
open: Boolean(target),
|
|
11157
|
+
anchorReference: "anchorPosition",
|
|
11158
|
+
anchorPosition: { top: mouseY, left: mouseX },
|
|
11159
|
+
anchorOrigin: { vertical: "top", horizontal: "left" },
|
|
11160
|
+
transformOrigin: { vertical: "top", horizontal: "left" },
|
|
11161
|
+
onClose,
|
|
11162
|
+
hideBackdrop: false,
|
|
11163
|
+
paperClassName: "stn-topology-popover__paper",
|
|
11164
|
+
...rest,
|
|
11165
|
+
children: /* @__PURE__ */ jsx65("div", { className: "stn-topology-popover__wrapper", children: /* @__PURE__ */ jsx65(StnCard, { variant: "floating", radius: "md", padding: "md", children: /* @__PURE__ */ jsxs52(StnStack, { direction: "column", spacing: 1.25, children: [
|
|
11166
|
+
/* @__PURE__ */ jsxs52(StnStack, { direction: "row", justifyContent: "space-between", alignItems: "center", children: [
|
|
11167
|
+
/* @__PURE__ */ jsx65(StnText, { variant: "body-2", weight: "bold", children: "\uB178\uB4DC \uC815\uBCF4" }),
|
|
11168
|
+
/* @__PURE__ */ jsx65(
|
|
11169
|
+
StnButton,
|
|
11170
|
+
{
|
|
11171
|
+
variant: "ghost",
|
|
11172
|
+
size: "sm",
|
|
11173
|
+
shape: "square",
|
|
11174
|
+
title: "\uB2EB\uAE30",
|
|
11175
|
+
"aria-label": "\uB178\uB4DC \uC815\uBCF4 \uB2EB\uAE30",
|
|
11176
|
+
icon: /* @__PURE__ */ jsx65(StnIcon, { name: "line/x", size: 14 }),
|
|
11177
|
+
onClick: onClose
|
|
11178
|
+
}
|
|
11179
|
+
)
|
|
11180
|
+
] }),
|
|
11181
|
+
/* @__PURE__ */ jsxs52(StnStack, { direction: "column", spacing: 0.25, children: [
|
|
11182
|
+
/* @__PURE__ */ jsx65(StnText, { variant: "heading-3", weight: "bold", children: nodeLabel }),
|
|
11183
|
+
/* @__PURE__ */ jsx65(StnText, { variant: "caption", color: "secondary", children: nodeIp })
|
|
11184
|
+
] }),
|
|
11185
|
+
/* @__PURE__ */ jsx65("div", { children: /* @__PURE__ */ jsx65(
|
|
11186
|
+
StnButton,
|
|
11187
|
+
{
|
|
11188
|
+
variant: "contained",
|
|
11189
|
+
color: "primary",
|
|
11190
|
+
size: "sm",
|
|
11191
|
+
onClick: () => onConnectDevice?.(node),
|
|
11192
|
+
children: "\uC7A5\uBE44 \uC811\uC18D"
|
|
11193
|
+
}
|
|
11194
|
+
) }),
|
|
11195
|
+
/* @__PURE__ */ jsx65(StnCard, { variant: "flat", radius: "sm", padding: "sm", children: /* @__PURE__ */ jsxs52(StnStack, { direction: "column", spacing: 0.75, children: [
|
|
11196
|
+
/* @__PURE__ */ jsx65(StnText, { variant: "caption", color: "secondary", children: "\uC7A5\uBE44 \uB3D9\uAE30\uD654" }),
|
|
11197
|
+
/* @__PURE__ */ jsxs52(StnStack, { direction: "row", spacing: 0.75, alignItems: "center", children: [
|
|
11198
|
+
/* @__PURE__ */ jsx65(
|
|
11199
|
+
StnBadge,
|
|
11200
|
+
{
|
|
11201
|
+
color: syncStatus === "failure" ? "critical" : "success",
|
|
11202
|
+
appearance: "subtle",
|
|
11203
|
+
badgeContent: syncStatusLabel
|
|
11204
|
+
}
|
|
11205
|
+
),
|
|
11206
|
+
/* @__PURE__ */ jsxs52(StnText, { variant: "caption", color: "secondary", children: [
|
|
11207
|
+
"\uB9C8\uC9C0\uB9C9 \uB3D9\uAE30\uD654 ",
|
|
11208
|
+
syncLastTime
|
|
11209
|
+
] })
|
|
11210
|
+
] }),
|
|
11211
|
+
/* @__PURE__ */ jsx65(StnText, { variant: "caption", color: "secondary", children: syncMethod }),
|
|
11212
|
+
/* @__PURE__ */ jsx65(StnText, { variant: "caption", weight: "medium", children: syncFailureReason })
|
|
11213
|
+
] }) }),
|
|
11214
|
+
/* @__PURE__ */ jsx65(StnDivider, {}),
|
|
11215
|
+
/* @__PURE__ */ jsxs52(StnStack, { direction: "row", justifyContent: "space-between", alignItems: "center", children: [
|
|
11216
|
+
/* @__PURE__ */ jsx65(StnText, { variant: "body-3", weight: "bold", children: data?.tunnelSectionTitle ?? "\uC5F0\uACB0 \uAD6C\uAC04 \uD130\uB110 \uD604\uD669" }),
|
|
11217
|
+
/* @__PURE__ */ jsx65(StnText, { variant: "caption", color: "secondary", children: data?.tunnelSectionCountText ?? `${tunnels.length}\uAC1C \uAD6C\uAC04` })
|
|
11218
|
+
] }),
|
|
11219
|
+
/* @__PURE__ */ jsx65(StnStack, { direction: "column", spacing: 0.75, children: tunnels.map((tunnel) => /* @__PURE__ */ jsx65(StnCard, { variant: "flat", radius: "sm", padding: "sm", children: /* @__PURE__ */ jsxs52(StnStack, { direction: "column", spacing: 0.5, children: [
|
|
11220
|
+
/* @__PURE__ */ jsxs52(StnStack, { direction: "row", justifyContent: "space-between", alignItems: "center", children: [
|
|
11221
|
+
/* @__PURE__ */ jsxs52(StnText, { variant: "body-3", weight: "bold", children: [
|
|
11222
|
+
tunnel.source,
|
|
11223
|
+
" \u2192 ",
|
|
11224
|
+
tunnel.target
|
|
11225
|
+
] }),
|
|
11226
|
+
/* @__PURE__ */ jsx65(
|
|
11227
|
+
StnBadge,
|
|
11228
|
+
{
|
|
11229
|
+
color: "primary",
|
|
11230
|
+
appearance: "subtle",
|
|
11231
|
+
showZero: true,
|
|
11232
|
+
badgeContent: `${tunnel.count}\uAC1C`
|
|
11233
|
+
}
|
|
11234
|
+
)
|
|
11235
|
+
] }),
|
|
11236
|
+
/* @__PURE__ */ jsxs52(StnStack, { direction: "row", spacing: 0.75, alignItems: "center", children: [
|
|
11237
|
+
/* @__PURE__ */ jsx65(
|
|
11238
|
+
StnText,
|
|
11239
|
+
{
|
|
11240
|
+
variant: "caption",
|
|
11241
|
+
color: "secondary",
|
|
11242
|
+
className: "stn-topology-popover__nowrap",
|
|
11243
|
+
children: tunnel.bandwidthText ?? "0M / 0M"
|
|
11244
|
+
}
|
|
11245
|
+
),
|
|
11246
|
+
/* @__PURE__ */ jsx65("div", { className: "stn-topology-popover__progress-wrap", children: /* @__PURE__ */ jsx65(
|
|
11247
|
+
StnProgressBar,
|
|
11248
|
+
{
|
|
11249
|
+
value: tunnel.utilization ?? 0,
|
|
11250
|
+
max: 100,
|
|
11251
|
+
size: "sm",
|
|
11252
|
+
tone: "success"
|
|
11253
|
+
}
|
|
11254
|
+
) }),
|
|
11255
|
+
/* @__PURE__ */ jsx65(
|
|
11256
|
+
StnText,
|
|
11257
|
+
{
|
|
11258
|
+
variant: "caption",
|
|
11259
|
+
weight: "bold",
|
|
11260
|
+
className: "stn-topology-popover__nowrap",
|
|
11261
|
+
children: tunnel.utilization != null ? `${tunnel.utilization}%` : "-"
|
|
11262
|
+
}
|
|
11263
|
+
)
|
|
11264
|
+
] })
|
|
11265
|
+
] }) }, tunnel.id)) })
|
|
11266
|
+
] }) }) })
|
|
11267
|
+
}
|
|
11268
|
+
);
|
|
11269
|
+
});
|
|
11270
|
+
|
|
11271
|
+
// src/components/topology/StnTopologyLinkDetailPopover.tsx
|
|
11272
|
+
import { forwardRef as forwardRef42 } from "react";
|
|
11273
|
+
import { jsx as jsx66, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
11274
|
+
var DEFAULT_LSP_LIST = [
|
|
11275
|
+
{ id: "1", name: "test1_NODE-1_TO_NODE-6", bandwidth: "100M" },
|
|
11276
|
+
{ id: "2", name: "test1_NODE-5_TO_NODE-8", bandwidth: "100M" },
|
|
11277
|
+
{ id: "3", name: "test1_NODE-6_TO_NODE-1", bandwidth: "0M" }
|
|
11278
|
+
];
|
|
11279
|
+
var StnTopologyLinkDetailPopover = forwardRef42(function StnTopologyLinkDetailPopover2({ target, onClose, onOpenDetail, data: propData, className, ...rest }, ref) {
|
|
11280
|
+
if (!target) return null;
|
|
11281
|
+
const { link, mouseX, mouseY, data: targetData } = target;
|
|
11282
|
+
const data = propData ?? targetData;
|
|
11283
|
+
const sourceName = String(link.source);
|
|
11284
|
+
const targetName = String(link.target);
|
|
11285
|
+
const startTid = data?.startTid ?? sourceName;
|
|
11286
|
+
const endTid = data?.endTid ?? targetName;
|
|
11287
|
+
const lspCount = data?.lspCount ?? 6;
|
|
11288
|
+
const serviceCount = data?.serviceCount ?? 2;
|
|
11289
|
+
const forwardDirection = data?.forwardDirection ?? {
|
|
11290
|
+
from: sourceName,
|
|
11291
|
+
to: targetName,
|
|
11292
|
+
utilization: 20,
|
|
11293
|
+
bandwidthText: "200M / 1G"
|
|
11294
|
+
};
|
|
11295
|
+
const reverseDirection = data?.reverseDirection ?? {
|
|
11296
|
+
from: targetName,
|
|
11297
|
+
to: sourceName,
|
|
11298
|
+
utilization: 20,
|
|
11299
|
+
bandwidthText: "200M / 1G"
|
|
11300
|
+
};
|
|
11301
|
+
const startInterface = data?.startInterface ?? {
|
|
11302
|
+
port: "p1/3/1",
|
|
11303
|
+
ip: "10.1.1.9"
|
|
11304
|
+
};
|
|
11305
|
+
const endInterface = data?.endInterface ?? {
|
|
11306
|
+
port: "p1/1/1",
|
|
11307
|
+
ip: "10.1.1.10"
|
|
11308
|
+
};
|
|
11309
|
+
const lspList = data?.lspList ?? DEFAULT_LSP_LIST;
|
|
11310
|
+
return /* @__PURE__ */ jsx66(
|
|
11311
|
+
StnPopover,
|
|
11312
|
+
{
|
|
11313
|
+
ref,
|
|
11314
|
+
open: Boolean(target),
|
|
11315
|
+
anchorReference: "anchorPosition",
|
|
11316
|
+
anchorPosition: { top: mouseY, left: mouseX },
|
|
11317
|
+
anchorOrigin: { vertical: "top", horizontal: "left" },
|
|
11318
|
+
transformOrigin: { vertical: "top", horizontal: "left" },
|
|
11319
|
+
onClose,
|
|
11320
|
+
hideBackdrop: false,
|
|
11321
|
+
paperClassName: "stn-topology-popover__paper",
|
|
11322
|
+
...rest,
|
|
11323
|
+
children: /* @__PURE__ */ jsx66("div", { className: "stn-topology-popover__wrapper", children: /* @__PURE__ */ jsx66(StnCard, { variant: "floating", radius: "md", padding: "md", children: /* @__PURE__ */ jsxs53(StnStack, { direction: "column", spacing: 1.25, children: [
|
|
11324
|
+
/* @__PURE__ */ jsxs53(StnStack, { direction: "row", justifyContent: "space-between", alignItems: "center", children: [
|
|
11325
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "body-2", weight: "bold", children: "\uAD6C\uAC04 \uC815\uBCF4" }),
|
|
11326
|
+
/* @__PURE__ */ jsx66(
|
|
11327
|
+
StnButton,
|
|
11328
|
+
{
|
|
11329
|
+
variant: "ghost",
|
|
11330
|
+
size: "sm",
|
|
11331
|
+
shape: "square",
|
|
11332
|
+
title: "\uB2EB\uAE30",
|
|
11333
|
+
"aria-label": "\uAD6C\uAC04 \uC815\uBCF4 \uB2EB\uAE30",
|
|
11334
|
+
icon: /* @__PURE__ */ jsx66(StnIcon, { name: "line/x", size: 14 }),
|
|
11335
|
+
onClick: onClose
|
|
11336
|
+
}
|
|
11337
|
+
)
|
|
11338
|
+
] }),
|
|
11339
|
+
/* @__PURE__ */ jsx66(StnCard, { variant: "flat", radius: "sm", padding: "sm", className: "stn-topology-popover__route-card", children: /* @__PURE__ */ jsxs53(StnStack, { direction: "row", justifyContent: "space-between", children: [
|
|
11340
|
+
/* @__PURE__ */ jsxs53(StnStack, { direction: "column", spacing: 0.25, children: [
|
|
11341
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "caption", color: "secondary", children: "START_TID" }),
|
|
11342
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "body-3", weight: "bold", children: startTid }),
|
|
11343
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "caption", color: "secondary", children: startTid })
|
|
11344
|
+
] }),
|
|
11345
|
+
/* @__PURE__ */ jsxs53(StnStack, { direction: "column", spacing: 0.25, children: [
|
|
11346
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "caption", color: "secondary", children: "END_TID" }),
|
|
11347
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "body-3", weight: "bold", children: endTid }),
|
|
11348
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "caption", color: "secondary", children: endTid })
|
|
11349
|
+
] })
|
|
11350
|
+
] }) }),
|
|
11351
|
+
/* @__PURE__ */ jsxs53(StnStack, { direction: "column", spacing: 0.75, children: [
|
|
11352
|
+
/* @__PURE__ */ jsxs53("div", { className: "stn-topology-popover__stat-grid", children: [
|
|
11353
|
+
/* @__PURE__ */ jsx66(StnCard, { variant: "flat", radius: "sm", padding: "sm", children: /* @__PURE__ */ jsxs53(StnStack, { direction: "column", spacing: 0.25, children: [
|
|
11354
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "caption", color: "secondary", children: "LSP \uC218" }),
|
|
11355
|
+
/* @__PURE__ */ jsxs53(StnText, { variant: "body-2", weight: "bold", className: "stn-text-numeric", children: [
|
|
11356
|
+
lspCount,
|
|
11357
|
+
"\uAC1C"
|
|
11358
|
+
] })
|
|
11359
|
+
] }) }),
|
|
11360
|
+
/* @__PURE__ */ jsx66(StnCard, { variant: "flat", radius: "sm", padding: "sm", children: /* @__PURE__ */ jsxs53(StnStack, { direction: "column", spacing: 0.25, children: [
|
|
11361
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "caption", color: "secondary", children: "\uC11C\uBE44\uC2A4 \uC218" }),
|
|
11362
|
+
/* @__PURE__ */ jsxs53(StnText, { variant: "body-2", weight: "bold", className: "stn-text-numeric", children: [
|
|
11363
|
+
serviceCount,
|
|
11364
|
+
"\uAC1C"
|
|
11365
|
+
] })
|
|
11366
|
+
] }) })
|
|
11367
|
+
] }),
|
|
11368
|
+
/* @__PURE__ */ jsxs53("div", { className: "stn-topology-popover__stat-grid", children: [
|
|
11369
|
+
/* @__PURE__ */ jsx66(StnCard, { variant: "flat", radius: "sm", padding: "sm", children: /* @__PURE__ */ jsxs53(StnStack, { direction: "column", spacing: 0.25, children: [
|
|
11370
|
+
/* @__PURE__ */ jsxs53(StnText, { variant: "caption", color: "secondary", className: "stn-topology-popover__nowrap", children: [
|
|
11371
|
+
forwardDirection.from,
|
|
11372
|
+
" \u2192 ",
|
|
11373
|
+
forwardDirection.to
|
|
11374
|
+
] }),
|
|
11375
|
+
/* @__PURE__ */ jsxs53(StnText, { variant: "body-2", weight: "bold", className: "stn-text-numeric", children: [
|
|
11376
|
+
forwardDirection.utilization,
|
|
11377
|
+
"%"
|
|
11378
|
+
] }),
|
|
11379
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "caption", color: "secondary", className: "stn-text-numeric", children: forwardDirection.bandwidthText })
|
|
11380
|
+
] }) }),
|
|
11381
|
+
/* @__PURE__ */ jsx66(StnCard, { variant: "flat", radius: "sm", padding: "sm", children: /* @__PURE__ */ jsxs53(StnStack, { direction: "column", spacing: 0.25, children: [
|
|
11382
|
+
/* @__PURE__ */ jsxs53(StnText, { variant: "caption", color: "secondary", className: "stn-topology-popover__nowrap", children: [
|
|
11383
|
+
reverseDirection.from,
|
|
11384
|
+
" \u2192 ",
|
|
11385
|
+
reverseDirection.to
|
|
11386
|
+
] }),
|
|
11387
|
+
/* @__PURE__ */ jsxs53(StnText, { variant: "body-2", weight: "bold", className: "stn-text-numeric", children: [
|
|
11388
|
+
reverseDirection.utilization,
|
|
11389
|
+
"%"
|
|
11390
|
+
] }),
|
|
11391
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "caption", color: "secondary", className: "stn-text-numeric", children: reverseDirection.bandwidthText })
|
|
11392
|
+
] }) })
|
|
11393
|
+
] })
|
|
11394
|
+
] }),
|
|
11395
|
+
/* @__PURE__ */ jsxs53(StnStack, { direction: "column", spacing: 0.75, children: [
|
|
11396
|
+
/* @__PURE__ */ jsxs53(StnStack, { direction: "column", spacing: 0.25, children: [
|
|
11397
|
+
/* @__PURE__ */ jsxs53(StnText, { variant: "caption", color: "secondary", children: [
|
|
11398
|
+
sourceName,
|
|
11399
|
+
" \uC778\uD130\uD398\uC774\uC2A4"
|
|
11400
|
+
] }),
|
|
11401
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "caption", weight: "medium", className: "stn-text-numeric", children: startInterface.port }),
|
|
11402
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "caption", color: "secondary", className: "stn-text-numeric", children: startInterface.ip })
|
|
11403
|
+
] }),
|
|
11404
|
+
/* @__PURE__ */ jsxs53(StnStack, { direction: "column", spacing: 0.25, children: [
|
|
11405
|
+
/* @__PURE__ */ jsxs53(StnText, { variant: "caption", color: "secondary", children: [
|
|
11406
|
+
targetName,
|
|
11407
|
+
" \uC778\uD130\uD398\uC774\uC2A4"
|
|
11408
|
+
] }),
|
|
11409
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "caption", weight: "medium", className: "stn-text-numeric", children: endInterface.port }),
|
|
11410
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "caption", color: "secondary", className: "stn-text-numeric", children: endInterface.ip })
|
|
11411
|
+
] })
|
|
11412
|
+
] }),
|
|
11413
|
+
/* @__PURE__ */ jsx66(StnDivider, {}),
|
|
11414
|
+
/* @__PURE__ */ jsxs53(StnStack, { direction: "column", spacing: 0.5, children: [
|
|
11415
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "body-3", weight: "bold", children: data?.totalLspCountText ?? `LSP \uBAA9\uB85D (${lspCount}\uAC1C)` }),
|
|
11416
|
+
/* @__PURE__ */ jsxs53(StnStack, { direction: "column", spacing: 0.25, children: [
|
|
11417
|
+
lspList.map((item) => /* @__PURE__ */ jsxs53(StnStack, { direction: "row", justifyContent: "space-between", alignItems: "center", children: [
|
|
11418
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "caption", className: "stn-topology-popover__ellipsis-text", children: item.name }),
|
|
11419
|
+
/* @__PURE__ */ jsx66(StnText, { variant: "caption", color: "secondary", className: "stn-text-numeric", children: item.bandwidth })
|
|
11420
|
+
] }, item.id)),
|
|
11421
|
+
/* @__PURE__ */ jsxs53(StnText, { variant: "caption", color: "secondary", children: [
|
|
11422
|
+
"\uC678 ",
|
|
11423
|
+
Math.max(0, lspCount - lspList.length),
|
|
11424
|
+
"\uAC74\u2026"
|
|
11425
|
+
] })
|
|
11426
|
+
] })
|
|
11427
|
+
] }),
|
|
11428
|
+
/* @__PURE__ */ jsx66(
|
|
11429
|
+
StnButton,
|
|
11430
|
+
{
|
|
11431
|
+
variant: "contained",
|
|
11432
|
+
color: "primary",
|
|
11433
|
+
size: "sm",
|
|
11434
|
+
onClick: () => {
|
|
11435
|
+
onClose();
|
|
11436
|
+
onOpenDetail?.(link);
|
|
11437
|
+
},
|
|
11438
|
+
children: "\uC0C1\uC138\uBCF4\uAE30"
|
|
11439
|
+
}
|
|
11440
|
+
)
|
|
11441
|
+
] }) }) })
|
|
11442
|
+
}
|
|
11443
|
+
);
|
|
11444
|
+
});
|
|
11445
|
+
|
|
11446
|
+
// src/components/topology/StnTopologyLinkDetailModal.tsx
|
|
11447
|
+
import { useState as useState19, useMemo as useMemo5, forwardRef as forwardRef43 } from "react";
|
|
11448
|
+
import { jsx as jsx67, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
11449
|
+
var DEFAULT_FORWARD_LSPS = [
|
|
11450
|
+
{
|
|
11451
|
+
id: "f1",
|
|
11452
|
+
lspName: "test1_NODE-5_TO_NODE-8",
|
|
11453
|
+
aDevice: "NODE-5",
|
|
11454
|
+
zDevice: "NODE-8",
|
|
11455
|
+
bandwidth: "100M",
|
|
11456
|
+
utilization: "10%",
|
|
11457
|
+
status: "Up"
|
|
11458
|
+
},
|
|
11459
|
+
{
|
|
11460
|
+
id: "f2",
|
|
11461
|
+
lspName: "test1_NODE-6_TO_NODE-1",
|
|
11462
|
+
aDevice: "NODE-6",
|
|
11463
|
+
zDevice: "NODE-1",
|
|
11464
|
+
bandwidth: "0M",
|
|
11465
|
+
utilization: "0%",
|
|
11466
|
+
status: "Up"
|
|
11467
|
+
},
|
|
11468
|
+
{
|
|
11469
|
+
id: "f3",
|
|
11470
|
+
lspName: "test1_NODE-7_TO_NODE-8",
|
|
11471
|
+
aDevice: "NODE-7",
|
|
11472
|
+
zDevice: "NODE-8",
|
|
11473
|
+
bandwidth: "0M",
|
|
11474
|
+
utilization: "0%",
|
|
11475
|
+
status: "Up"
|
|
11476
|
+
},
|
|
11477
|
+
{
|
|
11478
|
+
id: "f4",
|
|
11479
|
+
lspName: "test5_NODE-3_TO_NODE-1",
|
|
11480
|
+
aDevice: "NODE-3",
|
|
11481
|
+
zDevice: "NODE-1",
|
|
11482
|
+
bandwidth: "0M",
|
|
11483
|
+
utilization: "0%",
|
|
11484
|
+
status: "Up"
|
|
11485
|
+
}
|
|
11486
|
+
];
|
|
11487
|
+
var DEFAULT_REVERSE_LSPS = [
|
|
11488
|
+
{
|
|
11489
|
+
id: "r1",
|
|
11490
|
+
lspName: "test1_NODE-1_TO_NODE-6",
|
|
11491
|
+
aDevice: "NODE-1",
|
|
11492
|
+
zDevice: "NODE-6",
|
|
11493
|
+
bandwidth: "100M",
|
|
11494
|
+
utilization: "10%",
|
|
11495
|
+
status: "Up"
|
|
11496
|
+
},
|
|
11497
|
+
{
|
|
11498
|
+
id: "r2",
|
|
11499
|
+
lspName: "test1_NODE-8_TO_NODE-7",
|
|
11500
|
+
aDevice: "NODE-8",
|
|
11501
|
+
zDevice: "NODE-7",
|
|
11502
|
+
bandwidth: "100M",
|
|
11503
|
+
utilization: "10%",
|
|
11504
|
+
status: "Up"
|
|
11505
|
+
}
|
|
11506
|
+
];
|
|
11507
|
+
var INITIAL_COLUMNS = [
|
|
11508
|
+
{ key: "lspName", label: "LSP\uBA85", width: 260 },
|
|
11509
|
+
{ key: "aDevice", label: "A \uC7A5\uBE44", width: 120 },
|
|
11510
|
+
{ key: "zDevice", label: "Z \uC7A5\uBE44", width: 120 },
|
|
11511
|
+
{ key: "bandwidth", label: "\uB300\uC5ED\uD3ED", width: 100 },
|
|
11512
|
+
{ key: "utilization", label: "\uAD6C\uAC04 \uC810\uC720\uC728", width: 110 },
|
|
11513
|
+
{ key: "status", label: "\uC0C1\uD0DC", width: 80 }
|
|
11514
|
+
];
|
|
11515
|
+
var StnTopologyLinkDetailModal = forwardRef43(function StnTopologyLinkDetailModal2({ open, link, onClose, onExportExcel, exportExcelIcon = "download", ...rest }, ref) {
|
|
11516
|
+
const [tab, setTab] = useState19("lsp");
|
|
11517
|
+
const [cols1] = useState19(INITIAL_COLUMNS);
|
|
11518
|
+
const [cols2] = useState19(INITIAL_COLUMNS);
|
|
11519
|
+
const [sortKey1, setSortKey1] = useState19("lspName");
|
|
11520
|
+
const [sortOrder1, setSortOrder1] = useState19("none");
|
|
11521
|
+
const [sortKey2, setSortKey2] = useState19("lspName");
|
|
11522
|
+
const [sortOrder2, setSortOrder2] = useState19("none");
|
|
11523
|
+
const sourceName = link ? String(link.source) : "NODE-3";
|
|
11524
|
+
const targetName = link ? String(link.target) : "NODE-4";
|
|
11525
|
+
const handleToggleSort1 = (key) => {
|
|
11526
|
+
if (sortKey1 !== key) {
|
|
11527
|
+
setSortKey1(key);
|
|
11528
|
+
setSortOrder1("ascending");
|
|
11529
|
+
} else if (sortOrder1 === "ascending") {
|
|
11530
|
+
setSortOrder1("descending");
|
|
11531
|
+
} else {
|
|
11532
|
+
setSortOrder1("none");
|
|
11533
|
+
}
|
|
11534
|
+
};
|
|
11535
|
+
const handleToggleSort2 = (key) => {
|
|
11536
|
+
if (sortKey2 !== key) {
|
|
11537
|
+
setSortKey2(key);
|
|
11538
|
+
setSortOrder2("ascending");
|
|
11539
|
+
} else if (sortOrder2 === "ascending") {
|
|
11540
|
+
setSortOrder2("descending");
|
|
11541
|
+
} else {
|
|
11542
|
+
setSortOrder2("none");
|
|
11543
|
+
}
|
|
11544
|
+
};
|
|
11545
|
+
const sortedForwardLsps = useMemo5(() => {
|
|
11546
|
+
if (sortOrder1 === "none") return DEFAULT_FORWARD_LSPS;
|
|
11547
|
+
return [...DEFAULT_FORWARD_LSPS].sort((a, b) => {
|
|
11548
|
+
const factor = sortOrder1 === "ascending" ? 1 : -1;
|
|
11549
|
+
return String(a[sortKey1]) > String(b[sortKey1]) ? factor : -factor;
|
|
11550
|
+
});
|
|
11551
|
+
}, [sortKey1, sortOrder1]);
|
|
11552
|
+
const sortedReverseLsps = useMemo5(() => {
|
|
11553
|
+
if (sortOrder2 === "none") return DEFAULT_REVERSE_LSPS;
|
|
11554
|
+
return [...DEFAULT_REVERSE_LSPS].sort((a, b) => {
|
|
11555
|
+
const factor = sortOrder2 === "ascending" ? 1 : -1;
|
|
11556
|
+
return String(a[sortKey2]) > String(b[sortKey2]) ? factor : -factor;
|
|
11557
|
+
});
|
|
11558
|
+
}, [sortKey2, sortOrder2]);
|
|
11559
|
+
return /* @__PURE__ */ jsx67(
|
|
11560
|
+
StnModal,
|
|
11561
|
+
{
|
|
11562
|
+
ref,
|
|
11563
|
+
open,
|
|
11564
|
+
onClose,
|
|
11565
|
+
title: "\uAD6C\uAC04 \uC0C1\uC138",
|
|
11566
|
+
size: "lg",
|
|
11567
|
+
actionAlign: "center",
|
|
11568
|
+
actions: /* @__PURE__ */ jsxs54(StnStack, { direction: "row", spacing: 1, justifyContent: "center", alignItems: "center", children: [
|
|
11569
|
+
/* @__PURE__ */ jsx67(
|
|
11570
|
+
StnButton,
|
|
11571
|
+
{
|
|
11572
|
+
variant: "contained",
|
|
11573
|
+
color: "primary",
|
|
11574
|
+
size: "md",
|
|
11575
|
+
icon: /* @__PURE__ */ jsx67(
|
|
11576
|
+
StnIcon,
|
|
11577
|
+
{
|
|
11578
|
+
name: exportExcelIcon === "file-excel" ? "line/file-excel" : "line/download",
|
|
11579
|
+
size: 16
|
|
11580
|
+
}
|
|
11581
|
+
),
|
|
11582
|
+
onClick: () => onExportExcel?.(),
|
|
11583
|
+
children: "\uC5D1\uC140 \uB2E4\uC6B4\uB85C\uB4DC"
|
|
11584
|
+
}
|
|
11585
|
+
),
|
|
11586
|
+
/* @__PURE__ */ jsx67(
|
|
11587
|
+
StnButton,
|
|
11588
|
+
{
|
|
11589
|
+
variant: "outlined",
|
|
11590
|
+
size: "md",
|
|
11591
|
+
onClick: onClose,
|
|
11592
|
+
children: "\uB2EB\uAE30"
|
|
11593
|
+
}
|
|
11594
|
+
)
|
|
11595
|
+
] }),
|
|
11596
|
+
...rest,
|
|
11597
|
+
children: /* @__PURE__ */ jsxs54(StnStack, { direction: "column", spacing: 1.5, children: [
|
|
11598
|
+
/* @__PURE__ */ jsx67(StnCard, { variant: "flat", radius: "md", padding: "md", children: /* @__PURE__ */ jsxs54(StnStack, { direction: "column", spacing: 0.75, children: [
|
|
11599
|
+
/* @__PURE__ */ jsxs54(StnStack, { direction: "row", justifyContent: "space-between", alignItems: "center", children: [
|
|
11600
|
+
/* @__PURE__ */ jsxs54(StnText, { variant: "body-2", weight: "bold", children: [
|
|
11601
|
+
sourceName,
|
|
11602
|
+
" \u2192 ",
|
|
11603
|
+
targetName
|
|
11604
|
+
] }),
|
|
11605
|
+
/* @__PURE__ */ jsxs54(StnStack, { direction: "row", spacing: 0.5, alignItems: "center", children: [
|
|
11606
|
+
/* @__PURE__ */ jsx67(StnText, { variant: "caption", color: "secondary", children: "\uD604\uC7AC" }),
|
|
11607
|
+
/* @__PURE__ */ jsx67(StnText, { variant: "body-2", weight: "bold", className: "stn-text-numeric", children: "20%" }),
|
|
11608
|
+
/* @__PURE__ */ jsx67(StnText, { variant: "caption", color: "secondary", className: "stn-text-numeric", children: "200M / 1G" })
|
|
11609
|
+
] })
|
|
11610
|
+
] }),
|
|
11611
|
+
/* @__PURE__ */ jsxs54(StnStack, { direction: "row", justifyContent: "space-between", alignItems: "center", children: [
|
|
11612
|
+
/* @__PURE__ */ jsxs54(StnText, { variant: "body-2", weight: "bold", children: [
|
|
11613
|
+
targetName,
|
|
11614
|
+
" \u2192 ",
|
|
11615
|
+
sourceName
|
|
11616
|
+
] }),
|
|
11617
|
+
/* @__PURE__ */ jsxs54(StnStack, { direction: "row", spacing: 0.5, alignItems: "center", children: [
|
|
11618
|
+
/* @__PURE__ */ jsx67(StnText, { variant: "caption", color: "secondary", children: "\uD604\uC7AC" }),
|
|
11619
|
+
/* @__PURE__ */ jsx67(StnText, { variant: "body-2", weight: "bold", className: "stn-text-numeric", children: "20%" }),
|
|
11620
|
+
/* @__PURE__ */ jsx67(StnText, { variant: "caption", color: "secondary", className: "stn-text-numeric", children: "200M / 1G" })
|
|
11621
|
+
] })
|
|
11622
|
+
] })
|
|
11623
|
+
] }) }),
|
|
11624
|
+
/* @__PURE__ */ jsx67("div", { children: /* @__PURE__ */ jsx67(
|
|
11625
|
+
StnSegmented,
|
|
11626
|
+
{
|
|
11627
|
+
size: "sm",
|
|
11628
|
+
value: tab,
|
|
11629
|
+
onChange: (val) => setTab(val),
|
|
11630
|
+
options: [
|
|
11631
|
+
{ value: "lsp", label: "LSP (6\uAC74)" },
|
|
11632
|
+
{ value: "service", label: "\uC11C\uBE44\uC2A4 (2\uAC74)" }
|
|
11633
|
+
]
|
|
11634
|
+
}
|
|
11635
|
+
) }),
|
|
11636
|
+
/* @__PURE__ */ jsxs54(StnStack, { direction: "column", spacing: 0.75, children: [
|
|
11637
|
+
/* @__PURE__ */ jsxs54(StnText, { variant: "body-2", weight: "bold", children: [
|
|
11638
|
+
sourceName,
|
|
11639
|
+
" \u2192 ",
|
|
11640
|
+
targetName,
|
|
11641
|
+
" (",
|
|
11642
|
+
sortedForwardLsps.length,
|
|
11643
|
+
"\uAC74)"
|
|
11644
|
+
] }),
|
|
11645
|
+
/* @__PURE__ */ jsx67(StnTable, { resizable: true, children: /* @__PURE__ */ jsxs54(StnTable.Grid, { children: [
|
|
11646
|
+
/* @__PURE__ */ jsx67("colgroup", { children: cols1.map((c) => /* @__PURE__ */ jsx67("col", { style: { width: c.width } }, c.key)) }),
|
|
11647
|
+
/* @__PURE__ */ jsx67(StnTable.Head, { children: /* @__PURE__ */ jsx67(StnTable.Row, { children: cols1.map((col) => /* @__PURE__ */ jsx67(StnTable.Th, { name: col.key, children: /* @__PURE__ */ jsx67(
|
|
11648
|
+
StnTable.Sort,
|
|
11649
|
+
{
|
|
11650
|
+
label: col.label,
|
|
11651
|
+
sort: sortKey1 === col.key ? sortOrder1 : "none",
|
|
11652
|
+
onClick: () => handleToggleSort1(col.key)
|
|
11653
|
+
}
|
|
11654
|
+
) }, col.key)) }) }),
|
|
11655
|
+
/* @__PURE__ */ jsx67(StnTable.Body, { children: sortedForwardLsps.map((row) => /* @__PURE__ */ jsxs54(StnTable.Row, { children: [
|
|
11656
|
+
/* @__PURE__ */ jsx67(StnTable.Td, { children: /* @__PURE__ */ jsx67(StnText, { variant: "body-3", weight: "medium", children: row.lspName }) }),
|
|
11657
|
+
/* @__PURE__ */ jsx67(StnTable.Td, { children: row.aDevice }),
|
|
11658
|
+
/* @__PURE__ */ jsx67(StnTable.Td, { children: row.zDevice }),
|
|
11659
|
+
/* @__PURE__ */ jsx67(StnTable.Td, { className: "stn-text-numeric", children: row.bandwidth }),
|
|
11660
|
+
/* @__PURE__ */ jsx67(StnTable.Td, { className: "stn-text-numeric", children: row.utilization }),
|
|
11661
|
+
/* @__PURE__ */ jsx67(StnTable.Td, { children: /* @__PURE__ */ jsx67(
|
|
11662
|
+
StnBadge,
|
|
11663
|
+
{
|
|
11664
|
+
color: row.status === "Up" ? "success" : "critical",
|
|
11665
|
+
appearance: "subtle",
|
|
11666
|
+
badgeContent: row.status
|
|
11667
|
+
}
|
|
11668
|
+
) })
|
|
11669
|
+
] }, row.id)) })
|
|
11670
|
+
] }) })
|
|
11671
|
+
] }),
|
|
11672
|
+
/* @__PURE__ */ jsxs54(StnStack, { direction: "column", spacing: 0.75, children: [
|
|
11673
|
+
/* @__PURE__ */ jsxs54(StnText, { variant: "body-2", weight: "bold", children: [
|
|
11674
|
+
targetName,
|
|
11675
|
+
" \u2192 ",
|
|
11676
|
+
sourceName,
|
|
11677
|
+
" (",
|
|
11678
|
+
sortedReverseLsps.length,
|
|
11679
|
+
"\uAC74)"
|
|
11680
|
+
] }),
|
|
11681
|
+
/* @__PURE__ */ jsx67(StnTable, { resizable: true, children: /* @__PURE__ */ jsxs54(StnTable.Grid, { children: [
|
|
11682
|
+
/* @__PURE__ */ jsx67("colgroup", { children: cols2.map((c) => /* @__PURE__ */ jsx67("col", { style: { width: c.width } }, c.key)) }),
|
|
11683
|
+
/* @__PURE__ */ jsx67(StnTable.Head, { children: /* @__PURE__ */ jsx67(StnTable.Row, { children: cols2.map((col) => /* @__PURE__ */ jsx67(StnTable.Th, { name: col.key, children: /* @__PURE__ */ jsx67(
|
|
11684
|
+
StnTable.Sort,
|
|
11685
|
+
{
|
|
11686
|
+
label: col.label,
|
|
11687
|
+
sort: sortKey2 === col.key ? sortOrder2 : "none",
|
|
11688
|
+
onClick: () => handleToggleSort2(col.key)
|
|
11689
|
+
}
|
|
11690
|
+
) }, col.key)) }) }),
|
|
11691
|
+
/* @__PURE__ */ jsx67(StnTable.Body, { children: sortedReverseLsps.map((row) => /* @__PURE__ */ jsxs54(StnTable.Row, { children: [
|
|
11692
|
+
/* @__PURE__ */ jsx67(StnTable.Td, { children: /* @__PURE__ */ jsx67(StnText, { variant: "body-3", weight: "medium", children: row.lspName }) }),
|
|
11693
|
+
/* @__PURE__ */ jsx67(StnTable.Td, { children: row.aDevice }),
|
|
11694
|
+
/* @__PURE__ */ jsx67(StnTable.Td, { children: row.zDevice }),
|
|
11695
|
+
/* @__PURE__ */ jsx67(StnTable.Td, { className: "stn-text-numeric", children: row.bandwidth }),
|
|
11696
|
+
/* @__PURE__ */ jsx67(StnTable.Td, { className: "stn-text-numeric", children: row.utilization }),
|
|
11697
|
+
/* @__PURE__ */ jsx67(StnTable.Td, { children: /* @__PURE__ */ jsx67(
|
|
11698
|
+
StnBadge,
|
|
11699
|
+
{
|
|
11700
|
+
color: row.status === "Up" ? "success" : "critical",
|
|
11701
|
+
appearance: "subtle",
|
|
11702
|
+
badgeContent: row.status
|
|
11703
|
+
}
|
|
11704
|
+
) })
|
|
11705
|
+
] }, row.id)) })
|
|
11706
|
+
] }) })
|
|
11707
|
+
] })
|
|
11708
|
+
] })
|
|
11709
|
+
}
|
|
11710
|
+
);
|
|
11711
|
+
});
|
|
11712
|
+
|
|
11012
11713
|
// src/patterns/widget/StnGradeRow.tsx
|
|
11013
11714
|
import "react";
|
|
11014
|
-
import { jsx as
|
|
11715
|
+
import { jsx as jsx68, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
11015
11716
|
var GRADE_ROW_ICON = {
|
|
11016
11717
|
critical: "fill/alert4",
|
|
11017
11718
|
major: "fill/alert3",
|
|
@@ -11037,7 +11738,7 @@ function StnGradeRow({
|
|
|
11037
11738
|
}) {
|
|
11038
11739
|
const clamped = Math.max(0, Math.min(100, percent));
|
|
11039
11740
|
const resolvedPercentLabel = percentLabel ?? formatGradePercent(clamped, decimals);
|
|
11040
|
-
return /* @__PURE__ */
|
|
11741
|
+
return /* @__PURE__ */ jsxs55(
|
|
11041
11742
|
"div",
|
|
11042
11743
|
{
|
|
11043
11744
|
className: cn(
|
|
@@ -11047,41 +11748,41 @@ function StnGradeRow({
|
|
|
11047
11748
|
),
|
|
11048
11749
|
...rest,
|
|
11049
11750
|
children: [
|
|
11050
|
-
/* @__PURE__ */
|
|
11051
|
-
/* @__PURE__ */
|
|
11052
|
-
/* @__PURE__ */
|
|
11751
|
+
/* @__PURE__ */ jsxs55("div", { className: "stn-grade-row__left", children: [
|
|
11752
|
+
/* @__PURE__ */ jsxs55("span", { className: "stn-grade-row__label", children: [
|
|
11753
|
+
/* @__PURE__ */ jsx68(StnIcon, { name: GRADE_ROW_ICON[grade], size: 20, className: "stn-grade-row__icon", "aria-hidden": true }),
|
|
11053
11754
|
label
|
|
11054
11755
|
] }),
|
|
11055
|
-
/* @__PURE__ */
|
|
11756
|
+
/* @__PURE__ */ jsx68("div", { className: "stn-grade-row__track", "aria-hidden": true, children: /* @__PURE__ */ jsx68("span", { className: "stn-grade-row__fill", style: { width: `${clamped}%` } }) })
|
|
11056
11757
|
] }),
|
|
11057
|
-
/* @__PURE__ */
|
|
11058
|
-
/* @__PURE__ */
|
|
11059
|
-
/* @__PURE__ */
|
|
11758
|
+
/* @__PURE__ */ jsxs55("div", { className: "stn-grade-row__right", children: [
|
|
11759
|
+
/* @__PURE__ */ jsx68("span", { className: "stn-grade-row__value", children: value }),
|
|
11760
|
+
/* @__PURE__ */ jsx68("span", { className: "stn-grade-row__percent", children: resolvedPercentLabel })
|
|
11060
11761
|
] })
|
|
11061
11762
|
]
|
|
11062
11763
|
}
|
|
11063
11764
|
);
|
|
11064
11765
|
}
|
|
11065
11766
|
function StnGradeRowList({ className, children, ...rest }) {
|
|
11066
|
-
return /* @__PURE__ */
|
|
11767
|
+
return /* @__PURE__ */ jsx68("div", { className: cn("stn-grade-row-list", className), ...rest, children });
|
|
11067
11768
|
}
|
|
11068
11769
|
|
|
11069
11770
|
// src/patterns/widget/StnStatCard.tsx
|
|
11070
11771
|
import "react";
|
|
11071
|
-
import { jsx as
|
|
11772
|
+
import { jsx as jsx69, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
11072
11773
|
function StnStatCard({ label, count, className, ...rest }) {
|
|
11073
|
-
return /* @__PURE__ */
|
|
11074
|
-
/* @__PURE__ */
|
|
11075
|
-
/* @__PURE__ */
|
|
11774
|
+
return /* @__PURE__ */ jsxs56("div", { className: cn("stn-stat-card", className), ...rest, children: [
|
|
11775
|
+
/* @__PURE__ */ jsx69("span", { className: "stn-stat-label", children: label }),
|
|
11776
|
+
/* @__PURE__ */ jsx69("span", { className: "stn-stat-count", children: count })
|
|
11076
11777
|
] });
|
|
11077
11778
|
}
|
|
11078
11779
|
function StnStatGroup({ className, children, ...rest }) {
|
|
11079
|
-
return /* @__PURE__ */
|
|
11780
|
+
return /* @__PURE__ */ jsx69("div", { className: cn("stn-stat-group", className), ...rest, children });
|
|
11080
11781
|
}
|
|
11081
11782
|
|
|
11082
11783
|
// src/patterns/widget/StnStatusList.tsx
|
|
11083
11784
|
import "react";
|
|
11084
|
-
import { jsx as
|
|
11785
|
+
import { jsx as jsx70, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
11085
11786
|
function StnStatusItem({
|
|
11086
11787
|
label,
|
|
11087
11788
|
value,
|
|
@@ -11092,9 +11793,9 @@ function StnStatusItem({
|
|
|
11092
11793
|
...rest
|
|
11093
11794
|
}) {
|
|
11094
11795
|
const grade = gradeProp ?? (status === "warning" ? "minor" : status) ?? "normal";
|
|
11095
|
-
return /* @__PURE__ */
|
|
11096
|
-
/* @__PURE__ */
|
|
11097
|
-
showDot ? /* @__PURE__ */
|
|
11796
|
+
return /* @__PURE__ */ jsxs57("div", { className: cn("stn-status-item", className), ...rest, children: [
|
|
11797
|
+
/* @__PURE__ */ jsxs57("span", { className: "stn-status-item__label", children: [
|
|
11798
|
+
showDot ? /* @__PURE__ */ jsx70(
|
|
11098
11799
|
"span",
|
|
11099
11800
|
{
|
|
11100
11801
|
className: cn("stn-status-item__dot", `stn-status-item__dot--${grade}`),
|
|
@@ -11103,15 +11804,15 @@ function StnStatusItem({
|
|
|
11103
11804
|
) : null,
|
|
11104
11805
|
label
|
|
11105
11806
|
] }),
|
|
11106
|
-
/* @__PURE__ */
|
|
11807
|
+
/* @__PURE__ */ jsx70("span", { className: "stn-status-item__val", children: value })
|
|
11107
11808
|
] });
|
|
11108
11809
|
}
|
|
11109
11810
|
function StnStatusList({ className, children, ...rest }) {
|
|
11110
|
-
return /* @__PURE__ */
|
|
11811
|
+
return /* @__PURE__ */ jsx70("div", { className: cn("stn-status-list", className), ...rest, children });
|
|
11111
11812
|
}
|
|
11112
11813
|
|
|
11113
11814
|
// src/components/StnWidget.tsx
|
|
11114
|
-
import { Fragment as Fragment11, jsx as
|
|
11815
|
+
import { Fragment as Fragment11, jsx as jsx71, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
11115
11816
|
var SHELL_PUB_CLASS = {
|
|
11116
11817
|
card: "",
|
|
11117
11818
|
"fault-panel": "",
|
|
@@ -11194,20 +11895,20 @@ function StnWidgetPeriodText({
|
|
|
11194
11895
|
className,
|
|
11195
11896
|
...rest
|
|
11196
11897
|
}) {
|
|
11197
|
-
return /* @__PURE__ */
|
|
11898
|
+
return /* @__PURE__ */ jsx71("span", { className: cn("stn-widget__period-text", className), ...rest, children });
|
|
11198
11899
|
}
|
|
11199
11900
|
function StnWidgetPeriodSelect({
|
|
11200
11901
|
label,
|
|
11201
11902
|
className,
|
|
11202
11903
|
...rest
|
|
11203
11904
|
}) {
|
|
11204
|
-
return /* @__PURE__ */
|
|
11905
|
+
return /* @__PURE__ */ jsx71(
|
|
11205
11906
|
StnButton,
|
|
11206
11907
|
{
|
|
11207
11908
|
variant: "ghost",
|
|
11208
11909
|
size: "sm",
|
|
11209
11910
|
shape: "square",
|
|
11210
|
-
icon: /* @__PURE__ */
|
|
11911
|
+
icon: /* @__PURE__ */ jsx71(StnIcon, { name: "line/chevron-down" }),
|
|
11211
11912
|
iconPosition: "right",
|
|
11212
11913
|
className,
|
|
11213
11914
|
...rest,
|
|
@@ -11224,26 +11925,26 @@ function StnWidgetPeriodPager({
|
|
|
11224
11925
|
nextLabel = "\uB2E4\uC74C",
|
|
11225
11926
|
...rest
|
|
11226
11927
|
}) {
|
|
11227
|
-
return /* @__PURE__ */
|
|
11228
|
-
/* @__PURE__ */
|
|
11928
|
+
return /* @__PURE__ */ jsxs58("div", { className: cn("stn-widget__period-pager", className), ...rest, children: [
|
|
11929
|
+
/* @__PURE__ */ jsx71(
|
|
11229
11930
|
StnButton,
|
|
11230
11931
|
{
|
|
11231
11932
|
variant: "ghost",
|
|
11232
11933
|
size: "sm",
|
|
11233
11934
|
shape: "square",
|
|
11234
|
-
icon: /* @__PURE__ */
|
|
11935
|
+
icon: /* @__PURE__ */ jsx71(StnIcon, { name: "line/arrow-narrow-left" }),
|
|
11235
11936
|
onClick: onPrev,
|
|
11236
11937
|
"aria-label": prevLabel
|
|
11237
11938
|
}
|
|
11238
11939
|
),
|
|
11239
|
-
/* @__PURE__ */
|
|
11240
|
-
/* @__PURE__ */
|
|
11940
|
+
/* @__PURE__ */ jsx71("span", { className: "stn-widget__period-pager-label", children: label }),
|
|
11941
|
+
/* @__PURE__ */ jsx71(
|
|
11241
11942
|
StnButton,
|
|
11242
11943
|
{
|
|
11243
11944
|
variant: "ghost",
|
|
11244
11945
|
size: "sm",
|
|
11245
11946
|
shape: "square",
|
|
11246
|
-
icon: /* @__PURE__ */
|
|
11947
|
+
icon: /* @__PURE__ */ jsx71(StnIcon, { name: "line/arrow-narrow-right" }),
|
|
11247
11948
|
onClick: onNext,
|
|
11248
11949
|
"aria-label": nextLabel
|
|
11249
11950
|
}
|
|
@@ -11270,18 +11971,18 @@ function StnWidgetHeaderInner({
|
|
|
11270
11971
|
return null;
|
|
11271
11972
|
}
|
|
11272
11973
|
const resolvedIconName = headerIconName ?? defaultHeaderIconName(appearance);
|
|
11273
|
-
return /* @__PURE__ */
|
|
11274
|
-
/* @__PURE__ */
|
|
11275
|
-
showHeaderIcon ? headerIcon != null ? /* @__PURE__ */
|
|
11276
|
-
title != null || badge != null ? typeof title === "string" || title == null ? /* @__PURE__ */
|
|
11277
|
-
typeof title === "string" ? /* @__PURE__ */
|
|
11974
|
+
return /* @__PURE__ */ jsxs58("div", { className: cn("stn-widget__head", wrapActions && "stn-widget__head--wrap"), children: [
|
|
11975
|
+
/* @__PURE__ */ jsxs58("div", { className: "stn-widget__head-start", children: [
|
|
11976
|
+
showHeaderIcon ? headerIcon != null ? /* @__PURE__ */ jsx71(StnWidgetInsetIcon, { size: "sm", children: headerIcon }) : resolvedIconName ? /* @__PURE__ */ jsx71(StnWidgetInsetIcon, { size: "sm", icon: resolvedIconName }) : null : null,
|
|
11977
|
+
title != null || badge != null ? typeof title === "string" || title == null ? /* @__PURE__ */ jsxs58("div", { className: "stn-widget__title-wrap", children: [
|
|
11978
|
+
typeof title === "string" ? /* @__PURE__ */ jsx71("p", { className: cn("stn-widget__title", titleSize, titleWeight), title, children: title }) : null,
|
|
11278
11979
|
badge
|
|
11279
|
-
] }) : /* @__PURE__ */
|
|
11980
|
+
] }) : /* @__PURE__ */ jsxs58(Fragment11, { children: [
|
|
11280
11981
|
title,
|
|
11281
11982
|
badge
|
|
11282
11983
|
] }) : null
|
|
11283
11984
|
] }),
|
|
11284
|
-
titleActions != null || periodActions != null || periodLabel != null && periodLabel !== "" ? /* @__PURE__ */
|
|
11985
|
+
titleActions != null || periodActions != null || periodLabel != null && periodLabel !== "" ? /* @__PURE__ */ jsx71("div", { className: "stn-widget__head-end", children: titleActions ?? (periodActions != null ? periodActions : periodLabel != null && periodLabel !== "" ? /* @__PURE__ */ jsx71(StnWidgetPeriodText, { children: periodLabel }) : null) }) : null
|
|
11285
11986
|
] });
|
|
11286
11987
|
}
|
|
11287
11988
|
function StnWidgetRoot({
|
|
@@ -11364,10 +12065,10 @@ function StnWidgetRoot({
|
|
|
11364
12065
|
...rest
|
|
11365
12066
|
};
|
|
11366
12067
|
const slots = partitionWidgetChildren(children);
|
|
11367
|
-
const propHead = shell === "fault-panel" && !isFigmaShell ? title != null || titleActions ? /* @__PURE__ */
|
|
11368
|
-
/* @__PURE__ */
|
|
12068
|
+
const propHead = shell === "fault-panel" && !isFigmaShell ? title != null || titleActions ? /* @__PURE__ */ jsxs58("div", { className: "app_bar", children: [
|
|
12069
|
+
/* @__PURE__ */ jsx71("div", { className: "fault_title_box", children: typeof title === "string" ? /* @__PURE__ */ jsx71("span", { children: title }) : title }),
|
|
11369
12070
|
titleActions
|
|
11370
|
-
] }) : null : shell === "board" || shell === "board-item" ? title != null ? /* @__PURE__ */
|
|
12071
|
+
] }) : null : shell === "board" || shell === "board-item" ? title != null ? /* @__PURE__ */ jsx71("div", { className: "stn-widget__head", children: typeof title === "string" ? /* @__PURE__ */ jsx71("p", { children: title }) : title }) : null : isFigmaShell ? /* @__PURE__ */ jsx71(
|
|
11371
12072
|
StnWidgetHeaderInner,
|
|
11372
12073
|
{
|
|
11373
12074
|
appearance,
|
|
@@ -11383,40 +12084,40 @@ function StnWidgetRoot({
|
|
|
11383
12084
|
headerIcon,
|
|
11384
12085
|
wrapActions
|
|
11385
12086
|
}
|
|
11386
|
-
) : title != null || badge != null || titleActions ? /* @__PURE__ */
|
|
11387
|
-
/* @__PURE__ */
|
|
11388
|
-
title != null ? typeof title === "string" ? /* @__PURE__ */
|
|
12087
|
+
) : title != null || badge != null || titleActions ? /* @__PURE__ */ jsxs58("div", { className: cn("stn-widget__head", wrapActions && "stn-widget__head--wrap"), children: [
|
|
12088
|
+
/* @__PURE__ */ jsxs58("div", { className: "stn-widget__head-start", children: [
|
|
12089
|
+
title != null ? typeof title === "string" ? /* @__PURE__ */ jsx71("p", { className: cn("stn-widget__title", titleSize, titleWeight), title, children: title }) : title : null,
|
|
11389
12090
|
badge
|
|
11390
12091
|
] }),
|
|
11391
|
-
titleActions ? /* @__PURE__ */
|
|
12092
|
+
titleActions ? /* @__PURE__ */ jsx71("div", { className: "stn-widget__head-end", children: titleActions }) : null
|
|
11392
12093
|
] }) : null;
|
|
11393
12094
|
const head = slots.headers.length > 0 ? slots.headers : propHead;
|
|
11394
12095
|
const autoBodyClass = shell === "fault-panel" && !isFigmaShell ? "table_area" : void 0;
|
|
11395
12096
|
let body;
|
|
11396
12097
|
if (loading) {
|
|
11397
|
-
body = /* @__PURE__ */
|
|
12098
|
+
body = /* @__PURE__ */ jsx71("div", { className: cn("stn-widget__body", autoBodyClass, contentClassName), children: /* @__PURE__ */ jsx71(StnWidgetLoading, {}) });
|
|
11398
12099
|
} else if (slots.bodies.length > 0) {
|
|
11399
12100
|
body = slots.bodies.map(
|
|
11400
12101
|
(slot, index) => mergeBodySlot(slot, index === 0 ? slots.rest : [], contentClassName, isEmptyState, emptyStyle)
|
|
11401
12102
|
);
|
|
11402
12103
|
} else {
|
|
11403
|
-
body = /* @__PURE__ */
|
|
12104
|
+
body = /* @__PURE__ */ jsx71("div", { className: cn("stn-widget__body", autoBodyClass, isEmptyState && "empty", contentClassName), style: emptyStyle, children: slots.rest });
|
|
11404
12105
|
}
|
|
11405
|
-
const footerNode = slots.footers.length > 0 ? slots.footers : footer ? /* @__PURE__ */
|
|
11406
|
-
const card = /* @__PURE__ */
|
|
11407
|
-
isFigmaShell && appearanceShell === "overlay" ? /* @__PURE__ */
|
|
12106
|
+
const footerNode = slots.footers.length > 0 ? slots.footers : footer ? /* @__PURE__ */ jsx71("div", { className: "stn-widget__footer", children: footer }) : null;
|
|
12107
|
+
const card = /* @__PURE__ */ jsxs58("div", { ...rootProps, children: [
|
|
12108
|
+
isFigmaShell && appearanceShell === "overlay" ? /* @__PURE__ */ jsx71("div", { className: "stn-widget__map-deco", "aria-hidden": true }) : null,
|
|
11408
12109
|
head,
|
|
11409
12110
|
body,
|
|
11410
12111
|
footerNode
|
|
11411
12112
|
] });
|
|
11412
12113
|
if (banner == null || banner === false) return card;
|
|
11413
|
-
return /* @__PURE__ */
|
|
12114
|
+
return /* @__PURE__ */ jsxs58("div", { className: "stn-widget-anchor", children: [
|
|
11414
12115
|
withBannerSeverity(banner, bannerSeverityFromStatus(status, isCritical)),
|
|
11415
12116
|
card
|
|
11416
12117
|
] });
|
|
11417
12118
|
}
|
|
11418
12119
|
function StnWidgetHeader({ className, wrap = false, children, ...rest }) {
|
|
11419
|
-
return /* @__PURE__ */
|
|
12120
|
+
return /* @__PURE__ */ jsx71("div", { className: cn("stn-widget__head", wrap && "stn-widget__head--wrap", className), ...rest, children });
|
|
11420
12121
|
}
|
|
11421
12122
|
markWidgetSlot(StnWidgetHeader, "header");
|
|
11422
12123
|
function StnWidgetTitle({
|
|
@@ -11428,10 +12129,10 @@ function StnWidgetTitle({
|
|
|
11428
12129
|
...rest
|
|
11429
12130
|
}) {
|
|
11430
12131
|
const titleAttr = title ?? (typeof children === "string" ? children : void 0);
|
|
11431
|
-
return /* @__PURE__ */
|
|
12132
|
+
return /* @__PURE__ */ jsx71("p", { className: cn("stn-widget__title", size, weight, className), title: titleAttr, ...rest, children });
|
|
11432
12133
|
}
|
|
11433
12134
|
function StnWidgetActions({ className, children, ...rest }) {
|
|
11434
|
-
return /* @__PURE__ */
|
|
12135
|
+
return /* @__PURE__ */ jsx71("div", { className: cn("stn-widget__head-end", className), ...rest, children });
|
|
11435
12136
|
}
|
|
11436
12137
|
function StnWidgetBody({
|
|
11437
12138
|
padding,
|
|
@@ -11445,7 +12146,7 @@ function StnWidgetBody({
|
|
|
11445
12146
|
}) {
|
|
11446
12147
|
const emptyText = typeof empty === "string" ? empty : void 0;
|
|
11447
12148
|
const mergedStyle = emptyText ? { ["--stn-widget-empty-text"]: `"${emptyText}"`, ...style } : style;
|
|
11448
|
-
return /* @__PURE__ */
|
|
12149
|
+
return /* @__PURE__ */ jsx71(
|
|
11449
12150
|
"div",
|
|
11450
12151
|
{
|
|
11451
12152
|
className: cn(
|
|
@@ -11467,10 +12168,10 @@ function StnWidgetBody({
|
|
|
11467
12168
|
}
|
|
11468
12169
|
markWidgetSlot(StnWidgetBody, "body");
|
|
11469
12170
|
function StnWidgetChartSlot({ label = "select chart", className, children, ...rest }) {
|
|
11470
|
-
return /* @__PURE__ */
|
|
12171
|
+
return /* @__PURE__ */ jsx71("div", { className: cn("stn-widget__chart-slot", className), "data-stn-widget-chart-slot": true, ...rest, children: children ?? /* @__PURE__ */ jsx71("span", { className: "stn-widget__chart-slot-label", children: label }) });
|
|
11471
12172
|
}
|
|
11472
12173
|
function StnWidgetPlaceholder({ label = "\uCF58\uD150\uCE20 \uC601\uC5ED" }) {
|
|
11473
|
-
return /* @__PURE__ */
|
|
12174
|
+
return /* @__PURE__ */ jsx71("div", { className: "stn-widget__placeholder", children: label });
|
|
11474
12175
|
}
|
|
11475
12176
|
var StnWidgetStatusItem = StnStatusItem;
|
|
11476
12177
|
var StnWidgetStatusList = StnStatusList;
|
|
@@ -11479,24 +12180,24 @@ var StnWidgetStatCard = StnStatCard;
|
|
|
11479
12180
|
var StnWidgetGradeRow = StnGradeRow;
|
|
11480
12181
|
var StnWidgetGradeRowList = StnGradeRowList;
|
|
11481
12182
|
function StnWidgetFooter({ className, children, ...rest }) {
|
|
11482
|
-
return /* @__PURE__ */
|
|
12183
|
+
return /* @__PURE__ */ jsx71("div", { className: cn("stn-widget__footer", className), ...rest, children });
|
|
11483
12184
|
}
|
|
11484
12185
|
markWidgetSlot(StnWidgetFooter, "footer");
|
|
11485
12186
|
function StnWidgetEmpty({ className, children, ...rest }) {
|
|
11486
|
-
return /* @__PURE__ */
|
|
11487
|
-
/* @__PURE__ */
|
|
11488
|
-
/* @__PURE__ */
|
|
11489
|
-
/* @__PURE__ */
|
|
11490
|
-
/* @__PURE__ */
|
|
12187
|
+
return /* @__PURE__ */ jsxs58("div", { className: cn("stn-widget__empty", className), ...rest, children: [
|
|
12188
|
+
/* @__PURE__ */ jsxs58("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", style: { opacity: 0.6 }, children: [
|
|
12189
|
+
/* @__PURE__ */ jsx71("circle", { cx: "12", cy: "12", r: "10" }),
|
|
12190
|
+
/* @__PURE__ */ jsx71("line", { x1: "12", y1: "8", x2: "12", y2: "12" }),
|
|
12191
|
+
/* @__PURE__ */ jsx71("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })
|
|
11491
12192
|
] }),
|
|
11492
|
-
/* @__PURE__ */
|
|
12193
|
+
/* @__PURE__ */ jsx71("div", { children: children ?? "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4." })
|
|
11493
12194
|
] });
|
|
11494
12195
|
}
|
|
11495
12196
|
function StnWidgetLoading({ lines = 3, className, children, ...rest }) {
|
|
11496
|
-
return /* @__PURE__ */
|
|
12197
|
+
return /* @__PURE__ */ jsx71("div", { className: cn("stn-widget__loading", className), ...rest, children: children ?? /* @__PURE__ */ jsx71(StnLoadingSkeleton.Widget, { lines }) });
|
|
11497
12198
|
}
|
|
11498
12199
|
function StnWidgetInsetIcon({ className, size = "sm", ...rest }) {
|
|
11499
|
-
return /* @__PURE__ */
|
|
12200
|
+
return /* @__PURE__ */ jsx71(StnIconBox, { size, className: cn("stn-widget__inset-icon", className), ...rest });
|
|
11500
12201
|
}
|
|
11501
12202
|
var StnWidget = Object.assign(StnWidgetRoot, {
|
|
11502
12203
|
Header: StnWidgetHeader,
|
|
@@ -11541,7 +12242,7 @@ import {
|
|
|
11541
12242
|
} from "@stn-uiux/pub-ui/data/stnWidget";
|
|
11542
12243
|
|
|
11543
12244
|
// src/patterns/dashboard/AlertCenterDashboard.tsx
|
|
11544
|
-
import { jsx as
|
|
12245
|
+
import { jsx as jsx72, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
11545
12246
|
var TOP5_ROWS = [
|
|
11546
12247
|
{ label: "\uADF8\uB791\uC2DC\uC544", percent: 80, value: "80\uAC74", grade: "critical" },
|
|
11547
12248
|
{ label: "\uC5F0\uB9BD\uC8FC\uD0DD 15\uC138\uB300", percent: 74, value: "74\uAC74", grade: "major" },
|
|
@@ -11550,7 +12251,7 @@ var TOP5_ROWS = [
|
|
|
11550
12251
|
{ label: "PRADA", percent: 68, value: "68\uAC74", grade: "default" }
|
|
11551
12252
|
];
|
|
11552
12253
|
function AlertCenterDashboard({ className, appearance = "translucent", loading = false }) {
|
|
11553
|
-
return /* @__PURE__ */
|
|
12254
|
+
return /* @__PURE__ */ jsxs59(
|
|
11554
12255
|
StnStack,
|
|
11555
12256
|
{
|
|
11556
12257
|
direction: "column",
|
|
@@ -11559,17 +12260,17 @@ function AlertCenterDashboard({ className, appearance = "translucent", loading =
|
|
|
11559
12260
|
style: { flex: "1 1 0%", minHeight: 0, height: "100%", width: "100%" },
|
|
11560
12261
|
"data-stn-dashboard": "alert-widgets",
|
|
11561
12262
|
children: [
|
|
11562
|
-
/* @__PURE__ */
|
|
11563
|
-
/* @__PURE__ */
|
|
11564
|
-
/* @__PURE__ */
|
|
11565
|
-
/* @__PURE__ */
|
|
12263
|
+
/* @__PURE__ */ jsx72(StnWidget, { title: "\uC2DC\uC124 \uD604\uD669", appearance, interactive: true, children: loading ? /* @__PURE__ */ jsx72(StnLoadingSkeleton.Widget, { lines: 3 }) : /* @__PURE__ */ jsxs59(StnWidget.StatusList, { children: [
|
|
12264
|
+
/* @__PURE__ */ jsx72(StnWidget.StatusItem, { label: "PTN", value: "179", showDot: false }),
|
|
12265
|
+
/* @__PURE__ */ jsx72(StnWidget.StatusItem, { label: "MSPP", value: "63", showDot: false }),
|
|
12266
|
+
/* @__PURE__ */ jsx72(StnWidget.StatusItem, { label: "L3\uC2A4\uC704\uCE58", value: "27", showDot: false })
|
|
11566
12267
|
] }) }),
|
|
11567
|
-
/* @__PURE__ */
|
|
11568
|
-
/* @__PURE__ */
|
|
11569
|
-
/* @__PURE__ */
|
|
11570
|
-
/* @__PURE__ */
|
|
12268
|
+
/* @__PURE__ */ jsx72(StnWidget, { title: "\uC7A5\uC560 \uD604\uD669", appearance, interactive: true, children: loading ? /* @__PURE__ */ jsx72(StnLoadingSkeleton.Widget, { lines: 3 }) : /* @__PURE__ */ jsxs59(StnWidget.StatusList, { children: [
|
|
12269
|
+
/* @__PURE__ */ jsx72(StnWidget.StatusItem, { label: "Critical", value: "43", grade: "critical" }),
|
|
12270
|
+
/* @__PURE__ */ jsx72(StnWidget.StatusItem, { label: "Major", value: "79", grade: "major" }),
|
|
12271
|
+
/* @__PURE__ */ jsx72(StnWidget.StatusItem, { label: "Minor", value: "3", grade: "minor" })
|
|
11571
12272
|
] }) }),
|
|
11572
|
-
/* @__PURE__ */
|
|
12273
|
+
/* @__PURE__ */ jsx72(StnWidget, { title: "\uC77C\uC77C \uC7A5\uBE44\uBCC4 \uC7A5\uC560 TOP5", appearance, interactive: true, children: loading ? /* @__PURE__ */ jsx72(StnLoadingSkeleton.Widget, { lines: 4 }) : /* @__PURE__ */ jsx72(StnWidget.GradeRowList, { children: TOP5_ROWS.map((row) => /* @__PURE__ */ jsx72(
|
|
11573
12274
|
StnWidget.GradeRow,
|
|
11574
12275
|
{
|
|
11575
12276
|
grade: row.grade,
|
|
@@ -11579,50 +12280,50 @@ function AlertCenterDashboard({ className, appearance = "translucent", loading =
|
|
|
11579
12280
|
},
|
|
11580
12281
|
row.label
|
|
11581
12282
|
)) }) }),
|
|
11582
|
-
/* @__PURE__ */
|
|
12283
|
+
/* @__PURE__ */ jsx72(StnWidget, { title: "\uC77C\uC77C \uC7A5\uC560 \uD1B5\uACC4", appearance, interactive: true, children: loading ? /* @__PURE__ */ jsx72(StnLoadingSkeleton.Widget, { lines: 3 }) : /* @__PURE__ */ jsx72(StnWidget.ChartSlot, { label: "\uC77C\uC77C \uC7A5\uC560 \uD1B5\uACC4 \uCC28\uD2B8" }) })
|
|
11583
12284
|
]
|
|
11584
12285
|
}
|
|
11585
12286
|
);
|
|
11586
12287
|
}
|
|
11587
12288
|
|
|
11588
12289
|
// src/patterns/dashboard/PubDashboardWidgetBodies.tsx
|
|
11589
|
-
import { jsx as
|
|
12290
|
+
import { jsx as jsx73, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
11590
12291
|
function PubDisabilityStatusList({ items, summary }) {
|
|
11591
|
-
return /* @__PURE__ */
|
|
11592
|
-
/* @__PURE__ */
|
|
12292
|
+
return /* @__PURE__ */ jsxs60("div", { className: "ds-disability-status", children: [
|
|
12293
|
+
/* @__PURE__ */ jsx73("ul", { className: "ds-disability-status__list", children: items.map((item, i) => /* @__PURE__ */ jsxs60(
|
|
11593
12294
|
"li",
|
|
11594
12295
|
{
|
|
11595
12296
|
className: ["ds-disability-status__item", item.grade].filter(Boolean).join(" "),
|
|
11596
12297
|
children: [
|
|
11597
|
-
/* @__PURE__ */
|
|
11598
|
-
item.showDot !== false && item.grade ? /* @__PURE__ */
|
|
12298
|
+
/* @__PURE__ */ jsxs60("span", { children: [
|
|
12299
|
+
item.showDot !== false && item.grade ? /* @__PURE__ */ jsx73("span", { className: "dot", "aria-hidden": true }) : null,
|
|
11599
12300
|
item.label
|
|
11600
12301
|
] }),
|
|
11601
|
-
/* @__PURE__ */
|
|
12302
|
+
/* @__PURE__ */ jsx73("p", { children: item.value })
|
|
11602
12303
|
]
|
|
11603
12304
|
},
|
|
11604
12305
|
i
|
|
11605
12306
|
)) }),
|
|
11606
|
-
summary && summary.length > 0 ? /* @__PURE__ */
|
|
12307
|
+
summary && summary.length > 0 ? /* @__PURE__ */ jsx73("div", { className: "ds-disability-status__summary", children: summary.map((row, i) => /* @__PURE__ */ jsxs60("p", { className: "ds-disability-status__value", children: [
|
|
11607
12308
|
row.label,
|
|
11608
|
-
/* @__PURE__ */
|
|
12309
|
+
/* @__PURE__ */ jsx73("span", { children: row.value })
|
|
11609
12310
|
] }, i)) }) : null
|
|
11610
12311
|
] });
|
|
11611
12312
|
}
|
|
11612
12313
|
function PubTrafficTop5Bars({ rows }) {
|
|
11613
12314
|
const maxPercent = Math.max(...rows.map((row) => row.percent), 0);
|
|
11614
|
-
return /* @__PURE__ */
|
|
11615
|
-
/* @__PURE__ */
|
|
11616
|
-
/* @__PURE__ */
|
|
11617
|
-
/* @__PURE__ */
|
|
12315
|
+
return /* @__PURE__ */ jsx73("div", { className: "ds-bar-group", children: rows.map((row) => /* @__PURE__ */ jsxs60("div", { className: ["ds-bar", row.percent === maxPercent ? "max" : ""].filter(Boolean).join(" "), children: [
|
|
12316
|
+
/* @__PURE__ */ jsx73("p", { className: "ds-bar-name", title: row.label, children: row.label }),
|
|
12317
|
+
/* @__PURE__ */ jsx73("div", { className: "ds-bar-con", title: `${row.percent}%`, children: /* @__PURE__ */ jsx73("span", { className: "ds-bar-gauge", style: { "--percent": `${row.percent}%` } }) }),
|
|
12318
|
+
/* @__PURE__ */ jsx73("p", { className: "ds-bar-value", title: row.value, children: row.value })
|
|
11618
12319
|
] }, row.label)) });
|
|
11619
12320
|
}
|
|
11620
12321
|
function PubTop5EquipmentBars({ rows }) {
|
|
11621
|
-
return /* @__PURE__ */
|
|
11622
|
-
/* @__PURE__ */
|
|
11623
|
-
/* @__PURE__ */
|
|
11624
|
-
/* @__PURE__ */
|
|
11625
|
-
/* @__PURE__ */
|
|
12322
|
+
return /* @__PURE__ */ jsxs60("div", { className: "ds-group", children: [
|
|
12323
|
+
/* @__PURE__ */ jsx73("div", { className: "ds-group-box", children: /* @__PURE__ */ jsx73("div", { className: "ds-equipment-ico", children: /* @__PURE__ */ jsx73("span", { className: "blind", children: "\uC7A5\uBE44 \uC774\uBBF8\uC9C0" }) }) }),
|
|
12324
|
+
/* @__PURE__ */ jsx73("div", { className: "ds-group-box", children: /* @__PURE__ */ jsx73("div", { className: "ds-bar-group", children: rows.map((row) => /* @__PURE__ */ jsx73("div", { className: "ds-bar type-2", children: /* @__PURE__ */ jsxs60("div", { className: "ds-bar-con", title: `${row.percent}%`, children: [
|
|
12325
|
+
/* @__PURE__ */ jsx73("span", { className: "ds-bar-gauge", style: { "--percent": `${row.percent}%` } }),
|
|
12326
|
+
/* @__PURE__ */ jsx73("div", { className: "ds-bar-status", children: row.status })
|
|
11626
12327
|
] }) }, row.label)) }) })
|
|
11627
12328
|
] });
|
|
11628
12329
|
}
|
|
@@ -11631,15 +12332,15 @@ function PubChartSample({
|
|
|
11631
12332
|
alt = "\uCC28\uD2B8",
|
|
11632
12333
|
onError
|
|
11633
12334
|
}) {
|
|
11634
|
-
return /* @__PURE__ */
|
|
12335
|
+
return /* @__PURE__ */ jsx73("div", { className: "ds-chart", children: /* @__PURE__ */ jsx73("img", { src, alt, className: "chart_sample", onError }) });
|
|
11635
12336
|
}
|
|
11636
12337
|
|
|
11637
12338
|
// src/patterns/alertCenter/StnAlertCenterPanel.tsx
|
|
11638
|
-
import { useState as
|
|
12339
|
+
import { useState as useState20 } from "react";
|
|
11639
12340
|
import {
|
|
11640
12341
|
STN_ALERT_CENTER_TABS
|
|
11641
12342
|
} from "@stn-uiux/pub-ui/data/stnAlertCenter";
|
|
11642
|
-
import { jsx as
|
|
12343
|
+
import { jsx as jsx74, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
11643
12344
|
function resolveAlertIcon(item) {
|
|
11644
12345
|
if (item.icon) {
|
|
11645
12346
|
if (item.icon === "line/arrow-down") return "line/arrow-narrow-down";
|
|
@@ -11666,7 +12367,7 @@ function StnAlertCard({
|
|
|
11666
12367
|
}) {
|
|
11667
12368
|
const iconNode = resolveAlertIcon(item);
|
|
11668
12369
|
const gradeLabel = resolveGradeLabel(item.grade);
|
|
11669
|
-
return /* @__PURE__ */
|
|
12370
|
+
return /* @__PURE__ */ jsx74(
|
|
11670
12371
|
StnCard,
|
|
11671
12372
|
{
|
|
11672
12373
|
variant: "elevated",
|
|
@@ -11675,8 +12376,8 @@ function StnAlertCard({
|
|
|
11675
12376
|
interactive: true,
|
|
11676
12377
|
className: cn("stn-alert-card", className),
|
|
11677
12378
|
onClick,
|
|
11678
|
-
children: /* @__PURE__ */
|
|
11679
|
-
/* @__PURE__ */
|
|
12379
|
+
children: /* @__PURE__ */ jsxs61("div", { className: "stn-alert-card__row", children: [
|
|
12380
|
+
/* @__PURE__ */ jsx74(
|
|
11680
12381
|
StnIcon,
|
|
11681
12382
|
{
|
|
11682
12383
|
name: iconNode,
|
|
@@ -11685,9 +12386,9 @@ function StnAlertCard({
|
|
|
11685
12386
|
className: "stn-alert-card__icon"
|
|
11686
12387
|
}
|
|
11687
12388
|
),
|
|
11688
|
-
/* @__PURE__ */
|
|
11689
|
-
/* @__PURE__ */
|
|
11690
|
-
/* @__PURE__ */
|
|
12389
|
+
/* @__PURE__ */ jsxs61("div", { className: "stn-alert-card__body", children: [
|
|
12390
|
+
/* @__PURE__ */ jsxs61(StnStack, { direction: "row", alignItems: "center", spacing: 1, className: "stn-alert-card__header-line", children: [
|
|
12391
|
+
/* @__PURE__ */ jsx74(
|
|
11691
12392
|
StnChip,
|
|
11692
12393
|
{
|
|
11693
12394
|
shape: "pill",
|
|
@@ -11697,25 +12398,25 @@ function StnAlertCard({
|
|
|
11697
12398
|
children: gradeLabel
|
|
11698
12399
|
}
|
|
11699
12400
|
),
|
|
11700
|
-
/* @__PURE__ */
|
|
12401
|
+
/* @__PURE__ */ jsx74(
|
|
11701
12402
|
"span",
|
|
11702
12403
|
{
|
|
11703
12404
|
className: cn("stn-alert-card__title", titleOverflow),
|
|
11704
12405
|
title: item.title,
|
|
11705
|
-
children: /* @__PURE__ */
|
|
12406
|
+
children: /* @__PURE__ */ jsx74("span", { className: "stn-alert-card__text-inner", children: item.title })
|
|
11706
12407
|
}
|
|
11707
12408
|
)
|
|
11708
12409
|
] }),
|
|
11709
|
-
/* @__PURE__ */
|
|
11710
|
-
/* @__PURE__ */
|
|
12410
|
+
/* @__PURE__ */ jsxs61(StnStack, { direction: "row", alignItems: "center", spacing: 2, wrap: "wrap", className: "stn-alert-card__desc-line", children: [
|
|
12411
|
+
/* @__PURE__ */ jsx74(
|
|
11711
12412
|
"span",
|
|
11712
12413
|
{
|
|
11713
12414
|
className: cn("stn-alert-card__desc", descOverflow),
|
|
11714
12415
|
title: item.description,
|
|
11715
|
-
children: /* @__PURE__ */
|
|
12416
|
+
children: /* @__PURE__ */ jsx74("span", { className: "stn-alert-card__text-inner", children: item.description })
|
|
11716
12417
|
}
|
|
11717
12418
|
),
|
|
11718
|
-
item.occurredAt && /* @__PURE__ */
|
|
12419
|
+
item.occurredAt && /* @__PURE__ */ jsxs61(
|
|
11719
12420
|
StnChip,
|
|
11720
12421
|
{
|
|
11721
12422
|
shape: "pill",
|
|
@@ -11731,9 +12432,9 @@ function StnAlertCard({
|
|
|
11731
12432
|
)
|
|
11732
12433
|
] })
|
|
11733
12434
|
] }),
|
|
11734
|
-
/* @__PURE__ */
|
|
11735
|
-
/* @__PURE__ */
|
|
11736
|
-
item.unread !== false && /* @__PURE__ */
|
|
12435
|
+
/* @__PURE__ */ jsxs61("div", { className: "stn-alert-card__meta", children: [
|
|
12436
|
+
/* @__PURE__ */ jsx74("span", { className: "stn-alert-card__time", children: item.time }),
|
|
12437
|
+
item.unread !== false && /* @__PURE__ */ jsx74(
|
|
11737
12438
|
"span",
|
|
11738
12439
|
{
|
|
11739
12440
|
className: cn(
|
|
@@ -11767,11 +12468,11 @@ function StnAlertCenterPanel({
|
|
|
11767
12468
|
closeLabel = "\uB2EB\uAE30",
|
|
11768
12469
|
className
|
|
11769
12470
|
}) {
|
|
11770
|
-
const [activeTab, setActiveTab] =
|
|
12471
|
+
const [activeTab, setActiveTab] = useState20(defaultTab);
|
|
11771
12472
|
const alertCount = alerts.length;
|
|
11772
12473
|
const resolvedTitleOverflow = titleOverflow ?? textOverflow;
|
|
11773
12474
|
const resolvedDescOverflow = descOverflow ?? textOverflow;
|
|
11774
|
-
return /* @__PURE__ */
|
|
12475
|
+
return /* @__PURE__ */ jsxs61(
|
|
11775
12476
|
"div",
|
|
11776
12477
|
{
|
|
11777
12478
|
className: cn(
|
|
@@ -11783,13 +12484,13 @@ function StnAlertCenterPanel({
|
|
|
11783
12484
|
),
|
|
11784
12485
|
"data-stn-alert-center": true,
|
|
11785
12486
|
children: [
|
|
11786
|
-
/* @__PURE__ */
|
|
11787
|
-
/* @__PURE__ */
|
|
11788
|
-
/* @__PURE__ */
|
|
11789
|
-
/* @__PURE__ */
|
|
11790
|
-
alertCount > 0 && /* @__PURE__ */
|
|
12487
|
+
/* @__PURE__ */ jsxs61("div", { className: "stn-alert-center__header", children: [
|
|
12488
|
+
/* @__PURE__ */ jsxs61("div", { className: "stn-alert-center__header-left", children: [
|
|
12489
|
+
/* @__PURE__ */ jsx74(StnIcon, { name: "line/bell", size: 20, color: "var(--stn-primary)" }),
|
|
12490
|
+
/* @__PURE__ */ jsx74("span", { className: "stn-alert-center__title", children: title }),
|
|
12491
|
+
alertCount > 0 && /* @__PURE__ */ jsx74(StnChip, { shape: "pill", size: "sm", variant: "subtle", color: "primary", children: alertCount })
|
|
11791
12492
|
] }),
|
|
11792
|
-
/* @__PURE__ */
|
|
12493
|
+
/* @__PURE__ */ jsx74(
|
|
11793
12494
|
StnSegmented,
|
|
11794
12495
|
{
|
|
11795
12496
|
size: "md",
|
|
@@ -11802,8 +12503,8 @@ function StnAlertCenterPanel({
|
|
|
11802
12503
|
}))
|
|
11803
12504
|
}
|
|
11804
12505
|
),
|
|
11805
|
-
/* @__PURE__ */
|
|
11806
|
-
/* @__PURE__ */
|
|
12506
|
+
/* @__PURE__ */ jsxs61("div", { className: "stn-alert-center__header-right", children: [
|
|
12507
|
+
/* @__PURE__ */ jsx74(
|
|
11807
12508
|
StnButton,
|
|
11808
12509
|
{
|
|
11809
12510
|
variant: "text",
|
|
@@ -11813,8 +12514,8 @@ function StnAlertCenterPanel({
|
|
|
11813
12514
|
children: "\uBAA8\uB450 \uC77D\uC74C"
|
|
11814
12515
|
}
|
|
11815
12516
|
),
|
|
11816
|
-
/* @__PURE__ */
|
|
11817
|
-
/* @__PURE__ */
|
|
12517
|
+
/* @__PURE__ */ jsx74("div", { className: "stn-alert-center__divider", "aria-hidden": true }),
|
|
12518
|
+
/* @__PURE__ */ jsx74(
|
|
11818
12519
|
StnButton,
|
|
11819
12520
|
{
|
|
11820
12521
|
icon: "line/x",
|
|
@@ -11826,14 +12527,14 @@ function StnAlertCenterPanel({
|
|
|
11826
12527
|
)
|
|
11827
12528
|
] })
|
|
11828
12529
|
] }),
|
|
11829
|
-
/* @__PURE__ */
|
|
12530
|
+
/* @__PURE__ */ jsxs61(
|
|
11830
12531
|
StnScroll,
|
|
11831
12532
|
{
|
|
11832
12533
|
orientation: "vertical",
|
|
11833
12534
|
size: "thin",
|
|
11834
12535
|
className: "stn-alert-center__list-wrap",
|
|
11835
12536
|
children: [
|
|
11836
|
-
activeTab === "error" && /* @__PURE__ */
|
|
12537
|
+
activeTab === "error" && /* @__PURE__ */ jsx74("ul", { className: "stn-alert-center__list", children: alerts.map((item) => /* @__PURE__ */ jsx74("li", { children: /* @__PURE__ */ jsx74(
|
|
11837
12538
|
StnAlertCard,
|
|
11838
12539
|
{
|
|
11839
12540
|
item,
|
|
@@ -11842,35 +12543,35 @@ function StnAlertCenterPanel({
|
|
|
11842
12543
|
onClick: () => onItemClick?.(item)
|
|
11843
12544
|
}
|
|
11844
12545
|
) }, item.id ?? item.title)) }),
|
|
11845
|
-
activeTab === "work" && /* @__PURE__ */
|
|
11846
|
-
/* @__PURE__ */
|
|
11847
|
-
/* @__PURE__ */
|
|
11848
|
-
/* @__PURE__ */
|
|
11849
|
-
/* @__PURE__ */
|
|
12546
|
+
activeTab === "work" && /* @__PURE__ */ jsx74("ul", { className: "stn-alert-center__list", children: workItems.map((row) => /* @__PURE__ */ jsx74("li", { children: /* @__PURE__ */ jsx74(StnCard, { variant: "elevated", radius: "md", padding: "md", interactive: true, className: "stn-alert-card", children: /* @__PURE__ */ jsxs61("div", { className: "stn-alert-card__row", children: [
|
|
12547
|
+
/* @__PURE__ */ jsx74(StnIcon, { name: "line/clock", size: 24, color: "var(--stn-text-secondary)", className: "stn-alert-card__icon" }),
|
|
12548
|
+
/* @__PURE__ */ jsxs61("div", { className: "stn-alert-card__body", children: [
|
|
12549
|
+
/* @__PURE__ */ jsx74("span", { className: "stn-alert-card__type-label work", children: row.typeLabel }),
|
|
12550
|
+
/* @__PURE__ */ jsx74("span", { className: cn("stn-alert-card__desc", resolvedDescOverflow), title: row.text, children: /* @__PURE__ */ jsx74("span", { className: "stn-alert-card__text-inner", children: row.text }) })
|
|
11850
12551
|
] }),
|
|
11851
|
-
/* @__PURE__ */
|
|
12552
|
+
/* @__PURE__ */ jsx74("span", { className: "stn-alert-card__time", children: row.time })
|
|
11852
12553
|
] }) }) }, row.id ?? row.text)) }),
|
|
11853
|
-
activeTab === "deploy" && /* @__PURE__ */
|
|
11854
|
-
/* @__PURE__ */
|
|
11855
|
-
/* @__PURE__ */
|
|
11856
|
-
/* @__PURE__ */
|
|
11857
|
-
/* @__PURE__ */
|
|
12554
|
+
activeTab === "deploy" && /* @__PURE__ */ jsx74("ul", { className: "stn-alert-center__list", children: deployItems.map((row) => /* @__PURE__ */ jsx74("li", { children: /* @__PURE__ */ jsx74(StnCard, { variant: "elevated", radius: "md", padding: "md", interactive: true, className: "stn-alert-card", children: /* @__PURE__ */ jsxs61("div", { className: "stn-alert-card__row", children: [
|
|
12555
|
+
/* @__PURE__ */ jsx74(StnIcon, { name: "line/settings", size: 24, color: "var(--stn-secondary)", className: "stn-alert-card__icon" }),
|
|
12556
|
+
/* @__PURE__ */ jsxs61("div", { className: "stn-alert-card__body", children: [
|
|
12557
|
+
/* @__PURE__ */ jsx74("span", { className: "stn-alert-card__type-label stn-alert-card__type-label--deploy", children: row.typeLabel }),
|
|
12558
|
+
/* @__PURE__ */ jsx74("span", { className: cn("stn-alert-card__desc", resolvedDescOverflow), title: row.text, children: /* @__PURE__ */ jsx74("span", { className: "stn-alert-card__text-inner", children: row.text }) })
|
|
11858
12559
|
] }),
|
|
11859
|
-
/* @__PURE__ */
|
|
12560
|
+
/* @__PURE__ */ jsx74("span", { className: "stn-alert-card__time", children: row.time })
|
|
11860
12561
|
] }) }) }, row.id ?? row.text)) })
|
|
11861
12562
|
]
|
|
11862
12563
|
}
|
|
11863
12564
|
),
|
|
11864
|
-
/* @__PURE__ */
|
|
12565
|
+
/* @__PURE__ */ jsx74("div", { className: "stn-alert-center__footer", children: /* @__PURE__ */ jsxs61(
|
|
11865
12566
|
"button",
|
|
11866
12567
|
{
|
|
11867
12568
|
type: "button",
|
|
11868
12569
|
className: "stn-alert-center__footer-link",
|
|
11869
12570
|
onClick: onManageSettings,
|
|
11870
12571
|
children: [
|
|
11871
|
-
/* @__PURE__ */
|
|
11872
|
-
/* @__PURE__ */
|
|
11873
|
-
/* @__PURE__ */
|
|
12572
|
+
/* @__PURE__ */ jsx74("span", { children: "\uC54C\uB9BC \uC124\uC815 \uAD00\uB9AC" }),
|
|
12573
|
+
/* @__PURE__ */ jsx74(StnIcon, { name: "line/settings", size: 14 }),
|
|
12574
|
+
/* @__PURE__ */ jsx74(StnIcon, { name: "line/chevron-right", size: 14 })
|
|
11874
12575
|
]
|
|
11875
12576
|
}
|
|
11876
12577
|
) })
|
|
@@ -11880,7 +12581,7 @@ function StnAlertCenterPanel({
|
|
|
11880
12581
|
}
|
|
11881
12582
|
|
|
11882
12583
|
// src/patterns/alertCenter/StnAlertCenterDocPreview.tsx
|
|
11883
|
-
import { jsx as
|
|
12584
|
+
import { jsx as jsx75 } from "react/jsx-runtime";
|
|
11884
12585
|
function StnAlertCenterDocPreview({
|
|
11885
12586
|
mode = "light",
|
|
11886
12587
|
theme,
|
|
@@ -11888,11 +12589,11 @@ function StnAlertCenterDocPreview({
|
|
|
11888
12589
|
children,
|
|
11889
12590
|
...panelProps
|
|
11890
12591
|
}) {
|
|
11891
|
-
const panel = children ?? /* @__PURE__ */
|
|
12592
|
+
const panel = children ?? /* @__PURE__ */ jsx75(StnAlertCenterPanel, { ...panelProps });
|
|
11892
12593
|
if (!withDocChrome) {
|
|
11893
|
-
return /* @__PURE__ */
|
|
12594
|
+
return /* @__PURE__ */ jsx75(StnProvider, { mode, theme, applyModeToDocument: false, children: panel });
|
|
11894
12595
|
}
|
|
11895
|
-
return /* @__PURE__ */
|
|
12596
|
+
return /* @__PURE__ */ jsx75("div", { className: "stn-doc-frame stn-doc-frame--alert-center", "data-mode": mode, "data-theme": theme, children: /* @__PURE__ */ jsx75("div", { className: "stn-alert-center-preview-shell", children: panel }) });
|
|
11896
12597
|
}
|
|
11897
12598
|
|
|
11898
12599
|
// src/index.ts
|
|
@@ -11917,13 +12618,13 @@ var SideNavContext = createContext7({
|
|
|
11917
12618
|
var useSideNav = () => useContext7(SideNavContext);
|
|
11918
12619
|
|
|
11919
12620
|
// src/components/sideNav/StnSideNavItem.tsx
|
|
11920
|
-
import { forwardRef as
|
|
12621
|
+
import { forwardRef as forwardRef44 } from "react";
|
|
11921
12622
|
import { STN_NAV_MENU_SUB_ICON } from "@stn-uiux/pub-ui/data/stnSideNavItem";
|
|
11922
|
-
import { jsx as
|
|
12623
|
+
import { jsx as jsx76, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
11923
12624
|
function maskStyle2(src) {
|
|
11924
12625
|
return { maskImage: `url('${src}')`, WebkitMaskImage: `url('${src}')` };
|
|
11925
12626
|
}
|
|
11926
|
-
var StnSideNavItem =
|
|
12627
|
+
var StnSideNavItem = forwardRef44(function StnSideNavItem2({
|
|
11927
12628
|
label,
|
|
11928
12629
|
id,
|
|
11929
12630
|
iconSrc,
|
|
@@ -11966,13 +12667,13 @@ var StnSideNavItem = forwardRef41(function StnSideNavItem2({
|
|
|
11966
12667
|
sideNav.onSelect(id);
|
|
11967
12668
|
}
|
|
11968
12669
|
};
|
|
11969
|
-
const iconElement = hasIcon && !isSub ? /* @__PURE__ */
|
|
11970
|
-
/* @__PURE__ */
|
|
11971
|
-
showDot ? /* @__PURE__ */
|
|
12670
|
+
const iconElement = hasIcon && !isSub ? /* @__PURE__ */ jsxs62("span", { className: "stn-side-nav-item__icon-wrap", children: [
|
|
12671
|
+
/* @__PURE__ */ jsx76("span", { className: "stn-side-nav-item__icon", "aria-hidden": "true", children: icon ?? (resolvedIconSrc ? /* @__PURE__ */ jsx76("span", { className: "stn-side-nav-item__icon-glyph", style: maskStyle2(resolvedIconSrc) }) : null) }),
|
|
12672
|
+
showDot ? /* @__PURE__ */ jsx76("span", { className: "stn-side-nav-item__dot-wrap", "aria-hidden": "true", children: /* @__PURE__ */ jsx76(StnBadge, { variant: "dot", color: "error" }) }) : null
|
|
11972
12673
|
] }) : null;
|
|
11973
|
-
const subIconElement = hasIcon && isSub ? /* @__PURE__ */
|
|
12674
|
+
const subIconElement = hasIcon && isSub ? /* @__PURE__ */ jsx76("span", { className: "stn-side-nav-item__sub-icon", "aria-hidden": "true", children: icon ?? (resolvedIconSrc ? /* @__PURE__ */ jsx76("span", { className: "stn-side-nav-item__icon-glyph", style: maskStyle2(resolvedIconSrc) }) : null) }) : null;
|
|
11974
12675
|
const activeIconElement = isSub ? subIconElement : iconElement;
|
|
11975
|
-
return /* @__PURE__ */
|
|
12676
|
+
return /* @__PURE__ */ jsx76(
|
|
11976
12677
|
"button",
|
|
11977
12678
|
{
|
|
11978
12679
|
ref,
|
|
@@ -11991,10 +12692,10 @@ var StnSideNavItem = forwardRef41(function StnSideNavItem2({
|
|
|
11991
12692
|
title: collapsed ? label : void 0,
|
|
11992
12693
|
onClick: handleClick,
|
|
11993
12694
|
...rest,
|
|
11994
|
-
children: /* @__PURE__ */
|
|
11995
|
-
/* @__PURE__ */
|
|
11996
|
-
isSub && showSubIndent ? /* @__PURE__ */
|
|
11997
|
-
shouldShowSubDot ? /* @__PURE__ */
|
|
12695
|
+
children: /* @__PURE__ */ jsxs62("span", { className: cn("stn-side-nav-item__inner", spreadTrail && "spread"), children: [
|
|
12696
|
+
/* @__PURE__ */ jsxs62("span", { className: "stn-side-nav-item__lead", children: [
|
|
12697
|
+
isSub && showSubIndent ? /* @__PURE__ */ jsx76("span", { className: "stn-side-nav-item__sub-indent", "aria-hidden": "true" }) : null,
|
|
12698
|
+
shouldShowSubDot ? /* @__PURE__ */ jsx76(
|
|
11998
12699
|
"span",
|
|
11999
12700
|
{
|
|
12000
12701
|
className: cn(
|
|
@@ -12002,14 +12703,14 @@ var StnSideNavItem = forwardRef41(function StnSideNavItem2({
|
|
|
12002
12703
|
hasIcon && iconPosition === "left" && "compact"
|
|
12003
12704
|
),
|
|
12004
12705
|
"aria-hidden": "true",
|
|
12005
|
-
children: /* @__PURE__ */
|
|
12706
|
+
children: /* @__PURE__ */ jsx76("span", { className: "stn-side-nav-item__sub-dot-glyph", style: maskStyle2(STN_NAV_MENU_SUB_ICON) })
|
|
12006
12707
|
}
|
|
12007
12708
|
) : null,
|
|
12008
12709
|
iconPosition === "left" ? activeIconElement : null,
|
|
12009
|
-
/* @__PURE__ */
|
|
12710
|
+
/* @__PURE__ */ jsx76("span", { className: "stn-side-nav-item__label", children: label })
|
|
12010
12711
|
] }),
|
|
12011
12712
|
iconPosition === "right" ? activeIconElement : null,
|
|
12012
|
-
renderBadge ? typeof badge === "string" || typeof badge === "number" ? /* @__PURE__ */
|
|
12713
|
+
renderBadge ? typeof badge === "string" || typeof badge === "number" ? /* @__PURE__ */ jsx76(
|
|
12013
12714
|
StnBadge,
|
|
12014
12715
|
{
|
|
12015
12716
|
badgeContent: badge,
|
|
@@ -12017,7 +12718,7 @@ var StnSideNavItem = forwardRef41(function StnSideNavItem2({
|
|
|
12017
12718
|
appearance: "subtle",
|
|
12018
12719
|
className: "stn-side-nav-item__badge"
|
|
12019
12720
|
}
|
|
12020
|
-
) : badge ? /* @__PURE__ */
|
|
12721
|
+
) : badge ? /* @__PURE__ */ jsx76("span", { className: "stn-side-nav-item__badge", children: badge }) : showBadgeDot ? /* @__PURE__ */ jsx76(
|
|
12021
12722
|
StnBadge,
|
|
12022
12723
|
{
|
|
12023
12724
|
variant: "dot",
|
|
@@ -12025,7 +12726,7 @@ var StnSideNavItem = forwardRef41(function StnSideNavItem2({
|
|
|
12025
12726
|
className: "stn-side-nav-item__badge"
|
|
12026
12727
|
}
|
|
12027
12728
|
) : null : null,
|
|
12028
|
-
!isSub && showChevron && !collapsed ? /* @__PURE__ */
|
|
12729
|
+
!isSub && showChevron && !collapsed ? /* @__PURE__ */ jsx76(
|
|
12029
12730
|
"span",
|
|
12030
12731
|
{
|
|
12031
12732
|
className: cn(
|
|
@@ -12042,15 +12743,15 @@ var StnSideNavItem = forwardRef41(function StnSideNavItem2({
|
|
|
12042
12743
|
});
|
|
12043
12744
|
|
|
12044
12745
|
// src/components/sideNav/StnSideNavHeader.tsx
|
|
12045
|
-
import { forwardRef as
|
|
12746
|
+
import { forwardRef as forwardRef46 } from "react";
|
|
12046
12747
|
|
|
12047
12748
|
// src/components/sideNav/StnSideNavLogo.tsx
|
|
12048
|
-
import { forwardRef as
|
|
12049
|
-
import { jsx as
|
|
12050
|
-
var StnSideNavLogo =
|
|
12749
|
+
import { forwardRef as forwardRef45 } from "react";
|
|
12750
|
+
import { jsx as jsx77 } from "react/jsx-runtime";
|
|
12751
|
+
var StnSideNavLogo = forwardRef45(
|
|
12051
12752
|
function StnSideNavLogo2({ className, logoProps, ...rest }, ref) {
|
|
12052
12753
|
const { collapsed } = useSideNav();
|
|
12053
|
-
return /* @__PURE__ */
|
|
12754
|
+
return /* @__PURE__ */ jsx77(
|
|
12054
12755
|
"div",
|
|
12055
12756
|
{
|
|
12056
12757
|
ref,
|
|
@@ -12061,7 +12762,7 @@ var StnSideNavLogo = forwardRef42(
|
|
|
12061
12762
|
),
|
|
12062
12763
|
title: "InfoMap",
|
|
12063
12764
|
...rest,
|
|
12064
|
-
children: /* @__PURE__ */
|
|
12765
|
+
children: /* @__PURE__ */ jsx77(
|
|
12065
12766
|
StnLogo,
|
|
12066
12767
|
{
|
|
12067
12768
|
variant: collapsed ? "onlyimg" : "horizontal",
|
|
@@ -12075,8 +12776,8 @@ var StnSideNavLogo = forwardRef42(
|
|
|
12075
12776
|
);
|
|
12076
12777
|
|
|
12077
12778
|
// src/components/sideNav/StnSideNavHeader.tsx
|
|
12078
|
-
import { Fragment as Fragment12, jsx as
|
|
12079
|
-
var StnSideNavHeader =
|
|
12779
|
+
import { Fragment as Fragment12, jsx as jsx78, jsxs as jsxs63 } from "react/jsx-runtime";
|
|
12780
|
+
var StnSideNavHeader = forwardRef46(function StnSideNavHeader2({
|
|
12080
12781
|
children,
|
|
12081
12782
|
border = false,
|
|
12082
12783
|
hasBorder = false,
|
|
@@ -12088,7 +12789,7 @@ var StnSideNavHeader = forwardRef43(function StnSideNavHeader2({
|
|
|
12088
12789
|
const { collapsed, onToggleCollapse, isDrawer, setMobileOpen } = useSideNav();
|
|
12089
12790
|
const withBorder = Boolean(border || hasBorder);
|
|
12090
12791
|
const shouldShowClose = showClose ?? Boolean(isDrawer);
|
|
12091
|
-
return /* @__PURE__ */
|
|
12792
|
+
return /* @__PURE__ */ jsx78(
|
|
12092
12793
|
"div",
|
|
12093
12794
|
{
|
|
12094
12795
|
ref,
|
|
@@ -12099,9 +12800,9 @@ var StnSideNavHeader = forwardRef43(function StnSideNavHeader2({
|
|
|
12099
12800
|
className
|
|
12100
12801
|
),
|
|
12101
12802
|
...rest,
|
|
12102
|
-
children: children ?? /* @__PURE__ */
|
|
12103
|
-
/* @__PURE__ */
|
|
12104
|
-
shouldShowClose ? /* @__PURE__ */
|
|
12803
|
+
children: children ?? /* @__PURE__ */ jsxs63(Fragment12, { children: [
|
|
12804
|
+
/* @__PURE__ */ jsx78(StnSideNavLogo, {}),
|
|
12805
|
+
shouldShowClose ? /* @__PURE__ */ jsx78(
|
|
12105
12806
|
StnButton,
|
|
12106
12807
|
{
|
|
12107
12808
|
size: "sm",
|
|
@@ -12113,7 +12814,7 @@ var StnSideNavHeader = forwardRef43(function StnSideNavHeader2({
|
|
|
12113
12814
|
className: "stn-side-nav__collapse-btn",
|
|
12114
12815
|
onClick: () => setMobileOpen?.(false)
|
|
12115
12816
|
}
|
|
12116
|
-
) : showToggle ? /* @__PURE__ */
|
|
12817
|
+
) : showToggle ? /* @__PURE__ */ jsx78(
|
|
12117
12818
|
StnButton,
|
|
12118
12819
|
{
|
|
12119
12820
|
size: "sm",
|
|
@@ -12132,16 +12833,16 @@ var StnSideNavHeader = forwardRef43(function StnSideNavHeader2({
|
|
|
12132
12833
|
});
|
|
12133
12834
|
|
|
12134
12835
|
// src/components/sideNav/StnSideNavMenu.tsx
|
|
12135
|
-
import { forwardRef as
|
|
12136
|
-
import { jsx as
|
|
12137
|
-
var StnSideNavMenu =
|
|
12836
|
+
import { forwardRef as forwardRef47 } from "react";
|
|
12837
|
+
import { jsx as jsx79 } from "react/jsx-runtime";
|
|
12838
|
+
var StnSideNavMenu = forwardRef47(function StnSideNavMenu2({
|
|
12138
12839
|
children,
|
|
12139
12840
|
className,
|
|
12140
12841
|
scrollSize = "thin",
|
|
12141
12842
|
scrollColor = "fade",
|
|
12142
12843
|
...rest
|
|
12143
12844
|
}, ref) {
|
|
12144
|
-
return /* @__PURE__ */
|
|
12845
|
+
return /* @__PURE__ */ jsx79(
|
|
12145
12846
|
"nav",
|
|
12146
12847
|
{
|
|
12147
12848
|
ref,
|
|
@@ -12162,13 +12863,13 @@ var StnSideNavMenu = forwardRef44(function StnSideNavMenu2({
|
|
|
12162
12863
|
|
|
12163
12864
|
// src/components/sideNav/StnSideNavGroup.tsx
|
|
12164
12865
|
import {
|
|
12165
|
-
forwardRef as
|
|
12866
|
+
forwardRef as forwardRef48,
|
|
12166
12867
|
useEffect as useEffect16,
|
|
12167
12868
|
useRef as useRef13,
|
|
12168
|
-
useState as
|
|
12869
|
+
useState as useState21
|
|
12169
12870
|
} from "react";
|
|
12170
|
-
import { jsx as
|
|
12171
|
-
var StnSideNavGroup =
|
|
12871
|
+
import { jsx as jsx80, jsxs as jsxs64 } from "react/jsx-runtime";
|
|
12872
|
+
var StnSideNavGroup = forwardRef48(function StnSideNavGroup2({
|
|
12172
12873
|
label,
|
|
12173
12874
|
parent,
|
|
12174
12875
|
direction = "down",
|
|
@@ -12184,7 +12885,7 @@ var StnSideNavGroup = forwardRef45(function StnSideNavGroup2({
|
|
|
12184
12885
|
...rest
|
|
12185
12886
|
}, ref) {
|
|
12186
12887
|
const { collapsed } = useSideNav();
|
|
12187
|
-
const [internalOpen, setInternalOpen] =
|
|
12888
|
+
const [internalOpen, setInternalOpen] = useState21(defaultOpen);
|
|
12188
12889
|
const isOpen = openProp ?? internalOpen;
|
|
12189
12890
|
const isDropdown = Boolean(dropdown || variant === "dropdown");
|
|
12190
12891
|
const isTransparent = dropdownVariant === "transparent" || dropdownBackground === false;
|
|
@@ -12212,7 +12913,7 @@ var StnSideNavGroup = forwardRef45(function StnSideNavGroup2({
|
|
|
12212
12913
|
}
|
|
12213
12914
|
onOpenChange?.(next);
|
|
12214
12915
|
};
|
|
12215
|
-
const subnavNode = children && (!collapsed && isOpen) ? /* @__PURE__ */
|
|
12916
|
+
const subnavNode = children && (!collapsed && isOpen) ? /* @__PURE__ */ jsx80(
|
|
12216
12917
|
"div",
|
|
12217
12918
|
{
|
|
12218
12919
|
className: cn(
|
|
@@ -12227,7 +12928,7 @@ var StnSideNavGroup = forwardRef45(function StnSideNavGroup2({
|
|
|
12227
12928
|
children
|
|
12228
12929
|
}
|
|
12229
12930
|
) : null;
|
|
12230
|
-
return /* @__PURE__ */
|
|
12931
|
+
return /* @__PURE__ */ jsxs64(
|
|
12231
12932
|
"div",
|
|
12232
12933
|
{
|
|
12233
12934
|
ref: (node) => {
|
|
@@ -12248,7 +12949,7 @@ var StnSideNavGroup = forwardRef45(function StnSideNavGroup2({
|
|
|
12248
12949
|
"aria-label": typeof label === "string" ? label : void 0,
|
|
12249
12950
|
...rest,
|
|
12250
12951
|
children: [
|
|
12251
|
-
label && !collapsed ? /* @__PURE__ */
|
|
12952
|
+
label && !collapsed ? /* @__PURE__ */ jsx80("span", { className: "stn-side-nav__group-label", onClick: handleToggle, children: label }) : null,
|
|
12252
12953
|
isUp ? subnavNode : null,
|
|
12253
12954
|
parent,
|
|
12254
12955
|
!isUp ? subnavNode : null
|
|
@@ -12258,10 +12959,10 @@ var StnSideNavGroup = forwardRef45(function StnSideNavGroup2({
|
|
|
12258
12959
|
});
|
|
12259
12960
|
|
|
12260
12961
|
// src/components/sideNav/StnSideNavSpacer.tsx
|
|
12261
|
-
import { forwardRef as
|
|
12262
|
-
import { jsx as
|
|
12263
|
-
var StnSideNavSpacer =
|
|
12264
|
-
return /* @__PURE__ */
|
|
12962
|
+
import { forwardRef as forwardRef49 } from "react";
|
|
12963
|
+
import { jsx as jsx81 } from "react/jsx-runtime";
|
|
12964
|
+
var StnSideNavSpacer = forwardRef49(function StnSideNavSpacer2({ className, style, ...rest }, ref) {
|
|
12965
|
+
return /* @__PURE__ */ jsx81(
|
|
12265
12966
|
"div",
|
|
12266
12967
|
{
|
|
12267
12968
|
ref,
|
|
@@ -12274,10 +12975,10 @@ var StnSideNavSpacer = forwardRef46(function StnSideNavSpacer2({ className, styl
|
|
|
12274
12975
|
});
|
|
12275
12976
|
|
|
12276
12977
|
// src/components/sideNav/StnSideNavFooter.tsx
|
|
12277
|
-
import { forwardRef as
|
|
12278
|
-
import { jsx as
|
|
12279
|
-
var StnSideNavFooter =
|
|
12280
|
-
return /* @__PURE__ */
|
|
12978
|
+
import { forwardRef as forwardRef50 } from "react";
|
|
12979
|
+
import { jsx as jsx82 } from "react/jsx-runtime";
|
|
12980
|
+
var StnSideNavFooter = forwardRef50(function StnSideNavFooter2({ curved = false, children, className, ...rest }, ref) {
|
|
12981
|
+
return /* @__PURE__ */ jsx82(
|
|
12281
12982
|
"nav",
|
|
12282
12983
|
{
|
|
12283
12984
|
ref,
|
|
@@ -12290,12 +12991,12 @@ var StnSideNavFooter = forwardRef47(function StnSideNavFooter2({ curved = false,
|
|
|
12290
12991
|
});
|
|
12291
12992
|
|
|
12292
12993
|
// src/components/sideNav/StnSideNavToggle.tsx
|
|
12293
|
-
import { forwardRef as
|
|
12294
|
-
import { jsx as
|
|
12295
|
-
var StnSideNavToggle =
|
|
12994
|
+
import { forwardRef as forwardRef51 } from "react";
|
|
12995
|
+
import { jsx as jsx83 } from "react/jsx-runtime";
|
|
12996
|
+
var StnSideNavToggle = forwardRef51(
|
|
12296
12997
|
function StnSideNavToggle2({ className, onClick, ...rest }, ref) {
|
|
12297
12998
|
const { collapsed, onToggleCollapse } = useSideNav();
|
|
12298
|
-
return /* @__PURE__ */
|
|
12999
|
+
return /* @__PURE__ */ jsx83(
|
|
12299
13000
|
"button",
|
|
12300
13001
|
{
|
|
12301
13002
|
ref,
|
|
@@ -12308,7 +13009,7 @@ var StnSideNavToggle = forwardRef48(
|
|
|
12308
13009
|
"aria-label": collapsed ? "\uC0AC\uC774\uB4DC\uBC14 \uD3BC\uCE58\uAE30" : "\uC0AC\uC774\uB4DC\uBC14 \uC811\uAE30",
|
|
12309
13010
|
title: collapsed ? "\uC0AC\uC774\uB4DC\uBC14 \uD3BC\uCE58\uAE30" : "\uC0AC\uC774\uB4DC\uBC14 \uC811\uAE30",
|
|
12310
13011
|
...rest,
|
|
12311
|
-
children: /* @__PURE__ */
|
|
13012
|
+
children: /* @__PURE__ */ jsx83(
|
|
12312
13013
|
"svg",
|
|
12313
13014
|
{
|
|
12314
13015
|
width: "12",
|
|
@@ -12319,7 +13020,7 @@ var StnSideNavToggle = forwardRef48(
|
|
|
12319
13020
|
strokeWidth: "2.5",
|
|
12320
13021
|
strokeLinecap: "round",
|
|
12321
13022
|
strokeLinejoin: "round",
|
|
12322
|
-
children: /* @__PURE__ */
|
|
13023
|
+
children: /* @__PURE__ */ jsx83("path", { d: "M9 18l6-6-6-6" })
|
|
12323
13024
|
}
|
|
12324
13025
|
)
|
|
12325
13026
|
}
|
|
@@ -12328,30 +13029,30 @@ var StnSideNavToggle = forwardRef48(
|
|
|
12328
13029
|
);
|
|
12329
13030
|
|
|
12330
13031
|
// src/components/sideNav/StnSideNavWatermark.tsx
|
|
12331
|
-
import { forwardRef as
|
|
12332
|
-
import { jsx as
|
|
12333
|
-
var StnSideNavWatermark =
|
|
13032
|
+
import { forwardRef as forwardRef52 } from "react";
|
|
13033
|
+
import { jsx as jsx84 } from "react/jsx-runtime";
|
|
13034
|
+
var StnSideNavWatermark = forwardRef52(
|
|
12334
13035
|
function StnSideNavWatermark2({ size = "xl", mode, theme, className, ...rest }, ref) {
|
|
12335
|
-
return /* @__PURE__ */
|
|
13036
|
+
return /* @__PURE__ */ jsx84(
|
|
12336
13037
|
"div",
|
|
12337
13038
|
{
|
|
12338
13039
|
ref,
|
|
12339
13040
|
className: cn("stn-side-nav__watermark", className),
|
|
12340
13041
|
"aria-hidden": "true",
|
|
12341
13042
|
...rest,
|
|
12342
|
-
children: /* @__PURE__ */
|
|
13043
|
+
children: /* @__PURE__ */ jsx84(StnLogo, { variant: "watermark", size, mode: mode ?? theme })
|
|
12343
13044
|
}
|
|
12344
13045
|
);
|
|
12345
13046
|
}
|
|
12346
13047
|
);
|
|
12347
13048
|
|
|
12348
13049
|
// src/components/sideNav/StnSideNavMobileTrigger.tsx
|
|
12349
|
-
import { forwardRef as
|
|
12350
|
-
import { jsx as
|
|
12351
|
-
var StnSideNavMobileTrigger =
|
|
13050
|
+
import { forwardRef as forwardRef53, useEffect as useEffect17, useState as useState22 } from "react";
|
|
13051
|
+
import { jsx as jsx85, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
13052
|
+
var StnSideNavMobileTrigger = forwardRef53(
|
|
12352
13053
|
function StnSideNavMobileTrigger2({ floating = false, className, children, onClick, ...rest }, ref) {
|
|
12353
13054
|
const { onToggleMobileOpen, mobileOpen: contextMobileOpen } = useSideNav();
|
|
12354
|
-
const [fallbackMobileOpen, setFallbackMobileOpen] =
|
|
13055
|
+
const [fallbackMobileOpen, setFallbackMobileOpen] = useState22(false);
|
|
12355
13056
|
useEffect17(() => {
|
|
12356
13057
|
if (onToggleMobileOpen) return;
|
|
12357
13058
|
const handleStateChange = (e) => {
|
|
@@ -12366,7 +13067,7 @@ var StnSideNavMobileTrigger = forwardRef50(
|
|
|
12366
13067
|
};
|
|
12367
13068
|
}, [onToggleMobileOpen]);
|
|
12368
13069
|
const isMobileOpen = onToggleMobileOpen ? contextMobileOpen : fallbackMobileOpen;
|
|
12369
|
-
return /* @__PURE__ */
|
|
13070
|
+
return /* @__PURE__ */ jsx85(
|
|
12370
13071
|
"button",
|
|
12371
13072
|
{
|
|
12372
13073
|
ref,
|
|
@@ -12388,10 +13089,10 @@ var StnSideNavMobileTrigger = forwardRef50(
|
|
|
12388
13089
|
}
|
|
12389
13090
|
},
|
|
12390
13091
|
...rest,
|
|
12391
|
-
children: children ?? /* @__PURE__ */
|
|
12392
|
-
/* @__PURE__ */
|
|
12393
|
-
/* @__PURE__ */
|
|
12394
|
-
/* @__PURE__ */
|
|
13092
|
+
children: children ?? /* @__PURE__ */ jsxs65("span", { className: "stn-side-nav__hamburger-bars", "aria-hidden": "true", children: [
|
|
13093
|
+
/* @__PURE__ */ jsx85("span", {}),
|
|
13094
|
+
/* @__PURE__ */ jsx85("span", {}),
|
|
13095
|
+
/* @__PURE__ */ jsx85("span", {})
|
|
12395
13096
|
] })
|
|
12396
13097
|
}
|
|
12397
13098
|
);
|
|
@@ -12400,12 +13101,12 @@ var StnSideNavMobileTrigger = forwardRef50(
|
|
|
12400
13101
|
|
|
12401
13102
|
// src/components/sideNav/StnSideNavSub.tsx
|
|
12402
13103
|
import {
|
|
12403
|
-
forwardRef as
|
|
13104
|
+
forwardRef as forwardRef54
|
|
12404
13105
|
} from "react";
|
|
12405
|
-
import { jsx as
|
|
12406
|
-
var StnSideNavSub =
|
|
13106
|
+
import { jsx as jsx86 } from "react/jsx-runtime";
|
|
13107
|
+
var StnSideNavSub = forwardRef54(
|
|
12407
13108
|
function StnSideNavSub2({ children, className, ...rest }, ref) {
|
|
12408
|
-
return /* @__PURE__ */
|
|
13109
|
+
return /* @__PURE__ */ jsx86(
|
|
12409
13110
|
"div",
|
|
12410
13111
|
{
|
|
12411
13112
|
ref,
|
|
@@ -12418,7 +13119,7 @@ var StnSideNavSub = forwardRef51(
|
|
|
12418
13119
|
);
|
|
12419
13120
|
}
|
|
12420
13121
|
);
|
|
12421
|
-
var StnSideNavSubItem =
|
|
13122
|
+
var StnSideNavSubItem = forwardRef54(
|
|
12422
13123
|
function StnSideNavSubItem2({
|
|
12423
13124
|
variant = "ghost",
|
|
12424
13125
|
size = "md",
|
|
@@ -12434,14 +13135,14 @@ var StnSideNavSubItem = forwardRef51(
|
|
|
12434
13135
|
const { collapsed } = useSideNav();
|
|
12435
13136
|
const content = children ?? label;
|
|
12436
13137
|
const computedTitle = title ?? (typeof content === "string" ? content : void 0);
|
|
12437
|
-
const resolvedIcon = icon ?? (iconSrc ? /* @__PURE__ */
|
|
13138
|
+
const resolvedIcon = icon ?? (iconSrc ? /* @__PURE__ */ jsx86("span", { className: "stn-side-nav__sub-icon", children: /* @__PURE__ */ jsx86(
|
|
12438
13139
|
"span",
|
|
12439
13140
|
{
|
|
12440
13141
|
className: "stn-side-nav__sub-glyph",
|
|
12441
13142
|
style: { maskImage: `url('${iconSrc}')`, WebkitMaskImage: `url('${iconSrc}')` }
|
|
12442
13143
|
}
|
|
12443
13144
|
) }) : null);
|
|
12444
|
-
return /* @__PURE__ */
|
|
13145
|
+
return /* @__PURE__ */ jsx86(
|
|
12445
13146
|
StnButton,
|
|
12446
13147
|
{
|
|
12447
13148
|
ref,
|
|
@@ -12460,9 +13161,9 @@ var StnSideNavSubItem = forwardRef51(
|
|
|
12460
13161
|
);
|
|
12461
13162
|
|
|
12462
13163
|
// src/components/sideNav/StnSideNavSubNav.tsx
|
|
12463
|
-
import { forwardRef as
|
|
12464
|
-
import { jsx as
|
|
12465
|
-
var StnSideNavSubNav =
|
|
13164
|
+
import { forwardRef as forwardRef55 } from "react";
|
|
13165
|
+
import { jsx as jsx87 } from "react/jsx-runtime";
|
|
13166
|
+
var StnSideNavSubNav = forwardRef55(
|
|
12466
13167
|
function StnSideNavSubNav2({
|
|
12467
13168
|
dropdown = false,
|
|
12468
13169
|
direction = "down",
|
|
@@ -12474,7 +13175,7 @@ var StnSideNavSubNav = forwardRef52(
|
|
|
12474
13175
|
}, ref) {
|
|
12475
13176
|
const isUp = direction === "up";
|
|
12476
13177
|
const isTransparent = variant === "transparent" || background === false;
|
|
12477
|
-
return /* @__PURE__ */
|
|
13178
|
+
return /* @__PURE__ */ jsx87(
|
|
12478
13179
|
"div",
|
|
12479
13180
|
{
|
|
12480
13181
|
ref,
|
|
@@ -12497,15 +13198,15 @@ var StnSideNavSubNav = forwardRef52(
|
|
|
12497
13198
|
|
|
12498
13199
|
// src/patterns/sideNav/StnSideNavigation.tsx
|
|
12499
13200
|
import {
|
|
12500
|
-
forwardRef as
|
|
13201
|
+
forwardRef as forwardRef56,
|
|
12501
13202
|
useCallback as useCallback11,
|
|
12502
13203
|
useEffect as useEffect18,
|
|
12503
|
-
useMemo as
|
|
12504
|
-
useState as
|
|
13204
|
+
useMemo as useMemo6,
|
|
13205
|
+
useState as useState23
|
|
12505
13206
|
} from "react";
|
|
12506
|
-
import { jsx as
|
|
13207
|
+
import { jsx as jsx88, jsxs as jsxs66 } from "react/jsx-runtime";
|
|
12507
13208
|
function useControllableState(controlledValue, defaultValue, onChange) {
|
|
12508
|
-
const [internalState, setInternalState] =
|
|
13209
|
+
const [internalState, setInternalState] = useState23(defaultValue);
|
|
12509
13210
|
const isControlled = controlledValue !== void 0;
|
|
12510
13211
|
const value = isControlled ? controlledValue : internalState;
|
|
12511
13212
|
const setValue = useCallback11(
|
|
@@ -12519,7 +13220,7 @@ function useControllableState(controlledValue, defaultValue, onChange) {
|
|
|
12519
13220
|
);
|
|
12520
13221
|
return [value, setValue];
|
|
12521
13222
|
}
|
|
12522
|
-
var StnSideNavigationRoot =
|
|
13223
|
+
var StnSideNavigationRoot = forwardRef56(function StnSideNavigationRoot2({
|
|
12523
13224
|
variant: variantProp,
|
|
12524
13225
|
appearance,
|
|
12525
13226
|
drawerVariant: drawerVariantProp,
|
|
@@ -12583,7 +13284,7 @@ var StnSideNavigationRoot = forwardRef53(function StnSideNavigationRoot2({
|
|
|
12583
13284
|
const isEffectiveCollapsed = isDrawerMode && mobileOpen ? false : collapsed;
|
|
12584
13285
|
const activeVariant = isDrawerMode && mobileOpen ? drawerVariant : variant;
|
|
12585
13286
|
const isGlassmorphism = activeVariant === "glassmorphism";
|
|
12586
|
-
const contextValue =
|
|
13287
|
+
const contextValue = useMemo6(
|
|
12587
13288
|
() => ({
|
|
12588
13289
|
collapsed: isEffectiveCollapsed,
|
|
12589
13290
|
activeId,
|
|
@@ -12596,9 +13297,9 @@ var StnSideNavigationRoot = forwardRef53(function StnSideNavigationRoot2({
|
|
|
12596
13297
|
}),
|
|
12597
13298
|
[isEffectiveCollapsed, activeId, setActiveId, handleToggleCollapse, mobileOpen, handleToggleMobileOpen, setMobileOpen, isDrawerMode]
|
|
12598
13299
|
);
|
|
12599
|
-
return /* @__PURE__ */
|
|
12600
|
-
showMobileTrigger && /* @__PURE__ */
|
|
12601
|
-
(drawer || responsiveDrawer) && /* @__PURE__ */
|
|
13300
|
+
return /* @__PURE__ */ jsxs66(SideNavContext.Provider, { value: contextValue, children: [
|
|
13301
|
+
showMobileTrigger && /* @__PURE__ */ jsx88(StnSideNavMobileTrigger, { floating: true }),
|
|
13302
|
+
(drawer || responsiveDrawer) && /* @__PURE__ */ jsx88(
|
|
12602
13303
|
"div",
|
|
12603
13304
|
{
|
|
12604
13305
|
className: cn("stn-side-nav__backdrop", mobileOpen && "is-open"),
|
|
@@ -12606,7 +13307,7 @@ var StnSideNavigationRoot = forwardRef53(function StnSideNavigationRoot2({
|
|
|
12606
13307
|
"aria-hidden": !mobileOpen
|
|
12607
13308
|
}
|
|
12608
13309
|
),
|
|
12609
|
-
/* @__PURE__ */
|
|
13310
|
+
/* @__PURE__ */ jsx88(
|
|
12610
13311
|
"aside",
|
|
12611
13312
|
{
|
|
12612
13313
|
ref,
|
|
@@ -12650,12 +13351,12 @@ import {
|
|
|
12650
13351
|
useEffect as useEffect19,
|
|
12651
13352
|
useId as useId17,
|
|
12652
13353
|
useRef as useRef14,
|
|
12653
|
-
useState as
|
|
13354
|
+
useState as useState24
|
|
12654
13355
|
} from "react";
|
|
12655
13356
|
import {
|
|
12656
13357
|
STN_BREADCRUMB_ICON_SRC
|
|
12657
13358
|
} from "@stn-uiux/pub-ui/data/stnBreadcrumb";
|
|
12658
|
-
import { Fragment as Fragment14, jsx as
|
|
13359
|
+
import { Fragment as Fragment14, jsx as jsx89, jsxs as jsxs67 } from "react/jsx-runtime";
|
|
12659
13360
|
function maskStyle3(src) {
|
|
12660
13361
|
return { maskImage: `url('${src}')`, WebkitMaskImage: `url('${src}')` };
|
|
12661
13362
|
}
|
|
@@ -12668,13 +13369,13 @@ function hasSegmentMenu(item) {
|
|
|
12668
13369
|
return Boolean(item.menu || item.menuItems && item.menuItems.length > 0);
|
|
12669
13370
|
}
|
|
12670
13371
|
function BreadcrumbSeparator() {
|
|
12671
|
-
return /* @__PURE__ */
|
|
13372
|
+
return /* @__PURE__ */ jsx89("li", { className: "separator", "aria-hidden": "true", children: /* @__PURE__ */ jsx89("span", { style: maskStyle3(STN_BREADCRUMB_ICON_SRC.separator) }) });
|
|
12672
13373
|
}
|
|
12673
13374
|
function BreadcrumbIcon({ src }) {
|
|
12674
|
-
return /* @__PURE__ */
|
|
13375
|
+
return /* @__PURE__ */ jsx89("span", { className: "stn-breadcrumb__icon-glyph", style: maskStyle3(src), "aria-hidden": "true" });
|
|
12675
13376
|
}
|
|
12676
13377
|
function BreadcrumbCaret() {
|
|
12677
|
-
return /* @__PURE__ */
|
|
13378
|
+
return /* @__PURE__ */ jsx89(
|
|
12678
13379
|
"span",
|
|
12679
13380
|
{
|
|
12680
13381
|
className: "stn-breadcrumb__caret",
|
|
@@ -12688,10 +13389,10 @@ function SegmentContent({
|
|
|
12688
13389
|
label,
|
|
12689
13390
|
menu
|
|
12690
13391
|
}) {
|
|
12691
|
-
return /* @__PURE__ */
|
|
12692
|
-
iconSrc ? /* @__PURE__ */
|
|
12693
|
-
/* @__PURE__ */
|
|
12694
|
-
menu ? /* @__PURE__ */
|
|
13392
|
+
return /* @__PURE__ */ jsxs67(Fragment14, { children: [
|
|
13393
|
+
iconSrc ? /* @__PURE__ */ jsx89(BreadcrumbIcon, { src: iconSrc }) : null,
|
|
13394
|
+
/* @__PURE__ */ jsx89("span", { className: "stn-breadcrumb__label", children: label }),
|
|
13395
|
+
menu ? /* @__PURE__ */ jsx89(BreadcrumbCaret, {}) : null
|
|
12695
13396
|
] });
|
|
12696
13397
|
}
|
|
12697
13398
|
function BreadcrumbMenuList({
|
|
@@ -12699,7 +13400,7 @@ function BreadcrumbMenuList({
|
|
|
12699
13400
|
items,
|
|
12700
13401
|
onPick
|
|
12701
13402
|
}) {
|
|
12702
|
-
return /* @__PURE__ */
|
|
13403
|
+
return /* @__PURE__ */ jsx89("ul", { id, className: "stn-breadcrumb__menu", role: "menu", children: items.map((option) => /* @__PURE__ */ jsx89("li", { role: "none", children: option.href ? /* @__PURE__ */ jsx89(
|
|
12703
13404
|
"a",
|
|
12704
13405
|
{
|
|
12705
13406
|
role: "menuitem",
|
|
@@ -12711,7 +13412,7 @@ function BreadcrumbMenuList({
|
|
|
12711
13412
|
},
|
|
12712
13413
|
children: option.label
|
|
12713
13414
|
}
|
|
12714
|
-
) : /* @__PURE__ */
|
|
13415
|
+
) : /* @__PURE__ */ jsx89(
|
|
12715
13416
|
"button",
|
|
12716
13417
|
{
|
|
12717
13418
|
type: "button",
|
|
@@ -12749,19 +13450,19 @@ function BreadcrumbSegment({
|
|
|
12749
13450
|
isCurrent
|
|
12750
13451
|
}) {
|
|
12751
13452
|
const menuId = useId17();
|
|
12752
|
-
const [open, setOpen] =
|
|
13453
|
+
const [open, setOpen] = useState24(false);
|
|
12753
13454
|
const menuItems = item.menuItems ?? [];
|
|
12754
13455
|
const showMenu = hasSegmentMenu(item) && !isCurrent;
|
|
12755
13456
|
const canOpenMenu = showMenu && menuItems.length > 0;
|
|
12756
13457
|
const rootRef = useDismissibleMenu(open, () => setOpen(false));
|
|
12757
13458
|
const iconSrc = resolveIconSrc(item);
|
|
12758
|
-
const content = /* @__PURE__ */
|
|
13459
|
+
const content = /* @__PURE__ */ jsx89(SegmentContent, { iconSrc, label: item.label, menu: showMenu });
|
|
12759
13460
|
if (isCurrent) {
|
|
12760
|
-
return /* @__PURE__ */
|
|
13461
|
+
return /* @__PURE__ */ jsx89("span", { className: "stn-breadcrumb__segment", "aria-current": "page", "aria-label": item.label, children: content });
|
|
12761
13462
|
}
|
|
12762
13463
|
if (canOpenMenu) {
|
|
12763
|
-
return /* @__PURE__ */
|
|
12764
|
-
/* @__PURE__ */
|
|
13464
|
+
return /* @__PURE__ */ jsxs67("span", { ref: rootRef, className: "stn-breadcrumb__segment-wrap", children: [
|
|
13465
|
+
/* @__PURE__ */ jsx89(
|
|
12765
13466
|
"button",
|
|
12766
13467
|
{
|
|
12767
13468
|
type: "button",
|
|
@@ -12777,7 +13478,7 @@ function BreadcrumbSegment({
|
|
|
12777
13478
|
children: content
|
|
12778
13479
|
}
|
|
12779
13480
|
),
|
|
12780
|
-
open ? /* @__PURE__ */
|
|
13481
|
+
open ? /* @__PURE__ */ jsx89(BreadcrumbMenuList, { id: menuId, items: menuItems, onPick: () => setOpen(false) }) : null
|
|
12781
13482
|
] });
|
|
12782
13483
|
}
|
|
12783
13484
|
if (item.menu || item.onClick) {
|
|
@@ -12789,7 +13490,7 @@ function BreadcrumbSegment({
|
|
|
12789
13490
|
"aria-haspopup": item.menu ? "menu" : void 0,
|
|
12790
13491
|
"aria-expanded": item.menu ? false : void 0
|
|
12791
13492
|
};
|
|
12792
|
-
return /* @__PURE__ */
|
|
13493
|
+
return /* @__PURE__ */ jsx89("button", { ...buttonProps, children: content });
|
|
12793
13494
|
}
|
|
12794
13495
|
if (item.href) {
|
|
12795
13496
|
const linkProps = {
|
|
@@ -12798,17 +13499,17 @@ function BreadcrumbSegment({
|
|
|
12798
13499
|
onClick: item.onClick,
|
|
12799
13500
|
"aria-label": item.label
|
|
12800
13501
|
};
|
|
12801
|
-
return /* @__PURE__ */
|
|
13502
|
+
return /* @__PURE__ */ jsx89("a", { ...linkProps, children: content });
|
|
12802
13503
|
}
|
|
12803
|
-
return /* @__PURE__ */
|
|
13504
|
+
return /* @__PURE__ */ jsx89("span", { className: "stn-breadcrumb__segment", "aria-label": item.label, children: content });
|
|
12804
13505
|
}
|
|
12805
13506
|
function BreadcrumbBack({
|
|
12806
13507
|
label,
|
|
12807
13508
|
href,
|
|
12808
13509
|
onClick
|
|
12809
13510
|
}) {
|
|
12810
|
-
const content = /* @__PURE__ */
|
|
12811
|
-
/* @__PURE__ */
|
|
13511
|
+
const content = /* @__PURE__ */ jsxs67(Fragment14, { children: [
|
|
13512
|
+
/* @__PURE__ */ jsx89(
|
|
12812
13513
|
"span",
|
|
12813
13514
|
{
|
|
12814
13515
|
className: "stn-breadcrumb__back-glyph",
|
|
@@ -12816,12 +13517,12 @@ function BreadcrumbBack({
|
|
|
12816
13517
|
"aria-hidden": "true"
|
|
12817
13518
|
}
|
|
12818
13519
|
),
|
|
12819
|
-
/* @__PURE__ */
|
|
13520
|
+
/* @__PURE__ */ jsx89("span", { className: "stn-breadcrumb__label", children: label })
|
|
12820
13521
|
] });
|
|
12821
13522
|
if (href) {
|
|
12822
|
-
return /* @__PURE__ */
|
|
13523
|
+
return /* @__PURE__ */ jsx89("a", { className: "stn-breadcrumb__back", href, onClick, "aria-label": `\uB4A4\uB85C: ${label}`, children: content });
|
|
12823
13524
|
}
|
|
12824
|
-
return /* @__PURE__ */
|
|
13525
|
+
return /* @__PURE__ */ jsx89("button", { type: "button", className: "stn-breadcrumb__back", onClick, "aria-label": `\uB4A4\uB85C: ${label}`, children: content });
|
|
12825
13526
|
}
|
|
12826
13527
|
function splitCollapsedItems(items, maxItems, itemsBeforeCollapse, itemsAfterCollapse) {
|
|
12827
13528
|
if (!maxItems || items.length <= maxItems) {
|
|
@@ -12843,7 +13544,7 @@ function BreadcrumbCollapsed({
|
|
|
12843
13544
|
items,
|
|
12844
13545
|
menuId
|
|
12845
13546
|
}) {
|
|
12846
|
-
const [open, setOpen] =
|
|
13547
|
+
const [open, setOpen] = useState24(false);
|
|
12847
13548
|
const rootRef = useDismissibleMenu(open, () => setOpen(false));
|
|
12848
13549
|
const menuItems = items.map((item) => ({
|
|
12849
13550
|
id: item.id,
|
|
@@ -12852,8 +13553,8 @@ function BreadcrumbCollapsed({
|
|
|
12852
13553
|
onClick: item.onClick,
|
|
12853
13554
|
current: item.current
|
|
12854
13555
|
}));
|
|
12855
|
-
return /* @__PURE__ */
|
|
12856
|
-
/* @__PURE__ */
|
|
13556
|
+
return /* @__PURE__ */ jsxs67("li", { className: "stn-breadcrumb__item", ref: rootRef, children: [
|
|
13557
|
+
/* @__PURE__ */ jsx89(
|
|
12857
13558
|
"button",
|
|
12858
13559
|
{
|
|
12859
13560
|
type: "button",
|
|
@@ -12866,7 +13567,7 @@ function BreadcrumbCollapsed({
|
|
|
12866
13567
|
children: "\u22EF"
|
|
12867
13568
|
}
|
|
12868
13569
|
),
|
|
12869
|
-
open ? /* @__PURE__ */
|
|
13570
|
+
open ? /* @__PURE__ */ jsx89(BreadcrumbMenuList, { id: menuId, items: menuItems, onPick: () => setOpen(false) }) : null
|
|
12870
13571
|
] });
|
|
12871
13572
|
}
|
|
12872
13573
|
function StnBreadcrumb({
|
|
@@ -12902,8 +13603,8 @@ function StnBreadcrumb({
|
|
|
12902
13603
|
);
|
|
12903
13604
|
const renderTrailItem = (item) => {
|
|
12904
13605
|
const isCurrent = Boolean(item.current) || item.id === targetCurrentId;
|
|
12905
|
-
const segment = /* @__PURE__ */
|
|
12906
|
-
return /* @__PURE__ */
|
|
13606
|
+
const segment = /* @__PURE__ */ jsx89(BreadcrumbSegment, { item, isCurrent });
|
|
13607
|
+
return /* @__PURE__ */ jsx89(
|
|
12907
13608
|
"li",
|
|
12908
13609
|
{
|
|
12909
13610
|
className: cn(
|
|
@@ -12914,7 +13615,7 @@ function StnBreadcrumb({
|
|
|
12914
13615
|
}
|
|
12915
13616
|
);
|
|
12916
13617
|
};
|
|
12917
|
-
return /* @__PURE__ */
|
|
13618
|
+
return /* @__PURE__ */ jsx89(
|
|
12918
13619
|
"nav",
|
|
12919
13620
|
{
|
|
12920
13621
|
className: cn(
|
|
@@ -12925,29 +13626,29 @@ function StnBreadcrumb({
|
|
|
12925
13626
|
className
|
|
12926
13627
|
),
|
|
12927
13628
|
"aria-label": "Breadcrumb",
|
|
12928
|
-
children: /* @__PURE__ */
|
|
12929
|
-
currentItem ? /* @__PURE__ */
|
|
12930
|
-
!reverse && showHome ? /* @__PURE__ */
|
|
12931
|
-
/* @__PURE__ */
|
|
12932
|
-
/* @__PURE__ */
|
|
13629
|
+
children: /* @__PURE__ */ jsxs67("ol", { className: "stn-breadcrumb__list", children: [
|
|
13630
|
+
currentItem ? /* @__PURE__ */ jsx89("li", { className: "stn-breadcrumb__item stn-breadcrumb__item--back", children: /* @__PURE__ */ jsx89(BreadcrumbBack, { label: currentItem.label, href: backHref, onClick: backOnClick }) }) : null,
|
|
13631
|
+
!reverse && showHome ? /* @__PURE__ */ jsx89("li", { className: "stn-breadcrumb__item stn-breadcrumb__item--home", children: /* @__PURE__ */ jsxs67("a", { className: "stn-breadcrumb__home", href: homeHref, onClick: onHomeClick, children: [
|
|
13632
|
+
/* @__PURE__ */ jsx89(BreadcrumbIcon, { src: STN_BREADCRUMB_ICON_SRC.home }),
|
|
13633
|
+
/* @__PURE__ */ jsx89("span", { className: "blind", children: homeLabel })
|
|
12933
13634
|
] }) }) : null,
|
|
12934
|
-
head.map((item, index) => /* @__PURE__ */
|
|
12935
|
-
!reverse && (showHome || index > 0 || leadSeparator) || reverse && (index > 0 || leadSeparator) ? /* @__PURE__ */
|
|
13635
|
+
head.map((item, index) => /* @__PURE__ */ jsxs67(Fragment13, { children: [
|
|
13636
|
+
!reverse && (showHome || index > 0 || leadSeparator) || reverse && (index > 0 || leadSeparator) ? /* @__PURE__ */ jsx89(BreadcrumbSeparator, {}) : null,
|
|
12936
13637
|
renderTrailItem(item)
|
|
12937
13638
|
] }, item.id)),
|
|
12938
|
-
hidden.length > 0 ? /* @__PURE__ */
|
|
12939
|
-
/* @__PURE__ */
|
|
12940
|
-
/* @__PURE__ */
|
|
13639
|
+
hidden.length > 0 ? /* @__PURE__ */ jsxs67(Fragment14, { children: [
|
|
13640
|
+
/* @__PURE__ */ jsx89(BreadcrumbSeparator, {}),
|
|
13641
|
+
/* @__PURE__ */ jsx89(BreadcrumbCollapsed, { items: hidden, menuId })
|
|
12941
13642
|
] }) : null,
|
|
12942
|
-
tail.map((item) => /* @__PURE__ */
|
|
12943
|
-
/* @__PURE__ */
|
|
13643
|
+
tail.map((item) => /* @__PURE__ */ jsxs67(Fragment13, { children: [
|
|
13644
|
+
/* @__PURE__ */ jsx89(BreadcrumbSeparator, {}),
|
|
12944
13645
|
renderTrailItem(item)
|
|
12945
13646
|
] }, item.id)),
|
|
12946
|
-
reverse && showHome ? /* @__PURE__ */
|
|
12947
|
-
/* @__PURE__ */
|
|
12948
|
-
/* @__PURE__ */
|
|
12949
|
-
/* @__PURE__ */
|
|
12950
|
-
/* @__PURE__ */
|
|
13647
|
+
reverse && showHome ? /* @__PURE__ */ jsxs67(Fragment14, { children: [
|
|
13648
|
+
/* @__PURE__ */ jsx89(BreadcrumbSeparator, {}),
|
|
13649
|
+
/* @__PURE__ */ jsx89("li", { className: "stn-breadcrumb__item stn-breadcrumb__item--home", children: /* @__PURE__ */ jsxs67("a", { className: "stn-breadcrumb__home", href: homeHref, onClick: onHomeClick, children: [
|
|
13650
|
+
/* @__PURE__ */ jsx89(BreadcrumbIcon, { src: STN_BREADCRUMB_ICON_SRC.home }),
|
|
13651
|
+
/* @__PURE__ */ jsx89("span", { className: "blind", children: homeLabel })
|
|
12951
13652
|
] }) })
|
|
12952
13653
|
] }) : null
|
|
12953
13654
|
] })
|
|
@@ -12956,9 +13657,9 @@ function StnBreadcrumb({
|
|
|
12956
13657
|
}
|
|
12957
13658
|
|
|
12958
13659
|
// src/components/StnHeaderTitle.tsx
|
|
12959
|
-
import { useEffect as useEffect20, useState as
|
|
13660
|
+
import { useEffect as useEffect20, useState as useState25 } from "react";
|
|
12960
13661
|
import { STN_HEADER_TITLE_FRAME } from "@stn-uiux/pub-ui/data/stnHeaderTitle";
|
|
12961
|
-
import { jsx as
|
|
13662
|
+
import { jsx as jsx90, jsxs as jsxs68 } from "react/jsx-runtime";
|
|
12962
13663
|
var KO_WEEKDAY_SHORT = ["\uC77C", "\uC6D4", "\uD654", "\uC218", "\uBAA9", "\uAE08", "\uD1A0"];
|
|
12963
13664
|
var KO_WEEKDAY_LONG = [
|
|
12964
13665
|
"\uC77C\uC694\uC77C",
|
|
@@ -12997,8 +13698,8 @@ function formatStnHeaderTitleTime(date, options) {
|
|
|
12997
13698
|
}
|
|
12998
13699
|
function HeaderTitleFrame({ preview = false }) {
|
|
12999
13700
|
const frameClass = preview ? "stn-header-title__frame-preview" : "stn-header-title__frame";
|
|
13000
|
-
return /* @__PURE__ */
|
|
13001
|
-
/* @__PURE__ */
|
|
13701
|
+
return /* @__PURE__ */ jsxs68("div", { className: frameClass, "aria-hidden": "true", children: [
|
|
13702
|
+
/* @__PURE__ */ jsx90("div", { className: "stn-header-title__frame-bleed stn-header-title__frame-bleed--outer", children: /* @__PURE__ */ jsx90(
|
|
13002
13703
|
"img",
|
|
13003
13704
|
{
|
|
13004
13705
|
className: "stn-header-title__frame-img",
|
|
@@ -13007,8 +13708,8 @@ function HeaderTitleFrame({ preview = false }) {
|
|
|
13007
13708
|
draggable: false
|
|
13008
13709
|
}
|
|
13009
13710
|
) }),
|
|
13010
|
-
/* @__PURE__ */
|
|
13011
|
-
/* @__PURE__ */
|
|
13711
|
+
/* @__PURE__ */ jsxs68("div", { className: "stn-header-title__frame-bleed stn-header-title__frame-bleed--inner", children: [
|
|
13712
|
+
/* @__PURE__ */ jsx90(
|
|
13012
13713
|
"img",
|
|
13013
13714
|
{
|
|
13014
13715
|
className: "stn-header-title__frame-img stn-header-title__frame-img--dark",
|
|
@@ -13017,7 +13718,7 @@ function HeaderTitleFrame({ preview = false }) {
|
|
|
13017
13718
|
draggable: false
|
|
13018
13719
|
}
|
|
13019
13720
|
),
|
|
13020
|
-
/* @__PURE__ */
|
|
13721
|
+
/* @__PURE__ */ jsx90(
|
|
13021
13722
|
"img",
|
|
13022
13723
|
{
|
|
13023
13724
|
className: "stn-header-title__frame-img stn-header-title__frame-img--light",
|
|
@@ -13030,10 +13731,10 @@ function HeaderTitleFrame({ preview = false }) {
|
|
|
13030
13731
|
] });
|
|
13031
13732
|
}
|
|
13032
13733
|
function StnHeaderTitleFramePreview({ className }) {
|
|
13033
|
-
return /* @__PURE__ */
|
|
13734
|
+
return /* @__PURE__ */ jsx90("div", { className: cn("stn-header-title__frame-only", className), children: /* @__PURE__ */ jsx90(HeaderTitleFrame, { preview: true }) });
|
|
13034
13735
|
}
|
|
13035
13736
|
function useLiveClock(enabled) {
|
|
13036
|
-
const [now, setNow] =
|
|
13737
|
+
const [now, setNow] = useState25(() => /* @__PURE__ */ new Date());
|
|
13037
13738
|
useEffect20(() => {
|
|
13038
13739
|
if (!enabled) return;
|
|
13039
13740
|
const id = window.setInterval(() => setNow(/* @__PURE__ */ new Date()), 1e3);
|
|
@@ -13046,35 +13747,35 @@ function StnHeaderTitleMainText({
|
|
|
13046
13747
|
children,
|
|
13047
13748
|
...rest
|
|
13048
13749
|
}) {
|
|
13049
|
-
return /* @__PURE__ */
|
|
13750
|
+
return /* @__PURE__ */ jsx90("h1", { className: cn("stn-header-title__text", className), ...rest, children });
|
|
13050
13751
|
}
|
|
13051
13752
|
function StnHeaderTitleSubText({
|
|
13052
13753
|
className,
|
|
13053
13754
|
children,
|
|
13054
13755
|
...rest
|
|
13055
13756
|
}) {
|
|
13056
|
-
return /* @__PURE__ */
|
|
13757
|
+
return /* @__PURE__ */ jsx90("span", { className: cn("stn-header-title__sub-text", className), ...rest, children });
|
|
13057
13758
|
}
|
|
13058
13759
|
function StnHeaderTitleDate({
|
|
13059
13760
|
className,
|
|
13060
13761
|
children,
|
|
13061
13762
|
...rest
|
|
13062
13763
|
}) {
|
|
13063
|
-
return /* @__PURE__ */
|
|
13764
|
+
return /* @__PURE__ */ jsx90("time", { className: cn("stn-header-title__date", className), ...rest, children });
|
|
13064
13765
|
}
|
|
13065
13766
|
function StnHeaderTitleWeekday({
|
|
13066
13767
|
className,
|
|
13067
13768
|
children,
|
|
13068
13769
|
...rest
|
|
13069
13770
|
}) {
|
|
13070
|
-
return /* @__PURE__ */
|
|
13771
|
+
return /* @__PURE__ */ jsx90("span", { className: cn("stn-header-title__weekday", className), ...rest, children });
|
|
13071
13772
|
}
|
|
13072
13773
|
function StnHeaderTitleTime({
|
|
13073
13774
|
className,
|
|
13074
13775
|
children,
|
|
13075
13776
|
...rest
|
|
13076
13777
|
}) {
|
|
13077
|
-
return /* @__PURE__ */
|
|
13778
|
+
return /* @__PURE__ */ jsx90("span", { className: cn("stn-header-title__time", className), "aria-label": "\uD604\uC7AC \uC2DC\uAC01", ...rest, children });
|
|
13078
13779
|
}
|
|
13079
13780
|
function StnHeaderTitleClock({
|
|
13080
13781
|
className,
|
|
@@ -13097,7 +13798,7 @@ function StnHeaderTitleClock({
|
|
|
13097
13798
|
}) {
|
|
13098
13799
|
const now = useLiveClock(live);
|
|
13099
13800
|
if (children != null) {
|
|
13100
|
-
return /* @__PURE__ */
|
|
13801
|
+
return /* @__PURE__ */ jsxs68(
|
|
13101
13802
|
"header",
|
|
13102
13803
|
{
|
|
13103
13804
|
className: cn(
|
|
@@ -13109,8 +13810,8 @@ function StnHeaderTitleClock({
|
|
|
13109
13810
|
),
|
|
13110
13811
|
...rest,
|
|
13111
13812
|
children: [
|
|
13112
|
-
framed ? /* @__PURE__ */
|
|
13113
|
-
/* @__PURE__ */
|
|
13813
|
+
framed ? /* @__PURE__ */ jsx90(HeaderTitleFrame, {}) : null,
|
|
13814
|
+
/* @__PURE__ */ jsx90("div", { className: "stn-header-title__content", children })
|
|
13114
13815
|
]
|
|
13115
13816
|
}
|
|
13116
13817
|
);
|
|
@@ -13140,7 +13841,7 @@ function StnHeaderTitleClock({
|
|
|
13140
13841
|
resolvedTime = formatStnHeaderTitleTime(now, { showSeconds });
|
|
13141
13842
|
}
|
|
13142
13843
|
}
|
|
13143
|
-
return /* @__PURE__ */
|
|
13844
|
+
return /* @__PURE__ */ jsxs68(
|
|
13144
13845
|
"header",
|
|
13145
13846
|
{
|
|
13146
13847
|
className: cn(
|
|
@@ -13152,11 +13853,11 @@ function StnHeaderTitleClock({
|
|
|
13152
13853
|
),
|
|
13153
13854
|
...rest,
|
|
13154
13855
|
children: [
|
|
13155
|
-
framed ? /* @__PURE__ */
|
|
13156
|
-
/* @__PURE__ */
|
|
13157
|
-
resolvedDate ? /* @__PURE__ */
|
|
13158
|
-
showWeekdayOnly ? /* @__PURE__ */
|
|
13159
|
-
resolvedTime ? /* @__PURE__ */
|
|
13856
|
+
framed ? /* @__PURE__ */ jsx90(HeaderTitleFrame, {}) : null,
|
|
13857
|
+
/* @__PURE__ */ jsxs68("div", { className: "stn-header-title__content", children: [
|
|
13858
|
+
resolvedDate ? /* @__PURE__ */ jsx90("time", { className: "stn-header-title__date", dateTime: resolvedDate, children: resolvedDate }) : null,
|
|
13859
|
+
showWeekdayOnly ? /* @__PURE__ */ jsx90("span", { className: "stn-header-title__weekday", children: resolvedWeekday }) : null,
|
|
13860
|
+
resolvedTime ? /* @__PURE__ */ jsx90("span", { className: "stn-header-title__time", "aria-label": "\uD604\uC7AC \uC2DC\uAC01", children: resolvedTime }) : null
|
|
13160
13861
|
] })
|
|
13161
13862
|
]
|
|
13162
13863
|
}
|
|
@@ -13173,7 +13874,7 @@ function StnHeaderTitleDual({
|
|
|
13173
13874
|
...rest
|
|
13174
13875
|
}) {
|
|
13175
13876
|
const resolvedMain = mainText ?? title ?? children;
|
|
13176
|
-
return /* @__PURE__ */
|
|
13877
|
+
return /* @__PURE__ */ jsxs68(
|
|
13177
13878
|
"header",
|
|
13178
13879
|
{
|
|
13179
13880
|
className: cn(
|
|
@@ -13185,10 +13886,10 @@ function StnHeaderTitleDual({
|
|
|
13185
13886
|
),
|
|
13186
13887
|
...rest,
|
|
13187
13888
|
children: [
|
|
13188
|
-
framed ? /* @__PURE__ */
|
|
13189
|
-
/* @__PURE__ */
|
|
13190
|
-
subText != null ? /* @__PURE__ */
|
|
13191
|
-
resolvedMain != null ? typeof resolvedMain === "string" || typeof resolvedMain === "number" ? /* @__PURE__ */
|
|
13889
|
+
framed ? /* @__PURE__ */ jsx90(HeaderTitleFrame, {}) : null,
|
|
13890
|
+
/* @__PURE__ */ jsxs68("div", { className: "stn-header-title__content", children: [
|
|
13891
|
+
subText != null ? /* @__PURE__ */ jsx90("span", { className: "stn-header-title__sub-text", children: subText }) : null,
|
|
13892
|
+
resolvedMain != null ? typeof resolvedMain === "string" || typeof resolvedMain === "number" ? /* @__PURE__ */ jsx90("h1", { className: "stn-header-title__text", children: resolvedMain }) : resolvedMain : null
|
|
13192
13893
|
] })
|
|
13193
13894
|
]
|
|
13194
13895
|
}
|
|
@@ -13203,7 +13904,7 @@ function StnHeaderTitleText({
|
|
|
13203
13904
|
...rest
|
|
13204
13905
|
}) {
|
|
13205
13906
|
const resolved = title ?? children;
|
|
13206
|
-
return /* @__PURE__ */
|
|
13907
|
+
return /* @__PURE__ */ jsxs68(
|
|
13207
13908
|
"header",
|
|
13208
13909
|
{
|
|
13209
13910
|
className: cn(
|
|
@@ -13215,20 +13916,20 @@ function StnHeaderTitleText({
|
|
|
13215
13916
|
),
|
|
13216
13917
|
...rest,
|
|
13217
13918
|
children: [
|
|
13218
|
-
framed ? /* @__PURE__ */
|
|
13219
|
-
/* @__PURE__ */
|
|
13919
|
+
framed ? /* @__PURE__ */ jsx90(HeaderTitleFrame, {}) : null,
|
|
13920
|
+
/* @__PURE__ */ jsx90("div", { className: "stn-header-title__content", children: typeof resolved === "string" || typeof resolved === "number" ? /* @__PURE__ */ jsx90("h1", { className: "stn-header-title__text", children: resolved }) : resolved })
|
|
13220
13921
|
]
|
|
13221
13922
|
}
|
|
13222
13923
|
);
|
|
13223
13924
|
}
|
|
13224
13925
|
function StnHeaderTitleRoot(props) {
|
|
13225
13926
|
if (props.variant === "clock") {
|
|
13226
|
-
return /* @__PURE__ */
|
|
13927
|
+
return /* @__PURE__ */ jsx90(StnHeaderTitleClock, { ...props });
|
|
13227
13928
|
}
|
|
13228
13929
|
if (props.variant === "dual" || "subText" in props && props.subText != null) {
|
|
13229
|
-
return /* @__PURE__ */
|
|
13930
|
+
return /* @__PURE__ */ jsx90(StnHeaderTitleDual, { ...props });
|
|
13230
13931
|
}
|
|
13231
|
-
return /* @__PURE__ */
|
|
13932
|
+
return /* @__PURE__ */ jsx90(StnHeaderTitleText, { ...props });
|
|
13232
13933
|
}
|
|
13233
13934
|
var StnHeaderTitle = Object.assign(StnHeaderTitleRoot, {
|
|
13234
13935
|
Text: StnHeaderTitleMainText,
|
|
@@ -13241,10 +13942,10 @@ var StnHeaderTitle = Object.assign(StnHeaderTitleRoot, {
|
|
|
13241
13942
|
|
|
13242
13943
|
// src/layouts/StnContainer.tsx
|
|
13243
13944
|
import {
|
|
13244
|
-
forwardRef as
|
|
13945
|
+
forwardRef as forwardRef57
|
|
13245
13946
|
} from "react";
|
|
13246
|
-
import { jsx as
|
|
13247
|
-
var StnContainer =
|
|
13947
|
+
import { jsx as jsx91 } from "react/jsx-runtime";
|
|
13948
|
+
var StnContainer = forwardRef57(function StnContainer2({
|
|
13248
13949
|
component,
|
|
13249
13950
|
as,
|
|
13250
13951
|
maxWidth = "lg",
|
|
@@ -13277,7 +13978,7 @@ var StnContainer = forwardRef54(function StnContainer2({
|
|
|
13277
13978
|
const noBottom = noAll || disablePaddingBottom || disablePaddingY || paddingBottom === 0 || paddingBottom === "none" || paddingBottom === false || isPaddingObj && (padding.bottom === 0 || padding.bottom === "none" || padding.bottom === false || padding.y === 0 || padding.y === "none" || padding.y === false);
|
|
13278
13979
|
const noLeft = noAll || disableGutters || disablePaddingLeft || disablePaddingX || paddingLeft === 0 || paddingLeft === "none" || paddingLeft === false || isPaddingObj && (padding.left === 0 || padding.left === "none" || padding.left === false || padding.x === 0 || padding.x === "none" || padding.x === false);
|
|
13279
13980
|
const noRight = noAll || disableGutters || disablePaddingRight || disablePaddingX || paddingRight === 0 || paddingRight === "none" || paddingRight === false || isPaddingObj && (padding.right === 0 || padding.right === "none" || padding.right === false || padding.x === 0 || padding.x === "none" || padding.x === false);
|
|
13280
|
-
return /* @__PURE__ */
|
|
13981
|
+
return /* @__PURE__ */ jsx91(
|
|
13281
13982
|
Component,
|
|
13282
13983
|
{
|
|
13283
13984
|
ref,
|
|
@@ -13310,8 +14011,8 @@ var StnContainer = forwardRef54(function StnContainer2({
|
|
|
13310
14011
|
});
|
|
13311
14012
|
|
|
13312
14013
|
// src/layouts/StnGrid.tsx
|
|
13313
|
-
import { forwardRef as
|
|
13314
|
-
import { jsx as
|
|
14014
|
+
import { forwardRef as forwardRef58 } from "react";
|
|
14015
|
+
import { jsx as jsx92 } from "react/jsx-runtime";
|
|
13315
14016
|
var BREAKPOINTS2 = ["xs", "sm", "md", "lg", "xl"];
|
|
13316
14017
|
var SPACING_CLASS = {
|
|
13317
14018
|
"0": "0",
|
|
@@ -13377,7 +14078,7 @@ function sizeClasses(size) {
|
|
|
13377
14078
|
}
|
|
13378
14079
|
return classes;
|
|
13379
14080
|
}
|
|
13380
|
-
var StnGrid =
|
|
14081
|
+
var StnGrid = forwardRef58(function StnGrid2({
|
|
13381
14082
|
component,
|
|
13382
14083
|
as,
|
|
13383
14084
|
container = false,
|
|
@@ -13397,7 +14098,7 @@ var StnGrid = forwardRef55(function StnGrid2({
|
|
|
13397
14098
|
const Component = component ?? as ?? "div";
|
|
13398
14099
|
const justify = typeof justifyContent === "string" && JUSTIFY_CLASS2.has(justifyContent) ? justifyContent : void 0;
|
|
13399
14100
|
const align = typeof alignItems === "string" && ALIGN_CLASS2.has(alignItems) ? alignItems : void 0;
|
|
13400
|
-
return /* @__PURE__ */
|
|
14101
|
+
return /* @__PURE__ */ jsx92(
|
|
13401
14102
|
Component,
|
|
13402
14103
|
{
|
|
13403
14104
|
ref,
|
|
@@ -13421,7 +14122,7 @@ var StnGrid = forwardRef55(function StnGrid2({
|
|
|
13421
14122
|
});
|
|
13422
14123
|
|
|
13423
14124
|
// src/layouts/StnLayerShell.tsx
|
|
13424
|
-
import { jsx as
|
|
14125
|
+
import { jsx as jsx93, jsxs as jsxs69 } from "react/jsx-runtime";
|
|
13425
14126
|
function StnLayerShell({
|
|
13426
14127
|
gnb,
|
|
13427
14128
|
gnbSide = "left",
|
|
@@ -13442,7 +14143,7 @@ function StnLayerShell({
|
|
|
13442
14143
|
const resolvedMainContent = layer1 ?? children;
|
|
13443
14144
|
const resolvedModal = layer2;
|
|
13444
14145
|
const isGnbRight = gnbSide === "right";
|
|
13445
|
-
return /* @__PURE__ */
|
|
14146
|
+
return /* @__PURE__ */ jsxs69(
|
|
13446
14147
|
"div",
|
|
13447
14148
|
{
|
|
13448
14149
|
id: wrapId,
|
|
@@ -13450,8 +14151,8 @@ function StnLayerShell({
|
|
|
13450
14151
|
className: cn("stn-wrap", isGnbRight && "stn-wrap--gnb-right", wrapClassName),
|
|
13451
14152
|
children: [
|
|
13452
14153
|
layer0,
|
|
13453
|
-
utilities ? /* @__PURE__ */
|
|
13454
|
-
/* @__PURE__ */
|
|
14154
|
+
utilities ? /* @__PURE__ */ jsx93("div", { className: "stn-page-utilities", "data-stn-layer-role": "utility", children: utilities }) : null,
|
|
14155
|
+
/* @__PURE__ */ jsxs69(
|
|
13455
14156
|
"main",
|
|
13456
14157
|
{
|
|
13457
14158
|
id: containerId,
|
|
@@ -13460,9 +14161,9 @@ function StnLayerShell({
|
|
|
13460
14161
|
className: cn("stn-layer-1", scrollable && "scroll", containerClassName),
|
|
13461
14162
|
children: [
|
|
13462
14163
|
!isGnbRight && gnb,
|
|
13463
|
-
/* @__PURE__ */
|
|
13464
|
-
header ? /* @__PURE__ */
|
|
13465
|
-
/* @__PURE__ */
|
|
14164
|
+
/* @__PURE__ */ jsxs69("div", { className: "stn-layer-1__main", children: [
|
|
14165
|
+
header ? /* @__PURE__ */ jsx93("header", { className: "stn-layer-1__header", children: header }) : null,
|
|
14166
|
+
/* @__PURE__ */ jsx93("div", { className: cn("stn-layer-1__body", scrollable && "stn-scroll", contentClassName), children: resolvedMainContent })
|
|
13466
14167
|
] }),
|
|
13467
14168
|
isGnbRight && gnb
|
|
13468
14169
|
]
|
|
@@ -13475,7 +14176,7 @@ function StnLayerShell({
|
|
|
13475
14176
|
}
|
|
13476
14177
|
|
|
13477
14178
|
// src/layouts/StnListViewLayout.tsx
|
|
13478
|
-
import { jsx as
|
|
14179
|
+
import { jsx as jsx94, jsxs as jsxs70 } from "react/jsx-runtime";
|
|
13479
14180
|
function StnListViewLayoutBody({
|
|
13480
14181
|
search,
|
|
13481
14182
|
sidebar,
|
|
@@ -13486,13 +14187,13 @@ function StnListViewLayoutBody({
|
|
|
13486
14187
|
className
|
|
13487
14188
|
}) {
|
|
13488
14189
|
const lnbClass = lnbSide === "right" ? "stn-page-scaffold__lnb lnb_box lnb_box_right" : "stn-page-scaffold__lnb lnb_box";
|
|
13489
|
-
const sidebarAside = sidebar ? /* @__PURE__ */
|
|
13490
|
-
return /* @__PURE__ */
|
|
14190
|
+
const sidebarAside = sidebar ? /* @__PURE__ */ jsx94("aside", { className: lnbClass, children: sidebar }) : null;
|
|
14191
|
+
return /* @__PURE__ */ jsx94(
|
|
13491
14192
|
StnContainer,
|
|
13492
14193
|
{
|
|
13493
14194
|
maxWidth: false,
|
|
13494
14195
|
className: cn("stn-list-view-layout__body", className),
|
|
13495
|
-
children: /* @__PURE__ */
|
|
14196
|
+
children: /* @__PURE__ */ jsxs70(
|
|
13496
14197
|
StnStack,
|
|
13497
14198
|
{
|
|
13498
14199
|
direction: "row",
|
|
@@ -13500,19 +14201,19 @@ function StnListViewLayoutBody({
|
|
|
13500
14201
|
className: "stn-list-view__main",
|
|
13501
14202
|
children: [
|
|
13502
14203
|
lnbSide === "left" ? sidebarAside : null,
|
|
13503
|
-
/* @__PURE__ */
|
|
14204
|
+
/* @__PURE__ */ jsxs70(
|
|
13504
14205
|
StnStack,
|
|
13505
14206
|
{
|
|
13506
14207
|
direction: "column",
|
|
13507
14208
|
spacing: 2,
|
|
13508
14209
|
className: "stn-list-view__content-stack",
|
|
13509
14210
|
children: [
|
|
13510
|
-
search ? /* @__PURE__ */
|
|
13511
|
-
/* @__PURE__ */
|
|
14211
|
+
search ? /* @__PURE__ */ jsx94("div", { className: "stn-page-scaffold__search search_area", children: search }) : null,
|
|
14212
|
+
/* @__PURE__ */ jsx94(
|
|
13512
14213
|
"div",
|
|
13513
14214
|
{
|
|
13514
14215
|
className: "stn-page-scaffold__content content_box",
|
|
13515
|
-
children: children ?? /* @__PURE__ */
|
|
14216
|
+
children: children ?? /* @__PURE__ */ jsxs70("div", { className: "stn-table stn-table--fill", children: [
|
|
13516
14217
|
table,
|
|
13517
14218
|
pagination
|
|
13518
14219
|
] })
|
|
@@ -13544,7 +14245,7 @@ function StnListViewLayoutRoot({
|
|
|
13544
14245
|
}) {
|
|
13545
14246
|
const bare = bareProp ?? noShell ?? false;
|
|
13546
14247
|
const hasLnbClass = lnbSide === "right" ? "has_lnb_right" : "has_lnb";
|
|
13547
|
-
const body = /* @__PURE__ */
|
|
14248
|
+
const body = /* @__PURE__ */ jsx94(
|
|
13548
14249
|
StnListViewLayoutBody,
|
|
13549
14250
|
{
|
|
13550
14251
|
search,
|
|
@@ -13559,10 +14260,10 @@ function StnListViewLayoutRoot({
|
|
|
13559
14260
|
if (bare) {
|
|
13560
14261
|
return body;
|
|
13561
14262
|
}
|
|
13562
|
-
const renderedHeader = header === null ? null : header !== void 0 ? header : /* @__PURE__ */
|
|
13563
|
-
return /* @__PURE__ */
|
|
14263
|
+
const renderedHeader = header === null ? null : header !== void 0 ? header : /* @__PURE__ */ jsx94("div", { className: "stn-layer-1__header", children: /* @__PURE__ */ jsx94(StnHeader, { variant: "page", children: /* @__PURE__ */ jsx94(StnHeader.Left, { children: /* @__PURE__ */ jsx94(StnHeaderPageTitle, { children: title }) }) }) });
|
|
14264
|
+
return /* @__PURE__ */ jsxs70("div", { className: cn("stn-list-view-layout", "stn-layer-1", className), ...rest, children: [
|
|
13564
14265
|
renderedHeader,
|
|
13565
|
-
/* @__PURE__ */
|
|
14266
|
+
/* @__PURE__ */ jsx94(
|
|
13566
14267
|
"div",
|
|
13567
14268
|
{
|
|
13568
14269
|
className: cn("stn-content-area", sidebar ? hasLnbClass : null, search ? "has_sch" : null),
|
|
@@ -13572,10 +14273,10 @@ function StnListViewLayoutRoot({
|
|
|
13572
14273
|
] });
|
|
13573
14274
|
}
|
|
13574
14275
|
function StnListViewLayoutHeader({ className, children, ...rest }) {
|
|
13575
|
-
return /* @__PURE__ */
|
|
14276
|
+
return /* @__PURE__ */ jsx94("div", { className: cn("stn-layer-1__header", className), ...rest, children });
|
|
13576
14277
|
}
|
|
13577
14278
|
function StnListViewLayoutSearch({ className, children, ...rest }) {
|
|
13578
|
-
return /* @__PURE__ */
|
|
14279
|
+
return /* @__PURE__ */ jsx94("div", { className: cn("search_area", className), ...rest, children });
|
|
13579
14280
|
}
|
|
13580
14281
|
function StnListViewLayoutSidebar({
|
|
13581
14282
|
side = "left",
|
|
@@ -13584,16 +14285,16 @@ function StnListViewLayoutSidebar({
|
|
|
13584
14285
|
...rest
|
|
13585
14286
|
}) {
|
|
13586
14287
|
const lnbClass = side === "right" ? "lnb_box_right" : "lnb_box";
|
|
13587
|
-
return /* @__PURE__ */
|
|
14288
|
+
return /* @__PURE__ */ jsx94("aside", { className: cn(lnbClass, className), ...rest, children });
|
|
13588
14289
|
}
|
|
13589
14290
|
function StnListViewLayoutContent({ className, children, ...rest }) {
|
|
13590
|
-
return /* @__PURE__ */
|
|
14291
|
+
return /* @__PURE__ */ jsx94("div", { className: cn("content_box", className), ...rest, children });
|
|
13591
14292
|
}
|
|
13592
14293
|
function StnListViewLayoutTable({ className, children, ...rest }) {
|
|
13593
|
-
return /* @__PURE__ */
|
|
14294
|
+
return /* @__PURE__ */ jsx94("div", { className: cn("stn-table", className), ...rest, children });
|
|
13594
14295
|
}
|
|
13595
14296
|
function StnListViewLayoutPagination({ className, children, ...rest }) {
|
|
13596
|
-
return /* @__PURE__ */
|
|
14297
|
+
return /* @__PURE__ */ jsx94("div", { className: cn("stn-list-view-layout__pagination-wrap", className), ...rest, children });
|
|
13597
14298
|
}
|
|
13598
14299
|
var StnListViewLayout = Object.assign(StnListViewLayoutRoot, {
|
|
13599
14300
|
Body: StnListViewLayoutBody,
|
|
@@ -13627,13 +14328,13 @@ import {
|
|
|
13627
14328
|
} from "@stn-uiux/pub-ui/data/stnLayout";
|
|
13628
14329
|
|
|
13629
14330
|
// src/patterns/dashboard/StnMapCanvas.tsx
|
|
13630
|
-
import { jsx as
|
|
14331
|
+
import { jsx as jsx95 } from "react/jsx-runtime";
|
|
13631
14332
|
function StnMapCanvas({
|
|
13632
14333
|
children,
|
|
13633
14334
|
className,
|
|
13634
14335
|
...rest
|
|
13635
14336
|
}) {
|
|
13636
|
-
return /* @__PURE__ */
|
|
14337
|
+
return /* @__PURE__ */ jsx95(
|
|
13637
14338
|
"div",
|
|
13638
14339
|
{
|
|
13639
14340
|
className: cn("stn-map-canvas", className),
|
|
@@ -13645,7 +14346,7 @@ function StnMapCanvas({
|
|
|
13645
14346
|
}
|
|
13646
14347
|
|
|
13647
14348
|
// src/patterns/dashboard/StnDashboard.tsx
|
|
13648
|
-
import { jsx as
|
|
14349
|
+
import { jsx as jsx96 } from "react/jsx-runtime";
|
|
13649
14350
|
var fillStyle = {
|
|
13650
14351
|
flex: "1 1 0%",
|
|
13651
14352
|
minHeight: 0,
|
|
@@ -13664,7 +14365,7 @@ function StnDashboardRoot({
|
|
|
13664
14365
|
}) {
|
|
13665
14366
|
const isLeft = widgetPosition === "left";
|
|
13666
14367
|
const isBoth = widgetPosition === "both";
|
|
13667
|
-
return /* @__PURE__ */
|
|
14368
|
+
return /* @__PURE__ */ jsx96(
|
|
13668
14369
|
"div",
|
|
13669
14370
|
{
|
|
13670
14371
|
className: cn(
|
|
@@ -13693,7 +14394,7 @@ function StnDashboardLeft({
|
|
|
13693
14394
|
style,
|
|
13694
14395
|
...rest
|
|
13695
14396
|
}) {
|
|
13696
|
-
return /* @__PURE__ */
|
|
14397
|
+
return /* @__PURE__ */ jsx96(
|
|
13697
14398
|
"div",
|
|
13698
14399
|
{
|
|
13699
14400
|
className: cn("stn-dashboard__left", className),
|
|
@@ -13719,7 +14420,7 @@ function StnDashboardRight({
|
|
|
13719
14420
|
style,
|
|
13720
14421
|
...rest
|
|
13721
14422
|
}) {
|
|
13722
|
-
return /* @__PURE__ */
|
|
14423
|
+
return /* @__PURE__ */ jsx96(
|
|
13723
14424
|
"div",
|
|
13724
14425
|
{
|
|
13725
14426
|
className: cn("stn-dashboard__right", className),
|
|
@@ -13747,7 +14448,7 @@ function StnDashboardTopRight({
|
|
|
13747
14448
|
className,
|
|
13748
14449
|
...rest
|
|
13749
14450
|
}) {
|
|
13750
|
-
return /* @__PURE__ */
|
|
14451
|
+
return /* @__PURE__ */ jsx96(
|
|
13751
14452
|
"div",
|
|
13752
14453
|
{
|
|
13753
14454
|
className: cn("stn-dashboard__top-right", className),
|
|
@@ -13766,9 +14467,9 @@ var StnDashboard = Object.assign(StnDashboardRoot, {
|
|
|
13766
14467
|
});
|
|
13767
14468
|
|
|
13768
14469
|
// src/patterns/scaffold/StnPageScaffold.tsx
|
|
13769
|
-
import { jsx as
|
|
14470
|
+
import { jsx as jsx97, jsxs as jsxs71 } from "react/jsx-runtime";
|
|
13770
14471
|
function StnPageScaffoldRoot({ children, className, ...rest }) {
|
|
13771
|
-
return /* @__PURE__ */
|
|
14472
|
+
return /* @__PURE__ */ jsx97(
|
|
13772
14473
|
"div",
|
|
13773
14474
|
{
|
|
13774
14475
|
className: cn("stn-page-scaffold", className),
|
|
@@ -13785,9 +14486,9 @@ function StnPageScaffoldRegion({
|
|
|
13785
14486
|
className,
|
|
13786
14487
|
...rest
|
|
13787
14488
|
}) {
|
|
13788
|
-
return /* @__PURE__ */
|
|
13789
|
-
/* @__PURE__ */
|
|
13790
|
-
hint ? /* @__PURE__ */
|
|
14489
|
+
return /* @__PURE__ */ jsxs71("div", { className: cn("stn-page-scaffold__region", className), "data-stn-page-scaffold": "region", ...rest, children: [
|
|
14490
|
+
/* @__PURE__ */ jsx97("span", { className: "stn-page-scaffold__region-label", children: label }),
|
|
14491
|
+
hint ? /* @__PURE__ */ jsx97("span", { className: "stn-page-scaffold__region-hint", children: hint }) : null,
|
|
13791
14492
|
children
|
|
13792
14493
|
] });
|
|
13793
14494
|
}
|
|
@@ -13798,7 +14499,7 @@ function StnPageScaffoldMapPlaceholder({
|
|
|
13798
14499
|
children,
|
|
13799
14500
|
...rest
|
|
13800
14501
|
}) {
|
|
13801
|
-
return /* @__PURE__ */
|
|
14502
|
+
return /* @__PURE__ */ jsx97("div", { className: "stn-widget shell-canvas stn-map-canvas", "data-stn-dashboard": "canvas", children: /* @__PURE__ */ jsxs71(
|
|
13802
14503
|
"div",
|
|
13803
14504
|
{
|
|
13804
14505
|
className: cn("stn-page-scaffold__canvas-placeholder", className),
|
|
@@ -13806,8 +14507,8 @@ function StnPageScaffoldMapPlaceholder({
|
|
|
13806
14507
|
role: "status",
|
|
13807
14508
|
...rest,
|
|
13808
14509
|
children: [
|
|
13809
|
-
/* @__PURE__ */
|
|
13810
|
-
note ? /* @__PURE__ */
|
|
14510
|
+
/* @__PURE__ */ jsx97("p", { className: "stn-page-scaffold__canvas-placeholder-title", children: message }),
|
|
14511
|
+
note ? /* @__PURE__ */ jsx97("p", { className: "stn-page-scaffold__canvas-placeholder-note", children: note }) : null,
|
|
13811
14512
|
children
|
|
13812
14513
|
]
|
|
13813
14514
|
}
|
|
@@ -13818,7 +14519,7 @@ function StnPageScaffoldMapCanvas({
|
|
|
13818
14519
|
children,
|
|
13819
14520
|
...rest
|
|
13820
14521
|
}) {
|
|
13821
|
-
return /* @__PURE__ */
|
|
14522
|
+
return /* @__PURE__ */ jsx97(
|
|
13822
14523
|
"div",
|
|
13823
14524
|
{
|
|
13824
14525
|
className: cn("stn-widget", "shell-canvas", "stn-map-canvas", "stn-page-scaffold__canvas", className),
|
|
@@ -13831,7 +14532,7 @@ function StnPageScaffoldMapCanvas({
|
|
|
13831
14532
|
}
|
|
13832
14533
|
function StnPageScaffoldLayer({ label, hint, children, className, ...layerProps }) {
|
|
13833
14534
|
const labelText = label ? hint ? `${label} \xB7 ${hint}` : label : void 0;
|
|
13834
|
-
return /* @__PURE__ */
|
|
14535
|
+
return /* @__PURE__ */ jsx97(
|
|
13835
14536
|
StnLayer2,
|
|
13836
14537
|
{
|
|
13837
14538
|
className: cn(
|
|
@@ -13878,25 +14579,25 @@ function DashboardPageScaffold({
|
|
|
13878
14579
|
const isLeft = widgetPosition === "left";
|
|
13879
14580
|
const isBoth = widgetPosition === "both";
|
|
13880
14581
|
const isNone = widgetPosition === "none" || !showRightRegion;
|
|
13881
|
-
const mapColumn = /* @__PURE__ */
|
|
13882
|
-
/* @__PURE__ */
|
|
14582
|
+
const mapColumn = /* @__PURE__ */ jsxs71(StnDashboard.Left, { children: [
|
|
14583
|
+
/* @__PURE__ */ jsx97(StnPageScaffold.MapPlaceholder, { message: finalMapMessage, note: finalMapNote }),
|
|
13883
14584
|
faultPanel
|
|
13884
14585
|
] });
|
|
13885
|
-
const rightWidgets = right ?? /* @__PURE__ */
|
|
13886
|
-
const leftWidgets = left ?? right ?? /* @__PURE__ */
|
|
13887
|
-
const dashboardGrid = bodyEmpty ? /* @__PURE__ */
|
|
13888
|
-
/* @__PURE__ */
|
|
14586
|
+
const rightWidgets = right ?? /* @__PURE__ */ jsx97(StnPageScaffold.Region, { label: "dashboard_right", hint: "\uC704\uC82F\xB7\uC7A5\uC560 \uD328\uB110" });
|
|
14587
|
+
const leftWidgets = left ?? right ?? /* @__PURE__ */ jsx97(StnPageScaffold.Region, { label: "dashboard_right", hint: "\uC88C\uCE21 \uC704\uC82F\xB7\uC7A5\uC560 \uD328\uB110" });
|
|
14588
|
+
const dashboardGrid = bodyEmpty ? /* @__PURE__ */ jsx97(StnDashboard, { empty: true, widgetPosition, "data-stn-page-scaffold": "dashboard-empty" }) : isBoth ? /* @__PURE__ */ jsxs71(StnDashboard, { widgetPosition: "both", children: [
|
|
14589
|
+
/* @__PURE__ */ jsx97(StnDashboard.Right, { children: leftWidgets }),
|
|
13889
14590
|
mapColumn,
|
|
13890
|
-
/* @__PURE__ */
|
|
13891
|
-
] }) : isLeft ? /* @__PURE__ */
|
|
13892
|
-
/* @__PURE__ */
|
|
14591
|
+
/* @__PURE__ */ jsx97(StnDashboard.Right, { children: rightWidgets })
|
|
14592
|
+
] }) : isLeft ? /* @__PURE__ */ jsxs71(StnDashboard, { widgetPosition: "left", children: [
|
|
14593
|
+
/* @__PURE__ */ jsx97(StnDashboard.Right, { children: leftWidgets }),
|
|
13893
14594
|
mapColumn
|
|
13894
|
-
] }) : /* @__PURE__ */
|
|
14595
|
+
] }) : /* @__PURE__ */ jsxs71(StnDashboard, { widgetPosition: isNone ? "none" : "right", children: [
|
|
13895
14596
|
mapColumn,
|
|
13896
|
-
!isNone ? /* @__PURE__ */
|
|
14597
|
+
!isNone ? /* @__PURE__ */ jsx97(StnDashboard.Right, { children: rightWidgets }) : null
|
|
13897
14598
|
] });
|
|
13898
14599
|
const contentNode = children ?? dashboardGrid;
|
|
13899
|
-
return /* @__PURE__ */
|
|
14600
|
+
return /* @__PURE__ */ jsx97(
|
|
13900
14601
|
StnLayerShell,
|
|
13901
14602
|
{
|
|
13902
14603
|
gnb,
|
|
@@ -13905,7 +14606,7 @@ function DashboardPageScaffold({
|
|
|
13905
14606
|
layer0,
|
|
13906
14607
|
layer2,
|
|
13907
14608
|
...shellProps,
|
|
13908
|
-
children: /* @__PURE__ */
|
|
14609
|
+
children: /* @__PURE__ */ jsx97(
|
|
13909
14610
|
StnContainer,
|
|
13910
14611
|
{
|
|
13911
14612
|
maxWidth: false,
|
|
@@ -13919,16 +14620,16 @@ function DashboardPageScaffold({
|
|
|
13919
14620
|
}
|
|
13920
14621
|
|
|
13921
14622
|
// src/patterns/scaffold/AlertCenterPageScaffold.tsx
|
|
13922
|
-
import { useMemo as
|
|
14623
|
+
import { useMemo as useMemo7, useState as useState26 } from "react";
|
|
13923
14624
|
import {
|
|
13924
14625
|
STN_ALERT_CENTER_DEMO_ALERTS,
|
|
13925
14626
|
STN_ALERT_CENTER_DEMO_DEPLOY,
|
|
13926
14627
|
STN_ALERT_CENTER_DEMO_WORK
|
|
13927
14628
|
} from "@stn-uiux/pub-ui/data/stnAlertCenter";
|
|
13928
14629
|
import { systemIconSrc } from "@stn-uiux/pub-ui/data/stnSystemIcons";
|
|
13929
|
-
import { Fragment as Fragment15, jsx as
|
|
14630
|
+
import { Fragment as Fragment15, jsx as jsx98, jsxs as jsxs72 } from "react/jsx-runtime";
|
|
13930
14631
|
function defaultTopologyHeader(_clock) {
|
|
13931
|
-
return /* @__PURE__ */
|
|
14632
|
+
return /* @__PURE__ */ jsx98(StnHeader, { variant: "widget" });
|
|
13932
14633
|
}
|
|
13933
14634
|
function AlertCenterPageScaffold({
|
|
13934
14635
|
gnbAlertPanel,
|
|
@@ -13945,9 +14646,9 @@ function AlertCenterPageScaffold({
|
|
|
13945
14646
|
defaultGnbOpen = true,
|
|
13946
14647
|
...shellProps
|
|
13947
14648
|
}) {
|
|
13948
|
-
const [gnbOpen, setGnbOpen] =
|
|
13949
|
-
const panel =
|
|
13950
|
-
() => gnbAlertPanel ?? /* @__PURE__ */
|
|
14649
|
+
const [gnbOpen, setGnbOpen] = useState26(defaultGnbOpen);
|
|
14650
|
+
const panel = useMemo7(
|
|
14651
|
+
() => gnbAlertPanel ?? /* @__PURE__ */ jsx98(
|
|
13951
14652
|
StnAlertCenterPanel,
|
|
13952
14653
|
{
|
|
13953
14654
|
alerts: STN_ALERT_CENTER_DEMO_ALERTS,
|
|
@@ -13957,27 +14658,27 @@ function AlertCenterPageScaffold({
|
|
|
13957
14658
|
),
|
|
13958
14659
|
[gnbAlertPanel]
|
|
13959
14660
|
);
|
|
13960
|
-
const sideNav =
|
|
13961
|
-
() => gnbProp ?? /* @__PURE__ */
|
|
13962
|
-
/* @__PURE__ */
|
|
14661
|
+
const sideNav = useMemo7(
|
|
14662
|
+
() => gnbProp ?? /* @__PURE__ */ jsxs72(Fragment15, { children: [
|
|
14663
|
+
/* @__PURE__ */ jsxs72(
|
|
13963
14664
|
StnSideNavigation,
|
|
13964
14665
|
{
|
|
13965
14666
|
collapsed: !gnbOpen,
|
|
13966
14667
|
onCollapseChange: (col) => setGnbOpen(!col),
|
|
13967
14668
|
children: [
|
|
13968
|
-
/* @__PURE__ */
|
|
13969
|
-
/* @__PURE__ */
|
|
13970
|
-
/* @__PURE__ */
|
|
14669
|
+
/* @__PURE__ */ jsxs72(StnSideNavigation.Header, { children: [
|
|
14670
|
+
/* @__PURE__ */ jsx98(StnSideNavigation.Logo, {}),
|
|
14671
|
+
/* @__PURE__ */ jsx98(StnSideNavigation.Toggle, {})
|
|
13971
14672
|
] }),
|
|
13972
|
-
/* @__PURE__ */
|
|
13973
|
-
/* @__PURE__ */
|
|
13974
|
-
/* @__PURE__ */
|
|
13975
|
-
/* @__PURE__ */
|
|
14673
|
+
/* @__PURE__ */ jsxs72(StnSideNavigation.Menu, { children: [
|
|
14674
|
+
/* @__PURE__ */ jsx98(StnSideNavigation.Item, { iconSrc: systemIconSrc("line/layout-grid"), label: "\uBA54\uC778 \uB300\uC2DC\uBCF4\uB4DC", active: true }),
|
|
14675
|
+
/* @__PURE__ */ jsx98(StnSideNavigation.Item, { iconSrc: systemIconSrc("line/server_2"), label: "\uC11C\uBC84 \uBAA8\uB2C8\uD130\uB9C1" }),
|
|
14676
|
+
/* @__PURE__ */ jsx98(StnSideNavigation.Item, { iconSrc: systemIconSrc("line/activity"), label: "\uB124\uD2B8\uC6CC\uD06C \uBD84\uC11D" })
|
|
13976
14677
|
] }),
|
|
13977
|
-
/* @__PURE__ */
|
|
13978
|
-
/* @__PURE__ */
|
|
13979
|
-
/* @__PURE__ */
|
|
13980
|
-
/* @__PURE__ */
|
|
14678
|
+
/* @__PURE__ */ jsx98(StnSideNavigation.Spacer, {}),
|
|
14679
|
+
/* @__PURE__ */ jsxs72(StnSideNavigation.Footer, { curved: true, children: [
|
|
14680
|
+
/* @__PURE__ */ jsx98(StnSideNavigation.Watermark, {}),
|
|
14681
|
+
/* @__PURE__ */ jsx98(
|
|
13981
14682
|
StnSideNavigation.Item,
|
|
13982
14683
|
{
|
|
13983
14684
|
iconSrc: systemIconSrc("line/bell"),
|
|
@@ -13986,7 +14687,7 @@ function AlertCenterPageScaffold({
|
|
|
13986
14687
|
onClick: void 0
|
|
13987
14688
|
}
|
|
13988
14689
|
),
|
|
13989
|
-
/* @__PURE__ */
|
|
14690
|
+
/* @__PURE__ */ jsx98(StnSideNavigation.Item, { iconSrc: systemIconSrc("line/settings"), label: "\uC124\uC815" })
|
|
13990
14691
|
] })
|
|
13991
14692
|
]
|
|
13992
14693
|
}
|
|
@@ -13995,8 +14696,8 @@ function AlertCenterPageScaffold({
|
|
|
13995
14696
|
] }),
|
|
13996
14697
|
[gnbProp, gnbOpen, panel]
|
|
13997
14698
|
);
|
|
13998
|
-
const faultSlot = faultPanel ?? (showFaultPanelPlaceholder ? /* @__PURE__ */
|
|
13999
|
-
return /* @__PURE__ */
|
|
14699
|
+
const faultSlot = faultPanel ?? (showFaultPanelPlaceholder ? /* @__PURE__ */ jsx98("div", { className: "wrap_real_time stn-page-scaffold__fault-ph", children: /* @__PURE__ */ jsx98(StnPageScaffold.Region, { label: "\uC2E4\uC2DC\uAC04 \uC7A5\uC560 \uD604\uD669", hint: "StnWidget shell=fault-panel \xB7 \uC120\uD0DD" }) }) : null);
|
|
14700
|
+
return /* @__PURE__ */ jsx98(
|
|
14000
14701
|
DashboardPageScaffold,
|
|
14001
14702
|
{
|
|
14002
14703
|
gnb: sideNav,
|
|
@@ -14004,7 +14705,7 @@ function AlertCenterPageScaffold({
|
|
|
14004
14705
|
mapMessage,
|
|
14005
14706
|
mapNote,
|
|
14006
14707
|
faultPanel: faultSlot,
|
|
14007
|
-
right: right ?? /* @__PURE__ */
|
|
14708
|
+
right: right ?? /* @__PURE__ */ jsx98(AlertCenterDashboard, {}),
|
|
14008
14709
|
wrapId,
|
|
14009
14710
|
wrapClassName: "stn-page--map-bg",
|
|
14010
14711
|
...shellProps
|
|
@@ -14013,8 +14714,8 @@ function AlertCenterPageScaffold({
|
|
|
14013
14714
|
}
|
|
14014
14715
|
|
|
14015
14716
|
// src/patterns/scaffold/LoginPageScaffold.tsx
|
|
14016
|
-
import { useState as
|
|
14017
|
-
import { jsx as
|
|
14717
|
+
import { useState as useState27 } from "react";
|
|
14718
|
+
import { jsx as jsx99, jsxs as jsxs73 } from "react/jsx-runtime";
|
|
14018
14719
|
var LOGIN_TABS = [
|
|
14019
14720
|
{ value: "normal", label: "\uC77C\uBC18 \uB85C\uADF8\uC778" },
|
|
14020
14721
|
{ value: "social", label: "\uC18C\uC15C \uB85C\uADF8\uC778" }
|
|
@@ -14025,15 +14726,15 @@ function DefaultLoginForm({
|
|
|
14025
14726
|
signUpHref = "#",
|
|
14026
14727
|
recoverHref = "#"
|
|
14027
14728
|
}) {
|
|
14028
|
-
const [mode, setMode] =
|
|
14029
|
-
const [userId, setUserId] =
|
|
14030
|
-
const [password, setPassword] =
|
|
14729
|
+
const [mode, setMode] = useState27("normal");
|
|
14730
|
+
const [userId, setUserId] = useState27("");
|
|
14731
|
+
const [password, setPassword] = useState27("");
|
|
14031
14732
|
function handleSubmit(e) {
|
|
14032
14733
|
e.preventDefault();
|
|
14033
14734
|
onLogin?.(userId, password);
|
|
14034
14735
|
}
|
|
14035
|
-
return /* @__PURE__ */
|
|
14036
|
-
/* @__PURE__ */
|
|
14736
|
+
return /* @__PURE__ */ jsxs73(StnLoginFormStack, { onSubmit: handleSubmit, children: [
|
|
14737
|
+
/* @__PURE__ */ jsx99(
|
|
14037
14738
|
StnSegmented,
|
|
14038
14739
|
{
|
|
14039
14740
|
"aria-label": "\uB85C\uADF8\uC778 \uBC29\uC2DD",
|
|
@@ -14042,8 +14743,8 @@ function DefaultLoginForm({
|
|
|
14042
14743
|
options: LOGIN_TABS
|
|
14043
14744
|
}
|
|
14044
14745
|
),
|
|
14045
|
-
mode === "normal" ? /* @__PURE__ */
|
|
14046
|
-
/* @__PURE__ */
|
|
14746
|
+
mode === "normal" ? /* @__PURE__ */ jsxs73(StnLoginFormFields, { children: [
|
|
14747
|
+
/* @__PURE__ */ jsx99(
|
|
14047
14748
|
StnLoginTextField,
|
|
14048
14749
|
{
|
|
14049
14750
|
icon: "line/user",
|
|
@@ -14055,7 +14756,7 @@ function DefaultLoginForm({
|
|
|
14055
14756
|
"aria-label": "\uC544\uC774\uB514"
|
|
14056
14757
|
}
|
|
14057
14758
|
),
|
|
14058
|
-
/* @__PURE__ */
|
|
14759
|
+
/* @__PURE__ */ jsx99(
|
|
14059
14760
|
StnLoginTextField,
|
|
14060
14761
|
{
|
|
14061
14762
|
icon: "line/lock",
|
|
@@ -14068,11 +14769,11 @@ function DefaultLoginForm({
|
|
|
14068
14769
|
"aria-label": "\uBE44\uBC00\uBC88\uD638"
|
|
14069
14770
|
}
|
|
14070
14771
|
)
|
|
14071
|
-
] }) : socialContent ?? /* @__PURE__ */
|
|
14072
|
-
/* @__PURE__ */
|
|
14073
|
-
/* @__PURE__ */
|
|
14074
|
-
/* @__PURE__ */
|
|
14075
|
-
/* @__PURE__ */
|
|
14772
|
+
] }) : socialContent ?? /* @__PURE__ */ jsx99(StnLoginPlaceholder, {}),
|
|
14773
|
+
/* @__PURE__ */ jsx99(StnButton, { type: "submit", size: "xl", fullWidth: true, children: "\uB85C\uADF8\uC778" }),
|
|
14774
|
+
/* @__PURE__ */ jsxs73(StnLoginFormLinks, { children: [
|
|
14775
|
+
/* @__PURE__ */ jsx99("a", { href: signUpHref, children: "\uD68C\uC6D0\uAC00\uC785" }),
|
|
14776
|
+
/* @__PURE__ */ jsx99("a", { href: recoverHref, children: "\uC544\uC774\uB514 / \uBE44\uBC00\uBC88\uD638 \uCC3E\uAE30" })
|
|
14076
14777
|
] })
|
|
14077
14778
|
] });
|
|
14078
14779
|
}
|
|
@@ -14086,16 +14787,16 @@ function DefaultLoginCard({
|
|
|
14086
14787
|
signUpHref,
|
|
14087
14788
|
recoverHref
|
|
14088
14789
|
}) {
|
|
14089
|
-
return /* @__PURE__ */
|
|
14790
|
+
return /* @__PURE__ */ jsx99(
|
|
14090
14791
|
StnLoginCard,
|
|
14091
14792
|
{
|
|
14092
14793
|
glow,
|
|
14093
14794
|
variant,
|
|
14094
|
-
brand: /* @__PURE__ */
|
|
14095
|
-
logo ?? /* @__PURE__ */
|
|
14096
|
-
/* @__PURE__ */
|
|
14795
|
+
brand: /* @__PURE__ */ jsxs73(StnLoginBrandStack, { children: [
|
|
14796
|
+
logo ?? /* @__PURE__ */ jsx99(StnLogo, { variant: "vertical", size: "xl" }),
|
|
14797
|
+
/* @__PURE__ */ jsx99("p", { className: "stn-login-card__caption", children: productCaption })
|
|
14097
14798
|
] }),
|
|
14098
|
-
children: /* @__PURE__ */
|
|
14799
|
+
children: /* @__PURE__ */ jsx99(
|
|
14099
14800
|
DefaultLoginForm,
|
|
14100
14801
|
{
|
|
14101
14802
|
onLogin,
|
|
@@ -14121,8 +14822,8 @@ function LoginPageScaffold({
|
|
|
14121
14822
|
recoverHref,
|
|
14122
14823
|
...shellProps
|
|
14123
14824
|
}) {
|
|
14124
|
-
const resolvedLayer0 = layer0 ?? /* @__PURE__ */
|
|
14125
|
-
const resolvedCard = children ?? /* @__PURE__ */
|
|
14825
|
+
const resolvedLayer0 = layer0 ?? /* @__PURE__ */ jsx99(StnLayer0Background, { variant: "login" });
|
|
14826
|
+
const resolvedCard = children ?? /* @__PURE__ */ jsx99(
|
|
14126
14827
|
DefaultLoginCard,
|
|
14127
14828
|
{
|
|
14128
14829
|
logo,
|
|
@@ -14135,14 +14836,14 @@ function LoginPageScaffold({
|
|
|
14135
14836
|
recoverHref
|
|
14136
14837
|
}
|
|
14137
14838
|
);
|
|
14138
|
-
return /* @__PURE__ */
|
|
14839
|
+
return /* @__PURE__ */ jsxs73(
|
|
14139
14840
|
"div",
|
|
14140
14841
|
{
|
|
14141
14842
|
className: cn("stn-wrap stn-page--login", wrapClassName),
|
|
14142
14843
|
...shellProps,
|
|
14143
14844
|
children: [
|
|
14144
14845
|
resolvedLayer0,
|
|
14145
|
-
/* @__PURE__ */
|
|
14846
|
+
/* @__PURE__ */ jsx99("div", { className: "stn-login", children: resolvedCard })
|
|
14146
14847
|
]
|
|
14147
14848
|
}
|
|
14148
14849
|
);
|
|
@@ -14174,7 +14875,7 @@ import React4 from "react";
|
|
|
14174
14875
|
import {
|
|
14175
14876
|
STN_EMPTY_STATE_PRESETS
|
|
14176
14877
|
} from "@stn-uiux/pub-ui/data/stnEmptyState";
|
|
14177
|
-
import { Fragment as Fragment16, jsx as
|
|
14878
|
+
import { Fragment as Fragment16, jsx as jsx100, jsxs as jsxs74 } from "react/jsx-runtime";
|
|
14178
14879
|
var ICON_PX2 = {
|
|
14179
14880
|
sm: 40,
|
|
14180
14881
|
md: 56,
|
|
@@ -14183,11 +14884,11 @@ var ICON_PX2 = {
|
|
|
14183
14884
|
function resolveIconNode3(icon, presetIcon, size) {
|
|
14184
14885
|
if (icon === null || icon === false) return null;
|
|
14185
14886
|
if (typeof icon === "string") {
|
|
14186
|
-
return /* @__PURE__ */
|
|
14887
|
+
return /* @__PURE__ */ jsx100(StnIcon, { name: icon, size: ICON_PX2[size], color: "currentColor" });
|
|
14187
14888
|
}
|
|
14188
14889
|
if (icon != null) return icon;
|
|
14189
14890
|
if (presetIcon) {
|
|
14190
|
-
return /* @__PURE__ */
|
|
14891
|
+
return /* @__PURE__ */ jsx100(StnIcon, { name: presetIcon, size: ICON_PX2[size], color: "currentColor" });
|
|
14191
14892
|
}
|
|
14192
14893
|
return null;
|
|
14193
14894
|
}
|
|
@@ -14221,8 +14922,8 @@ var StnEmptyState = React4.forwardRef(
|
|
|
14221
14922
|
const showGraphic = !hideIcon && visual !== "icon" && Boolean(resolvedGraphic);
|
|
14222
14923
|
const iconNode = hideIcon || showGraphic ? null : resolveIconNode3(icon, preset?.icon, size);
|
|
14223
14924
|
const resolvedCode = hideCode ? void 0 : code ?? (showGraphic ? void 0 : preset?.code);
|
|
14224
|
-
const actionNodes = actions ?? ((primaryAction || secondaryAction) && /* @__PURE__ */
|
|
14225
|
-
primaryAction && /* @__PURE__ */
|
|
14925
|
+
const actionNodes = actions ?? ((primaryAction || secondaryAction) && /* @__PURE__ */ jsxs74(Fragment16, { children: [
|
|
14926
|
+
primaryAction && /* @__PURE__ */ jsx100(
|
|
14226
14927
|
StnButton,
|
|
14227
14928
|
{
|
|
14228
14929
|
variant: primaryAction.variant ?? "contained",
|
|
@@ -14232,7 +14933,7 @@ var StnEmptyState = React4.forwardRef(
|
|
|
14232
14933
|
children: primaryAction.label
|
|
14233
14934
|
}
|
|
14234
14935
|
),
|
|
14235
|
-
secondaryAction && /* @__PURE__ */
|
|
14936
|
+
secondaryAction && /* @__PURE__ */ jsx100(
|
|
14236
14937
|
StnButton,
|
|
14237
14938
|
{
|
|
14238
14939
|
variant: secondaryAction.variant ?? "outlined",
|
|
@@ -14244,7 +14945,7 @@ var StnEmptyState = React4.forwardRef(
|
|
|
14244
14945
|
)
|
|
14245
14946
|
] }));
|
|
14246
14947
|
const hasActions = actionNodes != null && actionNodes !== false;
|
|
14247
|
-
return /* @__PURE__ */
|
|
14948
|
+
return /* @__PURE__ */ jsxs74(
|
|
14248
14949
|
"div",
|
|
14249
14950
|
{
|
|
14250
14951
|
ref,
|
|
@@ -14258,7 +14959,7 @@ var StnEmptyState = React4.forwardRef(
|
|
|
14258
14959
|
),
|
|
14259
14960
|
...rest,
|
|
14260
14961
|
children: [
|
|
14261
|
-
showGraphic && /* @__PURE__ */
|
|
14962
|
+
showGraphic && /* @__PURE__ */ jsx100("div", { className: "stn-empty-state__graphic", "aria-hidden": "true", children: /* @__PURE__ */ jsx100(
|
|
14262
14963
|
"img",
|
|
14263
14964
|
{
|
|
14264
14965
|
src: resolvedGraphic,
|
|
@@ -14268,13 +14969,13 @@ var StnEmptyState = React4.forwardRef(
|
|
|
14268
14969
|
decoding: "async"
|
|
14269
14970
|
}
|
|
14270
14971
|
) }),
|
|
14271
|
-
!showGraphic && iconNode != null && /* @__PURE__ */
|
|
14272
|
-
/* @__PURE__ */
|
|
14273
|
-
resolvedCode != null && resolvedCode !== false && /* @__PURE__ */
|
|
14274
|
-
resolvedTitle != null && resolvedTitle !== false && /* @__PURE__ */
|
|
14275
|
-
resolvedDescription != null && resolvedDescription !== false && /* @__PURE__ */
|
|
14972
|
+
!showGraphic && iconNode != null && /* @__PURE__ */ jsx100("div", { className: "stn-empty-state__icon", children: iconNode }),
|
|
14973
|
+
/* @__PURE__ */ jsxs74("div", { className: "stn-empty-state__body", children: [
|
|
14974
|
+
resolvedCode != null && resolvedCode !== false && /* @__PURE__ */ jsx100("p", { className: "stn-empty-state__code", children: resolvedCode }),
|
|
14975
|
+
resolvedTitle != null && resolvedTitle !== false && /* @__PURE__ */ jsx100("p", { className: "stn-empty-state__title", children: resolvedTitle }),
|
|
14976
|
+
resolvedDescription != null && resolvedDescription !== false && /* @__PURE__ */ jsx100("p", { className: "stn-empty-state__description", children: resolvedDescription })
|
|
14276
14977
|
] }),
|
|
14277
|
-
hasActions && /* @__PURE__ */
|
|
14978
|
+
hasActions && /* @__PURE__ */ jsx100("div", { className: "stn-empty-state__actions", children: actionNodes })
|
|
14278
14979
|
]
|
|
14279
14980
|
}
|
|
14280
14981
|
);
|
|
@@ -14283,7 +14984,7 @@ var StnEmptyState = React4.forwardRef(
|
|
|
14283
14984
|
StnEmptyState.displayName = "StnEmptyState";
|
|
14284
14985
|
|
|
14285
14986
|
// src/components/chartTypes.tsx
|
|
14286
|
-
import { jsx as
|
|
14987
|
+
import { jsx as jsx101, jsxs as jsxs75 } from "react/jsx-runtime";
|
|
14287
14988
|
var SEVERITY_COLOR_TOKENS = {
|
|
14288
14989
|
critical: "var(--stn-chart-status-critical)",
|
|
14289
14990
|
major: "var(--stn-chart-status-major)",
|
|
@@ -14392,20 +15093,20 @@ function formatChartValue(value, decimals) {
|
|
|
14392
15093
|
}
|
|
14393
15094
|
function renderChartState(loading, hasData, emptyText = "\uC870\uD68C\uB41C \uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4") {
|
|
14394
15095
|
if (loading) {
|
|
14395
|
-
return /* @__PURE__ */
|
|
14396
|
-
/* @__PURE__ */
|
|
14397
|
-
/* @__PURE__ */
|
|
14398
|
-
/* @__PURE__ */
|
|
14399
|
-
/* @__PURE__ */
|
|
14400
|
-
/* @__PURE__ */
|
|
14401
|
-
/* @__PURE__ */
|
|
15096
|
+
return /* @__PURE__ */ jsxs75("div", { className: "stn-chart-skeleton", "aria-busy": "true", "aria-label": "\uCC28\uD2B8 \uB85C\uB529 \uC911", children: [
|
|
15097
|
+
/* @__PURE__ */ jsxs75("div", { className: "stn-chart-skeleton__bars", children: [
|
|
15098
|
+
/* @__PURE__ */ jsx101("div", { className: "stn-chart-skeleton__bar", style: { height: "45%" } }),
|
|
15099
|
+
/* @__PURE__ */ jsx101("div", { className: "stn-chart-skeleton__bar", style: { height: "75%" } }),
|
|
15100
|
+
/* @__PURE__ */ jsx101("div", { className: "stn-chart-skeleton__bar", style: { height: "30%" } }),
|
|
15101
|
+
/* @__PURE__ */ jsx101("div", { className: "stn-chart-skeleton__bar", style: { height: "90%" } }),
|
|
15102
|
+
/* @__PURE__ */ jsx101("div", { className: "stn-chart-skeleton__bar", style: { height: "60%" } })
|
|
14402
15103
|
] }),
|
|
14403
|
-
/* @__PURE__ */
|
|
15104
|
+
/* @__PURE__ */ jsx101("div", { className: "stn-chart-skeleton__axis" })
|
|
14404
15105
|
] });
|
|
14405
15106
|
}
|
|
14406
15107
|
if (!hasData) {
|
|
14407
|
-
return /* @__PURE__ */
|
|
14408
|
-
/* @__PURE__ */
|
|
15108
|
+
return /* @__PURE__ */ jsxs75("div", { className: "stn-chart-empty", role: "status", "aria-label": "\uB370\uC774\uD130 \uC5C6\uC74C", children: [
|
|
15109
|
+
/* @__PURE__ */ jsxs75(
|
|
14409
15110
|
"svg",
|
|
14410
15111
|
{
|
|
14411
15112
|
className: "stn-chart-empty__icon",
|
|
@@ -14417,12 +15118,12 @@ function renderChartState(loading, hasData, emptyText = "\uC870\uD68C\uB41C \uB3
|
|
|
14417
15118
|
strokeLinejoin: "round",
|
|
14418
15119
|
"aria-hidden": "true",
|
|
14419
15120
|
children: [
|
|
14420
|
-
/* @__PURE__ */
|
|
14421
|
-
/* @__PURE__ */
|
|
15121
|
+
/* @__PURE__ */ jsx101("path", { d: "M3 3v18h18" }),
|
|
15122
|
+
/* @__PURE__ */ jsx101("path", { d: "M18 9l-5 5-4-4-3 3" })
|
|
14422
15123
|
]
|
|
14423
15124
|
}
|
|
14424
15125
|
),
|
|
14425
|
-
/* @__PURE__ */
|
|
15126
|
+
/* @__PURE__ */ jsx101("span", { children: emptyText })
|
|
14426
15127
|
] });
|
|
14427
15128
|
}
|
|
14428
15129
|
return null;
|
|
@@ -14430,9 +15131,9 @@ function renderChartState(loading, hasData, emptyText = "\uC870\uD68C\uB41C \uB3
|
|
|
14430
15131
|
|
|
14431
15132
|
// src/components/StnBarChart.tsx
|
|
14432
15133
|
import {
|
|
14433
|
-
useState as
|
|
15134
|
+
useState as useState28
|
|
14434
15135
|
} from "react";
|
|
14435
|
-
import { Fragment as Fragment17, jsx as
|
|
15136
|
+
import { Fragment as Fragment17, jsx as jsx102, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
14436
15137
|
var DEFAULT_BAR_COLORS = STN_CHART_COLORS;
|
|
14437
15138
|
var SIZE_WIDTH_MAP = {
|
|
14438
15139
|
sm: "var(--stn-chart-bar-width-sm)",
|
|
@@ -14463,15 +15164,15 @@ function StnBarChart({
|
|
|
14463
15164
|
style,
|
|
14464
15165
|
...rest
|
|
14465
15166
|
}) {
|
|
14466
|
-
const [internalHighlight, setInternalHighlight] =
|
|
14467
|
-
const [hoveredIndex, setHoveredIndex] =
|
|
15167
|
+
const [internalHighlight, setInternalHighlight] = useState28(null);
|
|
15168
|
+
const [hoveredIndex, setHoveredIndex] = useState28(null);
|
|
14468
15169
|
const isHorizontal = direction === "horizontal" || orientation === "horizontal";
|
|
14469
15170
|
if (loading || !data || data.length === 0) {
|
|
14470
15171
|
const emptyContainerStyle = {
|
|
14471
15172
|
...style,
|
|
14472
15173
|
...height ? { height: typeof height === "number" ? `${height}px` : height } : {}
|
|
14473
15174
|
};
|
|
14474
|
-
return /* @__PURE__ */
|
|
15175
|
+
return /* @__PURE__ */ jsx102(
|
|
14475
15176
|
"div",
|
|
14476
15177
|
{
|
|
14477
15178
|
className: cn(
|
|
@@ -14528,7 +15229,7 @@ function StnBarChart({
|
|
|
14528
15229
|
...height ? { height } : {},
|
|
14529
15230
|
["--stn-chart-bar-width"]: resolvedBarWidth
|
|
14530
15231
|
};
|
|
14531
|
-
return /* @__PURE__ */
|
|
15232
|
+
return /* @__PURE__ */ jsxs76(
|
|
14532
15233
|
"div",
|
|
14533
15234
|
{
|
|
14534
15235
|
className: cn(
|
|
@@ -14543,11 +15244,11 @@ function StnBarChart({
|
|
|
14543
15244
|
style: containerStyle,
|
|
14544
15245
|
...rest,
|
|
14545
15246
|
children: [
|
|
14546
|
-
/* @__PURE__ */
|
|
15247
|
+
/* @__PURE__ */ jsx102("div", { className: "stn-chart-bar__body", children: isHorizontal ? (
|
|
14547
15248
|
/* ==================== 가로 막대 (Horizontal) ==================== */
|
|
14548
|
-
/* @__PURE__ */
|
|
14549
|
-
showXAxis && /* @__PURE__ */
|
|
14550
|
-
/* @__PURE__ */
|
|
15249
|
+
/* @__PURE__ */ jsxs76(Fragment17, { children: [
|
|
15250
|
+
showXAxis && /* @__PURE__ */ jsx102("div", { className: "stn-chart-bar__grid-v", "aria-hidden": "true", children: gridCols.map((col, cIdx) => /* @__PURE__ */ jsxs76("div", { className: "stn-chart-bar__grid-v-col", children: [
|
|
15251
|
+
/* @__PURE__ */ jsx102(
|
|
14551
15252
|
"div",
|
|
14552
15253
|
{
|
|
14553
15254
|
className: cn(
|
|
@@ -14556,9 +15257,9 @@ function StnBarChart({
|
|
|
14556
15257
|
)
|
|
14557
15258
|
}
|
|
14558
15259
|
),
|
|
14559
|
-
/* @__PURE__ */
|
|
15260
|
+
/* @__PURE__ */ jsx102("span", { className: "stn-chart-bar__grid-v-label", children: col.label })
|
|
14560
15261
|
] }, cIdx)) }),
|
|
14561
|
-
/* @__PURE__ */
|
|
15262
|
+
/* @__PURE__ */ jsx102("div", { className: "stn-chart-bar__rows", role: "list", children: data.map((item, idx) => {
|
|
14562
15263
|
const active = isHighlighted(idx, item);
|
|
14563
15264
|
const isHovered = hoveredIndex === idx;
|
|
14564
15265
|
const rawVals = item.values.map((v, vIdx) => {
|
|
@@ -14578,7 +15279,7 @@ function StnBarChart({
|
|
|
14578
15279
|
});
|
|
14579
15280
|
const summaryValues = rawVals.map((v) => v.value).join(", ");
|
|
14580
15281
|
const isFirstRow = idx === 0;
|
|
14581
|
-
return /* @__PURE__ */
|
|
15282
|
+
return /* @__PURE__ */ jsxs76(
|
|
14582
15283
|
"button",
|
|
14583
15284
|
{
|
|
14584
15285
|
type: "button",
|
|
@@ -14595,10 +15296,10 @@ function StnBarChart({
|
|
|
14595
15296
|
"aria-label": `${item.label} (${summaryValues})`,
|
|
14596
15297
|
role: "listitem",
|
|
14597
15298
|
children: [
|
|
14598
|
-
showYAxis && /* @__PURE__ */
|
|
14599
|
-
/* @__PURE__ */
|
|
15299
|
+
showYAxis && /* @__PURE__ */ jsx102("span", { className: "stn-chart-bar__row-label", title: item.label, children: item.label }),
|
|
15300
|
+
/* @__PURE__ */ jsx102("div", { className: "stn-chart-bar__row-track", children: rawVals.map((bar, bIdx) => {
|
|
14600
15301
|
const pct = Math.max(0, Math.min(100, bar.value / max * 100));
|
|
14601
|
-
return /* @__PURE__ */
|
|
15302
|
+
return /* @__PURE__ */ jsx102(
|
|
14602
15303
|
"div",
|
|
14603
15304
|
{
|
|
14604
15305
|
className: "stn-chart-bar__item",
|
|
@@ -14610,8 +15311,8 @@ function StnBarChart({
|
|
|
14610
15311
|
bIdx
|
|
14611
15312
|
);
|
|
14612
15313
|
}) }),
|
|
14613
|
-
showValue && rawVals.length === 1 && /* @__PURE__ */
|
|
14614
|
-
showTooltip && isHovered && /* @__PURE__ */
|
|
15314
|
+
showValue && rawVals.length === 1 && /* @__PURE__ */ jsx102("span", { className: "stn-chart-bar__row-val", children: formatter(rawVals[0].value) }),
|
|
15315
|
+
showTooltip && isHovered && /* @__PURE__ */ jsxs76(
|
|
14615
15316
|
"div",
|
|
14616
15317
|
{
|
|
14617
15318
|
className: "stn-chart-tooltip",
|
|
@@ -14623,19 +15324,19 @@ function StnBarChart({
|
|
|
14623
15324
|
},
|
|
14624
15325
|
role: "tooltip",
|
|
14625
15326
|
children: [
|
|
14626
|
-
/* @__PURE__ */
|
|
14627
|
-
rawVals.map((bar, bIdx) => /* @__PURE__ */
|
|
14628
|
-
/* @__PURE__ */
|
|
14629
|
-
/* @__PURE__ */
|
|
15327
|
+
/* @__PURE__ */ jsx102("div", { className: "stn-chart-tooltip__header", children: item.label }),
|
|
15328
|
+
rawVals.map((bar, bIdx) => /* @__PURE__ */ jsxs76("div", { className: "stn-chart-tooltip__row", children: [
|
|
15329
|
+
/* @__PURE__ */ jsxs76("div", { className: "stn-chart-tooltip__group", children: [
|
|
15330
|
+
/* @__PURE__ */ jsx102(
|
|
14630
15331
|
"span",
|
|
14631
15332
|
{
|
|
14632
15333
|
className: "stn-chart-tooltip__dot",
|
|
14633
15334
|
style: { backgroundColor: bar.color }
|
|
14634
15335
|
}
|
|
14635
15336
|
),
|
|
14636
|
-
/* @__PURE__ */
|
|
15337
|
+
/* @__PURE__ */ jsx102("span", { className: "stn-chart-tooltip__label", children: bar.label })
|
|
14637
15338
|
] }),
|
|
14638
|
-
/* @__PURE__ */
|
|
15339
|
+
/* @__PURE__ */ jsx102("span", { className: "stn-chart-tooltip__value", children: formatter(bar.value) })
|
|
14639
15340
|
] }, bIdx))
|
|
14640
15341
|
]
|
|
14641
15342
|
}
|
|
@@ -14648,10 +15349,10 @@ function StnBarChart({
|
|
|
14648
15349
|
] })
|
|
14649
15350
|
) : (
|
|
14650
15351
|
/* ==================== 세로 막대 (Vertical) ==================== */
|
|
14651
|
-
/* @__PURE__ */
|
|
14652
|
-
showYAxis && /* @__PURE__ */
|
|
14653
|
-
/* @__PURE__ */
|
|
14654
|
-
/* @__PURE__ */
|
|
15352
|
+
/* @__PURE__ */ jsxs76(Fragment17, { children: [
|
|
15353
|
+
showYAxis && /* @__PURE__ */ jsx102("div", { className: "stn-chart-bar__grid", "aria-hidden": "true", children: gridRows.map((row, rIdx) => /* @__PURE__ */ jsxs76("div", { className: "stn-chart-bar__grid-row", children: [
|
|
15354
|
+
/* @__PURE__ */ jsx102("span", { className: "stn-chart-bar__axis-label", children: row.label }),
|
|
15355
|
+
/* @__PURE__ */ jsx102(
|
|
14655
15356
|
"div",
|
|
14656
15357
|
{
|
|
14657
15358
|
className: cn(
|
|
@@ -14661,7 +15362,7 @@ function StnBarChart({
|
|
|
14661
15362
|
}
|
|
14662
15363
|
)
|
|
14663
15364
|
] }, rIdx)) }),
|
|
14664
|
-
/* @__PURE__ */
|
|
15365
|
+
/* @__PURE__ */ jsx102("div", { className: "stn-chart-bar__columns", role: "list", children: data.map((item, idx) => {
|
|
14665
15366
|
const active = isHighlighted(idx, item);
|
|
14666
15367
|
const isHovered = hoveredIndex === idx;
|
|
14667
15368
|
const rawVals = item.values.map((v, vIdx) => {
|
|
@@ -14680,7 +15381,7 @@ function StnBarChart({
|
|
|
14680
15381
|
};
|
|
14681
15382
|
});
|
|
14682
15383
|
const summaryValues = rawVals.map((v) => v.value).join(", ");
|
|
14683
|
-
return /* @__PURE__ */
|
|
15384
|
+
return /* @__PURE__ */ jsxs76(
|
|
14684
15385
|
"button",
|
|
14685
15386
|
{
|
|
14686
15387
|
type: "button",
|
|
@@ -14697,10 +15398,10 @@ function StnBarChart({
|
|
|
14697
15398
|
"aria-label": `${item.label} (${summaryValues})`,
|
|
14698
15399
|
role: "listitem",
|
|
14699
15400
|
children: [
|
|
14700
|
-
/* @__PURE__ */
|
|
14701
|
-
/* @__PURE__ */
|
|
15401
|
+
/* @__PURE__ */ jsx102("div", { className: "stn-chart-bar__highlight" }),
|
|
15402
|
+
/* @__PURE__ */ jsx102("div", { className: "stn-chart-bar__bars-wrap", children: rawVals.map((bar, bIdx) => {
|
|
14702
15403
|
const pct = Math.max(0, Math.min(100, bar.value / max * 100));
|
|
14703
|
-
return /* @__PURE__ */
|
|
15404
|
+
return /* @__PURE__ */ jsx102(
|
|
14704
15405
|
"div",
|
|
14705
15406
|
{
|
|
14706
15407
|
className: "stn-chart-bar__item",
|
|
@@ -14712,8 +15413,8 @@ function StnBarChart({
|
|
|
14712
15413
|
bIdx
|
|
14713
15414
|
);
|
|
14714
15415
|
}) }),
|
|
14715
|
-
showXAxis && /* @__PURE__ */
|
|
14716
|
-
showTooltip && isHovered && /* @__PURE__ */
|
|
15416
|
+
showXAxis && /* @__PURE__ */ jsx102("span", { className: "stn-chart-bar__label", children: item.label }),
|
|
15417
|
+
showTooltip && isHovered && /* @__PURE__ */ jsxs76(
|
|
14717
15418
|
"div",
|
|
14718
15419
|
{
|
|
14719
15420
|
className: cn(
|
|
@@ -14727,19 +15428,19 @@ function StnBarChart({
|
|
|
14727
15428
|
},
|
|
14728
15429
|
role: "tooltip",
|
|
14729
15430
|
children: [
|
|
14730
|
-
/* @__PURE__ */
|
|
14731
|
-
rawVals.map((bar, bIdx) => /* @__PURE__ */
|
|
14732
|
-
/* @__PURE__ */
|
|
14733
|
-
/* @__PURE__ */
|
|
15431
|
+
/* @__PURE__ */ jsx102("div", { className: "stn-chart-tooltip__header", children: item.label }),
|
|
15432
|
+
rawVals.map((bar, bIdx) => /* @__PURE__ */ jsxs76("div", { className: "stn-chart-tooltip__row", children: [
|
|
15433
|
+
/* @__PURE__ */ jsxs76("div", { className: "stn-chart-tooltip__group", children: [
|
|
15434
|
+
/* @__PURE__ */ jsx102(
|
|
14734
15435
|
"span",
|
|
14735
15436
|
{
|
|
14736
15437
|
className: "stn-chart-tooltip__dot",
|
|
14737
15438
|
style: { backgroundColor: bar.color }
|
|
14738
15439
|
}
|
|
14739
15440
|
),
|
|
14740
|
-
/* @__PURE__ */
|
|
15441
|
+
/* @__PURE__ */ jsx102("span", { className: "stn-chart-tooltip__label", children: bar.label })
|
|
14741
15442
|
] }),
|
|
14742
|
-
/* @__PURE__ */
|
|
15443
|
+
/* @__PURE__ */ jsx102("span", { className: "stn-chart-tooltip__value", children: formatter(bar.value) })
|
|
14743
15444
|
] }, bIdx))
|
|
14744
15445
|
]
|
|
14745
15446
|
}
|
|
@@ -14751,15 +15452,15 @@ function StnBarChart({
|
|
|
14751
15452
|
}) })
|
|
14752
15453
|
] })
|
|
14753
15454
|
) }),
|
|
14754
|
-
legend && legend.length > 0 && /* @__PURE__ */
|
|
14755
|
-
/* @__PURE__ */
|
|
15455
|
+
legend && legend.length > 0 && /* @__PURE__ */ jsx102("div", { className: "stn-chart-legend-pill", "aria-label": "\uCC28\uD2B8 \uBC94\uB840", children: legend.map((leg, lIdx) => /* @__PURE__ */ jsxs76("div", { className: "stn-chart-legend-pill__item", children: [
|
|
15456
|
+
/* @__PURE__ */ jsx102(
|
|
14756
15457
|
"span",
|
|
14757
15458
|
{
|
|
14758
15459
|
className: "stn-chart-legend-pill__bar",
|
|
14759
15460
|
style: { backgroundColor: resolveChartColor(leg.color, lIdx) }
|
|
14760
15461
|
}
|
|
14761
15462
|
),
|
|
14762
|
-
/* @__PURE__ */
|
|
15463
|
+
/* @__PURE__ */ jsx102("span", { className: "stn-chart-legend-pill__label", children: leg.label })
|
|
14763
15464
|
] }, lIdx)) })
|
|
14764
15465
|
]
|
|
14765
15466
|
}
|
|
@@ -14769,9 +15470,9 @@ function StnBarChart({
|
|
|
14769
15470
|
// src/components/StnPieChart.tsx
|
|
14770
15471
|
import {
|
|
14771
15472
|
useId as useId18,
|
|
14772
|
-
useState as
|
|
15473
|
+
useState as useState29
|
|
14773
15474
|
} from "react";
|
|
14774
|
-
import { Fragment as Fragment18, jsx as
|
|
15475
|
+
import { Fragment as Fragment18, jsx as jsx103, jsxs as jsxs77 } from "react/jsx-runtime";
|
|
14775
15476
|
var DEFAULT_PIE_COLORS = STN_CHART_COLORS;
|
|
14776
15477
|
var R = 38;
|
|
14777
15478
|
var CIRCUMFERENCE = 2 * Math.PI * R;
|
|
@@ -14799,10 +15500,10 @@ function StnPieChart({
|
|
|
14799
15500
|
...rest
|
|
14800
15501
|
}) {
|
|
14801
15502
|
const filterId = useId18().replace(/:/g, "");
|
|
14802
|
-
const [hoveredIndex, setHoveredIndex] =
|
|
15503
|
+
const [hoveredIndex, setHoveredIndex] = useState29(null);
|
|
14803
15504
|
const hasData = Boolean(data && data.length > 0);
|
|
14804
15505
|
if (loading || !hasData) {
|
|
14805
|
-
return /* @__PURE__ */
|
|
15506
|
+
return /* @__PURE__ */ jsx103(
|
|
14806
15507
|
"div",
|
|
14807
15508
|
{
|
|
14808
15509
|
className: cn("stn-chart-gauge", className),
|
|
@@ -14838,7 +15539,7 @@ function StnPieChart({
|
|
|
14838
15539
|
position: "relative"
|
|
14839
15540
|
};
|
|
14840
15541
|
const activeSeg = hoveredIndex !== null ? segments[hoveredIndex] : null;
|
|
14841
|
-
return /* @__PURE__ */
|
|
15542
|
+
return /* @__PURE__ */ jsxs77(
|
|
14842
15543
|
"div",
|
|
14843
15544
|
{
|
|
14844
15545
|
className: cn(
|
|
@@ -14850,7 +15551,7 @@ function StnPieChart({
|
|
|
14850
15551
|
style: containerStyle,
|
|
14851
15552
|
...rest,
|
|
14852
15553
|
children: [
|
|
14853
|
-
/* @__PURE__ */
|
|
15554
|
+
/* @__PURE__ */ jsxs77(
|
|
14854
15555
|
"svg",
|
|
14855
15556
|
{
|
|
14856
15557
|
className: "stn-chart-gauge__svg",
|
|
@@ -14858,8 +15559,8 @@ function StnPieChart({
|
|
|
14858
15559
|
style: { width: size, height: size },
|
|
14859
15560
|
"aria-hidden": "true",
|
|
14860
15561
|
children: [
|
|
14861
|
-
/* @__PURE__ */
|
|
14862
|
-
/* @__PURE__ */
|
|
15562
|
+
/* @__PURE__ */ jsx103("defs", { children: /* @__PURE__ */ jsx103("filter", { id: `gauge_shadow_${filterId}`, x: "-30%", y: "-30%", width: "160%", height: "160%", children: /* @__PURE__ */ jsx103("feDropShadow", { dx: "0", dy: "2", stdDeviation: "3", floodColor: "var(--stn-opacity-black-30)" }) }) }),
|
|
15563
|
+
/* @__PURE__ */ jsx103(
|
|
14863
15564
|
"circle",
|
|
14864
15565
|
{
|
|
14865
15566
|
className: "stn-chart-gauge__track",
|
|
@@ -14871,7 +15572,7 @@ function StnPieChart({
|
|
|
14871
15572
|
),
|
|
14872
15573
|
segments.map((seg, sIdx) => {
|
|
14873
15574
|
const isHovered = hoveredIndex === sIdx;
|
|
14874
|
-
return /* @__PURE__ */
|
|
15575
|
+
return /* @__PURE__ */ jsx103(
|
|
14875
15576
|
"circle",
|
|
14876
15577
|
{
|
|
14877
15578
|
className: "stn-chart-gauge__seg",
|
|
@@ -14898,9 +15599,9 @@ function StnPieChart({
|
|
|
14898
15599
|
seg.id ?? sIdx
|
|
14899
15600
|
);
|
|
14900
15601
|
}),
|
|
14901
|
-
variant === "gauge" ? /* @__PURE__ */
|
|
14902
|
-
/* @__PURE__ */
|
|
14903
|
-
/* @__PURE__ */
|
|
15602
|
+
variant === "gauge" ? /* @__PURE__ */ jsxs77(Fragment18, { children: [
|
|
15603
|
+
/* @__PURE__ */ jsx103("circle", { className: "stn-chart-gauge__center-outer", cx: "45", cy: "45", r: "31" }),
|
|
15604
|
+
/* @__PURE__ */ jsx103(
|
|
14904
15605
|
"circle",
|
|
14905
15606
|
{
|
|
14906
15607
|
className: "stn-chart-gauge__center-inner",
|
|
@@ -14910,11 +15611,11 @@ function StnPieChart({
|
|
|
14910
15611
|
filter: `url(#gauge_shadow_${filterId})`
|
|
14911
15612
|
}
|
|
14912
15613
|
),
|
|
14913
|
-
centerLabel && /* @__PURE__ */
|
|
14914
|
-
] }) : /* @__PURE__ */
|
|
14915
|
-
/* @__PURE__ */
|
|
14916
|
-
centerLabel && /* @__PURE__ */
|
|
14917
|
-
centerSubLabel && /* @__PURE__ */
|
|
15614
|
+
centerLabel && /* @__PURE__ */ jsx103("text", { className: "stn-chart-gauge__center-text", x: "45", y: "49", children: centerLabel })
|
|
15615
|
+
] }) : /* @__PURE__ */ jsxs77(Fragment18, { children: [
|
|
15616
|
+
/* @__PURE__ */ jsx103("circle", { className: "stn-chart-gauge__center-outer", cx: "45", cy: "45", r: "30" }),
|
|
15617
|
+
centerLabel && /* @__PURE__ */ jsx103("text", { className: "stn-chart-gauge__center-text", x: "45", y: centerSubLabel ? "46" : "49", children: centerLabel }),
|
|
15618
|
+
centerSubLabel && /* @__PURE__ */ jsx103(
|
|
14918
15619
|
"text",
|
|
14919
15620
|
{
|
|
14920
15621
|
x: "45",
|
|
@@ -14930,7 +15631,7 @@ function StnPieChart({
|
|
|
14930
15631
|
]
|
|
14931
15632
|
}
|
|
14932
15633
|
),
|
|
14933
|
-
showTooltip && activeSeg && /* @__PURE__ */
|
|
15634
|
+
showTooltip && activeSeg && /* @__PURE__ */ jsxs77(
|
|
14934
15635
|
"div",
|
|
14935
15636
|
{
|
|
14936
15637
|
className: "stn-chart-tooltip",
|
|
@@ -14940,18 +15641,18 @@ function StnPieChart({
|
|
|
14940
15641
|
},
|
|
14941
15642
|
role: "tooltip",
|
|
14942
15643
|
children: [
|
|
14943
|
-
/* @__PURE__ */
|
|
14944
|
-
/* @__PURE__ */
|
|
14945
|
-
/* @__PURE__ */
|
|
14946
|
-
/* @__PURE__ */
|
|
14947
|
-
/* @__PURE__ */
|
|
15644
|
+
/* @__PURE__ */ jsx103("div", { className: "stn-chart-tooltip__header", children: activeSeg.label }),
|
|
15645
|
+
/* @__PURE__ */ jsxs77("div", { className: "stn-chart-tooltip__row", children: [
|
|
15646
|
+
/* @__PURE__ */ jsxs77("div", { className: "stn-chart-tooltip__group", children: [
|
|
15647
|
+
/* @__PURE__ */ jsx103("span", { className: "stn-chart-tooltip__dot", style: { backgroundColor: activeSeg.color } }),
|
|
15648
|
+
/* @__PURE__ */ jsx103("span", { className: "stn-chart-tooltip__label", children: "\uC218\uCE58" })
|
|
14948
15649
|
] }),
|
|
14949
|
-
/* @__PURE__ */
|
|
15650
|
+
/* @__PURE__ */ jsx103("span", { className: "stn-chart-tooltip__value", children: format ? format(activeSeg.value, activeSeg.ratio) : `${activeSeg.value.toLocaleString()} (${(activeSeg.ratio * 100).toFixed(decimals !== void 0 ? decimals : 1)}%)` })
|
|
14950
15651
|
] })
|
|
14951
15652
|
]
|
|
14952
15653
|
}
|
|
14953
15654
|
),
|
|
14954
|
-
showLegend && segments.length > 0 && /* @__PURE__ */
|
|
15655
|
+
showLegend && segments.length > 0 && /* @__PURE__ */ jsx103("div", { className: "stn-chart-gauge-legend", role: "list", children: segments.map((seg, lIdx) => /* @__PURE__ */ jsxs77(
|
|
14955
15656
|
"div",
|
|
14956
15657
|
{
|
|
14957
15658
|
className: "stn-chart-gauge-legend__item",
|
|
@@ -14963,14 +15664,14 @@ function StnPieChart({
|
|
|
14963
15664
|
style: { cursor: "pointer", outline: "none" },
|
|
14964
15665
|
role: "listitem",
|
|
14965
15666
|
children: [
|
|
14966
|
-
/* @__PURE__ */
|
|
15667
|
+
/* @__PURE__ */ jsx103(
|
|
14967
15668
|
"span",
|
|
14968
15669
|
{
|
|
14969
15670
|
className: "stn-chart-gauge-legend__dot",
|
|
14970
15671
|
style: { backgroundColor: seg.color }
|
|
14971
15672
|
}
|
|
14972
15673
|
),
|
|
14973
|
-
/* @__PURE__ */
|
|
15674
|
+
/* @__PURE__ */ jsx103("span", { className: "stn-chart-gauge-legend__label", children: seg.label })
|
|
14974
15675
|
]
|
|
14975
15676
|
},
|
|
14976
15677
|
seg.id ?? lIdx
|
|
@@ -14985,9 +15686,9 @@ var StnGaugeChart = StnPieChart;
|
|
|
14985
15686
|
import {
|
|
14986
15687
|
useId as useId19,
|
|
14987
15688
|
useRef as useRef15,
|
|
14988
|
-
useState as
|
|
15689
|
+
useState as useState30
|
|
14989
15690
|
} from "react";
|
|
14990
|
-
import { jsx as
|
|
15691
|
+
import { jsx as jsx104, jsxs as jsxs78 } from "react/jsx-runtime";
|
|
14991
15692
|
var DEFAULT_LINE_COLORS = STN_CHART_COLORS;
|
|
14992
15693
|
var VIEW_W = 300;
|
|
14993
15694
|
var VIEW_H = 84;
|
|
@@ -15027,7 +15728,7 @@ function StnLineChart({
|
|
|
15027
15728
|
}) {
|
|
15028
15729
|
const chartId = useId19().replace(/:/g, "");
|
|
15029
15730
|
const svgRef = useRef15(null);
|
|
15030
|
-
const [hoverIndex, setHoverIndex] =
|
|
15731
|
+
const [hoverIndex, setHoverIndex] = useState30(null);
|
|
15031
15732
|
const valueFormatter = format ?? ((v) => formatChartValue(v, decimals));
|
|
15032
15733
|
const hasDots = Boolean(showDots ?? showPoints ?? dots ?? false);
|
|
15033
15734
|
const dotRadius = DOT_RADIUS_MAP[size] || 3;
|
|
@@ -15038,7 +15739,7 @@ function StnLineChart({
|
|
|
15038
15739
|
}));
|
|
15039
15740
|
const hasData = seriesList.length > 0 && seriesList.some((s) => Array.isArray(s.data) && s.data.length > 0);
|
|
15040
15741
|
if (loading || !hasData) {
|
|
15041
|
-
return /* @__PURE__ */
|
|
15742
|
+
return /* @__PURE__ */ jsx104(
|
|
15042
15743
|
"div",
|
|
15043
15744
|
{
|
|
15044
15745
|
className: cn("stn-chart-line", `stn-chart-line--${size}`, className),
|
|
@@ -15112,13 +15813,13 @@ function StnLineChart({
|
|
|
15112
15813
|
const lastPoint = points[points.length - 1] ?? 0;
|
|
15113
15814
|
const lastX = sW - 2;
|
|
15114
15815
|
const lastY = sH - 4 - (lastPoint - min) / range * (sH - 8);
|
|
15115
|
-
return /* @__PURE__ */
|
|
15816
|
+
return /* @__PURE__ */ jsx104(
|
|
15116
15817
|
"div",
|
|
15117
15818
|
{
|
|
15118
15819
|
className: cn("stn-chart-sparkline", `stn-chart-line--${size}`, className),
|
|
15119
15820
|
style: { ...containerStyle, position: "relative", overflow: "hidden" },
|
|
15120
15821
|
...rest,
|
|
15121
|
-
children: /* @__PURE__ */
|
|
15822
|
+
children: /* @__PURE__ */ jsxs78(
|
|
15122
15823
|
"svg",
|
|
15123
15824
|
{
|
|
15124
15825
|
width: "100%",
|
|
@@ -15127,12 +15828,12 @@ function StnLineChart({
|
|
|
15127
15828
|
style: { display: "block" },
|
|
15128
15829
|
"aria-hidden": "true",
|
|
15129
15830
|
children: [
|
|
15130
|
-
/* @__PURE__ */
|
|
15131
|
-
/* @__PURE__ */
|
|
15132
|
-
/* @__PURE__ */
|
|
15831
|
+
/* @__PURE__ */ jsx104("defs", { children: /* @__PURE__ */ jsxs78("linearGradient", { id: `spark_grad_${chartId}`, x1: "0", y1: "0", x2: "0", y2: "1", children: [
|
|
15832
|
+
/* @__PURE__ */ jsx104("stop", { offset: "0%", stopColor: strokeColor, stopOpacity: "0.45" }),
|
|
15833
|
+
/* @__PURE__ */ jsx104("stop", { offset: "100%", stopColor: strokeColor, stopOpacity: "0" })
|
|
15133
15834
|
] }) }),
|
|
15134
|
-
/* @__PURE__ */
|
|
15135
|
-
/* @__PURE__ */
|
|
15835
|
+
/* @__PURE__ */ jsx104("polygon", { points: areaPoints, fill: `url(#spark_grad_${chartId})` }),
|
|
15836
|
+
/* @__PURE__ */ jsx104(
|
|
15136
15837
|
"polyline",
|
|
15137
15838
|
{
|
|
15138
15839
|
points: polyPoints,
|
|
@@ -15144,7 +15845,7 @@ function StnLineChart({
|
|
|
15144
15845
|
vectorEffect: "non-scaling-stroke"
|
|
15145
15846
|
}
|
|
15146
15847
|
),
|
|
15147
|
-
/* @__PURE__ */
|
|
15848
|
+
/* @__PURE__ */ jsx104("circle", { cx: lastX, cy: lastY, r: "3", fill: strokeColor })
|
|
15148
15849
|
]
|
|
15149
15850
|
}
|
|
15150
15851
|
)
|
|
@@ -15155,7 +15856,7 @@ function StnLineChart({
|
|
|
15155
15856
|
const hoverPct = hoverSvgX !== null ? hoverSvgX / VIEW_W * 100 : 0;
|
|
15156
15857
|
const isNearRight = hoverPct > 68;
|
|
15157
15858
|
const isNearLeft = hoverPct < 15;
|
|
15158
|
-
return /* @__PURE__ */
|
|
15859
|
+
return /* @__PURE__ */ jsxs78(
|
|
15159
15860
|
"div",
|
|
15160
15861
|
{
|
|
15161
15862
|
className: cn(
|
|
@@ -15170,10 +15871,10 @@ function StnLineChart({
|
|
|
15170
15871
|
style: containerStyle,
|
|
15171
15872
|
...rest,
|
|
15172
15873
|
children: [
|
|
15173
|
-
/* @__PURE__ */
|
|
15174
|
-
showYAxis && /* @__PURE__ */
|
|
15175
|
-
/* @__PURE__ */
|
|
15176
|
-
/* @__PURE__ */
|
|
15874
|
+
/* @__PURE__ */ jsxs78("div", { className: "stn-chart-line__body", children: [
|
|
15875
|
+
showYAxis && /* @__PURE__ */ jsx104("div", { className: "stn-chart-line__axis-y", "aria-hidden": "true", children: (yAxis.labels && yAxis.labels.length > 0 ? yAxis.labels : [max, min + (max - min) * 0.66, min + (max - min) * 0.33, min].map((v) => valueFormatter(v))).map((lbl, idx) => /* @__PURE__ */ jsx104("span", { children: lbl }, idx)) }),
|
|
15876
|
+
/* @__PURE__ */ jsxs78("div", { className: "stn-chart-line__plot-area", style: { position: "relative", width: "100%", flex: "1 1 0%", minHeight: 0 }, children: [
|
|
15877
|
+
/* @__PURE__ */ jsxs78(
|
|
15177
15878
|
"svg",
|
|
15178
15879
|
{
|
|
15179
15880
|
ref: svgRef,
|
|
@@ -15184,9 +15885,9 @@ function StnLineChart({
|
|
|
15184
15885
|
onMouseLeave: handleMouseLeave,
|
|
15185
15886
|
"aria-hidden": "true",
|
|
15186
15887
|
children: [
|
|
15187
|
-
/* @__PURE__ */
|
|
15888
|
+
/* @__PURE__ */ jsx104("defs", { children: variant === "area" && seriesList.map((series, sIdx) => {
|
|
15188
15889
|
const color = series.color || DEFAULT_LINE_COLORS[sIdx % DEFAULT_LINE_COLORS.length];
|
|
15189
|
-
return /* @__PURE__ */
|
|
15890
|
+
return /* @__PURE__ */ jsxs78(
|
|
15190
15891
|
"linearGradient",
|
|
15191
15892
|
{
|
|
15192
15893
|
id: `line_area_grad_${chartId}_${sIdx}`,
|
|
@@ -15195,8 +15896,8 @@ function StnLineChart({
|
|
|
15195
15896
|
x2: "0",
|
|
15196
15897
|
y2: "1",
|
|
15197
15898
|
children: [
|
|
15198
|
-
/* @__PURE__ */
|
|
15199
|
-
/* @__PURE__ */
|
|
15899
|
+
/* @__PURE__ */ jsx104("stop", { offset: "0%", stopColor: color, stopOpacity: "0.35" }),
|
|
15900
|
+
/* @__PURE__ */ jsx104("stop", { offset: "100%", stopColor: color, stopOpacity: "0" })
|
|
15200
15901
|
]
|
|
15201
15902
|
},
|
|
15202
15903
|
`grad-${sIdx}`
|
|
@@ -15204,7 +15905,7 @@ function StnLineChart({
|
|
|
15204
15905
|
}) }),
|
|
15205
15906
|
gridYPositions.map((yPos, idx) => {
|
|
15206
15907
|
const isZero = yPos === Y_BOTTOM || idx === 1;
|
|
15207
|
-
return /* @__PURE__ */
|
|
15908
|
+
return /* @__PURE__ */ jsx104(
|
|
15208
15909
|
"line",
|
|
15209
15910
|
{
|
|
15210
15911
|
x1: xStart,
|
|
@@ -15217,7 +15918,7 @@ function StnLineChart({
|
|
|
15217
15918
|
idx
|
|
15218
15919
|
);
|
|
15219
15920
|
}),
|
|
15220
|
-
variant === "area" && seriesList.map((series, sIdx) => /* @__PURE__ */
|
|
15921
|
+
variant === "area" && seriesList.map((series, sIdx) => /* @__PURE__ */ jsx104(
|
|
15221
15922
|
"path",
|
|
15222
15923
|
{
|
|
15223
15924
|
d: buildAreaPathString(series.data),
|
|
@@ -15227,7 +15928,7 @@ function StnLineChart({
|
|
|
15227
15928
|
)),
|
|
15228
15929
|
seriesList.map((series, sIdx) => {
|
|
15229
15930
|
const color = series.color || DEFAULT_LINE_COLORS[sIdx % DEFAULT_LINE_COLORS.length];
|
|
15230
|
-
return /* @__PURE__ */
|
|
15931
|
+
return /* @__PURE__ */ jsx104(
|
|
15231
15932
|
"path",
|
|
15232
15933
|
{
|
|
15233
15934
|
className: "stn-chart-line__path",
|
|
@@ -15238,7 +15939,7 @@ function StnLineChart({
|
|
|
15238
15939
|
`line-${series.id ?? sIdx}`
|
|
15239
15940
|
);
|
|
15240
15941
|
}),
|
|
15241
|
-
showTooltip && hoverSvgX !== null && hoverIndex !== null && /* @__PURE__ */
|
|
15942
|
+
showTooltip && hoverSvgX !== null && hoverIndex !== null && /* @__PURE__ */ jsx104("g", { className: "stn-chart-line__hover-group", children: /* @__PURE__ */ jsx104(
|
|
15242
15943
|
"line",
|
|
15243
15944
|
{
|
|
15244
15945
|
x1: hoverSvgX,
|
|
@@ -15251,7 +15952,7 @@ function StnLineChart({
|
|
|
15251
15952
|
vectorEffect: "non-scaling-stroke"
|
|
15252
15953
|
}
|
|
15253
15954
|
) }),
|
|
15254
|
-
/* @__PURE__ */
|
|
15955
|
+
/* @__PURE__ */ jsx104(
|
|
15255
15956
|
"rect",
|
|
15256
15957
|
{
|
|
15257
15958
|
x: "0",
|
|
@@ -15265,7 +15966,7 @@ function StnLineChart({
|
|
|
15265
15966
|
]
|
|
15266
15967
|
}
|
|
15267
15968
|
),
|
|
15268
|
-
hasDots && /* @__PURE__ */
|
|
15969
|
+
hasDots && /* @__PURE__ */ jsx104("div", { className: "stn-chart-line__dots", "aria-hidden": "true", style: { position: "absolute", inset: 0, pointerEvents: "none" }, children: seriesList.map((series, sIdx) => {
|
|
15269
15970
|
const color = series.color || DEFAULT_LINE_COLORS[sIdx % DEFAULT_LINE_COLORS.length];
|
|
15270
15971
|
const count = series.data.length;
|
|
15271
15972
|
return series.data.map((val, pIdx) => {
|
|
@@ -15273,7 +15974,7 @@ function StnLineChart({
|
|
|
15273
15974
|
const yPct = (Y_BOTTOM - (val - min) / range * yDist) / VIEW_H * 100;
|
|
15274
15975
|
const isHoveredPoint = hoverIndex === pIdx;
|
|
15275
15976
|
const r = isHoveredPoint ? dotRadius + 1.2 : dotRadius;
|
|
15276
|
-
return /* @__PURE__ */
|
|
15977
|
+
return /* @__PURE__ */ jsx104(
|
|
15277
15978
|
"span",
|
|
15278
15979
|
{
|
|
15279
15980
|
className: cn("stn-chart-line__dot", isHoveredPoint && "is-active"),
|
|
@@ -15295,8 +15996,8 @@ function StnLineChart({
|
|
|
15295
15996
|
});
|
|
15296
15997
|
}) })
|
|
15297
15998
|
] }),
|
|
15298
|
-
showXAxis && xAxisLabels.length > 0 && /* @__PURE__ */
|
|
15299
|
-
showTooltip && hoverIndex !== null && hoverSvgX !== null && /* @__PURE__ */
|
|
15999
|
+
showXAxis && xAxisLabels.length > 0 && /* @__PURE__ */ jsx104("div", { className: "stn-chart-line__axis-x", "aria-hidden": "true", children: xAxisLabels.map((lbl, idx) => /* @__PURE__ */ jsx104("span", { children: lbl }, idx)) }),
|
|
16000
|
+
showTooltip && hoverIndex !== null && hoverSvgX !== null && /* @__PURE__ */ jsxs78(
|
|
15300
16001
|
"div",
|
|
15301
16002
|
{
|
|
15302
16003
|
className: cn(
|
|
@@ -15310,32 +16011,32 @@ function StnLineChart({
|
|
|
15310
16011
|
},
|
|
15311
16012
|
role: "tooltip",
|
|
15312
16013
|
children: [
|
|
15313
|
-
xAxisLabels[hoverIndex] && /* @__PURE__ */
|
|
16014
|
+
xAxisLabels[hoverIndex] && /* @__PURE__ */ jsx104("div", { className: "stn-chart-tooltip__header", children: xAxisLabels[hoverIndex] }),
|
|
15314
16015
|
seriesList.map((series, sIdx) => {
|
|
15315
16016
|
const val = series.data[hoverIndex];
|
|
15316
16017
|
if (val === void 0) return null;
|
|
15317
16018
|
const color = series.color || DEFAULT_LINE_COLORS[sIdx % DEFAULT_LINE_COLORS.length];
|
|
15318
|
-
return /* @__PURE__ */
|
|
15319
|
-
/* @__PURE__ */
|
|
15320
|
-
/* @__PURE__ */
|
|
15321
|
-
/* @__PURE__ */
|
|
16019
|
+
return /* @__PURE__ */ jsxs78("div", { className: "stn-chart-tooltip__row", children: [
|
|
16020
|
+
/* @__PURE__ */ jsxs78("div", { className: "stn-chart-tooltip__group", children: [
|
|
16021
|
+
/* @__PURE__ */ jsx104("span", { className: "stn-chart-tooltip__dot", style: { backgroundColor: color } }),
|
|
16022
|
+
/* @__PURE__ */ jsx104("span", { className: "stn-chart-tooltip__label", children: series.label || `Series ${sIdx + 1}` })
|
|
15322
16023
|
] }),
|
|
15323
|
-
/* @__PURE__ */
|
|
16024
|
+
/* @__PURE__ */ jsx104("span", { className: "stn-chart-tooltip__value", children: valueFormatter(val) })
|
|
15324
16025
|
] }, sIdx);
|
|
15325
16026
|
})
|
|
15326
16027
|
]
|
|
15327
16028
|
}
|
|
15328
16029
|
)
|
|
15329
16030
|
] }),
|
|
15330
|
-
resolvedLegend.length > 0 && /* @__PURE__ */
|
|
15331
|
-
/* @__PURE__ */
|
|
16031
|
+
resolvedLegend.length > 0 && /* @__PURE__ */ jsx104("div", { className: "stn-chart-legend-pill", "aria-label": "\uB77C\uC778 \uCC28\uD2B8 \uBC94\uB840", children: resolvedLegend.map((item, idx) => /* @__PURE__ */ jsxs78("div", { className: "stn-chart-legend-pill__item", children: [
|
|
16032
|
+
/* @__PURE__ */ jsx104(
|
|
15332
16033
|
"span",
|
|
15333
16034
|
{
|
|
15334
16035
|
className: "stn-chart-legend-pill__bar",
|
|
15335
16036
|
style: { backgroundColor: item.color }
|
|
15336
16037
|
}
|
|
15337
16038
|
),
|
|
15338
|
-
/* @__PURE__ */
|
|
16039
|
+
/* @__PURE__ */ jsx104("span", { className: "stn-chart-legend-pill__label", children: item.label })
|
|
15339
16040
|
] }, idx)) })
|
|
15340
16041
|
]
|
|
15341
16042
|
}
|
|
@@ -15345,9 +16046,9 @@ function StnLineChart({
|
|
|
15345
16046
|
// src/components/StnComboChart.tsx
|
|
15346
16047
|
import {
|
|
15347
16048
|
useId as useId20,
|
|
15348
|
-
useState as
|
|
16049
|
+
useState as useState31
|
|
15349
16050
|
} from "react";
|
|
15350
|
-
import { jsx as
|
|
16051
|
+
import { jsx as jsx105, jsxs as jsxs79 } from "react/jsx-runtime";
|
|
15351
16052
|
var BAR_WIDTH_MAP = {
|
|
15352
16053
|
sm: "var(--stn-chart-combo-bar-width-sm)",
|
|
15353
16054
|
md: "var(--stn-chart-combo-bar-width-md)",
|
|
@@ -15386,11 +16087,11 @@ function StnComboChart({
|
|
|
15386
16087
|
...rest
|
|
15387
16088
|
}) {
|
|
15388
16089
|
const chartId = useId20().replace(/:/g, "");
|
|
15389
|
-
const [internalHighlight, setInternalHighlight] =
|
|
15390
|
-
const [hoverIndex, setHoverIndex] =
|
|
16090
|
+
const [internalHighlight, setInternalHighlight] = useState31(null);
|
|
16091
|
+
const [hoverIndex, setHoverIndex] = useState31(null);
|
|
15391
16092
|
const hasData = Boolean(data && data.length > 0);
|
|
15392
16093
|
if (loading || !hasData) {
|
|
15393
|
-
return /* @__PURE__ */
|
|
16094
|
+
return /* @__PURE__ */ jsx105(
|
|
15394
16095
|
"div",
|
|
15395
16096
|
{
|
|
15396
16097
|
className: cn("stn-chart-combo", `stn-chart-combo--${size}`, className),
|
|
@@ -15530,7 +16231,7 @@ function StnComboChart({
|
|
|
15530
16231
|
["--stn-chart-combo-bar-width"]: resolvedBarWidth
|
|
15531
16232
|
};
|
|
15532
16233
|
const hoverGuideX = hoverIndex !== null ? getLineX(hoverIndex) : null;
|
|
15533
|
-
return /* @__PURE__ */
|
|
16234
|
+
return /* @__PURE__ */ jsxs79(
|
|
15534
16235
|
"div",
|
|
15535
16236
|
{
|
|
15536
16237
|
className: cn(
|
|
@@ -15545,10 +16246,10 @@ function StnComboChart({
|
|
|
15545
16246
|
style: containerStyle,
|
|
15546
16247
|
...rest,
|
|
15547
16248
|
children: [
|
|
15548
|
-
/* @__PURE__ */
|
|
15549
|
-
showLeftYAxis && /* @__PURE__ */
|
|
15550
|
-
showRightYAxis && hasRightAxis && /* @__PURE__ */
|
|
15551
|
-
/* @__PURE__ */
|
|
16249
|
+
/* @__PURE__ */ jsxs79("div", { className: "stn-chart-combo__body", children: [
|
|
16250
|
+
showLeftYAxis && /* @__PURE__ */ jsx105("div", { className: "stn-chart-combo__axis-y-left", "aria-hidden": "true", children: leftGridRows.map((row, rIdx) => /* @__PURE__ */ jsx105("span", { children: row.label }, rIdx)) }),
|
|
16251
|
+
showRightYAxis && hasRightAxis && /* @__PURE__ */ jsx105("div", { className: "stn-chart-combo__axis-y-right", "aria-hidden": "true", children: rightGridRows.map((lbl, rIdx) => /* @__PURE__ */ jsx105("span", { children: lbl }, rIdx)) }),
|
|
16252
|
+
/* @__PURE__ */ jsx105("div", { className: "stn-chart-combo__grid", "aria-hidden": "true", children: leftGridRows.map((row, rIdx) => /* @__PURE__ */ jsx105("div", { className: "stn-chart-combo__grid-row", children: /* @__PURE__ */ jsx105(
|
|
15552
16253
|
"div",
|
|
15553
16254
|
{
|
|
15554
16255
|
className: cn(
|
|
@@ -15557,10 +16258,10 @@ function StnComboChart({
|
|
|
15557
16258
|
)
|
|
15558
16259
|
}
|
|
15559
16260
|
) }, rIdx)) }),
|
|
15560
|
-
/* @__PURE__ */
|
|
15561
|
-
/* @__PURE__ */
|
|
16261
|
+
/* @__PURE__ */ jsxs79("div", { className: "stn-chart-combo__content", children: [
|
|
16262
|
+
/* @__PURE__ */ jsx105("div", { className: "stn-chart-combo__columns", role: "list", children: parsedData.map((item, idx) => {
|
|
15562
16263
|
const active = isHighlighted(idx, item);
|
|
15563
|
-
return /* @__PURE__ */
|
|
16264
|
+
return /* @__PURE__ */ jsxs79(
|
|
15564
16265
|
"button",
|
|
15565
16266
|
{
|
|
15566
16267
|
type: "button",
|
|
@@ -15571,10 +16272,10 @@ function StnComboChart({
|
|
|
15571
16272
|
"aria-label": item.label,
|
|
15572
16273
|
role: "listitem",
|
|
15573
16274
|
children: [
|
|
15574
|
-
/* @__PURE__ */
|
|
15575
|
-
/* @__PURE__ */
|
|
16275
|
+
/* @__PURE__ */ jsx105("div", { className: "stn-chart-combo__highlight" }),
|
|
16276
|
+
/* @__PURE__ */ jsx105("div", { className: "stn-chart-combo__bars-wrap", children: item.bars.map((b, bIdx) => {
|
|
15576
16277
|
const pct = Math.max(0, Math.min(100, (b.value - leftMin) / leftRange * 100));
|
|
15577
|
-
return /* @__PURE__ */
|
|
16278
|
+
return /* @__PURE__ */ jsx105(
|
|
15578
16279
|
"div",
|
|
15579
16280
|
{
|
|
15580
16281
|
className: "stn-chart-combo__bar",
|
|
@@ -15591,7 +16292,7 @@ function StnComboChart({
|
|
|
15591
16292
|
item.id ?? idx
|
|
15592
16293
|
);
|
|
15593
16294
|
}) }),
|
|
15594
|
-
/* @__PURE__ */
|
|
16295
|
+
/* @__PURE__ */ jsxs79(
|
|
15595
16296
|
"svg",
|
|
15596
16297
|
{
|
|
15597
16298
|
className: "stn-chart-combo__svg-overlay",
|
|
@@ -15599,10 +16300,10 @@ function StnComboChart({
|
|
|
15599
16300
|
preserveAspectRatio: "none",
|
|
15600
16301
|
"aria-hidden": "true",
|
|
15601
16302
|
children: [
|
|
15602
|
-
/* @__PURE__ */
|
|
16303
|
+
/* @__PURE__ */ jsx105("defs", { children: safeLines.map((series, sIdx) => {
|
|
15603
16304
|
if (!series.area) return null;
|
|
15604
16305
|
const color = series.color || DEFAULT_LINE_COLORS[(sIdx + 1) % DEFAULT_LINE_COLORS.length];
|
|
15605
|
-
return /* @__PURE__ */
|
|
16306
|
+
return /* @__PURE__ */ jsxs79(
|
|
15606
16307
|
"linearGradient",
|
|
15607
16308
|
{
|
|
15608
16309
|
id: `combo_area_grad_${chartId}_${sIdx}`,
|
|
@@ -15611,8 +16312,8 @@ function StnComboChart({
|
|
|
15611
16312
|
x2: "0",
|
|
15612
16313
|
y2: "1",
|
|
15613
16314
|
children: [
|
|
15614
|
-
/* @__PURE__ */
|
|
15615
|
-
/* @__PURE__ */
|
|
16315
|
+
/* @__PURE__ */ jsx105("stop", { offset: "0%", stopColor: color, stopOpacity: "0.32" }),
|
|
16316
|
+
/* @__PURE__ */ jsx105("stop", { offset: "100%", stopColor: color, stopOpacity: "0.0" })
|
|
15616
16317
|
]
|
|
15617
16318
|
},
|
|
15618
16319
|
`grad-${sIdx}`
|
|
@@ -15621,7 +16322,7 @@ function StnComboChart({
|
|
|
15621
16322
|
safeLines.map((series, sIdx) => {
|
|
15622
16323
|
if (!series.area) return null;
|
|
15623
16324
|
const isRight = series.yAxis === "right";
|
|
15624
|
-
return /* @__PURE__ */
|
|
16325
|
+
return /* @__PURE__ */ jsx105(
|
|
15625
16326
|
"path",
|
|
15626
16327
|
{
|
|
15627
16328
|
d: buildAreaPathString(series.data, isRight),
|
|
@@ -15633,7 +16334,7 @@ function StnComboChart({
|
|
|
15633
16334
|
safeLines.map((series, sIdx) => {
|
|
15634
16335
|
const color = series.color || DEFAULT_LINE_COLORS[(sIdx + 1) % DEFAULT_LINE_COLORS.length];
|
|
15635
16336
|
const isRight = series.yAxis === "right";
|
|
15636
|
-
return /* @__PURE__ */
|
|
16337
|
+
return /* @__PURE__ */ jsx105(
|
|
15637
16338
|
"path",
|
|
15638
16339
|
{
|
|
15639
16340
|
className: "stn-chart-combo__path",
|
|
@@ -15644,7 +16345,7 @@ function StnComboChart({
|
|
|
15644
16345
|
`line-${series.id ?? sIdx}`
|
|
15645
16346
|
);
|
|
15646
16347
|
}),
|
|
15647
|
-
showTooltip && hoverGuideX !== null && /* @__PURE__ */
|
|
16348
|
+
showTooltip && hoverGuideX !== null && /* @__PURE__ */ jsx105("g", { className: "stn-chart-line__hover-group", children: /* @__PURE__ */ jsx105(
|
|
15648
16349
|
"line",
|
|
15649
16350
|
{
|
|
15650
16351
|
x1: hoverGuideX,
|
|
@@ -15660,7 +16361,7 @@ function StnComboChart({
|
|
|
15660
16361
|
]
|
|
15661
16362
|
}
|
|
15662
16363
|
),
|
|
15663
|
-
/* @__PURE__ */
|
|
16364
|
+
/* @__PURE__ */ jsx105("div", { className: "stn-chart-combo__dots-layer", "aria-hidden": "true", style: { position: "absolute", inset: 0, pointerEvents: "none", zIndex: 3 }, children: safeLines.map((series, sIdx) => {
|
|
15664
16365
|
const shouldShowDots = series.showDots ?? showDots;
|
|
15665
16366
|
if (!shouldShowDots) return null;
|
|
15666
16367
|
const color = series.color || DEFAULT_LINE_COLORS[(sIdx + 1) % DEFAULT_LINE_COLORS.length];
|
|
@@ -15670,7 +16371,7 @@ function StnComboChart({
|
|
|
15670
16371
|
const yPct = getLineY(val, isRight) / VIEW_H2 * 100;
|
|
15671
16372
|
const isHovered = hoverIndex === pIdx;
|
|
15672
16373
|
const r = isHovered ? dotRadius + 1.2 : dotRadius;
|
|
15673
|
-
return /* @__PURE__ */
|
|
16374
|
+
return /* @__PURE__ */ jsx105(
|
|
15674
16375
|
"span",
|
|
15675
16376
|
{
|
|
15676
16377
|
className: cn("stn-chart-line__dot", isHovered && "is-active"),
|
|
@@ -15695,7 +16396,7 @@ function StnComboChart({
|
|
|
15695
16396
|
const colPct = (hoverIndex + 0.5) / colCount * 100;
|
|
15696
16397
|
const isNearRight = colPct > 68;
|
|
15697
16398
|
const isNearLeft = colPct < 15;
|
|
15698
|
-
return /* @__PURE__ */
|
|
16399
|
+
return /* @__PURE__ */ jsxs79(
|
|
15699
16400
|
"div",
|
|
15700
16401
|
{
|
|
15701
16402
|
className: cn(
|
|
@@ -15709,10 +16410,10 @@ function StnComboChart({
|
|
|
15709
16410
|
},
|
|
15710
16411
|
role: "tooltip",
|
|
15711
16412
|
children: [
|
|
15712
|
-
/* @__PURE__ */
|
|
15713
|
-
parsedData[hoverIndex].bars.map((b, bIdx) => /* @__PURE__ */
|
|
15714
|
-
/* @__PURE__ */
|
|
15715
|
-
/* @__PURE__ */
|
|
16413
|
+
/* @__PURE__ */ jsx105("div", { className: "stn-chart-tooltip__header", children: parsedData[hoverIndex].label }),
|
|
16414
|
+
parsedData[hoverIndex].bars.map((b, bIdx) => /* @__PURE__ */ jsxs79("div", { className: "stn-chart-tooltip__row", children: [
|
|
16415
|
+
/* @__PURE__ */ jsxs79("div", { className: "stn-chart-tooltip__group", children: [
|
|
16416
|
+
/* @__PURE__ */ jsx105(
|
|
15716
16417
|
"span",
|
|
15717
16418
|
{
|
|
15718
16419
|
className: "stn-chart-tooltip__bar-mark",
|
|
@@ -15721,9 +16422,9 @@ function StnComboChart({
|
|
|
15721
16422
|
}
|
|
15722
16423
|
}
|
|
15723
16424
|
),
|
|
15724
|
-
/* @__PURE__ */
|
|
16425
|
+
/* @__PURE__ */ jsx105("span", { className: "stn-chart-tooltip__label", children: b.label })
|
|
15725
16426
|
] }),
|
|
15726
|
-
/* @__PURE__ */
|
|
16427
|
+
/* @__PURE__ */ jsx105("span", { className: "stn-chart-tooltip__value", children: leftFormatter(b.value) })
|
|
15727
16428
|
] }, `tip-bar-${bIdx}`)),
|
|
15728
16429
|
safeLines.map((series, sIdx) => {
|
|
15729
16430
|
const val = series.data[hoverIndex];
|
|
@@ -15731,12 +16432,12 @@ function StnComboChart({
|
|
|
15731
16432
|
const color = series.color || DEFAULT_LINE_COLORS[(sIdx + 1) % DEFAULT_LINE_COLORS.length];
|
|
15732
16433
|
const isRight = series.yAxis === "right";
|
|
15733
16434
|
const formatter = isRight ? rightFormatter : leftFormatter;
|
|
15734
|
-
return /* @__PURE__ */
|
|
15735
|
-
/* @__PURE__ */
|
|
15736
|
-
/* @__PURE__ */
|
|
15737
|
-
/* @__PURE__ */
|
|
16435
|
+
return /* @__PURE__ */ jsxs79("div", { className: "stn-chart-tooltip__row", children: [
|
|
16436
|
+
/* @__PURE__ */ jsxs79("div", { className: "stn-chart-tooltip__group", children: [
|
|
16437
|
+
/* @__PURE__ */ jsx105("span", { className: "stn-chart-tooltip__dot", style: { backgroundColor: color } }),
|
|
16438
|
+
/* @__PURE__ */ jsx105("span", { className: "stn-chart-tooltip__label", children: series.label || `\uC120 ${sIdx + 1}` })
|
|
15738
16439
|
] }),
|
|
15739
|
-
/* @__PURE__ */
|
|
16440
|
+
/* @__PURE__ */ jsx105("span", { className: "stn-chart-tooltip__value", children: formatter(val) })
|
|
15740
16441
|
] }, `tip-line-${sIdx}`);
|
|
15741
16442
|
})
|
|
15742
16443
|
]
|
|
@@ -15744,15 +16445,15 @@ function StnComboChart({
|
|
|
15744
16445
|
);
|
|
15745
16446
|
})()
|
|
15746
16447
|
] }),
|
|
15747
|
-
showXAxis && /* @__PURE__ */
|
|
16448
|
+
showXAxis && /* @__PURE__ */ jsx105("div", { className: "stn-chart-combo__axis-x", "aria-hidden": "true", children: parsedData.map((item, idx) => /* @__PURE__ */ jsx105("span", { className: "stn-chart-combo__axis-x-item", title: item.label, children: item.label }, item.id ?? idx)) })
|
|
15748
16449
|
] }),
|
|
15749
|
-
resolvedLegend.length > 0 && /* @__PURE__ */
|
|
15750
|
-
item.type === "line" ? /* @__PURE__ */
|
|
16450
|
+
resolvedLegend.length > 0 && /* @__PURE__ */ jsx105("div", { className: "stn-chart-legend-pill", "aria-label": "\uBCF5\uD569 \uCC28\uD2B8 \uBC94\uB840", children: resolvedLegend.map((item, idx) => /* @__PURE__ */ jsxs79("div", { className: "stn-chart-legend-pill__item", children: [
|
|
16451
|
+
item.type === "line" ? /* @__PURE__ */ jsx105(
|
|
15751
16452
|
"span",
|
|
15752
16453
|
{
|
|
15753
16454
|
className: "stn-chart-legend-pill__line-marker",
|
|
15754
16455
|
style: { backgroundColor: item.color },
|
|
15755
|
-
children: /* @__PURE__ */
|
|
16456
|
+
children: /* @__PURE__ */ jsx105(
|
|
15756
16457
|
"span",
|
|
15757
16458
|
{
|
|
15758
16459
|
className: "stn-chart-legend-pill__line-dot",
|
|
@@ -15760,14 +16461,14 @@ function StnComboChart({
|
|
|
15760
16461
|
}
|
|
15761
16462
|
)
|
|
15762
16463
|
}
|
|
15763
|
-
) : /* @__PURE__ */
|
|
16464
|
+
) : /* @__PURE__ */ jsx105(
|
|
15764
16465
|
"span",
|
|
15765
16466
|
{
|
|
15766
16467
|
className: "stn-chart-legend-pill__bar",
|
|
15767
16468
|
style: { backgroundColor: item.color }
|
|
15768
16469
|
}
|
|
15769
16470
|
),
|
|
15770
|
-
/* @__PURE__ */
|
|
16471
|
+
/* @__PURE__ */ jsx105("span", { className: "stn-chart-legend-pill__label", children: item.label })
|
|
15771
16472
|
] }, idx)) })
|
|
15772
16473
|
]
|
|
15773
16474
|
}
|
|
@@ -16101,9 +16802,13 @@ export {
|
|
|
16101
16802
|
StnTopologyGraphNodeComponent,
|
|
16102
16803
|
StnTopologyGraphToolbar,
|
|
16103
16804
|
StnTopologyGraphViewport,
|
|
16805
|
+
StnTopologyGraphZoomLevel,
|
|
16806
|
+
StnTopologyLinkDetailModal,
|
|
16807
|
+
StnTopologyLinkDetailPopover,
|
|
16104
16808
|
StnTopologyLinkGlyph,
|
|
16105
16809
|
StnTopologyNodeCard,
|
|
16106
16810
|
StnTopologyNodeContextMenu,
|
|
16811
|
+
StnTopologyNodeDetailPopover,
|
|
16107
16812
|
StnTopologyNodeGlyph,
|
|
16108
16813
|
StnTopologyNodeItem,
|
|
16109
16814
|
StnTopologyNodeMark,
|
|
@@ -16131,7 +16836,10 @@ export {
|
|
|
16131
16836
|
StnWidgetStatusItem,
|
|
16132
16837
|
StnWidgetStatusList,
|
|
16133
16838
|
StnWidgetTitle,
|
|
16839
|
+
TOPOLOGY_GRAPH_NODE_SIZE,
|
|
16840
|
+
TOPOLOGY_NODE_SIZE_MAP,
|
|
16134
16841
|
TOPOLOGY_OPACITY_MAP,
|
|
16842
|
+
TOPOLOGY_RING_NODE_SIZE,
|
|
16135
16843
|
TOPOLOGY_STROKE_WIDTH_MAP,
|
|
16136
16844
|
applyLnbSideToModifiers,
|
|
16137
16845
|
buildPaginationItems,
|