UNPKG

@xpyjs/gantt-vue

Version:

Vue wrapper for x-gantt

90 lines (89 loc) 2.4 kB
import { defineComponent as p, ref as k, watch as f, onMounted as v, onUnmounted as x, createElementBlock as _, openBlock as b, nextTick as w } from "vue"; import { XGantt as h } from "@xpyjs/gantt-core"; import { colorjs as T, dayjs as X, generateId as B } from "@xpyjs/gantt-core"; const g = /* @__PURE__ */ p({ __name: "GanttVue", props: { options: { default: () => ({}) } }, emits: ["loaded", "error", "update:link", "create:link", "select:link", "contextmenu:link", "select", "click:row", "dblclick:row", "contextmenu:row", "click:slider", "dblclick:slider", "contextmenu:slider", "move", "hover:slider", "leave:slider", "click:baseline", "contextmenu:baseline", "hover:baseline", "leave:baseline"], setup(t, { expose: c, emit: o }) { const l = t, r = o, i = k(); let e = null; const d = async () => { i.value && (await w(), e = new h(i.value, l.options), u()); }, u = () => { if (!e) return; [ "loaded", "error", "update:link", "create:link", "select:link", "contextmenu:link", "select", "click:row", "dblclick:row", "contextmenu:row", "click:slider", "dblclick:slider", "contextmenu:slider", "move", "hover:slider", "leave:slider", "click:baseline", "contextmenu:baseline", "hover:baseline", "leave:baseline" ].forEach((s) => { e.on( s, (...m) => { r(s, ...m); } ); }); }; return f( () => l, (n) => { e && e.update(n.options); }, { deep: !0 } ), c({ /** * 获取甘特图实例 */ getInstance: () => e, /** * 跳转日期 */ jumpTo: (n) => { e && e.jumpTo(n); } }), v(() => { d(); }), x(() => { e && (e.destroy(), e = null); }), (n, s) => (b(), _("div", { ref_key: "containerRef", ref: i, class: "x-gantt-container" }, null, 512)); } }), G = (t, c) => { const o = t.__vccOpts || t; for (const [l, r] of c) o[l] = r; return o; }, y = /* @__PURE__ */ G(g, [["__scopeId", "data-v-668d94f2"]]), a = y; a.install = (t) => { t.component("XGanttVue", a); }; export { a as XGanttVue, T as colorjs, X as dayjs, a as default, B as generateId };