photon-grid-vue 2.0.0 → 2.0.4
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 +4 -1
- package/index.cjs +1 -1
- package/index.d.ts +1 -0
- package/index.js +9 -9
- package/package.json +2 -2
- package/photon-grid.d.ts +56 -8
package/README.md
CHANGED
|
@@ -189,7 +189,10 @@ MIT License
|
|
|
189
189
|
|
|
190
190
|
- **GitHub** — https://github.com/abdulwahid-csit/photon-grid
|
|
191
191
|
- **Issues** — https://github.com/abdulwahid-csit/photon-grid/issues
|
|
192
|
-
- **NPM** — https://www.npmjs.com/package/photon-grid-vue
|
|
192
|
+
- **NPM Vue** — https://www.npmjs.com/package/photon-grid-vue
|
|
193
|
+
- **NPM Angular** — https://www.npmjs.com/package/photon-grid-angular
|
|
194
|
+
- **NPM React** — https://www.npmjs.com/package/photon-grid-react
|
|
195
|
+
- **NPM Core** — https://www.npmjs.com/package/photon-grid-core
|
|
193
196
|
|
|
194
197
|
---
|
|
195
198
|
|
package/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let e=require("vue"),t=require("photon-grid-core");var n=[[t.GridEventType.DATA_CHANGED,`dataChanged`],[t.GridEventType.ROW_CLICKED,`rowClicked`],[t.GridEventType.ROW_DOUBLE_CLICKED,`rowDoubleClicked`],[t.GridEventType.ROW_SELECTED,`rowSelected`],[t.GridEventType.CELL_CLICKED,`cellClicked`],[t.GridEventType.CELL_DOUBLE_CLICKED,`cellDoubleClicked`],[t.GridEventType.CELL_VALUE_CHANGED,`cellValueChanged`],[t.GridEventType.CELL_SELECTION_CHANGED,`cellSelectionChanged`],[t.GridEventType.COLUMN_RESIZED,`columnResized`],[t.GridEventType.COLUMN_MOVED,`columnMoved`],[t.GridEventType.SORT_CHANGED,`sortChanged`],[t.GridEventType.FILTER_CHANGED,`filterChanged`],[t.GridEventType.PAGE_CHANGED,`pageChanged`],[t.GridEventType.COLUMNS_STATE_CHANGED,`columnsStateChanged`],[t.GridEventType.THEME_CHANGED,`themeChanged`],[t.GridEventType.EXPORT_COMPLETE,`exportComplete`]],r=(0,e.defineComponent)({name:`PhotonGrid`,props:{columns:{type:Array,default:()=>[]},dataSet:{type:Array,default:()=>[]},options:{type:Object,default:()=>({})}},emits:[`gridReady`,`dataChanged`,`rowClicked`,`rowDoubleClicked`,`rowSelected`,`cellClicked`,`cellDoubleClicked`,`cellValueChanged`,`cellSelectionChanged`,`columnResized`,`columnMoved`,`sortChanged`,`filterChanged`,`pageChanged`,`columnsStateChanged`,`themeChanged`,`exportComplete`],setup(r,{emit:i}){let a=(0,e.ref)(null),o=(0,e.shallowRef)(null),s=[],c=()=>{for(let e of s)e();s=[],o.value?.destroy(),o.value=null},l=()=>{if(!a.value)return;let e={...r.options??{},columns:r.columns??[],data:r.dataSet??[]},c=new t.GridCore(a.value,e);o.value=c;let l=i;for(let[e,t]of n)s.push(c.api.on(e,e=>l(t,e)));l(`gridReady`,c.api)};return(0,e.onMounted)(l),(0,e.onBeforeUnmount)(c),(0,e.watch)(()=>[r.columns,r.dataSet,r.options],()=>{c(),l()}),()=>(0,e.h)(`div`,{ref:a,class:`photon-grid__host`})}});exports.PhotonGrid=r,exports.default=r;
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let e=require("vue"),t=require("photon-grid-core");var n=[[t.GridEventType.DATA_CHANGED,`dataChanged`],[t.GridEventType.ROW_CLICKED,`rowClicked`],[t.GridEventType.ROW_DOUBLE_CLICKED,`rowDoubleClicked`],[t.GridEventType.ROW_SELECTED,`rowSelected`],[t.GridEventType.CELL_CLICKED,`cellClicked`],[t.GridEventType.CELL_DOUBLE_CLICKED,`cellDoubleClicked`],[t.GridEventType.CELL_VALUE_CHANGED,`cellValueChanged`],[t.GridEventType.CELL_SELECTION_CHANGED,`cellSelectionChanged`],[t.GridEventType.COLUMN_RESIZED,`columnResized`],[t.GridEventType.COLUMN_MOVED,`columnMoved`],[t.GridEventType.SORT_CHANGED,`sortChanged`],[t.GridEventType.FILTER_CHANGED,`filterChanged`],[t.GridEventType.PAGE_CHANGED,`pageChanged`],[t.GridEventType.COLUMNS_STATE_CHANGED,`columnsStateChanged`],[t.GridEventType.THEME_CHANGED,`themeChanged`],[t.GridEventType.EXPORT_COMPLETE,`exportComplete`]],r=(0,e.defineComponent)({name:`PhotonGrid`,props:{columns:{type:Array,default:()=>[]},dataSet:{type:Array,default:()=>[]},options:{type:Object,default:()=>({})}},emits:[`gridReady`,`dataChanged`,`rowClicked`,`rowDoubleClicked`,`rowSelected`,`cellClicked`,`cellDoubleClicked`,`cellValueChanged`,`cellSelectionChanged`,`columnResized`,`columnMoved`,`sortChanged`,`filterChanged`,`pageChanged`,`columnsStateChanged`,`themeChanged`,`exportComplete`],setup(r,{emit:i}){let a=(0,e.ref)(null),o=(0,e.shallowRef)(null),s=[],c=()=>{for(let e of s)e();s=[],o.value?.destroy(),o.value=null},l=()=>{if(!a.value)return;let e={...r.options??{},columns:r.columns??[],data:r.dataSet??[]},c=new t.GridCore(a.value,e);o.value=c;let l=i;for(let[e,t]of n)s.push(c.api.on(e,e=>l(t,e)));l(`gridReady`,c.api)};return(0,e.onMounted)(l),(0,e.onBeforeUnmount)(c),(0,e.watch)(()=>[r.columns,r.dataSet,r.options],()=>{c(),l()}),()=>(0,e.h)(`div`,{ref:a,class:`photon-grid__host`})}});Object.defineProperty(exports,"PhotonAIProviderType",{enumerable:!0,get:function(){return t.PhotonAIProviderType}}),exports.PhotonGrid=r,exports.default=r;
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent as e, h as t, onBeforeUnmount as n, onMounted as r, ref as i, shallowRef as a, watch as o } from "vue";
|
|
2
|
-
import { GridCore as s, GridEventType as c } from "photon-grid-core";
|
|
2
|
+
import { GridCore as s, GridEventType as c, PhotonAIProviderType as l } from "photon-grid-core";
|
|
3
3
|
//#region src/photon-grid.ts
|
|
4
|
-
var
|
|
4
|
+
var u = [
|
|
5
5
|
[c.DATA_CHANGED, "dataChanged"],
|
|
6
6
|
[c.ROW_CLICKED, "rowClicked"],
|
|
7
7
|
[c.ROW_DOUBLE_CLICKED, "rowDoubleClicked"],
|
|
@@ -18,7 +18,7 @@ var l = [
|
|
|
18
18
|
[c.COLUMNS_STATE_CHANGED, "columnsStateChanged"],
|
|
19
19
|
[c.THEME_CHANGED, "themeChanged"],
|
|
20
20
|
[c.EXPORT_COMPLETE, "exportComplete"]
|
|
21
|
-
],
|
|
21
|
+
], d = e({
|
|
22
22
|
name: "PhotonGrid",
|
|
23
23
|
props: {
|
|
24
24
|
columns: {
|
|
@@ -54,19 +54,19 @@ var l = [
|
|
|
54
54
|
"exportComplete"
|
|
55
55
|
],
|
|
56
56
|
setup(e, { emit: c }) {
|
|
57
|
-
let
|
|
57
|
+
let l = i(null), d = a(null), f = [], p = () => {
|
|
58
58
|
for (let e of f) e();
|
|
59
59
|
f = [], d.value?.destroy(), d.value = null;
|
|
60
60
|
}, m = () => {
|
|
61
|
-
if (!
|
|
61
|
+
if (!l.value) return;
|
|
62
62
|
let t = {
|
|
63
63
|
...e.options ?? {},
|
|
64
64
|
columns: e.columns ?? [],
|
|
65
65
|
data: e.dataSet ?? []
|
|
66
|
-
}, n = new s(
|
|
66
|
+
}, n = new s(l.value, t);
|
|
67
67
|
d.value = n;
|
|
68
68
|
let r = c;
|
|
69
|
-
for (let [e, t] of
|
|
69
|
+
for (let [e, t] of u) f.push(n.api.on(e, (e) => r(t, e)));
|
|
70
70
|
r("gridReady", n.api);
|
|
71
71
|
};
|
|
72
72
|
return r(m), n(p), o(() => [
|
|
@@ -76,10 +76,10 @@ var l = [
|
|
|
76
76
|
], () => {
|
|
77
77
|
p(), m();
|
|
78
78
|
}), () => t("div", {
|
|
79
|
-
ref:
|
|
79
|
+
ref: l,
|
|
80
80
|
class: "photon-grid__host"
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
83
|
});
|
|
84
84
|
//#endregion
|
|
85
|
-
export {
|
|
85
|
+
export { l as PhotonAIProviderType, d as PhotonGrid, d as default };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "photon-grid-vue",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.4",
|
|
4
4
|
"description": "Vue 3 wrapper for Photon Grid — an enterprise-grade, framework-agnostic TypeScript data grid.",
|
|
5
5
|
"author": "Abdul Wahid",
|
|
6
6
|
"license": "MIT",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
],
|
|
22
22
|
"sideEffects": false,
|
|
23
23
|
"peerDependencies": {
|
|
24
|
-
"photon-grid-core": "^2.0.
|
|
24
|
+
"photon-grid-core": "^2.0.4",
|
|
25
25
|
"vue": "^3.4.0"
|
|
26
26
|
},
|
|
27
27
|
"keywords": [
|
package/photon-grid.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PropType } from 'vue';
|
|
2
|
-
import {
|
|
2
|
+
import { ColumnDefInput, GridOptions } from 'photon-grid-core';
|
|
3
3
|
/**
|
|
4
4
|
* Vue 3 wrapper around the framework-agnostic {@link GridCore}. Renders a single
|
|
5
5
|
* host element, instantiates the grid on mount, forwards the grid's typed events
|
|
@@ -13,9 +13,13 @@ import { ColumnDef, GridOptions } from 'photon-grid-core';
|
|
|
13
13
|
* ```
|
|
14
14
|
*/
|
|
15
15
|
export declare const PhotonGrid: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
16
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* Column definitions. Only `field` is required per column — `colId`,
|
|
18
|
+
* `header` and `type` are optional and defaulted by the core (auto `colId`,
|
|
19
|
+
* header from the field in Title Case, `type` defaulting to `'string'`).
|
|
20
|
+
*/
|
|
17
21
|
columns: {
|
|
18
|
-
type: PropType<
|
|
22
|
+
type: PropType<ColumnDefInput[]>;
|
|
19
23
|
default: () => never[];
|
|
20
24
|
};
|
|
21
25
|
/** Row data. */
|
|
@@ -23,7 +27,27 @@ export declare const PhotonGrid: import('vue').DefineComponent<import('vue').Ext
|
|
|
23
27
|
type: PropType<Record<string, unknown>[]>;
|
|
24
28
|
default: () => never[];
|
|
25
29
|
};
|
|
26
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* Additional grid options (theme, selection, features…), forwarded to the
|
|
32
|
+
* core. Enable the natural-language AI panel — and, optionally, its Gemini
|
|
33
|
+
* generative back-end — through `options.photonAI`:
|
|
34
|
+
*
|
|
35
|
+
* @example Gemini-powered AI panel
|
|
36
|
+
* ```ts
|
|
37
|
+
* import { PhotonAIProviderType } from 'photon-grid-vue';
|
|
38
|
+
*
|
|
39
|
+
* const options = {
|
|
40
|
+
* photonAI: {
|
|
41
|
+
* enabled: true,
|
|
42
|
+
* provider: {
|
|
43
|
+
* type: PhotonAIProviderType.Gemini,
|
|
44
|
+
* apiKey: import.meta.env.VITE_GEMINI_API_KEY,
|
|
45
|
+
* model: 'gemini-2.5-flash',
|
|
46
|
+
* },
|
|
47
|
+
* },
|
|
48
|
+
* };
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
27
51
|
options: {
|
|
28
52
|
type: PropType<Partial<GridOptions>>;
|
|
29
53
|
default: () => {};
|
|
@@ -31,9 +55,13 @@ export declare const PhotonGrid: import('vue').DefineComponent<import('vue').Ext
|
|
|
31
55
|
}>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
32
56
|
[key: string]: any;
|
|
33
57
|
}>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("dataChanged" | "rowClicked" | "rowDoubleClicked" | "rowSelected" | "cellClicked" | "cellDoubleClicked" | "cellValueChanged" | "cellSelectionChanged" | "columnResized" | "columnMoved" | "sortChanged" | "filterChanged" | "pageChanged" | "columnsStateChanged" | "themeChanged" | "exportComplete" | "gridReady")[], "dataChanged" | "rowClicked" | "rowDoubleClicked" | "rowSelected" | "cellClicked" | "cellDoubleClicked" | "cellValueChanged" | "cellSelectionChanged" | "columnResized" | "columnMoved" | "sortChanged" | "filterChanged" | "pageChanged" | "columnsStateChanged" | "themeChanged" | "exportComplete" | "gridReady", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
34
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* Column definitions. Only `field` is required per column — `colId`,
|
|
60
|
+
* `header` and `type` are optional and defaulted by the core (auto `colId`,
|
|
61
|
+
* header from the field in Title Case, `type` defaulting to `'string'`).
|
|
62
|
+
*/
|
|
35
63
|
columns: {
|
|
36
|
-
type: PropType<
|
|
64
|
+
type: PropType<ColumnDefInput[]>;
|
|
37
65
|
default: () => never[];
|
|
38
66
|
};
|
|
39
67
|
/** Row data. */
|
|
@@ -41,7 +69,27 @@ export declare const PhotonGrid: import('vue').DefineComponent<import('vue').Ext
|
|
|
41
69
|
type: PropType<Record<string, unknown>[]>;
|
|
42
70
|
default: () => never[];
|
|
43
71
|
};
|
|
44
|
-
/**
|
|
72
|
+
/**
|
|
73
|
+
* Additional grid options (theme, selection, features…), forwarded to the
|
|
74
|
+
* core. Enable the natural-language AI panel — and, optionally, its Gemini
|
|
75
|
+
* generative back-end — through `options.photonAI`:
|
|
76
|
+
*
|
|
77
|
+
* @example Gemini-powered AI panel
|
|
78
|
+
* ```ts
|
|
79
|
+
* import { PhotonAIProviderType } from 'photon-grid-vue';
|
|
80
|
+
*
|
|
81
|
+
* const options = {
|
|
82
|
+
* photonAI: {
|
|
83
|
+
* enabled: true,
|
|
84
|
+
* provider: {
|
|
85
|
+
* type: PhotonAIProviderType.Gemini,
|
|
86
|
+
* apiKey: import.meta.env.VITE_GEMINI_API_KEY,
|
|
87
|
+
* model: 'gemini-2.5-flash',
|
|
88
|
+
* },
|
|
89
|
+
* },
|
|
90
|
+
* };
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
45
93
|
options: {
|
|
46
94
|
type: PropType<Partial<GridOptions>>;
|
|
47
95
|
default: () => {};
|
|
@@ -65,7 +113,7 @@ export declare const PhotonGrid: import('vue').DefineComponent<import('vue').Ext
|
|
|
65
113
|
onExportComplete?: ((...args: any[]) => any) | undefined;
|
|
66
114
|
onGridReady?: ((...args: any[]) => any) | undefined;
|
|
67
115
|
}>, {
|
|
68
|
-
columns:
|
|
116
|
+
columns: ColumnDefInput[];
|
|
69
117
|
dataSet: Record<string, unknown>[];
|
|
70
118
|
options: Partial<GridOptions>;
|
|
71
119
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|