@vue-js-cron/prime
Version:
Cron editor for PrimeVue
161 lines (160 loc) • 4.39 kB
JavaScript
import { cronCoreProps as e, selectProps as t, setupCron as n, setupSelect as r } from "@vue-js-cron/core";
import i from "primevue/button";
import { usePrimeVue as a } from "primevue/config";
import o from "primevue/listbox";
import s from "primevue/popover";
import { Fragment as c, createCommentVNode as l, createElementBlock as u, createTextVNode as d, createVNode as f, defineComponent as p, mergeProps as m, normalizeClass as h, openBlock as g, ref as _, renderList as v, resolveComponent as y, toDisplayString as b, vShow as x, withCtx as S, withDirectives as C, withModifiers as w } from "vue";
//#region src/components/select.vue?vue&type=script&lang.ts
var T = p({
inheritAttrs: !1,
name: "CustomSelect",
components: {
PButton: i,
PPopover: s,
Listbox: o
},
props: {
...t(),
buttonProps: {
type: Object,
default: () => {}
},
popoverProps: {
type: Object,
default: () => {}
},
hideOnClick: {
type: Boolean,
default: !0
}
},
emits: ["update:model-value"],
setup(e, t) {
let n = r(e, () => e.modelValue, t), i = _(), o = (a().config.theme?.options?.prefix ?? "") + "-", s = (e) => o + e, c = (e) => {
i.value.toggle(e);
}, l = (t, r) => {
r && (n.select(r), e.hideOnClick && c(t));
};
return {
...n,
popover: i,
toggle: c,
cx: s,
select: l
};
}
}), E = (e, t) => {
let n = e.__vccOpts || e;
for (let [e, r] of t) n[e] = r;
return n;
}, D = { class: "vcron-p-select" }, O = ["onClick"];
function k(e, t, n, r, i, a) {
let o = y("Listbox"), s = y("p-button"), p = y("p-popover");
return g(), u("span", D, [
C(f(o, null, null, 512), [[x, !1]]),
f(s, m({ disabled: e.disabled }, e.buttonProps, { onClick: e.toggle }), {
default: S(() => [d(b(e.selection ?? e.selectedStr), 1), !e.disabled && e.clearable && !e.isEmpty ? (g(), u("i", {
key: 0,
class: "pi pi-times",
onClick: [t[0] ||= (t) => e.clear(), t[1] ||= w(() => {}, ["stop"])]
})) : l("", !0)]),
_: 1
}, 16, ["disabled", "onClick"]),
f(p, m(e.popoverProps, { ref: "popover" }), {
default: S(() => [(g(!0), u(c, null, v(e.itemRows, (t, n) => (g(), u("div", {
class: "vcron-p-row",
key: n
}, [(g(!0), u(c, null, v(t, (t, n) => (g(), u("div", {
class: h([[e.has(t) ? "vcron-p-col-selected" : ""], "vcron-p-col"]),
flex: 1,
key: n,
onClick: (n) => {
t && e.select(n, t);
}
}, [t ? (g(), u(c, { key: 0 }, [d(b(t.text), 1)], 64)) : l("", !0)], 10, O))), 128))]))), 128))]),
_: 1
}, 16)
]);
}
var A = /*#__PURE__*/ E(T, [["render", k]]), j = () => ({
buttonProps: {
type: Object,
default() {
return {};
}
},
popoverProps: {
type: Object,
default: () => {}
},
...e()
}), M = p({
name: "CronPrime",
components: { CustomSelect: A },
props: j(),
emits: [
"update:model-value",
"update:period",
"error"
],
setup(e, t) {
return n(e, t);
}
});
//#endregion
//#region src/components/cron-prime.vue
function N(e, t, n, r, i, a) {
let o = y("custom-select");
return g(), u("div", null, [
d(b(e.period.prefix.value) + " ", 1),
f(o, {
"model-value": e.period.selected.value.id,
"item-value": "id",
items: e.period.items,
"onUpdate:modelValue": t[0] ||= (t) => e.period.select(t),
disabled: e.disabled,
"button-props": e.buttonProps,
"popover-props": e.popoverProps
}, null, 8, [
"model-value",
"items",
"disabled",
"button-props",
"popover-props"
]),
d(" " + b(e.period.suffix.value) + " ", 1),
(g(!0), u(c, null, v(e.selected, (t) => (g(), u(c, { key: t.id }, [
d(b(t.prefix.value) + " ", 1),
f(o, {
"model-value": t.selected.value,
"onUpdate:modelValue": (e) => t.select(e),
items: t.items,
cols: e.cols[t.id] || 1,
selection: t.text.value,
multiple: "",
clearable: e.clearable,
disabled: e.disabled,
"button-props": e.buttonProps,
"popover-props": e.popoverProps,
hideOnClick: !1
}, null, 8, [
"model-value",
"onUpdate:modelValue",
"items",
"cols",
"selection",
"clearable",
"disabled",
"button-props",
"popover-props"
]),
d(" " + b(t.suffix.value), 1)
], 64))), 128))
]);
}
var P = /*#__PURE__*/ E(M, [["render", N]]), F = { install: (e) => {
e.component("CronPrime", P);
} };
//#endregion
export { P as CronPrime, F as CronPrimePlugin, F as default, j as cronPrimeProps };
//# sourceMappingURL=prime.js.map