UNPKG

@revolist/vue-datagrid

Version:

Vue 2 DataGrid Spreadsheet component with native Vue 2 render support

165 lines (164 loc) 5.14 kB
import a from "vue"; import { defineCustomElements as f } from "@revolist/revogrid/loader"; export * from "@revolist/revogrid/loader"; export * from "@revolist/revogrid"; const m = (t, e = []) => function(n) { const o = this, s = e.reduce((i, c) => ({ ...i, [c]: (u) => { o.$emit(c, u); } }), o.$listeners), l = o.$props ? Object.keys(o.$props).reduce((i, c) => (i[p(c)] = o.$props[c], i[c] = o.$props[c], i), {}) : {}; return n( t, { ref: "wc", domProps: l, on: s, attrs: { "data-testid": t } }, [o.$slots.default] ); }, r = (t) => function(...e) { this.$refs.wc[t](...e); }, g = (t) => t.toLowerCase(), p = (t) => g( t.replace(/([A-Z0-9])/g, (e) => " " + e[0]).trim().replace(/ /g, "-") ), h = [ "revo-grid" ]; a.config.ignoredElements = [...a.config.ignoredElements, ...h]; const C = /* @__PURE__ */ a.extend({ props: { rowHeaders: {}, frameSize: {}, rowSize: {}, colSize: {}, range: {}, readonly: {}, resize: {}, noHorizontalScrollTransfer: {}, canFocus: {}, useClipboard: {}, columns: {}, source: {}, pinnedTopSource: {}, pinnedBottomSource: {}, rowDefinitions: {}, editors: {}, applyOnClose: {}, plugins: {}, columnTypes: {}, theme: {}, rowClass: {}, autoSizeColumn: {}, filter: {}, sorting: {}, focusTemplate: {}, canMoveColumns: {}, trimmedRows: {}, exporting: {}, grouping: {}, stretch: {}, additionalData: {}, disableVirtualX: {}, disableVirtualY: {}, hideAttribution: {}, jobsBeforeRender: {}, registerVNode: {}, accessible: {}, rtl: {}, canDrag: {} }, methods: { refresh: r("refresh"), setDataAt: r("setDataAt"), scrollToRow: r("scrollToRow"), scrollToColumnIndex: r("scrollToColumnIndex"), scrollToColumnProp: r("scrollToColumnProp"), updateColumns: r("updateColumns"), addTrimmed: r("addTrimmed"), scrollToCoordinate: r("scrollToCoordinate"), setCellEdit: r("setCellEdit"), setCellsFocus: r("setCellsFocus"), getSource: r("getSource"), getVisibleSource: r("getVisibleSource"), getSourceStore: r("getSourceStore"), getColumnStore: r("getColumnStore"), updateColumnSorting: r("updateColumnSorting"), clearSorting: r("clearSorting"), getColumns: r("getColumns"), clearFocus: r("clearFocus"), getPlugins: r("getPlugins"), getFocused: r("getFocused"), getContentSize: r("getContentSize"), getSelectedRange: r("getSelectedRange"), refreshExtraElements: r("refreshExtraElements"), getProviders: r("getProviders") }, render: m("revo-grid", ["contentsizechanged", "beforeedit", "beforerangeedit", "afteredit", "beforeautofill", "beforerange", "afterfocus", "roworderchanged", "beforesorting", "beforesourcesortingapply", "beforesortingapply", "rowdragstart", "headerclick", "beforecellfocus", "beforefocuslost", "beforesourceset", "beforeanysource", "aftersourceset", "afteranysource", "beforecolumnsgather", "beforecolumnsset", "beforecolumnapplied", "aftercolumnsset", "beforefilterapply", "beforefiltertrimmed", "beforetrimmed", "aftertrimmed", "viewportscroll", "beforeexport", "beforeeditstart", "aftercolumnresize", "beforerowdefinition", "filterconfigchanged", "sortingconfigchanged", "rowheaderschanged", "beforegridrender", "aftergridrender", "aftergridinit", "additionaldatachanged", "afterthemechanged", "created"]) }), d = (t, e, n, o) => { if (!e) return null; let s; if (e != null && e.childNodes.length && (s = e.childNodes[0]), !s) return s = document.createElement("span"), e.appendChild(s), typeof t == "object" && (t = a.extend(t)), new t({ el: s, propsData: n, parent: o == null ? void 0 : o.vue }); let l = s.__vue__; if (l && n) for (const i in n) l.$props[i] = n[i]; return l; }, E = (t, e) => (n, o, s) => { const l = e ? { ...e, ...o } : o; return n("span", { key: `${l.key}-${l.rowIndex || 0}`, ref: (c) => d(t, c, l, s) }); }; class b { constructor(e, n, o, s) { this.VueEditorConstructor = e, this.column = n, this.save = o, this.close = s, this.element = null; } // optional, called after editor rendered componentDidRender() { } // optional, called after editor destroyed disconnectedCallback() { var e; (e = this.vueEl) == null || e.$destroy(), this.vueEl = void 0; } render(e, n) { var o; return e("span", { key: `${this.column.prop}-${((o = this.editCell) == null ? void 0 : o.rowIndex) || 0}`, ref: (s) => this.renderAdapter(s, n) }); } renderAdapter(e, n) { if (!e) return; const o = { ...this.editCell, column: this.column, save: this.save, close: this.close }, s = d( this.VueEditorConstructor, e, o, n ); s && (this.vueEl = s); } } const T = (t) => function(e, n, o) { return new b(t, e, n, o); }, V = async () => (await f(), C); export { T as Editor, E as Template, V as VGrid, T as VGridVueEditor, E as VGridVueTemplate, d as VGridVueTemplateConstructor, V as default };