Compare commits
1
Commits
main
..
c65235f377
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c65235f377 |
No files matched your search
@@ -1,86 +0,0 @@
|
||||
---
|
||||
name: gitnexus-cli
|
||||
description: "Use when the user needs to run GitNexus CLI commands like analyze/index a repo, check status, clean the index, generate a wiki, or list indexed repos. Examples: \"Index this repo\", \"Reanalyze the codebase\", \"Generate a wiki\""
|
||||
---
|
||||
|
||||
# GitNexus CLI Commands
|
||||
|
||||
Commands below use `node .gitnexus/run.cjs <command>` — the project-local runner `gitnexus analyze` drops next to the index. It auto-selects an available runner at call time (global `gitnexus`, else `pnpm dlx`, else `npx`), so no package-manager assumption and no global install is required.
|
||||
|
||||
> **Not analyzed yet, or `node .gitnexus/run.cjs` reports `Cannot find module`** (the gitignored runner is absent — e.g. a fresh clone or `git clean`)? (Re)generate it with `npx gitnexus analyze` from the project root. On **npm 11.x**, if `npx` crashes during install (`node.target is null`), install once with `npm i -g gitnexus` (then `gitnexus analyze`) or use `pnpm --allow-build=@ladybugdb/core --allow-build=gitnexus --allow-build=tree-sitter dlx gitnexus@latest analyze`. See [#1939](https://github.com/abhigyanpatwari/GitNexus/issues/1939).
|
||||
|
||||
## Commands
|
||||
|
||||
### analyze — Build or refresh the index
|
||||
|
||||
```bash
|
||||
node .gitnexus/run.cjs analyze
|
||||
```
|
||||
|
||||
Run from the project root. This parses all source files, builds the knowledge graph, writes it to `.gitnexus/`, and generates CLAUDE.md / AGENTS.md context files.
|
||||
|
||||
| Flag | Effect |
|
||||
| -------------- | ---------------------------------------------------------------- |
|
||||
| `--force` | Force full re-index even if up to date |
|
||||
| `--embeddings` | Enable embedding generation for semantic search (off by default) |
|
||||
| `--drop-embeddings` | Drop existing embeddings on rebuild. By default, an `analyze` without `--embeddings` preserves them. |
|
||||
| `--pdg` | Build the program-dependence layers used by `explain` and `pdg_query` (taint, CDG, and REACHING_DEF). |
|
||||
|
||||
**When to run:** First time in a project, after major code changes, or when `gitnexus://repo/{name}/context` reports the index is stale. In Claude Code, a PostToolUse hook detects staleness after `git commit` and `git merge` and notifies the agent to run `analyze` — the hook does not run analyze itself, to avoid blocking the agent for up to 120s and risking KuzuDB corruption on timeout.
|
||||
|
||||
### status — Check index freshness
|
||||
|
||||
```bash
|
||||
node .gitnexus/run.cjs status
|
||||
```
|
||||
|
||||
Shows whether the current repo has a GitNexus index, when it was last updated, and symbol/relationship counts. Use this to check if re-indexing is needed.
|
||||
|
||||
### clean — Delete the index
|
||||
|
||||
```bash
|
||||
node .gitnexus/run.cjs clean
|
||||
```
|
||||
|
||||
Deletes the `.gitnexus/` directory and unregisters the repo from the global registry. Use before re-indexing if the index is corrupt or after removing GitNexus from a project.
|
||||
|
||||
| Flag | Effect |
|
||||
| --------- | ------------------------------------------------- |
|
||||
| `--force` | Skip confirmation prompt |
|
||||
| `--all` | Clean all indexed repos, not just the current one |
|
||||
|
||||
### wiki — Generate documentation from the graph
|
||||
|
||||
```bash
|
||||
node .gitnexus/run.cjs wiki
|
||||
```
|
||||
|
||||
Generates repository documentation from the knowledge graph using an LLM. Requires an API key (saved to `~/.gitnexus/config.json` on first use).
|
||||
|
||||
| Flag | Effect |
|
||||
| ------------------- | ----------------------------------------- |
|
||||
| `--force` | Force full regeneration |
|
||||
| `--model <model>` | LLM model (default: minimax/minimax-m2.5) |
|
||||
| `--base-url <url>` | LLM API base URL |
|
||||
| `--api-key <key>` | LLM API key |
|
||||
| `--concurrency <n>` | Parallel LLM calls (default: 3) |
|
||||
| `--gist` | Publish wiki as a public GitHub Gist |
|
||||
|
||||
### list — Show all indexed repos
|
||||
|
||||
```bash
|
||||
node .gitnexus/run.cjs list
|
||||
```
|
||||
|
||||
Lists all repositories registered in `~/.gitnexus/registry.json`. The MCP `list_repos` tool provides the same information.
|
||||
|
||||
## After Indexing
|
||||
|
||||
1. **Read `gitnexus://repo/{name}/context`** to verify the index loaded
|
||||
2. Use the other GitNexus skills (`exploring`, `debugging`, `impact-analysis`, `refactoring`) for your task
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- **"Not inside a git repository"**: Run from a directory inside a git repo
|
||||
- **Index is stale after re-analyzing**: Restart Claude Code to reload the MCP server
|
||||
- **Embeddings slow**: Omit `--embeddings` (it's off by default) or set `OPENAI_API_KEY` for faster API-based embedding
|
||||
@@ -1,101 +0,0 @@
|
||||
---
|
||||
name: gitnexus-debugging
|
||||
description: "Use when the user is debugging a bug, tracing an error, or asking why something fails. Examples: \"Why is X failing?\", \"Where does this error come from?\", \"Trace this bug\""
|
||||
---
|
||||
|
||||
# Debugging with GitNexus
|
||||
|
||||
## When to Use
|
||||
|
||||
- "Why is this function failing?"
|
||||
- "Trace where this error comes from"
|
||||
- "Who calls this method?"
|
||||
- "This endpoint returns 500"
|
||||
- Investigating bugs, errors, or unexpected behavior
|
||||
|
||||
## Workflow
|
||||
|
||||
```
|
||||
1. query({search_query: "<error or symptom>"}) → Find related execution flows
|
||||
2. context({name: "<suspect>"}) → See callers/callees/processes
|
||||
3. READ gitnexus://repo/{name}/process/{name} → Trace execution flow
|
||||
4. cypher({statement: "MATCH path..."}) → Custom traces if needed
|
||||
```
|
||||
|
||||
> If "Index is stale" → run `node .gitnexus/run.cjs analyze` in terminal.
|
||||
|
||||
## Checklist
|
||||
|
||||
```
|
||||
- [ ] Understand the symptom (error message, unexpected behavior)
|
||||
- [ ] query for error text or related code
|
||||
- [ ] Identify the suspect function from returned processes
|
||||
- [ ] context to see callers and callees
|
||||
- [ ] Trace execution flow via process resource if applicable
|
||||
- [ ] cypher for custom call chain traces if needed
|
||||
- [ ] Read source files to confirm root cause
|
||||
```
|
||||
|
||||
## Debugging Patterns
|
||||
|
||||
| Symptom | GitNexus Approach |
|
||||
| -------------------- | ---------------------------------------------------------- |
|
||||
| Error message | `query` for error text → `context` on throw sites |
|
||||
| Wrong return value | `context` on the function → trace callees for data flow |
|
||||
| Intermittent failure | `context` → look for external calls, async deps |
|
||||
| Performance issue | `context` → find symbols with many callers (hot paths) |
|
||||
| Recent regression | `detect_changes` to see what your changes affect |
|
||||
| "How does A reach B?" | `trace` between the two symbols — shortest call chain in one call |
|
||||
|
||||
## Tools
|
||||
|
||||
**query** — find code related to error:
|
||||
|
||||
```
|
||||
query({search_query: "payment validation error"})
|
||||
→ Processes: CheckoutFlow, ErrorHandling
|
||||
→ Symbols: validatePayment, handlePaymentError, PaymentException
|
||||
```
|
||||
|
||||
**context** — full context for a suspect:
|
||||
|
||||
```
|
||||
context({name: "validatePayment"})
|
||||
→ Incoming calls: processCheckout, webhookHandler
|
||||
→ Outgoing calls: verifyCard, fetchRates (external API!)
|
||||
→ Processes: CheckoutFlow (step 3/7)
|
||||
```
|
||||
|
||||
**cypher** — custom call chain traces:
|
||||
|
||||
```cypher
|
||||
MATCH path = (a)-[:CodeRelation {type: 'CALLS'}*1..2]->(b:Function {name: "validatePayment"})
|
||||
RETURN [n IN nodes(path) | n.name] AS chain
|
||||
```
|
||||
|
||||
**trace** — shortest call chain between two symbols ("how does A reach B?"), one call instead of chaining `context` hops:
|
||||
|
||||
```
|
||||
trace({ from: "processCheckout", to: "fetchRates" })
|
||||
→ status: ok, hopCount: 3
|
||||
→ hops: processCheckout → validatePayment → verifyCard → fetchRates
|
||||
→ edges: CALLS (1.0), CALLS (0.95), CALLS (1.0)
|
||||
```
|
||||
|
||||
When no path exists, `trace` reports the furthest reachable node — exactly where the chain breaks (dynamic dispatch, reflection, or an external boundary).
|
||||
|
||||
## Example: "Payment endpoint returns 500 intermittently"
|
||||
|
||||
```
|
||||
1. query({search_query: "payment error handling"})
|
||||
→ Processes: CheckoutFlow, ErrorHandling
|
||||
→ Symbols: validatePayment, handlePaymentError
|
||||
|
||||
2. context({name: "validatePayment"})
|
||||
→ Outgoing calls: verifyCard, fetchRates (external API!)
|
||||
|
||||
3. READ gitnexus://repo/my-app/process/CheckoutFlow
|
||||
→ Step 3: validatePayment → calls fetchRates (external)
|
||||
|
||||
4. Root cause: fetchRates calls external API without proper timeout
|
||||
```
|
||||
@@ -1,78 +0,0 @@
|
||||
---
|
||||
name: gitnexus-exploring
|
||||
description: "Use when the user asks how code works, wants to understand architecture, trace execution flows, or explore unfamiliar parts of the codebase. Examples: \"How does X work?\", \"What calls this function?\", \"Show me the auth flow\""
|
||||
---
|
||||
|
||||
# Exploring Codebases with GitNexus
|
||||
|
||||
## When to Use
|
||||
|
||||
- "How does authentication work?"
|
||||
- "What's the project structure?"
|
||||
- "Show me the main components"
|
||||
- "Where is the database logic?"
|
||||
- Understanding code you haven't seen before
|
||||
|
||||
## Workflow
|
||||
|
||||
```
|
||||
1. READ gitnexus://repos → Discover indexed repos
|
||||
2. READ gitnexus://repo/{name}/context → Codebase overview, check staleness
|
||||
3. query({search_query: "<what you want to understand>"}) → Find related execution flows
|
||||
4. context({name: "<symbol>"}) → Deep dive on specific symbol
|
||||
5. READ gitnexus://repo/{name}/process/{name} → Trace full execution flow
|
||||
```
|
||||
|
||||
> If step 2 says "Index is stale" → run `node .gitnexus/run.cjs analyze` in terminal.
|
||||
|
||||
## Checklist
|
||||
|
||||
```
|
||||
- [ ] READ gitnexus://repo/{name}/context
|
||||
- [ ] query for the concept you want to understand
|
||||
- [ ] Review returned processes (execution flows)
|
||||
- [ ] context on key symbols for callers/callees
|
||||
- [ ] READ process resource for full execution traces
|
||||
- [ ] Read source files for implementation details
|
||||
```
|
||||
|
||||
## Resources
|
||||
|
||||
| Resource | What you get |
|
||||
| --------------------------------------- | ------------------------------------------------------- |
|
||||
| `gitnexus://repo/{name}/context` | Stats, staleness warning (~150 tokens) |
|
||||
| `gitnexus://repo/{name}/clusters` | All functional areas with cohesion scores (~300 tokens) |
|
||||
| `gitnexus://repo/{name}/cluster/{name}` | Area members with file paths (~500 tokens) |
|
||||
| `gitnexus://repo/{name}/process/{name}` | Step-by-step execution trace (~200 tokens) |
|
||||
|
||||
## Tools
|
||||
|
||||
**query** — find execution flows related to a concept:
|
||||
|
||||
```
|
||||
query({search_query: "payment processing"})
|
||||
→ Processes: CheckoutFlow, RefundFlow, WebhookHandler
|
||||
→ Symbols grouped by flow with file locations
|
||||
```
|
||||
|
||||
**context** — 360-degree view of a symbol:
|
||||
|
||||
```
|
||||
context({name: "validateUser"})
|
||||
→ Incoming calls: loginHandler, apiMiddleware
|
||||
→ Outgoing calls: checkToken, getUserById
|
||||
→ Processes: LoginFlow (step 2/5), TokenRefresh (step 1/3)
|
||||
```
|
||||
|
||||
## Example: "How does payment processing work?"
|
||||
|
||||
```
|
||||
1. READ gitnexus://repo/my-app/context → 918 symbols, 45 processes
|
||||
2. query({search_query: "payment processing"})
|
||||
→ CheckoutFlow: processPayment → validateCard → chargeStripe
|
||||
→ RefundFlow: initiateRefund → calculateRefund → processRefund
|
||||
3. context({name: "processPayment"})
|
||||
→ Incoming: checkoutHandler, webhookHandler
|
||||
→ Outgoing: validateCard, chargeStripe, saveTransaction
|
||||
4. Read src/payments/processor.ts for implementation details
|
||||
```
|
||||
@@ -1,138 +0,0 @@
|
||||
---
|
||||
name: gitnexus-guide
|
||||
description: "Use when the user asks about GitNexus itself — available tools, how to query the knowledge graph, MCP resources, graph schema, or workflow reference. Examples: \"What GitNexus tools are available?\", \"How do I use GitNexus?\""
|
||||
---
|
||||
|
||||
# GitNexus Guide
|
||||
|
||||
Quick reference for all GitNexus MCP tools, resources, and the knowledge graph schema.
|
||||
|
||||
## Always Start Here
|
||||
|
||||
For any task involving code understanding, debugging, impact analysis, or refactoring:
|
||||
|
||||
1. **Read `gitnexus://repo/{name}/context`** — codebase overview + check index freshness
|
||||
2. **Match your task to a skill below** and **read that skill file**
|
||||
3. **Follow the skill's workflow and checklist**
|
||||
|
||||
> If step 1 warns the index is stale, run `node .gitnexus/run.cjs analyze` in the terminal first.
|
||||
|
||||
## Skills
|
||||
|
||||
| Task | Skill to read |
|
||||
| -------------------------------------------- | ------------------- |
|
||||
| Understand architecture / "How does X work?" | `gitnexus-exploring` |
|
||||
| Blast radius / "What breaks if I change X?" | `gitnexus-impact-analysis` |
|
||||
| Trace bugs / "Why is X failing?" | `gitnexus-debugging` |
|
||||
| Rename / extract / split / refactor | `gitnexus-refactoring` |
|
||||
| Tools, resources, schema reference | `gitnexus-guide` (this file) |
|
||||
| Index, status, clean, wiki CLI commands | `gitnexus-cli` |
|
||||
|
||||
## Tools Reference
|
||||
|
||||
| Tool | What it gives you |
|
||||
| ---------------- | ------------------------------------------------------------------------ |
|
||||
| `query` | Process-grouped code intelligence — execution flows related to a concept |
|
||||
| `context` | 360-degree symbol view — categorized refs, processes it participates in |
|
||||
| `impact` | Symbol blast radius — what breaks at depth 1/2/3 with confidence |
|
||||
| `trace` | Shortest path between two symbols — "how does A reach B?" in one call |
|
||||
| `detect_changes` | Git-diff impact — what do your current changes affect |
|
||||
| `rename` | Multi-file coordinated rename with confidence-tagged edits |
|
||||
| `cypher` | Raw graph queries (read `gitnexus://repo/{name}/schema` first) |
|
||||
| `explain` | Persisted taint findings — source→sink data flows (needs `analyze --pdg`) |
|
||||
| `pdg_query` | Control/data dependence — what gates X (CDG) / where Y flows (REACHING_DEF); needs `analyze --pdg` |
|
||||
| `check` | Check graph invariants such as circular imports |
|
||||
| `route_map` | API route map — which components/hooks fetch which endpoints, and the handler files that serve them |
|
||||
| `shape_check` | Response-shape drift — keys each route returns vs keys its consumers access (flags MISMATCH) |
|
||||
| `api_impact` | Pre-change report for an API route — consumers, middleware, shape mismatches, risk level |
|
||||
| `tool_map` | MCP/RPC tool definitions and the files that handle them |
|
||||
| `group_list` | List configured multi-repo groups, or one group's config |
|
||||
| `group_sync` | Rebuild a group's Contract Registry (cross-repo HTTP contract links); run after `group.yaml` changes or member re-index |
|
||||
| `list_repos` | Discover indexed repos (paginated — `limit`/`offset`) |
|
||||
|
||||
### Paginating `list_repos`
|
||||
|
||||
`list_repos` is paginated so a large registry is not truncated by MCP/LLM token limits. It takes optional `limit` (default **50**, max **200**) and `offset`, and returns:
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"repositories": [
|
||||
{ "name": "...", "path": "...", "indexedAt": "...", "lastCommit": "...", "stats": { } }
|
||||
],
|
||||
"pagination": {
|
||||
"total": 437,
|
||||
"limit": 50,
|
||||
"offset": 0,
|
||||
"returned": 50,
|
||||
"hasMore": true,
|
||||
"nextOffset": 50
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
To enumerate **every** repository, keep calling with `offset` set to `pagination.nextOffset` until `hasMore` is `false`:
|
||||
|
||||
```text
|
||||
list_repos {} → repos 1–50, nextOffset 50, hasMore true
|
||||
list_repos { offset: 50 } → repos 51–100, nextOffset 100, hasMore true
|
||||
…
|
||||
list_repos { offset: 400 } → repos 401–437, hasMore false (done)
|
||||
```
|
||||
|
||||
Notes: `offset` ≥ `total` returns an empty page (with `total` still reported). Out-of-range or malformed `limit`/`offset` (non-integer, `limit` outside `[1, 200]`, `offset < 0`) are rejected with a clear error — `limit` above the max is rejected, not silently capped. The order is deterministic (lower-cased name, then path), so paging never skips or duplicates an entry while the registry is unchanged.
|
||||
|
||||
### Taint findings (`explain`)
|
||||
|
||||
`explain` returns taint findings recorded by `gitnexus analyze --pdg` — intra-procedural `TAINTED` edges plus cross-function `TAINT_PATH` hops where the interprocedural taint phase found a function-level source→sink chain. Each finding includes a sink category (command-injection, code-injection, path-traversal, sql-injection, xss), source/sink lines, and the ordered hop path with the variable carried on each hop.
|
||||
|
||||
- `explain {}` — enumerate all findings for the repo (bounded by `limit`, deterministic order)
|
||||
- `explain { target: "src/vuln.ts" }` — findings in a file (suffix path match accepted)
|
||||
- `explain { target: "runUserCommand" }` — findings in a function (resolved like `context`; ambiguous names return ranked candidates)
|
||||
|
||||
A repo indexed without `--pdg` returns a clear "no taint layer" note. Caveats: closure/callback, property/field, and implicit flows are not modeled, and interprocedural findings are function-level `TAINT_PATH` hops rather than statement-level path proof, so the absence of a finding is **not** proof of safety. `SANITIZES` (sanitizer-kill) edges are queryable via `cypher`.
|
||||
|
||||
### Control & data dependence (`pdg_query`)
|
||||
|
||||
`pdg_query` reads the control/data-dependence layers `gitnexus analyze --pdg` records (CDG + REACHING_DEF, basic-block granular) — the control/data analog of `explain`. It is **always anchored** (a `target` file path or symbol, resolved like `context`) and has two modes:
|
||||
|
||||
- `pdg_query { mode: "controls", target: "..." }` — CDG: "under what condition does X run?". Each edge is a controlling predicate block → dependent block with the branch sense (`'T'`/`'F'`) in `reason`; an edge into an early `return`/`throw` is flagged `guard: true` (guard-clause discovery — the sense depends on the predicate, so don't filter guards by a fixed label).
|
||||
- `pdg_query { mode: "flows", target: "...", variable?: "..." }` — REACHING_DEF def→use edges within the function; pass `variable` to trace one binding.
|
||||
|
||||
A repo indexed without `--pdg` returns a "no PDG layer" note (or "status unknown" when the layer can't be confirmed). Intra-procedural only — cross-function flow is taint's domain (`explain`). The raw CDG/REACHING_DEF edges are also queryable via `cypher`. See the `gitnexus-pdg-query` skill for the full query surface.
|
||||
|
||||
### Shortest path between two symbols (`trace`)
|
||||
|
||||
`trace` answers "how does A reach B?" in one call — the shortest directed path over `CALLS` (plus `HAS_METHOD`, so a class-rooted trace descends into its methods) instead of chaining 3–8 `context`/`impact` hops by hand.
|
||||
|
||||
- `trace { from: "validateUser", to: "executeQuery" }` — shortest path between two symbols.
|
||||
- Disambiguate common names with `from_uid`/`to_uid` (zero-ambiguity) or `from_file`/`to_file`; an ambiguous name returns ranked candidates.
|
||||
- `maxDepth` (default 10, max 30) bounds the search; `includeTests` (default false) lets the traversal pass through test-file symbols.
|
||||
|
||||
Returns ordered `hops` (each `{ name, filePath, startLine }`) and an aligned `edges[]` of `{ relType, confidence }`, so call hops and containment (`HAS_METHOD`) hops stay distinguishable. When no path exists it reports the **furthest** reachable node (where the chain breaks) and sets `truncated: true` if a traversal cap was hit first. Every result carries a `status`: `ok` / `no_path` / `ambiguous` / `not_found` / `error`.
|
||||
|
||||
Cross-repo (experimental): pass `repo: "@groupName"` to trace across a group's member repos — the path may cross **one** `ContractLink` boundary (reported as a `CONTRACT_LINK` hop with the bridged contract in `crossings[]`). Omit `to` entirely to follow `from`'s outgoing HTTP call to whatever provider endpoint it lands on. Groups are configured via `group_list` / `group_sync`.
|
||||
|
||||
## Resources Reference
|
||||
|
||||
Lightweight reads (~100-500 tokens) for navigation:
|
||||
|
||||
| Resource | Content |
|
||||
| ---------------------------------------------- | ----------------------------------------- |
|
||||
| `gitnexus://repo/{name}/context` | Stats, staleness check |
|
||||
| `gitnexus://repo/{name}/clusters` | All functional areas with cohesion scores |
|
||||
| `gitnexus://repo/{name}/cluster/{clusterName}` | Area members |
|
||||
| `gitnexus://repo/{name}/processes` | All execution flows |
|
||||
| `gitnexus://repo/{name}/process/{processName}` | Step-by-step trace |
|
||||
| `gitnexus://repo/{name}/schema` | Graph schema for Cypher |
|
||||
|
||||
## Graph Schema
|
||||
|
||||
**Nodes:** File, Folder, Function, Class, Interface, Method, CodeElement, Community, Process, Route, Tool, plus language-specific types (Struct, Enum, Trait, Impl, Namespace, Module, …) and BasicBlock (`--pdg` indexes only). The full node list lives in `gitnexus://repo/{name}/schema`.
|
||||
**Edges (via CodeRelation.type):** CALLS, IMPORTS, EXTENDS, IMPLEMENTS, DEFINES, CONTAINS, MEMBER_OF, HAS_METHOD, HAS_PROPERTY, ACCESSES, METHOD_OVERRIDES, METHOD_IMPLEMENTS, STEP_IN_PROCESS, HANDLES_ROUTE, FETCHES, HANDLES_TOOL, ENTRY_POINT_OF, WRAPS, QUERIES, INJECTS, plus `--pdg`-only types (CFG, REACHING_DEF, TAINTED, SANITIZES, TAINT_PATH, CDG — zero rows on a default index).
|
||||
|
||||
Read `gitnexus://repo/{name}/schema` before writing Cypher — it is the authoritative schema for the indexed repo.
|
||||
|
||||
```cypher
|
||||
MATCH (caller)-[:CodeRelation {type: 'CALLS'}]->(f:Function {name: "myFunc"})
|
||||
RETURN caller.name, caller.filePath
|
||||
```
|
||||
@@ -1,97 +0,0 @@
|
||||
---
|
||||
name: gitnexus-impact-analysis
|
||||
description: "Use when the user wants to know what will break if they change something, or needs safety analysis before editing code. Examples: \"Is it safe to change X?\", \"What depends on this?\", \"What will break?\""
|
||||
---
|
||||
|
||||
# Impact Analysis with GitNexus
|
||||
|
||||
## When to Use
|
||||
|
||||
- "Is it safe to change this function?"
|
||||
- "What will break if I modify X?"
|
||||
- "Show me the blast radius"
|
||||
- "Who uses this code?"
|
||||
- Before making non-trivial code changes
|
||||
- Before committing — to understand what your changes affect
|
||||
|
||||
## Workflow
|
||||
|
||||
```
|
||||
1. impact({target: "X", direction: "upstream"}) → What depends on this
|
||||
2. READ gitnexus://repo/{name}/processes → Check affected execution flows
|
||||
3. detect_changes() → Map current git changes to affected flows
|
||||
4. Assess risk and report to user
|
||||
```
|
||||
|
||||
> If "Index is stale" → run `node .gitnexus/run.cjs analyze` in terminal.
|
||||
|
||||
## Checklist
|
||||
|
||||
```
|
||||
- [ ] impact({target, direction: "upstream"}) to find dependents
|
||||
- [ ] Review d=1 items first (these WILL BREAK)
|
||||
- [ ] Check high-confidence (>0.8) dependencies
|
||||
- [ ] READ processes to check affected execution flows
|
||||
- [ ] detect_changes() for pre-commit check
|
||||
- [ ] Assess risk level and report to user
|
||||
```
|
||||
|
||||
## Understanding Output
|
||||
|
||||
| Depth | Risk Level | Meaning |
|
||||
| ----- | ---------------- | ------------------------ |
|
||||
| d=1 | **WILL BREAK** | Direct callers/importers |
|
||||
| d=2 | LIKELY AFFECTED | Indirect dependencies |
|
||||
| d=3 | MAY NEED TESTING | Transitive effects |
|
||||
|
||||
## Risk Assessment
|
||||
|
||||
| Affected | Risk |
|
||||
| ------------------------------ | -------- |
|
||||
| <5 symbols, few processes | LOW |
|
||||
| 5-15 symbols, 2-5 processes | MEDIUM |
|
||||
| >15 symbols or many processes | HIGH |
|
||||
| Critical path (auth, payments) | CRITICAL |
|
||||
|
||||
## Tools
|
||||
|
||||
**impact** — the primary tool for symbol blast radius:
|
||||
|
||||
```
|
||||
impact({
|
||||
target: "validateUser",
|
||||
direction: "upstream",
|
||||
minConfidence: 0.8,
|
||||
maxDepth: 3
|
||||
})
|
||||
|
||||
→ d=1 (WILL BREAK):
|
||||
- loginHandler (src/auth/login.ts:42) [CALLS, 100%]
|
||||
- apiMiddleware (src/api/middleware.ts:15) [CALLS, 100%]
|
||||
|
||||
→ d=2 (LIKELY AFFECTED):
|
||||
- authRouter (src/routes/auth.ts:22) [CALLS, 95%]
|
||||
```
|
||||
|
||||
**detect_changes** — git-diff based impact analysis:
|
||||
|
||||
```
|
||||
detect_changes({scope: "staged"})
|
||||
|
||||
→ Changed: 5 symbols in 3 files
|
||||
→ Affected: LoginFlow, TokenRefresh, APIMiddlewarePipeline
|
||||
→ Risk: MEDIUM
|
||||
```
|
||||
|
||||
## Example: "What breaks if I change validateUser?"
|
||||
|
||||
```
|
||||
1. impact({target: "validateUser", direction: "upstream"})
|
||||
→ d=1: loginHandler, apiMiddleware (WILL BREAK)
|
||||
→ d=2: authRouter, sessionManager (LIKELY AFFECTED)
|
||||
|
||||
2. READ gitnexus://repo/my-app/processes
|
||||
→ LoginFlow and TokenRefresh touch validateUser
|
||||
|
||||
3. Risk: 2 direct callers, 2 processes = MEDIUM
|
||||
```
|
||||
@@ -1,121 +0,0 @@
|
||||
---
|
||||
name: gitnexus-refactoring
|
||||
description: "Use when the user wants to rename, extract, split, move, or restructure code safely. Examples: \"Rename this function\", \"Extract this into a module\", \"Refactor this class\", \"Move this to a separate file\""
|
||||
---
|
||||
|
||||
# Refactoring with GitNexus
|
||||
|
||||
## When to Use
|
||||
|
||||
- "Rename this function safely"
|
||||
- "Extract this into a module"
|
||||
- "Split this service"
|
||||
- "Move this to a new file"
|
||||
- Any task involving renaming, extracting, splitting, or restructuring code
|
||||
|
||||
## Workflow
|
||||
|
||||
```
|
||||
1. impact({target: "X", direction: "upstream"}) → Map all dependents
|
||||
2. query({search_query: "X"}) → Find execution flows involving X
|
||||
3. context({name: "X"}) → See all incoming/outgoing refs
|
||||
4. Plan update order: interfaces → implementations → callers → tests
|
||||
```
|
||||
|
||||
> If "Index is stale" → run `node .gitnexus/run.cjs analyze` in terminal.
|
||||
|
||||
## Checklists
|
||||
|
||||
### Rename Symbol
|
||||
|
||||
```
|
||||
- [ ] rename({symbol_name: "oldName", new_name: "newName", dry_run: true}) — preview all edits
|
||||
- [ ] Review graph edits (high confidence) and text_search edits (review carefully)
|
||||
- [ ] If satisfied: rename({..., dry_run: false}) — apply edits
|
||||
- [ ] detect_changes() — verify only expected files changed
|
||||
- [ ] Run tests for affected processes
|
||||
```
|
||||
|
||||
### Extract Module
|
||||
|
||||
```
|
||||
- [ ] context({name: target}) — see all incoming/outgoing refs
|
||||
- [ ] impact({target, direction: "upstream"}) — find all external callers
|
||||
- [ ] Define new module interface
|
||||
- [ ] Extract code, update imports
|
||||
- [ ] detect_changes() — verify affected scope
|
||||
- [ ] Run tests for affected processes
|
||||
```
|
||||
|
||||
### Split Function/Service
|
||||
|
||||
```
|
||||
- [ ] context({name: target}) — understand all callees
|
||||
- [ ] Group callees by responsibility
|
||||
- [ ] impact({target, direction: "upstream"}) — map callers to update
|
||||
- [ ] Create new functions/services
|
||||
- [ ] Update callers
|
||||
- [ ] detect_changes() — verify affected scope
|
||||
- [ ] Run tests for affected processes
|
||||
```
|
||||
|
||||
## Tools
|
||||
|
||||
**rename** — automated multi-file rename:
|
||||
|
||||
```
|
||||
rename({symbol_name: "validateUser", new_name: "authenticateUser", dry_run: true})
|
||||
→ 12 edits across 8 files
|
||||
→ 10 graph edits (high confidence), 2 text_search edits (review)
|
||||
→ Changes: [{file_path, edits: [{line, old_text, new_text, confidence}]}]
|
||||
```
|
||||
|
||||
**impact** — map all dependents first:
|
||||
|
||||
```
|
||||
impact({target: "validateUser", direction: "upstream"})
|
||||
→ d=1: loginHandler, apiMiddleware, testUtils
|
||||
→ Affected Processes: LoginFlow, TokenRefresh
|
||||
```
|
||||
|
||||
**detect_changes** — verify your changes after refactoring:
|
||||
|
||||
```
|
||||
detect_changes({scope: "all"})
|
||||
→ Changed: 8 files, 12 symbols
|
||||
→ Affected processes: LoginFlow, TokenRefresh
|
||||
→ Risk: MEDIUM
|
||||
```
|
||||
|
||||
**cypher** — custom reference queries:
|
||||
|
||||
```cypher
|
||||
MATCH (caller)-[:CodeRelation {type: 'CALLS'}]->(f:Function {name: "validateUser"})
|
||||
RETURN caller.name, caller.filePath ORDER BY caller.filePath
|
||||
```
|
||||
|
||||
## Risk Rules
|
||||
|
||||
| Risk Factor | Mitigation |
|
||||
| ------------------- | ----------------------------------------- |
|
||||
| Many callers (>5) | Use rename for automated updates |
|
||||
| Cross-area refs | Use detect_changes after to verify scope |
|
||||
| String/dynamic refs | query to find them |
|
||||
| External/public API | Version and deprecate properly |
|
||||
|
||||
## Example: Rename `validateUser` to `authenticateUser`
|
||||
|
||||
```
|
||||
1. rename({symbol_name: "validateUser", new_name: "authenticateUser", dry_run: true})
|
||||
→ 12 edits: 10 graph (safe), 2 text_search (review)
|
||||
→ Files: validator.ts, login.ts, middleware.ts, config.json...
|
||||
|
||||
2. Review text_search edits (config.json: dynamic reference!)
|
||||
|
||||
3. rename({symbol_name: "validateUser", new_name: "authenticateUser", dry_run: false})
|
||||
→ Applied 12 edits across 8 files
|
||||
|
||||
4. detect_changes({scope: "all"})
|
||||
→ Affected: LoginFlow, TokenRefresh
|
||||
→ Risk: MEDIUM — run tests for these flows
|
||||
```
|
||||
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
|
||||
[ 159ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=9a31a45b:20102
|
||||
@@ -1 +0,0 @@
|
||||
[ 158ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=9a31a45b:20102
|
||||
@@ -1 +0,0 @@
|
||||
[ 337ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=9a31a45b:20102
|
||||
Whitespace-only changes.
@@ -1,70 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "省市区" [ref=e6] [cursor=pointer]
|
||||
- button "自然地理区位" [ref=e12] [cursor=pointer]
|
||||
- button "设施类别" [ref=e17] [cursor=pointer]
|
||||
- button "建筑性质" [ref=e23] [cursor=pointer]
|
||||
- button "建设阶段" [ref=e28] [cursor=pointer]
|
||||
- button "规划形式" [ref=e35] [cursor=pointer]
|
||||
- button "时间" [ref=e42] [cursor=pointer]
|
||||
- button "面积" [ref=e46] [cursor=pointer]
|
||||
- region "年度总费用图表" [ref=e54]:
|
||||
- generic [ref=e55]:
|
||||
- button "纵坐标:造价(元)" [ref=e57] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e58]: 正在加载数据
|
||||
- generic [ref=e59]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e60]:
|
||||
- img "interactive chart"
|
||||
- region [ref=e61]
|
||||
- toolbar "标注" [ref=e62]:
|
||||
- button "库" [ref=e63] [cursor=pointer]
|
||||
- button "指" [ref=e64] [cursor=pointer]
|
||||
- button "均" [ref=e65] [cursor=pointer]
|
||||
- button "Line Tool" [disabled] [ref=e66]
|
||||
- button "Text Tool" [disabled] [ref=e67]
|
||||
- button "Shape Tool" [disabled] [ref=e68]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e69]
|
||||
- button "全屏(F11)" [ref=e70] [cursor=pointer]
|
||||
- button "Clear annotations" [disabled] [ref=e71]
|
||||
- button "切换到表格" [ref=e72] [cursor=pointer]:
|
||||
- generic: 趋
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e73]:
|
||||
- button "缩小" [disabled] [ref=e74]
|
||||
- button "放大" [ref=e75] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e76]
|
||||
- button "右移" [disabled] [ref=e77]
|
||||
- button "重置" [disabled] [ref=e78]
|
||||
- generic [ref=e79]: 正在加载数据
|
||||
- button "收起选择区" [expanded] [ref=e81] [cursor=pointer]
|
||||
- complementary "选择内容" [ref=e85]:
|
||||
- tablist "选择内容切换项" [ref=e86]:
|
||||
- tab "自然地理区位" [selected] [ref=e87] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e88] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e89] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e90] [cursor=pointer]
|
||||
- generic [ref=e91]:
|
||||
- generic [ref=e92]: 自然地理区位
|
||||
- generic [ref=e93]: 加载中
|
||||
@@ -1,80 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "省市区" [ref=e6] [cursor=pointer]
|
||||
- button "自然地理区位" [ref=e12] [cursor=pointer]
|
||||
- button "设施类别" [ref=e17] [cursor=pointer]
|
||||
- button "建筑性质" [active] [ref=e23] [cursor=pointer]
|
||||
- button "建设阶段" [ref=e28] [cursor=pointer]
|
||||
- button "规划形式" [ref=e35] [cursor=pointer]
|
||||
- button "时间" [ref=e42] [cursor=pointer]
|
||||
- button "面积" [ref=e46] [cursor=pointer]
|
||||
- region "年度总费用图表" [ref=e54]:
|
||||
- generic [ref=e55]:
|
||||
- button "纵坐标:造价(元)" [ref=e57] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e58]: "Expected property name or '}' in JSON at position 1 (line 1 column 2)"
|
||||
- generic [ref=e59]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e60]:
|
||||
- img "interactive chart"
|
||||
- region [ref=e61]
|
||||
- toolbar "标注" [ref=e62]:
|
||||
- button "库" [ref=e63] [cursor=pointer]
|
||||
- button "指" [ref=e64] [cursor=pointer]
|
||||
- button "均" [ref=e65] [cursor=pointer]
|
||||
- button "Line Tool" [disabled] [ref=e66]
|
||||
- button "Text Tool" [disabled] [ref=e67]
|
||||
- button "Shape Tool" [disabled] [ref=e68]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e69]
|
||||
- button "全屏(F11)" [ref=e70] [cursor=pointer]
|
||||
- button "Clear annotations" [disabled] [ref=e71]
|
||||
- button "切换到表格" [ref=e72] [cursor=pointer]:
|
||||
- generic: 趋
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e73]:
|
||||
- button "缩小" [disabled] [ref=e74]
|
||||
- button "放大" [ref=e75] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e76]
|
||||
- button "右移" [disabled] [ref=e77]
|
||||
- button "重置" [disabled] [ref=e78]
|
||||
- button "收起选择区" [expanded] [ref=e81] [cursor=pointer]
|
||||
- complementary "选择内容" [ref=e85]:
|
||||
- tablist "选择内容切换项" [ref=e86]:
|
||||
- tab "自然地理区位" [selected] [ref=e87] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e88] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e89] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e90] [cursor=pointer]
|
||||
- generic [ref=e91]:
|
||||
- generic [ref=e92]: 自然地理区位
|
||||
- generic [ref=e93]: "Expected property name or '}' in JSON at position 1 (line 1 column 2)"
|
||||
- dialog "建筑性质筛选" [ref=e94]:
|
||||
- generic [ref=e95]:
|
||||
- heading "建筑性质" [level=2] [ref=e96]
|
||||
- button "关闭" [ref=e97] [cursor=pointer]: ×
|
||||
- searchbox "搜索" [ref=e99]
|
||||
- generic [ref=e100]: 未选择
|
||||
- generic [ref=e101]: "Expected property name or '}' in JSON at position 1 (line 1 column 2)"
|
||||
- generic [ref=e103]:
|
||||
- button "清空当前" [ref=e104] [cursor=pointer]
|
||||
- button "取消" [ref=e105] [cursor=pointer]
|
||||
- button "确认" [ref=e106] [cursor=pointer]
|
||||
@@ -1,69 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "省市区" [ref=e6] [cursor=pointer]
|
||||
- button "自然地理区位" [ref=e12] [cursor=pointer]
|
||||
- button "设施类别" [ref=e17] [cursor=pointer]
|
||||
- button "建筑性质" [ref=e23] [cursor=pointer]
|
||||
- button "建设阶段" [ref=e28] [cursor=pointer]
|
||||
- button "规划形式" [ref=e35] [cursor=pointer]
|
||||
- button "时间" [ref=e42] [cursor=pointer]
|
||||
- button "面积" [ref=e46] [cursor=pointer]
|
||||
- region "年度总费用图表" [ref=e54]:
|
||||
- generic [ref=e55]:
|
||||
- button "纵坐标:造价(元)" [ref=e57] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e58]: "Expected property name or '}' in JSON at position 1 (line 1 column 2)"
|
||||
- generic [ref=e59]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e60]:
|
||||
- img "interactive chart"
|
||||
- region [ref=e61]
|
||||
- toolbar "标注" [ref=e62]:
|
||||
- button "库" [ref=e63] [cursor=pointer]
|
||||
- button "指" [ref=e64] [cursor=pointer]
|
||||
- button "均" [ref=e65] [cursor=pointer]
|
||||
- button "Line Tool" [disabled] [ref=e66]
|
||||
- button "Text Tool" [disabled] [ref=e67]
|
||||
- button "Shape Tool" [disabled] [ref=e68]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e69]
|
||||
- button "全屏(F11)" [ref=e70] [cursor=pointer]
|
||||
- button "Clear annotations" [disabled] [ref=e71]
|
||||
- button "切换到表格" [ref=e72] [cursor=pointer]:
|
||||
- generic: 趋
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e73]:
|
||||
- button "缩小" [disabled] [ref=e74]
|
||||
- button "放大" [ref=e75] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e76]
|
||||
- button "右移" [disabled] [ref=e77]
|
||||
- button "重置" [disabled] [ref=e78]
|
||||
- button "收起选择区" [expanded] [ref=e81] [cursor=pointer]
|
||||
- complementary "选择内容" [ref=e85]:
|
||||
- tablist "选择内容切换项" [ref=e86]:
|
||||
- tab "自然地理区位" [selected] [ref=e87] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e88] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e89] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e90] [cursor=pointer]
|
||||
- generic [ref=e91]:
|
||||
- generic [ref=e92]: 自然地理区位
|
||||
- generic [ref=e93]: "Expected property name or '}' in JSON at position 1 (line 1 column 2)"
|
||||
@@ -1,86 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "省市区" [ref=e6] [cursor=pointer]
|
||||
- button "自然地理区位" [ref=e12] [cursor=pointer]
|
||||
- button "设施类别" [ref=e17] [cursor=pointer]
|
||||
- button "建筑性质" [active] [ref=e23] [cursor=pointer]
|
||||
- button "建设阶段" [ref=e28] [cursor=pointer]
|
||||
- button "规划形式" [ref=e35] [cursor=pointer]
|
||||
- button "时间" [ref=e42] [cursor=pointer]
|
||||
- button "面积" [ref=e46] [cursor=pointer]
|
||||
- region "年度总费用图表" [ref=e54]:
|
||||
- generic [ref=e55]:
|
||||
- button "纵坐标:造价(元)" [ref=e57] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e58]: "Expected property name or '}' in JSON at position 1 (line 1 column 2)"
|
||||
- generic [ref=e59]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e60]:
|
||||
- img "interactive chart"
|
||||
- region [ref=e61]
|
||||
- toolbar "标注" [ref=e62]:
|
||||
- button "库" [ref=e63] [cursor=pointer]
|
||||
- button "指" [ref=e64] [cursor=pointer]
|
||||
- button "均" [ref=e65] [cursor=pointer]
|
||||
- button "Line Tool" [disabled] [ref=e66]
|
||||
- button "Text Tool" [disabled] [ref=e67]
|
||||
- button "Shape Tool" [disabled] [ref=e68]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e69]
|
||||
- button "全屏(F11)" [ref=e70] [cursor=pointer]
|
||||
- button "Clear annotations" [disabled] [ref=e71]
|
||||
- button "切换到表格" [ref=e72] [cursor=pointer]:
|
||||
- generic: 趋
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e73]:
|
||||
- button "缩小" [disabled] [ref=e74]
|
||||
- button "放大" [ref=e75] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e76]
|
||||
- button "右移" [disabled] [ref=e77]
|
||||
- button "重置" [disabled] [ref=e78]
|
||||
- button "收起选择区" [expanded] [ref=e81] [cursor=pointer]
|
||||
- complementary "选择内容" [ref=e85]:
|
||||
- tablist "选择内容切换项" [ref=e86]:
|
||||
- tab "自然地理区位" [selected] [ref=e87] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e88] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e89] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e90] [cursor=pointer]
|
||||
- generic [ref=e91]:
|
||||
- generic [ref=e92]: 自然地理区位
|
||||
- generic [ref=e93]: "Expected property name or '}' in JSON at position 1 (line 1 column 2)"
|
||||
- dialog "建筑性质筛选" [ref=e108]:
|
||||
- generic [ref=e109]:
|
||||
- heading "建筑性质" [level=2] [ref=e110]
|
||||
- button "关闭" [ref=e111] [cursor=pointer]: ×
|
||||
- searchbox "搜索" [ref=e113]
|
||||
- generic [ref=e114]: 未选择
|
||||
- tree [ref=e116]:
|
||||
- treeitem [ref=e117]:
|
||||
- button "公共建筑" [ref=e120] [cursor=pointer]
|
||||
- treeitem [ref=e123]:
|
||||
- button "民用建筑" [ref=e126] [cursor=pointer]
|
||||
- treeitem [ref=e129]:
|
||||
- button "工业建筑" [ref=e132] [cursor=pointer]
|
||||
- generic [ref=e135]:
|
||||
- button "清空当前" [ref=e136] [cursor=pointer]
|
||||
- button "取消" [ref=e137] [cursor=pointer]
|
||||
- button "确认" [ref=e138] [cursor=pointer]
|
||||
@@ -1,82 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "省市区" [ref=e6] [cursor=pointer]
|
||||
- button "自然地理区位" [ref=e12] [cursor=pointer]
|
||||
- button "设施类别" [ref=e17] [cursor=pointer]
|
||||
- button "建筑性质" [ref=e23] [cursor=pointer]
|
||||
- button "建设阶段" [ref=e28] [cursor=pointer]
|
||||
- button "规划形式" [ref=e35] [cursor=pointer]
|
||||
- button "时间" [ref=e42] [cursor=pointer]
|
||||
- button "面积" [ref=e46] [cursor=pointer]
|
||||
- region "年度总费用图表" [ref=e54]:
|
||||
- generic [ref=e55]:
|
||||
- button "纵坐标:造价(元)" [ref=e57] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e58]: "Expected property name or '}' in JSON at position 1 (line 1 column 2)"
|
||||
- generic [ref=e59]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e60]:
|
||||
- img "interactive chart"
|
||||
- region [ref=e61]
|
||||
- toolbar "标注" [ref=e62]:
|
||||
- button "库" [ref=e63] [cursor=pointer]
|
||||
- button "指" [ref=e64] [cursor=pointer]
|
||||
- button "均" [ref=e65] [cursor=pointer]
|
||||
- button "Line Tool" [disabled] [ref=e66]
|
||||
- button "Text Tool" [disabled] [ref=e67]
|
||||
- button "Shape Tool" [disabled] [ref=e68]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e69]
|
||||
- button "全屏(F11)" [ref=e70] [cursor=pointer]
|
||||
- button "Clear annotations" [disabled] [ref=e71]
|
||||
- button "切换到表格" [ref=e72] [cursor=pointer]:
|
||||
- generic: 趋
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e73]:
|
||||
- button "缩小" [disabled] [ref=e74]
|
||||
- button "放大" [ref=e75] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e76]
|
||||
- button "右移" [disabled] [ref=e77]
|
||||
- button "重置" [disabled] [ref=e78]
|
||||
- button "收起选择区" [expanded] [ref=e81] [cursor=pointer]
|
||||
- complementary "选择内容" [ref=e85]:
|
||||
- tablist "选择内容切换项" [ref=e86]:
|
||||
- tab "自然地理区位" [selected] [ref=e87] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e88] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e89] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e90] [cursor=pointer]
|
||||
- generic [ref=e91]:
|
||||
- generic [ref=e92]: 自然地理区位
|
||||
- generic [ref=e93]: "Expected property name or '}' in JSON at position 1 (line 1 column 2)"
|
||||
- dialog "建筑性质筛选" [ref=e108]:
|
||||
- generic [ref=e109]:
|
||||
- heading "建筑性质" [level=2] [ref=e110]
|
||||
- button "关闭" [ref=e111] [cursor=pointer]: ×
|
||||
- searchbox "搜索" [ref=e113]: 公共
|
||||
- generic [ref=e114]: 已选 1 项
|
||||
- tree [ref=e139]:
|
||||
- treeitem [ref=e140]:
|
||||
- button "公共建筑" [active] [pressed] [ref=e143] [cursor=pointer]
|
||||
- generic [ref=e135]:
|
||||
- button "清空当前" [ref=e136] [cursor=pointer]
|
||||
- button "取消" [ref=e137] [cursor=pointer]
|
||||
- button "确认" [ref=e138] [cursor=pointer]
|
||||
@@ -1,72 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "省市区" [ref=e6] [cursor=pointer]
|
||||
- button "自然地理区位" [ref=e12] [cursor=pointer]
|
||||
- button "设施类别" [ref=e17] [cursor=pointer]
|
||||
- button "建筑性质 1" [pressed] [ref=e146] [cursor=pointer]:
|
||||
- generic [ref=e27]: 建筑性质
|
||||
- strong [ref=e147]: "1"
|
||||
- button "建设阶段" [ref=e28] [cursor=pointer]
|
||||
- button "规划形式" [ref=e35] [cursor=pointer]
|
||||
- button "时间" [ref=e42] [cursor=pointer]
|
||||
- button "面积" [ref=e46] [cursor=pointer]
|
||||
- button "清空" [ref=e148] [cursor=pointer]
|
||||
- region "年度总费用图表" [ref=e54]:
|
||||
- generic [ref=e55]:
|
||||
- button "纵坐标:造价(元)" [ref=e57] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e149]: "Expected property name or '}' in JSON at position 1 (line 1 column 2)"
|
||||
- generic [ref=e59]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e60]:
|
||||
- img "interactive chart"
|
||||
- region [ref=e61]
|
||||
- toolbar "标注" [ref=e62]:
|
||||
- button "库" [ref=e63] [cursor=pointer]
|
||||
- button "指" [ref=e64] [cursor=pointer]
|
||||
- button "均" [ref=e65] [cursor=pointer]
|
||||
- button "Line Tool" [disabled] [ref=e66]
|
||||
- button "Text Tool" [disabled] [ref=e67]
|
||||
- button "Shape Tool" [disabled] [ref=e68]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e69]
|
||||
- button "全屏(F11)" [ref=e70] [cursor=pointer]
|
||||
- button "Clear annotations" [disabled] [ref=e71]
|
||||
- button "切换到表格" [ref=e72] [cursor=pointer]:
|
||||
- generic: 趋
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e73]:
|
||||
- button "缩小" [disabled] [ref=e74]
|
||||
- button "放大" [ref=e75] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e76]
|
||||
- button "右移" [disabled] [ref=e77]
|
||||
- button "重置" [disabled] [ref=e78]
|
||||
- button "收起选择区" [expanded] [ref=e81] [cursor=pointer]
|
||||
- complementary "选择内容" [ref=e85]:
|
||||
- tablist "选择内容切换项" [ref=e86]:
|
||||
- tab "自然地理区位" [selected] [ref=e87] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e88] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e89] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e90] [cursor=pointer]
|
||||
- generic [ref=e91]:
|
||||
- generic [ref=e92]: 自然地理区位
|
||||
- generic [ref=e93]: "Expected property name or '}' in JSON at position 1 (line 1 column 2)"
|
||||
@@ -1,89 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "省市区" [ref=e6] [cursor=pointer]
|
||||
- button "自然地理区位" [ref=e12] [cursor=pointer]
|
||||
- button "设施类别" [ref=e17] [cursor=pointer]
|
||||
- button "建筑性质 1" [active] [pressed] [ref=e146] [cursor=pointer]:
|
||||
- generic [ref=e27]: 建筑性质
|
||||
- strong [ref=e147]: "1"
|
||||
- button "建设阶段" [ref=e28] [cursor=pointer]
|
||||
- button "规划形式" [ref=e35] [cursor=pointer]
|
||||
- button "时间" [ref=e42] [cursor=pointer]
|
||||
- button "面积" [ref=e46] [cursor=pointer]
|
||||
- button "清空" [ref=e148] [cursor=pointer]
|
||||
- region "年度总费用图表" [ref=e54]:
|
||||
- generic [ref=e55]:
|
||||
- button "纵坐标:造价(元)" [ref=e57] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e149]: "Expected property name or '}' in JSON at position 1 (line 1 column 2)"
|
||||
- generic [ref=e59]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e60]:
|
||||
- img "interactive chart"
|
||||
- region [ref=e61]
|
||||
- toolbar "标注" [ref=e62]:
|
||||
- button "库" [ref=e63] [cursor=pointer]
|
||||
- button "指" [ref=e64] [cursor=pointer]
|
||||
- button "均" [ref=e65] [cursor=pointer]
|
||||
- button "Line Tool" [disabled] [ref=e66]
|
||||
- button "Text Tool" [disabled] [ref=e67]
|
||||
- button "Shape Tool" [disabled] [ref=e68]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e69]
|
||||
- button "全屏(F11)" [ref=e70] [cursor=pointer]
|
||||
- button "Clear annotations" [disabled] [ref=e71]
|
||||
- button "切换到表格" [ref=e72] [cursor=pointer]:
|
||||
- generic: 趋
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e73]:
|
||||
- button "缩小" [disabled] [ref=e74]
|
||||
- button "放大" [ref=e75] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e76]
|
||||
- button "右移" [disabled] [ref=e77]
|
||||
- button "重置" [disabled] [ref=e78]
|
||||
- button "收起选择区" [expanded] [ref=e81] [cursor=pointer]
|
||||
- complementary "选择内容" [ref=e85]:
|
||||
- tablist "选择内容切换项" [ref=e86]:
|
||||
- tab "自然地理区位" [selected] [ref=e87] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e88] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e89] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e90] [cursor=pointer]
|
||||
- generic [ref=e91]:
|
||||
- generic [ref=e92]: 自然地理区位
|
||||
- generic [ref=e93]: "Expected property name or '}' in JSON at position 1 (line 1 column 2)"
|
||||
- dialog "建筑性质筛选" [ref=e150]:
|
||||
- generic [ref=e151]:
|
||||
- heading "建筑性质" [level=2] [ref=e152]
|
||||
- button "关闭" [ref=e153] [cursor=pointer]: ×
|
||||
- searchbox "搜索" [ref=e155]
|
||||
- generic [ref=e156]: 已选 1 项
|
||||
- tree [ref=e158]:
|
||||
- treeitem [ref=e159]:
|
||||
- button "公共建筑" [pressed] [ref=e162] [cursor=pointer]
|
||||
- treeitem [ref=e165]:
|
||||
- button "民用建筑" [ref=e168] [cursor=pointer]
|
||||
- treeitem [ref=e171]:
|
||||
- button "工业建筑" [ref=e174] [cursor=pointer]
|
||||
- generic [ref=e177]:
|
||||
- button "清空当前" [ref=e178] [cursor=pointer]
|
||||
- button "取消" [ref=e179] [cursor=pointer]
|
||||
- button "确认" [ref=e180] [cursor=pointer]
|
||||
Whitespace-only changes.
@@ -1,70 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "省市区" [ref=e6] [cursor=pointer]
|
||||
- button "自然地理区位" [ref=e12] [cursor=pointer]
|
||||
- button "设施类别" [ref=e17] [cursor=pointer]
|
||||
- button "建筑性质" [ref=e23] [cursor=pointer]
|
||||
- button "建设阶段" [ref=e28] [cursor=pointer]
|
||||
- button "规划形式" [ref=e35] [cursor=pointer]
|
||||
- button "时间" [ref=e42] [cursor=pointer]
|
||||
- button "面积" [ref=e46] [cursor=pointer]
|
||||
- region "年度总费用图表" [ref=e54]:
|
||||
- generic [ref=e55]:
|
||||
- button "纵坐标:造价(元)" [ref=e57] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e58]: 正在加载数据
|
||||
- generic [ref=e59]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e60]:
|
||||
- img "interactive chart"
|
||||
- region [ref=e61]
|
||||
- toolbar "标注" [ref=e62]:
|
||||
- button "库" [ref=e63] [cursor=pointer]
|
||||
- button "指" [ref=e64] [cursor=pointer]
|
||||
- button "均" [ref=e65] [cursor=pointer]
|
||||
- button "Line Tool" [disabled] [ref=e66]
|
||||
- button "Text Tool" [disabled] [ref=e67]
|
||||
- button "Shape Tool" [disabled] [ref=e68]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e69]
|
||||
- button "全屏(F11)" [ref=e70] [cursor=pointer]
|
||||
- button "Clear annotations" [disabled] [ref=e71]
|
||||
- button "切换到表格" [ref=e72] [cursor=pointer]:
|
||||
- generic: 趋
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e73]:
|
||||
- button "缩小" [disabled] [ref=e74]
|
||||
- button "放大" [ref=e75] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e76]
|
||||
- button "右移" [disabled] [ref=e77]
|
||||
- button "重置" [disabled] [ref=e78]
|
||||
- generic [ref=e79]: 正在加载数据
|
||||
- button "收起选择区" [expanded] [ref=e81] [cursor=pointer]
|
||||
- complementary "选择内容" [ref=e85]:
|
||||
- tablist "选择内容切换项" [ref=e86]:
|
||||
- tab "自然地理区位" [selected] [ref=e87] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e88] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e89] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e90] [cursor=pointer]
|
||||
- generic [ref=e91]:
|
||||
- generic [ref=e92]: 自然地理区位
|
||||
- generic [ref=e93]: 加载中
|
||||
@@ -1,85 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "省市区" [ref=e6] [cursor=pointer]
|
||||
- button "自然地理区位" [ref=e12] [cursor=pointer]
|
||||
- button "设施类别" [ref=e17] [cursor=pointer]
|
||||
- button "建筑性质" [active] [ref=e23] [cursor=pointer]
|
||||
- button "建设阶段" [ref=e28] [cursor=pointer]
|
||||
- button "规划形式" [ref=e35] [cursor=pointer]
|
||||
- button "时间" [ref=e42] [cursor=pointer]
|
||||
- button "面积" [ref=e46] [cursor=pointer]
|
||||
- region "年度总费用图表" [ref=e54]:
|
||||
- generic [ref=e55]:
|
||||
- button "纵坐标:造价(元)" [ref=e57] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e59]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e60]:
|
||||
- img "interactive chart"
|
||||
- region [ref=e61]
|
||||
- toolbar "标注" [ref=e62]:
|
||||
- button "库" [ref=e63] [cursor=pointer]
|
||||
- button "指" [ref=e64] [cursor=pointer]
|
||||
- button "均" [ref=e65] [cursor=pointer]
|
||||
- button "Line Tool" [disabled] [ref=e66]
|
||||
- button "Text Tool" [disabled] [ref=e67]
|
||||
- button "Shape Tool" [disabled] [ref=e68]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e69]
|
||||
- button "全屏(F11)" [ref=e70] [cursor=pointer]
|
||||
- button "Clear annotations" [disabled] [ref=e71]
|
||||
- button "切换到表格" [ref=e72] [cursor=pointer]:
|
||||
- generic: 趋
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e73]:
|
||||
- button "缩小" [disabled] [ref=e74]
|
||||
- button "放大" [ref=e75] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e76]
|
||||
- button "右移" [disabled] [ref=e77]
|
||||
- button "重置" [disabled] [ref=e78]
|
||||
- button "收起选择区" [expanded] [ref=e81] [cursor=pointer]
|
||||
- complementary "选择内容" [ref=e85]:
|
||||
- tablist "选择内容切换项" [ref=e86]:
|
||||
- tab "自然地理区位" [selected] [ref=e87] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e88] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e89] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e90] [cursor=pointer]
|
||||
- generic [ref=e91]:
|
||||
- generic [ref=e92]: 自然地理区位
|
||||
- generic [ref=e93]: 接口待接入
|
||||
- dialog "建筑性质筛选" [ref=e94]:
|
||||
- generic [ref=e95]:
|
||||
- heading "建筑性质" [level=2] [ref=e96]
|
||||
- button "关闭" [ref=e97] [cursor=pointer]: ×
|
||||
- searchbox "搜索" [ref=e99]
|
||||
- generic [ref=e100]: 未选择
|
||||
- tree [ref=e102]:
|
||||
- treeitem [ref=e103]:
|
||||
- button "公共建筑" [ref=e106] [cursor=pointer]
|
||||
- treeitem [ref=e109]:
|
||||
- button "民用建筑" [ref=e112] [cursor=pointer]
|
||||
- treeitem [ref=e115]:
|
||||
- button "工业建筑" [ref=e118] [cursor=pointer]
|
||||
- generic [ref=e121]:
|
||||
- button "清空当前" [ref=e122] [cursor=pointer]
|
||||
- button "取消" [ref=e123] [cursor=pointer]
|
||||
- button "确认" [ref=e124] [cursor=pointer]
|
||||
Whitespace-only changes.
@@ -1,68 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "省市区" [ref=e6] [cursor=pointer]
|
||||
- button "自然地理区位" [ref=e12] [cursor=pointer]
|
||||
- button "设施类别" [ref=e17] [cursor=pointer]
|
||||
- button "建筑性质" [ref=e23] [cursor=pointer]
|
||||
- button "建设阶段" [ref=e28] [cursor=pointer]
|
||||
- button "规划形式" [ref=e35] [cursor=pointer]
|
||||
- button "时间" [ref=e42] [cursor=pointer]
|
||||
- button "面积" [ref=e46] [cursor=pointer]
|
||||
- region "年度总费用图表" [ref=e54]:
|
||||
- generic [ref=e55]:
|
||||
- button "纵坐标:造价(元)" [ref=e57] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e58]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e59]:
|
||||
- img "interactive chart"
|
||||
- region [ref=e60]
|
||||
- toolbar "标注" [ref=e61]:
|
||||
- button "库" [ref=e62] [cursor=pointer]
|
||||
- button "指" [ref=e63] [cursor=pointer]
|
||||
- button "均" [ref=e64] [cursor=pointer]
|
||||
- button "Line Tool" [disabled] [ref=e65]
|
||||
- button "Text Tool" [disabled] [ref=e66]
|
||||
- button "Shape Tool" [disabled] [ref=e67]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e68]
|
||||
- button "全屏(F11)" [ref=e69] [cursor=pointer]
|
||||
- button "Clear annotations" [disabled] [ref=e70]
|
||||
- button "切换到表格" [ref=e71] [cursor=pointer]:
|
||||
- generic: 趋
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e72]:
|
||||
- button "缩小" [disabled] [ref=e73]
|
||||
- button "放大" [ref=e74] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e75]
|
||||
- button "右移" [disabled] [ref=e76]
|
||||
- button "重置" [disabled] [ref=e77]
|
||||
- button "收起选择区" [expanded] [ref=e78] [cursor=pointer]
|
||||
- complementary "选择内容" [ref=e82]:
|
||||
- tablist "选择内容切换项" [ref=e83]:
|
||||
- tab "自然地理区位" [selected] [ref=e84] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e85] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e86] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e87] [cursor=pointer]
|
||||
- generic [ref=e88]:
|
||||
- generic [ref=e89]: 自然地理区位
|
||||
- generic [ref=e90]: 加载中
|
||||
@@ -1,116 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "省市区" [ref=e6] [cursor=pointer]
|
||||
- button "自然地理区位" [ref=e12] [cursor=pointer]
|
||||
- button "设施类别" [ref=e17] [cursor=pointer]
|
||||
- button "建筑性质" [ref=e23] [cursor=pointer]
|
||||
- button "建设阶段" [ref=e28] [cursor=pointer]
|
||||
- button "规划形式" [ref=e35] [cursor=pointer]
|
||||
- button "时间" [ref=e42] [cursor=pointer]
|
||||
- button "面积" [ref=e46] [cursor=pointer]
|
||||
- region "年度总费用图表" [ref=e54]:
|
||||
- generic [ref=e55]:
|
||||
- generic [ref=e58]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e59]:
|
||||
- img "interactive chart"
|
||||
- region [ref=e60]
|
||||
- toolbar "标注" [ref=e61]:
|
||||
- button "库" [ref=e62] [cursor=pointer]
|
||||
- button "指" [ref=e63] [cursor=pointer]
|
||||
- button "均" [ref=e64] [cursor=pointer]
|
||||
- button "Line Tool" [disabled] [ref=e65]
|
||||
- button "Text Tool" [disabled] [ref=e66]
|
||||
- button "Shape Tool" [disabled] [ref=e67]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e68]
|
||||
- button "全屏(F11)" [ref=e69] [cursor=pointer]
|
||||
- button "Clear annotations" [disabled] [ref=e70]
|
||||
- button "切换到趋势图" [active] [pressed] [ref=e91] [cursor=pointer]:
|
||||
- generic: 表
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e72]:
|
||||
- button "缩小" [disabled] [ref=e73]
|
||||
- button "放大" [ref=e74] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e75]
|
||||
- button "右移" [disabled] [ref=e76]
|
||||
- button "重置" [disabled] [ref=e77]
|
||||
- generic [ref=e93]:
|
||||
- button "模板库" [ref=e94] [cursor=pointer]: 库
|
||||
- button "指标树形" [ref=e95] [cursor=pointer]: 指
|
||||
- button "切换到趋势图" [ref=e96] [cursor=pointer]: 表
|
||||
- button "全屏" [ref=e97] [cursor=pointer]
|
||||
- button "纵坐标:造价(元)" [ref=e100] [cursor=pointer]: 价
|
||||
- generic [ref=e101]:
|
||||
- grid [ref=e103]:
|
||||
- rowgroup [ref=e104]:
|
||||
- row [ref=e105]:
|
||||
- columnheader "基准阀值" [ref=e106]: 基准阀值
|
||||
- columnheader "样本统计值" [ref=e108]: 样本统计值
|
||||
- row [ref=e110]:
|
||||
- columnheader "年度" [ref=e111]:
|
||||
- generic [ref=e113] [cursor=pointer]:
|
||||
- generic:
|
||||
- columnheader "名称" [ref=e115]:
|
||||
- generic [ref=e117] [cursor=pointer]:
|
||||
- generic:
|
||||
- columnheader "低值(万元)" [ref=e119]:
|
||||
- generic [ref=e121] [cursor=pointer]:
|
||||
- generic:
|
||||
- columnheader "中心值(万元)" [ref=e123]:
|
||||
- generic [ref=e125] [cursor=pointer]:
|
||||
- generic:
|
||||
- columnheader "高值(万元)" [ref=e127]:
|
||||
- generic [ref=e129] [cursor=pointer]:
|
||||
- generic:
|
||||
- columnheader "最大值(万元)" [ref=e131]:
|
||||
- generic [ref=e133] [cursor=pointer]:
|
||||
- generic:
|
||||
- columnheader "最小值(万元)" [ref=e135]:
|
||||
- generic [ref=e137] [cursor=pointer]:
|
||||
- generic:
|
||||
- columnheader "平均值(万元)" [ref=e139]:
|
||||
- generic [ref=e141] [cursor=pointer]:
|
||||
- generic:
|
||||
- columnheader "中位数(万元)" [ref=e143]:
|
||||
- generic [ref=e145] [cursor=pointer]:
|
||||
- generic:
|
||||
- columnheader "标准差(万元)" [ref=e147]:
|
||||
- generic [ref=e149] [cursor=pointer]:
|
||||
- generic:
|
||||
- rowgroup [ref=e151]
|
||||
- rowgroup
|
||||
- rowgroup
|
||||
- rowgroup
|
||||
- text: 请选择右侧分类项
|
||||
- text:
|
||||
- button "收起选择区" [expanded] [ref=e78] [cursor=pointer]
|
||||
- complementary "选择内容" [ref=e82]:
|
||||
- tablist "选择内容切换项" [ref=e83]:
|
||||
- tab "自然地理区位" [selected] [ref=e84] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e85] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e86] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e87] [cursor=pointer]
|
||||
- generic [ref=e88]:
|
||||
- generic [ref=e89]: 自然地理区位
|
||||
- generic [ref=e90]: 接口待接入
|
||||
@@ -1,2 +0,0 @@
|
||||
[ 1001ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=ae174d51:20102
|
||||
[ 1337ms] [ERROR] Failed to load resource: the server responded with a status of 404 (Not Found) @ http://127.0.0.1:5173/favicon.ico:0
|
||||
@@ -1,8 +0,0 @@
|
||||
[ 79ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=ae174d51:20102
|
||||
[ 255622ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"reset"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://127.0.0.1:5173/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=ae174d51:834
|
||||
[ 255658ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"reset"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://127.0.0.1:5173/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=ae174d51:834
|
||||
[ 268128ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"reset"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://127.0.0.1:5173/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=ae174d51:834
|
||||
[ 268149ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"reset"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://127.0.0.1:5173/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=ae174d51:834
|
||||
[ 282018ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"reset"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://127.0.0.1:5173/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=ae174d51:834
|
||||
[ 282037ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"reset"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://127.0.0.1:5173/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=ae174d51:834
|
||||
[ 282064ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"reset"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://127.0.0.1:5173/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=ae174d51:834
|
||||
@@ -1,4 +0,0 @@
|
||||
[ 47ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=ae174d51:20102
|
||||
[ 194ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"reset"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://127.0.0.1:5173/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=ae174d51:834
|
||||
[ 244ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"reset"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://127.0.0.1:5173/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=ae174d51:834
|
||||
[ 293ms] [WARNING] AG Charts - Option `annotations.toolbar.buttons[0].value` cannot be set to `"reset"`; expecting a keyword such as 'line-menu', 'fibonacci-menu', 'text-menu', 'shape-menu', 'measurer-menu', 'line', 'horizontal-line', 'vertical-line', 'parallel-channel', 'disjoint-channel', 'fibonacci-retracement', 'fibonacci-retracement-trend-based', 'text', 'comment', 'callout', 'note' or 'clear', ignoring. @ http://127.0.0.1:5173/node_modules/.vite/deps/chunk-XDC3NMYR.js?v=ae174d51:834
|
||||
@@ -1 +0,0 @@
|
||||
[ 26ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=ae174d51:20102
|
||||
@@ -1,2 +0,0 @@
|
||||
[ 32ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=ae174d51:20102
|
||||
[ 371068ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=ae174d51:20102
|
||||
@@ -1 +0,0 @@
|
||||
[ 99ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=ae174d51:20102
|
||||
@@ -1,5 +0,0 @@
|
||||
[ 77ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=ae174d51:20102
|
||||
[ 1186370ms] [ERROR] The final argument passed to %s changed size between renders. The order and size of this array must remain constant.
|
||||
|
||||
Previous: %s
|
||||
Incoming: %s useEffect [false] [[object Object], , [object Object], false] @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=ae174d51:5627
|
||||
@@ -1 +0,0 @@
|
||||
[ 854ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=ae174d51:20102
|
||||
@@ -1 +0,0 @@
|
||||
[ 88ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=ae174d51:20102
|
||||
@@ -1,5 +0,0 @@
|
||||
[ 219ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=ae174d51:20102
|
||||
[ 139728ms] [ERROR] Failed to load resource: the server responded with a status of 401 () @ https://nest.zwgczx.com/api/v1/zw/getBuildingFunctionCostFilterTree?key=templateLibrary¤ttime=1778560172021&__random__=1778560172021:0
|
||||
[ 142705ms] [ERROR] Failed to load resource: the server responded with a status of 401 () @ https://nest.zwgczx.com/api/v1/zw/getBuildingFunctionCostFilterTree?key=indicatorTree&templateId=3¤ttime=1778560175114&__random__=1778560175114:0
|
||||
[ 304362ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=ae174d51:20102
|
||||
[ 307069ms] [ERROR] Failed to load resource: the server responded with a status of 401 () @ https://nest.zwgczx.com/api/v1/zw/getBuildingFunctionCostFilterTree?key=indicatorTree&templateId=3¤ttime=1778560339458&__random__=1778560339458:0
|
||||
@@ -1 +0,0 @@
|
||||
[ 550538ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=ae174d51:20102
|
||||
@@ -1,2 +0,0 @@
|
||||
[ 136ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5173/node_modules/.vite/deps/react-dom_client.js?v=ae174d51:20102
|
||||
[ 595ms] [ERROR] Failed to load resource: the server responded with a status of 404 (Not Found) @ http://127.0.0.1:5173/favicon.ico:0
|
||||
@@ -1,2 +0,0 @@
|
||||
[ 221ms] [INFO] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold @ http://127.0.0.1:5179/node_modules/.vite/deps/react-dom_client.js?v=eccfa23d:20102
|
||||
[ 1056ms] [ERROR] Failed to load resource: the server responded with a status of 404 (Not Found) @ http://127.0.0.1:5179/favicon.ico:0
|
||||
@@ -1,81 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "模板库 1" [pressed] [ref=e6] [cursor=pointer]:
|
||||
- img [ref=e7]
|
||||
- generic [ref=e9]: 模板库
|
||||
- strong [ref=e10]: "1"
|
||||
- button "指标树形" [ref=e11] [cursor=pointer]:
|
||||
- img [ref=e12]
|
||||
- generic [ref=e19]: 指标树形
|
||||
- button "省市区" [ref=e20] [cursor=pointer]:
|
||||
- img [ref=e21]
|
||||
- generic [ref=e25]: 省市区
|
||||
- button "自然地理区位" [ref=e26] [cursor=pointer]:
|
||||
- img [ref=e27]
|
||||
- generic [ref=e30]: 自然地理区位
|
||||
- button "设施类别" [ref=e31] [cursor=pointer]:
|
||||
- img [ref=e32]
|
||||
- generic [ref=e36]: 设施类别
|
||||
- button "建设阶段" [ref=e37] [cursor=pointer]:
|
||||
- img [ref=e38]
|
||||
- generic [ref=e43]: 建设阶段
|
||||
- button "规划形式" [ref=e44] [cursor=pointer]:
|
||||
- img [ref=e45]
|
||||
- generic [ref=e50]: 规划形式
|
||||
- region "年度总费用图表" [ref=e51]:
|
||||
- generic [ref=e52]:
|
||||
- button "纵坐标:造价(元)" [ref=e54] [cursor=pointer]: 造价(元)
|
||||
- button "全屏(F11)" [ref=e55] [cursor=pointer]
|
||||
- generic [ref=e57]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e58]:
|
||||
- img "interactive chart":
|
||||
- generic:
|
||||
- img
|
||||
- img
|
||||
- region [ref=e59]
|
||||
- toolbar "标注" [ref=e60]:
|
||||
- button "均" [disabled] [ref=e61]:
|
||||
- generic: 均
|
||||
- button "Line Tool" [disabled] [ref=e62]
|
||||
- button "Text Tool" [disabled] [ref=e63]
|
||||
- button "Shape Tool" [disabled] [ref=e64]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e65]
|
||||
- button "Clear annotations" [disabled] [ref=e66]
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e67]:
|
||||
- button "缩小" [disabled] [ref=e68]
|
||||
- button "放大" [ref=e69] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e70]
|
||||
- button "右移" [disabled] [ref=e71]
|
||||
- button "重置" [disabled] [ref=e72]
|
||||
- complementary "选择内容" [ref=e73]:
|
||||
- tablist "选择内容切换项" [ref=e74]:
|
||||
- tab "自然地理区位" [selected] [ref=e75] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e76] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e77] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e78] [cursor=pointer]
|
||||
- generic [ref=e79]:
|
||||
- generic [ref=e80]: 自然地理区位
|
||||
- generic [ref=e81]: 加载中
|
||||
@@ -1,81 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "模板库 1" [pressed] [ref=e6] [cursor=pointer]:
|
||||
- img [ref=e7]
|
||||
- generic [ref=e9]: 模板库
|
||||
- strong [ref=e10]: "1"
|
||||
- button "指标树形" [ref=e11] [cursor=pointer]:
|
||||
- img [ref=e12]
|
||||
- generic [ref=e19]: 指标树形
|
||||
- button "省市区" [ref=e20] [cursor=pointer]:
|
||||
- img [ref=e21]
|
||||
- generic [ref=e25]: 省市区
|
||||
- button "自然地理区位" [ref=e26] [cursor=pointer]:
|
||||
- img [ref=e27]
|
||||
- generic [ref=e30]: 自然地理区位
|
||||
- button "设施类别" [ref=e31] [cursor=pointer]:
|
||||
- img [ref=e32]
|
||||
- generic [ref=e36]: 设施类别
|
||||
- button "建设阶段" [ref=e37] [cursor=pointer]:
|
||||
- img [ref=e38]
|
||||
- generic [ref=e43]: 建设阶段
|
||||
- button "规划形式" [ref=e44] [cursor=pointer]:
|
||||
- img [ref=e45]
|
||||
- generic [ref=e50]: 规划形式
|
||||
- region "年度总费用图表" [ref=e51]:
|
||||
- generic [ref=e52]:
|
||||
- button "纵坐标:造价(元)" [ref=e54] [cursor=pointer]: 造价(元)
|
||||
- button "全屏(F11)" [ref=e55] [cursor=pointer]
|
||||
- generic [ref=e57]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e58]:
|
||||
- img "interactive chart":
|
||||
- generic:
|
||||
- img
|
||||
- img
|
||||
- region [ref=e59]
|
||||
- toolbar "标注" [ref=e60]:
|
||||
- button "均" [disabled] [ref=e61]:
|
||||
- generic: 均
|
||||
- button "Line Tool" [disabled] [ref=e62]
|
||||
- button "Text Tool" [disabled] [ref=e63]
|
||||
- button "Shape Tool" [disabled] [ref=e64]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e65]
|
||||
- button "Clear annotations" [disabled] [ref=e66]
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e67]:
|
||||
- button "缩小" [disabled] [ref=e68]
|
||||
- button "放大" [ref=e69] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e70]
|
||||
- button "右移" [disabled] [ref=e71]
|
||||
- button "重置" [disabled] [ref=e72]
|
||||
- complementary "选择内容" [ref=e73]:
|
||||
- tablist "选择内容切换项" [ref=e74]:
|
||||
- tab "自然地理区位" [selected] [ref=e75] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e76] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e77] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e78] [cursor=pointer]
|
||||
- generic [ref=e79]:
|
||||
- generic [ref=e80]: 自然地理区位
|
||||
- generic [ref=e81]: 加载中
|
||||
@@ -1,81 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "模板库 1" [pressed] [ref=e6] [cursor=pointer]:
|
||||
- img [ref=e7]
|
||||
- generic [ref=e9]: 模板库
|
||||
- strong [ref=e10]: "1"
|
||||
- button "指标树形" [ref=e11] [cursor=pointer]:
|
||||
- img [ref=e12]
|
||||
- generic [ref=e19]: 指标树形
|
||||
- button "省市区" [ref=e20] [cursor=pointer]:
|
||||
- img [ref=e21]
|
||||
- generic [ref=e25]: 省市区
|
||||
- button "自然地理区位" [ref=e26] [cursor=pointer]:
|
||||
- img [ref=e27]
|
||||
- generic [ref=e30]: 自然地理区位
|
||||
- button "设施类别" [ref=e31] [cursor=pointer]:
|
||||
- img [ref=e32]
|
||||
- generic [ref=e36]: 设施类别
|
||||
- button "建设阶段" [ref=e37] [cursor=pointer]:
|
||||
- img [ref=e38]
|
||||
- generic [ref=e43]: 建设阶段
|
||||
- button "规划形式" [ref=e44] [cursor=pointer]:
|
||||
- img [ref=e45]
|
||||
- generic [ref=e50]: 规划形式
|
||||
- region "年度总费用图表" [ref=e51]:
|
||||
- generic [ref=e52]:
|
||||
- button "纵坐标:造价(元)" [ref=e54] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e55]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e56]:
|
||||
- img "interactive chart":
|
||||
- generic:
|
||||
- img
|
||||
- img
|
||||
- region [ref=e57]
|
||||
- toolbar "标注" [ref=e58]:
|
||||
- button "全屏(F11)" [disabled] [ref=e59]
|
||||
- button "均" [disabled] [ref=e60]:
|
||||
- generic: 均
|
||||
- button "Line Tool" [disabled] [ref=e61]
|
||||
- button "Text Tool" [disabled] [ref=e62]
|
||||
- button "Shape Tool" [disabled] [ref=e63]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e64]
|
||||
- button "Clear annotations" [disabled] [ref=e65]
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e66]:
|
||||
- button "缩小" [disabled] [ref=e67]
|
||||
- button "放大" [ref=e68] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e69]
|
||||
- button "右移" [disabled] [ref=e70]
|
||||
- button "重置" [disabled] [ref=e71]
|
||||
- complementary "选择内容" [ref=e72]:
|
||||
- tablist "选择内容切换项" [ref=e73]:
|
||||
- tab "自然地理区位" [selected] [ref=e74] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e75] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e76] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e77] [cursor=pointer]
|
||||
- generic [ref=e78]:
|
||||
- generic [ref=e79]: 自然地理区位
|
||||
- generic [ref=e80]: 加载中
|
||||
@@ -1,81 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "模板库 1" [pressed] [ref=e6] [cursor=pointer]:
|
||||
- img [ref=e7]
|
||||
- generic [ref=e9]: 模板库
|
||||
- strong [ref=e10]: "1"
|
||||
- button "指标树形" [ref=e11] [cursor=pointer]:
|
||||
- img [ref=e12]
|
||||
- generic [ref=e19]: 指标树形
|
||||
- button "省市区" [ref=e20] [cursor=pointer]:
|
||||
- img [ref=e21]
|
||||
- generic [ref=e25]: 省市区
|
||||
- button "自然地理区位" [ref=e26] [cursor=pointer]:
|
||||
- img [ref=e27]
|
||||
- generic [ref=e30]: 自然地理区位
|
||||
- button "设施类别" [ref=e31] [cursor=pointer]:
|
||||
- img [ref=e32]
|
||||
- generic [ref=e36]: 设施类别
|
||||
- button "建设阶段" [ref=e37] [cursor=pointer]:
|
||||
- img [ref=e38]
|
||||
- generic [ref=e43]: 建设阶段
|
||||
- button "规划形式" [ref=e44] [cursor=pointer]:
|
||||
- img [ref=e45]
|
||||
- generic [ref=e50]: 规划形式
|
||||
- region "年度总费用图表" [ref=e51]:
|
||||
- generic [ref=e52]:
|
||||
- button "纵坐标:造价(元)" [ref=e54] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e55]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e56]:
|
||||
- img "interactive chart":
|
||||
- generic:
|
||||
- img
|
||||
- img
|
||||
- region [ref=e57]
|
||||
- toolbar "标注" [ref=e58]:
|
||||
- button "全屏(F11)" [disabled] [ref=e59]
|
||||
- button "均" [disabled] [ref=e60]:
|
||||
- generic: 均
|
||||
- button "Line Tool" [disabled] [ref=e61]
|
||||
- button "Text Tool" [disabled] [ref=e62]
|
||||
- button "Shape Tool" [disabled] [ref=e63]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e64]
|
||||
- button "Clear annotations" [disabled] [ref=e65]
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e66]:
|
||||
- button "缩小" [disabled] [ref=e67]
|
||||
- button "放大" [ref=e68] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e69]
|
||||
- button "右移" [disabled] [ref=e70]
|
||||
- button "重置" [disabled] [ref=e71]
|
||||
- complementary "选择内容" [ref=e72]:
|
||||
- tablist "选择内容切换项" [ref=e73]:
|
||||
- tab "自然地理区位" [selected] [ref=e74] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e75] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e76] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e77] [cursor=pointer]
|
||||
- generic [ref=e78]:
|
||||
- generic [ref=e79]: 自然地理区位
|
||||
- generic [ref=e80]: 加载中
|
||||
@@ -1,81 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "模板库 1" [pressed] [ref=e6] [cursor=pointer]:
|
||||
- img [ref=e7]
|
||||
- generic [ref=e9]: 模板库
|
||||
- strong [ref=e10]: "1"
|
||||
- button "指标树形" [ref=e11] [cursor=pointer]:
|
||||
- img [ref=e12]
|
||||
- generic [ref=e19]: 指标树形
|
||||
- button "省市区" [ref=e20] [cursor=pointer]:
|
||||
- img [ref=e21]
|
||||
- generic [ref=e25]: 省市区
|
||||
- button "自然地理区位" [ref=e26] [cursor=pointer]:
|
||||
- img [ref=e27]
|
||||
- generic [ref=e30]: 自然地理区位
|
||||
- button "设施类别" [ref=e31] [cursor=pointer]:
|
||||
- img [ref=e32]
|
||||
- generic [ref=e36]: 设施类别
|
||||
- button "建设阶段" [ref=e37] [cursor=pointer]:
|
||||
- img [ref=e38]
|
||||
- generic [ref=e43]: 建设阶段
|
||||
- button "规划形式" [ref=e44] [cursor=pointer]:
|
||||
- img [ref=e45]
|
||||
- generic [ref=e50]: 规划形式
|
||||
- region "年度总费用图表" [ref=e51]:
|
||||
- generic [ref=e52]:
|
||||
- button "纵坐标:造价(元)" [ref=e54] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e55]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e56]:
|
||||
- img "interactive chart":
|
||||
- generic:
|
||||
- img
|
||||
- img
|
||||
- region [ref=e57]
|
||||
- toolbar "标注" [ref=e58]:
|
||||
- button "全屏(F11)" [disabled] [ref=e59]
|
||||
- button "均" [disabled] [ref=e60]:
|
||||
- generic: 均
|
||||
- button "Line Tool" [disabled] [ref=e61]
|
||||
- button "Text Tool" [disabled] [ref=e62]
|
||||
- button "Shape Tool" [disabled] [ref=e63]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e64]
|
||||
- button "Clear annotations" [disabled] [ref=e65]
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e66]:
|
||||
- button "缩小" [disabled] [ref=e67]
|
||||
- button "放大" [ref=e68] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e69]
|
||||
- button "右移" [disabled] [ref=e70]
|
||||
- button "重置" [disabled] [ref=e71]
|
||||
- complementary "选择内容" [ref=e72]:
|
||||
- tablist "选择内容切换项" [ref=e73]:
|
||||
- tab "自然地理区位" [selected] [ref=e74] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e75] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e76] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e77] [cursor=pointer]
|
||||
- generic [ref=e78]:
|
||||
- generic [ref=e79]: 自然地理区位
|
||||
- generic [ref=e80]: 加载中
|
||||
@@ -1,81 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "模板库 1" [pressed] [ref=e6] [cursor=pointer]:
|
||||
- img [ref=e7]
|
||||
- generic [ref=e9]: 模板库
|
||||
- strong [ref=e10]: "1"
|
||||
- button "指标树形" [ref=e11] [cursor=pointer]:
|
||||
- img [ref=e12]
|
||||
- generic [ref=e19]: 指标树形
|
||||
- button "省市区" [ref=e20] [cursor=pointer]:
|
||||
- img [ref=e21]
|
||||
- generic [ref=e25]: 省市区
|
||||
- button "自然地理区位" [ref=e26] [cursor=pointer]:
|
||||
- img [ref=e27]
|
||||
- generic [ref=e30]: 自然地理区位
|
||||
- button "设施类别" [ref=e31] [cursor=pointer]:
|
||||
- img [ref=e32]
|
||||
- generic [ref=e36]: 设施类别
|
||||
- button "建设阶段" [ref=e37] [cursor=pointer]:
|
||||
- img [ref=e38]
|
||||
- generic [ref=e43]: 建设阶段
|
||||
- button "规划形式" [ref=e44] [cursor=pointer]:
|
||||
- img [ref=e45]
|
||||
- generic [ref=e50]: 规划形式
|
||||
- region "年度总费用图表" [ref=e51]:
|
||||
- generic [ref=e52]:
|
||||
- button "纵坐标:造价(元)" [ref=e54] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e55]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e56]:
|
||||
- img "interactive chart":
|
||||
- generic:
|
||||
- img
|
||||
- img
|
||||
- region [ref=e57]
|
||||
- toolbar "标注" [ref=e58]:
|
||||
- button "均" [disabled] [ref=e59]:
|
||||
- generic: 均
|
||||
- button "Line Tool" [disabled] [ref=e60]
|
||||
- button "Text Tool" [disabled] [ref=e61]
|
||||
- button "Shape Tool" [disabled] [ref=e62]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e63]
|
||||
- button "全屏(F11)" [disabled] [ref=e64]
|
||||
- button "Clear annotations" [disabled] [ref=e65]
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e66]:
|
||||
- button "缩小" [disabled] [ref=e67]
|
||||
- button "放大" [ref=e68] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e69]
|
||||
- button "右移" [disabled] [ref=e70]
|
||||
- button "重置" [disabled] [ref=e71]
|
||||
- complementary "选择内容" [ref=e72]:
|
||||
- tablist "选择内容切换项" [ref=e73]:
|
||||
- tab "自然地理区位" [selected] [ref=e74] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e75] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e76] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e77] [cursor=pointer]
|
||||
- generic [ref=e78]:
|
||||
- generic [ref=e79]: 自然地理区位
|
||||
- generic [ref=e80]: 加载中
|
||||
@@ -1,81 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "模板库 1" [pressed] [ref=e6] [cursor=pointer]:
|
||||
- img [ref=e7]
|
||||
- generic [ref=e9]: 模板库
|
||||
- strong [ref=e10]: "1"
|
||||
- button "指标树形" [ref=e11] [cursor=pointer]:
|
||||
- img [ref=e12]
|
||||
- generic [ref=e19]: 指标树形
|
||||
- button "省市区" [ref=e20] [cursor=pointer]:
|
||||
- img [ref=e21]
|
||||
- generic [ref=e25]: 省市区
|
||||
- button "自然地理区位" [ref=e26] [cursor=pointer]:
|
||||
- img [ref=e27]
|
||||
- generic [ref=e30]: 自然地理区位
|
||||
- button "设施类别" [ref=e31] [cursor=pointer]:
|
||||
- img [ref=e32]
|
||||
- generic [ref=e36]: 设施类别
|
||||
- button "建设阶段" [ref=e37] [cursor=pointer]:
|
||||
- img [ref=e38]
|
||||
- generic [ref=e43]: 建设阶段
|
||||
- button "规划形式" [ref=e44] [cursor=pointer]:
|
||||
- img [ref=e45]
|
||||
- generic [ref=e50]: 规划形式
|
||||
- region "年度总费用图表" [ref=e51]:
|
||||
- generic [ref=e52]:
|
||||
- button "纵坐标:造价(元)" [ref=e54] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e55]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e56]:
|
||||
- img "interactive chart":
|
||||
- generic:
|
||||
- img
|
||||
- img
|
||||
- region [ref=e57]
|
||||
- toolbar "标注" [ref=e58]:
|
||||
- button "均" [disabled] [ref=e59]:
|
||||
- generic: 均
|
||||
- button "Line Tool" [disabled] [ref=e60]
|
||||
- button "Text Tool" [disabled] [ref=e61]
|
||||
- button "Shape Tool" [disabled] [ref=e62]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e63]
|
||||
- button "全屏(F11)" [disabled] [ref=e64]
|
||||
- button "Clear annotations" [disabled] [ref=e65]
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e66]:
|
||||
- button "缩小" [disabled] [ref=e67]
|
||||
- button "放大" [ref=e68] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e69]
|
||||
- button "右移" [disabled] [ref=e70]
|
||||
- button "重置" [disabled] [ref=e71]
|
||||
- complementary "选择内容" [ref=e72]:
|
||||
- tablist "选择内容切换项" [ref=e73]:
|
||||
- tab "自然地理区位" [selected] [ref=e74] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e75] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e76] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e77] [cursor=pointer]
|
||||
- generic [ref=e78]:
|
||||
- generic [ref=e79]: 自然地理区位
|
||||
- generic [ref=e80]: 加载中
|
||||
@@ -1,80 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "省市区" [ref=e6] [cursor=pointer]:
|
||||
- img [ref=e7]
|
||||
- generic [ref=e11]: 省市区
|
||||
- button "自然地理区位" [ref=e12] [cursor=pointer]:
|
||||
- img [ref=e13]
|
||||
- generic [ref=e16]: 自然地理区位
|
||||
- button "设施类别" [ref=e17] [cursor=pointer]:
|
||||
- img [ref=e18]
|
||||
- generic [ref=e22]: 设施类别
|
||||
- button "建设阶段" [ref=e23] [cursor=pointer]:
|
||||
- img [ref=e24]
|
||||
- generic [ref=e29]: 建设阶段
|
||||
- button "规划形式" [ref=e30] [cursor=pointer]:
|
||||
- img [ref=e31]
|
||||
- generic [ref=e36]: 规划形式
|
||||
- region "年度总费用图表" [ref=e37]:
|
||||
- generic [ref=e38]:
|
||||
- button "纵坐标:造价(元)" [ref=e40] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e41]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e42]:
|
||||
- img "interactive chart":
|
||||
- generic:
|
||||
- img
|
||||
- img
|
||||
- region [ref=e43]
|
||||
- toolbar "标注" [ref=e44]:
|
||||
- button "库" [disabled] [ref=e45]:
|
||||
- generic:
|
||||
- generic: 库
|
||||
- button "树" [disabled] [ref=e46]:
|
||||
- generic:
|
||||
- generic: 树
|
||||
- button "均" [disabled] [ref=e47]:
|
||||
- generic: 均
|
||||
- button "Line Tool" [disabled] [ref=e48]
|
||||
- button "Text Tool" [disabled] [ref=e49]
|
||||
- button "Shape Tool" [disabled] [ref=e50]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e51]
|
||||
- button "全屏(F11)" [disabled] [ref=e52]
|
||||
- button "Clear annotations" [disabled] [ref=e53]
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e54]:
|
||||
- button "缩小" [disabled] [ref=e55]
|
||||
- button "放大" [ref=e56] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e57]
|
||||
- button "右移" [disabled] [ref=e58]
|
||||
- button "重置" [disabled] [ref=e59]
|
||||
- complementary "选择内容" [ref=e60]:
|
||||
- tablist "选择内容切换项" [ref=e61]:
|
||||
- tab "自然地理区位" [selected] [ref=e62] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e63] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e64] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e65] [cursor=pointer]
|
||||
- generic [ref=e66]:
|
||||
- generic [ref=e67]: 自然地理区位
|
||||
- generic [ref=e68]: 加载中
|
||||
@@ -1,80 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "省市区" [ref=e6] [cursor=pointer]:
|
||||
- img [ref=e7]
|
||||
- generic [ref=e11]: 省市区
|
||||
- button "自然地理区位" [ref=e12] [cursor=pointer]:
|
||||
- img [ref=e13]
|
||||
- generic [ref=e16]: 自然地理区位
|
||||
- button "设施类别" [ref=e17] [cursor=pointer]:
|
||||
- img [ref=e18]
|
||||
- generic [ref=e22]: 设施类别
|
||||
- button "建设阶段" [ref=e23] [cursor=pointer]:
|
||||
- img [ref=e24]
|
||||
- generic [ref=e29]: 建设阶段
|
||||
- button "规划形式" [ref=e30] [cursor=pointer]:
|
||||
- img [ref=e31]
|
||||
- generic [ref=e36]: 规划形式
|
||||
- region "年度总费用图表" [ref=e37]:
|
||||
- generic [ref=e38]:
|
||||
- button "纵坐标:造价(元)" [ref=e40] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e41]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e42]:
|
||||
- img "interactive chart":
|
||||
- generic:
|
||||
- img
|
||||
- img
|
||||
- region [ref=e43]
|
||||
- toolbar "标注" [ref=e44]:
|
||||
- button "库" [ref=e45] [cursor=pointer]:
|
||||
- generic:
|
||||
- generic: 库
|
||||
- button "树" [ref=e46] [cursor=pointer]:
|
||||
- generic:
|
||||
- generic: 树
|
||||
- button "均" [ref=e47] [cursor=pointer]:
|
||||
- generic: 均
|
||||
- button "Line Tool" [disabled] [ref=e48]
|
||||
- button "Text Tool" [disabled] [ref=e49]
|
||||
- button "Shape Tool" [disabled] [ref=e50]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e51]
|
||||
- button "全屏(F11)" [ref=e52] [cursor=pointer]
|
||||
- button "Clear annotations" [disabled] [ref=e53]
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e54]:
|
||||
- button "缩小" [disabled] [ref=e55]
|
||||
- button "放大" [ref=e56] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e57]
|
||||
- button "右移" [disabled] [ref=e58]
|
||||
- button "重置" [disabled] [ref=e59]
|
||||
- complementary "选择内容" [ref=e60]:
|
||||
- tablist "选择内容切换项" [ref=e61]:
|
||||
- tab "自然地理区位" [selected] [ref=e62] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e63] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e64] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e65] [cursor=pointer]
|
||||
- generic [ref=e66]:
|
||||
- generic [ref=e67]: 自然地理区位
|
||||
- generic [ref=e68]: 加载中
|
||||
@@ -1,83 +0,0 @@
|
||||
- main [ref=e3]:
|
||||
- generic:
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- generic: 众为数字化管理平台
|
||||
- region "年度费用模板" [ref=e4]:
|
||||
- generic "筛选条件" [ref=e5]:
|
||||
- button "省市区" [ref=e6] [cursor=pointer]:
|
||||
- img [ref=e7]
|
||||
- generic [ref=e11]: 省市区
|
||||
- button "自然地理区位" [ref=e12] [cursor=pointer]:
|
||||
- img [ref=e13]
|
||||
- generic [ref=e16]: 自然地理区位
|
||||
- button "设施类别" [ref=e17] [cursor=pointer]:
|
||||
- img [ref=e18]
|
||||
- generic [ref=e22]: 设施类别
|
||||
- button "建设阶段" [ref=e23] [cursor=pointer]:
|
||||
- img [ref=e24]
|
||||
- generic [ref=e29]: 建设阶段
|
||||
- button "规划形式" [ref=e30] [cursor=pointer]:
|
||||
- img [ref=e31]
|
||||
- generic [ref=e36]: 规划形式
|
||||
- region "年度总费用图表" [ref=e37]:
|
||||
- generic [ref=e38]:
|
||||
- button "纵坐标:造价(元)" [ref=e40] [cursor=pointer]: 造价(元)
|
||||
- generic [ref=e41]:
|
||||
- figure "图表,共有0个系列":
|
||||
- generic [ref=e42]:
|
||||
- img "interactive chart":
|
||||
- generic:
|
||||
- img
|
||||
- img
|
||||
- region [ref=e43]
|
||||
- toolbar "标注" [ref=e44]:
|
||||
- button "库" [disabled] [ref=e45] [cursor=pointer]:
|
||||
- generic:
|
||||
- generic: 库
|
||||
- button "指" [disabled] [ref=e46] [cursor=pointer]:
|
||||
- generic:
|
||||
- generic: 指
|
||||
- button "均" [disabled] [ref=e47] [cursor=pointer]:
|
||||
- generic: 均
|
||||
- button "Line Tool" [disabled] [ref=e48]
|
||||
- button "Text Tool" [disabled] [ref=e49]
|
||||
- button "Shape Tool" [disabled] [ref=e50]
|
||||
- button "Fibonacci Tool" [disabled] [ref=e51]
|
||||
- button "全屏(F11)" [disabled] [ref=e52] [cursor=pointer]
|
||||
- button "Clear annotations" [disabled] [ref=e53]
|
||||
- button "切换到表格" [disabled] [ref=e54] [cursor=pointer]:
|
||||
- generic:
|
||||
- generic: 趋
|
||||
- status:
|
||||
- generic: 请选择右侧分类项
|
||||
- toolbar "缩放" [ref=e55]:
|
||||
- button "缩小" [disabled] [ref=e56]
|
||||
- button "放大" [ref=e57] [cursor=pointer]
|
||||
- button "左移" [disabled] [ref=e58]
|
||||
- button "右移" [disabled] [ref=e59]
|
||||
- button "重置" [disabled] [ref=e60]
|
||||
- complementary "选择内容" [ref=e61]:
|
||||
- tablist "选择内容切换项" [ref=e62]:
|
||||
- tab "自然地理区位" [selected] [ref=e63] [cursor=pointer]
|
||||
- tab "设施类别" [ref=e64] [cursor=pointer]
|
||||
- tab "建设阶段" [ref=e65] [cursor=pointer]
|
||||
- tab "规划形式" [ref=e66] [cursor=pointer]
|
||||
- generic [ref=e67]:
|
||||
- generic [ref=e68]: 自然地理区位
|
||||
- generic [ref=e69]: Unexpected token '<', "<!doctype "... is not valid JSON
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"topic_20260821-062201_c21eb2dbea49a53e": {
|
||||
"stage": 1,
|
||||
"userTurns": 1,
|
||||
"basisHash": "10579074257f2c51",
|
||||
"updatedAt": 1787293862779
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"topic_20260821-062201_c21eb2dbea49a53e": 1787293321185
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"topic_20260821-062201_c21eb2dbea49a53e": "auto"
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"topic_20260821-062201_c21eb2dbea49a53e": "aggrid导出的时候数值不对,现在…"
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
<!-- gitnexus:start -->
|
||||
# GitNexus — Code Intelligence
|
||||
|
||||
This project is indexed by GitNexus as **agchart** (187 symbols, 490 relationships, 20 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely.
|
||||
|
||||
> Index stale? Run `node .gitnexus/run.cjs analyze` from the project root — it auto-selects an available runner. No `.gitnexus/run.cjs` yet? `npx gitnexus analyze` (npm 11 crash → `npm i -g gitnexus`; #1939).
|
||||
|
||||
## Always Do
|
||||
|
||||
- **MUST run impact analysis before editing any symbol.** Before modifying a function, class, or method, run `impact({target: "symbolName", direction: "upstream"})` and report the blast radius (direct callers, affected processes, risk level) to the user.
|
||||
- **MUST run `detect_changes()` before committing** to verify your changes only affect expected symbols and execution flows. For regression review, compare against the default branch: `detect_changes({scope: "compare", base_ref: "main"})`.
|
||||
- **MUST warn the user** if impact analysis returns HIGH or CRITICAL risk before proceeding with edits.
|
||||
- When exploring unfamiliar code, use `query({search_query: "concept"})` to find execution flows instead of grepping. It returns process-grouped results ranked by relevance.
|
||||
- When you need full context on a specific symbol — callers, callees, which execution flows it participates in — use `context({name: "symbolName"})`.
|
||||
- For security review, `explain({target: "fileOrSymbol"})` lists taint findings (source→sink flows; needs `analyze --pdg`).
|
||||
|
||||
## Never Do
|
||||
|
||||
- NEVER edit a function, class, or method without first running `impact` on it.
|
||||
- NEVER ignore HIGH or CRITICAL risk warnings from impact analysis.
|
||||
- NEVER rename symbols with find-and-replace — use `rename` which understands the call graph.
|
||||
- NEVER commit changes without running `detect_changes()` to check affected scope.
|
||||
|
||||
## Resources
|
||||
|
||||
| Resource | Use for |
|
||||
|----------|---------|
|
||||
| `gitnexus://repo/agchart/context` | Codebase overview, check index freshness |
|
||||
| `gitnexus://repo/agchart/clusters` | All functional areas |
|
||||
| `gitnexus://repo/agchart/processes` | All execution flows |
|
||||
| `gitnexus://repo/agchart/process/{name}` | Step-by-step execution trace |
|
||||
|
||||
## CLI
|
||||
|
||||
| Task | Read this skill file |
|
||||
|------|---------------------|
|
||||
| Understand architecture / "How does X work?" | `.claude/skills/gitnexus/gitnexus-exploring/SKILL.md` |
|
||||
| Blast radius / "What breaks if I change X?" | `.claude/skills/gitnexus/gitnexus-impact-analysis/SKILL.md` |
|
||||
| Trace bugs / "Why is X failing?" | `.claude/skills/gitnexus/gitnexus-debugging/SKILL.md` |
|
||||
| Rename / extract / split / refactor | `.claude/skills/gitnexus/gitnexus-refactoring/SKILL.md` |
|
||||
| Tools, resources, schema reference | `.claude/skills/gitnexus/gitnexus-guide/SKILL.md` |
|
||||
| Index, status, clean, wiki CLI commands | `.claude/skills/gitnexus/gitnexus-cli/SKILL.md` |
|
||||
|
||||
<!-- gitnexus:end -->
|
||||
@@ -1,44 +0,0 @@
|
||||
<!-- gitnexus:start -->
|
||||
# GitNexus — Code Intelligence
|
||||
|
||||
This project is indexed by GitNexus as **agchart** (187 symbols, 490 relationships, 20 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely.
|
||||
|
||||
> Index stale? Run `node .gitnexus/run.cjs analyze` from the project root — it auto-selects an available runner. No `.gitnexus/run.cjs` yet? `npx gitnexus analyze` (npm 11 crash → `npm i -g gitnexus`; #1939).
|
||||
|
||||
## Always Do
|
||||
|
||||
- **MUST run impact analysis before editing any symbol.** Before modifying a function, class, or method, run `impact({target: "symbolName", direction: "upstream"})` and report the blast radius (direct callers, affected processes, risk level) to the user.
|
||||
- **MUST run `detect_changes()` before committing** to verify your changes only affect expected symbols and execution flows. For regression review, compare against the default branch: `detect_changes({scope: "compare", base_ref: "main"})`.
|
||||
- **MUST warn the user** if impact analysis returns HIGH or CRITICAL risk before proceeding with edits.
|
||||
- When exploring unfamiliar code, use `query({search_query: "concept"})` to find execution flows instead of grepping. It returns process-grouped results ranked by relevance.
|
||||
- When you need full context on a specific symbol — callers, callees, which execution flows it participates in — use `context({name: "symbolName"})`.
|
||||
- For security review, `explain({target: "fileOrSymbol"})` lists taint findings (source→sink flows; needs `analyze --pdg`).
|
||||
|
||||
## Never Do
|
||||
|
||||
- NEVER edit a function, class, or method without first running `impact` on it.
|
||||
- NEVER ignore HIGH or CRITICAL risk warnings from impact analysis.
|
||||
- NEVER rename symbols with find-and-replace — use `rename` which understands the call graph.
|
||||
- NEVER commit changes without running `detect_changes()` to check affected scope.
|
||||
|
||||
## Resources
|
||||
|
||||
| Resource | Use for |
|
||||
|----------|---------|
|
||||
| `gitnexus://repo/agchart/context` | Codebase overview, check index freshness |
|
||||
| `gitnexus://repo/agchart/clusters` | All functional areas |
|
||||
| `gitnexus://repo/agchart/processes` | All execution flows |
|
||||
| `gitnexus://repo/agchart/process/{name}` | Step-by-step execution trace |
|
||||
|
||||
## CLI
|
||||
|
||||
| Task | Read this skill file |
|
||||
|------|---------------------|
|
||||
| Understand architecture / "How does X work?" | `.claude/skills/gitnexus/gitnexus-exploring/SKILL.md` |
|
||||
| Blast radius / "What breaks if I change X?" | `.claude/skills/gitnexus/gitnexus-impact-analysis/SKILL.md` |
|
||||
| Trace bugs / "Why is X failing?" | `.claude/skills/gitnexus/gitnexus-debugging/SKILL.md` |
|
||||
| Rename / extract / split / refactor | `.claude/skills/gitnexus/gitnexus-refactoring/SKILL.md` |
|
||||
| Tools, resources, schema reference | `.claude/skills/gitnexus/gitnexus-guide/SKILL.md` |
|
||||
| Index, status, clean, wiki CLI commands | `.claude/skills/gitnexus/gitnexus-cli/SKILL.md` |
|
||||
|
||||
<!-- gitnexus:end -->
|
||||
@@ -1,10 +1,10 @@
|
||||
# 组团趋势图
|
||||
# 建筑设施对象趋势图
|
||||
|
||||
这是一个基于 `React + AG Charts` 的组团趋势图页面,用来查看不同分类维度下的年度统计趋势,并通过右侧筛选条件联动图表结果。
|
||||
这是一个基于 `React + AG Charts` 的建筑设施对象趋势图页面,用来查看不同分类维度下的年度统计趋势,并通过右侧筛选条件联动图表结果。
|
||||
|
||||
## 功能
|
||||
|
||||
- 左侧展示组团趋势图,支持最低值、最高值、平均值、中位数和数据量切换
|
||||
- 左侧展示建筑设施对象趋势图,支持最低值、最高值、平均值、中位数和数据量切换
|
||||
- 右侧展示分类树,支持按 `自然地理区位 / 设施类别 / 建设阶段 / 规划形式` 选择节点
|
||||
- 筛选条件支持 `省市区`,后端会根据 `uf_xzqy` 展开到区级 `id` 后再过滤
|
||||
- 支持搜索筛选树节点,支持多条件叠加
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
"ag-charts-community": "^13.2.1",
|
||||
"ag-charts-enterprise": "13.2.1",
|
||||
"ag-charts-react": "^13.2.1",
|
||||
"ag-grid-community": "^35.3.0",
|
||||
"ag-grid-react": "^35.3.0",
|
||||
"lucide-react": "^1.14.0",
|
||||
"react": "^19.1.0",
|
||||
"react-dom": "^19.1.0",
|
||||
@@ -204,10 +202,6 @@
|
||||
|
||||
"ag-charts-types": ["ag-charts-types@13.2.1", "", {}, "sha512-r7veb3QqJtIKlXmeUsLR4/oDPwmHxFI2tmbZra/203mdaz3uwQUrrgYNg628nrK+7L2YxXnwGc6L05tWjLLjNQ=="],
|
||||
|
||||
"ag-grid-community": ["ag-grid-community@35.3.0", "", { "dependencies": { "ag-charts-types": "13.3.0" } }, "sha512-c9WQWB88J965IjBC/GPUX30aAZix10o6oYT86DWipcxgLZTIQlLSilJJEr1bno/245rPEAIMjhoU1gp9VIfURg=="],
|
||||
|
||||
"ag-grid-react": ["ag-grid-react@35.3.0", "", { "dependencies": { "ag-grid-community": "35.3.0", "prop-types": "^15.8.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-3c6YEFGQGNZxEi1PdK0b+WhKkKRJ7KxuYzsG4UmISyax5/J7N93f8B1TZK1pq+AgzPhdk/++vjZe3KhFdF3tog=="],
|
||||
|
||||
"baseline-browser-mapping": ["baseline-browser-mapping@2.10.27", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-zEs/ufmZoUd7WftKpKyXaT6RFxpQ5Qm9xytKRHvJfxFV9DFJkZph9RvJ1LcOUi0Z1ZVijMte65JbILeV+8QQEA=="],
|
||||
|
||||
"browserslist": ["browserslist@4.28.2", "", { "dependencies": { "baseline-browser-mapping": "^2.10.12", "caniuse-lite": "^1.0.30001782", "electron-to-chromium": "^1.5.328", "node-releases": "^2.0.36", "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg=="],
|
||||
@@ -238,8 +232,6 @@
|
||||
|
||||
"json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="],
|
||||
|
||||
"loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="],
|
||||
|
||||
"lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="],
|
||||
|
||||
"lucide-react": ["lucide-react@1.14.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-+1mdWcfSJVUsaTIjN9zoezmUhfXo5l0vP7ekBMPo3jcS/aIkxHnXqAPsByszMZx/Y8oQBRJxJx5xg+RH3urzxA=="],
|
||||
@@ -250,22 +242,16 @@
|
||||
|
||||
"node-releases": ["node-releases@2.0.38", "", {}, "sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw=="],
|
||||
|
||||
"object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="],
|
||||
|
||||
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
|
||||
|
||||
"picomatch": ["picomatch@4.0.4", "", {}, "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A=="],
|
||||
|
||||
"postcss": ["postcss@8.5.14", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg=="],
|
||||
|
||||
"prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="],
|
||||
|
||||
"react": ["react@19.2.5", "", {}, "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA=="],
|
||||
|
||||
"react-dom": ["react-dom@19.2.5", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.5" } }, "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag=="],
|
||||
|
||||
"react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="],
|
||||
|
||||
"react-refresh": ["react-refresh@0.18.0", "", {}, "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw=="],
|
||||
|
||||
"rollup": ["rollup@4.60.3", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.60.3", "@rollup/rollup-android-arm64": "4.60.3", "@rollup/rollup-darwin-arm64": "4.60.3", "@rollup/rollup-darwin-x64": "4.60.3", "@rollup/rollup-freebsd-arm64": "4.60.3", "@rollup/rollup-freebsd-x64": "4.60.3", "@rollup/rollup-linux-arm-gnueabihf": "4.60.3", "@rollup/rollup-linux-arm-musleabihf": "4.60.3", "@rollup/rollup-linux-arm64-gnu": "4.60.3", "@rollup/rollup-linux-arm64-musl": "4.60.3", "@rollup/rollup-linux-loong64-gnu": "4.60.3", "@rollup/rollup-linux-loong64-musl": "4.60.3", "@rollup/rollup-linux-ppc64-gnu": "4.60.3", "@rollup/rollup-linux-ppc64-musl": "4.60.3", "@rollup/rollup-linux-riscv64-gnu": "4.60.3", "@rollup/rollup-linux-riscv64-musl": "4.60.3", "@rollup/rollup-linux-s390x-gnu": "4.60.3", "@rollup/rollup-linux-x64-gnu": "4.60.3", "@rollup/rollup-linux-x64-musl": "4.60.3", "@rollup/rollup-openbsd-x64": "4.60.3", "@rollup/rollup-openharmony-arm64": "4.60.3", "@rollup/rollup-win32-arm64-msvc": "4.60.3", "@rollup/rollup-win32-ia32-msvc": "4.60.3", "@rollup/rollup-win32-x64-gnu": "4.60.3", "@rollup/rollup-win32-x64-msvc": "4.60.3", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-pAQK9HalE84QSm4Po3EmWIZPd3FnjkShVkiMlz1iligWYkWQ7wHYd1PF/T7QZ5TVSD6uSTon5gBVMSM4JfBV+A=="],
|
||||
@@ -285,7 +271,5 @@
|
||||
"vite": ["vite@7.3.2", "", { "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg=="],
|
||||
|
||||
"yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="],
|
||||
|
||||
"ag-grid-community/ag-charts-types": ["ag-charts-types@13.3.0", "", {}, "sha512-UMoAn908LC4ZIJSNfUckSBEFa79Mi1vFRA8qIRx+NusEuuFgXDioCZx4MxM7O3rDXlxTWH9DvQmcDjh7vyd89w=="],
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 78 KiB |
+1
-1
@@ -6,7 +6,7 @@
|
||||
<title>AG Chart Service</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="ztChart"></div>
|
||||
<div id="zbChart"></div>
|
||||
<script type="module" src="/src/main.tsx"></script>
|
||||
</body>
|
||||
</html>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 85 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 29 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 46 KiB |
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"browser": {
|
||||
"launchOptions": {
|
||||
"headless": true,
|
||||
"executablePath": "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe"
|
||||
},
|
||||
"contextOptions": {
|
||||
"viewport": {
|
||||
"width": 1440,
|
||||
"height": 900
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,8 +13,6 @@
|
||||
"ag-charts-community": "^13.2.1",
|
||||
"ag-charts-enterprise": "13.2.1",
|
||||
"ag-charts-react": "^13.2.1",
|
||||
"ag-grid-community": "^35.3.0",
|
||||
"ag-grid-react": "^35.3.0",
|
||||
"lucide-react": "^1.14.0",
|
||||
"react": "^19.1.0",
|
||||
"react-dom": "^19.1.0"
|
||||
|
||||
+155
-1224
File diff suppressed because it is too large.
Load diff
+5
-20
@@ -2,37 +2,22 @@ import { StrictMode } from 'react';
|
||||
import { createRoot } from 'react-dom/client';
|
||||
import { AllCommunityModule, ModuleRegistry } from 'ag-charts-community';
|
||||
import App from './App';
|
||||
import 'ag-grid-community/styles/ag-grid.css';
|
||||
import 'ag-grid-community/styles/ag-theme-quartz.css';
|
||||
import './styles.css';
|
||||
|
||||
ModuleRegistry.registerModules([AllCommunityModule]);
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
__chartReactRoots?: WeakMap<Element, ReturnType<typeof createRoot>>;
|
||||
__zbChartRoot?: ReturnType<typeof createRoot>;
|
||||
}
|
||||
}
|
||||
|
||||
const chartContainerId = 'ztChart';
|
||||
|
||||
const getRootRegistry = () => {
|
||||
window.__chartReactRoots ??= new WeakMap<Element, ReturnType<typeof createRoot>>();
|
||||
return window.__chartReactRoots;
|
||||
};
|
||||
|
||||
const mount = () => {
|
||||
const container = document.getElementById(chartContainerId);
|
||||
const container = document.getElementById('zbChart');
|
||||
if (!container) return false;
|
||||
|
||||
const roots = getRootRegistry();
|
||||
let root = roots.get(container);
|
||||
if (!root) {
|
||||
root = createRoot(container);
|
||||
roots.set(container, root);
|
||||
}
|
||||
|
||||
root.render(
|
||||
window.__zbChartRoot ??= createRoot(container);
|
||||
window.__zbChartRoot.render(
|
||||
<StrictMode>
|
||||
<App />
|
||||
</StrictMode>,
|
||||
@@ -47,7 +32,7 @@ if (!mount()) {
|
||||
if (mount() || retryCount >= 40) {
|
||||
window.clearInterval(timer);
|
||||
if (retryCount >= 40) {
|
||||
console.warn(`${chartContainerId} container was not found.`);
|
||||
console.warn('zbChart container was not found.');
|
||||
}
|
||||
}
|
||||
}, 50);
|
||||
|
||||
+35
-374
@@ -64,23 +64,15 @@ button {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 7fr) minmax(320px, 3fr);
|
||||
grid-template-columns: minmax(540px, 52vw) 1fr;
|
||||
grid-template-rows: auto minmax(0, 1fr);
|
||||
gap: 12px 28px;
|
||||
height: 100vh;
|
||||
padding: 30px 28px 18px 64px;
|
||||
transition: grid-template-columns 160ms ease, gap 160ms ease;
|
||||
}
|
||||
|
||||
.workspace.is-right-panel-collapsed {
|
||||
grid-template-columns: minmax(0, 1fr) 34px;
|
||||
gap: 12px 12px;
|
||||
}
|
||||
|
||||
.chart-area {
|
||||
display: grid;
|
||||
grid-column: 1;
|
||||
grid-row: 2;
|
||||
grid-template-rows: minmax(0, 1fr);
|
||||
min-width: 0;
|
||||
}
|
||||
@@ -171,11 +163,10 @@ button {
|
||||
|
||||
.chart-filter-bar {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
min-width: 0;
|
||||
overflow: visible;
|
||||
overflow: hidden;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
@@ -251,7 +242,7 @@ button {
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 7fr) minmax(320px, 3fr);
|
||||
grid-template-columns: minmax(540px, 52vw) 1fr;
|
||||
grid-template-rows: auto minmax(0, 1fr);
|
||||
gap: 12px 28px;
|
||||
width: 100vw;
|
||||
@@ -260,11 +251,6 @@ button {
|
||||
background: #f5e8d8;
|
||||
}
|
||||
|
||||
.workspace:fullscreen.is-right-panel-collapsed {
|
||||
grid-template-columns: minmax(0, 1fr) 34px;
|
||||
gap: 12px 12px;
|
||||
}
|
||||
|
||||
.workspace:fullscreen .chart-area {
|
||||
min-height: 0;
|
||||
}
|
||||
@@ -373,204 +359,22 @@ button {
|
||||
background: rgba(255, 252, 248, 0.94);
|
||||
}
|
||||
|
||||
.chart-frame .chart-template-button,
|
||||
.chart-frame .chart-indicator-button,
|
||||
.chart-frame .chart-statistic-button,
|
||||
.chart-frame .chart-pivot-button,
|
||||
.chart-frame .chart-fullscreen-button {
|
||||
.chart-frame .chart-statistic-button {
|
||||
color: #46413b;
|
||||
cursor: pointer !important;
|
||||
opacity: 1 !important;
|
||||
overflow: visible !important;
|
||||
pointer-events: auto !important;
|
||||
}
|
||||
|
||||
.chart-frame .ag-charts-myButton-template,
|
||||
.chart-frame .ag-charts-myButton-indicator,
|
||||
.chart-frame .ag-charts-myButton-pivot {
|
||||
position: relative;
|
||||
display: block;
|
||||
min-width: 16px;
|
||||
height: 16px;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
line-height: 16px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.chart-indicator-selection-label {
|
||||
position: absolute;
|
||||
left: 28px;
|
||||
top: 6px;
|
||||
z-index: 3;
|
||||
max-width: min(560px, calc(100vw - 56px));
|
||||
padding: 0;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
color: #0078a8;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
line-height: 20px;
|
||||
overflow: hidden;
|
||||
pointer-events: none;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.workspace:fullscreen .chart-indicator-selection-label {
|
||||
left: 28px;
|
||||
top: 6px;
|
||||
}
|
||||
|
||||
.chart-frame .chart-template-button[aria-expanded="true"],
|
||||
.chart-frame .chart-indicator-button[aria-expanded="true"],
|
||||
.chart-frame .chart-statistic-button[aria-expanded="true"],
|
||||
.chart-frame .chart-pivot-button.ag-charts-toolbar__button--active,
|
||||
.chart-frame .chart-fullscreen-button.ag-charts-toolbar__button--active {
|
||||
.chart-frame .chart-statistic-button[aria-expanded="true"] {
|
||||
color: #0078a8;
|
||||
border-color: rgba(0, 120, 168, 0.36);
|
||||
background: rgba(255, 252, 248, 0.94);
|
||||
box-shadow: 0 1px 5px rgba(69, 54, 36, 0.12);
|
||||
}
|
||||
|
||||
.chart-pivot-grid-panel {
|
||||
position: absolute;
|
||||
inset: 16px 0 0;
|
||||
z-index: 10;
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
padding: 12px 16px 16px 74px;
|
||||
border: 1px solid rgba(90, 82, 72, 0.22);
|
||||
border-radius: 3px;
|
||||
background: rgba(255, 249, 241, 0.96);
|
||||
box-shadow: 0 6px 18px rgba(69, 54, 36, 0.08);
|
||||
}
|
||||
|
||||
.chart-pivot-grid-panel .ag-root-wrapper {
|
||||
border-color: rgba(90, 82, 72, 0.18);
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.grid-context-menu {
|
||||
position: fixed;
|
||||
z-index: 50;
|
||||
min-width: 128px;
|
||||
padding: 4px;
|
||||
border: 1px solid rgba(90, 82, 72, 0.22);
|
||||
border-radius: 3px;
|
||||
background: #fffaf4;
|
||||
box-shadow: 0 6px 18px rgba(69, 54, 36, 0.18);
|
||||
}
|
||||
|
||||
.grid-context-menu button {
|
||||
display: block;
|
||||
width: 100%;
|
||||
min-height: 32px;
|
||||
padding: 0 10px;
|
||||
border: 0;
|
||||
border-radius: 2px;
|
||||
color: #262a33;
|
||||
background: transparent;
|
||||
font-size: 13px;
|
||||
line-height: 32px;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.grid-context-menu button:hover,
|
||||
.grid-context-menu button:focus-visible {
|
||||
color: #0078a8;
|
||||
background: rgba(0, 120, 168, 0.08);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.chart-grid-tool-button {
|
||||
position: absolute;
|
||||
left: 24px;
|
||||
z-index: 12;
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
min-width: 26px;
|
||||
min-height: 26px;
|
||||
padding: 0;
|
||||
border: 1px solid rgba(90, 82, 72, 0.22);
|
||||
border-radius: 3px;
|
||||
color: #46413b;
|
||||
background: rgba(255, 249, 241, 0.72);
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
line-height: 24px;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.chart-grid-tool-button--template {
|
||||
top: 12px;
|
||||
}
|
||||
|
||||
.chart-grid-tool-button--indicator {
|
||||
top: 46px;
|
||||
}
|
||||
|
||||
.chart-grid-tool-button--trend {
|
||||
top: 80px;
|
||||
}
|
||||
|
||||
.chart-grid-tool-button--fullscreen {
|
||||
top: 114px;
|
||||
}
|
||||
|
||||
.chart-grid-tool-button:hover {
|
||||
color: #0078a8;
|
||||
border-color: rgba(0, 120, 168, 0.36);
|
||||
background: rgba(255, 252, 248, 0.94);
|
||||
box-shadow: 0 1px 5px rgba(69, 54, 36, 0.12);
|
||||
}
|
||||
|
||||
.chart-pivot-grid-panel.ag-theme-quartz {
|
||||
--ag-active-color: #0078a8;
|
||||
--ag-background-color: #fffaf4;
|
||||
--ag-border-color: rgba(90, 82, 72, 0.18);
|
||||
--ag-cell-horizontal-padding: 6px;
|
||||
--ag-font-family: "Microsoft YaHei", "PingFang SC", "Segoe UI", Arial, sans-serif;
|
||||
--ag-font-size: 12px;
|
||||
--ag-foreground-color: #262a33;
|
||||
--ag-header-cell-horizontal-padding: 6px;
|
||||
--ag-header-background-color: #f6eadc;
|
||||
--ag-row-hover-color: rgba(0, 120, 168, 0.08);
|
||||
}
|
||||
|
||||
.chart-pivot-grid-panel .ag-header-cell,
|
||||
.chart-pivot-grid-panel .ag-header-group-cell {
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
.chart-pivot-grid-panel .ag-cell {
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
.chart-pivot-grid-panel .ag-header-cell-label,
|
||||
.chart-pivot-grid-panel .ag-header-group-cell-label {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.metric-switcher {
|
||||
position: absolute;
|
||||
z-index: 12;
|
||||
}
|
||||
|
||||
.metric-switcher--chart {
|
||||
left: 74px;
|
||||
top: 272px;
|
||||
}
|
||||
|
||||
.metric-switcher--grid {
|
||||
left: 24px;
|
||||
top: 148px;
|
||||
z-index: 12;
|
||||
}
|
||||
|
||||
.metric-switcher-button {
|
||||
@@ -596,23 +400,6 @@ button {
|
||||
text-orientation: upright;
|
||||
}
|
||||
|
||||
.metric-switcher-button--grid {
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
min-width: 26px;
|
||||
min-height: 26px;
|
||||
padding: 0;
|
||||
border-color: rgba(90, 82, 72, 0.22);
|
||||
color: #46413b;
|
||||
background: rgba(255, 249, 241, 0.72);
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0;
|
||||
line-height: 24px;
|
||||
writing-mode: horizontal-tb;
|
||||
text-orientation: mixed;
|
||||
}
|
||||
|
||||
.metric-switcher-button:hover,
|
||||
.metric-switcher-button[aria-expanded="true"] {
|
||||
color: #0078a8;
|
||||
@@ -669,6 +456,29 @@ button {
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
.chart-frame .chart-fullscreen-button {
|
||||
position: absolute;
|
||||
left: 24px;
|
||||
top: 252px;
|
||||
z-index: 9;
|
||||
display: grid;
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
min-width: 34px;
|
||||
min-height: 34px;
|
||||
place-items: center;
|
||||
padding: 0;
|
||||
border: 1px solid rgba(90, 82, 72, 0.22);
|
||||
border-radius: 3px;
|
||||
color: #46413b;
|
||||
background: rgba(255, 249, 241, 0.72);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.chart-frame .ag-charts-toolbar__button[title="Clear annotations"] {
|
||||
transform: translateY(42px);
|
||||
}
|
||||
|
||||
.chart-frame .ag-charts-zoom-buttons {
|
||||
top: auto !important;
|
||||
right: 24px !important;
|
||||
@@ -730,19 +540,15 @@ button {
|
||||
box-shadow: 0 1px 5px rgba(69, 54, 36, 0.12);
|
||||
}
|
||||
|
||||
.chart-frame .ag-charts-myButton-fullScreen,
|
||||
.chart-grid-tool-button .ag-charts-myButton-fullScreen {
|
||||
.chart-frame .ag-charts-myButton-fullScreen {
|
||||
position: relative;
|
||||
display: block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 4px auto;
|
||||
}
|
||||
|
||||
.chart-frame .ag-charts-myButton-fullScreen::before,
|
||||
.chart-frame .ag-charts-myButton-fullScreen::after,
|
||||
.chart-grid-tool-button .ag-charts-myButton-fullScreen::before,
|
||||
.chart-grid-tool-button .ag-charts-myButton-fullScreen::after {
|
||||
.chart-frame .ag-charts-myButton-fullScreen::after {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
display: block;
|
||||
@@ -751,22 +557,19 @@ button {
|
||||
content: "";
|
||||
}
|
||||
|
||||
.chart-frame .anticon-arrow-salt::before,
|
||||
.chart-grid-tool-button .anticon-arrow-salt::before {
|
||||
.chart-frame .anticon-arrow-salt::before {
|
||||
border-top: 1px solid currentColor;
|
||||
border-right: 1px solid currentColor;
|
||||
clip-path: polygon(54% 0, 100% 0, 100% 46%, 86% 46%, 86% 14%, 54% 14%);
|
||||
}
|
||||
|
||||
.chart-frame .anticon-arrow-salt::after,
|
||||
.chart-grid-tool-button .anticon-arrow-salt::after {
|
||||
.chart-frame .anticon-arrow-salt::after {
|
||||
border-bottom: 1px solid currentColor;
|
||||
border-left: 1px solid currentColor;
|
||||
clip-path: polygon(0 54%, 14% 54%, 14% 86%, 46% 86%, 46% 100%, 0 100%);
|
||||
}
|
||||
|
||||
.chart-frame .anticon-shrink::before,
|
||||
.chart-grid-tool-button .anticon-shrink::before {
|
||||
.chart-frame .anticon-shrink::before {
|
||||
top: 2px;
|
||||
left: 2px;
|
||||
width: 6px;
|
||||
@@ -775,8 +578,7 @@ button {
|
||||
border-bottom: 1px solid currentColor;
|
||||
}
|
||||
|
||||
.chart-frame .anticon-shrink::after,
|
||||
.chart-grid-tool-button .anticon-shrink::after {
|
||||
.chart-frame .anticon-shrink::after {
|
||||
right: 2px;
|
||||
bottom: 2px;
|
||||
left: auto;
|
||||
@@ -799,8 +601,6 @@ button {
|
||||
|
||||
.right-panel {
|
||||
display: grid;
|
||||
grid-column: 2;
|
||||
grid-row: 2;
|
||||
grid-template-rows: auto minmax(0, 1fr);
|
||||
min-width: 0;
|
||||
height: 100%;
|
||||
@@ -809,52 +609,6 @@ button {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.right-panel-toggle {
|
||||
display: inline-grid;
|
||||
grid-column: 2;
|
||||
grid-row: 2;
|
||||
justify-self: end;
|
||||
align-self: start;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
place-items: center;
|
||||
padding: 0;
|
||||
border: 1px solid rgba(90, 82, 72, 0.18);
|
||||
border-radius: 3px;
|
||||
color: #46413b;
|
||||
background: rgba(255, 249, 241, 0.82);
|
||||
cursor: pointer;
|
||||
z-index: 4;
|
||||
}
|
||||
|
||||
.right-panel-toggle:hover,
|
||||
.right-panel-toggle:focus-visible {
|
||||
color: #0078a8;
|
||||
border-color: rgba(0, 120, 168, 0.36);
|
||||
background: rgba(255, 252, 248, 0.96);
|
||||
box-shadow: 0 1px 5px rgba(69, 54, 36, 0.12);
|
||||
}
|
||||
|
||||
.right-panel-toggle:focus-visible {
|
||||
outline: 2px solid rgba(0, 120, 168, 0.28);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
.right-panel-toggle-icon {
|
||||
display: block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.workspace.is-right-panel-collapsed .right-panel {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.workspace.is-right-panel-collapsed .right-panel-toggle {
|
||||
position: sticky;
|
||||
top: 24px;
|
||||
}
|
||||
|
||||
.content-tabs {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -1042,57 +796,6 @@ button {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.filter-modal--range {
|
||||
grid-template-rows: auto auto auto;
|
||||
height: auto;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
.filter-range-fields {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
|
||||
align-items: end;
|
||||
gap: 12px;
|
||||
padding: 22px 18px 26px;
|
||||
}
|
||||
|
||||
.filter-range-fields label {
|
||||
display: grid;
|
||||
gap: 7px;
|
||||
color: #5d554d;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.filter-range-fields input {
|
||||
width: 100%;
|
||||
height: 36px;
|
||||
padding: 0 10px;
|
||||
border: 1px solid rgba(90, 82, 72, 0.2);
|
||||
border-radius: 3px;
|
||||
color: #262a33;
|
||||
background: #fffdfa;
|
||||
font-size: 14px;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.filter-range-fields input:focus {
|
||||
border-color: rgba(0, 120, 168, 0.46);
|
||||
box-shadow: 0 0 0 2px rgba(0, 120, 168, 0.12);
|
||||
}
|
||||
|
||||
.filter-range-separator {
|
||||
padding-bottom: 8px;
|
||||
color: #776e65;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.filter-range-error {
|
||||
grid-column: 1 / -1;
|
||||
min-height: 18px;
|
||||
color: #a13f2c;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.filter-modal-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -1204,30 +907,6 @@ button {
|
||||
content: "";
|
||||
}
|
||||
|
||||
.filter-tree-select.is-empty-data {
|
||||
color: #8a8279;
|
||||
}
|
||||
|
||||
.filter-tree-select.is-empty-data .content-tree-label {
|
||||
opacity: 0.58;
|
||||
}
|
||||
|
||||
.filter-tree-select.is-empty-data .filter-tree-check {
|
||||
opacity: 0.62;
|
||||
}
|
||||
|
||||
.filter-tree-empty-badge {
|
||||
flex: 0 0 auto;
|
||||
padding: 1px 5px;
|
||||
border: 1px solid rgba(122, 112, 103, 0.22);
|
||||
border-radius: 3px;
|
||||
color: #7a7067;
|
||||
background: rgba(255, 252, 248, 0.72);
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.filter-modal-actions {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
@@ -1276,33 +955,15 @@ button {
|
||||
padding: 8px 18px 18px 56px;
|
||||
}
|
||||
|
||||
.workspace.is-right-panel-collapsed {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.chart-area {
|
||||
grid-row: 2;
|
||||
min-height: 520px;
|
||||
}
|
||||
|
||||
.right-panel {
|
||||
grid-column: 1;
|
||||
grid-row: 3;
|
||||
min-height: 280px;
|
||||
}
|
||||
|
||||
.right-panel-toggle {
|
||||
grid-column: 1;
|
||||
grid-row: 3;
|
||||
justify-self: end;
|
||||
}
|
||||
|
||||
.content-tabs {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
}
|
||||
|
||||
.filter-modal-confirm:disabled {
|
||||
cursor: not-allowed;
|
||||
opacity: 0.45;
|
||||
}
|
||||
+193
-5
@@ -1,8 +1,196 @@
|
||||
Port 5173 is in use, trying another one...
|
||||
|
||||
[32m[1mVITE[22m v7.3.2[39m [2mready in [0m[1m303[22m[2m[0m ms[22m
|
||||
[32m[1mVITE[22m v7.3.2[39m [2mready in [0m[1m271[22m[2m[0m ms[22m
|
||||
|
||||
[32m➜[39m [1mLocal[22m: [36mhttp://localhost:[1m5173[22m/[39m
|
||||
[32m➜[39m [1mNetwork[22m: [36mhttp://100.106.162.120:[1m5173[22m/[39m
|
||||
[32m➜[39m [1mNetwork[22m: [36mhttp://192.168.1.155:[1m5173[22m/[39m
|
||||
[32m➜[39m [1mNetwork[22m: [36mhttp://172.31.112.1:[1m5173[22m/[39m
|
||||
[32m➜[39m [1mLocal[22m: [36mhttp://localhost:[1m5174[22m/[39m
|
||||
[32m➜[39m [1mNetwork[22m: [36mhttp://198.18.0.1:[1m5174[22m/[39m
|
||||
[32m➜[39m [1mNetwork[22m: [36mhttp://100.106.162.120:[1m5174[22m/[39m
|
||||
[32m➜[39m [1mNetwork[22m: [36mhttp://192.168.1.155:[1m5174[22m/[39m
|
||||
[2m[32m ➜[39m[22m[2m press [22m[1mh + enter[22m[2m to show help[22m
|
||||
[2m15:45:13[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:45:39[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m15:59:24[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:59:52[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m16:00:28[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m16:00:58[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m16:06:48[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:07:28[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:07:28[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32m✨ new dependencies optimized: [33mag-charts-enterprise, ag-charts-locale[32m[39m
|
||||
[2m16:07:28[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32m✨ optimized dependencies changed. reloading[39m
|
||||
[2m16:07:47[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m16:08:26[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m16:09:28[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:11:07[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:11:48[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m16:13:15[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m16:17:34[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:18:10[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m16:22:30[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:23:11[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m16:24:37[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:25:42[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mpage reload [39m[2mdemo.html[22m
|
||||
[2m16:25:42[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mpage reload [39m[2mdemo.html[22m
|
||||
[2m16:27:28[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:28:39[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m16:32:10[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:33:55[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:38:49[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:39:34[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m16:46:57[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:47:20[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:53:41[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:54:18[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m16:59:35[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m17:01:23[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m17:03:24[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m17:06:50[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m17:29:44[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m17:29:52[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m17:32:17[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m17:32:43[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m17:34:33[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m17:40:09[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m17:40:37[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m17:41:32[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m17:42:39[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m17:44:42[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:11:33[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:11:59[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m09:14:42[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m09:15:32[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m09:18:16[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:18:28[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m09:35:28[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:35:53[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:35:53[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m09:36:43[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:40:50[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:41:06[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m09:42:18[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m09:55:02[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:55:36[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:55:49[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m10:07:23[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:26:33[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:27:25[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:27:56[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m11:14:09[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m11:16:09[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mpage reload [39m[2mzbChart/index.html[22m
|
||||
[2m11:17:29[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mpage reload [39m[2mindex.html[22m
|
||||
[2m11:17:43[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mpage reload [39m[2msrc/main.tsx[22m
|
||||
[2m11:32:17[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mpage reload [39m[2msrc/main.tsx[22m
|
||||
[2m11:35:33[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m11:35:45[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m11:49:29[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m11:52:03[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m11:53:37[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m11:57:22[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m11:59:02[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:00:25[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:14:46[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:14:56[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:15:05[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:15:18[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:15:29[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:15:39[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:15:49[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m15:54:06[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:54:29[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m16:29:28[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:29:37[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m17:53:09[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m17:53:24[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m17:54:53[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m17:55:03[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m18:10:22[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:43:29[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mpage reload [39m[2mzbChart/index.html[22m
|
||||
[2m09:43:43[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mpage reload [39m[2mdemo.html[22m
|
||||
[2m09:44:24[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:47:32[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:56:50[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:03:05[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:04:28[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:04:35[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m10:06:06[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:06:25[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m14:21:06[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m14:26:18[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m14:26:51[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m14:28:15[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m14:28:24[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:07:03[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:07:31[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:08:11[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:13:59[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:47:31[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:48:22[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:48:32[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m17:00:07[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m17:15:44[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m18:06:45[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m18:07:01[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m18:07:22[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m18:07:43[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m18:08:03[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m18:08:20[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m18:08:55[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m18:09:09[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m18:09:41[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m18:10:20[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m18:11:00[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m09:08:22[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:09:58[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:10:10[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m09:12:48[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m09:24:09[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m09:24:54[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m09:25:33[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:25:55[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m09:31:55[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:32:05[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:32:12[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m09:32:32[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m09:45:56[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:00:51[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:01:08[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:01:23[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:01:36[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:01:46[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:01:56[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:02:58[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:08:33[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:08:56[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:09:20[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m10:09:29[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m10:12:15[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/styles.css[22m
|
||||
[2m10:17:02[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:54:20[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:54:44[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m10:59:54[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m11:00:16[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m11:00:32[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m11:00:55[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m11:12:15[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m11:16:52[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m11:20:34[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m11:22:39[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m11:30:32[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m11:42:14[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m11:48:40[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m12:07:11[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m12:07:25[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m12:07:50[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m14:44:40[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m14:47:46[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m14:48:15[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m14:51:05[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:13:54[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:14:22[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:17:54[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:18:05[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:18:58[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:37:07[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:37:17[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m15:44:06[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m16:32:19[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
[2m17:15:32[22m [36m[1m[vite][22m[39m [90m[2m(client)[22m[39m [32mhmr update [39m[2m/src/App.tsx[22m
|
||||
@@ -1 +0,0 @@
|
||||
$ vite --host 0.0.0.0 --host "127.0.0.1" --port "5173"
|
||||
@@ -1,5 +0,0 @@
|
||||
|
||||
[32m[1mVITE[22m v7.3.2[39m [2mready in [0m[1m283[22m[2m[0m ms[22m
|
||||
|
||||
[32m➜[39m [1mLocal[22m: [36mhttp://127.0.0.1:[1m5173[22m/[39m
|
||||
[2m[32m ➜[39m[22m[2m press [22m[1mh + enter[22m[2m to show help[22m
|
||||
+1
-13
@@ -2,19 +2,7 @@ import { defineConfig } from 'vite';
|
||||
import react from '@vitejs/plugin-react';
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
react(),
|
||||
{
|
||||
name: 'weaver-script-scope-wrapper',
|
||||
renderChunk(code, chunk) {
|
||||
if (!chunk.isEntry) return null;
|
||||
return {
|
||||
code: `;(() => {\n${code}\n})();\n`,
|
||||
map: null,
|
||||
};
|
||||
},
|
||||
},
|
||||
],
|
||||
plugins: [react()],
|
||||
server: {
|
||||
port: 5173,
|
||||
},
|
||||
|
||||
Reference in new issue
Block a user