@revolist/vue3-datagrid 3.2.17 → 3.6.16

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.
@@ -33,7 +33,7 @@ module.exports = {
33
33
  extensions: [ '.tsx', '.ts', '.js', '.vue' ],
34
34
  alias: {
35
35
  'vue$': 'vue/dist/vue.esm-bundler.js',
36
- '@revolist/vue-datagrid': path.resolve(__dirname, '../dist/vgrid')
36
+ '@revolist/vue-datagrid': path.resolve(__dirname, '../src/vgrid')
37
37
  }
38
38
  },
39
39
  module: {
@@ -1,50 +1,14 @@
1
1
  import type { JSX } from '@revolist/revogrid';
2
- import { RevoGrid as RevoGridComponent } from '@revolist/revogrid/custom-element/';
3
- export { RevoGridComponent };
4
- export declare const RevoGrid: import("vue").DefineComponent<JSX.RevoGrid & import("./vue-component-lib/utils").InputProps<string | number | boolean>, object, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<JSX.RevoGrid & import("./vue-component-lib/utils").InputProps<string | number | boolean>>, {}>;
5
- export declare const RevogrClipboard: import("vue").DefineComponent<JSX.RevogrClipboard & import("./vue-component-lib/utils").InputProps<string | number | boolean>, object, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<JSX.RevogrClipboard & import("./vue-component-lib/utils").InputProps<string | number | boolean>>, {}>;
6
- export declare const RevogrData: import("vue").DefineComponent<JSX.RevogrData & import("./vue-component-lib/utils").InputProps<string | number | boolean>, object, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<JSX.RevogrData & import("./vue-component-lib/utils").InputProps<string | number | boolean>>, {
7
- rowSelectionStore?: any;
8
- viewportRow?: any;
9
- viewportCol?: any;
10
- dimensionRow?: any;
11
- colData?: any;
12
- dataStore?: any;
13
- }>;
14
- export declare const RevogrEdit: import("vue").DefineComponent<JSX.RevogrEdit & import("./vue-component-lib/utils").InputProps<string | number | boolean>, object, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<JSX.RevogrEdit & import("./vue-component-lib/utils").InputProps<string | number | boolean>>, {}>;
15
- export declare const RevogrFilterPanel: import("vue").DefineComponent<JSX.RevogrFilterPanel & import("./vue-component-lib/utils").InputProps<string | number | boolean>, object, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<JSX.RevogrFilterPanel & import("./vue-component-lib/utils").InputProps<string | number | boolean>>, {}>;
16
- export declare const RevogrFocus: import("vue").DefineComponent<JSX.RevogrFocus & import("./vue-component-lib/utils").InputProps<string | number | boolean>, object, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<JSX.RevogrFocus & import("./vue-component-lib/utils").InputProps<string | number | boolean>>, {
17
- dimensionRow: any;
18
- colData: any;
19
- dataStore: any;
20
- selectionStore: any;
21
- dimensionCol: any;
22
- }>;
23
- export declare const RevogrHeader: import("vue").DefineComponent<JSX.RevogrHeader & import("./vue-component-lib/utils").InputProps<string | number | boolean>, object, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<JSX.RevogrHeader & import("./vue-component-lib/utils").InputProps<string | number | boolean>>, {
24
- viewportCol?: any;
25
- selectionStore?: any;
26
- dimensionCol?: any;
27
- }>;
28
- export declare const RevogrOrderEditor: import("vue").DefineComponent<JSX.RevogrOrderEditor & import("./vue-component-lib/utils").InputProps<string | number | boolean>, object, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<JSX.RevogrOrderEditor & import("./vue-component-lib/utils").InputProps<string | number | boolean>>, {
29
- dimensionRow?: any;
30
- dataStore?: any;
31
- dimensionCol?: any;
32
- }>;
33
- export declare const RevogrOverlaySelection: import("vue").DefineComponent<JSX.RevogrOverlaySelection & import("./vue-component-lib/utils").InputProps<string | number | boolean>, object, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<JSX.RevogrOverlaySelection & import("./vue-component-lib/utils").InputProps<string | number | boolean>>, {
34
- dimensionRow?: any;
35
- colData?: any;
36
- dataStore?: any;
37
- selectionStore?: any;
38
- dimensionCol?: any;
39
- }>;
40
- export declare const RevogrRowHeaders: import("vue").DefineComponent<JSX.RevogrRowHeaders & import("./vue-component-lib/utils").InputProps<string | number | boolean>, object, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<JSX.RevogrRowHeaders & import("./vue-component-lib/utils").InputProps<string | number | boolean>>, {}>;
41
- export declare const RevogrScrollVirtual: import("vue").DefineComponent<JSX.RevogrScrollVirtual & import("./vue-component-lib/utils").InputProps<string | number | boolean>, object, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<JSX.RevogrScrollVirtual & import("./vue-component-lib/utils").InputProps<string | number | boolean>>, {
42
- viewportStore?: any;
43
- dimensionStore?: any;
44
- }>;
45
- export declare const RevogrTempRange: import("vue").DefineComponent<JSX.RevogrTempRange & import("./vue-component-lib/utils").InputProps<string | number | boolean>, object, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<JSX.RevogrTempRange & import("./vue-component-lib/utils").InputProps<string | number | boolean>>, {
46
- dimensionRow?: any;
47
- selectionStore?: any;
48
- dimensionCol?: any;
49
- }>;
50
- export declare const RevogrViewportScroll: import("vue").DefineComponent<JSX.RevogrViewportScroll & import("./vue-component-lib/utils").InputProps<string | number | boolean>, object, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<JSX.RevogrViewportScroll & import("./vue-component-lib/utils").InputProps<string | number | boolean>>, {}>;
2
+ export declare const RevoGrid: (props: JSX.RevoGrid & import("./vue-component-lib/utils").InputProps<string | number | boolean> & {}) => any;
3
+ export declare const RevogrClipboard: (props: JSX.RevogrClipboard & import("./vue-component-lib/utils").InputProps<string | number | boolean> & {}) => any;
4
+ export declare const RevogrData: (props: JSX.RevogrData & import("./vue-component-lib/utils").InputProps<string | number | boolean> & {}) => any;
5
+ export declare const RevogrEdit: (props: JSX.RevogrEdit & import("./vue-component-lib/utils").InputProps<string | number | boolean> & {}) => any;
6
+ export declare const RevogrFilterPanel: (props: JSX.RevogrFilterPanel & import("./vue-component-lib/utils").InputProps<string | number | boolean> & {}) => any;
7
+ export declare const RevogrFocus: (props: JSX.RevogrFocus & import("./vue-component-lib/utils").InputProps<string | number | boolean> & {}) => any;
8
+ export declare const RevogrHeader: (props: JSX.RevogrHeader & import("./vue-component-lib/utils").InputProps<string | number | boolean> & {}) => any;
9
+ export declare const RevogrOrderEditor: (props: JSX.RevogrOrderEditor & import("./vue-component-lib/utils").InputProps<string | number | boolean> & {}) => any;
10
+ export declare const RevogrOverlaySelection: (props: JSX.RevogrOverlaySelection & import("./vue-component-lib/utils").InputProps<string | number | boolean> & {}) => any;
11
+ export declare const RevogrRowHeaders: (props: JSX.RevogrRowHeaders & import("./vue-component-lib/utils").InputProps<string | number | boolean> & {}) => any;
12
+ export declare const RevogrScrollVirtual: (props: JSX.RevogrScrollVirtual & import("./vue-component-lib/utils").InputProps<string | number | boolean> & {}) => any;
13
+ export declare const RevogrTempRange: (props: JSX.RevogrTempRange & import("./vue-component-lib/utils").InputProps<string | number | boolean> & {}) => any;
14
+ export declare const RevogrViewportScroll: (props: JSX.RevogrViewportScroll & import("./vue-component-lib/utils").InputProps<string | number | boolean> & {}) => any;
package/dist/vgrid.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { App } from "vue";
2
- export declare const VGrid: import("vue").DefineComponent<import("@revolist/revogrid/dist/types/components").JSX.RevoGrid & import("./vue-component-lib/utils").InputProps<string | number | boolean>, object, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("@revolist/revogrid/dist/types/components").JSX.RevoGrid & import("./vue-component-lib/utils").InputProps<string | number | boolean>>, {}>;
2
+ export declare const VGrid: (props: import("@revolist/revogrid/dist/types/components").JSX.RevoGrid & import("./vue-component-lib/utils").InputProps<string | number | boolean> & {}) => any;
3
3
  export declare const VGridPlugin: {
4
4
  install(app: App): void;
5
5
  };
6
6
  export declare const VGridVueTemplate: (vueConstructor: any) => (h: import("@revolist/revogrid/dist/types/interfaces").RevoGrid.HyperFunc<import("@revolist/revogrid/dist/types/stencil-public-runtime").VNode>, p: import("@revolist/revogrid/dist/types/interfaces").RevoGrid.ColumnDataSchemaModel) => JSX.Element;
7
- export declare const VGridVueTemplateConstructor: (vueConstructor: import("vue").DefineComponent<{}, {}, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>, el: import("./vue-template").VueElement, p: Record<string, any>, appContext: any) => {
7
+ export declare const VGridVueTemplateConstructor: (vueConstructor: import("vue").DefineComponent, el: import("./vue-template").VueElement, p: Record<string, any>, appContext: any) => {
8
8
  vueInstance: any;
9
9
  destroy: () => void;
10
10
  el: import("./vue-template").VueElement;
package/dist/vgrid.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("vue"),require("@revolist/revogrid/custom-element/")):"function"==typeof define&&define.amd?define("VGrid",["vue","@revolist/revogrid/custom-element/"],t):"object"==typeof exports?exports.VGrid=t(require("vue"),require("@revolist/revogrid/custom-element/")):e.VGrid=t(e.vue,e["@revolist/revogrid/custom-element/"])}(self,((e,t)=>(()=>{"use strict";var r={863:e=>{e.exports=t},748:t=>{t.exports=e}},o={};function n(e){var t=o[e];if(void 0!==t)return t.exports;var s=o[e]={exports:{}};return r[e](s,s.exports,n),s.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};return(()=>{n.r(s),n.d(s,{VGrid:()=>f,VGridPlugin:()=>v,VGridVueEditor:()=>g,VGridVueTemplate:()=>m,VGridVueTemplateConstructor:()=>b,default:()=>h});var e=n(748);const t="update:modelValue",r=Symbol(),o={default:r},i=e=>(null==e?void 0:e.split(" "))||[],l=(e,t,r=[])=>{var o;return[...Array.from((null===(o=e.value)||void 0===o?void 0:o.classList)||[]),...r].filter(((e,r,o)=>!t.has(e)&&o.indexOf(e)===r))},a=(n,s,a=[],u,d,c)=>{void 0!==s&&s();const f=(0,e.defineComponent)(((o,{attrs:s,slots:a,emit:f})=>{var p;let v=o[u];const m=(0,e.ref)(),b=new Set(i(s.class)),g=e=>{e.el&&(Array.isArray(d)?d:[d]).forEach((r=>{e.el.addEventListener(r.toLowerCase(),(e=>{v=(null==e?void 0:e.target)[u],f(t,v),c&&f(c,e)}))}))},h=(0,e.getCurrentInstance)(),y=(null===(p=null==h?void 0:h.appContext)||void 0===p?void 0:p.provides.navManager)?(0,e.inject)("navManager"):void 0;return()=>{v=o[u],i(s.class).forEach((e=>{b.add(e)}));const t=o.onClick;let c={ref:m,class:l(m,b),onClick:e=>{void 0!==t&&t(e),e.defaultPrevented||(e=>{const{routerLink:t}=o;if(t!==r)if(void 0!==y){let t={event:e};for(const e in o){const n=o[e];o.hasOwnProperty(e)&&e.startsWith("router")&&n!==r&&(t[e]=n)}y.navigate(t)}else console.warn("Tried to navigate, but no router was found. Make sure you have mounted Vue Router.")})(e)},onVnodeBeforeMount:d?g:void 0};for(const e in o){const t=o[e];o.hasOwnProperty(e)&&t!==r&&(c[e]=t)}return u&&(o.modelValue!==r?c=Object.assign(Object.assign({},c),{[u]:o.modelValue}):v!==r&&(c=Object.assign(Object.assign({},c),{[u]:v}))),(0,e.h)(n,c,a.default&&a.default())}}));return f.displayName=n,f.props={routerLink:o},a.forEach((e=>{f.props[e]=o})),u&&(f.props.modelValue=o,f.emits=[t,c]),f};n(863);const u=a("revo-grid",void 0,["rowHeaders","frameSize","rowSize","colSize","range","readonly","resize","canFocus","useClipboard","columns","source","pinnedTopSource","pinnedBottomSource","rowDefinitions","editors","plugins","columnTypes","theme","rowClass","autoSizeColumn","filter","canMoveColumns","trimmedRows","exporting","grouping","stretch","beforeedit","beforerangeedit","afteredit","beforeautofill","beforeaange","afterfocus","roworderchanged","beforesourcesortingapply","beforesortingapply","beforesorting","rowdragstart","headerclick","beforecellfocus","beforefocuslost","beforesourceset","aftersourceset","beforecolumnsset","beforecolumnapplied","aftercolumnsset","beforefilterapply","beforefiltertrimmed","beforetrimmed","aftertrimmed","viewportscroll","beforeexport","beforeeditstart","aftercolumnresize"]),d=(t,r,o,n)=>{if(!r)return null;let s=r._vnode;if(s){n&&(s.appContext=n);for(const e in o)s.component.props[e]=o[e]}else s=(0,e.createVNode)(t,o),n&&(s.appContext=n),(0,e.render)(s,r);return{vueInstance:s,destroy:()=>(0,e.render)(null,r),el:r}};class c{constructor(e,t,r,o,n){this.VueEditorConstructor=e,this.column=t,this.save=r,this.close=o,this.appContext=n,this.element=null,this.editCell=null}componentDidRender(){}disconnectedCallback(){this.vueEl&&(this.vueEl.destroy(),this.vueEl=void 0)}render(e){return e("span",{ref:e=>{this.vueEl=d(this.VueEditorConstructor,e,Object.assign(Object.assign({},this.editCell),{column:this.column,save:this.save,close:this.close}),this.appContext)}})}}const f=u;let p=!1;const v={install(e){p||(p=!0,e.component("vue-data-grid",f))}},m=t=>{const r=(0,e.getCurrentInstance)(),o=null==r?void 0:r.appContext;return(e,r)=>e("span",{ref:e=>d(t,e,r,o)})},b=d,g=t=>{const r=(0,e.getCurrentInstance)(),o=null==r?void 0:r.appContext;return function(e,r,n){return new c(t,e,r,n,o)}},h=u})(),s})()));
1
+ !function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(require("vue"),require("@revolist/revogrid/loader")):"function"==typeof define&&define.amd?define("VGrid",["vue","@revolist/revogrid/loader"],r):"object"==typeof exports?exports.VGrid=r(require("vue"),require("@revolist/revogrid/loader")):e.VGrid=r(e.vue,e["@revolist/revogrid/loader"])}(self,((e,r)=>(()=>{"use strict";var t,o,n,s,a={941:(e,r,t)=>{t.a(e,(async(e,o)=>{try{t.d(r,{d_:()=>e});var n=t(638),s=t(829);await(0,s.defineCustomElements)();const e=(0,n.j)("revo-grid",void 0,["rowHeaders","frameSize","rowSize","colSize","range","readonly","resize","canFocus","useClipboard","columns","source","pinnedTopSource","pinnedBottomSource","rowDefinitions","editors","plugins","columnTypes","theme","rowClass","autoSizeColumn","filter","canMoveColumns","trimmedRows","exporting","grouping","stretch","beforeedit","beforerangeedit","afteredit","beforeautofill","beforeaange","afterfocus","roworderchanged","beforesourcesortingapply","beforesortingapply","beforesorting","rowdragstart","headerclick","beforecellfocus","beforefocuslost","beforesourceset","aftersourceset","beforecolumnsset","beforecolumnapplied","aftercolumnsset","beforefilterapply","beforefiltertrimmed","beforetrimmed","aftertrimmed","viewportscroll","beforeexport","beforeeditstart","aftercolumnresize"]);o()}catch(e){o(e)}}),1)},846:(e,r,t)=>{t.a(e,(async(e,o)=>{try{t.r(r),t.d(r,{VGrid:()=>l,VGridPlugin:()=>d,VGridVueEditor:()=>p,VGridVueTemplate:()=>c,VGridVueTemplateConstructor:()=>f,default:()=>v});var n=t(941),s=t(258),a=t(210),i=e([n]);const l=(n=(i.then?(await i)():i)[0]).d_;let u=!1;const d={install(e){u||(u=!0,e.component("vue-data-grid",l))}},c=s.Z,f=s.k,p=a.Z,v=l;o()}catch(e){o(e)}}))},638:(e,r,t)=>{t.d(r,{j:()=>c});var o=t(748);const n="update:modelValue",s="modelValue",a="navManager",i=Symbol(),l={default:i},u=e=>(null==e?void 0:e.split(" "))||[],d=(e,r,t=[])=>{var o;return[...Array.from((null===(o=e.value)||void 0===o?void 0:o.classList)||[]),...t].filter(((e,t,o)=>!r.has(e)&&o.indexOf(e)===t))},c=(e,r,t=[],c,f,p)=>{void 0!==r&&r();const v=(0,o.defineComponent)(((r,{attrs:t,slots:l,emit:v})=>{var m;let b=r[c];const h=(0,o.ref)(),y=new Set(u(t.class)),g=e=>{e.el&&(Array.isArray(f)?f:[f]).forEach((r=>{e.el.addEventListener(r.toLowerCase(),(e=>{b=(null==e?void 0:e.target)[c],v(n,b),p&&v(p,e)}))}))},w=(0,o.getCurrentInstance)(),C=(null===(m=null==w?void 0:w.appContext)||void 0===m?void 0:m.provides[a])?(0,o.inject)(a):void 0;return()=>{b=r[c],u(t.class).forEach((e=>{y.add(e)}));const n=r.onClick;let a={ref:h,class:d(h,y),onClick:e=>{void 0!==n&&n(e),e.defaultPrevented||(e=>{const{routerLink:t}=r;if(t!==i)if(void 0!==C){let t={event:e};for(const e in r){const o=r[e];r.hasOwnProperty(e)&&e.startsWith("router")&&o!==i&&(t[e]=o)}C.navigate(t)}else console.warn("Tried to navigate, but no router was found. Make sure you have mounted Vue Router.")})(e)},onVnodeBeforeMount:f?g:void 0};for(const e in r){const t=r[e];(r.hasOwnProperty(e)&&t!==i||e.startsWith("aria"))&&(a[e]=t)}return c&&(r[s]!==i?a=Object.assign(Object.assign({},a),{[c]:r[s]}):b!==i&&(a=Object.assign(Object.assign({},a),{[c]:b}))),(0,o.h)(e,a,l.default&&l.default())}}));return"function"!=typeof v&&(v.name=e,v.props={routerLink:l},t.forEach((e=>{v.props[e]=l})),c&&(v.props[s]=l,v.emits=[n,p])),v}},210:(e,r,t)=>{t.d(r,{Z:()=>a});var o=t(748),n=t(258);class s{constructor(e,r,t,o,n){this.VueEditorConstructor=e,this.column=r,this.save=t,this.close=o,this.appContext=n,this.element=null,this.editCell=null}componentDidRender(){}disconnectedCallback(){this.vueEl&&(this.vueEl.destroy(),this.vueEl=void 0)}render(e){return e("span",{ref:e=>{this.vueEl=(0,n.k)(this.VueEditorConstructor,e,Object.assign(Object.assign({},this.editCell),{column:this.column,save:this.save,close:this.close}),this.appContext)}})}}const a=e=>{const r=(0,o.getCurrentInstance)(),t=null==r?void 0:r.appContext;return function(r,o,n){return new s(e,r,o,n,t)}}},258:(e,r,t)=>{t.d(r,{Z:()=>s,k:()=>n});var o=t(748);const n=(e,r,t,n)=>{if(!r)return null;let s=r._vnode;if(s){n&&(s.appContext=n);for(const e in t)s.component.props[e]=t[e]}else s=(0,o.createVNode)(e,t),n&&(s.appContext=n),(0,o.render)(s,r);return{vueInstance:s,destroy:()=>(0,o.render)(null,r),el:r}},s=e=>{const r=(0,o.getCurrentInstance)(),t=null==r?void 0:r.appContext;return(r,o)=>r("span",{ref:r=>n(e,r,o,t)})}},829:e=>{e.exports=r},748:r=>{r.exports=e}},i={};function l(e){var r=i[e];if(void 0!==r)return r.exports;var t=i[e]={exports:{}};return a[e](t,t.exports,l),t.exports}return t="function"==typeof Symbol?Symbol("webpack queues"):"__webpack_queues__",o="function"==typeof Symbol?Symbol("webpack exports"):"__webpack_exports__",n="function"==typeof Symbol?Symbol("webpack error"):"__webpack_error__",s=e=>{e&&e.d<1&&(e.d=1,e.forEach((e=>e.r--)),e.forEach((e=>e.r--?e.r++:e())))},l.a=(e,r,a)=>{var i;a&&((i=[]).d=-1);var l,u,d,c=new Set,f=e.exports,p=new Promise(((e,r)=>{d=r,u=e}));p[o]=f,p[t]=e=>(i&&e(i),c.forEach(e),p.catch((e=>{}))),e.exports=p,r((e=>{var r;l=(e=>e.map((e=>{if(null!==e&&"object"==typeof e){if(e[t])return e;if(e.then){var r=[];r.d=0,e.then((e=>{a[o]=e,s(r)}),(e=>{a[n]=e,s(r)}));var a={};return a[t]=e=>e(r),a}}var i={};return i[t]=e=>{},i[o]=e,i})))(e);var a=()=>l.map((e=>{if(e[n])throw e[n];return e[o]})),u=new Promise((e=>{(r=()=>e(a)).r=0;var o=e=>e!==i&&!c.has(e)&&(c.add(e),e&&!e.d&&(r.r++,e.push(r)));l.map((e=>e[t](o)))}));return r.r?u:a()}),(e=>(e?d(p[n]=e):u(f),s(i)))),i&&i.d<0&&(i.d=0)},l.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return l.d(r,{a:r}),r},l.d=(e,r)=>{for(var t in r)l.o(r,t)&&!l.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},l.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),l.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l(846)})()));
@@ -15,6 +15,4 @@ export interface InputProps<T> {
15
15
  * @prop externalModelUpdateEvent - The external event to fire from your Vue component when modelUpdateEvent fires. This is used for ensuring that v-model references have been
16
16
  * correctly updated when a user's event callback fires.
17
17
  */
18
- export declare const defineContainer: <Props, VModelType = string | number | boolean>(name: string, defineCustomElement: any, componentProps?: string[], modelProp?: string, modelUpdateEvent?: string, externalModelUpdateEvent?: string) => import("vue").DefineComponent<Props & InputProps<VModelType>, object, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<Props & InputProps<VModelType> extends infer T ? T extends Props & InputProps<VModelType> ? T extends import("vue").ComponentPropsOptions<{
19
- [x: string]: unknown;
20
- }> ? import("vue").ExtractPropTypes<T> : T : never : never>, import("vue").ExtractDefaultPropTypes<Props & InputProps<VModelType>>>;
18
+ export declare const defineContainer: <Props, VModelType = string | number | boolean>(name: string, defineCustomElement: any, componentProps?: string[], modelProp?: string, modelUpdateEvent?: string, externalModelUpdateEvent?: string) => (props: Props & InputProps<VModelType> & {}) => any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revolist/vue3-datagrid",
3
- "version": "3.2.17",
3
+ "version": "3.6.16",
4
4
  "description": "Vue 3 DataGrid Spreadsheet",
5
5
  "main": "dist/vgrid.js",
6
6
  "types": "dist/vgrid.d.ts",
@@ -34,24 +34,24 @@
34
34
  "homepage": "https://github.com/revolist/vue3-datagrid#readme",
35
35
  "license": "MIT",
36
36
  "dependencies": {
37
- "@revolist/revogrid": "^3.2.16",
37
+ "@revolist/revogrid": "^3.6.16",
38
38
  "@stencil/core": "^2.17.3"
39
39
  },
40
40
  "devDependencies": {
41
- "@vue/compiler-sfc": "^3.2.37",
41
+ "@vue/compiler-sfc": "^3.3.4",
42
42
  "clean-webpack-plugin": "^4.0.0",
43
43
  "css-loader": "^6.7.1",
44
- "html-webpack-plugin": "^5.5.0",
45
- "sass": "^1.54.4",
46
- "sass-loader": "^13.0.2",
47
- "style-loader": "^3.3.1",
48
- "ts-loader": "^9.3.1",
49
- "typescript": "^4.7.4",
50
- "vue": "^3.2.37",
51
- "vue-loader": "^17.0.0",
44
+ "html-webpack-plugin": "^5.5.3",
45
+ "sass": "^1.64.2",
46
+ "sass-loader": "^13.3.2",
47
+ "style-loader": "^3.3.3",
48
+ "ts-loader": "^9.4.4",
49
+ "typescript": "^5.1.6",
50
+ "vue": "^3.3.4",
51
+ "vue-loader": "^17.2.2",
52
52
  "vue-style-loader": "^4.1.3",
53
- "webpack": "^5.74.0",
54
- "webpack-cli": "^4.10.0",
55
- "webpack-dev-server": "^4.10.0"
53
+ "webpack": "^5.88.2",
54
+ "webpack-cli": "^5.1.4",
55
+ "webpack-dev-server": "^4.15.1"
56
56
  }
57
57
  }
package/public/App.vue CHANGED
@@ -1,10 +1,9 @@
1
1
  <template>
2
2
  <div class="tile large">
3
3
  <v-grid
4
- ref="grid"
5
- readonly="false"
4
+ :readonly="false"
6
5
  :source="source"
7
- resize="false"
6
+ :resize="false"
8
7
  :columns="headers"
9
8
  :editors="gridEditors"
10
9
  theme="material"
@@ -16,8 +15,7 @@
16
15
  <script lang="ts">
17
16
  // beforeCellFocus
18
17
  import {defineComponent, ref} from 'vue';
19
- import {Components} from '@revolist/revogrid';
20
- import VGrid, { VGridVueEditor, VGridVueTemplate } from '@revolist/vue-datagrid';
18
+ import VGrid, { VGridVueEditor, VGridVueTemplate } from '../src/vgrid';
21
19
  import Editor from './Editor.vue';
22
20
  import Cell from './Cell.vue';
23
21
  import {generateFakeDataObject} from './dataService';
@@ -34,8 +32,7 @@ export default defineComponent({
34
32
  setup() {
35
33
  const button = VGridVueEditor(Editor);
36
34
  const gridEditors = { button };
37
- const grid = ref<Components.RevoGrid|null>(null);
38
- return { grid, gridEditors };
35
+ return { gridEditors };
39
36
  },
40
37
  methods: {
41
38
  test(e: CustomEvent) {
@@ -18,7 +18,7 @@ function naturalSort(prop,a,b) {
18
18
  }
19
19
 
20
20
  export function generateFakeDataObject(rowsNumber: number, colsNumber: number, cellTemplate: any) {
21
- const result: Record<any, any> = [];
21
+ const result: any[] = [];
22
22
  const columns: Record<number, any> = {};
23
23
  const all = colsNumber * rowsNumber;
24
24
  for (let j = 0; j < all; j++) {
package/src/revogrid.ts CHANGED
@@ -5,9 +5,9 @@ import { defineContainer } from './vue-component-lib/utils';
5
5
 
6
6
  import type { JSX } from '@revolist/revogrid';
7
7
 
8
- import { RevoGrid as RevoGridComponent } from '@revolist/revogrid/custom-element/';
8
+ import { defineCustomElements } from '@revolist/revogrid/loader';
9
9
 
10
- export {RevoGridComponent};
10
+ await defineCustomElements();
11
11
 
12
12
  export const RevoGrid = /*@__PURE__*/ defineContainer<JSX.RevoGrid>('revo-grid', undefined, [
13
13
  'rowHeaders',
@@ -164,6 +164,7 @@ export const RevogrOverlaySelection = /*@__PURE__*/ defineContainer<JSX.RevogrOv
164
164
  'internalCellEdit',
165
165
  'internalFocusCell',
166
166
  'setEdit',
167
+ 'cancelEdit',
167
168
  'setRange',
168
169
  'setTempRange',
169
170
  'focusCell',
@@ -1,3 +1,5 @@
1
+ // @ts-nocheck
2
+ // It's easier and safer for Volar to disable typechecking and let the return type inference do its job.
1
3
  import { VNode, defineComponent, getCurrentInstance, h, inject, ref, Ref } from 'vue';
2
4
 
3
5
  export interface InputProps<T> {
@@ -9,7 +11,7 @@ const MODEL_VALUE = 'modelValue';
9
11
  const ROUTER_LINK_VALUE = 'routerLink';
10
12
  const NAV_MANAGER = 'navManager';
11
13
  const ROUTER_PROP_PREFIX = 'router';
12
-
14
+ const ARIA_PROP_PREFIX = 'aria';
13
15
  /**
14
16
  * Starting in Vue 3.1.0, all properties are
15
17
  * added as keys to the props object, even if
@@ -30,26 +32,31 @@ const getComponentClasses = (classes: unknown) => {
30
32
  return (classes as string)?.split(' ') || [];
31
33
  };
32
34
 
33
- const getElementClasses = (ref: Ref<HTMLElement | undefined>, componentClasses: Set<string>, defaultClasses: string[] = []) => {
34
- return [ ...Array.from(ref.value?.classList || []), ...defaultClasses ]
35
- .filter((c: string, i, self) => !componentClasses.has(c) && self.indexOf(c) === i);
35
+ const getElementClasses = (
36
+ ref: Ref<HTMLElement | undefined>,
37
+ componentClasses: Set<string>,
38
+ defaultClasses: string[] = []
39
+ ) => {
40
+ return [...Array.from(ref.value?.classList || []), ...defaultClasses].filter(
41
+ (c: string, i, self) => !componentClasses.has(c) && self.indexOf(c) === i
42
+ );
36
43
  };
37
44
 
38
45
  /**
39
- * Create a callback to define a Vue component wrapper around a Web Component.
40
- *
41
- * @prop name - The component tag name (i.e. `ion-button`)
42
- * @prop componentProps - An array of properties on the
43
- * component. These usually match up with the @Prop definitions
44
- * in each component's TSX file.
45
- * @prop customElement - An option custom element instance to pass
46
- * to customElements.define. Only set if `includeImportCustomElements: true` in your config.
47
- * @prop modelProp - The prop that v-model binds to (i.e. value)
48
- * @prop modelUpdateEvent - The event that is fired from your Web Component when the value changes (i.e. ionChange)
49
- * @prop externalModelUpdateEvent - The external event to fire from your Vue component when modelUpdateEvent fires. This is used for ensuring that v-model references have been
50
- * correctly updated when a user's event callback fires.
51
- */
52
- export const defineContainer = <Props, VModelType=string|number|boolean>(
46
+ * Create a callback to define a Vue component wrapper around a Web Component.
47
+ *
48
+ * @prop name - The component tag name (i.e. `ion-button`)
49
+ * @prop componentProps - An array of properties on the
50
+ * component. These usually match up with the @Prop definitions
51
+ * in each component's TSX file.
52
+ * @prop customElement - An option custom element instance to pass
53
+ * to customElements.define. Only set if `includeImportCustomElements: true` in your config.
54
+ * @prop modelProp - The prop that v-model binds to (i.e. value)
55
+ * @prop modelUpdateEvent - The event that is fired from your Web Component when the value changes (i.e. ionChange)
56
+ * @prop externalModelUpdateEvent - The external event to fire from your Vue component when modelUpdateEvent fires. This is used for ensuring that v-model references have been
57
+ * correctly updated when a user's event callback fires.
58
+ */
59
+ export const defineContainer = <Props, VModelType = string | number | boolean>(
53
60
  name: string,
54
61
  defineCustomElement: any,
55
62
  componentProps: string[] = [],
@@ -58,16 +65,16 @@ export const defineContainer = <Props, VModelType=string|number|boolean>(
58
65
  externalModelUpdateEvent?: string
59
66
  ) => {
60
67
  /**
61
- * Create a Vue component wrapper around a Web Component.
62
- * Note: The `props` here are not all properties on a component.
63
- * They refer to whatever properties are set on an instance of a component.
64
- */
68
+ * Create a Vue component wrapper around a Web Component.
69
+ * Note: The `props` here are not all properties on a component.
70
+ * They refer to whatever properties are set on an instance of a component.
71
+ */
65
72
 
66
73
  if (defineCustomElement !== undefined) {
67
74
  defineCustomElement();
68
75
  }
69
76
 
70
- const Container = defineComponent<Props & InputProps<VModelType>>((props: any, { attrs, slots, emit }) => {
77
+ const Container = defineComponent<Props & InputProps<VModelType>>((props, { attrs, slots, emit }) => {
71
78
  let modelPropValue = props[modelProp];
72
79
  const containerRef = ref<HTMLElement>();
73
80
  const classes = new Set(getComponentClasses(attrs.class));
@@ -116,12 +123,12 @@ export const defineContainer = <Props, VModelType=string|number|boolean>(
116
123
  } else {
117
124
  console.warn('Tried to navigate, but no router was found. Make sure you have mounted Vue Router.');
118
125
  }
119
- }
126
+ };
120
127
 
121
128
  return () => {
122
129
  modelPropValue = props[modelProp];
123
130
 
124
- getComponentClasses(attrs.class).forEach(value => {
131
+ getComponentClasses(attrs.class).forEach((value) => {
125
132
  classes.add(value);
126
133
  });
127
134
 
@@ -133,13 +140,13 @@ export const defineContainer = <Props, VModelType=string|number|boolean>(
133
140
  if (!ev.defaultPrevented) {
134
141
  handleRouterLink(ev);
135
142
  }
136
- }
143
+ };
137
144
 
138
145
  let propsToAdd: any = {
139
146
  ref: containerRef,
140
147
  class: getElementClasses(containerRef, classes),
141
148
  onClick: handleClick,
142
- onVnodeBeforeMount: (modelUpdateEvent) ? onVnodeBeforeMount : undefined
149
+ onVnodeBeforeMount: modelUpdateEvent ? onVnodeBeforeMount : undefined,
143
150
  };
144
151
 
145
152
  /**
@@ -150,7 +157,7 @@ export const defineContainer = <Props, VModelType=string|number|boolean>(
150
157
  */
151
158
  for (const key in props) {
152
159
  const value = props[key];
153
- if (props.hasOwnProperty(key) && value !== EMPTY_PROP) {
160
+ if ((props.hasOwnProperty(key) && value !== EMPTY_PROP) || key.startsWith(ARIA_PROP_PREFIX)) {
154
161
  propsToAdd[key] = value;
155
162
  }
156
163
  }
@@ -165,33 +172,35 @@ export const defineContainer = <Props, VModelType=string|number|boolean>(
165
172
  if (props[MODEL_VALUE] !== EMPTY_PROP) {
166
173
  propsToAdd = {
167
174
  ...propsToAdd,
168
- [modelProp]: props[MODEL_VALUE]
169
- }
175
+ [modelProp]: props[MODEL_VALUE],
176
+ };
170
177
  } else if (modelPropValue !== EMPTY_PROP) {
171
178
  propsToAdd = {
172
179
  ...propsToAdd,
173
- [modelProp]: modelPropValue
174
- }
180
+ [modelProp]: modelPropValue,
181
+ };
175
182
  }
176
183
  }
177
184
 
178
185
  return h(name, propsToAdd, slots.default && slots.default());
179
- }
186
+ };
180
187
  });
181
188
 
182
- Container.displayName = name;
189
+ if (typeof Container !== 'function') {
190
+ Container.name = name;
183
191
 
184
- Container.props = {
185
- [ROUTER_LINK_VALUE]: DEFAULT_EMPTY_PROP
186
- };
192
+ Container.props = {
193
+ [ROUTER_LINK_VALUE]: DEFAULT_EMPTY_PROP,
194
+ };
187
195
 
188
- componentProps.forEach(componentProp => {
189
- Container.props[componentProp] = DEFAULT_EMPTY_PROP;
190
- });
196
+ componentProps.forEach((componentProp) => {
197
+ Container.props[componentProp] = DEFAULT_EMPTY_PROP;
198
+ });
191
199
 
192
- if (modelProp) {
193
- Container.props[MODEL_VALUE] = DEFAULT_EMPTY_PROP;
194
- Container.emits = [UPDATE_VALUE_EVENT, externalModelUpdateEvent];
200
+ if (modelProp) {
201
+ Container.props[MODEL_VALUE] = DEFAULT_EMPTY_PROP;
202
+ Container.emits = [UPDATE_VALUE_EVENT, externalModelUpdateEvent];
203
+ }
195
204
  }
196
205
 
197
206
  return Container;
@@ -1,14 +1,14 @@
1
- import {RevoGrid} from "@revolist/revogrid/dist/types/interfaces";
1
+ import {RevoGrid, Edition} from "@revolist/revogrid/dist/types/interfaces";
2
2
  import { getCurrentInstance } from "vue";
3
3
  import VueEditorAdapter from './vue-editor-adapter';
4
4
 
5
5
 
6
- const vueEditor = (vueConstructor: any) => {
6
+ const vueEditor = (vueConstructor: any): Edition.EditorCtr => {
7
7
  const current = getCurrentInstance();
8
8
  const appContext = current?.appContext;
9
9
  return function(column: RevoGrid.ColumnDataSchemaModel, save: Function, close: Function) {
10
10
  return new VueEditorAdapter(vueConstructor, column, save, close, appContext);
11
- }
11
+ } as unknown as Edition.EditorCtr;
12
12
  };
13
13
 
14
14
  export default vueEditor;
package/tsconfig.json CHANGED
@@ -3,7 +3,6 @@
3
3
  "outDir": "./dist/",
4
4
  "baseUrl": "./",
5
5
  "allowSyntheticDefaultImports": true,
6
- "declaration": true,
7
6
  "experimentalDecorators": true,
8
7
  "lib": ["dom", "es2017"],
9
8
  "moduleResolution": "node",