UNPKG

@revolist/vue-datagrid

Version:

Vue 2 DataGrid Spreadsheet component with native Vue 2 render support

164 lines (163 loc) 5.08 kB
import a from "vue"; import { defineCustomElements as f } from "@revolist/revogrid/loader"; export * from "@revolist/revogrid/loader"; export * from "@revolist/revogrid"; const m = (o, e = []) => function(n) { const t = this, s = e.reduce((l, c) => ({ ...l, [c]: (u) => { t.$emit(c, u); } }), t.$listeners), i = t.$props ? Object.keys(t.$props).reduce((l, c) => (l[p(c)] = t.$props[c], l[c] = t.$props[c], l), {}) : {}; return n( o, { ref: "wc", domProps: i, on: s, attrs: { "data-testid": o } }, [t.$slots.default] ); }, r = (o) => function(...e) { this.$refs.wc[o](...e); }, g = (o) => o.toLowerCase(), p = (o) => g( o.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: {}, 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", "beforecolumnsset", "beforecolumnapplied", "aftercolumnsset", "beforefilterapply", "beforefiltertrimmed", "beforetrimmed", "aftertrimmed", "viewportscroll", "beforeexport", "beforeeditstart", "aftercolumnresize", "beforerowdefinition", "filterconfigchanged", "sortingconfigchanged", "rowheaderschanged", "beforegridrender", "aftergridrender", "aftergridinit", "additionaldatachanged", "afterthemechanged", "created"]) }), d = (o, e, n, t) => { 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 o == "object" && (o = a.extend(o)), new o({ el: s, propsData: n, parent: t == null ? void 0 : t.vue }); let i = s.__vue__; if (i && n) for (const l in n) i.$props[l] = n[l]; return i; }, E = (o, e) => (n, t, s) => { const i = e ? { ...e, ...t } : t; return n("span", { key: `${i.key}-${i.rowIndex || 0}`, ref: (c) => d(o, c, i, s) }); }; class b { constructor(e, n, t, s) { this.VueEditorConstructor = e, this.column = n, this.save = t, 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 t; return e("span", { key: `${this.column.prop}-${((t = this.editCell) == null ? void 0 : t.rowIndex) || 0}`, ref: (s) => this.renderAdapter(s, n) }); } renderAdapter(e, n) { if (!e) return; const t = { ...this.editCell, column: this.column, save: this.save, close: this.close }, s = d( this.VueEditorConstructor, e, t, n ); s && (this.vueEl = s); } } const T = (o) => function(e, n, t) { return new b(o, e, n, t); }, 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 };