jenesius-vue-form
Version:
Heavy form system for Vue.js
898 lines • 285 kB
JavaScript
(function(){"use strict";(function(r,a){try{if(!document)return;const t=document.createElement("style");for(const e in a.attributes)t.setAttribute(e,a.attributes[e]);t.appendChild(document.createTextNode(r)),document.head.prepend(t)}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})('.container-input-wrap[data-v-cd92e0b6]{display:flex;flex-direction:column}.container-input-wrap-label[data-v-cd92e0b6]{margin:4px 0}.container-error-wrap[data-v-cd92e0b6]{display:flex;flex-direction:column;gap:5px;padding:5px 0}.container-error-wrap-label[data-v-cd92e0b6]{color:var(--vf-input-error);margin:0;font-size:15px}.container-input-text[data-v-8ed45c0e]{display:flex;height:var(--vf-input-height);border-radius:var(--vf-input-border-radius);border:var(--vf-input-border);background-color:var(--vf-input-background)}.container-input-text[data-v-8ed45c0e]:focus-within{border:var(--vf-input-border-focus)}.container-input-text_disabled[data-v-8ed45c0e]{background-color:var(--vf-input-background-disabled)}.container-input-text_error[data-v-8ed45c0e]{border:var(--vf-input-border-error)}.input-text-prefix[data-v-8ed45c0e]{color:var(--vf-input-black-light);line-height:var(--vf-input-height);font-size:var(--vf-input-font-size);padding-inline:4px 0}.input-text[data-v-8ed45c0e]{flex-grow:1;padding-inline:4px;color:var(--vf-input-color);font-size:var(--vf-input-font-size)}.input-text[data-v-8ed45c0e]::placeholder{color:var(--vf-input-placeholder-color)}.widget-calendar[data-v-5c77a4b5]{width:250px;border:var(--vf-input-border);padding:10px;border-radius:var(--vf-input-border-radius);background-color:var(--vf-input-background);display:grid;gap:10px}.widget-calendar-navigation[data-v-5c77a4b5]{display:grid;grid-template-columns:120px 100px;justify-content:space-between}.widget-calendar-board-header[data-v-5c77a4b5]{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.widget-calendar-board-header-label[data-v-5c77a4b5]{font-weight:700;font-size:13px}.widget-calendar-board-body[data-v-5c77a4b5]{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.widget-calendar-board-card[data-v-5c77a4b5]{display:grid;place-content:center;cursor:pointer;position:relative;width:100%;aspect-ratio:1/1;text-align:right;transition:var(--vf-input-transtion-fast);-webkit-user-select:none;user-select:none}.widget-calendar-board-card-label[data-v-5c77a4b5]{display:block;width:20px;font-size:14px;line-height:20px}.calendar-date_active[data-v-5c77a4b5]{color:#fff}.calendar-date_active[data-v-5c77a4b5]:after,.calendar-date_current[data-v-5c77a4b5]:after{position:absolute;content:"";width:20px;aspect-ratio:1/1;left:6px;right:0;top:0;bottom:0;margin:auto;z-index:-1;border:1px solid var(--vf-input-gray-dark);border-radius:2px}.calendar-date_active[data-v-5c77a4b5]:after{background-color:var(--vf-input-active)!important}.calendar-date_current[data-v-5c77a4b5]:after{background:var(--vf-input-gray-light)}.calendar-date_shadow[data-v-5c77a4b5]{color:var(--vf-input-gray-light)!important}.container-input-date[data-v-bcb30d02]{display:flex;height:var(--vf-input-height);border-radius:var(--vf-input-border-radius);border:var(--vf-input-border);background-color:var(--vf-input-background)}.container-input-date_disabled[data-v-bcb30d02]{background-color:var(--vf-input-background-disabled)}.container-input-date_error[data-v-bcb30d02]{border:var(--vf-input-border-error)}.container-input-date[data-v-bcb30d02]:focus-within{border:var(--vf-input-border-focus)}.input-date[data-v-bcb30d02]{padding-inline:4px;color:var(--vf-input-color);font-size:var(--vf-input-font-size);position:relative}.wrap-input-date[data-v-bcb30d02]{display:grid;position:relative;flex-grow:1}.input-date-mask[data-v-bcb30d02]{display:flex;align-items:center;height:100%;position:absolute;inset-inline-start:0;inset-block-start:0;z-index:0;margin:0;padding-inline:4px;-webkit-user-select:none;user-select:none;font-size:var(--vf-input-font-size);color:var(--vf-input-gray-dark)}.input-date-icon[data-v-bcb30d02]{cursor:pointer;stroke:var(--vf-input-gray-deep);transition:var(--vf-input-transtion-fast);padding-inline:6px}.input-date-icon_active[data-v-bcb30d02]{stroke:var(--vf-input-active)}.container-input-date_disabled .input-date-icon[data-v-bcb30d02]{stroke:var(--vf-input-gray-light)}.input-date-calendar[data-v-bcb30d02]{position:absolute;z-index:2;inset-inline-end:0;inset-block-start:10px}.container-date-calendar[data-v-bcb30d02]{position:relative;z-index:1}.container-input-select-current[data-v-5d96873c]{height:var(--vf-input-height);display:flex;align-items:center}.vf-arrow_active[data-v-5d96873c]{transform:rotate(225deg)}.container-input-select-current-label[data-v-5d96873c]{padding-inline:6px;color:var(--vf-input-color);font-size:var(--vf-input-font-size);flex-grow:1}.container-input-select-current>.vf-arrow[data-v-5d96873c]{margin-inline-end:10px}.container-input-select-search[data-v-c6e044a4]{padding:6px;background-color:var(--vf-input-white-light)}.container-input-select-search-input[data-v-c6e044a4]{padding:8px;width:100%;box-sizing:border-box;border:var(--vf-input-border);outline:none;border-radius:var(--vf-input-border-radius);color:var(--vf-input-color);background-color:var(--vf-input-background)}.container-input-select-search-input[data-v-c6e044a4]:focus{border:var(--vf-input-border-focus)}.container-input-select[data-v-630072ca]{height:var(--vf-input-height);max-height:var(--vf-input-height)}.input-select[data-v-630072ca]{border:var(--vf-input-border);border-radius:var(--vf-input-border-radius);color:var(--vf-input-color);cursor:pointer;overflow:hidden;background-color:#fff;position:relative;outline:none}.input-select[data-v-630072ca]:focus{border:var(--vf-input-border-focus)}.vf-input-select_error[data-v-630072ca]{border:var(--vf-input-border-error)}.vf-input-select_disabled[data-v-630072ca]{background-color:var(--vf-input-background-disabled);cursor:default}.input-select-option[data-v-630072ca]{position:relative;max-height:var(--vf-input-select-option-height);transition:max-height .3s;overflow:auto;background-color:var(--vf-input-background);display:grid;grid-template-rows:min-content minmax(0,1fr)}.input-select-option-list-item[data-v-630072ca]{padding:8px 6px;margin:0;color:var(--vf-input-label-color);font-size:var(--vf-input-font-size);transition:background-color .2s;border-radius:2px}.input-select-option-list-item[data-v-630072ca]:hover{background-color:var(--vf-input-white-light)}.input-select-option-list-item_active[data-v-630072ca]{background-color:#f4f4f4;border-radius:3px;color:var(--vf-input-active)}.input-select-option-list[data-v-630072ca]{overflow:auto;padding:0 1px}.input-select-option-list[data-v-630072ca]>:last-child{margin-bottom:1px}.input-select-option[data-v-630072ca],.vf-input-select_active[data-v-630072ca]{z-index:1}.vf-input-select_active[data-v-630072ca]:has(.height-resize-enter-active){z-index:2}.vf-input-select_multi .vf-input-select-row_current[data-v-630072ca]{border:1px solid var(--vf-input-gray-light)!important}.element-input-radio[data-v-7d4bfde8]{display:flex;gap:10px;align-items:center;cursor:pointer;outline:none}.element-input-radio-button[data-v-7d4bfde8]{height:20px;aspect-ratio:1/1;border-radius:50%;border:var(--vf-input-border);background-color:var(--vf-input-background);display:grid;place-items:center}.element-input-radio:focus .element-input-radio-button[data-v-7d4bfde8]{border:var(--vf-input-border-focus)}.element-input-radio-button_active[data-v-7d4bfde8]{height:12px;aspect-ratio:1/1;border-radius:50%;background-color:var(--vf-input-active);border:1px solid var(--vf-input-gray-dark)}.element-input-radio-label[data-v-7d4bfde8]{margin:0}.element-input-radio_disabled[data-v-7d4bfde8]{cursor:default}.element-input-radio_disabled .element-input-radio-button[data-v-7d4bfde8]{background-color:var(--vf-input-background-disabled)}.element-input-radio_disabled .element-input-radio-button_active[data-v-7d4bfde8]{background-color:var(--vf-input-active-disabled)}.element-input-radio_error .element-input-radio-button[data-v-7d4bfde8]{border:var(--vf-input-border-error)}.fade-enter-active[data-v-7d4bfde8],.fade-leave-active[data-v-7d4bfde8]{transition:.3s}.fade-enter-from[data-v-7d4bfde8],.fade-leave-to[data-v-7d4bfde8]{transform:scale(0)}.container-input-radio[data-v-6da2a79f]{display:flex;flex-direction:column;gap:14px}.container-input-radio[data-v-6da2a79f]:focus{outline:none}.element-input-checkbox[data-v-546e54fc]{cursor:pointer;display:flex;align-items:center;gap:13px;outline:none}.element-input-checkbox-button[data-v-546e54fc]{width:18px;min-width:18px;aspect-ratio:1/1;margin:0;border:var(--vf-input-border);background-color:var(--vf-input-background);border-radius:3px;display:grid;place-content:center}.element-input-checkbox-button_active[data-v-546e54fc]{background-color:var(--vf-input-active)}.element-input-checkbox-button_disabled[data-v-546e54fc]{background-color:var(--vf-input-background-disabled)}.element-input-checkbox-button_disabled.element-input-checkbox-button_active[data-v-546e54fc]{background-color:var(--vf-input-active-disabled)}.element-input-checkbox:focus .element-input-checkbox-button[data-v-546e54fc]{border:var(--vf-input-border-focus)}.element-input-checkbox-button_disabled[data-v-546e54fc]{cursor:default}.element-input-checkbox[data-v-546e54fc]:has(.element-input-checkbox-button_disabled){cursor:default}.element-input-checkbox-button_error[data-v-546e54fc]{border:var(--vf-input-border-error)}.element-input-checkbox-label[data-v-546e54fc]{margin:0}.element-input-checkbox-button__check[data-v-546e54fc]{display:none;width:4px;height:7px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);margin:1px 1px 4px}.element-input-checkbox-button_active>.element-input-checkbox-button__check[data-v-546e54fc]{display:inline-block}.container-input-checkbox[data-v-cacca1a1]{display:flex;flex-direction:column;gap:14px}.container-input-switch[data-v-e8d9d82f]{display:flex;align-items:center;gap:12px}.input-switch[data-v-e8d9d82f]{width:38px;border-radius:11px;border:var(--vf-input-border);height:21px;box-sizing:border-box;cursor:pointer;display:flex;outline:none;align-items:center;background-color:var(--vf-input-background)}.input-switch[data-v-e8d9d82f]:focus{border:var(--vf-input-border-focus)}.input-switch-button[data-v-e8d9d82f]{height:15px;aspect-ratio:1/1;background-color:var(--vf-input-gray-light);border-radius:50%;transform:translate(3px);transition:transform var(--vf-input-transtion-fast),color var(--vf-input-transtion-fast)}.input-switch-button_active[data-v-e8d9d82f]{background-color:var(--vf-input-active);transform:translate(18px)}[dir=rtl] .input-switch-button[data-v-e8d9d82f]{transform:translate(-3px)}[dir=rtl] .input-switch-button_active[data-v-e8d9d82f]{transform:translate(-18px)}.vf-input-switch_error[data-v-e8d9d82f]{border:var(--vf-input-border-error)}.input-switch-label[data-v-e8d9d82f]{margin:0}.input-switch_disabled[data-v-e8d9d82f]{background-color:var(--vf-input-background-disabled);cursor:default}.input-switch_disabled .input-switch-button_active[data-v-e8d9d82f]{background-color:var(--vf-input-active-disabled)}.container-input-password[data-v-16672dd8]{display:flex;align-items:center;height:var(--vf-input-height);border-radius:var(--vf-input-border-radius);border:var(--vf-input-border);background-color:var(--vf-input-background)}.container-input-password[data-v-16672dd8]:focus-within{border-color:var(--vf-input-border-color-focus)}.container-input-password_disabled[data-v-16672dd8]{background-color:var(--vf-input-background-disabled)}.input-password[data-v-16672dd8]{outline:none;border:0;background-color:transparent;height:100%;flex-grow:1;width:100%;padding:0 4px;font-size:var(--vf-input-font-size)}.input-password-toggle[data-v-16672dd8]{padding:0 10px;height:100%;display:grid;place-content:center;cursor:pointer;stroke:var(--vf-input-gray-deep)}.container-input-password_error[data-v-16672dd8]{border:var(--vf-input-border-error)}.container-input-tel-code[data-v-408e82f8]{padding-inline:10px}.input-tel-code[data-v-408e82f8]{-webkit-user-select:none;user-select:none;border:1px solid var(--vf-input-white-light)}.container-input-tel-code-default[data-v-408e82f8]{width:24px;height:16px;background-color:var(--vf-input-white-dark)}.container-input-tel-code-default>span[data-v-408e82f8]{color:var(--vf-input-black-light);font-size:11px;line-height:13px}.container-input-tel[data-v-c1671ac4]{display:flex;height:var(--vf-input-height);border-radius:var(--vf-input-border-radius);border:var(--vf-input-border);background-color:var(--vf-input-background)}.container-input-tel_disabled[data-v-c1671ac4]{background-color:var(--vf-input-background-disabled)}.container-input-tel[data-v-c1671ac4]:focus-within{border:var(--vf-input-border-focus)}.input-tel[data-v-c1671ac4]{font-size:var(--vf-input-font-size);color:var(--vf-input-color);flex-grow:1}.container-input-tel_error[data-v-c1671ac4]{border:var(--vf-input-border-error)}.widget-number-step[data-v-a4f9e3f6]{display:grid;width:30px;place-content:center;grid-template-rows:1fr 1fr;grid-template-columns:1fr;gap:1px;cursor:pointer;border-radius:var(--vf-input-border-radius);transition:background-color .2s}.widget-number-step[data-v-a4f9e3f6]:active{background-color:#fbfbfb}.widget-number-step>div[data-v-a4f9e3f6]{display:grid;place-content:center}.step_up[data-v-a4f9e3f6]{padding:8px 0 0}.step_down[data-v-a4f9e3f6]{padding:0 0 8px}.step-container:active>.vf-arrow[data-v-a4f9e3f6]{border-color:var(--vf-input-active)}.container-input-number[data-v-af959c10]{display:flex;border:1px solid var(--vf-input-border-color);height:var(--vf-input-height);border-radius:var(--vf-input-border-radius);background-color:var(--vf-input-background)}.container-input-number_disabled[data-v-af959c10]{background-color:var(--vf-input-background-disabled);position:relative}.container-input-number_error[data-v-af959c10]{border:var(--vf-input-border-error)}.container-input-number[data-v-af959c10]:focus-within{border:var(--vf-input-border-focus)}.input-number[data-v-af959c10]{display:flex;flex-grow:1;border:0;outline:none;padding:0 4px;color:var(--vf-input-color);background-color:transparent}.container-input-number_disabled>div[data-v-af959c10]:nth-child(1){background-color:var(--vf-input-white-dark);cursor:default}.container-input-number_disabled>div[data-v-af959c10]:nth-child(1):after{content:"";position:absolute;height:100%;width:100%;left:0;top:0;z-index:0}.input-number-suffix[data-v-af959c10]{color:var(--vf-input-black-light);line-height:var(--vf-input-height);font-size:var(--vf-input-font-size);padding-inline-end:5px}.input-range[data-v-37f5d327]{width:calc(100% - 2px);height:8px;border-radius:var(--vf-input-border-radius);-webkit-appearance:none;-moz-appearance:none;appearance:none;border:var(--vf-input-border);margin:0;outline:none}.input-range[data-v-37f5d327]:disabled{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--vf-input-background-disabled)!important}.input-range[data-v-37f5d327]:focus{border:var(--vf-input-border-focus)}.input-range[data-v-37f5d327]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:10px;border:var(--vf-input-border);background-color:#fff;overflow:visible;cursor:pointer}.input-range[data-v-37f5d327]:disabled::-webkit-slider-thumb{background-color:var(--vf-input-background-disabled);cursor:default}.input-range_error[data-v-37f5d327]::-webkit-slider-thumb{border:var(--vf-input-border-error)}.input-textarea[data-v-ef98fec8]{border-radius:var(--vf-input-border-radius);border:var(--vf-input-border);transition:border-color var(--vf-input-transtion-fast);outline:none;max-width:100%;padding:4px;box-sizing:border-box;min-height:70px;font-size:var(--vf-input-font-size);background-color:var(--vf-input-background);color:var(--vf-input-color)}.input-textarea[data-v-ef98fec8]:focus{border-color:var(--vf-input-border-color-focus)}.input-textarea[data-v-ef98fec8]:disabled{background-color:var(--vf-input-background-disabled)}.input-textarea_error[data-v-ef98fec8]{border-color:var(--vf-input-error)}:root{--vf-input-active: #4e74ff;--vf-input-active-disabled: #bac7f8;--vf-input-error: #fa5c5c;--vf-input-white-light: #f6f6f6;--vf-input-white-dark: #dadada;--vf-input-gray-light: #c8c8c8;--vf-input-gray-dark: #b2b2b2;--vf-input-gray-deep: #888888;--vf-input-black-light: #646363;--vf-input-black-dark: #333333;--vf-input-color: #1c1c1c;--vf-input-background: #ffffff;--vf-input-background-disabled: #e9e9e9;--vf-input-border-color: var(--vf-input-gray-light);--vf-input-border-color-focus: var(--vf-input-gray-deep);--vf-input-placeholder-color: var(--vf-input-gray-dark);--vf-input-font-size: 13.333px;--vf-input-border-radius: 4px;--vf-input-height: 35px;--vf-input-select-option-height: 240px;--vf-input-border: 1px solid var(--vf-input-border-color);--vf-input-border-error: 1px solid var(--vf-input-error);--vf-input-border-focus: 1px solid var(--vf-input-border-color-focus);--vf-input-label-color: var(--vf-input-black-dark);--vf-input-transtion-fast: .1s;--vf-input-transtion-medium: .3s}.vf-input_clean{border:0;outline:none;background-color:transparent;font-family:inherit}.vf-grid-center{display:grid;place-content:center}.vf-input-label{color:var(--vf-input-label-color);font-size:13px}.vf-arrow{border:solid var(--vf-input-gray-dark);border-width:0 2px 2px 0;display:inline-block;padding:3px;transition:transform .15s,background-color .2s}.vf-arrow_down{transform:rotate(45deg);-webkit-transform:rotate(45deg)}.vf-arrow_up{transform:rotate(-135deg);-webkit-transform:rotate(-135deg)}.slide-enter-from,.slide-leave-to{transform:translateY(20px);opacity:0}.slide-enter-active,.slide-leave-active{transition:.2s}.height-resize-enter-active,.height-resize-leave-active{transition:max-height var(--vf-input-transtion-medium);overflow:hidden!important}.height-resize-enter-from,.height-resize-leave-to{max-height:0!important}',{})})();
import { defineComponent as I, openBlock as h, createElementBlock as _, toDisplayString as Z, createCommentVNode as K, renderSlot as tr, Fragment as pe, renderList as ge, ref as x, watch as _e, createBlock as k, withCtx as L, createElementVNode as v, normalizeClass as B, unref as V, computed as Q, createVNode as X, createStaticVNode as nr, Transition as ct, nextTick as Ce, withKeys as F, withModifiers as ae, pushScopeId as ft, popScopeId as ht, normalizeStyle as rr, onMounted as ar, getCurrentInstance as ir, provide as dr, inject as or, reactive as pt, onUnmounted as gt, resolveDynamicComponent as ur } from "vue";
/*!
* jenesius-vue-form v3.0.22
* (c) 2025 Jenesius
* @license MIT
*/
function lr(n, t, e) {
console.log(`%c[${n}] %c${t}`, "color: #dac400", "color: black", e);
}
function tt(n) {
function t(e) {
return e ? Array.isArray(e) ? e.filter((r) => r !== void 0) : [e] : [];
}
return function(r) {
const a = t(n());
try {
a.forEach((i) => r = i(r));
} catch (i) {
lr("[modify]", `Error in modify callback with value ${r}:`, i);
}
return r;
};
}
const sr = { class: "container-input-wrap" }, $r = {
key: 0,
class: "container-input-wrap-label vf-input-label"
}, cr = {
key: 1,
class: "container-error-wrap"
}, fr = /* @__PURE__ */ I({
__name: "field-wrap",
props: {
label: {},
errors: {}
},
setup(n) {
return (t, e) => (h(), _("div", sr, [
t.label ? (h(), _("p", $r, Z(t.label), 1)) : K("", !0),
tr(t.$slots, "default", {}, void 0, !0),
t.errors && t.errors.length > 0 ? (h(), _("div", cr, [
(h(!0), _(pe, null, ge(t.errors, (r, a) => (h(), _("p", {
class: "container-error-wrap-label",
key: a
}, Z(r), 1))), 128))
])) : K("", !0)
]));
}
});
const T = (n, t) => {
const e = n.__vccOpts || n;
for (const [r, a] of t)
e[r] = a;
return e;
}, Y = /* @__PURE__ */ T(fr, [["__scopeId", "data-v-cd92e0b6"]]);
function mt(n, t = 0) {
if (typeof n != "string")
return t;
const e = new RegExp(/^([-+]?)([^.,+-]*)(.*)/g).exec(n);
if (e === null)
return t;
try {
const r = [
e[1].length ? e[1] : "+",
e[2].replace(/[^0-9]/g, ""),
".",
e[3].replace(/[^0-9]/g, "")
].join("");
if (r.length === 2)
return t;
const a = Number.parseFloat(r);
return Number.isNaN(a) ? t : a;
} catch {
return t;
}
}
const hr = {
key: 0,
class: "input-text-prefix"
}, pr = ["value", "disabled", "autofocus", "placeholder", "name"], gr = /* @__PURE__ */ I({
__name: "input-text",
props: {
label: {},
errors: {},
modelValue: {},
disabled: { type: Boolean },
name: {},
autofocus: { type: Boolean },
pretty: { type: [Function, Array] },
modify: { type: [Function, Array] },
placeholder: {},
maxlength: {},
prefix: {},
numeric: { type: Boolean },
maxLength: {}
},
emits: ["update:modelValue"],
setup(n, { emit: t }) {
const e = n, r = x(!1), a = x(e.modelValue), i = t, d = tt(() => e.pretty), o = tt(
() => [
e.numeric ? (u) => mt(u, P.cleanValue) : void 0,
...Array.isArray(e.modify) ? e.modify : [e.modify]
]
);
function l(u) {
("maxlength" in e && e.maxlength !== void 0 || "maxLength" in e && e.maxlength !== void 0) && (u = u.slice(0, Number(e.maxlength || e.maxLength))), u = o(u), a.value.value = u, i("update:modelValue", u);
}
return _e(() => e.maxLength, () => l(e.modelValue)), (u, $) => (h(), k(Y, {
label: u.label,
errors: u.errors
}, {
default: L(() => [
v("div", {
class: B(["container-input-text", {
"container-input-text_error": u.errors.length !== 0,
"container-input-text_disabled": u.disabled
}])
}, [
u.prefix ? (h(), _("span", hr, Z(u.prefix), 1)) : K("", !0),
v("input", {
ref_key: "refInput",
ref: a,
class: "vf-input_clean input-text",
type: "text",
value: r.value ? u.modelValue : V(d)(u.modelValue),
disabled: u.disabled,
autofocus: u.autofocus,
placeholder: u.placeholder,
onInput: $[0] || ($[0] = (c) => l(c.target.value)),
onFocusin: $[1] || ($[1] = (c) => r.value = !0),
onFocusout: $[2] || ($[2] = (c) => r.value = !1),
name: u.name
}, null, 40, pr)
], 2)
]),
_: 1
}, 8, ["label", "errors"]));
}
});
const mr = /* @__PURE__ */ T(gr, [["__scopeId", "data-v-8ed45c0e"]]);
class S {
/**
* SPECIFICATION: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#date_time_string_format
* */
static get ValidatedPrimaryMask() {
return ["YYYY", "MM", "DD", "HH", "mm"];
}
/**
* @description Функция предназначена для валидации маски. Вернёт true в случае успеха, или выкинет ошибку, если
* маска не является валидной.
* */
static ValidateMask(t) {
if (typeof t != "string")
throw se.WrongMaskType(t);
return !!S.SplitStringByMask("", t);
}
static SplitStringByMask(t, e) {
let r = e;
const a = [], i = [
...new Set(S.ValidatedPrimaryMask.reduce((d, o) => (d.push(...o.split("")), d), []))
].join("");
for (; r.length; ) {
const d = S.ValidatedPrimaryMask.find((u) => r.startsWith(u));
if (d) {
const u = new RegExp(`\\d{0,${d.length}}`).exec(t), $ = (u == null ? void 0 : u[0]) || "";
if ($.length)
t = t.slice($.length);
else
for (; t.length && /\D/.test(t.charAt(0)); )
t = t.slice(1);
r = r.slice(d.length);
const c = $.length === d.length || $.length && /^\D/.test(t);
a.push({
part: d,
input: $,
construction: !0,
ended: !!c,
last: !S.ValidatedPrimaryMask.find((p) => r.includes(p))
});
continue;
}
const o = r.charAt(0), l = r.length - e.length;
if (new RegExp(`[${i}]`).test(o))
throw se.WrongConstruction(e, o, l);
if (/[a-zA-Z]/.test(o))
throw se.UsingUnknownSymbol(e, o, l);
a.push({
part: o,
skipped: t.length !== 0
}), /\d/.test(t.charAt(0)) || (t = t.slice(1)), r = r.slice(1);
}
return a;
}
/**
* @description Конвертация в строки в дату используя маску.
* */
static ConvertToDate(t, e) {
if (typeof t != "string")
throw new Error("Input is not string");
const r = S.SplitStringByMask(t, e);
function a(i) {
var d;
return Number.parseInt(((d = r.find((o) => o.part === i)) === null || d === void 0 ? void 0 : d.input) || "0");
}
return r.find((i) => i.construction && !(i.ended || i.last && i.input.length)) ? null : new Date(a("YYYY"), a("MM") - 1, a("DD"), a("HH"), a("mm"));
}
/**
* @description Проверяет является ли переданная строка законченной маской. Это означает то, что для всех элементов
* маски есть хотя бы один символ, а для последнего - все. То есть если к значению поля в конец добавить любую цифру
* то данная строка будет уже не валидна.
* */
static CheckFullerMask(t, e) {
return !S.SplitStringByMask(t, e).find((a) => a.ended === !1);
}
static GetPrettyDate(t, e) {
return S.ParseMask(e).map((r) => S.GetValueByMaskPart(t, r)).join("");
}
/**
* @description Используется только для красивой записи. По этому не используется getUTCFullYear, getUTCMonth и т.д.
* */
static GetValueByMaskPart(t, e) {
function r(a, i = 2) {
return String(a).padStart(i, "0");
}
switch (e) {
case "YYYY":
return t.getFullYear();
case "MM":
return r(t.getMonth() + 1);
case "DD":
return r(t.getDate());
case "HH":
return r(t.getHours());
case "mm":
return r(t.getMinutes());
default:
return e;
}
}
/**
* @description Parse Mask to part.
* @example mm/dd/yyyy HH:MM -> ["mm", "/", "dd", "yyyy", " ", "HH", ":", "MM"]
* */
static ParseMask(t) {
return S.SplitStringByMask("", t).map((e) => e.part);
}
/**
* @description Метод возвращает оставшуюся часть маски
* */
static GetRestMask(t, e) {
return S.SplitStringByMask(t, e).filter((a) => !(a.ended || a.skipped)).map((a) => a.input ? a.part.slice(a.input.length) : a.part).join("");
}
static isUTCDate(t) {
if (!/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/.test(t))
return !1;
const e = new Date(t);
return e instanceof Date && !isNaN(e.getTime()) && e.toISOString() === t;
}
}
class se extends Error {
static WrongMaskType(t) {
return new se(`Type of mask should be string, but founded ${typeof t}. Provided mask: ${t}`);
}
static UsingUnknownSymbol(t, e, r) {
return new se(`
In mask You can use only constructions like: ${S.ValidatedPrimaryMask.join()}.
The next symbol(construction) "${e}" is unknown.
Mask: ${t}, Position: ${r}
`);
}
static WrongConstruction(t, e, r) {
return new se(`
Not full construction was founded: ${e}.
You can use only ${S.ValidatedPrimaryMask.join()}.
Mask: ${t}, Position: ${r}
`);
}
}
const vr = { class: "widget-calendar" }, yr = { class: "widget-calendar-navigation" }, br = { class: "widget-calendar-board" }, Nr = { class: "widget-calendar-board-header" }, _r = { class: "widget-calendar-board-body" }, Cr = ["title", "onClick"], wr = { class: "widget-calendar-board-card-label" }, Pr = /* @__PURE__ */ I({
__name: "widget-calendar",
props: {
modelValue: {},
functionDateClass: {}
},
emits: ["update:modelValue"],
setup(n, { emit: t }) {
const e = n, r = Q(() => {
if (!e.modelValue)
return null;
const y = new Date(e.modelValue);
return isNaN(y.getTime()) ? null : y.toDateString();
}), a = t, i = r.value && e.modelValue ? new Date(e.modelValue) : /* @__PURE__ */ new Date(), d = x(i.getMonth()), o = x(i.getFullYear()), l = (/* @__PURE__ */ new Date()).toDateString(), u = P.date.months.map((y, f) => ({ label: y, value: f })), $ = P.date.daysWeek.map((y, f) => ({ label: y, value: f })), c = Array.from({ length: P.date.calendar.yearCount }, (y, f) => ({
value: P.date.calendar.yearStart + f,
title: String(P.date.calendar.yearStart + f)
})), p = Q(() => {
const y = [], f = new Date(o.value, d.value + 1, 0).getDate(), N = new Date(o.value, d.value, 1).getDay(), W = new Date(o.value, d.value, 1 - N);
let U = N + f > 35 ? 42 : 35;
for (let oe = 0; oe < U; oe++)
y.push({
label: W.getDate().toString(),
value: W.toDateString()
}), W.setDate(W.getDate() + 1);
return y;
});
function C(y) {
a("update:modelValue", new Date(y));
}
function A(y) {
const f = new Date(y).getMonth();
return d.value === f;
}
return (y, f) => (h(), _("div", vr, [
v("div", yr, [
X(V($t), {
modelValue: d.value,
"onUpdate:modelValue": f[0] || (f[0] = (N) => d.value = N),
type: "select",
options: V(u),
placeholder: "Month"
}, null, 8, ["modelValue", "options"]),
X(V($t), {
modelValue: o.value,
"onUpdate:modelValue": f[1] || (f[1] = (N) => o.value = N),
type: "select",
options: V(c),
placeholder: "Year"
}, null, 8, ["modelValue", "options"])
]),
v("div", br, [
v("div", Nr, [
(h(!0), _(pe, null, ge(V($), (N) => (h(), _("span", {
class: "widget-calendar-board-header-label",
key: N.value
}, Z(N.label), 1))), 128))
]),
v("div", _r, [
(h(!0), _(pe, null, ge(p.value, (N, W) => {
var U;
return h(), _("div", {
class: B(["widget-calendar-board-card", {
"calendar-date_active": N.value === r.value,
"calendar-date_current": N.value === V(l),
"calendar-date_shadow": !A(N.value),
[((U = y.functionDateClass) == null ? void 0 : U.call(y, N.value)) || ""]: !0
}]),
key: W,
title: N.value,
onClick: (oe) => C(N.value)
}, [
v("span", wr, Z(N.label), 1)
], 10, Cr);
}), 128))
])
])
]));
}
});
const Er = /* @__PURE__ */ T(Pr, [["__scopeId", "data-v-5c77a4b5"]]);
function vn(n, t) {
const e = document;
function r() {
e.removeEventListener("click", a);
}
function a(i) {
n.contains(i.target) || (t(), r());
}
return setTimeout(() => e.addEventListener("click", a), 0), () => {
r();
};
}
const Ir = {
name: "icon-calendar"
}, Ar = {
width: "24",
height: "24",
viewBox: "0 0 24 24",
fill: "none",
xmlns: "http://www.w3.org/2000/svg"
}, Sr = /* @__PURE__ */ nr('<path d="M3.093 9.40405H20.917" stroke-linecap="round" stroke-linejoin="round"></path><path d="M16.442 13.3101H16.451" stroke-linecap="round" stroke-linejoin="round"></path><path d="M12.005 13.3101H12.014" stroke-linecap="round" stroke-linejoin="round"></path><path d="M7.558 13.3101H7.567" stroke-linecap="round" stroke-linejoin="round"></path><path d="M16.442 17.196H16.451" stroke-linecap="round" stroke-linejoin="round"></path><path d="M12.005 17.196H12.014" stroke-linecap="round" stroke-linejoin="round"></path><path d="M7.558 17.196H7.567" stroke-linecap="round" stroke-linejoin="round"></path><path d="M16.044 2V5.291" stroke-linecap="round" stroke-linejoin="round"></path><path d="M7.966 2V5.291" stroke-linecap="round" stroke-linejoin="round"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M16.2383 3.5791H7.77096C4.83427 3.5791 3 5.21504 3 8.22213V17.2718C3 20.3261 4.83427 21.9999 7.77096 21.9999H16.229C19.175 21.9999 21 20.3545 21 17.3474V8.22213C21.0092 5.21504 19.1842 3.5791 16.2383 3.5791Z" stroke-linecap="round" stroke-linejoin="round"></path>', 10), Tr = [
Sr
];
function xr(n, t, e, r, a, i) {
return h(), _("svg", Ar, Tr);
}
const Fr = /* @__PURE__ */ T(Ir, [["render", xr]]), Or = { class: "wrap-input-date" }, kr = { class: "input-date-mask" }, Dr = ["value", "disabled"], Vr = /* @__PURE__ */ I({
__name: "input-date",
props: {
modelValue: {},
label: {},
errors: {},
mask: { default: () => P.dateMask },
placeholder: {},
disabled: { type: Boolean },
handlers: {}
},
emits: ["update:modelValue"],
setup(n, { emit: t }) {
const e = n, r = t, a = x(""), i = x(), d = x(!1);
let o;
function l(f) {
d.value = f, Ce(() => {
f ? o = vn(i.value, l.bind(null, !1)) : o == null || o();
});
}
function u(f) {
p(S.GetPrettyDate(f, e.mask));
}
function $() {
const f = a.value;
p(S.CheckFullerMask(f, e.mask) ? f : "");
}
function c(f) {
a.value = f, S.CheckFullerMask(f, e.mask) && p(f);
}
function p(f) {
if (e.disabled)
return !1;
e.handlers && (f = e.handlers[1](f)), r("update:modelValue", f || null), f || (a.value = "");
}
function C(f) {
return typeof f != "string" ? "" : S.SplitStringByMask(f, e.mask).map((N) => N.input || (N.skipped ? N.part : "")).join("");
}
const A = Q(() => C(a.value)), y = Q(() => a.value ? A.value + S.GetRestMask(A.value, e.mask) : e.mask);
return _e(() => e.mask, () => S.ValidateMask(y.value), { immediate: !0 }), _e(() => e.modelValue, (f) => {
if (e.handlers) {
const N = e.handlers[0](f);
N && (f = S.GetPrettyDate(N, e.mask));
}
a.value = f;
}, { immediate: !0 }), (f, N) => (h(), k(Y, {
label: f.label,
errors: f.errors
}, {
default: L(() => {
var W;
return [
v("div", {
class: B(["container-input-date", { "container-input-date_disabled": f.disabled, "container-input-date_error": f.errors.length }])
}, [
v("div", Or, [
v("p", kr, Z((W = a.value) != null && W.length || !f.placeholder ? y.value : f.placeholder), 1),
v("input", {
class: "vf-input_clean input-date",
type: "text",
value: A.value,
onInput: N[0] || (N[0] = (U) => c(U.target.value)),
onChange: N[1] || (N[1] = (U) => $()),
disabled: f.disabled
}, null, 40, Dr)
]),
v("div", {
class: B(["input-date-icon vf-grid-center", {
"input-date-icon_active": d.value
}]),
onClick: N[2] || (N[2] = (U) => l(!d.value))
}, [
X(Fr)
], 2)
], 2),
X(ct, { name: "slide" }, {
default: L(() => [
d.value ? (h(), _("div", {
key: 0,
ref_key: "refCalendar",
ref: i,
class: "container-date-calendar"
}, [
X(Er, {
class: "input-date-calendar",
"model-value": f.modelValue,
"onUpdate:modelValue": u
}, null, 8, ["model-value"])
], 512)) : K("", !0)
]),
_: 1
})
];
}),
_: 1
}, 8, ["label", "errors"]));
}
});
const Rr = /* @__PURE__ */ T(Vr, [["__scopeId", "data-v-bcb30d02"]]), Mr = { class: "container-input-select-current" }, Lr = { class: "container-input-select-current-label" }, Br = /* @__PURE__ */ I({
__name: "widget-input-select-current",
props: {
disabled: { type: Boolean },
active: { type: Boolean },
label: {}
},
setup(n) {
return (t, e) => (h(), _("div", Mr, [
v("p", Lr, Z(t.label), 1),
t.disabled ? K("", !0) : (h(), _("i", {
key: 0,
class: B(["vf-arrow vf-arrow_down", { "vf-arrow_active": t.active }])
}, null, 2))
]));
}
});
const jr = /* @__PURE__ */ T(Br, [["__scopeId", "data-v-5d96873c"]]), Gr = { class: "container-input-select-search" }, Ur = ["placeholder", "value"], Wr = /* @__PURE__ */ I({
__name: "widget-input-select-search",
props: {
modelValue: {}
},
emits: ["update:modelValue", "focusin", "focusout"],
setup(n, { emit: t }) {
const e = t;
return (r, a) => (h(), _("div", Gr, [
v("input", {
type: "text",
class: "container-input-select-search-input",
placeholder: V(P).select.searchLabel,
onInput: a[0] || (a[0] = (i) => e("update:modelValue", i.target.value)),
value: r.modelValue,
onFocusin: a[1] || (a[1] = (i) => e("focusin")),
onFocusout: a[2] || (a[2] = (i) => e("focusout"))
}, null, 40, Ur)
]));
}
});
const Hr = /* @__PURE__ */ T(Wr, [["__scopeId", "data-v-c6e044a4"]]);
function xe(n) {
return ("title" in n ? n.title : n.label) || "";
}
function Kr(n, t = 100) {
let e = 0;
return (...r) => {
clearTimeout(e), e = setTimeout(() => n(...r), t);
};
}
function Yr(n, t, e) {
const r = n.indexOf(t);
return r === -1 ? (e === void 0 || typeof e == "number" && Number.isFinite(e) && n.length < e) && n.push(t) : n.splice(r, 1), n;
}
function yn(n, t, e) {
let r = n.findIndex((a) => a.value === t);
return r = r === -1 ? e > 0 ? -1 : 0 : r, r = r + e, r < 0 && (r = n.length + r), n[r % n.length];
}
const Xr = { class: "container-input-select" }, Zr = ["tabindex", "onKeydown"], Jr = {
key: 0,
class: "input-select-option"
}, zr = { class: "input-select-option-list" }, qr = ["title", "onClick"], Qr = /* @__PURE__ */ I({
__name: "input-select",
props: {
label: {},
modelValue: {},
disabled: { type: Boolean },
options: {},
placeholder: {},
errors: {},
hiddenValues: {},
multiple: { type: Boolean },
limit: {}
},
emits: ["update:modelValue"],
setup(n, { emit: t }) {
const e = n, r = t, a = x(), i = Q(() => typeof e.limit == "number" ? e.limit : typeof e.limit == "string" ? Number.parseInt(e.limit, 10) : void 0), d = x(!1), o = x(void 0), l = Q(() => {
var w;
const m = e.multiple ? (w = e.modelValue) == null ? void 0 : w[0] : e.modelValue, E = e.options.find((G) => G.value === m);
if (E) {
const G = xe(E);
return e.multiple ? G + (e.modelValue.length > 1 ? ` + ${e.modelValue.length - 1}` : "") : G;
}
return e.disabled ? "" : e.placeholder || "";
}), u = x(""), $ = Q(() => {
const m = u.value.toLowerCase();
return e.options.filter(
(E) => {
var w, G, me;
return (
// Если объекта нет в скрытых значениях
!((w = e.hiddenValues) != null && w.includes(E.value)) && // Если поиск пуст или если label содержит search
// *String* used to convert number or other types(not string) to string
// Resolve https://github.com/Jenesius/vue-form/issues/107
(m.length === 0 || ((me = (G = String(xe(E))) == null ? void 0 : G.toLowerCase) == null ? void 0 : me.call(G).includes(m)))
);
}
);
});
function c(m = !d.value) {
if (e.disabled)
return d.value = !1;
d.value = m, m || (u.value = ""), m && (Ce(A.bind(null, "auto")), o.value = C());
}
function p() {
const m = a.value;
m && (m.matches(":focus-within") || c(!1));
}
function C() {
return e.multiple ? Array.isArray(e.modelValue) ? e.modelValue[e.modelValue.length - 1] : void 0 : e.modelValue;
}
const A = Kr(function(m = "auto") {
d.value && Ce(() => {
var E, w;
(w = (E = a.value) == null ? void 0 : E.querySelector(".vf-input-select-row_current")) == null || w.scrollIntoView({
block: "nearest",
behavior: m
});
});
});
function y(m) {
const E = m.key === "ArrowDown" ? 1 : m.key === "ArrowUp" ? -1 : 0, w = o.value;
if (o.value = yn($.value, o.value, E).value, !e.multiple)
U(o.value);
else {
let G = Array.isArray(e.modelValue) ? e.modelValue : [];
if (m.shiftKey) {
const me = [w ? oe(w) : void 0, oe(o.value)];
G = me[0] === me[1] ? N(G, w) : N(G, o.value), U(G);
} else
m.ctrlKey || U([o.value]);
}
A("smooth");
}
function f(m) {
U(e.multiple ? N(e.modelValue, m) : m), e.multiple || c(!1);
}
function N(m, E) {
return Yr(Array.isArray(m) ? m : [], E, i.value);
}
function W() {
if (!d.value)
return c();
e.multiple && e.options.find((m) => m.value === o.value) && U(N(e.modelValue, o.value));
}
function U(m) {
if (!e.disabled) {
if (e.multiple && !(Array.isArray(m) || m === null || m === void 0))
return console.warn("An attempt to set a value for input-select(multiple: true) failed. The data is not an array, null or undefined.", m);
r("update:modelValue", m);
}
}
function oe(m) {
return e.multiple ? (Array.isArray(e.modelValue) ? e.modelValue : []).includes(m) : e.modelValue === m;
}
return (m, E) => (h(), k(Y, {
label: m.label,
errors: m.errors
}, {
default: L(() => [
v("div", Xr, [
v("div", {
class: B(["input-select", {
"vf-input-select_disabled": m.disabled,
"vf-input-select_error": m.errors.length,
"vf-input-select_active": d.value,
"vf-input-select_multi": !!m.multiple
}]),
tabindex: m.disabled ? "none" : 0,
onFocusout: E[3] || (E[3] = (w) => p()),
onKeyup: E[4] || (E[4] = F((w) => c(), ["enter"])),
onKeydown: [
F(ae(y, ["prevent"]), ["down"]),
F(ae(y, ["prevent"]), ["up"]),
F(ae(W, ["prevent"]), ["space"])
],
ref_key: "refInputSelect",
ref: a
}, [
X(jr, {
label: l.value,
disabled: m.disabled,
active: d.value,
onClick: E[0] || (E[0] = (w) => c())
}, null, 8, ["label", "disabled", "active"]),
X(ct, { name: "height-resize" }, {
default: L(() => [
d.value ? (h(), _("div", Jr, [
m.options.length > V(P).select.countWithoutSearch ? (h(), k(Hr, {
key: 0,
modelValue: u.value,
"onUpdate:modelValue": E[1] || (E[1] = (w) => u.value = w),
onFocusin: E[2] || (E[2] = (w) => c(!0))
}, null, 8, ["modelValue"])) : K("", !0),
v("div", zr, [
(h(!0), _(pe, null, ge($.value, (w) => (h(), _("p", {
key: w.value,
class: B([{ "input-select-option-list-item_active": oe(w.value), "vf-input-select-row_current": o.value === w.value }, "input-select-option-list-item"]),
title: w.value,
onClick: (G) => f(w.value)
}, Z(V(xe)(w)), 11, qr))), 128))
])
])) : K("", !0)
]),
_: 1
})
], 42, Zr)
])
]),
_: 1
}, 8, ["label", "errors"]));
}
});
const ea = /* @__PURE__ */ T(Qr, [["__scopeId", "data-v-630072ca"]]), ta = ["tabindex"], na = { class: "element-input-radio-button" }, ra = {
key: 0,
class: "element-input-radio-button_active"
}, aa = {
key: 0,
class: "element-input-radio-label vf-input-label"
}, ia = /* @__PURE__ */ I({
__name: "element-input-radio",
props: {
tabindex: {},
modelValue: { type: Boolean },
disabled: { type: Boolean },
error: { type: Boolean },
label: {}
},
emits: ["input", "next", "prev"],
setup(n, { emit: t }) {
const e = t;
return (r, a) => (h(), _("div", {
class: B(["element-input-radio", {
"element-input-radio_active": r.modelValue,
"element-input-radio_disabled": r.disabled,
"element-input-radio_error": r.error
}]),
tabindex: r.tabindex,
onClick: a[0] || (a[0] = (i) => e("input")),
onKeydown: [
a[1] || (a[1] = F(ae((i) => e("next"), ["prevent"]), ["down"])),
a[2] || (a[2] = F(ae((i) => e("prev"), ["prevent"]), ["up"]))
]
}, [
v("div", na, [
X(ct, { name: "fade" }, {
default: L(() => [
r.modelValue ? (h(), _("div", ra)) : K("", !0)
]),
_: 1
})
]),
r.label ? (h(), _("p", aa, Z(r.label), 1)) : K("", !0)
], 42, ta));
}
});
const bn = /* @__PURE__ */ T(ia, [["__scopeId", "data-v-7d4bfde8"]]), da = /* @__PURE__ */ I({
__name: "widget-input-radio",
props: {
label: {},
options: {},
modelValue: {},
disabled: { type: Boolean },
errors: {}
},
emits: ["update:modelValue"],
setup(n, { emit: t }) {
const e = n, r = x(), a = t;
function i(u) {
e.disabled || a("update:modelValue", u);
}
function d(u) {
const $ = e.options[u];
return e.disabled ? "none" : (e.modelValue ? e.modelValue === $.value : u === 0) ? 0 : "none";
}
function o(u) {
i(
yn(e.options, e.modelValue || e.options[0].value, u).value
), l();
}
function l() {
const u = r.value;
u && Ce(() => {
var $;
($ = u.querySelector(".element-input-radio_active")) == null || $.focus();
});
}
return (u, $) => (h(), k(Y, {
label: u.label,
errors: u.errors
}, {
default: L(() => [
v("div", {
class: "container-input-radio",
ref_key: "refContainerInputRadio",
ref: r
}, [
(h(!0), _(pe, null, ge(u.options, (c, p) => (h(), k(bn, {
key: c.value,
"model-value": u.modelValue === c.value,
tabindex: d(p),
disabled: u.disabled,
label: c.label || c.title,
error: !!u.errors.length,
onInput: (C) => i(c.value),
onNext: $[0] || ($[0] = (C) => o(1)),
onPrev: $[1] || ($[1] = (C) => o(-1))
}, null, 8, ["model-value", "tabindex", "disabled", "label", "error", "onInput"]))), 128))
], 512)
]),
_: 1
}, 8, ["label", "errors"]));
}
});
const oa = /* @__PURE__ */ T(da, [["__scopeId", "data-v-6da2a79f"]]), ua = (n) => (ft("data-v-546e54fc"), n = n(), ht(), n), la = { class: "element-input-checkbox" }, sa = /* @__PURE__ */ ua(() => /* @__PURE__ */ v("i", { class: "element-input-checkbox-button__check" }, null, -1)), $a = [
sa
], ca = {
key: 0,
class: "element-input-checkbox-label vf-input-label"
}, fa = /* @__PURE__ */ I({
__name: "element-input-checkbox",
props: {
modelValue: { type: Boolean },
label: {},
disabled: { type: Boolean },
hasError: { type: Boolean }
},
setup(n) {
return (t, e) => (h(), _("div", la, [
v("div", {
class: B(["element-input-checkbox-button", {
"element-input-checkbox-button_active": t.modelValue,
"element-input-checkbox-button_disabled": t.disabled,
"element-input-checkbox-button_error": t.hasError
}])
}, $a, 2),
t.label ? (h(), _("p", ca, Z(t.label), 1)) : K("", !0)
]));
}
});
const Nn = /* @__PURE__ */ T(fa, [["__scopeId", "data-v-546e54fc"]]), ha = { class: "container-input-checkbox" }, pa = /* @__PURE__ */ I({
__name: "widget-input-checkbox",
props: {
label: {},
options: {},
modelValue: {},
disabled: { type: Boolean },
errors: {}
},
emits: ["update:modelValue"],
setup(n, { emit: t }) {
const e = n, r = t;
function a(o) {
var l, u;
return ((u = (l = e.modelValue) == null ? void 0 : l.includes) == null ? void 0 : u.call(l, o)) || !1;
}
function i(o) {
const l = Array.isArray(e.modelValue) ? e.modelValue : [], u = l.indexOf(o);
return u === -1 ? l.push(o) : l.splice(u, 1), l;
}
function d(o) {
e.disabled || r("update:modelValue", i(o));
}
return (o, l) => (h(), k(Y, {
label: o.label,
errors: o.errors
}, {
default: L(() => [
v("div", ha, [
(h(!0), _(pe, null, ge(o.options, (u) => (h(), k(Nn, {
key: u.value,
"model-value": a(u.value),
disabled: o.disabled,
label: u.label || u.title,
tabindex: o.disabled ? "none" : 0,
"has-error": o.errors.length !== 0,
onClick: ($) => d(u.value),
onKeyup: [
F(($) => d(u.value), ["enter"]),
F(ae(($) => d(u.value), ["prevent"]), ["space"])
],
onKeydown: l[0] || (l[0] = F(ae(() => {
}, ["prevent"]), ["space"]))
}, null, 8, ["model-value", "disabled", "label", "tabindex", "has-error", "onClick", "onKeyup"]))), 128))
])
]),
_: 1
}, 8, ["label", "errors"]));
}
});
const ga = /* @__PURE__ */ T(pa, [["__scopeId", "data-v-cacca1a1"]]);
function vt(n, t) {
return n[0] !== t ? n[0] : n[1];
}
const ma = { class: "container-input-switch" }, va = ["tabindex"], ya = { class: "input-switch-label vf-input-label" }, ba = /* @__PURE__ */ I({
__name: "widget-input-switch",
props: {
label: {},
modelValue: {},
disabled: { type: Boolean },
errors: {},
values: {}
},
emits: ["update:modelValue"],
setup(n, { emit: t }) {
const e = n, r = t;
function a(i = e.values ? vt(e.values, e.modelValue) : !e.modelValue) {
e.disabled || r("update:modelValue", i);
}
return (i, d) => (h(), k(Y, { errors: i.errors }, {
default: L(() => [
v("div", ma, [
v("div", {
class: B(["input-switch", {
"input-switch_disabled": i.disabled,
"vf-input-switch_error": i.errors && i.errors.length !== 0
}]),
tabinde