UNPKG

@revolist/vue-datagrid

Version:

Vue 2 DataGrid Spreadsheet component with native Vue 2 render support

162 lines (161 loc) 5.04 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 r = this, s = e.reduce((l, c) => ({ ...l, [c]: (u) => { r.$emit(c, u); } }), r.$listeners), i = r.$props ? Object.keys(r.$props).reduce((l, c) => (l[p(c)] = r.$props[c], l[c] = r.$props[c], l), {}) : {}; return n( o, { ref: "wc", domProps: i, on: s, attrs: { "data-testid": o } }, [r.$slots.default] ); }, t = (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: {}, canDrag: {} }, methods: { refresh: t("refresh"), setDataAt: t("setDataAt"), scrollToRow: t("scrollToRow"), scrollToColumnIndex: t("scrollToColumnIndex"), scrollToColumnProp: t("scrollToColumnProp"), updateColumns: t("updateColumns"), addTrimmed: t("addTrimmed"), scrollToCoordinate: t("scrollToCoordinate"), setCellEdit: t("setCellEdit"), setCellsFocus: t("setCellsFocus"), getSource: t("getSource"), getVisibleSource: t("getVisibleSource"), getSourceStore: t("getSourceStore"), getColumnStore: t("getColumnStore"), updateColumnSorting: t("updateColumnSorting"), clearSorting: t("clearSorting"), getColumns: t("getColumns"), clearFocus: t("clearFocus"), getPlugins: t("getPlugins"), getFocused: t("getFocused"), getContentSize: t("getContentSize"), getSelectedRange: t("getSelectedRange"), refreshExtraElements: t("refreshExtraElements") }, 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, r) => { 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: r == null ? void 0 : r.vue }); let i = s.__vue__; if (i && n) for (const l in n) i.$props[l] = n[l]; return i; }, E = (o, e) => (n, r, s) => { const i = e ? { ...e, ...r } : r; return n("span", { key: `${i.key}-${i.rowIndex || 0}`, ref: (c) => d(o, c, i, s) }); }; class b { constructor(e, n, r, s) { this.VueEditorConstructor = e, this.column = n, this.save = r, 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 r; return e("span", { key: `${this.column.prop}-${((r = this.editCell) == null ? void 0 : r.rowIndex) || 0}`, ref: (s) => this.renderAdapter(s, n) }); } renderAdapter(e, n) { if (!e) return; const r = { ...this.editCell, column: this.column, save: this.save, close: this.close }, s = d( this.VueEditorConstructor, e, r, n ); s && (this.vueEl = s); } } const T = (o) => function(e, n, r) { return new b(o, e, n, r); }, 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 };