UNPKG

jenesius-vue-form

Version:

Heavy form system for Vue.js

898 lines 285 kB
(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