@superdangerous/app-framework 4.16.15 → 4.16.17
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/cli/dev-server.js +49 -54
- package/dist/cli/dev-server.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/dev-server.ts +51 -53
- package/ui/data-table/components/MultiSelectFilter.tsx +153 -0
- package/ui/data-table/components/TableFilters.tsx +8 -2
- package/ui/data-table/components/index.ts +3 -0
- package/ui/data-table/index.ts +3 -0
- package/ui/dist/index.d.mts +35 -1
- package/ui/dist/index.d.ts +35 -1
- package/ui/dist/index.js +39 -39
- package/ui/dist/index.js.map +1 -1
- package/ui/dist/index.mjs +39 -39
- package/ui/dist/index.mjs.map +1 -1
package/dist/cli/dev-server.js
CHANGED
|
@@ -77,8 +77,10 @@ class DevServerOrchestrator {
|
|
|
77
77
|
this.hasShownBanner = true;
|
|
78
78
|
// Show any buffered important messages
|
|
79
79
|
if (this.outputBuffer.length > 0) {
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
console.log("\n" + chalk.gray("Recent activity:"));
|
|
81
|
+
// Write directly to avoid adding duplicate timestamps
|
|
82
|
+
// (backend output already has timestamps from the backend logger)
|
|
83
|
+
this.outputBuffer.forEach((msg) => console.log(msg));
|
|
82
84
|
this.outputBuffer = [];
|
|
83
85
|
}
|
|
84
86
|
}
|
|
@@ -95,7 +97,6 @@ class DevServerOrchestrator {
|
|
|
95
97
|
this.backendProcess = spawn(cmd, args, {
|
|
96
98
|
stdio: ["inherit", "pipe", "pipe"],
|
|
97
99
|
shell: true,
|
|
98
|
-
detached: true, // Create a new process group
|
|
99
100
|
env: {
|
|
100
101
|
...process.env,
|
|
101
102
|
LOG_LEVEL: "warn", // Only show warnings and errors
|
|
@@ -127,21 +128,20 @@ class DevServerOrchestrator {
|
|
|
127
128
|
if (output.includes("EADDRINUSE") || output.includes("already in use")) {
|
|
128
129
|
this.showPortConflictError(this.config.backendPort, "backend");
|
|
129
130
|
}
|
|
130
|
-
//
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
});
|
|
131
|
+
// Pass through backend stdout, but filter out the backend's startup banner
|
|
132
|
+
// (the dev-server shows its own banner, so we don't want duplicates)
|
|
133
|
+
// Banner lines typically contain box-drawing characters: ╭ ╰ │ ─
|
|
134
|
+
const isBannerLine = /[╭╰│─╮╯]/.test(output) ||
|
|
135
|
+
output.includes('Press Ctrl+C') ||
|
|
136
|
+
/^\s*(v\d+\.\d+\.\d+|Environment:|Framework:)\s*$/.test(output.trim());
|
|
137
|
+
if (output.trim() && !output.includes("ExperimentalWarning") && !isBannerLine) {
|
|
138
|
+
if (this.hasShownBanner) {
|
|
139
|
+
process.stdout.write(output);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
// Buffer output until banner is shown
|
|
143
|
+
this.outputBuffer.push(output.trim());
|
|
144
|
+
}
|
|
145
145
|
}
|
|
146
146
|
});
|
|
147
147
|
this.backendProcess.stderr?.on("data", (data) => {
|
|
@@ -151,8 +151,8 @@ class DevServerOrchestrator {
|
|
|
151
151
|
output.includes("address already in use")) {
|
|
152
152
|
this.showPortConflictError(this.config.backendPort, "backend");
|
|
153
153
|
}
|
|
154
|
-
//
|
|
155
|
-
// The backend logger already handles coloring
|
|
154
|
+
// Pass through backend stderr as-is to preserve formatting
|
|
155
|
+
// The backend logger already handles timestamps and coloring
|
|
156
156
|
if (output.trim() && !output.includes("ExperimentalWarning")) {
|
|
157
157
|
process.stderr.write(output);
|
|
158
158
|
}
|
|
@@ -242,7 +242,6 @@ class DevServerOrchestrator {
|
|
|
242
242
|
this.frontendProcess = spawn(cmd, args, {
|
|
243
243
|
stdio: ["inherit", "pipe", "pipe"],
|
|
244
244
|
shell: true,
|
|
245
|
-
detached: true,
|
|
246
245
|
cwd: path.join(process.cwd(), dir), // Run in the subdirectory
|
|
247
246
|
env: {
|
|
248
247
|
...process.env,
|
|
@@ -259,7 +258,6 @@ class DevServerOrchestrator {
|
|
|
259
258
|
this.frontendProcess = spawn(cmd, args, {
|
|
260
259
|
stdio: ["inherit", "pipe", "pipe"],
|
|
261
260
|
shell: true,
|
|
262
|
-
detached: true,
|
|
263
261
|
cwd: process.cwd(),
|
|
264
262
|
env: {
|
|
265
263
|
...process.env,
|
|
@@ -285,7 +283,6 @@ class DevServerOrchestrator {
|
|
|
285
283
|
this.frontendProcess = spawn(cmd, args, {
|
|
286
284
|
stdio: ["inherit", "pipe", "pipe"],
|
|
287
285
|
shell: true,
|
|
288
|
-
detached: true, // Create a new process group
|
|
289
286
|
cwd: process.cwd(), // Explicitly set working directory
|
|
290
287
|
env: {
|
|
291
288
|
...process.env,
|
|
@@ -464,40 +461,34 @@ class DevServerOrchestrator {
|
|
|
464
461
|
}
|
|
465
462
|
}, 5000);
|
|
466
463
|
}
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
try {
|
|
477
|
-
this.backendProcess.kill("SIGTERM");
|
|
478
|
-
}
|
|
479
|
-
catch (_err) {
|
|
480
|
-
// Process might already be dead
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
this.backendProcess = null;
|
|
464
|
+
killProcess(proc) {
|
|
465
|
+
if (!proc || !proc.pid)
|
|
466
|
+
return;
|
|
467
|
+
const pid = proc.pid;
|
|
468
|
+
try {
|
|
469
|
+
proc.kill("SIGTERM");
|
|
470
|
+
}
|
|
471
|
+
catch (_e) {
|
|
472
|
+
// Process might already be dead
|
|
484
473
|
}
|
|
485
|
-
if
|
|
474
|
+
// SIGKILL fallback after 500ms if the process is still alive
|
|
475
|
+
setTimeout(() => {
|
|
486
476
|
try {
|
|
487
|
-
//
|
|
488
|
-
process.kill(
|
|
477
|
+
// Check if process is still running (signal 0 = existence check)
|
|
478
|
+
process.kill(pid, 0);
|
|
479
|
+
// Still alive — force kill
|
|
480
|
+
process.kill(pid, "SIGKILL");
|
|
489
481
|
}
|
|
490
482
|
catch (_e) {
|
|
491
|
-
//
|
|
492
|
-
try {
|
|
493
|
-
this.frontendProcess.kill("SIGTERM");
|
|
494
|
-
}
|
|
495
|
-
catch (_err) {
|
|
496
|
-
// Process might already be dead
|
|
497
|
-
}
|
|
483
|
+
// Already dead — nothing to do
|
|
498
484
|
}
|
|
499
|
-
|
|
500
|
-
|
|
485
|
+
}, 500);
|
|
486
|
+
}
|
|
487
|
+
cleanup() {
|
|
488
|
+
this.killProcess(this.backendProcess);
|
|
489
|
+
this.backendProcess = null;
|
|
490
|
+
this.killProcess(this.frontendProcess);
|
|
491
|
+
this.frontendProcess = null;
|
|
501
492
|
}
|
|
502
493
|
async checkPort(port) {
|
|
503
494
|
return new Promise((resolve) => {
|
|
@@ -626,11 +617,15 @@ class DevServerOrchestrator {
|
|
|
626
617
|
logger.info(chalk.yellow("\n\nShutting down..."));
|
|
627
618
|
this.cleanup();
|
|
628
619
|
// Force exit after a delay if processes don't terminate
|
|
629
|
-
setTimeout(() => process.exit(0),
|
|
620
|
+
setTimeout(() => process.exit(0), 1500);
|
|
630
621
|
});
|
|
631
622
|
process.on("SIGTERM", () => {
|
|
632
623
|
this.cleanup();
|
|
633
|
-
process.exit(0);
|
|
624
|
+
setTimeout(() => process.exit(0), 1500);
|
|
625
|
+
});
|
|
626
|
+
// Safety net: ensure child processes are cleaned up on any exit
|
|
627
|
+
process.on("exit", () => {
|
|
628
|
+
this.cleanup();
|
|
634
629
|
});
|
|
635
630
|
}
|
|
636
631
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../../src/cli/dev-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../../src/cli/dev-server.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;AAc1C,MAAM,qBAAqB;IACjB,MAAM,CAAkB;IACxB,cAAc,GAAwB,IAAI,CAAC;IAC3C,eAAe,GAAwB,IAAI,CAAC;IAC5C,SAAS,CAAS;IAClB,cAAc,GAAmB,IAAI,CAAC;IACtC,eAAe,GAAG,KAAK,CAAC;IACxB,uBAAuB,GAAG,KAAK,CAAC;IAChC,wBAAwB,GAAG,KAAK,CAAC;IACjC,cAAc,GAAG,KAAK,CAAC;IACvB,UAAU,GAAG,CAAC,CAAC;IACf,YAAY,GAAa,EAAE,CAAC;IAC5B,aAAa,GAAkB,IAAI,CAAC;IAE5C;QACE,gCAAgC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QAExE,0CAA0C;QAC1C,MAAM,qBAAqB,GAAG,EAAE,CAAC,UAAU,CAAC,qBAAqB,CAAC;YAChE,CAAC,CAAC,+BAA+B;YACjC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;gBAC7B,CAAC,CAAC,wBAAwB;gBAC1B,CAAC,CAAC,yBAAyB,CAAC;QAEhC,MAAM,sBAAsB,GAAG,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC;YAC9D,CAAC,CAAC,uBAAuB;YACzB,CAAC,CAAC,MAAM,CAAC;QAEX,yDAAyD;QACzD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI;YACzC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAC5B,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,IAAI,IAAI,CAAC;QAE/C,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,WAAW,CAAC,IAAI,IAAI,oBAAoB;YACjD,UAAU,EAAE,WAAW,CAAC,OAAO,IAAI,OAAO;YAC1C,WAAW,EAAE,WAAW,CAAC,IAAI;YAC7B,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,WAAW,EAAE,kBAAkB;YAC/B,YAAY,EAAE,WAAW,CAAC,SAAS,EAAE,YAAY,IAAI,IAAI;YACzD,aAAa,EAAE,WAAW,CAAC,SAAS,EAAE,aAAa,IAAI,kBAAkB;YACzE,cAAc,EACZ,WAAW,CAAC,SAAS,EAAE,cAAc,IAAI,qBAAqB;YAChE,eAAe,EACb,WAAW,CAAC,SAAS,EAAE,eAAe,IAAI,sBAAsB;SACnE,CAAC;QAEF,8CAA8C;QAC9C,OAAO,CAAC,KAAK,GAAG,cAAc,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAE/E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC;IAEO,iBAAiB;QACvB,0CAA0C;QAC1C,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,cAAc;YACtE,OAAO;QAET,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,yCAAyC;QACzC,oBAAoB,CAAC;YACnB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;YACxC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa;YAClD,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,uCAAuC;QACvC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACnD,sDAAsD;YACtD,kEAAkE;YAClE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,OAAe;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO;YACL,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACb,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SACrB,CAAC;IACJ,CAAC;IAEO,YAAY;QAClB,MAAM,CAAC,IAAI,CACT,KAAK,CAAC,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,CAC1E,CAAC;QAEF,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,cAAe,CAAC,CAAC;QAErE,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;YACrC,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;YAClC,KAAK,EAAE,IAAI;YACX,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,SAAS,EAAE,MAAM,EAAE,gCAAgC;gBACnD,QAAQ,EAAE,aAAa;gBACvB,WAAW,EAAE,GAAG;gBAChB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE;gBACxC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC7B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE;aAC7C;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE/B,8CAA8C;YAC9C,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAClC,qCAAqC;gBACrC,IACE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAC3B,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC;oBACpC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;oBACjC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;oBAC/B,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBAC7C,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EACpB,CAAC;oBACD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;oBACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;oBAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACzB,OAAO;gBACT,CAAC;YACH,CAAC;YAED,kDAAkD;YAClD,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACvE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACjE,CAAC;YAED,2EAA2E;YAC3E,qEAAqE;YACrE,iEAAiE;YACjE,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;gBACvB,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC/B,kDAAkD,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAE5F,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC9E,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,sCAAsC;oBACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE/B,0BAA0B;YAC1B,IACE,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAC7B,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EACzC,CAAC;gBACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACjE,CAAC;YAED,2DAA2D;YAC3D,6DAA6D;YAC7D,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,2EAA2E;QAC3E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YACjE,IAAI,CAAC,IAAI,CAAC,uBAAuB,IAAI,SAAS,EAAE,CAAC;gBAC/C,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;gBACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACxC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAChC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,kEAAkE;QAClE,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;oBAClC,MAAM,CAAC,IAAI,CACT,KAAK,CAAC,MAAM,CAAC,kDAAkD,CAAC,CACjE,CAAC;oBACF,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;oBACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;oBAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,KAAK,CACV,KAAK,CAAC,GAAG,CACP,4DAA4D,CAC7D,CACF,CAAC;oBACF,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,MAAM,CAAC,IAAI,CACT,KAAK,CAAC,IAAI,CACR,4BAA4B,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAChE,CACF,CAAC;QAEF,2DAA2D;QAC3D,8EAA8E;QAC9E,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACrE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,IAAI,CAAC,aAAa,GAAG,QAAQ,IAAI,CAAC,MAAM,CAAC,YAAY,oBAAoB,CAAC;YAC1E,gEAAgE;YAChE,gEAAgE;YAChE,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACN,iDAAiD;oBACjD,OAAO,CAAC,KAAK,EAAE,CAAC;oBAChB,MAAM,CAAC,KAAK,CACV,KAAK,CACH,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC;wBAC5C,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;wBACxC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC;wBAClC,KAAK,CAAC,IAAI,CACR,wCAAwC,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CACrE;wBACD,KAAK,CAAC,IAAI,CACR,6BAA6B,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,IAAI,CACpF;wBACD,KAAK,CAAC,IAAI,CACR,oBAAoB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CACpD;wBACD,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,EAChE;wBACE,OAAO,EAAE,CAAC;wBACV,MAAM,EAAE,CAAC;wBACT,WAAW,EAAE,OAAO;wBACpB,WAAW,EAAE,KAAK;qBACnB,CACF,CACF,CAAC;oBACF,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,OAAO;QACT,CAAC;QAED,4CAA4C;QAC5C,IAAI,GAAW,CAAC;QAChB,IAAI,IAAc,CAAC;QAEnB,IAAI,IAAI,CAAC,MAAM,CAAC,eAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,+CAA+C;YAC/C,oCAAoC;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,eAAgB,CAAC,KAAK,CAChD,4BAA4B,CAC7B,CAAC;YACF,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC;gBACnC,6CAA6C;gBAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC5C,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;gBACjB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBACnB,gDAAgD;gBAChD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;oBACtC,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;oBAClC,KAAK,EAAE,IAAI;oBAEX,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,0BAA0B;oBAC9D,GAAG,EAAE;wBACH,GAAG,OAAO,CAAC,GAAG;wBACd,QAAQ,EAAE,aAAa;wBACvB,WAAW,EAAE,GAAG;qBACjB;iBACF,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,yCAAyC;gBACzC,GAAG,GAAG,IAAI,CAAC;gBACX,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,eAAgB,CAAC,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;oBACtC,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;oBAClC,KAAK,EAAE,IAAI;oBAEX,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;oBAClB,GAAG,EAAE;wBACH,GAAG,OAAO,CAAC,GAAG;wBACd,QAAQ,EAAE,aAAa;wBACvB,WAAW,EAAE,GAAG;qBACjB;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK,MAAM,EAAE,CAAC;YAClD,sBAAsB;YACtB,GAAG,GAAG,KAAK,CAAC;YACZ,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,uBAAuB;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,eAAgB,CAAC,CAAC;YAC/D,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;YACjB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QAED,0DAA0D;QAC1D,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;gBACtC,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;gBAClC,KAAK,EAAE,IAAI;gBACX,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,mCAAmC;gBACvD,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,QAAQ,EAAE,aAAa;oBACvB,WAAW,EAAE,GAAG;iBACjB;aACF,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE/B,iCAAiC;YACjC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YAChE,CAAC;YAED,gCAAgC;YAChC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBACnC,IACE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAC3B,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBACzB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;oBACpB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAC9C,CAAC;oBACD,mCAAmC;oBACnC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;oBAClD,IAAI,SAAS,EAAE,CAAC;wBACd,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,CAAC;oBACD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;oBACrC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;oBAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACzB,OAAO;gBACT,CAAC;YACH,CAAC;YAED,0BAA0B;YAC1B,IACE,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAC7B,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBACjC,MAAM,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EAChD,CAAC;gBACD,mCAAmC;gBACnC,IAAI,CAAC,aAAa,GAAG,QAAQ,IAAI,CAAC,MAAM,CAAC,YAAY,oBAAoB,CAAC;gBAC1E,MAAM,CAAC,KAAK,CACV,KAAK,CAAC,GAAG,CACP,cAAc,IAAI,CAAC,MAAM,CAAC,YAAY,qBAAqB,CAC5D,CACF,CAAC;gBACF,MAAM,CAAC,KAAK,CACV,KAAK,CAAC,MAAM,CACV,0DAA0D,CAC3D,CACF,CAAC;gBACF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,cAAc;YACd,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;oBAC7B,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACvC,kDAAkD;wBAClD,4CAA4C;wBAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;wBAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;wBACjD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;4BACxB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACpB,CAAC;6BAAM,CAAC;4BACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAC9B,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,MAAM,EAAE,CAAC;gBACX,iCAAiC;gBACjC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;oBACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC3D,CAAC;gBAED,+CAA+C;gBAC/C,qDAAqD;gBACrD,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBACtE,qDAAqD;oBACrD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAC7C,MAAM,IAAI,GAAG,SAAS;wBACpB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBACxB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;oBAC7B,IAAI,CAAC,aAAa,GAAG,QAAQ,IAAI,oBAAoB,CAAC;oBACtD,iEAAiE;oBACjE,qDAAqD;oBACrD,OAAO;gBACT,CAAC;gBAED,wCAAwC;gBACxC,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;oBACzD,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAC7B,CAAC;oBACD,mCAAmC;oBACnC,IAAI,CAAC,aAAa,GAAG,QAAQ,IAAI,CAAC,MAAM,CAAC,YAAY,oBAAoB,CAAC;oBAC1E,+DAA+D;oBAC/D,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;oBACjE,OAAO;gBACT,CAAC;gBAED,0DAA0D;gBAC1D,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;oBACnC,IACE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;wBAC3B,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;wBACzB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;wBACpB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAC9C,CAAC;wBACD,mCAAmC;wBACnC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;wBAClD,IAAI,SAAS,EAAE,CAAC;4BACd,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;wBACpD,CAAC;wBACD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;wBACrC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;wBAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACzB,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,8CAA8C;gBAC9C,IACE,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;oBACtC,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EACvC,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC;gBAClD,CAAC;qBAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;oBAChC,4CAA4C;oBAC5C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACN,mCAAmC;oBACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE;YAC9C,qDAAqD;YACrD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CACT,KAAK,CAAC,MAAM,CACV,0DAA0D,IAAI,CAAC,UAAU,QAAQ,CAClF,CACF,CAAC;gBACF,UAAU,CACR,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,EACtC,IAAI,GAAG,IAAI,CAAC,UAAU,CACvB,CAAC;gBACF,OAAO;YACT,CAAC;YAED,uFAAuF;YACvF,MAAM,CAAC,IAAI,CACT,KAAK,CAAC,MAAM,CAAC,qCAAqC,KAAK,CAAC,OAAO,EAAE,CAAC,CACnE,CAAC;YACF,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YACpE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACvC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAChC,yCAAyC;gBACzC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,OAAO,CAAC,KAAK,EAAE,CAAC;oBAChB,MAAM,CAAC,KAAK,CACV,KAAK,CACH,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC;wBAC5C,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;wBACxC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC;wBAClC,KAAK,CAAC,IAAI,CACR,wCAAwC,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CACrE;wBACD,KAAK,CAAC,IAAI,CACR,6BAA6B,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,IAAI,CACpF;wBACD,KAAK,CAAC,IAAI,CACR,oBAAoB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CACpD;wBACD,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,EAChE;wBACE,OAAO,EAAE,CAAC;wBACV,MAAM,EAAE,CAAC;wBACT,WAAW,EAAE,OAAO;wBACpB,WAAW,EAAE,KAAK;qBACnB,CACF,CACF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC/D,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;wBACnC,MAAM,CAAC,KAAK,CACV,KAAK,CAAC,GAAG,CACP,sFAAsF,CACvF,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,iDAAiD;gBACjD,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;oBACnC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,kEAAkE;QAClE,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CACT,KAAK,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAClE,CAAC;gBACF,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;gBACrC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAEO,WAAW,CAAC,IAAyB;QAC3C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,gCAAgC;QAClC,CAAC;QACD,6DAA6D;QAC7D,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC;gBACH,iEAAiE;gBACjE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACrB,2BAA2B;gBAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACZ,+BAA+B;YACjC,CAAC;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,IAAY;QAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE;gBAChC,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;gBAC5B,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,IAAY,EACZ,SAAS,GAAG,IAAI,EAChB,IAAI,GAAG,WAAW;QAElB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,UAAU,GAAG,GAAG,EAAE;gBACtB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE;oBAC9C,MAAM,CAAC,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;oBACtB,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,SAAS,EAAE,CAAC;wBACpC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;YACF,UAAU,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,IAAY;QAEZ,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YACnD,yBAAyB;YACzB,MAAM,SAAS,GAAG,QAAQ,CACxB,YAAY,IAAI,yCAAyC,EACzD,EAAE,QAAQ,EAAE,OAAO,EAAE,CACtB,CAAC;YACF,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B;YAEzE,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YAEtB,2BAA2B;YAC3B,MAAM,aAAa,GAAG,QAAQ,CAC5B,SAAS,GAAG,4CAA4C,EACxD,EAAE,QAAQ,EAAE,OAAO,EAAE,CACtB,CAAC,IAAI,EAAE,CAAC;YAET,mCAAmC;YACnC,IAAI,OAAO,GAAG,aAAa,CAAC;YAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAAE,OAAO,GAAG,kBAAkB,CAAC;qBACrD,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAAE,OAAO,GAAG,mBAAmB,CAAC;qBAC5D,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAAE,OAAO,GAAG,SAAS,CAAC;;oBACrD,OAAO,GAAG,cAAc,CAAC;YAChC,CAAC;YAED,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,IAAY,EACZ,WAAmC,SAAS;QAE5C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAEzD,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,2EAA2E;QAC3E,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CACR,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAC1H,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YACxE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAChE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAC;YAC1E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,IAAI,CAAC,4BAA4B,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC,CACzE,CAAC;QACF,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,IAAI,CAAC,8BAA8B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CACxE,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,8CAA8C;QAC9C,MAAM,CAAC,KAAK,CACV,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,CAAC;YACT,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,MAAM;YACnB,SAAS,EAAE,IAAI;SAChB,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,CAAC,IAAI,CACT,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,OAAO,0BAA0B,CAAC,CACxE,CAAC;QAEF,qCAAqC;QACrC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACvE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,sCAAsC;QACtC,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACzE,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,iDAAiD;QACjD,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,CAAC;QAEzD,2BAA2B;QAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,wDAAwD;YACxD,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,gEAAgE;QAChE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,uBAAuB;AACvB,MAAM,YAAY,GAAG,IAAI,qBAAqB,EAAE,CAAC;AACjD,YAAY,CAAC,KAAK,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superdangerous/app-framework",
|
|
3
|
-
"version": "4.16.
|
|
3
|
+
"version": "4.16.17",
|
|
4
4
|
"description": "Opinionated TypeScript framework for structured vibecoding - building internal web and desktop apps with batteries included",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
package/src/cli/dev-server.ts
CHANGED
|
@@ -106,8 +106,10 @@ class DevServerOrchestrator {
|
|
|
106
106
|
|
|
107
107
|
// Show any buffered important messages
|
|
108
108
|
if (this.outputBuffer.length > 0) {
|
|
109
|
-
|
|
110
|
-
|
|
109
|
+
console.log("\n" + chalk.gray("Recent activity:"));
|
|
110
|
+
// Write directly to avoid adding duplicate timestamps
|
|
111
|
+
// (backend output already has timestamps from the backend logger)
|
|
112
|
+
this.outputBuffer.forEach((msg) => console.log(msg));
|
|
111
113
|
this.outputBuffer = [];
|
|
112
114
|
}
|
|
113
115
|
}
|
|
@@ -130,7 +132,6 @@ class DevServerOrchestrator {
|
|
|
130
132
|
this.backendProcess = spawn(cmd, args, {
|
|
131
133
|
stdio: ["inherit", "pipe", "pipe"],
|
|
132
134
|
shell: true,
|
|
133
|
-
detached: true, // Create a new process group
|
|
134
135
|
env: {
|
|
135
136
|
...process.env,
|
|
136
137
|
LOG_LEVEL: "warn", // Only show warnings and errors
|
|
@@ -168,22 +169,20 @@ class DevServerOrchestrator {
|
|
|
168
169
|
this.showPortConflictError(this.config.backendPort, "backend");
|
|
169
170
|
}
|
|
170
171
|
|
|
171
|
-
//
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
}
|
|
186
|
-
});
|
|
172
|
+
// Pass through backend stdout, but filter out the backend's startup banner
|
|
173
|
+
// (the dev-server shows its own banner, so we don't want duplicates)
|
|
174
|
+
// Banner lines typically contain box-drawing characters: ╭ ╰ │ ─
|
|
175
|
+
const isBannerLine = /[╭╰│─╮╯]/.test(output) ||
|
|
176
|
+
output.includes('Press Ctrl+C') ||
|
|
177
|
+
/^\s*(v\d+\.\d+\.\d+|Environment:|Framework:)\s*$/.test(output.trim());
|
|
178
|
+
|
|
179
|
+
if (output.trim() && !output.includes("ExperimentalWarning") && !isBannerLine) {
|
|
180
|
+
if (this.hasShownBanner) {
|
|
181
|
+
process.stdout.write(output);
|
|
182
|
+
} else {
|
|
183
|
+
// Buffer output until banner is shown
|
|
184
|
+
this.outputBuffer.push(output.trim());
|
|
185
|
+
}
|
|
187
186
|
}
|
|
188
187
|
});
|
|
189
188
|
|
|
@@ -198,8 +197,8 @@ class DevServerOrchestrator {
|
|
|
198
197
|
this.showPortConflictError(this.config.backendPort, "backend");
|
|
199
198
|
}
|
|
200
199
|
|
|
201
|
-
//
|
|
202
|
-
// The backend logger already handles coloring
|
|
200
|
+
// Pass through backend stderr as-is to preserve formatting
|
|
201
|
+
// The backend logger already handles timestamps and coloring
|
|
203
202
|
if (output.trim() && !output.includes("ExperimentalWarning")) {
|
|
204
203
|
process.stderr.write(output);
|
|
205
204
|
}
|
|
@@ -318,7 +317,7 @@ class DevServerOrchestrator {
|
|
|
318
317
|
this.frontendProcess = spawn(cmd, args, {
|
|
319
318
|
stdio: ["inherit", "pipe", "pipe"],
|
|
320
319
|
shell: true,
|
|
321
|
-
|
|
320
|
+
|
|
322
321
|
cwd: path.join(process.cwd(), dir), // Run in the subdirectory
|
|
323
322
|
env: {
|
|
324
323
|
...process.env,
|
|
@@ -334,7 +333,7 @@ class DevServerOrchestrator {
|
|
|
334
333
|
this.frontendProcess = spawn(cmd, args, {
|
|
335
334
|
stdio: ["inherit", "pipe", "pipe"],
|
|
336
335
|
shell: true,
|
|
337
|
-
|
|
336
|
+
|
|
338
337
|
cwd: process.cwd(),
|
|
339
338
|
env: {
|
|
340
339
|
...process.env,
|
|
@@ -359,7 +358,6 @@ class DevServerOrchestrator {
|
|
|
359
358
|
this.frontendProcess = spawn(cmd, args, {
|
|
360
359
|
stdio: ["inherit", "pipe", "pipe"],
|
|
361
360
|
shell: true,
|
|
362
|
-
detached: true, // Create a new process group
|
|
363
361
|
cwd: process.cwd(), // Explicitly set working directory
|
|
364
362
|
env: {
|
|
365
363
|
...process.env,
|
|
@@ -593,37 +591,32 @@ class DevServerOrchestrator {
|
|
|
593
591
|
}, 5000);
|
|
594
592
|
}
|
|
595
593
|
|
|
596
|
-
private
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
// Fallback to regular kill
|
|
604
|
-
try {
|
|
605
|
-
this.backendProcess.kill("SIGTERM");
|
|
606
|
-
} catch (_err) {
|
|
607
|
-
// Process might already be dead
|
|
608
|
-
}
|
|
609
|
-
}
|
|
610
|
-
this.backendProcess = null;
|
|
594
|
+
private killProcess(proc: ChildProcess | null) {
|
|
595
|
+
if (!proc || !proc.pid) return;
|
|
596
|
+
const pid = proc.pid;
|
|
597
|
+
try {
|
|
598
|
+
proc.kill("SIGTERM");
|
|
599
|
+
} catch (_e) {
|
|
600
|
+
// Process might already be dead
|
|
611
601
|
}
|
|
612
|
-
|
|
613
|
-
|
|
602
|
+
// SIGKILL fallback after 500ms if the process is still alive
|
|
603
|
+
setTimeout(() => {
|
|
614
604
|
try {
|
|
615
|
-
//
|
|
616
|
-
process.kill(
|
|
605
|
+
// Check if process is still running (signal 0 = existence check)
|
|
606
|
+
process.kill(pid, 0);
|
|
607
|
+
// Still alive — force kill
|
|
608
|
+
process.kill(pid, "SIGKILL");
|
|
617
609
|
} catch (_e) {
|
|
618
|
-
//
|
|
619
|
-
try {
|
|
620
|
-
this.frontendProcess.kill("SIGTERM");
|
|
621
|
-
} catch (_err) {
|
|
622
|
-
// Process might already be dead
|
|
623
|
-
}
|
|
610
|
+
// Already dead — nothing to do
|
|
624
611
|
}
|
|
625
|
-
|
|
626
|
-
|
|
612
|
+
}, 500);
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
private cleanup() {
|
|
616
|
+
this.killProcess(this.backendProcess);
|
|
617
|
+
this.backendProcess = null;
|
|
618
|
+
this.killProcess(this.frontendProcess);
|
|
619
|
+
this.frontendProcess = null;
|
|
627
620
|
}
|
|
628
621
|
|
|
629
622
|
private async checkPort(port: number): Promise<boolean> {
|
|
@@ -788,12 +781,17 @@ class DevServerOrchestrator {
|
|
|
788
781
|
logger.info(chalk.yellow("\n\nShutting down..."));
|
|
789
782
|
this.cleanup();
|
|
790
783
|
// Force exit after a delay if processes don't terminate
|
|
791
|
-
setTimeout(() => process.exit(0),
|
|
784
|
+
setTimeout(() => process.exit(0), 1500);
|
|
792
785
|
});
|
|
793
786
|
|
|
794
787
|
process.on("SIGTERM", () => {
|
|
795
788
|
this.cleanup();
|
|
796
|
-
process.exit(0);
|
|
789
|
+
setTimeout(() => process.exit(0), 1500);
|
|
790
|
+
});
|
|
791
|
+
|
|
792
|
+
// Safety net: ensure child processes are cleaned up on any exit
|
|
793
|
+
process.on("exit", () => {
|
|
794
|
+
this.cleanup();
|
|
797
795
|
});
|
|
798
796
|
}
|
|
799
797
|
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Checkbox } from '../../components/base/checkbox';
|
|
3
|
+
import { Button } from '../../components/base/button';
|
|
4
|
+
import { cn } from '../../src/utils/cn';
|
|
5
|
+
|
|
6
|
+
export interface MultiSelectOption<T extends string = string> {
|
|
7
|
+
/** Unique value for this option */
|
|
8
|
+
value: T;
|
|
9
|
+
/** Display label */
|
|
10
|
+
label: string;
|
|
11
|
+
/** Optional custom render for the label (e.g., with icon/flag) */
|
|
12
|
+
render?: () => React.ReactNode;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface MultiSelectFilterProps<T extends string = string> {
|
|
16
|
+
/** Available options to select from */
|
|
17
|
+
options: MultiSelectOption<T>[];
|
|
18
|
+
/** Currently selected values */
|
|
19
|
+
selected: Set<T>;
|
|
20
|
+
/** Called when selection changes */
|
|
21
|
+
onChange: (selected: Set<T>) => void;
|
|
22
|
+
/** Maximum height before scrolling (default: 200px) */
|
|
23
|
+
maxHeight?: number;
|
|
24
|
+
/** Number of columns for grid layout (default: 2) */
|
|
25
|
+
columns?: 1 | 2 | 3;
|
|
26
|
+
/** Show select all / clear buttons */
|
|
27
|
+
showBulkActions?: boolean;
|
|
28
|
+
/** Optional className for the container */
|
|
29
|
+
className?: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* MultiSelectFilter - A checkbox-based multi-select filter component
|
|
34
|
+
*
|
|
35
|
+
* Designed to work with the TableFilters popover for filtering data tables.
|
|
36
|
+
* Supports custom rendering per option (for flags, badges, icons, etc.)
|
|
37
|
+
*/
|
|
38
|
+
export function MultiSelectFilter<T extends string = string>({
|
|
39
|
+
options,
|
|
40
|
+
selected,
|
|
41
|
+
onChange,
|
|
42
|
+
maxHeight = 200,
|
|
43
|
+
columns = 2,
|
|
44
|
+
showBulkActions = true,
|
|
45
|
+
className,
|
|
46
|
+
}: MultiSelectFilterProps<T>) {
|
|
47
|
+
const handleToggle = (value: T) => {
|
|
48
|
+
const newSelected = new Set(selected);
|
|
49
|
+
if (newSelected.has(value)) {
|
|
50
|
+
newSelected.delete(value);
|
|
51
|
+
} else {
|
|
52
|
+
newSelected.add(value);
|
|
53
|
+
}
|
|
54
|
+
onChange(newSelected);
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const handleSelectAll = () => {
|
|
58
|
+
onChange(new Set(options.map(o => o.value)));
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const handleClear = () => {
|
|
62
|
+
onChange(new Set());
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const gridCols = {
|
|
66
|
+
1: 'grid-cols-1',
|
|
67
|
+
2: 'grid-cols-2',
|
|
68
|
+
3: 'grid-cols-3',
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const allSelected = options.length > 0 && selected.size === options.length;
|
|
72
|
+
const noneSelected = selected.size === 0;
|
|
73
|
+
|
|
74
|
+
return (
|
|
75
|
+
<div className={cn('space-y-2', className)}>
|
|
76
|
+
{/* Bulk action buttons */}
|
|
77
|
+
{showBulkActions && options.length > 3 && (
|
|
78
|
+
<div className="flex items-center gap-2 text-xs">
|
|
79
|
+
<Button
|
|
80
|
+
type="button"
|
|
81
|
+
variant="ghost"
|
|
82
|
+
size="sm"
|
|
83
|
+
onClick={handleSelectAll}
|
|
84
|
+
disabled={allSelected}
|
|
85
|
+
className="h-6 px-2 text-xs text-muted-foreground hover:text-foreground"
|
|
86
|
+
>
|
|
87
|
+
Select all
|
|
88
|
+
</Button>
|
|
89
|
+
<span className="text-muted-foreground">·</span>
|
|
90
|
+
<Button
|
|
91
|
+
type="button"
|
|
92
|
+
variant="ghost"
|
|
93
|
+
size="sm"
|
|
94
|
+
onClick={handleClear}
|
|
95
|
+
disabled={noneSelected}
|
|
96
|
+
className="h-6 px-2 text-xs text-muted-foreground hover:text-foreground"
|
|
97
|
+
>
|
|
98
|
+
Clear
|
|
99
|
+
</Button>
|
|
100
|
+
{selected.size > 0 && (
|
|
101
|
+
<>
|
|
102
|
+
<span className="text-muted-foreground">·</span>
|
|
103
|
+
<span className="text-muted-foreground">
|
|
104
|
+
{selected.size} selected
|
|
105
|
+
</span>
|
|
106
|
+
</>
|
|
107
|
+
)}
|
|
108
|
+
</div>
|
|
109
|
+
)}
|
|
110
|
+
|
|
111
|
+
{/* Options grid */}
|
|
112
|
+
<div
|
|
113
|
+
className={cn('overflow-y-auto', options.length > 6 && 'pr-1')}
|
|
114
|
+
style={{ maxHeight: `${maxHeight}px` }}
|
|
115
|
+
>
|
|
116
|
+
<div className={cn('grid gap-1', gridCols[columns])}>
|
|
117
|
+
{options.map((option) => (
|
|
118
|
+
<label
|
|
119
|
+
key={option.value}
|
|
120
|
+
className={cn(
|
|
121
|
+
'flex items-center gap-2 px-2 py-1.5 rounded-md cursor-pointer',
|
|
122
|
+
'hover:bg-muted/50 transition-colors',
|
|
123
|
+
selected.has(option.value) && 'bg-muted/30'
|
|
124
|
+
)}
|
|
125
|
+
>
|
|
126
|
+
<Checkbox
|
|
127
|
+
checked={selected.has(option.value)}
|
|
128
|
+
onCheckedChange={() => handleToggle(option.value)}
|
|
129
|
+
className="h-3.5 w-3.5"
|
|
130
|
+
/>
|
|
131
|
+
{option.render ? (
|
|
132
|
+
<span className="flex items-center gap-1.5 text-sm truncate">
|
|
133
|
+
{option.render()}
|
|
134
|
+
</span>
|
|
135
|
+
) : (
|
|
136
|
+
<span className="text-sm truncate">{option.label}</span>
|
|
137
|
+
)}
|
|
138
|
+
</label>
|
|
139
|
+
))}
|
|
140
|
+
</div>
|
|
141
|
+
</div>
|
|
142
|
+
|
|
143
|
+
{/* Empty state */}
|
|
144
|
+
{options.length === 0 && (
|
|
145
|
+
<div className="text-sm text-muted-foreground text-center py-2">
|
|
146
|
+
No options available
|
|
147
|
+
</div>
|
|
148
|
+
)}
|
|
149
|
+
</div>
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export default MultiSelectFilter;
|
|
@@ -9,6 +9,8 @@ export interface FilterOption {
|
|
|
9
9
|
id: string;
|
|
10
10
|
label: string;
|
|
11
11
|
render: () => React.ReactNode;
|
|
12
|
+
/** Filter type - 'multi' filters get more horizontal space */
|
|
13
|
+
type?: 'single' | 'multi';
|
|
12
14
|
}
|
|
13
15
|
|
|
14
16
|
export interface TableFiltersProps {
|
|
@@ -42,6 +44,10 @@ export function TableFilters({
|
|
|
42
44
|
className,
|
|
43
45
|
children,
|
|
44
46
|
}: TableFiltersProps) {
|
|
47
|
+
// Check if any filter needs wider layout (multi-select filters)
|
|
48
|
+
const hasMultiFilters = filters?.some(f => f.type === 'multi');
|
|
49
|
+
const popoverWidth = hasMultiFilters ? 'w-[420px]' : 'w-80';
|
|
50
|
+
|
|
45
51
|
return (
|
|
46
52
|
<div className={cn('flex items-center gap-3 flex-wrap', className)}>
|
|
47
53
|
{/* Search Input */}
|
|
@@ -81,7 +87,7 @@ export function TableFilters({
|
|
|
81
87
|
</Button>
|
|
82
88
|
</PopoverTrigger>
|
|
83
89
|
<PopoverContent
|
|
84
|
-
className=
|
|
90
|
+
className={cn(popoverWidth, 'overflow-y-auto')}
|
|
85
91
|
align="start"
|
|
86
92
|
collisionPadding={16}
|
|
87
93
|
style={{ maxHeight: 'var(--radix-popover-content-available-height)' }}
|
|
@@ -101,7 +107,7 @@ export function TableFilters({
|
|
|
101
107
|
)}
|
|
102
108
|
</div>
|
|
103
109
|
|
|
104
|
-
<div className="space-y-
|
|
110
|
+
<div className="space-y-4">
|
|
105
111
|
{filters.map((filter) => (
|
|
106
112
|
<div key={filter.id} className="space-y-1.5">
|
|
107
113
|
<label className="text-xs font-medium text-muted-foreground">
|
|
@@ -39,3 +39,6 @@ export { ColumnVisibility } from './ColumnVisibility';
|
|
|
39
39
|
|
|
40
40
|
export { TableFilters } from './TableFilters';
|
|
41
41
|
export type { TableFiltersProps, FilterOption as TableFilterOption } from './TableFilters';
|
|
42
|
+
|
|
43
|
+
export { MultiSelectFilter } from './MultiSelectFilter';
|
|
44
|
+
export type { MultiSelectFilterProps, MultiSelectOption } from './MultiSelectFilter';
|