Skip to main content

chart-defaults

Find the actual runtime default value of any AG Charts configuration option, and keep JSDoc `Default:` markers accurate. Use when documenting a default, verifying a change has not altered one, writing tests against default behaviour, or auditing whether a TypeScript comment matches the theme template.

インストールへ移動

ソース情報

リポジトリ
ag-grid/ag-charts
ソースの最終更新活動
2026年8月5日 11:40
検出された SKILL.md の言語
英語
スター
481
フォーク
43

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
targets
["*"]
name
chart-defaults
description
Find the actual runtime default value of any AG Charts configuration option, and keep JSDoc `Default:` markers accurate. Use when documenting a default, verifying a change has not altered one, writing tests against default behaviour, or auditing whether a TypeScript comment matches the theme template.
# Default Values and Configuration Hierarchy This guide explains how default values work in AG Charts and how to find the actual runtime defaults for any configuration option. ## Why This Matters Understanding the default value hierarchy is critical for: - **Documentation accuracy**: Must document actual runtime defaults users experience - **Code reviews**: Verify changes don't unintentionally alter defaults - **Testing**: Write tests against realistic default behavior - **Bug reports**: Understand what users see by default - **Breaking changes**: Identify when theme changes affect user experience ## The Three-Tier Default System AG Charts uses a layered configuration system where each layer can override the previous one: ``` User Configuration ↓ (overrides) Theme Template Defaults ⭐ Runtime Default ↓ (overrides) Property Decorator Defaults ``` ### 1. Property Decorator Defaults (Base Layer) **Location**: `packages/ag-charts-{community,enterprise}/src/**/*Properties.ts` **Purpose**: Fallback defaults when no theme is applied **Example**: ```typescript // sankeySeriesProperties.ts export class SankeySeriesNodeProperties { @Property spacing: number = 1; // Base default (rarely used) @Property alignment: 'left' | 'right' | 'center' | 'justify' = 'justify'; } ``` **Important**: These are **NOT** what users typically experience. They're fallback values that are usually overridden by theme templates. --- ### 2. Theme Template Defaults (Runtime Layer) ⭐ **Location**: `packages/ag-charts-{community,enterprise}/src/**/*Module.ts` **Purpose**: The actual out-of-the-box defaults users experience **Example**: ```typescript // sankeyModule.ts export const SankeyModule = { type: 'series', identifier: 'sankey', themeTemplate: { series: { node: { spacing: 20, // ✅ This is the ACTUAL runtime default width: 10, // ✅ Overrides Properties.ts value of 1 }, label: { spacing: 10, // ✅ Overrides Properties.ts value of 1 }, }, }, }; ``` **Critical**: This is the layer that matters for users. When documenting defaults or testing behavior, use these values. --- ### 3. User Configuration (Override Layer) **Location**: User's chart options **Purpose**: Final overrides provided by the developer **Example**: ```typescript const options = { series: [ { type: 'sankey', node: { spacing: 30, // ✅ Overrides theme default of 20 }, }, ], }; ``` --- ## Finding Defaults: Step-by-Step Process When you need to verify the default value of a property: ### Step 1: Identify the Module File Find the module that registers the series/feature: ```bash # For a series find packages/ag-charts-{community,enterprise}/src/series -name "*Module.ts" | grep <seriesName> # For Sankey series example find packages/ag-charts-enterprise/src/series -name "*Module.ts" | grep sankey # Result: packages/ag-charts-enterprise/src/series/sankey/sankeyModule.ts ``` ### Step 2: Check the Theme Template Open the module file and look for the `themeTemplate` object: ```typescript export const SankeyModule = { themeTemplate: { series: { node: { spacing: 20, // ← Actual runtime default minSpacing: 0, width: 10, }, }, }, }; ``` **If the property exists in themeTemplate**: This is the runtime default ✅ **If the property is NOT in themeTemplate**: Continue to Step 3 ### Step 3: Fallback to @Property Decorator If the property isn't in the theme template, check the Properties class: ```typescript // sankeySeriesProperties.ts export class SankeySeriesNodeProperties { @Property strokeWidth: number = 1; // Used as default (not overridden in theme) } ``` ### Step 4: Verify TypeScript Comments Match Check the TypeScript interface comments: ```typescript // sankeyOptions.ts export interface AgSankeySeriesNodeOptions { /** * Spacing between the nodes. * * Default: `20` // ← Should match themeTemplate value */ spacing?: PixelSize; } ``` **If the comment doesn't match the theme template**: The comment is stale and needs updating. ### JSDoc formatting: `Default:` must be its own paragraph The `Default:` marker **must** be separated from the description prose by a blank `*` line inside the JSDoc block. If it sits inline with the description, the docs-site API reference renders it as body text rather than as a labelled default. ```typescript // ✅ GOOD — Default: rendered as a labelled default in the API reference /** * Spacing between the nodes. * * Default: `20` */ spacing?: PixelSize; // ❌ BAD — Default: swallowed into the description prose /** Spacing between the nodes. Default: `20` */ spacing?: PixelSize; ``` This applies to every option in `packages/ag-charts-types` regardless of description length — even a one-sentence description must promote the `Default:` marker to its own paragraph. --- ## Common Module Locations | Feature Type | Module Path Pattern | Example | | ----------------------- | ---------------------------------------------------------- | -------------------------------------------------------- | | Series (Community) | `packages/ag-charts-community/src/series/**/*Module.ts` | `bar/barModule.ts`, `line/lineModule.ts` | | Series (Enterprise) | `packages/ag-charts-enterprise/src/series/**/*Module.ts` | `sankey/sankeyModule.ts`, `waterfall/waterfallModule.ts` | | Axis | `packages/ag-charts-community/src/axes/**/*Module.ts` | `axis/axisModule.ts` | | Annotations | `packages/ag-charts-enterprise/src/features/annotations/*` | `annotationsModule.ts` | | Legend | `packages/ag-charts-community/src/chart/legend/*Module.ts` | `legendModule.ts` | | Interactive Annotations | `packages/ag-charts-enterprise/src/features/**/*Module.ts` | `contextMenu/contextMenuModule.ts` | | Global themes | `packages/ag-charts-community/src/chart/themes/` | `chartTheme.ts`, `defaultThemeTemplates.ts` | --- ## Summary **Key Takeaways**: 1. ⭐ **Theme templates define runtime defaults** - start here 2. Property decorators are fallbacks, not user-facing defaults 3. Always verify TypeScript comments match theme templates 4. Module files (`*Module.ts`) are the source of truth for defaults 5. Document what users actually see, not internal fallback values **Quick Workflow**: ``` Need default? → Check *Module.ts theme → If not there, check @Property decorator → Document that value ```
GitHubで見る