open-grid 0.2.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.
Files changed (70) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +366 -0
  3. package/dist/OpenGrid-CAodJLLm.cjs +90 -0
  4. package/dist/OpenGrid-CAodJLLm.cjs.map +1 -0
  5. package/dist/OpenGrid-CfZy3e7Q.js +4376 -0
  6. package/dist/OpenGrid-CfZy3e7Q.js.map +1 -0
  7. package/dist/open-grid-base.css +1595 -0
  8. package/dist/open-grid-react.cjs +2 -0
  9. package/dist/open-grid-react.cjs.map +1 -0
  10. package/dist/open-grid-react.js +91 -0
  11. package/dist/open-grid-react.js.map +1 -0
  12. package/dist/open-grid-themes.css +630 -0
  13. package/dist/open-grid-vue.cjs +2 -0
  14. package/dist/open-grid-vue.cjs.map +1 -0
  15. package/dist/open-grid-vue.js +84 -0
  16. package/dist/open-grid-vue.js.map +1 -0
  17. package/dist/open-grid.cjs +7 -0
  18. package/dist/open-grid.cjs.map +1 -0
  19. package/dist/open-grid.js +311 -0
  20. package/dist/open-grid.js.map +1 -0
  21. package/dist/types/bench/perf.d.ts +16 -0
  22. package/dist/types/core/CellEditManager.d.ts +46 -0
  23. package/dist/types/core/CellEventHandler.d.ts +28 -0
  24. package/dist/types/core/CellTypeRegistry.d.ts +5 -0
  25. package/dist/types/core/ColumnLayout.d.ts +41 -0
  26. package/dist/types/core/ContextMenu.d.ts +33 -0
  27. package/dist/types/core/DataLayer.d.ts +65 -0
  28. package/dist/types/core/EventEmitter.d.ts +11 -0
  29. package/dist/types/core/ExportManager.d.ts +28 -0
  30. package/dist/types/core/FilterPanel.d.ts +20 -0
  31. package/dist/types/core/FilterSelect.d.ts +96 -0
  32. package/dist/types/core/FindBarManager.d.ts +26 -0
  33. package/dist/types/core/FooterManager.d.ts +16 -0
  34. package/dist/types/core/FormulaEngine.d.ts +10 -0
  35. package/dist/types/core/GridRenderer.d.ts +42 -0
  36. package/dist/types/core/GroupEngine.d.ts +47 -0
  37. package/dist/types/core/GroupTreeManager.d.ts +43 -0
  38. package/dist/types/core/KeyboardManager.d.ts +26 -0
  39. package/dist/types/core/MaskingEngine.d.ts +25 -0
  40. package/dist/types/core/MathUtils.d.ts +26 -0
  41. package/dist/types/core/MergeEngine.d.ts +35 -0
  42. package/dist/types/core/OGDecimal.d.ts +49 -0
  43. package/dist/types/core/OpenGrid.d.ts +213 -0
  44. package/dist/types/core/OrgChart.d.ts +35 -0
  45. package/dist/types/core/Pagination.d.ts +34 -0
  46. package/dist/types/core/PivotEngine.d.ts +20 -0
  47. package/dist/types/core/RowDragDrop.d.ts +18 -0
  48. package/dist/types/core/RowManager.d.ts +30 -0
  49. package/dist/types/core/SortFilterManager.d.ts +36 -0
  50. package/dist/types/core/TreeEngine.d.ts +34 -0
  51. package/dist/types/core/TriggerManager.d.ts +10 -0
  52. package/dist/types/core/VirtualScroll.d.ts +31 -0
  53. package/dist/types/core/WorksheetManager.d.ts +24 -0
  54. package/dist/types/core/XmlConverter.d.ts +88 -0
  55. package/dist/types/core/editors/CellEditor.d.ts +55 -0
  56. package/dist/types/core/editors/DateEditor.d.ts +15 -0
  57. package/dist/types/core/editors/SelectEditor.d.ts +21 -0
  58. package/dist/types/core/renderers/CellRenderer.d.ts +138 -0
  59. package/dist/types/core/types.d.ts +497 -0
  60. package/dist/types/index.d.ts +9 -0
  61. package/dist/types/react/OpenGrid.d.ts +34 -0
  62. package/dist/types/react/index.d.ts +2 -0
  63. package/dist/types/vue/OpenGrid.vue.d.ts +80 -0
  64. package/dist/types/vue/index.d.ts +2 -0
  65. package/dist/types/vue/types.d.ts +28 -0
  66. package/dist/xlsx.min-Bx-LxWOf.cjs +138 -0
  67. package/dist/xlsx.min-Bx-LxWOf.cjs.map +1 -0
  68. package/dist/xlsx.min-Wavxcamn.js +11907 -0
  69. package/dist/xlsx.min-Wavxcamn.js.map +1 -0
  70. package/package.json +102 -0
@@ -0,0 +1,55 @@
1
+ import { ColumnDef } from '../types.js';
2
+ import { RenderContext } from '../renderers/CellRenderer.js';
3
+
4
+ export { DateEditor } from './DateEditor.js';
5
+ export { SelectEditor } from './SelectEditor.js';
6
+ export interface EditorResult {
7
+ committed: boolean;
8
+ value: any;
9
+ }
10
+ export interface CellEditor {
11
+ mount(container: HTMLElement, ctx: RenderContext, onCommit: (value: any) => void, onCancel: () => void): void;
12
+ getValue(): any;
13
+ focus(): void;
14
+ destroy(): void;
15
+ }
16
+ export declare class TextEditor implements CellEditor {
17
+ private input;
18
+ private _onCommit;
19
+ private _onCancel;
20
+ mount(container: HTMLElement, ctx: RenderContext, onCommit: (v: any) => void, onCancel: () => void): void;
21
+ private _onKeyDown;
22
+ private _onBlur;
23
+ getValue(): any;
24
+ focus(): void;
25
+ destroy(): void;
26
+ }
27
+ export declare class NumberEditor implements CellEditor {
28
+ private input;
29
+ private _onCommit;
30
+ private _onCancel;
31
+ private min;
32
+ private max;
33
+ private step;
34
+ constructor(opts?: {
35
+ min?: number;
36
+ max?: number;
37
+ step?: number;
38
+ });
39
+ mount(container: HTMLElement, ctx: RenderContext, onCommit: (v: any) => void, onCancel: () => void): void;
40
+ private _onKeyDown;
41
+ private _onBlur;
42
+ private _commit;
43
+ getValue(): any;
44
+ focus(): void;
45
+ destroy(): void;
46
+ }
47
+ export declare class CheckboxEditor implements CellEditor {
48
+ private chk;
49
+ private _onCommit;
50
+ mount(container: HTMLElement, ctx: RenderContext, onCommit: (v: any) => void, _onCancel: () => void): void;
51
+ getValue(): any;
52
+ focus(): void;
53
+ destroy(): void;
54
+ }
55
+ export declare function createEditor(col: ColumnDef): CellEditor;
@@ -0,0 +1,15 @@
1
+ import { CellEditor } from './CellEditor.js';
2
+ import { RenderContext } from '../renderers/CellRenderer.js';
3
+
4
+ export declare class DateEditor implements CellEditor {
5
+ private input;
6
+ private _container;
7
+ private _onCommit;
8
+ private _onCancel;
9
+ mount(container: HTMLElement, ctx: RenderContext, onCommit: (v: any) => void, onCancel: () => void): void;
10
+ private _onKeyDown;
11
+ private _onBlur;
12
+ getValue(): any;
13
+ focus(): void;
14
+ destroy(): void;
15
+ }
@@ -0,0 +1,21 @@
1
+ import { CellEditor } from './CellEditor.js';
2
+ import { RenderContext } from '../renderers/CellRenderer.js';
3
+
4
+ export type SelectOption = string | {
5
+ label?: string;
6
+ text?: string;
7
+ value: any;
8
+ };
9
+ export declare class SelectEditor implements CellEditor {
10
+ private select;
11
+ private _container;
12
+ private _onCommit;
13
+ private _onCancel;
14
+ private _options;
15
+ private _optionsFn;
16
+ constructor(options?: SelectOption[], optionsFn?: (row: any, rowIndex: number) => SelectOption[]);
17
+ mount(container: HTMLElement, ctx: RenderContext, onCommit: (v: any) => void, onCancel: () => void): void;
18
+ getValue(): any;
19
+ focus(): void;
20
+ destroy(): void;
21
+ }
@@ -0,0 +1,138 @@
1
+ import { ColumnDef } from '../types.js';
2
+
3
+ export interface RenderContext<T = any> {
4
+ value: any;
5
+ row: T;
6
+ rowIndex: number;
7
+ column: ColumnDef<T>;
8
+ colIndex: number;
9
+ isSelected: boolean;
10
+ rowState: 'none' | 'added' | 'edited' | 'removed';
11
+ }
12
+ export interface CellRenderer {
13
+ render(ctx: RenderContext): HTMLElement;
14
+ }
15
+ /**
16
+ * 컬럼에 formula가 있으면 OGDecimal로 평가해 표시값(string)을 반환.
17
+ * formula가 없으면 null 반환 → 기존 ctx.value 사용.
18
+ */
19
+ export declare function resolveFormula(ctx: RenderContext): string | null;
20
+ export declare function formatNumber(value: any, format?: string, precision?: number): string;
21
+ export declare function formatDate(value: any, format?: string): string;
22
+ export declare class TextRenderer implements CellRenderer {
23
+ render(ctx: RenderContext): HTMLElement;
24
+ }
25
+ export declare class SelectRenderer implements CellRenderer {
26
+ private _opts;
27
+ private _fn;
28
+ constructor(opts?: Array<{
29
+ label?: string;
30
+ text?: string;
31
+ value: any;
32
+ }>, fn?: (row: any, ri: number) => Array<{
33
+ label?: string;
34
+ text?: string;
35
+ value: any;
36
+ }>);
37
+ render(ctx: RenderContext): HTMLElement;
38
+ }
39
+ export declare class NumberRenderer implements CellRenderer {
40
+ render(ctx: RenderContext): HTMLElement;
41
+ }
42
+ export declare class DateRenderer implements CellRenderer {
43
+ render(ctx: RenderContext): HTMLElement;
44
+ }
45
+ export declare class CheckboxRenderer implements CellRenderer {
46
+ render(ctx: RenderContext): HTMLElement;
47
+ }
48
+ export interface ButtonRendererDef {
49
+ type: 'button';
50
+ label?: string | ((value: any, row: any) => string);
51
+ buttonClass?: string;
52
+ style?: string;
53
+ }
54
+ export declare class ButtonRenderer implements CellRenderer {
55
+ private def?;
56
+ constructor(def?: ButtonRendererDef | undefined);
57
+ render(ctx: RenderContext): HTMLElement;
58
+ }
59
+ export declare class BadgeRenderer implements CellRenderer {
60
+ private colorMap?;
61
+ private labelMap?;
62
+ constructor(colorMap?: Record<string, string> | undefined, labelMap?: Record<string, string> | undefined);
63
+ render(ctx: RenderContext): HTMLElement;
64
+ }
65
+ export declare class LinkRenderer implements CellRenderer {
66
+ private hrefFn?;
67
+ private target?;
68
+ constructor(hrefFn?: ((value: any, row: any) => string) | undefined, target?: string | undefined);
69
+ render(ctx: RenderContext): HTMLElement;
70
+ }
71
+ export declare class TemplateRenderer implements CellRenderer {
72
+ private templateFn;
73
+ constructor(templateFn: (value: any, row: any, rowIndex: number) => string);
74
+ render(ctx: RenderContext): HTMLElement;
75
+ }
76
+ export interface ImageRendererDef {
77
+ type: 'image';
78
+ width?: number;
79
+ height?: number;
80
+ radius?: number;
81
+ srcFn?: (value: any, row: any) => string;
82
+ alt?: string | ((value: any, row: any) => string);
83
+ }
84
+ export declare class ImageRenderer implements CellRenderer {
85
+ private def?;
86
+ constructor(def?: ImageRendererDef | undefined);
87
+ render(ctx: RenderContext): HTMLElement;
88
+ }
89
+ export interface ProgressRendererDef {
90
+ type: 'progress';
91
+ max?: number;
92
+ color?: string;
93
+ showLabel?: boolean;
94
+ colorFn?: (value: number) => string;
95
+ }
96
+ export declare class ProgressRenderer implements CellRenderer {
97
+ private def?;
98
+ constructor(def?: ProgressRendererDef | undefined);
99
+ render(ctx: RenderContext): HTMLElement;
100
+ }
101
+ export interface SparklineRendererDef {
102
+ type: 'sparkline';
103
+ width?: number;
104
+ height?: number;
105
+ color?: string;
106
+ chartType?: 'bar' | 'line' | 'area';
107
+ }
108
+ export declare class SparklineRenderer implements CellRenderer {
109
+ private def?;
110
+ constructor(def?: SparklineRendererDef | undefined);
111
+ render(ctx: RenderContext): HTMLElement;
112
+ }
113
+ export declare class SwitchRenderer implements CellRenderer {
114
+ render(ctx: RenderContext): HTMLElement;
115
+ }
116
+ export interface RatingRendererDef {
117
+ type: 'rating';
118
+ max?: number;
119
+ color?: string;
120
+ }
121
+ export declare class RatingRenderer implements CellRenderer {
122
+ private def?;
123
+ constructor(def?: RatingRendererDef | undefined);
124
+ render(ctx: RenderContext): HTMLElement;
125
+ }
126
+ export declare class RadioRenderer implements CellRenderer {
127
+ render(ctx: RenderContext): HTMLElement;
128
+ }
129
+ export declare class ImgRenderer implements CellRenderer {
130
+ render(ctx: RenderContext): HTMLElement;
131
+ }
132
+ export declare class HtmlRenderer implements CellRenderer {
133
+ render(ctx: RenderContext): HTMLElement;
134
+ }
135
+ export declare class BarcodeRenderer implements CellRenderer {
136
+ render(ctx: RenderContext): HTMLElement;
137
+ }
138
+ export declare function createRenderer(col: ColumnDef): CellRenderer;