photon-grid-core 0.0.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +304 -304
- package/chart/chart-config/chart-controls.d.ts +49 -0
- package/chart/chart-config/chart-controls.d.ts.map +1 -0
- package/chart/chart-config/chart-controls.js +229 -0
- package/chart/chart-config/chart-controls.js.map +1 -0
- package/chart/chart-config/chart-tool-panel.d.ts +86 -0
- package/chart/chart-config/chart-tool-panel.d.ts.map +1 -0
- package/chart/chart-config/chart-tool-panel.js +402 -0
- package/chart/chart-config/chart-tool-panel.js.map +1 -0
- package/chart/chart-panel.d.ts +97 -0
- package/chart/chart-panel.d.ts.map +1 -1
- package/chart/chart-panel.js +211 -58
- package/chart/chart-panel.js.map +1 -1
- package/chart/chart-renderer.d.ts +97 -0
- package/chart/chart-renderer.d.ts.map +1 -1
- package/chart/chart-renderer.js +335 -72
- package/chart/chart-renderer.js.map +1 -1
- package/chart/chart-theme.d.ts +38 -0
- package/chart/chart-theme.d.ts.map +1 -0
- package/chart/chart-theme.js +47 -0
- package/chart/chart-theme.js.map +1 -0
- package/chart/model/chart-model-mapper.d.ts +38 -0
- package/chart/model/chart-model-mapper.d.ts.map +1 -0
- package/chart/model/chart-model-mapper.js +128 -0
- package/chart/model/chart-model-mapper.js.map +1 -0
- package/chart/model/chart-model.d.ts +153 -0
- package/chart/model/chart-model.d.ts.map +1 -0
- package/chart/model/chart-model.js +79 -0
- package/chart/model/chart-model.js.map +1 -0
- package/chart/range-chart-controller.d.ts +68 -0
- package/chart/range-chart-controller.d.ts.map +1 -0
- package/chart/range-chart-controller.js +209 -0
- package/chart/range-chart-controller.js.map +1 -0
- package/chart/range-chart-service.d.ts +78 -0
- package/chart/range-chart-service.d.ts.map +1 -0
- package/chart/range-chart-service.js +162 -0
- package/chart/range-chart-service.js.map +1 -0
- package/core/grid-api.d.ts +20 -0
- package/core/grid-api.d.ts.map +1 -1
- package/core/grid-api.js +41 -0
- package/core/grid-api.js.map +1 -1
- package/core/grid-context.d.ts +7 -0
- package/core/grid-context.d.ts.map +1 -1
- package/core/grid-core.d.ts.map +1 -1
- package/core/grid-core.js +21 -9
- package/core/grid-core.js.map +1 -1
- package/icons/icon-sets/core-icons.js +1 -1
- package/icons/icon-sets/core-icons.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/package.json +57 -70
- package/renderer/body-renderer.d.ts.map +1 -1
- package/renderer/body-renderer.js +21 -4
- package/renderer/body-renderer.js.map +1 -1
- package/renderer/cell-renderer.js +1 -1
- package/renderer/cell-renderer.js.map +1 -1
- package/renderer/column-menu.js +24 -25
- package/renderer/column-menu.js.map +1 -1
- package/renderer/column-style-manager.d.ts.map +1 -1
- package/renderer/column-style-manager.js +11 -2
- package/renderer/column-style-manager.js.map +1 -1
- package/renderer/grid-renderer.js +1 -1
- package/renderer/grid-renderer.js.map +1 -1
- package/renderer/header-renderer.d.ts.map +1 -1
- package/renderer/header-renderer.js +17 -3
- package/renderer/header-renderer.js.map +1 -1
- package/renderer/row-drag-renderer.d.ts +18 -0
- package/renderer/row-drag-renderer.d.ts.map +1 -1
- package/renderer/row-drag-renderer.js +53 -0
- package/renderer/row-drag-renderer.js.map +1 -1
- package/styles/base/cells.css.d.ts +9 -0
- package/styles/base/cells.css.d.ts.map +1 -0
- package/styles/base/cells.css.js +233 -0
- package/styles/base/cells.css.js.map +1 -0
- package/styles/base/chart-config.css.d.ts +10 -0
- package/styles/base/chart-config.css.d.ts.map +1 -0
- package/styles/base/chart-config.css.js +126 -0
- package/styles/base/chart-config.css.js.map +1 -0
- package/styles/base/chart-controls.css.d.ts +7 -0
- package/styles/base/chart-controls.css.d.ts.map +1 -0
- package/styles/base/chart-controls.css.js +165 -0
- package/styles/base/chart-controls.css.js.map +1 -0
- package/styles/base/chart-panel.css.d.ts +9 -0
- package/styles/base/chart-panel.css.d.ts.map +1 -0
- package/styles/base/chart-panel.css.js +148 -0
- package/styles/base/chart-panel.css.js.map +1 -0
- package/styles/base/column-context-menu.css.d.ts +9 -0
- package/styles/base/column-context-menu.css.d.ts.map +1 -0
- package/styles/base/column-context-menu.css.js +153 -0
- package/styles/base/column-context-menu.css.js.map +1 -0
- package/styles/base/column-group-header.css.d.ts +9 -0
- package/styles/base/column-group-header.css.d.ts.map +1 -0
- package/styles/base/column-group-header.css.js +270 -0
- package/styles/base/column-group-header.css.js.map +1 -0
- package/styles/base/context-menu.css.d.ts +9 -0
- package/styles/base/context-menu.css.d.ts.map +1 -0
- package/styles/base/context-menu.css.js +103 -0
- package/styles/base/context-menu.css.js.map +1 -0
- package/styles/base/editors.css.d.ts +9 -0
- package/styles/base/editors.css.d.ts.map +1 -0
- package/styles/base/editors.css.js +291 -0
- package/styles/base/editors.css.js.map +1 -0
- package/styles/base/filter.css.d.ts +9 -0
- package/styles/base/filter.css.d.ts.map +1 -0
- package/styles/base/filter.css.js +312 -0
- package/styles/base/filter.css.js.map +1 -0
- package/styles/base/footer.css.d.ts +9 -0
- package/styles/base/footer.css.d.ts.map +1 -0
- package/styles/base/footer.css.js +78 -0
- package/styles/base/footer.css.js.map +1 -0
- package/styles/base/group-bar-search.css.d.ts +9 -0
- package/styles/base/group-bar-search.css.d.ts.map +1 -0
- package/styles/base/group-bar-search.css.js +86 -0
- package/styles/base/group-bar-search.css.js.map +1 -0
- package/styles/base/group-drop-zone.css.d.ts +9 -0
- package/styles/base/group-drop-zone.css.d.ts.map +1 -0
- package/styles/base/group-drop-zone.css.js +173 -0
- package/styles/base/group-drop-zone.css.js.map +1 -0
- package/styles/base/header.css.d.ts +9 -0
- package/styles/base/header.css.d.ts.map +1 -0
- package/styles/base/header.css.js +206 -0
- package/styles/base/header.css.js.map +1 -0
- package/styles/base/master-detail.css.d.ts +9 -0
- package/styles/base/master-detail.css.d.ts.map +1 -0
- package/styles/base/master-detail.css.js +202 -0
- package/styles/base/master-detail.css.js.map +1 -0
- package/styles/base/misc.css.d.ts +9 -0
- package/styles/base/misc.css.d.ts.map +1 -0
- package/styles/base/misc.css.js +65 -0
- package/styles/base/misc.css.js.map +1 -0
- package/styles/base/panels.css.d.ts +9 -0
- package/styles/base/panels.css.d.ts.map +1 -0
- package/styles/base/panels.css.js +162 -0
- package/styles/base/panels.css.js.map +1 -0
- package/styles/base/photon-ai.css.d.ts +9 -0
- package/styles/base/photon-ai.css.d.ts.map +1 -0
- package/styles/base/photon-ai.css.js +200 -0
- package/styles/base/photon-ai.css.js.map +1 -0
- package/styles/base/root.css.d.ts +9 -0
- package/styles/base/root.css.d.ts.map +1 -0
- package/styles/base/root.css.js +56 -0
- package/styles/base/root.css.js.map +1 -0
- package/styles/base/row-drag.css.d.ts +9 -0
- package/styles/base/row-drag.css.d.ts.map +1 -0
- package/styles/base/row-drag.css.js +93 -0
- package/styles/base/row-drag.css.js.map +1 -0
- package/styles/base/row-group.css.d.ts +9 -0
- package/styles/base/row-group.css.d.ts.map +1 -0
- package/styles/base/row-group.css.js +79 -0
- package/styles/base/row-group.css.js.map +1 -0
- package/styles/base/rows.css.d.ts +9 -0
- package/styles/base/rows.css.d.ts.map +1 -0
- package/styles/base/rows.css.js +83 -0
- package/styles/base/rows.css.js.map +1 -0
- package/styles/base/scrollbars.css.d.ts +9 -0
- package/styles/base/scrollbars.css.d.ts.map +1 -0
- package/styles/base/scrollbars.css.js +56 -0
- package/styles/base/scrollbars.css.js.map +1 -0
- package/styles/base/sparkline.css.d.ts +9 -0
- package/styles/base/sparkline.css.d.ts.map +1 -0
- package/styles/base/sparkline.css.js +109 -0
- package/styles/base/sparkline.css.js.map +1 -0
- package/styles/base/tooltip.css.d.ts +9 -0
- package/styles/base/tooltip.css.d.ts.map +1 -0
- package/styles/base/tooltip.css.js +39 -0
- package/styles/base/tooltip.css.js.map +1 -0
- package/styles/base/tree.css.d.ts +9 -0
- package/styles/base/tree.css.d.ts.map +1 -0
- package/styles/base/tree.css.js +78 -0
- package/styles/base/tree.css.js.map +1 -0
- package/styles/base-styles.d.ts.map +1 -1
- package/styles/base-styles.js +60 -3026
- package/styles/base-styles.js.map +1 -1
- package/styles/themes/theme-alpine.d.ts +1 -1
- package/styles/themes/theme-alpine.d.ts.map +1 -1
- package/styles/themes/theme-alpine.js +1 -1
- package/styles/themes/theme-balham.d.ts +1 -1
- package/styles/themes/theme-balham.d.ts.map +1 -1
- package/styles/themes/theme-balham.js +0 -1
- package/styles/themes/theme-balham.js.map +1 -1
- package/styles/themes/theme-dark.d.ts +1 -1
- package/styles/themes/theme-dark.d.ts.map +1 -1
- package/styles/themes/theme-dark.js +1 -1
- package/styles/themes/theme-material.d.ts +1 -1
- package/styles/themes/theme-material.d.ts.map +1 -1
- package/styles/themes/theme-material.js +0 -1
- package/styles/themes/theme-material.js.map +1 -1
- package/styles/themes/theme-quartz.d.ts +1 -1
- package/styles/themes/theme-quartz.d.ts.map +1 -1
- package/styles/themes/theme-quartz.js +1 -1
- package/types/event.types.d.ts +29 -0
- package/types/event.types.d.ts.map +1 -1
- package/types/event.types.js +1 -0
- package/types/event.types.js.map +1 -1
- package/types/grid.types.d.ts +51 -0
- package/types/grid.types.d.ts.map +1 -1
- package/LICENSE +0 -1
- package/chart/chart-analyzer.d.ts +0 -12
- package/chart/chart-analyzer.d.ts.map +0 -1
- package/chart/chart-analyzer.js +0 -77
- package/chart/chart-analyzer.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,305 +1,305 @@
|
|
|
1
|
-
# Photon Grid Core
|
|
2
|
-
|
|
3
|
-
<p align="center">
|
|
4
|
-
<img src="https://raw.githubusercontent.com/YOUR_GITHUB_USERNAME/photon-grid/main/assets/logo.png" alt="Photon Grid" width="180"/>
|
|
5
|
-
</p>
|
|
6
|
-
|
|
7
|
-
<p align="center">
|
|
8
|
-
<strong>A high-performance, zero-dependency TypeScript data grid engine.</strong>
|
|
9
|
-
</p>
|
|
10
|
-
|
|
11
|
-
<p align="center">
|
|
12
|
-
|
|
13
|
-

|
|
14
|
-

|
|
15
|
-

|
|
16
|
-

|
|
17
|
-
|
|
18
|
-
</p>
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## Overview
|
|
23
|
-
|
|
24
|
-
Photon Grid Core is the rendering and data engine that powers the Photon Grid ecosystem.
|
|
25
|
-
|
|
26
|
-
It provides an extremely fast, modular, framework-independent grid implementation written entirely in TypeScript with **zero runtime dependencies**.
|
|
27
|
-
|
|
28
|
-
This package is intended for:
|
|
29
|
-
|
|
30
|
-
- JavaScript applications
|
|
31
|
-
- TypeScript applications
|
|
32
|
-
- Framework wrappers
|
|
33
|
-
- Custom UI frameworks
|
|
34
|
-
- Internal rendering engines
|
|
35
|
-
|
|
36
|
-
If you're looking for Angular, React, or Vue integration, use the corresponding Photon Grid wrapper package instead.
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
# Features
|
|
41
|
-
|
|
42
|
-
- Zero runtime dependencies
|
|
43
|
-
- Written entirely in TypeScript
|
|
44
|
-
- High performance rendering engine
|
|
45
|
-
- Virtual Scrolling
|
|
46
|
-
- Virtual Columns
|
|
47
|
-
- Millions of rows support
|
|
48
|
-
- Column Pinning
|
|
49
|
-
- Column Resizing
|
|
50
|
-
- Column Moving
|
|
51
|
-
- Column Auto Size
|
|
52
|
-
- Cell Selection
|
|
53
|
-
- Range Selection
|
|
54
|
-
- Clipboard Support
|
|
55
|
-
- Keyboard Navigation
|
|
56
|
-
- Mouse Navigation
|
|
57
|
-
- Tree Data
|
|
58
|
-
- Row Grouping
|
|
59
|
-
- Sorting
|
|
60
|
-
- Multi Column Sorting
|
|
61
|
-
- Filtering
|
|
62
|
-
- Quick Filtering
|
|
63
|
-
- Custom Cell Renderers
|
|
64
|
-
- Custom Header Renderers
|
|
65
|
-
- Context Menu
|
|
66
|
-
- Custom Context Menu
|
|
67
|
-
- Pagination
|
|
68
|
-
- Status Bar
|
|
69
|
-
- Tool Panels
|
|
70
|
-
- Theme Support
|
|
71
|
-
- Plugin Architecture
|
|
72
|
-
- Event System
|
|
73
|
-
- API Driven
|
|
74
|
-
- High FPS Rendering
|
|
75
|
-
- Memory Efficient
|
|
76
|
-
- Zero Framework Lock-in
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
# Installation
|
|
81
|
-
|
|
82
|
-
```bash
|
|
83
|
-
npm install photon-grid-core
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
or
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
yarn add photon-grid-core
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
or
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
pnpm add photon-grid-core
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
# Basic Usage
|
|
101
|
-
|
|
102
|
-
```ts
|
|
103
|
-
import { PhotonGrid } from "photon-grid-core";
|
|
104
|
-
|
|
105
|
-
const grid = new PhotonGrid({
|
|
106
|
-
element: document.getElementById("grid"),
|
|
107
|
-
columns: [],
|
|
108
|
-
rowData: []
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
grid.render();
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
---
|
|
115
|
-
|
|
116
|
-
# Package Structure
|
|
117
|
-
|
|
118
|
-
```
|
|
119
|
-
photon-grid-core
|
|
120
|
-
│
|
|
121
|
-
├── api
|
|
122
|
-
├── core
|
|
123
|
-
├── chart
|
|
124
|
-
├── clipboard
|
|
125
|
-
├── column
|
|
126
|
-
├── context-menu
|
|
127
|
-
├── datasource
|
|
128
|
-
├── events
|
|
129
|
-
├── export
|
|
130
|
-
├── filter
|
|
131
|
-
├── grouping
|
|
132
|
-
├── header
|
|
133
|
-
├── keyboard
|
|
134
|
-
├── menu
|
|
135
|
-
├── overlay
|
|
136
|
-
├── pagination
|
|
137
|
-
├── renderer
|
|
138
|
-
├── row
|
|
139
|
-
├── selection
|
|
140
|
-
├── sorting
|
|
141
|
-
├── statusbar
|
|
142
|
-
├── theme
|
|
143
|
-
├── tree
|
|
144
|
-
├── utils
|
|
145
|
-
└── index.ts
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
|
|
150
|
-
# Why Photon Grid?
|
|
151
|
-
|
|
152
|
-
Photon Grid was designed from the ground up to compete with enterprise-grade grid libraries while remaining lightweight and fully extensible.
|
|
153
|
-
|
|
154
|
-
Goals include:
|
|
155
|
-
|
|
156
|
-
- Better developer experience
|
|
157
|
-
- Modern TypeScript architecture
|
|
158
|
-
- Framework independent
|
|
159
|
-
- Fast rendering
|
|
160
|
-
- Modular design
|
|
161
|
-
- Simple API
|
|
162
|
-
- Enterprise capabilities
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
# Browser Support
|
|
167
|
-
|
|
168
|
-
Supports all modern browsers.
|
|
169
|
-
|
|
170
|
-
- Chrome
|
|
171
|
-
- Edge
|
|
172
|
-
- Firefox
|
|
173
|
-
- Safari
|
|
174
|
-
|
|
175
|
-
---
|
|
176
|
-
|
|
177
|
-
# TypeScript
|
|
178
|
-
|
|
179
|
-
Photon Grid Core is written in TypeScript and ships with built-in declaration files.
|
|
180
|
-
|
|
181
|
-
No additional typings are required.
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
# Zero Dependencies
|
|
186
|
-
|
|
187
|
-
Photon Grid Core intentionally avoids runtime dependencies.
|
|
188
|
-
|
|
189
|
-
Benefits include:
|
|
190
|
-
|
|
191
|
-
- Smaller bundle size
|
|
192
|
-
- Faster startup
|
|
193
|
-
- Better tree shaking
|
|
194
|
-
- No dependency conflicts
|
|
195
|
-
- Easier upgrades
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
# Performance
|
|
200
|
-
|
|
201
|
-
Photon Grid is optimized for very large datasets using virtualization.
|
|
202
|
-
|
|
203
|
-
Typical capabilities include:
|
|
204
|
-
|
|
205
|
-
- Millions of rows
|
|
206
|
-
- Thousands of columns
|
|
207
|
-
- High FPS scrolling
|
|
208
|
-
- Low memory usage
|
|
209
|
-
|
|
210
|
-
Actual performance depends on browser, hardware, and enabled features.
|
|
211
|
-
|
|
212
|
-
---
|
|
213
|
-
|
|
214
|
-
# Framework Wrappers
|
|
215
|
-
|
|
216
|
-
Photon Grid Core is the engine behind upcoming framework integrations.
|
|
217
|
-
|
|
218
|
-
Planned packages include:
|
|
219
|
-
|
|
220
|
-
- photon-grid-angular
|
|
221
|
-
- photon-grid-react
|
|
222
|
-
- photon-grid-vue
|
|
223
|
-
- photon-grid-svelte
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
# Roadmap
|
|
228
|
-
|
|
229
|
-
Upcoming features include:
|
|
230
|
-
|
|
231
|
-
- Pivot Tables
|
|
232
|
-
- Excel Export
|
|
233
|
-
- CSV Export
|
|
234
|
-
- Server Side Row Model
|
|
235
|
-
- Infinite Row Model
|
|
236
|
-
- Master Detail
|
|
237
|
-
- Charts
|
|
238
|
-
- Sparklines
|
|
239
|
-
- Formula Engine
|
|
240
|
-
- Undo / Redo
|
|
241
|
-
- Aggregations
|
|
242
|
-
- Advanced Filtering
|
|
243
|
-
- AI Assisted Grid Operations
|
|
244
|
-
- Theme Builder
|
|
245
|
-
|
|
246
|
-
---
|
|
247
|
-
|
|
248
|
-
# Contributing
|
|
249
|
-
|
|
250
|
-
Contributions are welcome.
|
|
251
|
-
|
|
252
|
-
Please submit issues, feature requests, or pull requests through GitHub.
|
|
253
|
-
|
|
254
|
-
---
|
|
255
|
-
|
|
256
|
-
# License
|
|
257
|
-
|
|
258
|
-
MIT License
|
|
259
|
-
|
|
260
|
-
---
|
|
261
|
-
|
|
262
|
-
# Author
|
|
263
|
-
|
|
264
|
-
**Abdul Wahid**
|
|
265
|
-
|
|
266
|
-
---
|
|
267
|
-
|
|
268
|
-
# Links
|
|
269
|
-
|
|
270
|
-
GitHub
|
|
271
|
-
|
|
272
|
-
https://github.com/YOUR_GITHUB_USERNAME/photon-grid
|
|
273
|
-
|
|
274
|
-
Issues
|
|
275
|
-
|
|
276
|
-
https://github.com/YOUR_GITHUB_USERNAME/photon-grid/issues
|
|
277
|
-
|
|
278
|
-
NPM
|
|
279
|
-
|
|
280
|
-
https://www.npmjs.com/package/photon-grid-core
|
|
281
|
-
|
|
282
|
-
---
|
|
283
|
-
|
|
284
|
-
## Philosophy
|
|
285
|
-
|
|
286
|
-
Photon Grid is built around a few simple principles.
|
|
287
|
-
|
|
288
|
-
- Performance first.
|
|
289
|
-
- Zero unnecessary dependencies.
|
|
290
|
-
- Framework independence.
|
|
291
|
-
- Extensible architecture.
|
|
292
|
-
- Excellent developer experience.
|
|
293
|
-
- Enterprise-grade capabilities.
|
|
294
|
-
|
|
295
|
-
---
|
|
296
|
-
|
|
297
|
-
## Status
|
|
298
|
-
|
|
299
|
-
Photon Grid is under active development.
|
|
300
|
-
|
|
301
|
-
New features, performance improvements, and framework integrations are added regularly.
|
|
302
|
-
|
|
303
|
-
If you encounter any issues or have feature requests, please open an issue on GitHub.
|
|
304
|
-
|
|
1
|
+
# Photon Grid Core
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="https://raw.githubusercontent.com/YOUR_GITHUB_USERNAME/photon-grid/main/assets/logo.png" alt="Photon Grid" width="180"/>
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<strong>A high-performance, zero-dependency TypeScript data grid engine.</strong>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
|
|
13
|
+

|
|
14
|
+

|
|
15
|
+

|
|
16
|
+

|
|
17
|
+
|
|
18
|
+
</p>
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Overview
|
|
23
|
+
|
|
24
|
+
Photon Grid Core is the rendering and data engine that powers the Photon Grid ecosystem.
|
|
25
|
+
|
|
26
|
+
It provides an extremely fast, modular, framework-independent grid implementation written entirely in TypeScript with **zero runtime dependencies**.
|
|
27
|
+
|
|
28
|
+
This package is intended for:
|
|
29
|
+
|
|
30
|
+
- JavaScript applications
|
|
31
|
+
- TypeScript applications
|
|
32
|
+
- Framework wrappers
|
|
33
|
+
- Custom UI frameworks
|
|
34
|
+
- Internal rendering engines
|
|
35
|
+
|
|
36
|
+
If you're looking for Angular, React, or Vue integration, use the corresponding Photon Grid wrapper package instead.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
# Features
|
|
41
|
+
|
|
42
|
+
- Zero runtime dependencies
|
|
43
|
+
- Written entirely in TypeScript
|
|
44
|
+
- High performance rendering engine
|
|
45
|
+
- Virtual Scrolling
|
|
46
|
+
- Virtual Columns
|
|
47
|
+
- Millions of rows support
|
|
48
|
+
- Column Pinning
|
|
49
|
+
- Column Resizing
|
|
50
|
+
- Column Moving
|
|
51
|
+
- Column Auto Size
|
|
52
|
+
- Cell Selection
|
|
53
|
+
- Range Selection
|
|
54
|
+
- Clipboard Support
|
|
55
|
+
- Keyboard Navigation
|
|
56
|
+
- Mouse Navigation
|
|
57
|
+
- Tree Data
|
|
58
|
+
- Row Grouping
|
|
59
|
+
- Sorting
|
|
60
|
+
- Multi Column Sorting
|
|
61
|
+
- Filtering
|
|
62
|
+
- Quick Filtering
|
|
63
|
+
- Custom Cell Renderers
|
|
64
|
+
- Custom Header Renderers
|
|
65
|
+
- Context Menu
|
|
66
|
+
- Custom Context Menu
|
|
67
|
+
- Pagination
|
|
68
|
+
- Status Bar
|
|
69
|
+
- Tool Panels
|
|
70
|
+
- Theme Support
|
|
71
|
+
- Plugin Architecture
|
|
72
|
+
- Event System
|
|
73
|
+
- API Driven
|
|
74
|
+
- High FPS Rendering
|
|
75
|
+
- Memory Efficient
|
|
76
|
+
- Zero Framework Lock-in
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
# Installation
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
npm install photon-grid-core
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
or
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
yarn add photon-grid-core
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
or
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
pnpm add photon-grid-core
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
# Basic Usage
|
|
101
|
+
|
|
102
|
+
```ts
|
|
103
|
+
import { PhotonGrid } from "photon-grid-core";
|
|
104
|
+
|
|
105
|
+
const grid = new PhotonGrid({
|
|
106
|
+
element: document.getElementById("grid"),
|
|
107
|
+
columns: [],
|
|
108
|
+
rowData: []
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
grid.render();
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
# Package Structure
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
photon-grid-core
|
|
120
|
+
│
|
|
121
|
+
├── api
|
|
122
|
+
├── core
|
|
123
|
+
├── chart
|
|
124
|
+
├── clipboard
|
|
125
|
+
├── column
|
|
126
|
+
├── context-menu
|
|
127
|
+
├── datasource
|
|
128
|
+
├── events
|
|
129
|
+
├── export
|
|
130
|
+
├── filter
|
|
131
|
+
├── grouping
|
|
132
|
+
├── header
|
|
133
|
+
├── keyboard
|
|
134
|
+
├── menu
|
|
135
|
+
├── overlay
|
|
136
|
+
├── pagination
|
|
137
|
+
├── renderer
|
|
138
|
+
├── row
|
|
139
|
+
├── selection
|
|
140
|
+
├── sorting
|
|
141
|
+
├── statusbar
|
|
142
|
+
├── theme
|
|
143
|
+
├── tree
|
|
144
|
+
├── utils
|
|
145
|
+
└── index.ts
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
# Why Photon Grid?
|
|
151
|
+
|
|
152
|
+
Photon Grid was designed from the ground up to compete with enterprise-grade grid libraries while remaining lightweight and fully extensible.
|
|
153
|
+
|
|
154
|
+
Goals include:
|
|
155
|
+
|
|
156
|
+
- Better developer experience
|
|
157
|
+
- Modern TypeScript architecture
|
|
158
|
+
- Framework independent
|
|
159
|
+
- Fast rendering
|
|
160
|
+
- Modular design
|
|
161
|
+
- Simple API
|
|
162
|
+
- Enterprise capabilities
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
# Browser Support
|
|
167
|
+
|
|
168
|
+
Supports all modern browsers.
|
|
169
|
+
|
|
170
|
+
- Chrome
|
|
171
|
+
- Edge
|
|
172
|
+
- Firefox
|
|
173
|
+
- Safari
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
# TypeScript
|
|
178
|
+
|
|
179
|
+
Photon Grid Core is written in TypeScript and ships with built-in declaration files.
|
|
180
|
+
|
|
181
|
+
No additional typings are required.
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
# Zero Dependencies
|
|
186
|
+
|
|
187
|
+
Photon Grid Core intentionally avoids runtime dependencies.
|
|
188
|
+
|
|
189
|
+
Benefits include:
|
|
190
|
+
|
|
191
|
+
- Smaller bundle size
|
|
192
|
+
- Faster startup
|
|
193
|
+
- Better tree shaking
|
|
194
|
+
- No dependency conflicts
|
|
195
|
+
- Easier upgrades
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
# Performance
|
|
200
|
+
|
|
201
|
+
Photon Grid is optimized for very large datasets using virtualization.
|
|
202
|
+
|
|
203
|
+
Typical capabilities include:
|
|
204
|
+
|
|
205
|
+
- Millions of rows
|
|
206
|
+
- Thousands of columns
|
|
207
|
+
- High FPS scrolling
|
|
208
|
+
- Low memory usage
|
|
209
|
+
|
|
210
|
+
Actual performance depends on browser, hardware, and enabled features.
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
# Framework Wrappers
|
|
215
|
+
|
|
216
|
+
Photon Grid Core is the engine behind upcoming framework integrations.
|
|
217
|
+
|
|
218
|
+
Planned packages include:
|
|
219
|
+
|
|
220
|
+
- photon-grid-angular
|
|
221
|
+
- photon-grid-react
|
|
222
|
+
- photon-grid-vue
|
|
223
|
+
- photon-grid-svelte
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
# Roadmap
|
|
228
|
+
|
|
229
|
+
Upcoming features include:
|
|
230
|
+
|
|
231
|
+
- Pivot Tables
|
|
232
|
+
- Excel Export
|
|
233
|
+
- CSV Export
|
|
234
|
+
- Server Side Row Model
|
|
235
|
+
- Infinite Row Model
|
|
236
|
+
- Master Detail
|
|
237
|
+
- Charts
|
|
238
|
+
- Sparklines
|
|
239
|
+
- Formula Engine
|
|
240
|
+
- Undo / Redo
|
|
241
|
+
- Aggregations
|
|
242
|
+
- Advanced Filtering
|
|
243
|
+
- AI Assisted Grid Operations
|
|
244
|
+
- Theme Builder
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
# Contributing
|
|
249
|
+
|
|
250
|
+
Contributions are welcome.
|
|
251
|
+
|
|
252
|
+
Please submit issues, feature requests, or pull requests through GitHub.
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
# License
|
|
257
|
+
|
|
258
|
+
MIT License
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
# Author
|
|
263
|
+
|
|
264
|
+
**Abdul Wahid**
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
# Links
|
|
269
|
+
|
|
270
|
+
GitHub
|
|
271
|
+
|
|
272
|
+
https://github.com/YOUR_GITHUB_USERNAME/photon-grid
|
|
273
|
+
|
|
274
|
+
Issues
|
|
275
|
+
|
|
276
|
+
https://github.com/YOUR_GITHUB_USERNAME/photon-grid/issues
|
|
277
|
+
|
|
278
|
+
NPM
|
|
279
|
+
|
|
280
|
+
https://www.npmjs.com/package/photon-grid-core
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## Philosophy
|
|
285
|
+
|
|
286
|
+
Photon Grid is built around a few simple principles.
|
|
287
|
+
|
|
288
|
+
- Performance first.
|
|
289
|
+
- Zero unnecessary dependencies.
|
|
290
|
+
- Framework independence.
|
|
291
|
+
- Extensible architecture.
|
|
292
|
+
- Excellent developer experience.
|
|
293
|
+
- Enterprise-grade capabilities.
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Status
|
|
298
|
+
|
|
299
|
+
Photon Grid is under active development.
|
|
300
|
+
|
|
301
|
+
New features, performance improvements, and framework integrations are added regularly.
|
|
302
|
+
|
|
303
|
+
If you encounter any issues or have feature requests, please open an issue on GitHub.
|
|
304
|
+
|
|
305
305
|
⭐ If you find Photon Grid useful, consider starring the repository.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Small, theme-token-styled form-control primitives used to build the chart
|
|
3
|
+
* configuration tool panel. Each factory returns a ready-to-mount element and
|
|
4
|
+
* wires a single `onChange` callback. No control writes inline styles — all
|
|
5
|
+
* appearance comes from `chart-controls.css.ts`.
|
|
6
|
+
*/
|
|
7
|
+
/** A `<select>` dropdown. */
|
|
8
|
+
export declare function createDropdown(options: ReadonlyArray<{
|
|
9
|
+
value: string;
|
|
10
|
+
label: string;
|
|
11
|
+
}>, value: string, onChange: (value: string) => void, label?: string): HTMLElement;
|
|
12
|
+
/** A switch-style boolean toggle. */
|
|
13
|
+
export declare function createToggle(checked: boolean, onChange: (checked: boolean) => void, label: string): HTMLElement;
|
|
14
|
+
/** A color swatch backed by a native color input. */
|
|
15
|
+
export declare function createColorInput(value: string, onChange: (value: string) => void, label: string): HTMLElement;
|
|
16
|
+
/** A numeric input with optional bounds and step. */
|
|
17
|
+
export declare function createNumberInput(value: number, onChange: (value: number) => void, label: string, min?: number, max?: number, step?: number): HTMLElement;
|
|
18
|
+
/** A single-line text input. */
|
|
19
|
+
export declare function createTextInput(value: string, onChange: (value: string) => void, label: string, placeholder?: string): HTMLElement;
|
|
20
|
+
/** A segmented button group (single selection). */
|
|
21
|
+
export declare function createSegmented(options: ReadonlyArray<{
|
|
22
|
+
value: string;
|
|
23
|
+
label: string;
|
|
24
|
+
}>, value: string, onChange: (value: string) => void, label?: string): HTMLElement;
|
|
25
|
+
/**
|
|
26
|
+
* A collapsible section with a header toggle. Returns the outer `section` and
|
|
27
|
+
* the `body` element callers append content to.
|
|
28
|
+
*/
|
|
29
|
+
export declare function createCollapsibleSection(title: string, expanded?: boolean): {
|
|
30
|
+
section: HTMLElement;
|
|
31
|
+
body: HTMLElement;
|
|
32
|
+
};
|
|
33
|
+
/** An item in a {@link createReorderableList}. */
|
|
34
|
+
export interface ReorderListItem {
|
|
35
|
+
readonly id: string;
|
|
36
|
+
readonly label: string;
|
|
37
|
+
readonly color?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* A drag-to-reorder list with per-item remove buttons. Reordering uses a pointer
|
|
41
|
+
* drag (mousedown/move/up), not HTML5 DnD, to match the chart panel's own drag
|
|
42
|
+
* handling and avoid ghost-image quirks.
|
|
43
|
+
*
|
|
44
|
+
* @param items - Items in current order.
|
|
45
|
+
* @param onReorder - Called with the new id order after a drag.
|
|
46
|
+
* @param onRemove - Called with an item id when its remove button is clicked.
|
|
47
|
+
*/
|
|
48
|
+
export declare function createReorderableList(items: readonly ReorderListItem[], onReorder: (orderedIds: string[]) => void, onRemove: (id: string) => void): HTMLElement;
|
|
49
|
+
//# sourceMappingURL=chart-controls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-controls.d.ts","sourceRoot":"","sources":["../../../src/chart/chart-config/chart-controls.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,6BAA6B;AAC7B,wBAAgB,cAAc,CAC5B,OAAO,EAAE,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EACxD,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,KAAK,CAAC,EAAE,MAAM,GACb,WAAW,CAYb;AAED,qCAAqC;AACrC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CA2B/G;AAED,qDAAqD;AACrD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAO7G;AAED,qDAAqD;AACrD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,WAAW,CAab;AAED,gCAAgC;AAChC,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,KAAK,EAAE,MAAM,EACb,WAAW,SAAK,GACf,WAAW,CAQb;AAED,mDAAmD;AACnD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EACxD,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,KAAK,CAAC,EAAE,MAAM,GACb,WAAW,CAmBb;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,QAAQ,UAAQ,GACf;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CA0B7C;AAED,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,EACzC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAC7B,WAAW,CA0Cb"}
|