mintwaterfall 0.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +223 -0
  2. package/CONTRIBUTING.md +199 -0
  3. package/README.md +363 -0
  4. package/dist/index.d.ts +149 -0
  5. package/dist/mintwaterfall.cjs.js +7978 -0
  6. package/dist/mintwaterfall.esm.js +7907 -0
  7. package/dist/mintwaterfall.min.js +7 -0
  8. package/dist/mintwaterfall.umd.js +7978 -0
  9. package/index.d.ts +149 -0
  10. package/package.json +126 -0
  11. package/src/enterprise/enterprise-core.js +0 -0
  12. package/src/enterprise/enterprise-feature-template.js +0 -0
  13. package/src/enterprise/feature-registry.js +0 -0
  14. package/src/enterprise/features/breakdown.js +0 -0
  15. package/src/features/breakdown.js +0 -0
  16. package/src/features/conditional-formatting.js +0 -0
  17. package/src/index.js +111 -0
  18. package/src/mintwaterfall-accessibility.ts +680 -0
  19. package/src/mintwaterfall-advanced-data.ts +1034 -0
  20. package/src/mintwaterfall-advanced-interactions.ts +649 -0
  21. package/src/mintwaterfall-advanced-performance.ts +582 -0
  22. package/src/mintwaterfall-animations.ts +595 -0
  23. package/src/mintwaterfall-brush.ts +471 -0
  24. package/src/mintwaterfall-chart-core.ts +296 -0
  25. package/src/mintwaterfall-chart.ts +1915 -0
  26. package/src/mintwaterfall-data.ts +1100 -0
  27. package/src/mintwaterfall-export.ts +475 -0
  28. package/src/mintwaterfall-hierarchical-layouts.ts +724 -0
  29. package/src/mintwaterfall-layouts.ts +647 -0
  30. package/src/mintwaterfall-performance.ts +573 -0
  31. package/src/mintwaterfall-scales.ts +437 -0
  32. package/src/mintwaterfall-shapes.ts +385 -0
  33. package/src/mintwaterfall-statistics.ts +821 -0
  34. package/src/mintwaterfall-themes.ts +391 -0
  35. package/src/mintwaterfall-tooltip.ts +450 -0
  36. package/src/mintwaterfall-zoom.ts +399 -0
  37. package/src/types/js-modules.d.ts +25 -0
  38. package/src/utils/compatibility-layer.js +0 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,223 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.8.6] - 2025-09-04
9
+
10
+ ### Added
11
+ - **๐Ÿš€ Advanced D3.js Data Processing Features**: Complete Phase 1 implementation
12
+ - `d3.group()` and `d3.rollup()` multi-dimensional grouping
13
+ - `d3.flatRollup()` hierarchical data flattening
14
+ - `d3.cross()` and `d3.index()` cross-tabulation and indexing
15
+ - Temporal aggregation with `d3.timeMonth()` intervals
16
+ - Revenue waterfall analysis with breakdown capabilities
17
+ - Variance analysis for actual vs budget comparison
18
+ - Period comparison with period-over-period analysis
19
+ - Financial reducers with statistical functions (mean, variance, quantiles)
20
+ - Transaction data transformation utilities
21
+ - Comprehensive error handling and fallback mechanisms
22
+
23
+ ### Enhanced
24
+ - **๐Ÿ“Š Interactive Demo Section**: New advanced data processing showcase
25
+ - Live demonstration buttons for each D3.js function
26
+ - Real-time chart updates with processed data
27
+ - Detailed explanations and performance metrics
28
+ - Error handling with informative fallback data
29
+ - **๐Ÿ”ง Robust Error Handling**: Improved null-safety and data validation
30
+ - Fixed NaN display issues in financial reducers
31
+ - Added comprehensive try-catch blocks
32
+ - Console debugging and logging enhancements
33
+ - **๐Ÿ“š API Documentation**: Updated with complete advanced features reference
34
+
35
+ ### Technical
36
+ - **โšก Performance Optimizations**: Efficient data processing pipelines
37
+ - **๐Ÿ” Debug Enhancements**: Comprehensive logging and error reporting
38
+ - **๐Ÿงช Type Safety**: Enhanced TypeScript interfaces for new features
39
+
40
+ ## [0.8.5] - 2025-01-19
41
+
42
+ ### Added
43
+ - **๐Ÿงช Complete Test Suite**: Comprehensive testing with 100% pass rate
44
+ - 183 passing tests across 12 test suites
45
+ - Enhanced features testing (scales, brush, animations)
46
+ - Data processing validation with 50+ test cases
47
+ - Chart functionality testing with 83+ test cases
48
+ - Performance-optimized test execution (4.7s)
49
+
50
+ ### Changed
51
+ - **๐Ÿ—๏ธ TypeScript Migration Complete**: Full TypeScript support with type safety
52
+ - All core modules converted to TypeScript (.ts)
53
+ - Complete type definitions for all APIs
54
+ - Enhanced IntelliSense and developer experience
55
+ - Backward compatibility maintained
56
+ - **๐Ÿงน Codebase Cleanup**: Removed unnecessary files and tests
57
+ - Removed hierarchical layout functionality (not needed for waterfall charts)
58
+ - Cleaned up intermediate migration documentation
59
+ - Optimized test suite for faster execution
60
+ - Removed obsolete console-based tests
61
+
62
+ ### Fixed
63
+ - **๐Ÿ”ง Scale System Issues**: Fixed API mismatches and type issues
64
+ - Enhanced scale factory with proper TypeScript interfaces
65
+ - Fixed brush system with complete selection utilities
66
+ - Resolved data processor method completeness
67
+ - Improved chart API consistency
68
+
69
+ ### Removed
70
+ - **๐Ÿ“ Hierarchical Layouts**: Removed unused hierarchical layout functionality
71
+ - Treemap, partition, pack, cluster, tree visualizations removed
72
+ - Focus on core waterfall chart functionality
73
+ - Simplified codebase and reduced bundle size
74
+
75
+ ## [0.8.1] - 2025-08-30
76
+
77
+ ### Added
78
+ - **๐Ÿ—๏ธ Hierarchical Layout System**: Complete D3.js layout algorithm implementation
79
+ - `d3.hierarchy()` support for hierarchical data structures
80
+ - `d3.treemap()` for space-efficient breakdown visualizations
81
+ - `d3.partition()` for hierarchical breakdowns (icicle and sunburst layouts)
82
+ - `d3.pack()`, `d3.cluster()`, and `d3.tree()` layout algorithms
83
+ - **๐Ÿ“Š Advanced Chart Components**: New specialized chart types
84
+ - `treemapChart()` - Space-efficient hierarchical visualization
85
+ - `partitionChart()` - Flexible icicle and sunburst charts
86
+ - `sunburstChart()` - Radial hierarchical visualization
87
+ - **๐Ÿ”ง Modern Data Processing**: Advanced D3.js data structures
88
+ - `d3.group()` for multi-level data grouping operations
89
+ - `d3.rollup()` for data aggregation and summarization
90
+ - Cross-tabulation, time series, and summary utilities
91
+ - Efficient data transformation pipelines
92
+ - **โšก Performance Optimization System**: Enterprise-grade performance
93
+ - Data virtualization for >100K data points
94
+ - Incremental update patterns for efficient rendering
95
+ - Memory optimization with automatic cleanup
96
+ - Real-time performance monitoring and metrics
97
+ - Configurable chunk processing and render thresholds
98
+ - **๐Ÿ“ˆ Performance Dashboard**: Real-time monitoring capabilities
99
+ - Render time, memory usage, and FPS tracking
100
+ - Benchmark testing across different dataset sizes
101
+ - Performance comparison with/without optimizations
102
+ - **๐ŸŽฏ Power BI Integration Ready**: Enhanced D3.js feature coverage
103
+ - Layout algorithms for advanced breakdown visualizations
104
+ - Modern data structures for complex transformations
105
+ - Performance optimizations for large enterprise datasets
106
+
107
+ ### Enhanced
108
+ - **Chart API**: Extended with performance configuration methods
109
+ - `enablePerformanceOptimization()` - Toggle performance features
110
+ - `performanceDashboard()` - Real-time metrics display
111
+ - `virtualizationThreshold()` - Configure large dataset handling
112
+ - `getPerformanceMetrics()` - Access performance data
113
+ - **Data Processing**: Advanced transformation capabilities
114
+ - Hierarchical data conversion utilities
115
+ - Waterfall format transformation from any data structure
116
+ - Efficient filtering and aggregation for large datasets
117
+ - **Browser Compatibility**: Improved module system integration
118
+ - Better D3.js namespace integration
119
+ - Enhanced error handling and fallbacks
120
+
121
+ ### Performance
122
+ - **Large Dataset Support**: Handles >500K data points efficiently
123
+ - **Memory Management**: Automatic cleanup and garbage collection triggers
124
+ - **Render Optimization**: Smart sampling and virtualization strategies
125
+ - **Response Time**: <100ms updates for incremental data changes
126
+ - **Load Time**: <2s initial render for 100K+ data points
127
+
128
+ ### Documentation
129
+ - **HIERARCHICAL_LAYOUTS.md**: Comprehensive guide for new layout features
130
+ - **API Documentation**: Updated with all new methods and options
131
+ - **Performance Examples**: Interactive demos for testing optimizations
132
+
133
+ ## [0.6.0] - 2025-08-28
134
+
135
+ ### Added
136
+ - **๐Ÿ“ˆ Trend Line Overlays**: Complete trend analysis system with linear, moving average, and polynomial options
137
+ - **๐Ÿ”„ Enhanced Data Loading**: CSV, JSON, TSV format support with HTTP URL loading and automatic format detection
138
+ - **๐Ÿ–ผ๏ธ High-DPI PNG Export**: 2x scaling support with enhanced image quality and comprehensive error handling
139
+ - **โ™ฟ Modern Accessibility**: Forced Colors Mode support with CSS system colors, deprecated `-ms-high-contrast` removed
140
+ - **๐Ÿงช Comprehensive Testing**: 27 new test cases covering trend lines, data loading, and export functionality (206 total tests)
141
+ - **๐ŸŽจ Interactive Demo Integration**: Trend line demonstration integrated into main demo with live controls and styling options
142
+ - **โš™๏ธ Real-time Configuration**: Dynamic trend line styling with color, width, style, and algorithm parameter controls
143
+ - **๐Ÿ“š Educational Information**: Contextual explanations for each trend type with technical details
144
+
145
+ ### Fixed
146
+ - **ESLint Compliance**: All linting issues resolved with modern code standards
147
+ - **Deprecated API**: Removed legacy accessibility detection methods in favor of W3C Forced Colors Mode standard
148
+ - **Code Quality**: Unused variables properly handled with appropriate ESLint disable comments for future-use functions
149
+
150
+ ### Changed
151
+ - **Accessibility System**: Enhanced with automatic CSS injection for forced colors mode support
152
+ - **Export System**: Improved PNG generation with high-DPI support and better error handling
153
+ - **Demo Experience**: Consolidated trend line features into main demonstration page for unified user experience
154
+
155
+ ## [0.5.6] - 2025-08-22
156
+
157
+ ### Added
158
+ - **Enhanced D3.js v7 compatibility**: Full scale system support for band, linear, ordinal, and time scales
159
+ - **Advanced interactive features**: Brush system for data filtering and selection
160
+ - **Staggered animations**: Enhanced visual feedback with progressive reveal animations
161
+ - **Scale switching capabilities**: Dynamic switching between different scale types
162
+ - **Utility functions**: `getBarWidth()` and `getBarPosition()` for cross-scale compatibility
163
+
164
+ ### Fixed
165
+ - **Brush system errors**: Resolved `scale.invert is not a function` for band scales
166
+ - **Scale bandwidth errors**: Fixed `xScale.bandwidth is not a function` when switching scale types
167
+ - **D3 v7 API compatibility**: Removed deprecated `cornerRadius()` and `handleSize()` brush methods
168
+ - **Animation toggling**: Enhanced staggered animation toggle for immediate visual feedback
169
+
170
+ ### Changed
171
+ - **Test coverage**: Increased from 121 to 168 comprehensive test cases
172
+ - **Code organization**: Improved scale handling with dedicated utility functions
173
+ - **Performance**: Optimized rendering for different scale types
174
+ - **Documentation**: Updated API documentation with new advanced features
175
+
176
+ ### Technical Details
177
+ - All 168 tests passing with 51% code coverage
178
+ - Zero lint issues maintained
179
+ - Production-ready status achieved
180
+ - Enhanced error handling and debugging capabilities
181
+
182
+ ## [0.5.5] - 2025-08-XX
183
+
184
+ ### Added
185
+ - **Comprehensive testing**: 121 test cases with 57% code coverage
186
+ - **Enhanced functionality**: Fixed normalize/bounce buttons, improved UI/UX
187
+ - **Visual improvements**: 1100px wide charts, centered layouts, visual feedback system
188
+ - **Complete CI/CD pipeline**: Automated testing, security audits, deployment
189
+ - **Documentation**: Updated README, API docs, and examples
190
+
191
+ ### Changed
192
+ - **Code quality**: Achieved zero lint issues, professional codebase standards
193
+ - **Performance**: Optimized bundle size and rendering efficiency
194
+
195
+ ## [0.5.4] - 2025-08-XX
196
+
197
+ ### Added
198
+ - Initial production release
199
+ - Basic waterfall and stacked chart functionality
200
+ - D3.js integration
201
+ - Animation system
202
+ - Theme support
203
+
204
+ ### Technical
205
+ - Core chart rendering engine
206
+ - Data processing pipeline
207
+ - Event handling system
208
+ - Basic test suite setup
209
+
210
+ ---
211
+
212
+ ## Versioning Guidelines
213
+
214
+ - **Major version** (X.0.0): Breaking changes, major API overhauls
215
+ - **Minor version** (0.X.0): New features, enhancements, non-breaking changes
216
+ - **Patch version** (0.0.X): Bug fixes, documentation updates, maintenance
217
+
218
+ ## Support
219
+
220
+ For questions about specific versions or upgrade paths, please:
221
+ - Check the [API documentation](API.md)
222
+ - View [examples](mintwaterfall-example.html)
223
+ - File an [issue](https://github.com/coredds/MintWaterfall/issues)
@@ -0,0 +1,199 @@
1
+ # Contributing to MintWaterfall
2
+
3
+ We welcome contributions to MintWaterfall! This document provides guidelines for contributing to the project.
4
+
5
+ ## Development Setup
6
+
7
+ 1. **Clone the repository**
8
+ ```bash
9
+ git clone https://github.com/coredds/MintWaterfall.git
10
+ cd MintWaterfall
11
+ ```
12
+
13
+ 2. **Install dependencies**
14
+ ```bash
15
+ npm install
16
+ ```
17
+
18
+ 3. **Start development server**
19
+ ```bash
20
+ npm run dev
21
+ ```
22
+
23
+ 4. **Run linting**
24
+ ```bash
25
+ npm run lint
26
+ ```
27
+
28
+ ## Project Structure
29
+
30
+ ```
31
+ MintWaterfall/
32
+ โ”œโ”€โ”€ mintwaterfall-chart.js # Main chart component
33
+ โ”œโ”€โ”€ mintwaterfall-tooltip.js # Tooltip functionality
34
+ โ”œโ”€โ”€ mintwaterfall-themes.js # Theme system
35
+ โ”œโ”€โ”€ mintwaterfall-example.html # Live examples
36
+ โ”œโ”€โ”€ API.md # API documentation
37
+ โ”œโ”€โ”€ README.md # Project overview
38
+ โ”œโ”€โ”€ package.json # Dependencies and scripts
39
+ โ””โ”€โ”€ .github/
40
+ โ””โ”€โ”€ workflows/
41
+ โ””โ”€โ”€ basic-checks.yml # CI/CD pipeline
42
+ ```
43
+
44
+ ## Development Guidelines
45
+
46
+ ### Code Style
47
+
48
+ - Use ES6+ features and modules
49
+ - Follow D3.js conventions and patterns
50
+ - Use method chaining for API design
51
+ - Include JSDoc comments for public methods
52
+ - Maintain consistent indentation (2 spaces)
53
+
54
+ ### Commit Messages
55
+
56
+ Use conventional commit format:
57
+ - `feat:` for new features
58
+ - `fix:` for bug fixes
59
+ - `docs:` for documentation changes
60
+ - `style:` for code style changes
61
+ - `refactor:` for code refactoring
62
+ - `test:` for test-related changes
63
+
64
+ Examples:
65
+ ```
66
+ feat: add tooltip support for bar interactions
67
+ fix: resolve animation timing issues
68
+ docs: update API documentation with examples
69
+ ```
70
+
71
+ ### Pull Request Process
72
+
73
+ 1. **Create feature branch**
74
+ ```bash
75
+ git checkout -b feature/your-feature-name
76
+ ```
77
+
78
+ 2. **Make changes and commit**
79
+ ```bash
80
+ git add .
81
+ git commit -m "feat: add your feature description"
82
+ ```
83
+
84
+ 3. **Push branch and create PR**
85
+ ```bash
86
+ git push origin feature/your-feature-name
87
+ ```
88
+
89
+ 4. **Ensure CI passes**
90
+ - Linting checks pass
91
+ - No console errors in examples
92
+ - Documentation is updated
93
+
94
+ ## Feature Development
95
+
96
+ ### Adding New Features
97
+
98
+ 1. **Plan the feature**
99
+ - Check existing issues and roadmap
100
+ - Discuss approach in issue comments
101
+ - Consider backward compatibility
102
+
103
+ 2. **Implement the feature**
104
+ - Add to main chart component
105
+ - Update API documentation
106
+ - Add example usage
107
+ - Include error handling
108
+
109
+ 3. **Test thoroughly**
110
+ - Test with various data sets
111
+ - Verify animations work smoothly
112
+ - Check edge cases and error conditions
113
+ - Test browser compatibility
114
+
115
+ ### API Design Principles
116
+
117
+ - **Consistency**: Follow D3.js conventions
118
+ - **Chainability**: All setters return chart instance
119
+ - **Flexibility**: Support both simple and advanced use cases
120
+ - **Validation**: Validate inputs and provide helpful errors
121
+ - **Performance**: Optimize for smooth animations and updates
122
+
123
+ ## Bug Reports
124
+
125
+ When reporting bugs, please include:
126
+ - Clear description of the issue
127
+ - Steps to reproduce
128
+ - Expected vs actual behavior
129
+ - Browser and D3.js version
130
+ - Code example demonstrating the issue
131
+
132
+ ## Feature Requests
133
+
134
+ For feature requests, please:
135
+ - Check if feature already exists or is planned
136
+ - Describe the use case and benefit
137
+ - Provide examples of how it would be used
138
+ - Consider implementation complexity
139
+
140
+ ## Testing
141
+
142
+ ### Manual Testing Checklist
143
+
144
+ - [ ] Chart renders correctly with sample data
145
+ - [ ] Animations are smooth and complete
146
+ - [ ] Stacked/waterfall mode toggle works
147
+ - [ ] Data updates animate properly
148
+ - [ ] Error handling works for invalid data
149
+ - [ ] Events fire correctly
150
+ - [ ] Responsive behavior works
151
+ - [ ] Console shows no errors
152
+
153
+ ### Browser Testing
154
+
155
+ Test in:
156
+ - Chrome (latest)
157
+ - Firefox (latest)
158
+ - Safari (latest)
159
+ - Edge (latest)
160
+
161
+ ## Documentation
162
+
163
+ ### API Documentation
164
+
165
+ - Keep API.md up to date with all public methods
166
+ - Include examples for complex features
167
+ - Document all parameters and return values
168
+ - Explain common use cases
169
+
170
+ ### Code Documentation
171
+
172
+ - Use JSDoc comments for public methods
173
+ - Explain complex algorithms or calculations
174
+ - Document any D3.js-specific patterns used
175
+ - Include usage examples in comments
176
+
177
+ ## Release Process
178
+
179
+ 1. Update version in package.json
180
+ 2. Update CHANGELOG.md
181
+ 3. Create GitHub release
182
+ 4. Update live demo
183
+ 5. Announce in README
184
+
185
+ ## Community
186
+
187
+ - Be respectful and constructive
188
+ - Help others with issues and questions
189
+ - Share examples and use cases
190
+ - Contribute to documentation improvements
191
+
192
+ ## Getting Help
193
+
194
+ - Check existing issues and documentation
195
+ - Ask questions in issue comments
196
+ - Reference D3.js documentation for general D3 questions
197
+ - Look at the example file for usage patterns
198
+
199
+ Thank you for contributing to MintWaterfall!