{"version":3,"file":"index-BKjsK-K8.js","sources":["../../../node_modules/.pnpm/@formkit+utils@1.6.7/node_modules/@formkit/utils/dist/index.mjs","../../../node_modules/.pnpm/@formkit+core@1.6.7/node_modules/@formkit/core/dist/index.mjs","../../../node_modules/.pnpm/@formkit+observer@1.6.7/node_modules/@formkit/observer/dist/index.mjs","../../../node_modules/.pnpm/@formkit+rules@1.6.7/node_modules/@formkit/rules/dist/index.mjs","../../../node_modules/.pnpm/@formkit+validation@1.6.7/node_modules/@formkit/validation/dist/index.mjs","../../../node_modules/.pnpm/@formkit+i18n@1.6.7/node_modules/@formkit/i18n/dist/index.mjs","../../../node_modules/.pnpm/@formkit+inputs@1.6.7/node_modules/@formkit/inputs/dist/index.mjs","../../../node_modules/.pnpm/@formkit+themes@1.6.7_tailwindcss@3.4.13/node_modules/@formkit/themes/dist/index.mjs","../../../node_modules/.pnpm/@formkit+dev@1.6.7/node_modules/@formkit/dev/dist/index.mjs","../../../node_modules/.pnpm/@formkit+vue@1.6.7_tailwindcss@3.4.13_vue@3.5.12_typescript@5.6.2_/node_modules/@formkit/vue/dist/index.mjs","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/addDays/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/isValid/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/isSameDay/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/endOfDay/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/locale/en-US/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/subMilliseconds/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/format/formatters/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/protectedTokens/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/format/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/assign/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/getHours/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/getMinutes/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/getTime/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/getUnixTime/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/subDays/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/setUTCDay/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/parse/_lib/parsers/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/parse/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/isToday/index.js","../../../node_modules/.pnpm/date-fns@2.21.1/node_modules/date-fns/esm/isYesterday/index.js","../../../app/javascript/dashboard/composables/store.js","../../../node_modules/.pnpm/@rails+actioncable@6.1.3/node_modules/@rails/actioncable/app/assets/javascripts/action_cable.js","../../../app/javascript/shared/helpers/BaseActionCableConnector.js","../../../app/javascript/widget/helpers/uuid.js","../../../app/javascript/widget/i18n/index.js","../../../app/javascript/dashboard/routes/dashboard/settings/inbox/helpers/businessHour.js","../../../app/javascript/shared/helpers/DateHelper.js","../../../app/javascript/shared/helpers/vuex/mutationHelpers.js","../../../app/javascript/shared/helpers/MessageTypeHelper.js","../../../node_modules/.pnpm/urlpattern-polyfill@10.0.0/node_modules/urlpattern-polyfill/dist/urlpattern.js","../../../node_modules/.pnpm/urlpattern-polyfill@10.0.0/node_modules/urlpattern-polyfill/index.js"],"sourcesContent":["// packages/utils/src/index.ts\nvar isBrowser = typeof window !== \"undefined\";\nvar explicitKeys = [\n \"__key\",\n \"__init\",\n \"__shim\",\n \"__original\",\n \"__index\",\n \"__prevKey\"\n];\nfunction token() {\n return Math.random().toString(36).substring(2, 15);\n}\nfunction setify(items) {\n return items instanceof Set ? items : new Set(items);\n}\nfunction dedupe(arr1, arr2) {\n const original = arr1 instanceof Set ? arr1 : new Set(arr1);\n if (arr2)\n arr2.forEach((item) => original.add(item));\n return [...original];\n}\nfunction has(obj, property) {\n return Object.prototype.hasOwnProperty.call(obj, property);\n}\nfunction eq(valA, valB, deep = true, explicit = [\"__key\"]) {\n if (valA === valB)\n return true;\n if (typeof valB === \"object\" && typeof valA === \"object\") {\n if (valA instanceof Map)\n return false;\n if (valA instanceof Set)\n return false;\n if (valA instanceof Date && valB instanceof Date)\n return valA.getTime() === valB.getTime();\n if (valA instanceof RegExp && valB instanceof RegExp)\n return eqRegExp(valA, valB);\n if (valA === null || valB === null)\n return false;\n if (Object.keys(valA).length !== Object.keys(valB).length)\n return false;\n for (const k of explicit) {\n if ((k in valA || k in valB) && valA[k] !== valB[k])\n return false;\n }\n for (const key in valA) {\n if (!(key in valB))\n return false;\n if (valA[key] !== valB[key] && !deep)\n return false;\n if (deep && !eq(valA[key], valB[key], deep, explicit))\n return false;\n }\n return true;\n }\n return false;\n}\nfunction eqRegExp(x, y) {\n return x.source === y.source && x.flags.split(\"\").sort().join(\"\") === y.flags.split(\"\").sort().join(\"\");\n}\nfunction empty(value) {\n const type = typeof value;\n if (type === \"number\")\n return false;\n if (value === void 0)\n return true;\n if (type === \"string\") {\n return value === \"\";\n }\n if (type === \"object\") {\n if (value === null)\n return true;\n for (const _i in value)\n return false;\n if (value instanceof RegExp)\n return false;\n if (value instanceof Date)\n return false;\n return true;\n }\n return false;\n}\nfunction escapeExp(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\nfunction regexForFormat(format) {\n const escaped = `^${escapeExp(format)}$`;\n const formats = {\n MM: \"(0[1-9]|1[012])\",\n M: \"([1-9]|1[012])\",\n DD: \"([012][0-9]|3[01])\",\n D: \"([012]?[0-9]|3[01])\",\n YYYY: \"\\\\d{4}\",\n YY: \"\\\\d{2}\"\n };\n const tokens = Object.keys(formats);\n return new RegExp(\n tokens.reduce((regex, format2) => {\n return regex.replace(format2, formats[format2]);\n }, escaped)\n );\n}\nfunction nodeType(type) {\n const t = type.toLowerCase();\n if (t === \"list\")\n return \"list\";\n if (t === \"group\")\n return \"group\";\n return \"input\";\n}\nfunction isRecord(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction isObject(o) {\n return isRecord(o) || Array.isArray(o);\n}\nfunction isPojo(o) {\n if (isRecord(o) === false)\n return false;\n if (o.__FKNode__ || o.__POJO__ === false)\n return false;\n const ctor = o.constructor;\n if (ctor === void 0)\n return true;\n const prot = ctor.prototype;\n if (isRecord(prot) === false)\n return false;\n if (prot.hasOwnProperty(\"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nvar extend = /* @__NO_SIDE_EFFECTS__ */ (original, additional, extendArrays = false, ignoreUndefined = false) => {\n if (additional === null)\n return null;\n const merged = {};\n if (typeof additional === \"string\")\n return additional;\n for (const key in original) {\n if (has(additional, key) && (additional[key] !== void 0 || !ignoreUndefined)) {\n if (extendArrays && Array.isArray(original[key]) && Array.isArray(additional[key])) {\n merged[key] = original[key].concat(additional[key]);\n continue;\n }\n if (additional[key] === void 0) {\n continue;\n }\n if (isPojo(original[key]) && isPojo(additional[key])) {\n merged[key] = /* @__PURE__ */ extend(\n original[key],\n additional[key],\n extendArrays,\n ignoreUndefined\n );\n } else {\n merged[key] = additional[key];\n }\n } else {\n merged[key] = original[key];\n }\n }\n for (const key in additional) {\n if (!has(merged, key) && additional[key] !== void 0) {\n merged[key] = additional[key];\n }\n }\n return merged;\n};\nfunction isQuotedString(str) {\n if (str[0] !== '\"' && str[0] !== \"'\")\n return false;\n if (str[0] !== str[str.length - 1])\n return false;\n const quoteType = str[0];\n for (let p = 1; p < str.length; p++) {\n if (str[p] === quoteType && (p === 1 || str[p - 1] !== \"\\\\\") && p !== str.length - 1) {\n return false;\n }\n }\n return true;\n}\nfunction rmEscapes(str) {\n if (!str.length)\n return \"\";\n let clean = \"\";\n let lastChar = \"\";\n for (let p = 0; p < str.length; p++) {\n const char = str.charAt(p);\n if (char !== \"\\\\\" || lastChar === \"\\\\\") {\n clean += char;\n }\n lastChar = char;\n }\n return clean;\n}\nfunction assignDeep(a, b) {\n for (const key in a) {\n if (has(b, key) && a[key] !== b[key] && !(isPojo(a[key]) && isPojo(b[key]))) {\n a[key] = b[key];\n } else if (isPojo(a[key]) && isPojo(b[key])) {\n assignDeep(a[key], b[key]);\n }\n }\n for (const key in b) {\n if (!has(a, key)) {\n a[key] = b[key];\n }\n }\n return a;\n}\nfunction nodeProps(...sets) {\n return sets.reduce((valid, props) => {\n const { value, name, modelValue, config, plugins, ...validProps } = props;\n return Object.assign(valid, validProps);\n }, {});\n}\nfunction parseArgs(str) {\n const args = [];\n let arg = \"\";\n let depth = 0;\n let quote = \"\";\n let lastChar = \"\";\n for (let p = 0; p < str.length; p++) {\n const char = str.charAt(p);\n if (char === quote && lastChar !== \"\\\\\") {\n quote = \"\";\n } else if ((char === \"'\" || char === '\"') && !quote && lastChar !== \"\\\\\") {\n quote = char;\n } else if (char === \"(\" && !quote) {\n depth++;\n } else if (char === \")\" && !quote) {\n depth--;\n }\n if (char === \",\" && !quote && depth === 0) {\n args.push(arg);\n arg = \"\";\n } else if (char !== \" \" || quote) {\n arg += char;\n }\n lastChar = char;\n }\n if (arg) {\n args.push(arg);\n }\n return args;\n}\nfunction except(obj, toRemove) {\n const clean = {};\n const exps = toRemove.filter((n) => n instanceof RegExp);\n const keysToRemove = new Set(toRemove);\n for (const key in obj) {\n if (!keysToRemove.has(key) && !exps.some((exp) => exp.test(key))) {\n clean[key] = obj[key];\n }\n }\n return clean;\n}\nfunction only(obj, include) {\n const clean = {};\n const exps = include.filter((n) => n instanceof RegExp);\n include.forEach((key) => {\n if (!(key instanceof RegExp)) {\n clean[key] = obj[key];\n }\n });\n Object.keys(obj).forEach((key) => {\n if (exps.some((exp) => exp.test(key))) {\n clean[key] = obj[key];\n }\n });\n return clean;\n}\nfunction camel(str) {\n return str.replace(\n /-([a-z0-9])/gi,\n (_s, g) => g.toUpperCase()\n );\n}\nfunction kebab(str) {\n return str.replace(\n /([a-z0-9])([A-Z])/g,\n (_s, trail, cap) => trail + \"-\" + cap.toLowerCase()\n ).replace(\" \", \"-\").toLowerCase();\n}\nfunction shallowClone(obj, explicit = explicitKeys) {\n if (obj !== null && typeof obj === \"object\") {\n let returnObject;\n if (Array.isArray(obj))\n returnObject = [...obj];\n else if (isPojo(obj))\n returnObject = { ...obj };\n if (returnObject) {\n applyExplicit(obj, returnObject, explicit);\n return returnObject;\n }\n }\n return obj;\n}\nfunction clone(obj, explicit = explicitKeys) {\n if (obj === null || obj instanceof RegExp || obj instanceof Date || obj instanceof Map || obj instanceof Set || typeof File === \"function\" && obj instanceof File)\n return obj;\n let returnObject;\n if (Array.isArray(obj)) {\n returnObject = obj.map((value) => {\n if (typeof value === \"object\")\n return clone(value, explicit);\n return value;\n });\n } else {\n returnObject = Object.keys(obj).reduce((newObj, key) => {\n newObj[key] = typeof obj[key] === \"object\" ? clone(obj[key], explicit) : obj[key];\n return newObj;\n }, {});\n }\n for (const key of explicit) {\n if (key in obj) {\n Object.defineProperty(returnObject, key, {\n enumerable: false,\n value: obj[key]\n });\n }\n }\n return returnObject;\n}\nfunction cloneAny(obj) {\n return typeof obj === \"object\" ? clone(obj) : obj;\n}\nfunction getAt(obj, addr) {\n if (!obj || typeof obj !== \"object\")\n return null;\n const segments = addr.split(\".\");\n let o = obj;\n for (const i in segments) {\n const segment = segments[i];\n if (has(o, segment)) {\n o = o[segment];\n }\n if (+i === segments.length - 1)\n return o;\n if (!o || typeof o !== \"object\")\n return null;\n }\n return null;\n}\nfunction undefine(value) {\n return value !== void 0 && value !== \"false\" && value !== false ? true : void 0;\n}\nfunction init(obj) {\n return !Object.isFrozen(obj) ? Object.defineProperty(obj, \"__init\", {\n enumerable: false,\n value: true\n }) : obj;\n}\nfunction slugify(str) {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\").toLowerCase().replace(/[^a-z0-9]/g, \" \").trim().replace(/\\s+/g, \"-\");\n}\nfunction spread(obj, explicit = explicitKeys) {\n if (obj && typeof obj === \"object\") {\n if (obj instanceof RegExp)\n return obj;\n if (obj instanceof Date)\n return obj;\n let spread2;\n if (Array.isArray(obj)) {\n spread2 = [...obj];\n } else {\n spread2 = { ...obj };\n }\n return applyExplicit(\n obj,\n spread2,\n explicit\n );\n }\n return obj;\n}\nfunction applyExplicit(original, obj, explicit) {\n for (const key of explicit) {\n if (key in original) {\n Object.defineProperty(obj, key, {\n enumerable: false,\n value: original[key]\n });\n }\n }\n return obj;\n}\nfunction whenAvailable(childId, callback, root) {\n if (!isBrowser)\n return;\n if (!root)\n root = document;\n const el = root.getElementById(childId);\n if (el)\n return callback(el);\n const observer = new MutationObserver(() => {\n const el2 = root?.getElementById(childId);\n if (el2) {\n observer?.disconnect();\n callback(el2);\n }\n });\n observer.observe(root, { childList: true, subtree: true });\n}\nfunction oncePerTick(fn) {\n let called = false;\n return (...args) => {\n if (called)\n return;\n called = true;\n queueMicrotask(() => called = false);\n return fn(...args);\n };\n}\nfunction boolGetter(value) {\n if (value === \"false\" || value === false)\n return void 0;\n return true;\n}\n\nexport { assignDeep, boolGetter, camel, clone, cloneAny, dedupe, empty, eq, eqRegExp, escapeExp, except, extend, getAt, has, init, isObject, isPojo, isQuotedString, isRecord, kebab, nodeProps, nodeType, oncePerTick, only, parseArgs, regexForFormat, rmEscapes, setify, shallowClone, slugify, spread, token, undefine, whenAvailable };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=index.mjs.map","import { token, cloneAny, empty, isObject, init, eq, clone, camel, extend as extend$1, undefine, has, kebab, dedupe, parseArgs, getAt, isQuotedString, rmEscapes, slugify, boolGetter, isRecord } from '@formkit/utils';\n\n// packages/core/src/dispatcher.ts\nfunction createDispatcher() {\n const middleware = [];\n let currentIndex = 0;\n const use2 = (dispatchable) => middleware.push(dispatchable);\n const dispatch = (payload) => {\n const current = middleware[currentIndex];\n if (typeof current === \"function\") {\n return current(payload, (explicitPayload) => {\n currentIndex++;\n return dispatch(explicitPayload);\n });\n }\n currentIndex = 0;\n return payload;\n };\n use2.dispatch = dispatch;\n use2.unshift = (dispatchable) => middleware.unshift(dispatchable);\n use2.remove = (dispatchable) => {\n const index = middleware.indexOf(dispatchable);\n if (index > -1)\n middleware.splice(index, 1);\n };\n return use2;\n}\nfunction createEmitter() {\n const listeners = /* @__PURE__ */ new Map();\n const receipts2 = /* @__PURE__ */ new Map();\n let buffer = void 0;\n const emitter = (node, event) => {\n if (buffer) {\n buffer.set(event.name, [node, event]);\n return;\n }\n if (listeners.has(event.name)) {\n listeners.get(event.name).forEach((wrapper) => {\n if (event.origin === node || wrapper.modifiers.includes(\"deep\")) {\n wrapper.listener(event);\n }\n });\n }\n if (event.bubble) {\n node.bubble(event);\n }\n };\n emitter.flush = () => {\n listeners.clear();\n receipts2.clear();\n buffer?.clear();\n };\n emitter.on = (eventName, listener, pos = \"push\") => {\n const [event, ...modifiers] = eventName.split(\".\");\n const receipt = listener.receipt || token();\n const wrapper = {\n modifiers,\n event,\n listener,\n receipt\n };\n listeners.has(event) ? listeners.get(event)[pos](wrapper) : listeners.set(event, [wrapper]);\n receipts2.has(receipt) ? receipts2.get(receipt)[pos](event) : receipts2.set(receipt, [event]);\n return receipt;\n };\n emitter.off = (receipt) => {\n if (receipts2.has(receipt)) {\n receipts2.get(receipt)?.forEach((event) => {\n const eventListeners = listeners.get(event);\n if (Array.isArray(eventListeners)) {\n listeners.set(\n event,\n eventListeners.filter((wrapper) => wrapper.receipt !== receipt)\n );\n }\n });\n receipts2.delete(receipt);\n }\n };\n emitter.pause = (node) => {\n if (!buffer)\n buffer = /* @__PURE__ */ new Map();\n if (node) {\n node.walk((child) => child._e.pause());\n }\n };\n emitter.play = (node) => {\n if (!buffer)\n return;\n const events = buffer;\n buffer = void 0;\n events.forEach(([node2, event]) => emitter(node2, event));\n if (node) {\n node.walk((child) => child._e.play());\n }\n };\n return emitter;\n}\nfunction emit(node, context, name, payload, bubble2 = true, meta) {\n context._e(node, {\n payload,\n name,\n bubble: bubble2,\n origin: node,\n meta\n });\n return node;\n}\nfunction bubble(node, _context, event) {\n if (isNode(node.parent)) {\n node.parent._e(node.parent, event);\n }\n return node;\n}\nfunction on(_node, context, name, listener, pos) {\n return context._e.on(name, listener, pos);\n}\nfunction off(node, context, receipt) {\n context._e.off(receipt);\n return node;\n}\n\n// packages/core/src/errors.ts\nvar errorHandler = createDispatcher();\nerrorHandler((error2, next) => {\n if (!error2.message)\n error2.message = String(`E${error2.code}`);\n return next(error2);\n});\nvar warningHandler = createDispatcher();\nwarningHandler((warning, next) => {\n if (!warning.message)\n warning.message = String(`W${warning.code}`);\n const result = next(warning);\n if (console && typeof console.warn === \"function\")\n console.warn(result.message);\n return result;\n});\nfunction warn(code, data = {}) {\n warningHandler.dispatch({ code, data });\n}\nfunction error(code, data = {}) {\n throw Error(errorHandler.dispatch({ code, data }).message);\n}\nfunction createMessage(conf, node) {\n const m = {\n blocking: false,\n key: token(),\n meta: {},\n type: \"state\",\n visible: true,\n ...conf\n };\n if (node && m.value && m.meta.localize !== false) {\n m.value = node.t(m);\n m.meta.locale = node.config.locale;\n }\n return m;\n}\nvar storeTraps = {\n apply: applyMessages,\n set: setMessage,\n remove: removeMessage,\n filter: filterMessages,\n reduce: reduceMessages,\n release: releaseBuffer,\n touch: touchMessages\n};\nfunction createStore(_buffer = false) {\n const messages = {};\n let node;\n let buffer = _buffer;\n let _b = [];\n const _m = /* @__PURE__ */ new Map();\n let _r = void 0;\n const store = new Proxy(messages, {\n get(...args) {\n const [_target, property] = args;\n if (property === \"buffer\")\n return buffer;\n if (property === \"_b\")\n return _b;\n if (property === \"_m\")\n return _m;\n if (property === \"_r\")\n return _r;\n if (has(storeTraps, property)) {\n return storeTraps[property].bind(\n null,\n messages,\n store,\n node\n );\n }\n return Reflect.get(...args);\n },\n set(_t, prop, value) {\n if (prop === \"_n\") {\n node = value;\n if (_r === \"__n\")\n releaseMissed(node, store);\n return true;\n } else if (prop === \"_b\") {\n _b = value;\n return true;\n } else if (prop === \"buffer\") {\n buffer = value;\n return true;\n } else if (prop === \"_r\") {\n _r = value;\n return true;\n }\n error(101, node);\n return false;\n }\n });\n return store;\n}\nfunction setMessage(messageStore, store, node, message) {\n if (store.buffer) {\n store._b.push([[message]]);\n return store;\n }\n if (messageStore[message.key] !== message) {\n if (typeof message.value === \"string\" && message.meta.localize !== false) {\n const previous = message.value;\n message.value = node.t(message);\n if (message.value !== previous) {\n message.meta.locale = node.props.locale;\n }\n }\n const e = `message-${has(messageStore, message.key) ? \"updated\" : \"added\"}`;\n messageStore[message.key] = Object.freeze(\n node.hook.message.dispatch(message)\n );\n node.emit(e, message);\n }\n return store;\n}\nfunction touchMessages(messageStore, store) {\n for (const key in messageStore) {\n const message = { ...messageStore[key] };\n store.set(message);\n }\n}\nfunction removeMessage(messageStore, store, node, key) {\n if (has(messageStore, key)) {\n const message = messageStore[key];\n delete messageStore[key];\n node.emit(\"message-removed\", message);\n }\n if (store.buffer === true) {\n store._b = store._b.filter((buffered) => {\n buffered[0] = buffered[0].filter((m) => m.key !== key);\n return buffered[1] || buffered[0].length;\n });\n }\n return store;\n}\nfunction filterMessages(messageStore, store, node, callback, type) {\n for (const key in messageStore) {\n const message = messageStore[key];\n if ((!type || message.type === type) && !callback(message)) {\n removeMessage(messageStore, store, node, key);\n }\n }\n}\nfunction reduceMessages(messageStore, _store, _node, reducer, accumulator) {\n for (const key in messageStore) {\n const message = messageStore[key];\n accumulator = reducer(accumulator, message);\n }\n return accumulator;\n}\nfunction applyMessages(_messageStore, store, node, messages, clear) {\n if (Array.isArray(messages)) {\n if (store.buffer) {\n store._b.push([messages, clear]);\n return;\n }\n const applied = new Set(\n messages.map((message) => {\n store.set(message);\n return message.key;\n })\n );\n if (typeof clear === \"string\") {\n store.filter(\n (message) => message.type !== clear || applied.has(message.key)\n );\n } else if (typeof clear === \"function\") {\n store.filter((message) => !clear(message) || applied.has(message.key));\n }\n } else {\n for (const address in messages) {\n const child = node.at(address);\n if (child) {\n child.store.apply(messages[address], clear);\n } else {\n missed(node, store, address, messages[address], clear);\n }\n }\n }\n}\nfunction createMessages(node, ...errors) {\n const sourceKey = `${node.name}-set`;\n const make = (error2) => /* @__PURE__ */ createMessage({\n key: slugify(error2),\n type: \"error\",\n value: error2,\n meta: { source: sourceKey, autoClear: true }\n });\n return errors.filter((m) => !!m).map((errorSet) => {\n if (typeof errorSet === \"string\")\n errorSet = [errorSet];\n if (Array.isArray(errorSet)) {\n return errorSet.map((error2) => make(error2));\n } else {\n const errors2 = {};\n for (const key in errorSet) {\n if (Array.isArray(errorSet[key])) {\n errors2[key] = errorSet[key].map(\n (error2) => make(error2)\n );\n } else {\n errors2[key] = [make(errorSet[key])];\n }\n }\n return errors2;\n }\n });\n}\nfunction missed(node, store, address, messages, clear) {\n const misses = store._m;\n if (!misses.has(address))\n misses.set(address, []);\n if (!store._r)\n store._r = releaseMissed(node, store);\n misses.get(address)?.push([messages, clear]);\n}\nfunction releaseMissed(node, store) {\n return node.on(\n \"child.deep\",\n ({ payload: child }) => {\n store._m.forEach((misses, address) => {\n if (node.at(address) === child) {\n misses.forEach(([messages, clear]) => {\n child.store.apply(messages, clear);\n });\n store._m.delete(address);\n }\n });\n if (store._m.size === 0 && store._r) {\n node.off(store._r);\n store._r = void 0;\n }\n }\n );\n}\nfunction releaseBuffer(_messageStore, store) {\n store.buffer = false;\n store._b.forEach(([messages, clear]) => store.apply(messages, clear));\n store._b = [];\n}\nfunction createLedger() {\n const ledger = {};\n let n;\n return {\n count: (...args) => createCounter(n, ledger, ...args),\n init(node) {\n n = node;\n node.on(\"message-added.deep\", add(ledger, 1));\n node.on(\"message-removed.deep\", add(ledger, -1));\n },\n merge: (child) => merge(n, ledger, child),\n settled(counterName) {\n return has(ledger, counterName) ? ledger[counterName].promise : Promise.resolve();\n },\n unmerge: (child) => merge(n, ledger, child, true),\n value(counterName) {\n return has(ledger, counterName) ? ledger[counterName].count : 0;\n }\n };\n}\nfunction createCounter(node, ledger, counterName, condition, increment = 0) {\n condition = parseCondition(condition || counterName);\n if (!has(ledger, counterName)) {\n const counter = {\n condition,\n count: 0,\n name: counterName,\n node,\n promise: Promise.resolve(),\n resolve: () => {\n }\n // eslint-disable-line @typescript-eslint/no-empty-function\n };\n ledger[counterName] = counter;\n increment = node.store.reduce(\n (sum, m) => sum + counter.condition(m) * 1,\n increment\n );\n node.each((child) => {\n child.ledger.count(counter.name, counter.condition);\n increment += child.ledger.value(counter.name);\n });\n }\n return count(ledger[counterName], increment).promise;\n}\nfunction parseCondition(condition) {\n if (typeof condition === \"function\") {\n return condition;\n }\n return (m) => m.type === condition;\n}\nfunction count(counter, increment) {\n const initial = counter.count;\n const post = counter.count + increment;\n counter.count = post;\n if (initial === 0 && post !== 0) {\n counter.node.emit(`unsettled:${counter.name}`, counter.count, false);\n counter.promise = new Promise((r) => counter.resolve = r);\n } else if (initial !== 0 && post === 0) {\n counter.node.emit(`settled:${counter.name}`, counter.count, false);\n counter.resolve();\n }\n counter.node.emit(`count:${counter.name}`, counter.count, false);\n return counter;\n}\nfunction add(ledger, delta) {\n return (e) => {\n for (const name in ledger) {\n const counter = ledger[name];\n if (counter.condition(e.payload)) {\n count(counter, delta);\n }\n }\n };\n}\nfunction merge(parent, ledger, child, remove = false) {\n const originalParent = parent;\n for (const key in ledger) {\n const condition = ledger[key].condition;\n if (!remove)\n child.ledger.count(key, condition);\n const increment = child.ledger.value(key) * (remove ? -1 : 1);\n if (!parent)\n continue;\n do {\n parent.ledger.count(key, condition, increment);\n parent = parent.parent;\n } while (parent);\n parent = originalParent;\n }\n}\n\n// packages/core/src/registry.ts\nvar registry = /* @__PURE__ */ new Map();\nvar reflected = /* @__PURE__ */ new Map();\nvar emit2 = createEmitter();\nvar receipts = [];\nfunction register(node) {\n if (node.props.id) {\n registry.set(node.props.id, node);\n reflected.set(node, node.props.id);\n emit2(node, {\n payload: node,\n name: node.props.id,\n bubble: false,\n origin: node\n });\n }\n}\nfunction deregister(node) {\n if (reflected.has(node)) {\n const id = reflected.get(node);\n reflected.delete(node);\n registry.delete(id);\n emit2(node, {\n payload: null,\n name: id,\n bubble: false,\n origin: node\n });\n }\n}\nfunction getNode(id) {\n return registry.get(id);\n}\nfunction resetRegistry() {\n registry.forEach((node) => {\n deregister(node);\n });\n receipts.forEach((receipt) => emit2.off(receipt));\n}\nfunction watchRegistry(id, callback) {\n const receipt = emit2.on(id, callback);\n receipts.push(receipt);\n return receipt;\n}\nfunction stopWatch(receipt) {\n emit2.off(receipt);\n}\n\n// packages/core/src/config.ts\nfunction configChange(node, prop, value) {\n let usingFallback = true;\n !(prop in node.config._t) ? node.emit(`config:${prop}`, value, false) : usingFallback = false;\n if (!(prop in node.props)) {\n node.emit(\"prop\", { prop, value });\n node.emit(`prop:${prop}`, value);\n }\n return usingFallback;\n}\nfunction createConfig(options = {}) {\n const nodes = /* @__PURE__ */ new Set();\n const target = {\n ...options,\n ...{\n _add: (node) => nodes.add(node),\n _rm: (node) => nodes.delete(node)\n }\n };\n const rootConfig = new Proxy(target, {\n set(t, prop, value, r) {\n if (typeof prop === \"string\") {\n nodes.forEach((node) => configChange(node, prop, value));\n }\n return Reflect.set(t, prop, value, r);\n }\n });\n return rootConfig;\n}\n\n// packages/core/src/submitForm.ts\nfunction submitForm(id, root) {\n const formElement = (root || document).getElementById(id);\n if (formElement instanceof HTMLFormElement) {\n const event = new Event(\"submit\", { cancelable: true, bubbles: true });\n formElement.dispatchEvent(event);\n return;\n }\n warn(151, id);\n}\nfunction clearState(node) {\n const clear = (n) => {\n for (const key in n.store) {\n const message = n.store[key];\n if (message.type === \"error\" || message.type === \"ui\" && key === \"incomplete\") {\n n.store.remove(key);\n } else if (message.type === \"state\") {\n n.store.set({ ...message, value: false });\n }\n }\n };\n clear(node);\n node.walk(clear);\n}\nfunction reset(id, resetTo) {\n const node = typeof id === \"string\" ? getNode(id) : id;\n if (node) {\n const initial = (n) => cloneAny(n.props.initial) || (n.type === \"group\" ? {} : n.type === \"list\" ? [] : void 0);\n node._e.pause(node);\n const resetValue2 = cloneAny(resetTo);\n if (resetTo && !empty(resetTo)) {\n node.props.initial = isObject(resetValue2) ? init(resetValue2) : resetValue2;\n node.props._init = node.props.initial;\n }\n node.input(initial(node), false);\n node.walk((child) => {\n if (child.type === \"list\" && child.sync)\n return;\n child.input(initial(child), false);\n });\n node.input(\n empty(resetValue2) && resetValue2 ? resetValue2 : initial(node),\n false\n );\n const isDeepReset = node.type !== \"input\" && resetTo && !empty(resetTo) && isObject(resetTo);\n if (isDeepReset) {\n node.walk((child) => {\n child.props.initial = isObject(child.value) ? init(child.value) : child.value;\n child.props._init = child.props.initial;\n });\n }\n node._e.play(node);\n clearState(node);\n node.emit(\"reset\", node);\n return node;\n }\n warn(152, id);\n return;\n}\n\n// packages/core/src/node.ts\nvar defaultConfig = {\n delimiter: \".\",\n delay: 0,\n locale: \"en\",\n rootClasses: (key) => ({ [`formkit-${kebab(key)}`]: true })\n};\nvar useIndex = Symbol(\"index\");\nvar valueRemoved = Symbol(\"removed\");\nvar valueMoved = Symbol(\"moved\");\nvar valueInserted = Symbol(\"inserted\");\nfunction isList(arg) {\n return arg.type === \"list\" && Array.isArray(arg._value);\n}\nfunction isNode(node) {\n return node && typeof node === \"object\" && node.__FKNode__ === true;\n}\nvar invalidSetter = (node, _context, property) => {\n error(102, [node, property]);\n};\nvar traps = {\n _c: trap(getContext, invalidSetter, false),\n add: trap(addChild),\n addProps: trap(addProps),\n address: trap(getAddress, invalidSetter, false),\n at: trap(getNode2),\n bubble: trap(bubble),\n clearErrors: trap(clearErrors),\n calm: trap(calm),\n config: trap(false),\n define: trap(define),\n disturb: trap(disturb),\n destroy: trap(destroy),\n extend: trap(extend),\n hydrate: trap(hydrate),\n index: trap(getIndex, setIndex, false),\n input: trap(input),\n each: trap(eachChild),\n emit: trap(emit),\n find: trap(find),\n on: trap(on),\n off: trap(off),\n parent: trap(false, setParent),\n plugins: trap(false),\n remove: trap(removeChild),\n root: trap(getRoot, invalidSetter, false),\n reset: trap(resetValue),\n resetConfig: trap(resetConfig),\n setErrors: trap(setErrors),\n submit: trap(submit),\n t: trap(text),\n use: trap(use),\n name: trap(getName, false, false),\n walk: trap(walkTree)\n};\nfunction createTraps() {\n return new Map(Object.entries(traps));\n}\nfunction trap(getter, setter, curryGetter = true) {\n return {\n get: getter ? (node, context) => curryGetter ? (...args) => getter(node, context, ...args) : getter(node, context) : false,\n set: setter !== void 0 ? setter : invalidSetter.bind(null)\n };\n}\nfunction createHooks() {\n const hooks = /* @__PURE__ */ new Map();\n return new Proxy(hooks, {\n get(_, property) {\n if (!hooks.has(property)) {\n hooks.set(property, createDispatcher());\n }\n return hooks.get(property);\n }\n });\n}\nvar nameCount = 0;\nvar idCount = 0;\nfunction resetCount() {\n nameCount = 0;\n idCount = 0;\n}\nfunction names(children) {\n return children.reduce(\n (named, child) => Object.assign(named, { [child.name]: child }),\n {}\n );\n}\nfunction createName(options) {\n if (options.parent?.type === \"list\")\n return useIndex;\n return options.name || `${options.props?.type || \"input\"}_${++nameCount}`;\n}\nfunction createValue(options) {\n if (options.type === \"group\") {\n return init(\n options.value && typeof options.value === \"object\" && !Array.isArray(options.value) ? options.value : {}\n );\n } else if (options.type === \"list\") {\n return init(Array.isArray(options.value) ? options.value : []);\n }\n return options.value;\n}\nfunction input(node, context, value, async = true) {\n context._value = validateInput(node, node.hook.input.dispatch(value));\n node.emit(\"input\", context._value);\n if (node.isCreated && node.type === \"input\" && eq(context._value, context.value) && !node.props.mergeStrategy) {\n node.emit(\"commitRaw\", context.value);\n return context.settled;\n }\n if (context.isSettled)\n node.disturb();\n if (async) {\n if (context._tmo)\n clearTimeout(context._tmo);\n context._tmo = setTimeout(\n commit,\n node.props.delay,\n node,\n context\n );\n } else {\n commit(node, context);\n }\n return context.settled;\n}\nfunction validateInput(node, value) {\n switch (node.type) {\n case \"input\":\n break;\n case \"group\":\n if (!value || typeof value !== \"object\")\n error(107, [node, value]);\n break;\n case \"list\":\n if (!Array.isArray(value))\n error(108, [node, value]);\n break;\n }\n return value;\n}\nfunction commit(node, context, calm2 = true, hydrate2 = true) {\n context._value = context.value = node.hook.commit.dispatch(context._value);\n if (node.type !== \"input\" && hydrate2)\n node.hydrate();\n node.emit(\"commitRaw\", context.value);\n node.emit(\"commit\", context.value);\n if (calm2)\n node.calm();\n}\nfunction partial(context, { name, value, from }) {\n if (Object.isFrozen(context._value))\n return;\n if (isList(context)) {\n const insert = value === valueRemoved ? [] : value === valueMoved && typeof from === \"number\" ? context._value.splice(from, 1) : [value];\n context._value.splice(\n name,\n value === valueMoved || from === valueInserted ? 0 : 1,\n ...insert\n );\n return;\n }\n if (value !== valueRemoved) {\n context._value[name] = value;\n } else {\n delete context._value[name];\n }\n}\nfunction hydrate(node, context) {\n const _value = context._value;\n if (node.type === \"list\" && node.sync)\n syncListNodes(node, context);\n context.children.forEach((child) => {\n if (typeof _value !== \"object\")\n return;\n if (child.name in _value) {\n const childValue = child.type !== \"input\" || _value[child.name] && typeof _value[child.name] === \"object\" ? init(_value[child.name]) : _value[child.name];\n if (!child.isSettled || (!isObject(childValue) || child.props.mergeStrategy) && eq(childValue, child._value))\n return;\n child.input(childValue, false);\n } else {\n if (node.type !== \"list\" || typeof child.name === \"number\") {\n partial(context, { name: child.name, value: child.value });\n }\n if (!_value.__init) {\n if (child.type === \"group\")\n child.input({}, false);\n else if (child.type === \"list\")\n child.input([], false);\n else\n child.input(void 0, false);\n }\n }\n });\n return node;\n}\nfunction syncListNodes(node, context) {\n const _value = node._value;\n if (!Array.isArray(_value))\n return;\n const newChildren = [];\n const unused = new Set(context.children);\n const placeholderValues = /* @__PURE__ */ new Map();\n _value.forEach((value, i) => {\n if (context.children[i] && context.children[i]._value === value) {\n newChildren.push(context.children[i]);\n unused.delete(context.children[i]);\n } else {\n newChildren.push(null);\n const indexes = placeholderValues.get(value) || [];\n indexes.push(i);\n placeholderValues.set(value, indexes);\n }\n });\n if (unused.size && placeholderValues.size) {\n unused.forEach((child) => {\n if (placeholderValues.has(child._value)) {\n const indexes = placeholderValues.get(child._value);\n const index = indexes.shift();\n newChildren[index] = child;\n unused.delete(child);\n if (!indexes.length)\n placeholderValues.delete(child._value);\n }\n });\n }\n const emptyIndexes = [];\n placeholderValues.forEach((indexes) => {\n emptyIndexes.push(...indexes);\n });\n while (unused.size && emptyIndexes.length) {\n const child = unused.values().next().value;\n const index = emptyIndexes.shift();\n if (index === void 0)\n break;\n newChildren[index] = child;\n unused.delete(child);\n }\n emptyIndexes.forEach((index, value) => {\n newChildren[index] = createPlaceholder({ value });\n });\n if (unused.size) {\n unused.forEach((child) => {\n if (!(\"__FKP\" in child)) {\n const parent = child._c.parent;\n if (!parent || isPlaceholder(parent))\n return;\n parent.ledger.unmerge(child);\n child._c.parent = null;\n child.destroy();\n }\n });\n }\n context.children = newChildren;\n}\nfunction disturb(node, context) {\n if (context._d <= 0) {\n context.isSettled = false;\n node.emit(\"settled\", false, false);\n context.settled = new Promise((resolve) => {\n context._resolve = resolve;\n });\n if (node.parent)\n node.parent?.disturb();\n }\n context._d++;\n return node;\n}\nfunction calm(node, context, value) {\n if (value !== void 0 && node.type !== \"input\") {\n partial(context, value);\n const shouldHydrate = !!(node.config.mergeStrategy && node.config.mergeStrategy[value.name]);\n return commit(node, context, true, shouldHydrate);\n }\n if (context._d > 0)\n context._d--;\n if (context._d === 0) {\n context.isSettled = true;\n node.emit(\"settled\", true, false);\n if (node.parent)\n node.parent?.calm({ name: node.name, value: context.value });\n if (context._resolve)\n context._resolve(context.value);\n }\n}\nfunction destroy(node, context) {\n node.emit(\"destroying\", node);\n node.store.filter(() => false);\n if (node.parent) {\n node.parent.remove(node);\n }\n deregister(node);\n node.emit(\"destroyed\", node);\n context._e.flush();\n context._value = context.value = void 0;\n for (const property in context.context) {\n delete context.context[property];\n }\n context.plugins.clear();\n context.context = null;\n}\nfunction define(node, context, definition) {\n context.type = definition.type;\n const clonedDef = clone(definition);\n node.props.__propDefs = mergeProps(\n node.props.__propDefs ?? [],\n clonedDef?.props || []\n );\n clonedDef.props = node.props.__propDefs;\n context.props.definition = clonedDef;\n context.value = context._value = createValue({\n type: node.type,\n value: context.value\n });\n if (definition.forceTypeProp) {\n if (node.props.type)\n node.props.originalType = node.props.type;\n context.props.type = definition.forceTypeProp;\n }\n if (definition.family) {\n context.props.family = definition.family;\n }\n if (definition.features) {\n definition.features.forEach((feature) => feature(node));\n }\n if (definition.props) {\n node.addProps(definition.props);\n }\n node.emit(\"defined\", definition);\n}\nfunction addProps(node, context, props) {\n const propNames = Array.isArray(props) ? props : Object.keys(props);\n const defaults = !Array.isArray(props) ? propNames.reduce((defaults2, name) => {\n if (\"default\" in props[name]) {\n defaults2[name] = props[name].default;\n }\n return defaults2;\n }, {}) : {};\n if (node.props.attrs) {\n const attrs = { ...node.props.attrs };\n node.props._emit = false;\n for (const attr in attrs) {\n const camelName = camel(attr);\n if (propNames.includes(camelName)) {\n node.props[camelName] = attrs[attr];\n delete attrs[attr];\n }\n }\n if (!Array.isArray(props)) {\n propNames.forEach((prop) => {\n if (\"default\" in props[prop] && node.props[prop] === void 0) {\n node.props[prop] = defaults[prop];\n }\n });\n }\n const initial = cloneAny(context._value);\n node.props.initial = node.type !== \"input\" ? init(initial) : initial;\n node.props._emit = true;\n node.props.attrs = attrs;\n }\n const mergedProps = mergeProps(node.props.__propDefs ?? [], props);\n if (node.props.definition) {\n node.props.definition.props = mergedProps;\n }\n node.props.__propDefs = mergedProps;\n node.emit(\"added-props\", props);\n return node;\n}\nfunction toPropsObj(props) {\n return !Array.isArray(props) ? props : props.reduce((props2, prop) => {\n props2[prop] = {};\n return props2;\n }, {});\n}\nfunction mergeProps(props, newProps) {\n if (Array.isArray(props) && Array.isArray(newProps))\n return props.concat(newProps);\n return extend$1(toPropsObj(props), toPropsObj(newProps));\n}\nfunction addChild(parent, parentContext, child, listIndex) {\n if (parent.type === \"input\")\n error(100, parent);\n if (child.parent && child.parent !== parent) {\n child.parent.remove(child);\n }\n if (!parentContext.children.includes(child)) {\n if (listIndex !== void 0 && parent.type === \"list\") {\n const existingNode = parentContext.children[listIndex];\n if (existingNode && \"__FKP\" in existingNode) {\n child._c.uid = existingNode.uid;\n parentContext.children.splice(listIndex, 1, child);\n } else {\n parentContext.children.splice(listIndex, 0, child);\n }\n if (Array.isArray(parent.value) && parent.value.length < parentContext.children.length) {\n parent.disturb().calm({\n name: listIndex,\n value: child.value,\n from: valueInserted\n });\n }\n } else {\n parentContext.children.push(child);\n }\n if (!child.isSettled)\n parent.disturb();\n }\n if (child.parent !== parent) {\n child.parent = parent;\n if (child.parent !== parent) {\n parent.remove(child);\n child.parent.add(child);\n return parent;\n }\n } else {\n child.use(parent.plugins);\n }\n commit(parent, parentContext, false);\n parent.ledger.merge(child);\n parent.emit(\"child\", child);\n return parent;\n}\nfunction setParent(child, context, _property, parent) {\n if (isNode(parent)) {\n if (child.parent && child.parent !== parent) {\n child.parent.remove(child);\n }\n context.parent = parent;\n child.resetConfig();\n !parent.children.includes(child) ? parent.add(child) : child.use(parent.plugins);\n return true;\n }\n if (parent === null) {\n context.parent = null;\n return true;\n }\n return false;\n}\nfunction removeChild(node, context, child) {\n const childIndex = context.children.indexOf(child);\n if (childIndex !== -1) {\n if (child.isSettled)\n node.disturb();\n context.children.splice(childIndex, 1);\n let preserve = undefine(child.props.preserve);\n let parent = child.parent;\n while (preserve === void 0 && parent) {\n preserve = undefine(parent.props.preserve);\n parent = parent.parent;\n }\n if (!preserve) {\n node.calm({\n name: node.type === \"list\" ? childIndex : child.name,\n value: valueRemoved\n });\n } else {\n node.calm();\n }\n child.parent = null;\n child.config._rmn = child;\n }\n node.ledger.unmerge(child);\n node.emit(\"childRemoved\", child);\n return node;\n}\nfunction eachChild(_node, context, callback) {\n context.children.forEach((child) => !(\"__FKP\" in child) && callback(child));\n}\nfunction walkTree(_node, context, callback, stopIfFalse = false, skipSubtreeOnFalse = false) {\n context.children.some((child) => {\n if (\"__FKP\" in child)\n return false;\n const val = callback(child);\n if (stopIfFalse && val === false)\n return true;\n if (skipSubtreeOnFalse && val === false)\n return false;\n return child.walk(callback, stopIfFalse, skipSubtreeOnFalse);\n });\n}\nfunction resetConfig(node, context) {\n const parent = node.parent || void 0;\n context.config = createConfig2(node.config._t, parent);\n node.walk((n) => n.resetConfig());\n}\nfunction use(node, context, plugin, run = true, library = true) {\n if (Array.isArray(plugin) || plugin instanceof Set) {\n plugin.forEach((p) => use(node, context, p));\n return node;\n }\n if (!context.plugins.has(plugin)) {\n if (library && typeof plugin.library === \"function\")\n plugin.library(node);\n if (run && plugin(node) !== false) {\n context.plugins.add(plugin);\n node.children.forEach((child) => child.use(plugin));\n }\n }\n return node;\n}\nfunction setIndex(node, _context, _property, setIndex2) {\n if (isNode(node.parent)) {\n const children = node.parent.children;\n const index = setIndex2 >= children.length ? children.length - 1 : setIndex2 < 0 ? 0 : setIndex2;\n const oldIndex = children.indexOf(node);\n if (oldIndex === -1)\n return false;\n children.splice(oldIndex, 1);\n children.splice(index, 0, node);\n node.parent.children = children;\n if (node.parent.type === \"list\")\n node.parent.disturb().calm({ name: index, value: valueMoved, from: oldIndex });\n return true;\n }\n return false;\n}\nfunction getIndex(node) {\n if (node.parent) {\n const index = [...node.parent.children].indexOf(node);\n return index === -1 ? node.parent.children.length : index;\n }\n return -1;\n}\nfunction getContext(_node, context) {\n return context;\n}\nfunction getName(node, context) {\n if (node.parent?.type === \"list\")\n return node.index;\n return context.name !== useIndex ? context.name : node.index;\n}\nfunction getAddress(node, context) {\n return context.parent ? context.parent.address.concat([node.name]) : [node.name];\n}\nfunction getNode2(node, _context, locator) {\n const address = typeof locator === \"string\" ? locator.split(node.config.delimiter) : locator;\n if (!address.length)\n return void 0;\n const first = address[0];\n let pointer = node.parent;\n if (!pointer) {\n if (String(address[0]) === String(node.name))\n address.shift();\n pointer = node;\n }\n if (first === \"$parent\")\n address.shift();\n while (pointer && address.length) {\n const name = address.shift();\n switch (name) {\n case \"$root\":\n pointer = node.root;\n break;\n case \"$parent\":\n pointer = pointer.parent;\n break;\n case \"$self\":\n pointer = node;\n break;\n default:\n pointer = pointer.children.find(\n (c) => !(\"__FKP\" in c) && String(c.name) === String(name)\n ) || select(pointer, name);\n }\n }\n return pointer || void 0;\n}\nfunction select(node, selector) {\n const matches = String(selector).match(/^(find)\\((.*)\\)$/);\n if (matches) {\n const [, action, argStr] = matches;\n const args = argStr.split(\",\").map((arg) => arg.trim());\n switch (action) {\n case \"find\":\n return node.find(args[0], args[1]);\n default:\n return void 0;\n }\n }\n return void 0;\n}\nfunction find(node, _context, searchTerm, searcher) {\n return bfs(node, searchTerm, searcher);\n}\nfunction bfs(tree, searchValue, searchGoal = \"name\") {\n const search = typeof searchGoal === \"string\" ? (n) => n[searchGoal] == searchValue : searchGoal;\n const stack = [tree];\n while (stack.length) {\n const node = stack.shift();\n if (\"__FKP\" in node)\n continue;\n if (search(node, searchValue))\n return node;\n stack.push(...node.children);\n }\n return void 0;\n}\nfunction getRoot(n) {\n let node = n;\n while (node.parent) {\n node = node.parent;\n }\n return node;\n}\nfunction createConfig2(target = {}, parent) {\n let node = void 0;\n return new Proxy(target, {\n get(...args) {\n const prop = args[1];\n if (prop === \"_t\")\n return target;\n const localValue = Reflect.get(...args);\n if (localValue !== void 0)\n return localValue;\n if (parent) {\n const parentVal = parent.config[prop];\n if (parentVal !== void 0)\n return parentVal;\n }\n if (target.rootConfig && typeof prop === \"string\") {\n const rootValue = target.rootConfig[prop];\n if (rootValue !== void 0)\n return rootValue;\n }\n if (prop === \"delay\" && node?.type === \"input\")\n return 20;\n return defaultConfig[prop];\n },\n set(...args) {\n const prop = args[1];\n const value = args[2];\n if (prop === \"_n\") {\n node = value;\n if (target.rootConfig)\n target.rootConfig._add(node);\n return true;\n }\n if (prop === \"_rmn\") {\n if (target.rootConfig)\n target.rootConfig._rm(node);\n node = void 0;\n return true;\n }\n if (!eq(target[prop], value, false)) {\n const didSet = Reflect.set(...args);\n if (node) {\n node.emit(`config:${prop}`, value, false);\n configChange(node, prop, value);\n node.walk((n) => configChange(n, prop, value), false, true);\n }\n return didSet;\n }\n return true;\n }\n });\n}\nfunction text(node, _context, key, type = \"ui\") {\n const fragment = typeof key === \"string\" ? { key, value: key, type } : key;\n const value = node.hook.text.dispatch(fragment);\n node.emit(\"text\", value, false);\n return value.value;\n}\nfunction submit(node) {\n const name = node.name;\n do {\n if (node.props.isForm === true)\n break;\n if (!node.parent)\n error(106, name);\n node = node.parent;\n } while (node);\n if (node.props.id) {\n submitForm(node.props.id, node.props.__root);\n }\n}\nfunction resetValue(node, _context, value) {\n return reset(node, value);\n}\nfunction setErrors(node, _context, localErrors, childErrors) {\n const sourceKey = `${node.name}-set`;\n const errors = node.hook.setErrors.dispatch({ localErrors, childErrors });\n createMessages(node, errors.localErrors, errors.childErrors).forEach(\n (errors2) => {\n node.store.apply(errors2, (message) => message.meta.source === sourceKey);\n }\n );\n return node;\n}\nfunction clearErrors(node, _context, clearChildErrors = true, sourceKey) {\n node.store.filter((m) => {\n return !(sourceKey === void 0 || m.meta.source === sourceKey);\n }, \"error\");\n if (clearChildErrors) {\n sourceKey = sourceKey || `${node.name}-set`;\n node.walk((child) => {\n child.store.filter((message) => {\n return !(message.type === \"error\" && message.meta && message.meta.source === sourceKey);\n });\n });\n }\n return node;\n}\nfunction createProps(initial) {\n const props = {\n initial: typeof initial === \"object\" ? cloneAny(initial) : initial\n };\n let node;\n let isEmitting = true;\n let propDefs = {};\n return new Proxy(props, {\n get(...args) {\n const [_t, prop] = args;\n let val;\n if (has(props, prop)) {\n val = Reflect.get(...args);\n if (propDefs[prop]?.boolean)\n val = boolGetter(val);\n } else if (node && typeof prop === \"string\" && node.config[prop] !== void 0) {\n val = node.config[prop];\n if (prop === \"mergeStrategy\" && node?.type === \"input\" && isRecord(val) && node.name in val) {\n val = val[node.name];\n }\n } else {\n val = propDefs[prop]?.default;\n }\n const getter = propDefs[prop]?.getter;\n if (propDefs[prop]?.boolean)\n val = !!val;\n return getter ? getter(val, node) : val;\n },\n set(target, property, originalValue, receiver) {\n if (property === \"_n\") {\n node = originalValue;\n return true;\n }\n if (property === \"_emit\") {\n isEmitting = originalValue;\n return true;\n }\n let { prop, value } = node.hook.prop.dispatch({\n prop: property,\n value: originalValue\n });\n const setter = propDefs[prop]?.setter;\n value = setter ? setter(value, node) : value;\n if (!eq(props[prop], value, false) || typeof value === \"object\") {\n const didSet = Reflect.set(target, prop, value, receiver);\n if (prop === \"__propDefs\")\n propDefs = toPropsObj(value);\n if (isEmitting) {\n node.emit(\"prop\", { prop, value });\n if (typeof prop === \"string\")\n node.emit(`prop:${prop}`, value);\n }\n return didSet;\n }\n return true;\n }\n });\n}\nfunction extend(node, context, property, trap2) {\n context.traps.set(property, trap2);\n return node;\n}\nfunction findDefinition(node, plugins) {\n if (node.props.definition)\n return node.define(node.props.definition);\n for (const plugin of plugins) {\n if (node.props.definition)\n return;\n if (typeof plugin.library === \"function\") {\n plugin.library(node);\n }\n }\n}\nfunction createContext(options) {\n const value = createValue(options);\n const config = createConfig2(options.config || {}, options.parent);\n return {\n _d: 0,\n _e: createEmitter(),\n uid: Symbol(),\n _resolve: false,\n _tmo: false,\n _value: value,\n children: dedupe(options.children || []),\n config,\n hook: createHooks(),\n isCreated: false,\n isSettled: true,\n ledger: createLedger(),\n name: createName(options),\n parent: options.parent || null,\n plugins: /* @__PURE__ */ new Set(),\n props: createProps(value),\n settled: Promise.resolve(value),\n store: createStore(true),\n sync: options.sync || false,\n traps: createTraps(),\n type: options.type || \"input\",\n value\n };\n}\nfunction nodeInit(node, options) {\n const hasInitialId = options.props?.id;\n if (!hasInitialId)\n delete options.props?.id;\n node.ledger.init(node.store._n = node.props._n = node.config._n = node);\n node.props._emit = false;\n Object.assign(\n node.props,\n hasInitialId ? {} : { id: `input_${idCount++}` },\n options.props ?? {}\n );\n node.props._emit = true;\n findDefinition(\n node,\n /* @__PURE__ */ new Set([\n ...options.plugins || [],\n ...node.parent ? node.parent.plugins : []\n ])\n );\n if (options.plugins) {\n for (const plugin of options.plugins) {\n use(node, node._c, plugin, true, false);\n }\n }\n node.each((child) => node.add(child));\n if (node.parent)\n node.parent.add(node, options.index);\n if (node.type === \"input\" && node.children.length)\n error(100, node);\n input(node, node._c, node._value, false);\n node.store.release();\n if (hasInitialId)\n register(node);\n node.emit(\"created\", node);\n node.isCreated = true;\n return node;\n}\nfunction createPlaceholder(options) {\n return {\n __FKP: true,\n uid: Symbol(),\n name: options?.name ?? `p_${nameCount++}`,\n value: options?.value ?? null,\n _value: options?.value ?? null,\n type: options?.type ?? \"input\",\n props: {},\n use: () => {\n },\n input(value) {\n this._value = value;\n this.value = value;\n return Promise.resolve();\n },\n isSettled: true\n };\n}\nfunction isPlaceholder(node) {\n return \"__FKP\" in node;\n}\nfunction createNode(options) {\n const ops = options || {};\n const context = createContext(ops);\n const node = new Proxy(context, {\n get(...args) {\n const [, property] = args;\n if (property === \"__FKNode__\")\n return true;\n const trap2 = context.traps.get(property);\n if (trap2 && trap2.get)\n return trap2.get(node, context);\n return Reflect.get(...args);\n },\n set(...args) {\n const [, property, value] = args;\n const trap2 = context.traps.get(property);\n if (trap2 && trap2.set)\n return trap2.set(node, context, property, value);\n return Reflect.set(...args);\n }\n });\n return nodeInit(node, ops);\n}\nfunction isDOM(node) {\n return typeof node !== \"string\" && has(node, \"$el\");\n}\nfunction isComponent(node) {\n return typeof node !== \"string\" && has(node, \"$cmp\");\n}\nfunction isConditional(node) {\n if (!node || typeof node === \"string\")\n return false;\n return has(node, \"if\") && has(node, \"then\");\n}\nfunction isSugar(node) {\n return typeof node !== \"string\" && \"$formkit\" in node;\n}\nfunction sugar(node) {\n if (typeof node === \"string\") {\n return {\n $el: \"text\",\n children: node\n };\n }\n if (isSugar(node)) {\n const {\n $formkit: type,\n for: iterator,\n if: condition,\n children,\n bind,\n ...props\n } = node;\n return Object.assign(\n {\n $cmp: \"FormKit\",\n props: { ...props, type }\n },\n condition ? { if: condition } : {},\n iterator ? { for: iterator } : {},\n children ? { children } : {},\n bind ? { bind } : {}\n );\n }\n return node;\n}\nfunction compile(expr) {\n let provideTokens;\n const requirements = /* @__PURE__ */ new Set();\n const x = function expand(operand, tokens) {\n return typeof operand === \"function\" ? operand(tokens) : operand;\n };\n const operatorRegistry = [\n {\n \"&&\": (l, r, t) => x(l, t) && x(r, t),\n \"||\": (l, r, t) => x(l, t) || x(r, t)\n },\n {\n \"===\": (l, r, t) => !!(x(l, t) === x(r, t)),\n \"!==\": (l, r, t) => !!(x(l, t) !== x(r, t)),\n \"==\": (l, r, t) => !!(x(l, t) == x(r, t)),\n \"!=\": (l, r, t) => !!(x(l, t) != x(r, t)),\n \">=\": (l, r, t) => !!(x(l, t) >= x(r, t)),\n \"<=\": (l, r, t) => !!(x(l, t) <= x(r, t)),\n \">\": (l, r, t) => !!(x(l, t) > x(r, t)),\n \"<\": (l, r, t) => !!(x(l, t) < x(r, t))\n },\n {\n \"+\": (l, r, t) => x(l, t) + x(r, t),\n \"-\": (l, r, t) => x(l, t) - x(r, t)\n },\n {\n \"*\": (l, r, t) => x(l, t) * x(r, t),\n \"/\": (l, r, t) => x(l, t) / x(r, t),\n \"%\": (l, r, t) => x(l, t) % x(r, t)\n }\n ];\n const operatorSymbols = operatorRegistry.reduce((s, g) => {\n return s.concat(Object.keys(g));\n }, []);\n const operatorChars = new Set(operatorSymbols.map((key) => key.charAt(0)));\n function getOp(symbols, char, p, expression) {\n const candidates = symbols.filter((s) => s.startsWith(char));\n if (!candidates.length)\n return false;\n return candidates.find((symbol) => {\n if (expression.length >= p + symbol.length) {\n const nextChars = expression.substring(p, p + symbol.length);\n if (nextChars === symbol)\n return symbol;\n }\n return false;\n });\n }\n function getStep(p, expression, direction = 1) {\n let next = direction ? expression.substring(p + 1).trim() : expression.substring(0, p).trim();\n if (!next.length)\n return -1;\n if (!direction) {\n const reversed = next.split(\"\").reverse();\n const start = reversed.findIndex((char2) => operatorChars.has(char2));\n next = reversed.slice(start).join(\"\");\n }\n const char = next[0];\n return operatorRegistry.findIndex((operators) => {\n const symbols = Object.keys(operators);\n return !!getOp(symbols, char, 0, next);\n });\n }\n function getTail(pos, expression) {\n let tail = \"\";\n const length = expression.length;\n let depth = 0;\n for (let p = pos; p < length; p++) {\n const char = expression.charAt(p);\n if (char === \"(\") {\n depth++;\n } else if (char === \")\") {\n depth--;\n } else if (depth === 0 && char === \" \") {\n continue;\n }\n if (depth === 0 && getOp(operatorSymbols, char, p, expression)) {\n return [tail, p - 1];\n } else {\n tail += char;\n }\n }\n return [tail, expression.length - 1];\n }\n function parseLogicals(expression, step = 0) {\n const operators = operatorRegistry[step];\n const length = expression.length;\n const symbols = Object.keys(operators);\n let depth = 0;\n let quote = false;\n let op = null;\n let operand = \"\";\n let left = null;\n let operation;\n let lastChar = \"\";\n let char = \"\";\n let parenthetical = \"\";\n let parenQuote = \"\";\n let startP = 0;\n const addTo = (depth2, char2) => {\n depth2 ? parenthetical += char2 : operand += char2;\n };\n for (let p = 0; p < length; p++) {\n lastChar = char;\n char = expression.charAt(p);\n if ((char === \"'\" || char === '\"') && lastChar !== \"\\\\\" && (depth === 0 && !quote || depth && !parenQuote)) {\n if (depth) {\n parenQuote = char;\n } else {\n quote = char;\n }\n addTo(depth, char);\n continue;\n } else if (quote && (char !== quote || lastChar === \"\\\\\") || parenQuote && (char !== parenQuote || lastChar === \"\\\\\")) {\n addTo(depth, char);\n continue;\n } else if (quote === char) {\n quote = false;\n addTo(depth, char);\n continue;\n } else if (parenQuote === char) {\n parenQuote = false;\n addTo(depth, char);\n continue;\n } else if (char === \" \") {\n continue;\n } else if (char === \"(\") {\n if (depth === 0) {\n startP = p;\n } else {\n parenthetical += char;\n }\n depth++;\n } else if (char === \")\") {\n depth--;\n if (depth === 0) {\n const fn = typeof operand === \"string\" && operand.startsWith(\"$\") ? operand : void 0;\n const hasTail = fn && expression.charAt(p + 1) === \".\";\n let tail = \"\";\n if (hasTail) {\n [tail, p] = getTail(p + 2, expression);\n }\n const lStep = op ? step : getStep(startP, expression, 0);\n const rStep = getStep(p, expression);\n if (lStep === -1 && rStep === -1) {\n operand = evaluate(parenthetical, -1, fn, tail);\n if (typeof operand === \"string\")\n operand = parenthetical;\n } else if (op && (lStep >= rStep || rStep === -1) && step === lStep) {\n left = op.bind(null, evaluate(parenthetical, -1, fn, tail));\n op = null;\n operand = \"\";\n } else if (rStep > lStep && step === rStep) {\n operand = evaluate(parenthetical, -1, fn, tail);\n } else {\n operand += `(${parenthetical})${hasTail ? `.${tail}` : \"\"}`;\n }\n parenthetical = \"\";\n } else {\n parenthetical += char;\n }\n } else if (depth === 0 && (operation = getOp(symbols, char, p, expression))) {\n if (p === 0) {\n error(103, [operation, expression]);\n }\n p += operation.length - 1;\n if (p === expression.length - 1) {\n error(104, [operation, expression]);\n }\n if (!op) {\n if (left) {\n op = operators[operation].bind(null, evaluate(left, step));\n left = null;\n } else {\n op = operators[operation].bind(null, evaluate(operand, step));\n operand = \"\";\n }\n } else if (operand) {\n left = op.bind(null, evaluate(operand, step));\n op = operators[operation].bind(null, left);\n operand = \"\";\n }\n continue;\n } else {\n addTo(depth, char);\n }\n }\n if (operand && op) {\n op = op.bind(null, evaluate(operand, step));\n }\n op = !op && left ? left : op;\n if (!op && operand) {\n op = (v, t) => {\n return typeof v === \"function\" ? v(t) : v;\n };\n op = op.bind(null, evaluate(operand, step));\n }\n if (!op && !operand) {\n error(105, expression);\n }\n return op;\n }\n function evaluate(operand, step, fnToken, tail) {\n if (fnToken) {\n const fn = evaluate(fnToken, operatorRegistry.length);\n let userFuncReturn;\n let tailCall = tail ? compile(`$${tail}`) : false;\n if (typeof fn === \"function\") {\n const args = parseArgs(String(operand)).map(\n (arg) => evaluate(arg, -1)\n );\n return (tokens) => {\n const userFunc = fn(tokens);\n if (typeof userFunc !== \"function\") {\n warn(150, fnToken);\n return userFunc;\n }\n userFuncReturn = userFunc(\n ...args.map(\n (arg) => typeof arg === \"function\" ? arg(tokens) : arg\n )\n );\n if (tailCall) {\n tailCall = tailCall.provide((subTokens) => {\n const rootTokens = provideTokens(subTokens);\n const t = subTokens.reduce(\n (tokenSet, token3) => {\n const isTail = token3 === tail || tail?.startsWith(`${token3}(`);\n if (isTail) {\n const value = getAt(userFuncReturn, token3);\n tokenSet[token3] = () => value;\n } else {\n tokenSet[token3] = rootTokens[token3];\n }\n return tokenSet;\n },\n {}\n );\n return t;\n });\n }\n return tailCall ? tailCall() : userFuncReturn;\n };\n }\n } else if (typeof operand === \"string\") {\n if (operand === \"true\")\n return true;\n if (operand === \"false\")\n return false;\n if (operand === \"undefined\")\n return void 0;\n if (isQuotedString(operand))\n return rmEscapes(operand.substring(1, operand.length - 1));\n if (!isNaN(+operand))\n return Number(operand);\n if (step < operatorRegistry.length - 1) {\n return parseLogicals(operand, step + 1);\n } else {\n if (operand.startsWith(\"$\")) {\n const cleaned = operand.substring(1);\n requirements.add(cleaned);\n return function getToken(tokens) {\n return cleaned in tokens ? tokens[cleaned]() : void 0;\n };\n }\n return operand;\n }\n }\n return operand;\n }\n const compiled = parseLogicals(\n expr.startsWith(\"$:\") ? expr.substring(2) : expr\n );\n const reqs = Array.from(requirements);\n function provide(callback) {\n provideTokens = callback;\n return Object.assign(\n // @ts-ignore - @rollup/plugin-typescript doesn't like this\n compiled.bind(null, callback(reqs)),\n { provide }\n );\n }\n return Object.assign(compiled, {\n provide\n });\n}\n\n// packages/core/src/classes.ts\nfunction createClasses(propertyKey, node, sectionClassList) {\n if (!sectionClassList)\n return {};\n if (typeof sectionClassList === \"string\") {\n const classKeys = sectionClassList.split(\" \");\n return classKeys.reduce(\n (obj, key) => Object.assign(obj, { [key]: true }),\n {}\n );\n } else if (typeof sectionClassList === \"function\") {\n return createClasses(\n propertyKey,\n node,\n sectionClassList(node, propertyKey)\n );\n }\n return sectionClassList;\n}\nfunction generateClassList(node, property, ...args) {\n const combinedClassList = args.reduce((finalClassList, currentClassList) => {\n if (!currentClassList)\n return handleNegativeClasses(finalClassList);\n const { $reset, ...classList } = currentClassList;\n if ($reset) {\n return handleNegativeClasses(classList);\n }\n return handleNegativeClasses(Object.assign(finalClassList, classList));\n }, {});\n return Object.keys(\n node.hook.classes.dispatch({ property, classes: combinedClassList }).classes\n ).filter((key) => combinedClassList[key]).join(\" \") || null;\n}\nfunction handleNegativeClasses(classList) {\n const removalToken = \"$remove:\";\n let hasNegativeClassValue = false;\n const applicableClasses = Object.keys(classList).filter((className) => {\n if (classList[className] && className.startsWith(removalToken)) {\n hasNegativeClassValue = true;\n }\n return classList[className];\n });\n if (applicableClasses.length > 1 && hasNegativeClassValue) {\n const negativeClasses = applicableClasses.filter((className) => className.startsWith(removalToken));\n negativeClasses.map((negativeClass) => {\n const targetClass = negativeClass.substring(removalToken.length);\n classList[targetClass] = false;\n classList[negativeClass] = false;\n });\n }\n return classList;\n}\n\n// packages/core/src/setErrors.ts\nfunction setErrors2(id, localErrors, childErrors) {\n const node = getNode(id);\n if (node) {\n node.setErrors(localErrors, childErrors);\n } else {\n warn(651, id);\n }\n}\nfunction clearErrors2(id, clearChildren = true) {\n const node = getNode(id);\n if (node) {\n node.clearErrors(clearChildren);\n } else {\n warn(652, id);\n }\n}\n\n// packages/core/src/index.ts\nvar FORMKIT_VERSION = \"1.6.7\";\n\nexport { FORMKIT_VERSION, bfs, clearErrors2 as clearErrors, compile, createClasses, createConfig, createMessage, createNode, createPlaceholder, createValue, deregister, error, errorHandler, generateClassList, getNode, isComponent, isConditional, isDOM, isList, isNode, isPlaceholder, isSugar, names, register, reset, resetCount, resetRegistry, setErrors2 as setErrors, stopWatch, submitForm, sugar, use, useIndex, valueInserted, valueMoved, valueRemoved, warn, warningHandler, watchRegistry };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=index.mjs.map","import { has } from '@formkit/utils';\nimport { isNode } from '@formkit/core';\n\n// packages/observer/src/index.ts\nvar revokedObservers = /* @__PURE__ */ new WeakSet();\nfunction createObserver(node, dependencies) {\n const deps = dependencies || Object.assign(/* @__PURE__ */ new Map(), { active: false });\n const receipts = /* @__PURE__ */ new Map();\n const addDependency = function(event) {\n if (!deps.active)\n return;\n if (!deps.has(node))\n deps.set(node, /* @__PURE__ */ new Set());\n deps.get(node)?.add(event);\n };\n const observeProps = function(props) {\n return new Proxy(props, {\n get(...args) {\n typeof args[1] === \"string\" && addDependency(`prop:${args[1]}`);\n return Reflect.get(...args);\n }\n });\n };\n const observeLedger = function(ledger) {\n return new Proxy(ledger, {\n get(...args) {\n if (args[1] === \"value\") {\n return (key) => {\n addDependency(`count:${key}`);\n return ledger.value(key);\n };\n }\n return Reflect.get(...args);\n }\n });\n };\n const observe = function(value, property) {\n if (isNode(value)) {\n return createObserver(value, deps);\n }\n if (property === \"value\")\n addDependency(\"commit\");\n if (property === \"_value\")\n addDependency(\"input\");\n if (property === \"props\")\n return observeProps(value);\n if (property === \"ledger\")\n return observeLedger(value);\n if (property === \"children\") {\n addDependency(\"child\");\n addDependency(\"childRemoved\");\n }\n return value;\n };\n const {\n proxy: observed,\n revoke\n } = Proxy.revocable(node, {\n get(...args) {\n switch (args[1]) {\n case \"_node\":\n return node;\n case \"deps\":\n return deps;\n case \"watch\":\n return (block, after, pos) => watch(observed, block, after, pos);\n case \"observe\":\n return () => {\n const old = new Map(deps);\n deps.clear();\n deps.active = true;\n return old;\n };\n case \"stopObserve\":\n return () => {\n const newDeps = new Map(deps);\n deps.active = false;\n return newDeps;\n };\n case \"receipts\":\n return receipts;\n case \"kill\":\n return () => {\n removeListeners(receipts);\n revokedObservers.add(args[2]);\n revoke();\n return void 0;\n };\n }\n const value = Reflect.get(...args);\n if (typeof value === \"function\") {\n return (...subArgs) => {\n const subValue = value(...subArgs);\n return observe(subValue, args[1]);\n };\n }\n return observe(value, args[1]);\n }\n });\n return observed;\n}\nfunction applyListeners(node, [toAdd, toRemove], callback, pos) {\n toAdd.forEach((events, depNode) => {\n events.forEach((event) => {\n node.receipts.has(depNode) || node.receipts.set(depNode, {});\n const events2 = node.receipts.get(depNode) ?? {};\n events2[event] = events2[event] ?? [];\n events2[event].push(depNode.on(event, callback, pos));\n node.receipts.set(depNode, events2);\n });\n });\n toRemove.forEach((events, depNode) => {\n events.forEach((event) => {\n if (node.receipts.has(depNode)) {\n const nodeReceipts = node.receipts.get(depNode);\n if (nodeReceipts && has(nodeReceipts, event)) {\n nodeReceipts[event].map(depNode.off);\n delete nodeReceipts[event];\n node.receipts.set(depNode, nodeReceipts);\n }\n }\n });\n });\n}\nfunction removeListeners(receipts) {\n receipts.forEach((events, node) => {\n for (const event in events) {\n events[event].map(node.off);\n }\n });\n receipts.clear();\n}\nfunction watch(node, block, after, pos) {\n const doAfterObservation = (res2) => {\n const newDeps = node.stopObserve();\n applyListeners(\n node,\n diffDeps(oldDeps, newDeps),\n () => watch(node, block, after, pos),\n pos\n );\n if (after)\n after(res2);\n };\n const oldDeps = new Map(node.deps);\n node.observe();\n const res = block(node);\n if (res instanceof Promise)\n res.then((val) => doAfterObservation(val));\n else\n doAfterObservation(res);\n}\nfunction diffDeps(previous, current) {\n const toAdd = /* @__PURE__ */ new Map();\n const toRemove = /* @__PURE__ */ new Map();\n current.forEach((events, node) => {\n if (!previous.has(node)) {\n toAdd.set(node, events);\n } else {\n const eventsToAdd = /* @__PURE__ */ new Set();\n const previousEvents = previous.get(node);\n events.forEach(\n (event) => !previousEvents?.has(event) && eventsToAdd.add(event)\n );\n toAdd.set(node, eventsToAdd);\n }\n });\n previous.forEach((events, node) => {\n if (!current.has(node)) {\n toRemove.set(node, events);\n } else {\n const eventsToRemove = /* @__PURE__ */ new Set();\n const newEvents = current.get(node);\n events.forEach(\n (event) => !newEvents?.has(event) && eventsToRemove.add(event)\n );\n toRemove.set(node, eventsToRemove);\n }\n });\n return [toAdd, toRemove];\n}\nfunction isKilled(node) {\n return revokedObservers.has(node);\n}\n\nexport { applyListeners, createObserver, diffDeps, isKilled, removeListeners };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=index.mjs.map","import { has, regexForFormat, eq, empty } from '@formkit/utils';\n\n// packages/rules/src/accepted.ts\nvar accepted = function accepted2({ value }) {\n return [\"yes\", \"on\", \"1\", 1, true, \"true\"].includes(value);\n};\naccepted.skipEmpty = false;\nvar accepted_default = accepted;\n\n// packages/rules/src/date_after.ts\nvar date_after = function({ value }, compare = false) {\n const timestamp = Date.parse(compare || /* @__PURE__ */ new Date());\n const fieldValue = Date.parse(String(value));\n return isNaN(fieldValue) ? false : fieldValue > timestamp;\n};\nvar date_after_default = date_after;\n\n// packages/rules/src/date_after_or_equal.ts\nvar date_after_or_equal = function({ value }, compare = false) {\n const timestamp = Date.parse(compare || /* @__PURE__ */ new Date());\n const fieldValue = Date.parse(String(value));\n return isNaN(fieldValue) ? false : fieldValue > timestamp || fieldValue === timestamp;\n};\nvar date_after_or_equal_default = date_after_or_equal;\n\n// packages/rules/src/date_after_node.ts\nvar date_after_node = function(node, address) {\n if (!address)\n return false;\n const fieldValue = Date.parse(String(node.value));\n const foreignValue = Date.parse(String(node.at(address)?.value));\n if (isNaN(foreignValue))\n return true;\n return isNaN(fieldValue) ? false : fieldValue > foreignValue;\n};\nvar date_after_node_default = date_after_node;\nvar alpha = function({ value }, set = \"default\") {\n const sets = {\n default: /^\\p{L}+$/u,\n latin: /^[a-z]+$/i\n };\n const selectedSet = has(sets, set) ? set : \"default\";\n return sets[selectedSet].test(String(value));\n};\nvar alpha_default = alpha;\nvar alpha_spaces = function({ value }, set = \"default\") {\n const sets = {\n default: /^[\\p{L} ]+$/u,\n latin: /^[a-z ]+$/i\n };\n const selectedSet = has(sets, set) ? set : \"default\";\n return sets[selectedSet].test(String(value));\n};\nvar alpha_spaces_default = alpha_spaces;\nvar alphanumeric = function({ value }, set = \"default\") {\n const sets = {\n default: /^[0-9\\p{L}]+$/u,\n latin: /^[0-9a-z]+$/i\n };\n const selectedSet = has(sets, set) ? set : \"default\";\n return sets[selectedSet].test(String(value));\n};\nvar alphanumeric_default = alphanumeric;\n\n// packages/rules/src/date_before.ts\nvar date_before = function({ value }, compare = false) {\n const timestamp = Date.parse(compare || /* @__PURE__ */ new Date());\n const fieldValue = Date.parse(String(value));\n return isNaN(fieldValue) ? false : fieldValue < timestamp;\n};\nvar date_before_default = date_before;\n\n// packages/rules/src/date_before_node.ts\nvar date_before_node = function(node, address) {\n if (!address)\n return false;\n const fieldValue = Date.parse(String(node.value));\n const foreignValue = Date.parse(String(node.at(address)?.value));\n if (isNaN(foreignValue))\n return true;\n return isNaN(fieldValue) ? false : fieldValue < foreignValue;\n};\nvar date_before_node_default = date_before_node;\n\n// packages/rules/src/date_before_or_equal.ts\nvar date_before_or_equal = function({ value }, compare = false) {\n const timestamp = Date.parse(compare || /* @__PURE__ */ new Date());\n const fieldValue = Date.parse(String(value));\n return isNaN(fieldValue) ? false : fieldValue < timestamp || fieldValue === timestamp;\n};\nvar date_before_or_equal_default = date_before_or_equal;\n\n// packages/rules/src/between.ts\nvar between = function between2({ value }, from, to) {\n if (!isNaN(value) && !isNaN(from) && !isNaN(to)) {\n const val = 1 * value;\n from = Number(from);\n to = Number(to);\n const [a, b] = from <= to ? [from, to] : [to, from];\n return val >= 1 * a && val <= 1 * b;\n }\n return false;\n};\nvar between_default = between;\n\n// packages/rules/src/confirm.ts\nvar hasConfirm = /(_confirm(?:ed)?)$/;\nvar confirm = function confirm2(node, address, comparison = \"loose\") {\n if (!address) {\n address = hasConfirm.test(node.name) ? node.name.replace(hasConfirm, \"\") : `${node.name}_confirm`;\n }\n const foreignValue = node.at(address)?.value;\n return comparison === \"strict\" ? node.value === foreignValue : node.value == foreignValue;\n};\nvar confirm_default = confirm;\nvar contains_alpha = function({ value }, set = \"default\") {\n const sets = {\n default: /\\p{L}/u,\n latin: /[a-z]/i\n };\n const selectedSet = has(sets, set) ? set : \"default\";\n return sets[selectedSet].test(String(value));\n};\nvar contains_alpha_default = contains_alpha;\nvar contains_alpha_spaces = function({ value }, set = \"default\") {\n const sets = {\n default: /[\\p{L} ]/u,\n latin: /[a-z ]/i\n };\n const selectedSet = has(sets, set) ? set : \"default\";\n return sets[selectedSet].test(String(value));\n};\nvar contains_alpha_spaces_default = contains_alpha_spaces;\nvar contains_alphanumeric = function({ value }, set = \"default\") {\n const sets = {\n default: /[0-9\\p{L}]/u,\n latin: /[0-9a-z]/i\n };\n const selectedSet = has(sets, set) ? set : \"default\";\n return sets[selectedSet].test(String(value));\n};\nvar contains_alphanumeric_default = contains_alphanumeric;\nvar contains_lowercase = function({ value }, set = \"default\") {\n const sets = {\n default: /\\p{Ll}/u,\n latin: /[a-z]/\n };\n const selectedSet = has(sets, set) ? set : \"default\";\n return sets[selectedSet].test(String(value));\n};\nvar contains_lowercase_default = contains_lowercase;\n\n// packages/rules/src/contains_numeric.ts\nvar contains_numeric = function number({ value }) {\n return /[0-9]/.test(String(value));\n};\nvar contains_numeric_default = contains_numeric;\n\n// packages/rules/src/contains_symbol.ts\nvar contains_symbol = function({ value }) {\n return /[!-/:-@[-`{-~]/.test(String(value));\n};\nvar contains_symbol_default = contains_symbol;\nvar contains_uppercase = function({ value }, set = \"default\") {\n const sets = {\n default: /\\p{Lu}/u,\n latin: /[A-Z]/\n };\n const selectedSet = has(sets, set) ? set : \"default\";\n return sets[selectedSet].test(String(value));\n};\nvar contains_uppercase_default = contains_uppercase;\n\n// packages/rules/src/date_between.ts\nvar date_between = function date_between2({ value }, dateA, dateB) {\n dateA = dateA instanceof Date ? dateA.getTime() : Date.parse(dateA);\n dateB = dateB instanceof Date ? dateB.getTime() : Date.parse(dateB);\n const compareTo = value instanceof Date ? value.getTime() : Date.parse(String(value));\n if (dateA && !dateB) {\n dateB = dateA;\n dateA = Date.now();\n } else if (!dateA || !compareTo) {\n return false;\n }\n return compareTo >= dateA && compareTo <= dateB;\n};\nvar date_between_default = date_between;\nvar date_format = function date({ value }, format) {\n if (format && typeof format === \"string\") {\n return regexForFormat(format).test(String(value));\n }\n return !isNaN(Date.parse(String(value)));\n};\nvar date_format_default = date_format;\n\n// packages/rules/src/email.ts\nvar email = function email2({ value }) {\n const isEmail = /^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\n return isEmail.test(String(value));\n};\nvar email_default = email;\n\n// packages/rules/src/ends_with.ts\nvar ends_with = function ends_with2({ value }, ...stack) {\n if (typeof value === \"string\" && stack.length) {\n return stack.some((item) => {\n return value.endsWith(item);\n });\n } else if (typeof value === \"string\" && stack.length === 0) {\n return true;\n }\n return false;\n};\nvar ends_with_default = ends_with;\nvar is = function is2({ value }, ...stack) {\n return stack.some((item) => {\n if (typeof item === \"object\") {\n return eq(item, value);\n }\n return item == value;\n });\n};\nvar is_default = is;\n\n// packages/rules/src/length.ts\nvar length = function length2({ value }, first = 0, second = Infinity) {\n first = parseInt(first);\n second = isNaN(parseInt(second)) ? Infinity : parseInt(second);\n const min3 = first <= second ? first : second;\n const max3 = second >= first ? second : first;\n if (typeof value === \"string\" || Array.isArray(value)) {\n return value.length >= min3 && value.length <= max3;\n } else if (value && typeof value === \"object\") {\n const length3 = Object.keys(value).length;\n return length3 >= min3 && length3 <= max3;\n }\n return false;\n};\nvar length_default = length;\nvar lowercase = function({ value }, set = \"default\") {\n const sets = {\n default: /^\\p{Ll}+$/u,\n allow_non_alpha: /^[0-9\\p{Ll}!-/:-@[-`{-~]+$/u,\n allow_numeric: /^[0-9\\p{Ll}]+$/u,\n allow_numeric_dashes: /^[0-9\\p{Ll}-]+$/u,\n latin: /^[a-z]+$/\n };\n const selectedSet = has(sets, set) ? set : \"default\";\n return sets[selectedSet].test(String(value));\n};\nvar lowercase_default = lowercase;\n\n// packages/rules/src/matches.ts\nvar matches = function matches2({ value }, ...stack) {\n return stack.some((pattern) => {\n if (typeof pattern === \"string\" && pattern.substr(0, 1) === \"/\" && pattern.substr(-1) === \"/\") {\n pattern = new RegExp(pattern.substr(1, pattern.length - 2));\n }\n if (pattern instanceof RegExp) {\n return pattern.test(String(value));\n }\n return pattern === value;\n });\n};\nvar matches_default = matches;\n\n// packages/rules/src/max.ts\nvar max = function max2({ value }, maximum = 10) {\n if (Array.isArray(value)) {\n return value.length <= maximum;\n }\n return Number(value) <= Number(maximum);\n};\nvar max_default = max;\n\n// packages/rules/src/min.ts\nvar min = function min2({ value }, minimum = 1) {\n if (Array.isArray(value)) {\n return value.length >= minimum;\n }\n return Number(value) >= Number(minimum);\n};\nvar min_default = min;\nvar not = function not2({ value }, ...stack) {\n return !stack.some((item) => {\n if (typeof item === \"object\") {\n return eq(item, value);\n }\n return item === value;\n });\n};\nvar not_default = not;\n\n// packages/rules/src/number.ts\nvar number2 = function number3({ value }) {\n return !isNaN(value);\n};\nvar number_default = number2;\nvar require_one = function(node, ...inputNames) {\n if (!empty(node.value))\n return true;\n const values = inputNames.map((name) => node.at(name)?.value);\n return values.some((value) => !empty(value));\n};\nrequire_one.skipEmpty = false;\nvar require_one_default = require_one;\nvar required = function required2({ value }, action = \"default\") {\n return action === \"trim\" && typeof value === \"string\" ? !empty(value.trim()) : !empty(value);\n};\nrequired.skipEmpty = false;\nvar required_default = required;\n\n// packages/rules/src/starts_with.ts\nvar starts_with = function starts_with2({ value }, ...stack) {\n if (typeof value === \"string\" && stack.length) {\n return stack.some((item) => {\n return value.startsWith(item);\n });\n } else if (typeof value === \"string\" && stack.length === 0) {\n return true;\n }\n return false;\n};\nvar starts_with_default = starts_with;\n\n// packages/rules/src/symbol.ts\nvar symbol = function({ value }) {\n return /^[!-/:-@[-`{-~]+$/.test(String(value));\n};\nvar symbol_default = symbol;\nvar uppercase = function({ value }, set = \"default\") {\n const sets = {\n default: /^\\p{Lu}+$/u,\n latin: /^[A-Z]+$/\n };\n const selectedSet = has(sets, set) ? set : \"default\";\n return sets[selectedSet].test(String(value));\n};\nvar uppercase_default = uppercase;\n\n// packages/rules/src/url.ts\nvar url = function url2({ value }, ...stack) {\n try {\n const protocols = stack.length ? stack : [\"http:\", \"https:\"];\n const url3 = new URL(String(value));\n return protocols.includes(url3.protocol);\n } catch {\n return false;\n }\n};\nvar url_default = url;\n\nexport { accepted_default as accepted, alpha_default as alpha, alpha_spaces_default as alpha_spaces, alphanumeric_default as alphanumeric, between_default as between, confirm_default as confirm, contains_alpha_default as contains_alpha, contains_alpha_spaces_default as contains_alpha_spaces, contains_alphanumeric_default as contains_alphanumeric, contains_lowercase_default as contains_lowercase, contains_numeric_default as contains_numeric, contains_symbol_default as contains_symbol, contains_uppercase_default as contains_uppercase, date_after_default as date_after, date_after_node_default as date_after_node, date_after_or_equal_default as date_after_or_equal, date_before_default as date_before, date_before_node_default as date_before_node, date_before_or_equal_default as date_before_or_equal, date_between_default as date_between, date_format_default as date_format, email_default as email, ends_with_default as ends_with, is_default as is, length_default as length, lowercase_default as lowercase, matches_default as matches, max_default as max, min_default as min, not_default as not, number_default as number, require_one_default as require_one, required_default as required, starts_with_default as starts_with, symbol_default as symbol, uppercase_default as uppercase, url_default as url };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=index.mjs.map","import { createMessage } from '@formkit/core';\nimport { removeListeners, isKilled, createObserver, diffDeps, applyListeners } from '@formkit/observer';\nimport { cloneAny, token, eq, empty, has, clone } from '@formkit/utils';\n\n// packages/validation/src/validation.ts\nvar validatingMessage = /* @__PURE__ */ createMessage({\n type: \"state\",\n blocking: true,\n visible: false,\n value: true,\n key: \"validating\"\n});\nfunction createValidationPlugin(baseRules = {}) {\n return function validationPlugin(node) {\n let propRules = cloneAny(node.props.validationRules || {});\n let availableRules = { ...baseRules, ...propRules };\n const state = { input: token(), rerun: null, isPassing: true };\n let validation = cloneAny(node.props.validation);\n node.on(\"prop:validation\", ({ payload }) => reboot(payload, propRules));\n node.on(\n \"prop:validationRules\",\n ({ payload }) => reboot(validation, payload)\n );\n function reboot(newValidation, newRules) {\n if (eq(Object.keys(propRules || {}), Object.keys(newRules || {})) && eq(validation, newValidation))\n return;\n propRules = cloneAny(newRules);\n validation = cloneAny(newValidation);\n availableRules = { ...baseRules, ...propRules };\n node.props.parsedRules?.forEach((validation2) => {\n removeMessage(validation2);\n removeListeners(validation2.observer.receipts);\n validation2.observer.kill();\n });\n node.store.filter(() => false, \"validation\");\n node.props.parsedRules = parseRules(newValidation, availableRules, node);\n state.isPassing = true;\n validate(node, node.props.parsedRules, state);\n }\n node.props.parsedRules = parseRules(validation, availableRules, node);\n validate(node, node.props.parsedRules, state);\n };\n}\nfunction validate(node, validations, state) {\n if (isKilled(node))\n return;\n state.input = token();\n node.store.set(\n /* @__PURE__ */ createMessage({\n key: \"failing\",\n value: !state.isPassing,\n visible: false\n })\n );\n state.isPassing = true;\n node.store.filter((message) => !message.meta.removeImmediately, \"validation\");\n validations.forEach(\n (validation) => validation.debounce && clearTimeout(validation.timer)\n );\n if (validations.length) {\n node.store.set(validatingMessage);\n run(0, validations, state, false, () => {\n node.store.remove(validatingMessage.key);\n node.store.set(\n /* @__PURE__ */ createMessage({\n key: \"failing\",\n value: !state.isPassing,\n visible: false\n })\n );\n });\n }\n}\nfunction run(current, validations, state, removeImmediately, complete) {\n const validation = validations[current];\n if (!validation)\n return complete();\n const node = validation.observer;\n if (isKilled(node))\n return;\n const currentRun = state.input;\n validation.state = null;\n function next(async, result) {\n if (state.input !== currentRun)\n return;\n state.isPassing = state.isPassing && !!result;\n validation.queued = false;\n const newDeps = node.stopObserve();\n const diff = diffDeps(validation.deps, newDeps);\n applyListeners(\n node,\n diff,\n function revalidate() {\n try {\n node.store.set(validatingMessage);\n } catch (e) {\n }\n validation.queued = true;\n if (state.rerun)\n clearTimeout(state.rerun);\n state.rerun = setTimeout(\n validate,\n 0,\n node,\n validations,\n state\n );\n },\n \"unshift\"\n // We want these listeners to run before other events are emitted so the 'state.validating' will be reliable.\n );\n validation.deps = newDeps;\n validation.state = result;\n if (result === false) {\n createFailedMessage(validation, removeImmediately || async);\n } else {\n removeMessage(validation);\n }\n if (validations.length > current + 1) {\n const nextValidation = validations[current + 1];\n if ((result || nextValidation.force || !nextValidation.skipEmpty) && nextValidation.state === null) {\n nextValidation.queued = true;\n }\n run(current + 1, validations, state, removeImmediately || async, complete);\n } else {\n complete();\n }\n }\n if ((!empty(node.value) || !validation.skipEmpty) && (state.isPassing || validation.force)) {\n if (validation.queued) {\n runRule(validation, node, (result) => {\n result instanceof Promise ? result.then((r) => next(true, r)) : next(false, result);\n });\n } else {\n run(current + 1, validations, state, removeImmediately, complete);\n }\n } else if (empty(node.value) && validation.skipEmpty && state.isPassing) {\n node.observe();\n node.value;\n next(false, state.isPassing);\n } else {\n next(false, null);\n }\n}\nfunction runRule(validation, node, after) {\n if (validation.debounce) {\n validation.timer = setTimeout(() => {\n node.observe();\n after(validation.rule(node, ...validation.args));\n }, validation.debounce);\n } else {\n node.observe();\n after(validation.rule(node, ...validation.args));\n }\n}\nfunction removeMessage(validation) {\n const key = `rule_${validation.name}`;\n if (validation.messageObserver) {\n validation.messageObserver = validation.messageObserver.kill();\n }\n if (has(validation.observer.store, key)) {\n validation.observer.store.remove(key);\n }\n}\nfunction createFailedMessage(validation, removeImmediately) {\n const node = validation.observer;\n if (isKilled(node))\n return;\n if (!validation.messageObserver) {\n validation.messageObserver = createObserver(node._node);\n }\n validation.messageObserver.watch(\n (node2) => {\n const i18nArgs = createI18nArgs(\n node2,\n validation\n );\n return i18nArgs;\n },\n (i18nArgs) => {\n const customMessage = createCustomMessage(node, validation, i18nArgs);\n const message = /* @__PURE__ */ createMessage({\n blocking: validation.blocking,\n key: `rule_${validation.name}`,\n meta: {\n /**\n * Use this key instead of the message root key to produce i18n validation\n * messages.\n */\n messageKey: validation.name,\n /**\n * For messages that were created *by or after* a debounced or async\n * validation rule — we make note of it so we can immediately remove them\n * as soon as the next commit happens.\n */\n removeImmediately,\n /**\n * Determines if this message should be passed to localization.\n */\n localize: !customMessage,\n /**\n * The arguments that will be passed to the validation rules\n */\n i18nArgs\n },\n type: \"validation\",\n value: customMessage || \"This field is not valid.\"\n });\n node.store.set(message);\n }\n );\n}\nfunction createCustomMessage(node, validation, i18nArgs) {\n const customMessage = node.props.validationMessages && has(node.props.validationMessages, validation.name) ? node.props.validationMessages[validation.name] : void 0;\n if (typeof customMessage === \"function\") {\n return customMessage(...i18nArgs);\n }\n return customMessage;\n}\nfunction createI18nArgs(node, validation) {\n return [\n {\n node,\n name: createMessageName(node),\n args: validation.args\n }\n ];\n}\nfunction createMessageName(node) {\n if (typeof node.props.validationLabel === \"function\") {\n return node.props.validationLabel(node);\n }\n return node.props.validationLabel || node.props.label || node.props.name || String(node.name);\n}\nvar hintPattern = \"(?:[\\\\*+?()0-9]+)\";\nvar rulePattern = \"[a-zA-Z][a-zA-Z0-9_]+\";\nvar ruleExtractor = new RegExp(\n `^(${hintPattern}?${rulePattern})(?:\\\\:(.*)+)?$`,\n \"i\"\n);\nvar hintExtractor = new RegExp(`^(${hintPattern})(${rulePattern})$`, \"i\");\nvar debounceExtractor = /([\\*+?]+)?(\\(\\d+\\))([\\*+?]+)?/;\nvar hasDebounce = /\\(\\d+\\)/;\nvar defaultHints = {\n blocking: true,\n debounce: 0,\n force: false,\n skipEmpty: true,\n name: \"\"\n};\nfunction parseRules(validation, rules, node) {\n if (!validation)\n return [];\n const intents = typeof validation === \"string\" ? extractRules(validation) : clone(validation);\n return intents.reduce((validations, args) => {\n let rule = args.shift();\n const hints = {};\n if (typeof rule === \"string\") {\n const [ruleName, parsedHints] = parseHints(rule);\n if (has(rules, ruleName)) {\n rule = rules[ruleName];\n Object.assign(hints, parsedHints);\n }\n }\n if (typeof rule === \"function\") {\n validations.push({\n observer: createObserver(node),\n rule,\n args,\n timer: 0,\n state: null,\n queued: true,\n deps: /* @__PURE__ */ new Map(),\n ...defaultHints,\n ...fnHints(hints, rule)\n });\n }\n return validations;\n }, []);\n}\nfunction extractRules(validation) {\n return validation.split(\"|\").reduce((rules, rule) => {\n const parsedRule = parseRule(rule);\n if (parsedRule) {\n rules.push(parsedRule);\n }\n return rules;\n }, []);\n}\nfunction parseRule(rule) {\n const trimmed = rule.trim();\n if (trimmed) {\n const matches = trimmed.match(ruleExtractor);\n if (matches && typeof matches[1] === \"string\") {\n const ruleName = matches[1].trim();\n const args = matches[2] && typeof matches[2] === \"string\" ? matches[2].split(\",\").map((s) => s.trim()) : [];\n return [ruleName, ...args];\n }\n }\n return false;\n}\nfunction parseHints(ruleName) {\n const matches = ruleName.match(hintExtractor);\n if (!matches) {\n return [ruleName, { name: ruleName }];\n }\n const map = {\n \"*\": { force: true },\n \"+\": { skipEmpty: false },\n \"?\": { blocking: false }\n };\n const [, hints, rule] = matches;\n const hintGroups = hasDebounce.test(hints) ? hints.match(debounceExtractor) || [] : [, hints];\n return [\n rule,\n [hintGroups[1], hintGroups[2], hintGroups[3]].reduce(\n (hints2, group) => {\n if (!group)\n return hints2;\n if (hasDebounce.test(group)) {\n hints2.debounce = parseInt(group.substr(1, group.length - 1));\n } else {\n group.split(\"\").forEach(\n (hint) => has(map, hint) && Object.assign(hints2, map[hint])\n );\n }\n return hints2;\n },\n { name: rule }\n )\n ];\n}\nfunction fnHints(existingHints, rule) {\n if (!existingHints.name) {\n existingHints.name = rule.ruleName || rule.name;\n }\n return [\"skipEmpty\", \"force\", \"debounce\", \"blocking\"].reduce(\n (hints, hint) => {\n if (has(rule, hint) && !has(hints, hint)) {\n Object.assign(hints, {\n [hint]: rule[hint]\n });\n }\n return hints;\n },\n existingHints\n );\n}\nfunction getValidationMessages(node) {\n const messages = /* @__PURE__ */ new Map();\n const extract = (n) => {\n const nodeMessages = [];\n for (const key in n.store) {\n const message = n.store[key];\n if (message.type === \"validation\" && message.visible && typeof message.value === \"string\") {\n nodeMessages.push(message);\n }\n }\n if (nodeMessages.length) {\n messages.set(n, nodeMessages);\n }\n return n;\n };\n extract(node).walk(extract);\n return messages;\n}\n\nexport { createMessageName, createValidationPlugin, getValidationMessages };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=index.mjs.map","import { createMessageName } from '@formkit/validation';\nimport { has } from '@formkit/utils';\n\n// packages/i18n/src/locales/ar.ts\n\n// packages/i18n/src/formatters.ts\nfunction sentence(str) {\n return str[0].toUpperCase() + str.substr(1);\n}\nfunction list(items, conjunction = \"or\") {\n return items.reduce((oxford, item, index) => {\n oxford += item;\n if (index <= items.length - 2 && items.length > 2) {\n oxford += \", \";\n }\n if (index === items.length - 2) {\n oxford += `${items.length === 2 ? \" \" : \"\"}${conjunction} `;\n }\n return oxford;\n }, \"\");\n}\nfunction date(date2) {\n const dateTime = typeof date2 === \"string\" ? new Date(Date.parse(date2)) : date2;\n if (!(dateTime instanceof Date)) {\n return \"(unknown)\";\n }\n return new Intl.DateTimeFormat(void 0, {\n dateStyle: \"medium\",\n timeZone: \"UTC\"\n }).format(dateTime);\n}\nfunction order(first, second) {\n return Number(first) >= Number(second) ? [second, first] : [first, second];\n}\n\n// packages/i18n/src/locales/ar.ts\nvar ui = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"إضاÙØ©\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"إزالة\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"إزالة الكل\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"عذرا، لم يتم تعبئة جميع الØقول بشكل صØÙŠØ.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"إرسال\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"لا يوجد مل٠مختار\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"تØرك لأعلى\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"انتقل لأسÙÙ„\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"يتم الآن التØميل...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"تØميل المزيد\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"التالي\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"السابق\",\n /**\n * Shown when transferring items between lists.\n */\n addAllValues: \"أض٠جميع القيم\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"إضاÙØ© قيم Ù…Øددة\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"قم بإزالة جميع القيم\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"إزالة القيم المØددة\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"اختر التاريخ\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"تاريخ التغيير\",\n /**\n * Shown when there is something to close\n */\n close: \"أغلق\",\n /**\n * Shown when there is something to open.\n */\n open: \"اÙتØ\"\n};\nvar validation = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `الرجاء قبول ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `يجب أن يكون ${sentence(name)} بعد ${date(args[0])}.`;\n }\n return `يجب أن يكون ${sentence(name)} ÙÙŠ المستقبل.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `يمكن أن ÙŠØتوي ${sentence(name)} على Ø£Øر٠أبجدية Ùقط.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `يمكن أن ÙŠØتوي ${sentence(name)} على Ø£Øر٠وأرقام Ùقط.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `يمكن أن تØتوي ${sentence(name)} على Ø£Øر٠ومساÙات Ùقط.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `يجب أن ÙŠØتوي ${sentence(name)} على Ø£Øر٠أبجدية.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `يجب أن ÙŠØتوي ${sentence(name)} على Ø£Øر٠أو أرقام.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `يجب أن ÙŠØتوي ${sentence(name)} على Ø£Øر٠أو مساÙات.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `يجب أن ÙŠØتوي ${sentence(name)} على رمز.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `يجب أن ÙŠØتوي ${sentence(name)} على Ø£Øر٠كبيرة.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `يجب أن ÙŠØتوي ${sentence(name)} على Ø£Øر٠صغيرة.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `يجب أن ÙŠØتوي ${sentence(name)} على أرقام.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `يجب أن يكون ${sentence(name)} رمزًا.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `يمكن أن ÙŠØتوي ${sentence(name)} على Ø£Øر٠كبيرة Ùقط.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `يمكن أن ÙŠØتوي ${sentence(name)} على Ø£Øر٠صغيرة Ùقط.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `يجب أن يكون ${sentence(name)} قبل ${date(args[0])}.`;\n }\n return `يجب أن يكون ${sentence(name)} ÙÙŠ الماضي.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `تمت تهيئة هذا الØقل بشكل غير صØÙŠØ ÙˆÙ„Ø§ يمكن إرساله.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `يجب أن يكون ${sentence(name)} ما بين ${a} Ùˆ ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} غير متطابق.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} ليس تاريخًا صالØًا ØŒ يرجى استخدام التنسيق ${args[0]}`;\n }\n return \"تمت تهيئة هذا الØقل بشكل غير صØÙŠØ ÙˆÙ„Ø§ يمكن إرساله\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `يجب أن يكون ${sentence(name)} بين ${date(args[0])} Ùˆ ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"الرجاء أدخال بريد إليكتروني صالØ.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `لا ينتهي ${sentence(name)} بـ ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} ليست قيمة Ù…Ø³Ù…ÙˆØ Ø¨Ù‡Ø§.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `يجب أن يكون ${sentence(name)} ØرÙًا واØدًا على الأقل.`;\n }\n if (min == 0 && max) {\n return `يجب أن يكون ${sentence(name)} أقل من أو يساوي ${max} ØرÙًا.`;\n }\n if (min === max) {\n return `يجب أن يتكون ${sentence(name)} من الأØر٠${max}.`;\n }\n if (min && max === Infinity) {\n return `يجب أن يكون ${sentence(name)} أكبر من أو يساوي ${min} ØرÙًا.`;\n }\n return `يجب أن يكون ${sentence(name)} بين ${min} Ùˆ ${max} ØرÙًا.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} ليست قيمة Ù…Ø³Ù…ÙˆØ Ø¨Ù‡Ø§.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `لا يمكن أن يكون أكثر من ${args[0]} ${name}.`;\n }\n return `يجب أن يكون ${sentence(name)} أقل من أو يساوي ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"لا ÙŠØ³Ù…Ø Ø¨ØªÙ†Ø³ÙŠÙ‚Ø§Øª الملÙات.\";\n }\n return `يجب أن يكون ${sentence(name)} من النوع: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `لا يمكن أن يكون أقل من ${args[0]} ${name}.`;\n }\n return `يجب أن يكون ${sentence(name)} على الأقل ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†ليس ${name} مسموØًا به.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} يجب ان يكون رقماً`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" أو \")} مطلوب.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} مطلوب.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `لا يبدأ ${sentence(name)} بـ ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `يرجى إدخال عنوان URL صالØ.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"التاريخ المØدد غير صالØ.\"\n};\nvar ar = { ui, validation };\nvar ui2 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"É™lavÉ™ edin\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"çıxarmaq\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Hamısını silin\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Ãœzr istÉ™yirik, bütün sahÉ™lÉ™r düzgün doldurulmayıb.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"TÉ™qdim et\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Heç bir fayl seçilmÉ™yib\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"yuxarı hÉ™rÉ™kÉ™t\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"AÅŸağı hÉ™rÉ™kÉ™t\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"YüklÉ™mÉ™...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Daha çox yüklÉ™\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"NövbÉ™ti\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"ÆvvÉ™lki\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Bütün dÉ™yÉ™rlÉ™ri É™lavÉ™ edin\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"SeçilmiÅŸ dÉ™yÉ™rlÉ™ri É™lavÉ™ edin\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Bütün dÉ™yÉ™rlÉ™ri sil\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"SeçilmiÅŸ dÉ™yÉ™rlÉ™ri sil\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Tarixi seçin\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Tarixi dÉ™yiÅŸdirin\",\n /**\n * Shown when there is something to close\n */\n close: \"BaÄŸlayın\",\n /**\n * Shown when there is something to open.\n */\n open: \"Açıq\"\n};\nvar validation2 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `${name} qÉ™bul edin.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} ${date(args[0])} sonra olmalıdır.`;\n }\n return `${sentence(name)} gÉ™lÉ™cÉ™kdÉ™ olmalıdır.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} yalnız É™lifba sırası simvollarından ibarÉ™t ola bilÉ™r.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} yalnız hÉ™rf vÉ™ rÉ™qÉ™mlÉ™rdÉ™n ibarÉ™t ola bilÉ™r.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} yalnız hÉ™rflÉ™rdÉ™n vÉ™ boÅŸluqlardan ibarÉ™t ola bilÉ™r.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} É™lifba sırası simvolları ehtiva etmÉ™lidir.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} hÉ™rflÉ™ri vÉ™ ya nömrÉ™lÉ™ri ehtiva etmÉ™lidir.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} hÉ™rflÉ™ri vÉ™ ya boÅŸluqları ehtiva etmÉ™lidir.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} simvolu ehtiva etmÉ™lidir.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} böyük olmalıdır.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} kiçik olmalıdır.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} nömrÉ™lÉ™ri ehtiva etmÉ™lidir.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} simvol olmalıdır.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} yalnız böyük hÉ™rflÉ™ri ehtiva edÉ™ bilÉ™r.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} yalnız kiçik hÉ™rflÉ™ri ehtiva edÉ™ bilÉ™r.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} ${date(args[0])} É™vvÉ™l olmalıdır.`;\n }\n return `${sentence(name)} keçmiÅŸdÉ™ olmalıdır.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Bu sahÉ™ sÉ™hv konfiqurasiya edilib vÉ™ onu tÉ™qdim etmÉ™k mümkün deyil.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} ${a} vÉ™ ${b} arasında olmalıdır.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} uyÄŸun gÉ™lmir.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} etibarlı tarix deyil, ${args[0]} formatından istifadÉ™ edin`;\n }\n return \"Bu sahÉ™ sÉ™hv konfiqurasiya edilib vÉ™ onu tÉ™qdim etmÉ™k mümkün deyil\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} ${date(args[0])} vÉ™ ${date(args[1])} arasında olmalıdır`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Etibarlı e-poçt ünvanı daxil edin.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} ${list(args)} ilÉ™ bitmir.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} icazÉ™ verilÉ™n dÉ™yÉ™r deyil.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} É™n azı bir simvol olmalıdır.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} ${max} simvoldan kiçik vÉ™ ya ona bÉ™rabÉ™r olmalıdır.`;\n }\n if (min === max) {\n return `${sentence(name)} ${max} simvol uzunluÄŸunda olmalıdır.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} ${min} simvoldan böyük vÉ™ ya ona bÉ™rabÉ™r olmalıdır.`;\n }\n return `${sentence(name)} ${min} vÉ™ ${max} simvol arasında olmalıdır.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} icazÉ™ verilÉ™n dÉ™yÉ™r deyil.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${args[0]} ${name}-dÉ™n çox ola bilmÉ™z.`;\n }\n return `${sentence(name)} ${args[0]} dÉ™yÉ™rindÉ™n kiçik vÉ™ ya ona bÉ™rabÉ™r olmalıdır.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Fayl formatlarına icazÉ™ verilmir.\";\n }\n return `${sentence(name)} aÅŸağıdakı tipdÉ™ olmalıdır: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${args[0]} ${name}-dÉ™n az ola bilmÉ™z.`;\n }\n return `${sentence(name)} É™n azı ${args[0]} olmalıdır.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†icazÉ™ verilÉ™n ${name} deyil.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} rÉ™qÉ™m olmalıdır.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" vÉ™ ya \")} tÉ™lÉ™b olunur.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} tÉ™lÉ™b olunur.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} ${list(args)} ilÉ™ baÅŸlamır.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `XahiÅŸ edirik, düzgün URL daxil edin.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"SeçilmiÅŸ tarix etibarsızdır.\"\n};\nvar az = { ui: ui2, validation: validation2 };\nvar ui3 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"Добави\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Премахни\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Премахни вÑички\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Извинете, не вÑички полета Ñа попълнени правилно.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Изпрати\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"ÐÑма избран файл\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"ПремеÑтване нагоре\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"ПремеÑтете Ñе надолу\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Зареждане...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Заредете повече\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Следващ\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Предишен\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Добавете вÑички ÑтойноÑти\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"ДобавÑне на избрани ÑтойноÑти\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Премахнете вÑички ÑтойноÑти\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Премахване на избраните ÑтойноÑти\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Избери дата\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"ПромÑна на датата\",\n /**\n * Shown when there is something to close\n */\n close: \"Затвори\",\n /**\n * Shown when there is something to open.\n */\n open: \"Отворете\"\n};\nvar validation3 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `ÐœÐ¾Ð»Ñ Ð¿Ñ€Ð¸ÐµÐ¼ÐµÑ‚Ðµ ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} Ñ‚Ñ€Ñбва да е Ñлед ${date(args[0])}.`;\n }\n return `${sentence(name)} Ñ‚Ñ€Ñбва да бъде в бъдещето.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} може да Ñъдържа Ñамо букви.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} може да Ñъдържа Ñамо букви и цифри.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} може да Ñъдържа Ñамо букви и интервали.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} Ñ‚Ñ€Ñбва да Ñъдържа азбучни знаци.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} Ñ‚Ñ€Ñбва да Ñъдържа букви или цифри.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} Ñ‚Ñ€Ñбва да Ñъдържа букви или интервали.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} Ñ‚Ñ€Ñбва да Ñъдържа Ñимвол.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} Ñ‚Ñ€Ñбва да Ñъдържа главни букви.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} Ñ‚Ñ€Ñбва да Ñъдържа малки букви.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} Ñ‚Ñ€Ñбва да Ñъдържа чиÑла.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} Ñ‚Ñ€Ñбва да бъде Ñимвол.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} може да Ñъдържа Ñамо главни букви.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} може да Ñъдържа Ñамо малки букви.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} Ñ‚Ñ€Ñбва да е преди ${date(args[0])}.`;\n }\n return `${sentence(name)} Ñ‚Ñ€Ñбва да бъде в миналото.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Това поле е конфигурирано неправилно и не може да бъде изпратено`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} Ñ‚Ñ€Ñбва да бъде между ${a} и ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} не Ñъвпада.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} е невалидна дата. МолÑ, използвайте формата ${args[0]}`;\n }\n return \"Това поле е конфигурирано неправилно и не може да бъде изпратено\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} Ñ‚Ñ€Ñбва да бъде между ${date(args[0])} и ${date(\n args[1]\n )}.`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"МолÑ, въведете валиден имейл адреÑ.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} не завършва на ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} е неразрешена ÑтойноÑÑ‚.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} Ñ‚Ñ€Ñбва да има поне един Ñимвол.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} Ñ‚Ñ€Ñбва да бъде по-малко или равно на ${max} Ñимвола.`;\n }\n if (min === max) {\n return `${sentence(name)} Ñ‚Ñ€Ñбва да бъде ${max} Ñимволи дълго.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} Ñ‚Ñ€Ñбва да бъде по-голÑмо или равно на ${min} Ñимвола.`;\n }\n return `${sentence(name)} Ñ‚Ñ€Ñбва да бъде между ${min} и ${max} Ñимвола.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} е неразрешена ÑтойноÑÑ‚.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Ðе може да има повече от ${args[0]} ${name}.`;\n }\n return `${sentence(name)} Ñ‚Ñ€Ñбва да бъде по-малко или равно на ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Ðе Ñа разрешени никакви файлови формати.\";\n }\n return `${sentence(name)} Ñ‚Ñ€Ñбва да бъде от тип: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Ðе може да има по-малко от ${args[0]} ${name}.`;\n }\n return `${sentence(name)} Ñ‚Ñ€Ñбва да бъде поне ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†е неразрешен ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} Ñ‚Ñ€Ñбва да бъде чиÑло.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" или \")} изиÑква Ñе.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} е задължително.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} не започва Ñ ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `МолÑ, въведете валиден URL адреÑ.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Избраната дата е невалидна.\"\n};\nvar bg = { ui: ui3, validation: validation3 };\nvar ui4 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"Dodaj\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Ukloni\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Ukloni sve\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Nažalost, nisu sva polja ispravno popunjena.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"PoÅ¡alji\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Nije odabran nijedan fajl\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Pomjeri gore\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Pomjeri dole\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"UÄitavanje...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"UÄitaj viÅ¡e\",\n /**\n * Show on buttons that navigate state forward\n */\n next: \"Sljedeći\",\n /**\n * Show on buttons that navigate state backward\n */\n prev: \"Prethodni\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Dodajte sve vrijednosti\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Dodajte odabrane vrijednosti\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Uklonite sve vrijednosti\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Uklonite odabrane vrijednosti\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Odaberite datum\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Promjenite datum\",\n /**\n * Shown when there is something to close\n */\n close: \"Zatvori\",\n /**\n * Shown when there is something to open.\n */\n open: \"Otvoreno\"\n};\nvar validation4 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Molimo prihvatite ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} mora biti poslije ${date(args[0])}.`;\n }\n return `${sentence(name)} mora biti u budućnosti.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} može sadržavati samo abecedne karaktere.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} može sadržavati samo slova i brojeve.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} može sadržavati samo slova i razmake.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} mora sadržavati abecedne karaktere.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} mora sadržavati slova ili brojeve.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} mora sadržavati slova ili razmake.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} mora sadržavati simbol.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} mora sadržavati veliko slovo.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} mora sadržavati malo slovo.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} mora sadržavati brojeve.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} mora biti simbol.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} može sadržavati samo velika slova.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} može sadržavati samo mala slova.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} mora biti prije ${date(args[0])}.`;\n }\n return `${sentence(name)} mora biti u proÅ¡losti.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Ovo polje je pogreÅ¡no konfigurirano i ne može se poslati.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} mora biti izmeÄ‘u ${a} i ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} ne podudara se.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} nije ispravan datum, molimo koristite format ${args[0]}`;\n }\n return \"Ovo polje je pogreÅ¡no konfigurirano i ne može se poslati\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} mora biti izmeÄ‘u ${date(args[0])} i ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Molimo Vas da unesete validnu email adresu.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} ne zavrÅ¡ava sa ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} nije dozvoljena vrijednost.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} mora biti najmanje jedan karakter.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} mora biti manje od ili jednako ${max} karaktera.`;\n }\n if (min === max) {\n return `${sentence(name)} treba imati ${max} karaktera.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} mora biti veći od ili jednak ${min} karaktera.`;\n }\n return `${sentence(name)} mora biti izmeÄ‘u ${min} i ${max} karaktera.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} nije dozvoljena vrijednost.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Ne može imati viÅ¡e od ${args[0]} ${name}.`;\n }\n return `${sentence(name)} mora biti manji ili jednak ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Nisu dozvoljeni formati datoteka.\";\n }\n return `${sentence(name)} mora biti tipa: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Ne može imati manje od ${args[0]} ${name}.`;\n }\n return `Mora biti barem ${args[0]} ${name} .`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†nije dozvoljeno ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} mora biti broj.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" ili \")} je obavezno.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} je obavezno.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} ne poÄinje sa ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Unesite važeći link.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Odabrani datum je nevažeći.\"\n};\nvar bs = { ui: ui4, validation: validation4 };\nvar ui5 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"Afegir\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Eliminar\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Eliminar tot\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Disculpi, no tots els camps estan omplerts correctament.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Enviar\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Cap fitxer triat\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Moure amunt\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Moure avall\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Carregant...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Carregar més\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Següent\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Anterior\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Afegir tots els valors\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Afegeix els valors seleccionats\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Eliminar tots els valors\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Elimina els valors seleccionats\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Trieu la data\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Canviar data\",\n /**\n * Shown when there is something to close\n */\n close: \"Tancar\",\n /**\n * Shown when there is something to open.\n */\n open: \"Obert\"\n};\nvar validation5 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://docs.formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Si us plau accepti ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://docs.formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} ha de ser posterior a ${date(args[0])}.`;\n }\n return `${sentence(name)} ha de succeïr al futur.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://docs.formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} només pot contenir carà cters alfabètics.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://docs.formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} només pot contenir lletres i números.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://docs.formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} només pot contenir lletres i espais.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} ha de contenir carà cters alfabètics.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} ha de contenir lletres o números.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} ha de contenir lletres o espais.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} ha de contenir sÃmbol.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} ha de contenir majúscules.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} ha de contenir minúscules.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} ha de contenir números.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} ha de ser un sÃmbol.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} només pot contenir lletres majúscules.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} només pot contenir lletres minúscules.`;\n },\n /**\n * The date is not before\n * @see {@link https://docs.formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} ha de ser anterior a ${date(args[0])}.`;\n }\n return `${sentence(name)} ha d'estar al passat.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://docs.formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Aquest camp està configurat incorrectament i no pot ésser enviat.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} ha d'estar entre ${a} i ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://docs.formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} no concorda.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://docs.formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} no és una data và lida, si us plau empri el format ${args[0]}`;\n }\n return \"Aquest camp està configurat incorrectament i no pot ésser enviat\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://docs.formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} ha d'estar entre ${date(args[0])} i ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://docs.formkit.com/essentials/validation#email}\n */\n email: `Si us plau, entri una adreça d'e-mail và lida.`,\n /**\n * Does not end with the specified value\n * @see {@link https://docs.formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} no acaba amb ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://docs.formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} no és un valor acceptat.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://docs.formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} ha de tenir com a mÃnim un carà cter.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} ha de ser inferior o igual a ${max} carà cters.`;\n }\n if (min === max) {\n return `${sentence(name)} ha de tenir una longitud de ${max} carà cters.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} ha de ser major que o igual a ${min} carà cters.`;\n }\n return `${sentence(name)} ha d'estar entre ${min} i ${max} carà cters.`;\n },\n /**\n * Value is not a match\n * @see {@link https://docs.formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} no és un valor permès.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://docs.formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `No pot tenir més de ${args[0]} ${name}.`;\n }\n return `${sentence(name)} ha de ser menys que o igual a ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://docs.formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"No hi ha cap format de fitxer acceptat.\";\n }\n return `${sentence(name)} ha de ser del tipus: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://docs.formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `No pot tenir menys de ${args[0]} ${name}.`;\n }\n return `${sentence(name)} ha de ser com a mÃnim ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://docs.formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†no s'accepta com a ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://docs.formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} ha de ser un número.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" o \")} es requereix.`;\n },\n /**\n * Required field.\n * @see {@link https://docs.formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} és obligatori.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://docs.formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} no comença amb ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://docs.formkit.com/essentials/validation#url}\n */\n url() {\n return `Si us plau inclogui una url và lida.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"La data seleccionada no és và lida.\"\n};\nvar ca = { ui: ui5, validation: validation5 };\nvar ui6 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"PÅ™idat\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Odebrat\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Odebrat vÅ¡e\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Pardon, ale ne vÅ¡echna pole jsou vyplnÄ›na správnÄ›.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Odeslat\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Žádný soubor nebyl vybrán\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Pohyb nahoru\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Posunout dolů\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"NaÄÃtánÃ...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"NaÄÃst vÃce\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"DalÅ¡Ã\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"PÅ™edchozÃ\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"PÅ™idat vÅ¡echny hodnoty\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"PÅ™idánà vybraných hodnot\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Odstraňte vÅ¡echny hodnoty\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"OdstranÄ›nà vybraných hodnot\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Zvolte datum\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"ZmÄ›nit datum\",\n /**\n * Shown when there is something to close\n */\n close: \"ZavÅ™Ãt\",\n /**\n * Shown when there is something to open.\n */\n open: \"OtevÅ™eno\"\n};\nvar validation6 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `ProsÃm, zaÅ¡krtnÄ›te ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} musà být po ${date(args[0])}.`;\n }\n return `${sentence(name)} musà být v budoucnosti.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} může obsahovat pouze pÃsmena.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} může obsahovat pouze pÃsmena a ÄÃsla.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} musà obsahovat abecednà znaky.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} musà obsahovat pÃsmena nebo ÄÃslice.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} musà obsahovat pÃsmena nebo mezery.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} musà obsahovat symbol.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} musà obsahovat velká pÃsmena.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} musà obsahovat malá pÃsmena.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} musà obsahovat ÄÃsla.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} musà být symbol.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} může obsahovat pouze velká pÃsmena.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} může obsahovat pouze malá pÃsmena.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} musà být pÅ™ed ${date(args[0])}.`;\n }\n return `${sentence(name)} musà být v minulosti.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Toto pole bylo Å¡patnÄ› nakonfigurováno a nemůže být odesláno.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} musà být mezi ${a} a ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} nejsou shodná.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} nenà platné datum, prosÃm, použijte formát ${args[0]}`;\n }\n return \"Toto pole bylo Å¡patnÄ› nakonfigurováno a nemůže být odesláno.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} musà být mezi ${date(args[0])} a ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"ProsÃm, zadejte platnou e-mailovou adresu.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} nekonÄà na ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} nenà povolená hodnota.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} musà mÃt nejménÄ› jeden znak.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} může mÃt maximálnÄ› ${max} znaků.`;\n }\n if (min === max) {\n return `${sentence(name)} by mÄ›lo být ${max} znaků dlouhé.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} musà obsahovat minimálnÄ› ${min} znaků.`;\n }\n return `${sentence(name)} musà být dlouhé ${min} až ${max} znaků.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} nenà povolená hodnota.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Nelze použÃt vÃce než ${args[0]} ${name}.`;\n }\n return `${sentence(name)} musà mÃt menÅ¡Ã nebo rovno než ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Nejsou nakonfigurovány povolené typy souborů.\";\n }\n return `${sentence(name)} musà být typu: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Nelze mÃt ménÄ› než ${args[0]} ${name}.`;\n }\n return `${sentence(name)} musà být minimálnÄ› ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†nenà dovolená hodnota pro ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} musà být ÄÃslo.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" nebo \")} je vyžadován.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} je povinné.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} nezaÄÃná na ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Zadejte prosÃm platnou adresu URL.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Vybrané datum je neplatné.\"\n};\nvar cs = { ui: ui6, validation: validation6 };\nvar ui7 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"Tilføj\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Fjern\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Fjern alle\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Alle felter er ikke korrekt udfyldt.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Send\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Ingen filer valgt\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Flyt op\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Flyt ned\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Indlæser...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Indlæs mere\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Næste\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Forrige\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Tilføj alle værdier\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Tilføj valgte værdier\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Fjern alle værdier\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Fjern valgte værdier\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Vælg dato\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Skift dato\",\n /**\n * Shown when there is something to close\n */\n close: \"Luk\",\n /**\n * Shown when there is something to open.\n */\n open: \"Ã…bn\"\n};\nvar validation7 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Accepter venligst ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} skal være senere end ${date(args[0])}.`;\n }\n return `${sentence(name)} skal være i fremtiden.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} kan kun indeholde bogstaver.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} kan kun indeholde bogstaver og tal.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} kan kun indeholde bogstaver og mellemrum.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} skal indeholde alfabetiske tegn.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} skal indeholde bogstaver eller tal.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} skal indeholde bogstaver eller mellemrum.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} skal indeholde symbol.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} skal indeholde store bogstaver.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} skal indeholde smÃ¥ bogstaver.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} skal indeholde tal.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} skal være et symbol.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} kan kun indeholde store bogstaver.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} kan kun indeholde smÃ¥ bogstaver.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} skal være før ${date(args[0])}.`;\n }\n return `${sentence(name)} skal være før i dag.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Dette felt er ikke konfigureret korrekt og kan derfor ikke blive sendt.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} skal være mellem ${a} og ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} matcher ikke.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} er ikke gyldig, brug venligst formatet ${args[0]}`;\n }\n return \"Dette felt er ikke konfigureret korrekt og kan derfor ikke blive sendt.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} skal være mellem ${date(args[0])} og ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Indtast venligst en gyldig email-adresse.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} slutter ikke med ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} er ikke en gyldig værdi.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} skal være pÃ¥ mindst ét tegn.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} skal være pÃ¥ højst ${max} tegn.`;\n }\n if (min === max) {\n return `${sentence(name)} skal være ${max} tegn lange.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} skal være pÃ¥ mindst ${min} tegn.`;\n }\n return `${sentence(name)} skal være pÃ¥ mindst ${min} og højst ${max} tegn.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} er ikke en gyldig værdi.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Kan ikke have flere end ${args[0]} ${name}.`;\n }\n return `${sentence(name)} skal være mindre eller lig med ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Ingen filformater tilladt.\";\n }\n return `${sentence(name)} skal være af filtypen: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Kan ikke have mindre end ${args[0]} ${name}.`;\n }\n return `${sentence(name)} skal være mindst ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†er ikke en tilladt ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} skal være et tal.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" eller \")} er pÃ¥krævet.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} er pÃ¥krævet.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} starter ikke med ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Indtast en gyldig URL.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Den valgte dato er ugyldig.\"\n};\nvar da = { ui: ui7, validation: validation7 };\nvar ui8 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"Hinzufügen\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Entfernen\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Alles entfernen\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Entschuldigung, nicht alle Felder wurden korrekt ausgefüllt.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Senden\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Keine Datei ausgewählt\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Gehe nach oben\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Gehen Sie nach unten\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Wird geladen...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Mehr laden\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Weiter\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Zurück\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Alle Werte hinzufügen\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Ausgewählte Werte hinzufügen\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Alle Werte entfernen\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Ausgewählte Werte entfernen\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Datum wählen\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Datum ändern\",\n /**\n * Shown when there is something to close\n */\n close: \"Schliessen\",\n /**\n * Shown when there is something to open.\n */\n open: \"Offen\"\n};\nvar validation8 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Bitte ${name} akzeptieren.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} muss nach dem ${date(args[0])} liegen.`;\n }\n return `${sentence(name)} muss in der Zukunft liegen.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} darf nur Buchstaben enthalten.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} darf nur Buchstaben und Zahlen enthalten.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} dürfen nur Buchstaben und Leerzeichen enthalten.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} muss alphabetische Zeichen enthalten.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} muss Buchstaben oder Zahlen enthalten.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} muss Buchstaben oder Leerzeichen enthalten.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} muss ein Symbol enthalten.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} muss Großbuchstaben enthalten.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} muss Kleinbuchstaben enthalten.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} muss Zahlen enthalten.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} muss ein Symbol sein.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} kann nur Großbuchstaben enthalten.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} kann nur Kleinbuchstaben enthalten.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} muss vor dem ${date(args[0])} liegen.`;\n }\n return `${sentence(name)} muss in der Vergangenheit liegen.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Dieses Feld wurde falsch konfiguriert und kann nicht übermittelt werden.`;\n }\n return `${sentence(name)} muss zwischen ${args[0]} und ${args[1]} sein.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} stimmt nicht überein.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} ist kein gültiges Datum im Format ${args[0]}.`;\n }\n return \"Dieses Feld wurde falsch konfiguriert und kann nicht übermittelt werden.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} muss zwischen ${date(args[0])} und ${date(\n args[1]\n )} liegen.`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"E-Mail Adresse ist ungültig.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} endet nicht mit ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} enthält einen ungültigen Wert.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = first <= second ? first : second;\n const max = second >= first ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} muss mindestens ein Zeichen enthalten.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} darf maximal ${max} Zeichen enthalten.`;\n }\n if (min === max) {\n return `${sentence(name)} sollte ${max} Zeichen lang sein.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} muss mindestens ${min} Zeichen enthalten.`;\n }\n return `${sentence(name)} muss zwischen ${min} und ${max} Zeichen enthalten.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} enthält einen ungültigen Wert.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Darf maximal ${args[0]} ${name} haben.`;\n }\n return `${sentence(name)} darf maximal ${args[0]} sein.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Keine Dateiformate konfiguriert.\";\n }\n return `${sentence(name)} muss vom Typ ${args[0]} sein.`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Mindestens ${args[0]} ${name} erforderlich.`;\n }\n return `${sentence(name)} muss mindestens ${args[0]} sein.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†ist kein gültiger Wert für ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} muss eine Zahl sein.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" oder \")} ist erforderlich.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} ist erforderlich.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} beginnt nicht mit ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Bitte geben Sie eine gültige URL ein.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Das gewählte Datum ist ungültig.\"\n};\nvar de = { ui: ui8, validation: validation8 };\nvar ui9 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"Î Ïοσθήκη\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"ΑφαίÏεση\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"ΑφαίÏεση όλων\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"ΛυποÏμαστε, υπάÏχουν πεδία που δεν Îχουν συμπληÏωθεί σωστά.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Υποβολή\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"ΚανÎνα αÏχείο δεν Îχει επιλεγεί\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Î Ïος τα επάνω\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Î Ïος τα κάτω\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"ΦοÏτώνει...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"ΦόÏτωση πεÏισσότεÏων\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Επόμενη\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Î ÏοηγοÏμενο\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Î Ïοσθήκη όλων των τιμών\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Î Ïοσθήκη επιλεγμÎνων τιμών\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"ΚατάÏγηση όλων των τιμών\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"ΑφαίÏεση επιλεγμÎνων τιμών\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"ΕπιλÎξτε ημεÏομηνία\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Αλλαγή ημεÏομηνίας\",\n /**\n * Shown when there is something to close\n */\n close: \"Κλείσιμο\",\n /**\n * Shown when there is something to open.\n */\n open: \"Ανοιχτό\"\n};\nvar validation9 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `ΠαÏακαλώ αποδεχτείτε το ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} Ï€ÏÎπει να είναι μετά της ${date(args[0])}.`;\n }\n return `${sentence(name)} Ï€ÏÎπει να είναι στο μÎλλον.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} μποÏεί να πεÏιÎχει μόνο αλφαβητικοÏÏ‚ χαÏακτήÏες.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} μποÏεί να πεÏιÎχει μόνο γÏάμματα και αÏιθμοÏÏ‚.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} μποÏεί να πεÏιÎχει μόνο γÏάμματα και κενά.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `Το ${sentence(name)} Ï€ÏÎπει να πεÏιÎχει αλφαβητικοÏÏ‚ χαÏακτήÏες.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `Το ${sentence(name)} Ï€ÏÎπει να πεÏιÎχει γÏάμματα ή αÏιθμοÏÏ‚.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} Ï€ÏÎπει να πεÏιÎχει γÏάμματα ή κενά.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `Το ${sentence(name)} Ï€ÏÎπει να πεÏιÎχει το σÏμβολο.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `Το ${sentence(name)} Ï€ÏÎπει να πεÏιÎχει κεφαλαία γÏάμματα.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `Το ${sentence(name)} Ï€ÏÎπει να πεÏιÎχει πεζά γÏάμματα.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `Το ${sentence(name)} Ï€ÏÎπει να πεÏιÎχει αÏιθμοÏÏ‚.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `Το ${sentence(name)} Ï€ÏÎπει να είναι Îνα σÏμβολο.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `Το ${sentence(name)} μποÏεί να πεÏιÎχει μόνο κεφαλαία γÏάμματα.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `Το ${sentence(name)} μποÏεί να πεÏιÎχει μόνο πεζά γÏάμματα.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} Ï€ÏÎπει να είναι Ï€Ïιν της ${date(args[0])}.`;\n }\n return `${sentence(name)} Ï€ÏÎπει να είναι στο παÏελθόν.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Αυτό το πεδίο Îχει Ïυθμιστεί λανθασμÎνα και δεν μποÏεί να υποβληθεί.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} Ï€ÏÎπει να είναι Î¼ÎµÏ„Î±Î¾Ï ${a} και ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} δεν ταιÏιάζει.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(\n name\n )} δεν είναι ÎγυÏη ημεÏομηνία, παÏακαλώ ακολουθήστε την διαμόÏφωση ${args[0]}`;\n }\n return \"Αυτό το πεδίο Îχει Ïυθμιστεί λανθασμÎνα και δεν μποÏεί να υποβληθεί\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} Ï€ÏÎπει να είναι Î¼ÎµÏ„Î±Î¾Ï ${date(args[0])} και ${date(\n args[1]\n )}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"ΠαÏακαλώ πληκτÏολογήστε μια ÎγκυÏη email διεÏθυνση. \",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} δεν καταλήγει με ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} δεν είναι μια επιτÏεπτή τιμή.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} Ï€ÏÎπει να είναι τουλάχιστον ενός χαÏακτήÏα.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} Ï€ÏÎπει να είναι λιγότεÏοι ή ίσοι με ${max} χαÏακτήÏες.`;\n }\n if (min === max) {\n return `Το ${sentence(name)} θα Ï€ÏÎπει να Îχει μήκος ${max} χαÏακτήÏες.`;\n }\n if (min && max === Infinity) {\n return `${sentence(\n name\n )} Ï€ÏÎπει να είναι πεÏισσότεÏοι ή ίσοι με ${min} χαÏακτήÏες.`;\n }\n return `${sentence(name)} Ï€ÏÎπει να είναι Î¼ÎµÏ„Î±Î¾Ï ${min} και ${max} χαÏακτήÏες.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} δεν είναι μια επιτÏεπτή τιμή.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Δεν μποÏεί να Îχει παÏαπάνω από ${args[0]} ${name}.`;\n }\n return `${sentence(name)} Ï€ÏÎπει αν είναι λιγότεÏο ή ίσο με το ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Δεν επιτÏÎπονται αÏχεία.\";\n }\n return `${sentence(name)} Ï€ÏÎπει να είναι Ï„Ïπου: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Δεν μποÏεί να είναι λιγότεÏο από ${args[0]} ${name}.`;\n }\n return `${sentence(name)} Ï€ÏÎπει να είναι τουλάχιστον ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†δεν είναι μια επιτÏεπτή ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} Ï€ÏÎπει να είναι αÏιθμός.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" ή \")} απαιτείται.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} είναι υποχÏεωτικό.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} δεν αÏχίζει με ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `ΠαÏακαλώ εισάγετε Îνα ÎγκυÏο URL.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Η επιλεγμÎνη ημεÏομηνία δεν είναι ÎγκυÏη.\"\n};\nvar el = { ui: ui9, validation: validation9 };\nvar ui10 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"Add\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Remove\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Remove all\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Sorry, not all fields are filled out correctly.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Submit\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"No file chosen\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Move up\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Move down\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Loading...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Load more\",\n /**\n * Show on buttons that navigate state forward\n */\n next: \"Next\",\n /**\n * Show on buttons that navigate state backward\n */\n prev: \"Previous\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Add all values\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Add selected values\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Remove all values\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Remove selected values\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Choose date\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Change date\",\n /**\n * Shown above error summaries when someone attempts to submit a form with\n * errors and the developer has implemented `<FormKitSummary />`.\n */\n summaryHeader: \"There were errors in your form.\",\n /*\n * Shown when there is something to close\n */\n close: \"Close\",\n /**\n * Shown when there is something to open.\n */\n open: \"Open\"\n};\nvar validation10 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Please accept the ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} must be after ${date(args[0])}.`;\n }\n return `${sentence(name)} must be in the future.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} can only contain alphabetical characters.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} can only contain letters and numbers.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} can only contain letters and spaces.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} must contain alphabetical characters.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} must contain letters or numbers.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} must contain letters or spaces.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} must contain a symbol.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} must contain an uppercase letter.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} must contain a lowercase letter.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} must contain numbers.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} must be a symbol.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} can only contain uppercase letters.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name, args }) {\n let postfix = \"\";\n if (Array.isArray(args) && args.length) {\n if (args[0] === \"allow_non_alpha\")\n postfix = \", numbers and symbols\";\n if (args[0] === \"allow_numeric\")\n postfix = \" and numbers\";\n if (args[0] === \"allow_numeric_dashes\")\n postfix = \", numbers and dashes\";\n }\n return `${sentence(name)} can only contain lowercase letters${postfix}.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} must be before ${date(args[0])}.`;\n }\n return `${sentence(name)} must be in the past.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `This field was configured incorrectly and can’t be submitted.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} must be between ${a} and ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} does not match.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} is not a valid date, please use the format ${args[0]}`;\n }\n return \"This field was configured incorrectly and can’t be submitted\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} must be between ${date(args[0])} and ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Please enter a valid email address.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} doesn’t end with ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} is not an allowed value.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} must be at least one character.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} must be less than or equal to ${max} characters.`;\n }\n if (min === max) {\n return `${sentence(name)} should be ${max} characters long.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} must be greater than or equal to ${min} characters.`;\n }\n return `${sentence(name)} must be between ${min} and ${max} characters.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} is not an allowed value.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Cannot have more than ${args[0]} ${name}.`;\n }\n return `${sentence(name)} must be no more than ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"No file formats allowed.\";\n }\n return `${sentence(name)} must be of the type: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Cannot have fewer than ${args[0]} ${name}.`;\n }\n return `${sentence(name)} must be at least ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†is not an allowed ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} must be a number.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" or \")} is required.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} is required.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} doesn’t start with ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Please enter a valid URL.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"The selected date is invalid.\"\n};\nvar en = { ui: ui10, validation: validation10 };\nvar ui11 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"Añadir\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Quitar\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Quitar todos\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Discúlpe, los campos no fueron completados correctamente.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Enviar\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Archivo no seleccionado\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Moverse hacia arriba\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Moverse hacia abajo\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Cargando...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Cargar más\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Próximo\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Anterior\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Añadir todos los valores\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Añadir valores seleccionados\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Eliminar todos los valores\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Eliminar los valores seleccionados\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Elige fecha\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Cambiar fecha\",\n /**\n * Shown when there is something to close\n */\n close: \"Cerrar\",\n /**\n * Shown when there is something to open.\n */\n open: \"Abrir\"\n};\nvar validation11 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Acepte el ${name} por favor.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} debe ser posterior a ${date(args[0])}.`;\n }\n return `${sentence(name)} debe ser una fecha futura.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} debe contener solo caractéres alfabéticos.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} debe ser alfanumérico.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} espacios alfa solo pueden contener letras y espacios.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} debe contener caracteres alfabéticos.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} debe contener letras o números.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} debe contener letras o espacios.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} debe contener un sÃmbolo.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} debe estar en mayúsculas.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} debe contener minúsculas.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} debe contener números.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} debe ser un sÃmbolo.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} solo puede contener letras mayúsculas.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} solo puede contener letras minúsculas.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} debe ser anterior a ${date(args[0])}.`;\n }\n return `${sentence(name)} debe ser una fecha pasada.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `El campo no fue completado correctamente y no puede ser enviado.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} debe estar entre ${a} y ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} no coincide.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} no es una fecha válida, por favor utilice el formato ${args[0]}`;\n }\n return \"El campo no fue completado correctamente y no puede ser enviado.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} debe estar entre ${date(args[0])} y ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Ingrese una dirección de correo electrónico válida por favor.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} no termina con ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} no es un valor permitido.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} debe tener al menos una letra.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} debe tener como máximo ${max} caractéres.`;\n }\n if (min === max) {\n return `${sentence(name)} debe tener ${max} caracteres.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} debe tener como mÃnimo ${min} caractéres.`;\n }\n return `${sentence(name)} debe tener entre ${min} y ${max} caractéres.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} no es un valor permitido.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `No puede tener más de ${args[0]} ${name}.`;\n }\n return `${sentence(name)} debe ser menor o igual a ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"No existen formatos de archivos permitidos.\";\n }\n return `${sentence(name)} debe ser del tipo: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `No puede tener menos de ${args[0]} ${name}.`;\n }\n return `${sentence(name)} debe ser de al menos ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†no es un valor permitido de ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} debe ser un número.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" o \")} se requiere estar.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} es requerido.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} debe comenzar con ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Introduce una URL válida.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"La fecha seleccionada no es válida.\"\n};\nvar es = { ui: ui11, validation: validation11 };\nvar ui12 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"اÙزودن\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"ØØ°Ù\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"همه را Øذ٠کنید\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"همه Ùیلدها به‌درستی پر نشده‌اند\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"ثبت\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"هیچ Ùایلی انتخاب نشده است\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Øرکت به بالا\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Øرکت به پایین\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"در Øال بارگذاری...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"بارگذاری بیشتر\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"بعدی\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"قبلی\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"تمام مقادیر را اضاÙÙ‡ کنید\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"مقادیر انتخاب شده را اضاÙÙ‡ کنید\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"تمام مقادیر را Øذ٠کنید\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Øذ٠مقادیر انتخاب شده\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"تاریخ را انتخاب کنید\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"تغییر تاریخ\",\n /**\n * Shown when there is something to close\n */\n close: \"بستن\",\n /**\n * Shown when there is something to open.\n */\n open: \"باز کردن\"\n};\nvar validation12 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `لطÙاً ${name} را بپذیرید.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} باید بعد از تاریخ ${date(args[0])} باشد.`;\n }\n return `${sentence(name)} باید مربوط به آینده باشد.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} Ùقط میتواند شامل Øرو٠الÙبا باشد.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} Ùقط میتواند شامل Øرو٠و اعداد باشد.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} Ùقط Ù…ÛŒ تواند شامل Øرو٠و Ùاصله باشد.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} باید Øاوی Øرو٠الÙبا باشد.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} باید Øاوی Øرو٠یا اعداد باشد.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} باید Øاوی Øرو٠یا Ùاصله باشد.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} باید Øاوی نماد باشد.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} باید دارای Øرو٠بزرگ باشد.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} باید Øاوی Øرو٠کوچک باشد.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} باید Øاوی اعداد باشد.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} باید یک نماد باشد.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} تنها می‌تواند شامل Øرو٠بزرگ باشد.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} تنها می‌تواند شامل Øرو٠کوچک باشد.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} باید قبل از تاریخ ${date(args[0])} باشد.`;\n }\n return `${sentence(name)} باید مربوط به گذشته باشد.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `این Ùیلد به اشتباه پیکربندی شده است Ùˆ قابل ارسال نیست`;\n }\n return `${sentence(name)} باید بین ${args[0]} Ùˆ ${args[1]} باشد.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} مطابقت ندارد.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} تاریخ معتبری نیست، لطÙاً از قالب ${args[0]} استÙاده کنید\n`;\n }\n return \"این Ùیلد به اشتباه پیکربندی شده است Ùˆ قابل ارسال نیست\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} باید بین ${date(args[0])} Ùˆ ${date(args[1])} باشد.`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"لطÙا آدرس ایمیل معتبر وارد کنید.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} باید به ${list(args)} ختم شود.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} مجاز نیست.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = first <= second ? first : second;\n const max = second >= first ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} باید Øداقل یک کاراکتر باشد.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} باید کمتر یا برابر با ${max} کاراکتر باشد.`;\n }\n if (min === max) {\n return `${sentence(name)} باید ${max} کاراکتر طولانی باشد.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} باید بزرگتر یا برابر با ${min} کاراکتر باشد.`;\n }\n return `${sentence(name)} باید بین ${min} Ùˆ ${max} کاراکتر باشد.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} مجاز نیست.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${name} نمی تواند بیش از ${args[0]} باشد.`;\n }\n return `${sentence(name)} باید کمتر یا برابر با ${args[0]} باشد.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Ùرمت Ùایل مجاز نیست.\";\n }\n return `${sentence(name)} باید از این نوع باشد: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${name} نمی تواند کمتر از ${args[0]} باشد.\n`;\n }\n return `${sentence(name)} باید Øداقل ${args[0]} باشد.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `\"${value}\" یک ${name} مجاز نیست.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} باید عدد باشد.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" یا \")} مورد نیاز است.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `پر کردن ${sentence(name)} اجباری است.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} باید با ${list(args)} شروع شود.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `لطÙا یک URL معتبر وارد کنید.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"تاریخ انتخاب شده نامعتبر است\"\n};\nvar fa = { ui: ui12, validation: validation12 };\nvar ui13 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"Lisää\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Poista\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Poista kaikki\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Kaikkia kenttiä ei ole täytetty oikein.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Tallenna\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Ei valittuja tiedostoja\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Siirrä ylös\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Siirrä alas\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Ladataan...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Lataa lisää\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Seuraava\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Edellinen\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Lisää kaikki arvot\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Lisää valitut arvot\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Poista kaikki arvot\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Poista valitut arvot\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Valitse päivämäärä\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Vaihda päivämäärä\",\n /**\n * Shown when there is something to close\n */\n close: \"Sulje\",\n /**\n * Shown when there is something to open.\n */\n open: \"Avoinna\"\n};\nvar validation13 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Ole hyvä ja hyväksy ${name}`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} tulee olla ${date(args[0])} jälkeen.`;\n }\n return `${sentence(name)} on oltava tulevaisuudessa.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} saa sisältää vain kirjaimia.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} saa sisältää vain kirjaimia ja numeroita.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} voivat sisältää vain kirjaimia ja välilyöntejä.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} on sisällettävä aakkoselliset merkit.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} täytyy sisältää kirjaimia tai numeroita.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} täytyy sisältää kirjaimia tai välilyöntejä.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} täytyy sisältää symboli.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} täytyy sisältää isoja kirjaimia.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} täytyy sisältää pieniä kirjaimia.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} täytyy sisältää numeroita.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} on oltava symboli.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} voi sisältää vain isoja kirjaimia.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} voi sisältää vain pieniä kirjaimia.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} tulee olla ennen: ${date(args[0])}.`;\n }\n return `${sentence(name)} on oltava menneisyydessä.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Tämä kenttä on täytetty virheellisesti joten sitä ei voitu lähettää.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} on oltava välillä ${a} - ${b} `;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} ei täsmää.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(\n name\n )} ei ole validi päivämäärä, ole hyvä ja syötä muodossa: ${args[0]}`;\n }\n return \"Tämä kenttä on täytetty virheellisesti joten sitä ei voitu lähettää.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} on oltava välillä ${date(args[0])} - ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Syötä validi sähköpostiosoite.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} tulee päättyä ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} ei ole sallittu vaihtoehto.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} on oltava vähintään yksi merkki.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} on oltava ${max} tai alle merkkiä.`;\n }\n if (min === max) {\n return `${sentence(name)} pitäisi olla ${max} merkkiä pitkä.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} on oltava vähintään ${min} merkkiä.`;\n }\n return `${sentence(name)} on oltava vähintään ${min}, enintään ${max} merkkiä.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} ei ole sallittu arvo.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Valitse enintään ${args[0]} ${name} vaihtoehtoa.`;\n }\n return `${sentence(name)} on oltava ${args[0]} tai alle.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Tiedostoja ei sallita.\";\n }\n return `${sentence(name)} tulee olla ${args[0]}-tiedostotyyppiä.`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Valitse vähintään ${args[0]} ${name} vaihtoehtoa.`;\n }\n return `${sentence(name)} tulee olla ${args[0]} tai suurempi.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†ei ole sallittu ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `Kentän ${sentence(name)} tulee olla numero.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" tai \")} vaaditaan.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} vaaditaan.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} on alettava ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Anna kelvollinen URL-osoite.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Valittu päivämäärä on virheellinen.\"\n};\nvar fi = { ui: ui13, validation: validation13 };\nvar ui14 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"Ajouter\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Supprimer\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Enlever tout\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Désolé, tous les champs ne sont pas remplis correctement.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Valider\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Aucun fichier choisi\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Déplacez-vous\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Déplacez-vous\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Chargement...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Chargez plus\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Suivant\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Précédent\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Ajouter toutes les valeurs\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Ajouter les valeurs sélectionnées\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Supprimer toutes les valeurs\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Supprimer les valeurs sélectionnées\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Choisissez la date\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Modifier la date\",\n /**\n * Shown when there is something to close\n */\n close: \"Fermer\",\n /**\n * Shown when there is something to open.\n */\n open: \"Ouvrir\"\n};\nvar validation14 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Veuillez accepter le ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} doit être postérieure au ${date(args[0])}.`;\n }\n return `${sentence(name)} doit être dans le futur.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} ne peut contenir que des caractères alphabétiques.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} ne peut contenir que des lettres et des chiffres.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} ne peuvent contenir que des lettres et des espaces.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} doit contenir des caractères alphabétiques.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} doit contenir au moins un lettre ou nombre.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} doit contenir des lettres ou des espaces.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} doit contenir un symbole.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} doit contenir au moins une majuscule.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} doit contenir au moins une minuscule.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} doit contenir des chiffres.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} doit être un symbole.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} ne peuvent contenir que des majuscules.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} ne peut contenir que des lettres minuscules.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} doit être antérieure au ${date(args[0])}.`;\n }\n return `${sentence(name)} doit être dans le passé.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Ce champ a été configuré de manière incorrecte et ne peut pas être soumis.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} doit être comprise entre ${a} et ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} ne correspond pas.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(\n name\n )} n'est pas une date valide, veuillez utiliser le format ${args[0]}`;\n }\n return \"Ce champ a été configuré de manière incorrecte et ne peut pas être soumis.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} doit être comprise entre ${date(args[0])} et ${date(\n args[1]\n )}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Veuillez saisir une adresse email valide.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} ne se termine pas par ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} n'est pas une valeur autorisée.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} doit comporter au moins un caractère.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} doit être inférieur ou égal à ${max} caractères.`;\n }\n if (min === max) {\n return `${sentence(name)} doit contenir ${max} caractères.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} doit être supérieur ou égal à ${min} caractères.`;\n }\n return `${sentence(name)} doit être comprise entre ${min} et ${max} caractères.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} n'est pas une valeur autorisée.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Ne peut pas avoir plus de ${args[0]} ${name}.`;\n }\n return `${sentence(name)} doit être inférieur ou égal à ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Aucun format de fichier n’est autorisé\";\n }\n return `${sentence(name)} doit être du type: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Ne peut pas avoir moins de ${args[0]} ${name}.`;\n }\n return `${sentence(name)} doit être au moins de ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†n'est pas un ${name} autorisé.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} doit être un nombre.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" ou \")} est requis.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} est requis.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} ne commence pas par ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Entrez une URL valide.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: `La date sélectionnée n'est pas valide.`\n};\nvar fr = { ui: ui14, validation: validation14 };\nvar ui15 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"Foeg ta\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Ferwider\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Ferwider alles\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Sorry, net alle fjilden binne korrekt ynfolle.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Ferstjoere\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Gjin bestân keazen\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Gean omheech\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Nei ûnderen\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Lade…\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Mear lade\",\n /**\n * Show on buttons that navigate state forward\n */\n next: \"Folgende\",\n /**\n * Show on buttons that navigate state backward\n */\n prev: \"Foarige\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Foegje alle wearden ta\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Foegje selektearre wearden ta\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Fuortsmite alle wearden\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Fuortsmite selektearre wearden\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Kies datum\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Feroarje datum\"\n};\nvar validation15 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Akseptearje de ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} moat nei ${date(args[0])} wêze.`;\n }\n return `${sentence(name)} moat yn de takomst lizze.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} mei allinne alfabetyske tekens befetsje.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} mei allinne letters en sifers befetsje.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} mei allinne letters en spaasjes befetsje.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} must contain alphabetical characters.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} must contain letters and numbers.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} must contain letters and spaces.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} must contain symbol.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} must contain uppercase.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} must contain lowercase.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} must contain number.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} can only contain symbol.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} can only contain uppercase.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} can only contain lowercase.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} moat foar ${date(args[0])} falle.`;\n }\n return `${sentence(name)} moat yn it ferline wêze.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Dit fjild is ferkeard konfigurearre en kin net ferstjoerd wurde.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} moat tusken ${a} en ${b} lizze.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} komt net oerien.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} is gjin jildige datum, brûk de notaasje ${args[0]}`;\n }\n return \"Dit fjild is ferkeard konfigurearre en kin net ferstjoerd wurde\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} moat tusken ${date(args[0])} en ${date(args[1])} lizze`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Folje in jildich e-mailadres yn.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} einiget net mei ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} is gjin tastiene wearde.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} moat minimaal ien teken wêze.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} moat lytser wêze as of gelyk wêze oan ${max} tekens.`;\n }\n if (min === max) {\n return `${sentence(name)} moat ${max} tekens lang wêze.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} moat grutter wêze as of gelyk wêze oan ${min} tekens.`;\n }\n return `${sentence(name)} moat tusken de ${min} en ${max} tekens befetsje.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} is gjin tastiene wearde.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Mei net mear as ${args[0]} ${name} hawwe.`;\n }\n return `${sentence(name)} moat lytser wêze as of gelyk wêze oan ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Gjin bestânsnotaasjes tastien.\";\n }\n return `${sentence(name)} moat fan it type: ${args[0]} wêze`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Mei net minder as ${args[0]} ${name} hawwe.`;\n }\n return `${sentence(name)} moat minimaal ${args[0]} wêze.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `\"${value}\" is gjin tastiene ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} moat in getal wêze.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" of \")} is ferplichte.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} is ferplicht.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} begjint net mei ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Doch der in jildige url by.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"De selektearre datum is ûnjildich.\"\n};\nvar fy = { ui: ui15, validation: validation15 };\nvar ui16 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"הוסף\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"מחק\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"מחק הכל\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"×©×™× ×œ×‘, ×œ× ×›×œ השדות מל××™× ×›×¨×וי.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"שלח\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"×œ× × ×‘×—×¨ קובץ..\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"×”×–×– למעלה\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"×”×–×– למטה\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"טוען...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"טען יותר\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"הב×\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"הקוד×\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"הוסף ×ת כל הערכי×\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"הוספת ×¢×¨×›×™× × ×‘×—×¨×™×\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"הסר ×ת כל הערכי×\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"הסר ×¢×¨×›×™× × ×‘×—×¨×™×\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"בחר ת×ריך\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"×©×™× ×•×™ ת×ריך\",\n /**\n * Shown when there is something to close\n */\n close: \"סגור\",\n /**\n * Shown when there is something to open.\n */\n open: \"פתוח\"\n};\nvar validation16 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `×× × ×שר ×ת ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} חייב להיות ×חרי ${date(args[0])}.`;\n }\n return `${sentence(name)} חייב להיות בעתיד.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} חייב להכיל ×ותיות ×לפבת.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} יכול להכיל רק ×ž×¡×¤×¨×™× ×•×ותיות.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} יכול להכיל רק ×ותיות ורווחי×.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} חייב להכיל ×ª×•×•×™× ×לפביתיי×.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} חייב להכיל ×ותיות ×ו מספרי×.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} חייב להכיל ×ותיות ×ו רווחי×.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} חייב להכיל סמל.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} חייב להכיל ×ותיות רישיות.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} חייב להכיל ×ותיות ×§×˜× ×•×ª.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} חייב להכיל מספרי×.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} חייב להיות סמל.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} יכול להכיל ×ותיות רישיות בלבד.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} יכול להכיל רק ×ותיות ×§×˜× ×•×ª.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} חייב להיות ×œ×¤× ×™ ${date(args[0])}.`;\n }\n return `${sentence(name)} חייב להיות בעבר`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `שדה ×–×” ×œ× ×”×•×’×“×¨ כר×וי ×•×œ× ×™×›×•×œ להישלח.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} חייב להיות בין ${a} ו- ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} ×œ× ×ž×ª××™×.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} ×”×•× ×œ× ×ª×ריך תקין, ×× × ×”×©×ª×ž×© בפורמט ${args[0]}`;\n }\n return \"שדה ×–×” ×œ× ×”×•×’×“×¨ כר×וי ×•×œ× ×™×›×•×œ להישלח.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} חייב להיות בין ${date(args[0])} ו- ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"×× × ×”×§×œ×“ ×ימייל תקין.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} ×œ× ×ž×¡×ª×™×™× ×‘- ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} ×”×•× ×œ× ×¢×¨×š מורשה.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} חייב להיות לפחות תו ×חד.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} חייב להיות פחות ×ו שווה ל- ${max} תווי×.`;\n }\n if (min === max) {\n return `${sentence(name)} צריך להיות ${max} ×ª×•×•×™× ×רוכי×.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} חייב להיות גדול ×ו שווה ל- ${min} תווי×.`;\n }\n return `${sentence(name)} חייב להיות בין ${min} ו- ${max} תווי×.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} ×”×•× ×œ× ×¢×¨×š תקין.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${name} ×œ× ×™×›×•×œ להיות ×¢× ×™×•×ª×¨ מ- ${args[0]}.`;\n }\n return `${sentence(name)} חייב להיות פחות ×ו שווה ל- ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"פורמט הקובץ ×œ× ×ž×•×¨×©×”.\";\n }\n return `${sentence(name)} חייב להיות מסוג: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${name} ×œ× ×™×›×•×œ להיות ×¢× ×¤×—×•×ª מ- ${args[0]}.`;\n }\n return `${sentence(name)} חייב להיות לפחות ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}â€ ×œ× ×ž×ª××™× ×œ- ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} חייב להיות מספר.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" ×ו \")} × ×“×¨×©.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} ×”×™× ×• חובה.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} ×œ× ×ž×ª×—×™×œ ב- ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `הזן כתובת URL חוקית.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"הת×ריך ×©× ×‘×—×¨ ××™× ×• חוקי.\"\n};\nvar he = { ui: ui16, validation: validation16 };\nvar ui17 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"Dodaj\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Ukloni\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Pojedina polja nisu ispravno ispunjena.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Predaj\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Pomaknite se gore\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Pomakni se dolje\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"UÄitavanje...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"UÄitaj viÅ¡e\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Sljedeći\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"prijaÅ¡nji\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Dodajte sve vrijednosti\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Dodavanje odabranih vrijednosti\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Ukloni sve vrijednosti\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Ukloni odabrane vrijednosti\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Odaberite datum\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Promijeni datum\",\n /**\n * Shown when there is something to close\n */\n close: \"Zatvoriti\",\n /**\n * Shown when there is something to open.\n */\n open: \"Otvori\"\n};\nvar validation17 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Potrebno je potvrditi ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} mora biti u periodu poslije ${date(args[0])}.`;\n }\n return `${sentence(name)} mora biti u budućnosti.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} mora sadržavati samo slova.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} mora sadržavati slova i brojeve.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} mogu sadržavati samo slova i razmake..`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} mora sadržavati abecedne znakove.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} mora sadržavati slova ili brojeve.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} mora sadržavati slova ili razmake.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} mora sadržavati simbol.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} mora sadržavati velika slova.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} mora sadržavati mala slova.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} mora sadržavati brojeve.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} mora biti simbol.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} može sadržavati samo velika slova.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} može sadržavati samo mala slova.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} mora biti prije ${date(args[0])}.`;\n }\n return `${sentence(name)} mora biti u proÅ¡losti.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Format sadržaja nije ispravan i ne može biti predan.`;\n }\n return `${sentence(name)} mora biti izmeÄ‘u ${args[0]} i ${args[1]}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} ne odgovara zadanoj vrijednosti.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(\n name\n )} nije ispravan format datuma. Molimo koristite sljedeći format: ${args[0]}`;\n }\n return \"Ovo polje nije ispravno postavljeno i ne može biti predano.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} mora biti vrijednost izmeÄ‘u ${date(args[0])} i ${date(\n args[1]\n )}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Molimo upiÅ¡ite ispravnu email adresu.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} ne zavrÅ¡ava s ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} nije dopuÅ¡tena vrijednost.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = first <= second ? first : second;\n const max = second >= first ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} mora sadržavati barem jedan znak.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} mora imati ${max} ili manje znakova.`;\n }\n if (min === max) {\n return `${sentence(name)} trebao bi biti dugaÄak ${max} znakova.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} mora imati barem ${min} znakova.`;\n }\n return `Broj znakova za polje ${sentence(name)} mora biti izmeÄ‘u ${min} i ${max}.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} nije dozvoljena vrijednost.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Ne smije imati viÅ¡e od ${args[0]} ${name} polja.`;\n }\n return `${sentence(name)} mora imati vrijednost manju ili jednaku ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Format datoteke nije dozvoljen.\";\n }\n return `Format datoteke na polju ${sentence(name)} mora odgovarati: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Broj upisanih vrijednosti na polju ${name} mora biti barem ${args[0]}.`;\n }\n return `${sentence(name)} mora biti barem ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†nije dozvoljena vrijednost na polju ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} mora biti broj.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" ili \")} je potreban.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} je obavezno.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} ne poÄinje s ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Unesite valjanu URL adresu.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Odabrani datum je nevažeći.\"\n};\nvar hr = { ui: ui17, validation: validation17 };\nvar ui18 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"Hozzáadás\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"EltávolÃtás\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Összes eltávolÃtása\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Sajnáljuk, nem minden mezÅ‘ lett helyesen kitöltve.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Beküldés\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Nincs fájl kiválasztva\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Mozgás felfelé\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Mozgás lefelé\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Betöltés...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Töltsön be többet\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"KövetkezÅ‘\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"ElÅ‘zÅ‘\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Adja hozzá az összes értéket\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Kiválasztott értékek hozzáadása\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"TávolÃtsa el az összes értéket\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"A kiválasztott értékek eltávolÃtása\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Válassza ki a dátumot\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Dátum módosÃtása\",\n /**\n * Shown when there is something to close\n */\n close: \"Bezárás\",\n /**\n * Shown when there is something to open.\n */\n open: \"Nyitott\"\n};\nvar validation18 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Fogadja el a ${name} mezÅ‘t.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} mezÅ‘nek ${date(args[0])} után kell lennie.`;\n }\n return `${sentence(name)} mezÅ‘nek a jövÅ‘ben kell lennie.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} csak alfanumerikus karaktereket tartalmazhat.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} csak betűket és számokat tartalmazhat.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} csak betűket és szóközöket tartalmazhat.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `A ${sentence(name)} betűrendes karaktereket kell tartalmaznia.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `A ${sentence(name)} betűket vagy számokat kell tartalmaznia.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `A ${sentence(name)} betűket vagy szóközöket kell tartalmaznia.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `A ${sentence(name)} szimbólumot kell tartalmaznia.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `A ${sentence(name)} nagybetűt kell tartalmaznia.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `A ${sentence(name)} kisbetűt kell tartalmaznia.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `A ${sentence(name)} számot kell tartalmaznia.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `A ${sentence(name)} szimbólumnak kell lennie.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `A ${sentence(name)} csak nagybetűket tartalmazhat.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `A ${sentence(name)} csak kisbetűket tartalmazhat.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} mezÅ‘nek ${date(args[0])} elÅ‘tt kell lennie.`;\n }\n return `${sentence(name)} mezÅ‘nek a múltban kell lennie.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Ez a mezÅ‘ hibásan lett konfigurálva, Ãgy nem lehet beküldeni.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `A ${sentence(name)} mezÅ‘nek ${a} és ${b} között kell lennie.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} nem egyezik.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} nem érvényes dátum, ${args[0]} formátumot használj`;\n }\n return \"Ez a mezÅ‘ hibásan lett konfigurálva, Ãgy nem lehet beküldeni.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} mezÅ‘nek ${date(args[0])} és ${args[1]} között kell lennie`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Kérjük, érvényes email cÃmet adjon meg.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} mezÅ‘ nem a kijelölt (${list(args)}) módon ér véget.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} nem engedélyezett érték.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} mezÅ‘nek legalább egy karakteresnek kell lennie.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} mezÅ‘nek maximum ${max} karakteresnek kell lennie.`;\n }\n if (min === max) {\n return `${sentence(name)} ${max} karakter hosszúnak kell lennie.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} mezÅ‘nek minimum ${min} karakteresnek kell lennie.`;\n }\n return `${sentence(name)} mezÅ‘nek ${min} és ${max} karakter között kell lennie.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} nem engedélyezett érték.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Nem lehet több mint ${args[0]} ${name}.`;\n }\n return `${sentence(name)} nem lehet nagyobb, mint ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Nincsenek támogatott fájlformátumok.\";\n }\n return `${sentence(name)}-nak/nek a következÅ‘nek kell lennie: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Nem lehet kevesebb, mint ${args[0]} ${name}.`;\n }\n return `${sentence(name)}-nak/nek minimum ${args[0]}-nak/nek kell lennie.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `\"${value}\" nem engedélyezett ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} mezÅ‘nek számnak kell lennie.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" vagy \")} szükséges.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} mezÅ‘ kötelezÅ‘.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} nem a következÅ‘vel kezdÅ‘dik: ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Kérjük, adjon meg egy érvényes URL-t.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"A kiválasztott dátum érvénytelen.\"\n};\nvar hu = { ui: ui18, validation: validation18 };\nvar ui19 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"Tambah\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Hapus\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Hapus semua\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Maaf, tidak semua bidang formulir terisi dengan benar\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Kirim\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Tidak ada file yang dipilih\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Pindah ke atas\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Pindah ke bawah\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Memuat...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Muat lebih\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Berikutnya\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Sebelumnya\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Tambahkan semua nilai\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Tambahkan nilai yang dipilih\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Hapus semua nilai\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Hapus nilai yang dipilih\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Pilih tanggal\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Ubah tanggal\",\n /**\n * Shown when there is something to close\n */\n close: \"Tutup\",\n /**\n * Shown when there is something to open.\n */\n open: \"Buka\"\n};\nvar validation19 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Tolong terima kolom ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} nilainya harus lebih dari waktu ${date(args[0])}.`;\n }\n return `${sentence(name)} harus berisi waktu di masa depan.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} hanya bisa diisi huruf alfabet.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} hanya bisa diisi huruf dan angka.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} hanya boleh berisi huruf dan spasi..`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} harus berisi karakter abjad.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} harus mengandung huruf atau angka.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} harus berisi huruf atau spasi.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} harus berisi simbol.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} harus berisi huruf besar.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} harus berisi huruf kecil.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} harus berisi angka.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} harus berupa simbol.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} hanya dapat berisi huruf besar.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} hanya dapat berisi huruf kecil.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} nilainya harus kurang dari waktu ${date(args[0])}.`;\n }\n return `${sentence(name)} harus berisi waktu yang sudah lampau.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Kolom ini tidak diisi dengan benar sehingga tidak bisa dikirim`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} harus bernilai diantara ${a} dan ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} nilainya tidak cocok.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} waktu tidak cocok, mohon gunakan format waktu ${args[0]}`;\n }\n return \"Kolom ini tidak diisi dengan benar sehingga tidak bisa dikirim\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} harus diantara waktu ${date(args[0])} dan waktu ${date(\n args[1]\n )}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Tolong tulis alamat email yang benar.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} nilainya tidak berakhiran dengan ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} adalah nilai yang tidak diizinkan.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} nilainya setidaknya berisi satu karakter.`;\n }\n if (min == 0 && max) {\n return `${sentence(\n name\n )} jumlah karakternya harus kurang dari atau sama dengan ${max} karakter.`;\n }\n if (min === max) {\n return `${sentence(name)} harus ${max} karakter panjang.`;\n }\n if (min && max === Infinity) {\n return `${sentence(\n name\n )} jumlah karakternya harus lebih dari atau sama dengan ${min} karakter.`;\n }\n return `${sentence(\n name\n )} jumlah karakternya hanya bisa antara ${min} dan ${max} karakter.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} nilainya tidak diizinkan.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Tidak bisa memiliki lebih dari ${args[0]} ${name}.`;\n }\n return `${sentence(name)} harus lebih kecil atau sama dengan ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Format file tidak diizinkan\";\n }\n return `${sentence(name)} hanya bisa bertipe: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Tidak boleh kurang dari ${args[0]} ${name}.`;\n }\n return `${sentence(name)} setidaknya harus berisi ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†adalah nilai yang tidak diperbolehkan untuk ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} harus berupa angka.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" atau \")} diperlukan`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} harus diisi.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} tidak dimulai dengan ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Harap masukkan URL yang valid.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Tanggal yang dipilih tidak valid.\"\n};\nvar id = { ui: ui19, validation: validation19 };\nvar ui20 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"Bæta við\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Fjarlægja\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Fjarlægja allt\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Þvà miður, það er ekki búið að fylla rétt inn à alla reiti.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Senda\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Engin skrá valin\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Færa upp\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Færa niður\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Hleðsla...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Sækja meira\",\n /**\n * Show on buttons that navigate state forward\n */\n next: \"Ãfram\",\n /**\n * Show on buttons that navigate state backward\n */\n prev: \"Til baka\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Bæta við öllum gildum\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Bæta við völdum gildum\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Fjarlægja öll gildi\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Fjarlægja valin gildi\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Velja dagsetningu\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Breyta dagsetningu\",\n /**\n * Shown when there is something to close\n */\n close: \"Loka\",\n /**\n * Shown when there is something to open.\n */\n open: \"Opið\"\n};\nvar validation20 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Vinsamlegast samþykktu ${name}`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} þarf að vera eftir ${date(args[0])}.`;\n }\n return `${sentence(name)} þarf að vera à framtÃðinni.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} má einungis innihalda bókstafi.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} má einungis innihalda bókstafi og tölur.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} má einungis innihalda bókstafi og bil.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} verður að innihalda bókstafi.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} verður að innihalda bókstafi eða tölur.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} verður að innihalda bókstafi eða bil.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} verður að innihalda tákn.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} verður að innihalda hástaf.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} verður að innihalda lágstaf.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} verður að innihalda tölur.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} verður að vera tákn.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} má einungis innihalda hástafi.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} má einungis innihalda lágstafi.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} þarf að vera á undan ${date(args[0])}.`;\n }\n return `${sentence(name)} þarf að vera liðin.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Þessi reitur var ekki rétt stilltur.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} þarf að vera á milli ${a} og ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} passar ekki.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(\n name\n )} er ekki gild dagsetning, vinsamlegast hafið dagsetninguna à formi ${args[0]}`;\n }\n return \"Þessi reitur var ekki rétt stilltur\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} þarf að vera á milli ${date(args[0])} og ${date(\n args[1]\n )}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Vinsamlegast sláðu inn gilt netfang.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} endar ekki á ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} er ekki leyfilegt gildi.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} þarf að vera að minnsta kosti einn stafur.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} þarf að vera færri en eða nákvæmlega ${max} stafir.`;\n }\n if (min === max) {\n return `${sentence(name)} þarf að vera ${max} stafir að lengd.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} þarf að vera fleiri en eða nákvæmlega ${min} stafir.`;\n }\n return `${sentence(name)} þarf að vera á milli ${min} og ${max} stafir.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} er ekki leyfilegt gildi.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Ekki hægt að hafa fleiri en ${args[0]} ${name}.`;\n }\n return `${sentence(name)} þarf að vera minna en eða nákvæmlega ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Ekki leyfileg tegund skráar.\";\n }\n return `${sentence(name)} þarf að vera af tegundinni: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Ekki hægt að hafa færri en ${args[0]} ${name}.`;\n }\n return `Þarf að vera að minnsta kosti ${args[0]} ${name}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†er ekki leyfilegt fyrir ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} þarf að vera tala.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" or \")} is required.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} er skilyrt.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} byrjar ekki á ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Vinsamlegast sláðu inn gilda slóð.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Valin dagsetning er ógild\"\n};\nvar is = { ui: ui20, validation: validation20 };\nvar ui21 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"Inserisci\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Rimuovi\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Rimuovi tutti\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Ci dispiace, non tutti i campi sono compilati correttamente.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Invia\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Nessun file selezionato\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Sposta in alto\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Sposta giù\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Caricamento...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Carica altro\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Prossimo\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Precedente\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Aggiungi tutti i valori\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Aggiungi valori selezionati\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Rimuovi tutti i valori\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Rimuovi i valori selezionati\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Scegli la data\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Cambia data\",\n /**\n * Shown when there is something to close\n */\n close: \"Chiudi\",\n /**\n * Shown when there is something to open.\n */\n open: \"Aperta\"\n};\nvar validation21 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Si prega di accettare ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `la data ${sentence(name)} deve essere successiva ${date(args[0])}.`;\n }\n return `la data ${sentence(name)} deve essere nel futuro.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} può contenere solo caratteri alfanumerici.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} può contenere solo lettere e numeri.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} può contenere solo lettere e spazi.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} deve contenere caratteri alfabetici.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} deve contenere lettere o numeri.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} deve contenere lettere o spazi.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} deve contenere un simbolo.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} must contain uppercase.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} deve contenere lettere minuscole.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} deve contenere numeri.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} deve essere un simbolo.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} può contenere solo lettere maiuscole.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} può contenere solo lettere minuscole.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `la data ${sentence(name)} deve essere antecedente ${date(args[0])}.`;\n }\n return `${sentence(name)} deve essere nel passato.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Questo campo è stato configurato male e non può essere inviato.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} deve essere tra ${a} e ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} non corrisponde.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} non è una data valida, per favore usa il formato ${args[0]}`;\n }\n return \"Questo campo è stato configurato in modo errato e non può essere inviato.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} deve essere tra ${date(args[0])} e ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Per favore inserire un indirizzo email valido.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} non termina con ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} non è un valore consentito.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} deve contenere almeno un carattere.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} deve essere minore o uguale a ${max} caratteri.`;\n }\n if (min === max) {\n return `${sentence(name)} deve contenere ${max} caratteri.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} deve essere maggiore o uguale a ${min} caratteri.`;\n }\n return `${sentence(name)} deve essere tra ${min} e ${max} caratteri.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} non è un valore consentito.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Non può avere più di ${args[0]} ${name}.`;\n }\n return `${sentence(name)} deve essere minore o uguale a ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Formato file non consentito.\";\n }\n return `${sentence(name)} deve essere di tipo: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Non può avere meno di ${args[0]} ${name}.`;\n }\n return `${sentence(name)} deve essere almeno ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `\"${value}\" non è un ${name} consentito.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} deve essere un numero.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" o \")} è richiesto.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} è richiesto.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} non inizia con ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Inserisci un URL valido.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"La data selezionata non è valida.\"\n};\nvar it = { ui: ui21, validation: validation21 };\nvar ui22 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"è¿½åŠ \",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"削除\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"å…¨ã¦å‰Šé™¤\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"é …ç›®ãŒæ£ã—ã入力ã•ã‚Œã¦ã„ã¾ã›ã‚“。\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"é€ä¿¡\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"ファイルãŒé¸æŠžã•ã‚Œã¦ã„ã¾ã›ã‚“\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"上ã«ç§»å‹•\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"下ã¸ç§»å‹•\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"èªã¿è¾¼ã¿ä¸...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"ã•ã‚‰ã«èªã¿è¾¼ã‚€\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"[次ã¸]\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"å‰ã¸\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"ã™ã¹ã¦ã®å€¤ã‚’è¿½åŠ \",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"é¸æŠžã—ãŸå€¤ã‚’è¿½åŠ \",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"ã™ã¹ã¦ã®å€¤ã‚’削除\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"é¸æŠžã—ãŸå€¤ã‚’削除\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"日付をé¸æŠž\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"日付を変更\",\n /**\n * Shown when there is something to close\n */\n close: \"é–‰ã˜ã‚‹\",\n /**\n * Shown when there is something to open.\n */\n open: \"[é–‹ã]\"\n};\nvar validation22 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `${name}ã®åŒæ„ãŒå¿…è¦ã§ã™ã€‚`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)}ã¯${date(args[0])}より後ã®æ—¥ä»˜ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n }\n return `${sentence(name)}ã¯å°†æ¥ã®æ—¥ä»˜ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)}ã«ã¯è‹±å—ã®ã¿ã‚’å«ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)}ã«ã¯ã€æ–‡å—ã¨æ•°å—ã®ã¿ã‚’å«ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)}ã«ã¯ã€æ–‡å—ã¨ã‚¹ãƒšãƒ¼ã‚¹ã®ã¿ã‚’å«ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} ã«ã¯ã‚¢ãƒ«ãƒ•ã‚¡ãƒ™ãƒƒãƒˆæ–‡å—ãŒå«ã¾ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} ã«ã¯æ–‡å—ã¾ãŸã¯æ•°å—ã‚’å«ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} ã«ã¯æ–‡å—ã¾ãŸã¯ã‚¹ãƒšãƒ¼ã‚¹ã‚’å«ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} ã«ã¯è¨˜å·ãŒå«ã¾ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} ã«ã¯å¤§æ–‡å—ã‚’å«ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} ã«ã¯å°æ–‡å—ã‚’å«ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} ã«ã¯æ•°å—ãŒå«ã¾ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} ã¯ã‚·ãƒ³ãƒœãƒ«ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} ã«ã¯å¤§æ–‡å—ã—ã‹ä½¿ç”¨ã§ãã¾ã›ã‚“`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} ã«ã¯å°æ–‡å—ã—ã‹ä½¿ç”¨ã§ãã¾ã›ã‚“。`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)}ã¯${date(args[0])}よりå‰ã®æ—¥ä»˜ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n }\n return `${sentence(name)}ã¯éŽåŽ»ã®æ—¥ä»˜ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã¯æ£ã—ã構æˆã•ã‚Œã¦ã„ãªã„ãŸã‚ã€é€ä¿¡ã§ãã¾ã›ã‚“。`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)}ã¯${a}ã¨${b}ã®é–“ã«ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)}ãŒä¸€è‡´ã—ã¾ã›ã‚“。`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)}ã¯æœ‰åŠ¹ãªæ—¥ä»˜ã§ã¯ã‚ã‚Šã¾ã›ã‚“。${args[0]}ã®å½¢å¼ã‚’使用ã—ã¦ãã ã•ã„。`;\n }\n return \"ã“ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã¯æ£ã—ã構æˆã•ã‚Œã¦ãŠã‚‰ãšã€é€ä¿¡ã§ãã¾ã›ã‚“。\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)}ã¯${date(args[0])}ã¨${date(\n args[1]\n )}ã®é–“ã«ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"有効ãªãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入力ã—ã¦ãã ã•ã„。\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)}ã¯${list(args)}ã§çµ‚ã‚ã£ã¦ã„ã¾ã›ã‚“。`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)}ã¯è¨±å¯ã•ã‚ŒãŸå€¤ã§ã¯ã‚ã‚Šã¾ã›ã‚“。`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)}ã¯å°‘ãªãã¨ã‚‚1æ–‡å—ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n }\n if (min == 0 && max) {\n return `${sentence(name)}ã¯${max}æ–‡å—以下ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n }\n if (min === max) {\n return `${sentence(name)} ã®é•·ã•ã¯ ${max} æ–‡å—ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)}ã¯${min}æ–‡å—以上ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n }\n return `${sentence(name)}ã¯${min}ã‹ã‚‰${max}æ–‡å—ã®é–“ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)}ã¯è¨±å¯ã•ã‚ŒãŸå€¤ã§ã¯ã‚ã‚Šã¾ã›ã‚“。`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${name}ã¯${args[0]}を超ãˆã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。`;\n }\n return `${sentence(name)}ã¯${args[0]}以下ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"ファイル形å¼ã¯è¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“。\";\n }\n return `${sentence(name)}ã¯${args[0]}ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${name}ã¯${args[0]}未満ã«ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。`;\n }\n return `${sentence(name)}ã¯å°‘ãªãã¨ã‚‚${args[0]}ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}â€ã¯è¨±å¯ã•ã‚ŒãŸ${name}ã§ã¯ã‚ã‚Šã¾ã›ã‚“。`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)}ã¯æ•°å€¤ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\"ã¾ãŸã¯\")}${labels}ãŒå¿…è¦ã§ã™ã€‚`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)}ã¯å¿…é ˆã§ã™ã€‚`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)}ã¯${list(args)}ã§å§‹ã¾ã£ã¦ã„ã¾ã›ã‚“。`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `有効㪠URL を入力ã—ã¦ãã ã•ã„。`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"é¸æŠžã—ãŸæ—¥ä»˜ã¯ç„¡åŠ¹ã§ã™ã€‚\"\n};\nvar ja = { ui: ui22, validation: validation22 };\nvar ui23 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"қоÑу\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Жою\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Барлығын жою\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Кешіріңіз, барлық өріÑтер Ð´Ò±Ñ€Ñ‹Ñ Ñ‚Ð¾Ð»Ñ‚Ñ‹Ñ€Ñ‹Ð»Ð¼Ð°Ò“Ð°Ð½.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Жіберу\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Ешбір файл таңдалмады\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Жоғары жылжу\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Төмен жылжытыңыз\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Жүктеу...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Көбірек жүктеңіз\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"КелеÑÑ–\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Ðлдыңғы\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Барлық мәндерді қоÑыңыз\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Таңдалған мәндерді қоÑыңыз\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Барлық мәндерді алып таÑтаңыз\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Таңдалған мәндерді алып таÑтаңыз\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Күнді таңдаңыз\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Өзгерту күні\",\n /**\n * Shown when there is something to close\n */\n close: \"Жабу\",\n /**\n * Shown when there is something to open.\n */\n open: \"Ðшық\"\n};\nvar validation23 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `қабылдаңыз ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} кейін болуы керек ${date(args[0])}.`;\n }\n return `${sentence(name)} болашақта болуы керек.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} тек алфавиттік таңбаларды қамтуы мүмкін.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} тек әріптер мен Ñандардан тұруы мүмкін.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} тек әріптер мен Ð±Ð¾Ñ Ð¾Ñ€Ñ‹Ð½Ð´Ð°Ñ€ болуы мүмкін.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} алфавиттік таңбалардан тұруы керек.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} құрамында әріптер немеÑе Ñандар болуы керек.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} құрамында әріптер немеÑе Ð±Ð¾Ñ Ð¾Ñ€Ñ‹Ð½Ð´Ð°Ñ€ болуы керек.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} Ñимволы болуы керек.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} құрамында Ð±Ð°Ñ Ó™Ñ€Ñ–Ð¿Ñ‚ÐµÑ€ болуы керек.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} кіші әріп болуы керек.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} Ñандардан тұруы керек.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} Ñимволы болуы керек.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} тек Ð±Ð°Ñ Ó™Ñ€Ñ–Ð¿Ñ‚ÐµÑ€Ð´ÐµÐ½ тұруы мүмкін.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} құрамында тек кіші әріптер болуы мүмкін.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} бұрын болуы керек ${date(args[0])}.`;\n }\n return `${sentence(name)} өткенде болуы керек.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Бұл Ó©Ñ€Ñ–Ñ Ò›Ð°Ñ‚Ðµ конфигурациÑланған және оны жіберу мүмкін емеÑ.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} араÑында болуы керек ${a} және ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} ÑÓ™Ð¹ÐºÐµÑ ÐºÐµÐ»Ð¼ÐµÐ¹Ð´Ñ–.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} жарамды күн емеÑ, пішімді пайдаланыңыз ${args[0]}`;\n }\n return \"Бұл Ó©Ñ€Ñ–Ñ Ò›Ð°Ñ‚Ðµ конфигурациÑланған және оны жіберу мүмкін емеÑ\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} араÑында болуы керек ${date(args[0])} және ${date(\n args[1]\n )}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Өтінеміз қолданыÑтағы Ñлектронды пошта адреÑін енгізіңіз.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} -мен бітпейді ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} Ñ€Ò±Ò›Ñат етілген мән емеÑ.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} кем дегенде бір таңба болуы керек.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} кем немеÑе тең болуы керек ${max} кейіпкерлер.`;\n }\n if (min === max) {\n return `${sentence(name)} ${max} таңбалары болуы керек.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} артық немеÑе тең болуы керек ${min} кейіпкерлер.`;\n }\n return `${sentence(name)} араÑында болуы керек ${min} және ${max} кейіпкерлер.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} Ñ€Ò±Ò›Ñат етілген мән емеÑ.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `артық болуы мүмкін ÐµÐ¼ÐµÑ ${args[0]} ${name}.`;\n }\n return `${sentence(name)} кем немеÑе тең болуы керек ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Файл пішімдері Ñ€Ò±Ò›Ñат етілмейді.\";\n }\n return `${sentence(name)} типте болуы керек: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `кем болуы мүмкін ÐµÐ¼ÐµÑ ${args[0]} ${name}.`;\n }\n return `${sentence(name)} кем дегенде болуы керек ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†рұқÑат етілмейді ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} Ñан болуы керек.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" не \")} қажет.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} талап етіледі.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} -ден баÑталмайды ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Жарамды URL мекенжайын енгізіңіз.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Таңдалған күн жарамÑыз.\"\n};\nvar kk = { ui: ui23, validation: validation23 };\nvar ui24 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"추가\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"ì œê±°\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"ëª¨ë‘ ì œê±°\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"ëª¨ë“ ê°’ì„ ì±„ì›Œì£¼ì„¸ìš”\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"ì œì¶œí•˜ê¸°\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"ì„ íƒëœ 파ì¼ì´ 없습니다\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"위로 ì´ë™\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"아래로 ì´ë™\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"로드 중...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"ë” ë¶ˆëŸ¬ì˜¤ê¸°\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"다ìŒ\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"ì´ì „\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"ëª¨ë“ ê°’ 추가\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"ì„ íƒí•œ ê°’ 추가\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"ëª¨ë“ ê°’ ì œê±°\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"ì„ íƒí•œ ê°’ ì œê±°\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"ë‚ ì§œ ì„ íƒ\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"ë‚ ì§œ 변경\",\n /**\n * Shown when there is something to close\n */\n close: \"닫기\",\n /**\n * Shown when there is something to open.\n */\n open: \"열기\"\n};\nvar validation24 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `${name} 올바른 ê°’ì„ ì„ íƒ í•´ì£¼ì„¸ìš”`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} ${date(args[0])} ì´í›„여야 합니다`;\n }\n return `${sentence(name)} ë¯¸ëž˜ì˜ ë‚ ì§œì—¬ì•¼í•©ë‹ˆë‹¤`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} 알파벳 문ìžë§Œ í¬í•¨í• 수 있습니다`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} 문ìžì™€ 숫ìžë§Œ í¬í•¨ë 수 있습니다`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} 문ìžì™€ 공백만 í¬í•¨í• 수 있습니다.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} ì—는 알파벳 문ìžê°€ í¬í•¨ë˜ì–´ì•¼ 합니다.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} ì—는 문ìžë‚˜ 숫ìžê°€ í¬í•¨ë˜ì–´ì•¼ 합니다.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} ì—는 문ìžë‚˜ ê³µë°±ì´ í¬í•¨ë˜ì–´ì•¼ 합니다.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} ì—는 기호를 í¬í•¨í•´ì•¼ 합니다.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} 는 대문ìžë¥¼ í¬í•¨í•´ì•¼ 합니다.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} 는 소문ìžë¥¼ í¬í•¨í•´ì•¼ 합니다.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} ì—는 숫ìžê°€ í¬í•¨ë˜ì–´ì•¼ 합니다.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} 는 기호여야 합니다.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} 는 대문ìžë§Œ í¬í•¨í• 수 있습니다.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} 는 소문ìžë§Œ í¬í•¨í• 수 있습니다.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} ${date(args[0])} ì´ì „여야 합니다`;\n }\n return `${sentence(name)} ê³¼ê±°ì˜ ë‚ ì§œì—¬ì•¼í•©ë‹ˆë‹¤`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `ìž˜ëª»ëœ êµ¬ì„±ìœ¼ë¡œ ì œì¶œí• ìˆ˜ 없습니다`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} ${a}와 ${b} 사ì´ì—¬ì•¼ 합니다`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} ì¼ì¹˜í•˜ì§€ 않습니다`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} ìœ íš¨í•œ ë‚ ì§œê°€ 아닙니다. ${args[0]}ê³¼ ê°™ì€ í˜•ì‹ì„ 사용해주세요`;\n }\n return \"ìž˜ëª»ëœ êµ¬ì„±ìœ¼ë¡œ ì œì¶œí• ìˆ˜ 없습니다\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} ${date(args[0])}ì—ì„œ ${date(args[1])} 사ì´ì—¬ì•¼ 합니다`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"올바른 ì´ë©”ì¼ ì£¼ì†Œë¥¼ ìž…ë ¥í•´ì£¼ì„¸ìš”\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} ${list(args)}ë¡œ ë나지 않습니다`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} 허용ë˜ëŠ” ê°’ì´ ì•„ë‹™ë‹ˆë‹¤`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} 하나 ì´ìƒì˜ 문ìžì—¬ì•¼ 합니다`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} ${max}ìž ì´í•˜ì—¬ì•¼ 합니다`;\n }\n if (min === max) {\n return `${sentence(name)} 는 ${max} ìž ê¸¸ì´ì—¬ì•¼ 합니다.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} ${min} 문ìžë³´ë‹¤ í¬ê±°ë‚˜ 같아야 합니다`;\n }\n return `${sentence(name)} ${min}ì—ì„œ ${max}ìž ì‚¬ì´ì—¬ì•¼ 합니다`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} 허용ë˜ëŠ” ê°’ì´ ì•„ë‹™ë‹ˆë‹¤`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${args[0]} ${name} ì´ˆê³¼í• ìˆ˜ 없습니다`;\n }\n return `${sentence(name)} ${args[0]}보다 작거나 같아야 합니다`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"íŒŒì¼ í˜•ì‹ì´ 허용ë˜ì§€ 않습니다\";\n }\n return `${sentence(name)} ${args[0]} ìœ í˜•ì´ì–´ì•¼ 합니다`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${args[0]} ${name}보다 ìž‘ì„ ìˆ˜ 없습니다`;\n }\n return `${sentence(name)} ${args[0]} ì´ìƒì´ì–´ì•¼ 합니다`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `${value}\" 허용ë˜ì§€ 않는 ${name}입니다`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} 숫ìžì—¬ì•¼ 합니다`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" ë˜ëŠ” \")}ê°€ 필요합니다.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} 필수 값입니다`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} ${list(args)}ë¡œ 시작하지 않습니다`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `ìœ íš¨í•œ URLì„ ìž…ë ¥í•˜ì‹ì‹œì˜¤.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"ì„ íƒí•œ ë‚ ì§œê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤.\"\n};\nvar ko = { ui: ui24, validation: validation24 };\nfunction getByQuantity(quantity, vienetas, vienetai, vienetu) {\n const lastTwoDigits = quantity.toString().slice(-2);\n const parsedQuantity = parseInt(lastTwoDigits);\n if (parsedQuantity > 10 && parsedQuantity < 20 || parsedQuantity % 10 === 0) {\n return vienetu;\n }\n if (parsedQuantity === 1 || parsedQuantity % 10 === 1) {\n return vienetas;\n }\n return vienetai;\n}\nvar ui25 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"PridÄ—ti\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"PaÅ¡alinti\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"PaÅ¡alinti visus\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"AtsipraÅ¡ome, ne visi laukai užpildyti teisingai.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Pateikti\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Nepasirinktas joks failas\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"AukÅ¡tyn\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Žemyn\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Kraunama...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Daugiau\",\n /**\n * Show on buttons that navigate state forward\n */\n next: \"Kitas\",\n /**\n * Show on buttons that navigate state backward\n */\n prev: \"Ankstesnis\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"PridÄ—ti visas reikÅ¡mes\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"PridÄ—ti pasirinktas reikÅ¡mes\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"PaÅ¡alinti visas reikÅ¡mes\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"PaÅ¡alinti pasirinktas reikÅ¡mes\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Pasirinkti datÄ…\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Pakeisti datÄ…\",\n /**\n * Shown when there is something to close\n */\n close: \"Uždaryti\",\n /**\n * Shown when there is something to open.\n */\n open: \"Atidaryti\"\n};\nvar validation25 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `PraÅ¡ome priimti ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} turi bÅ«ti po ${date(args[0])}.`;\n }\n return `${sentence(name)} turi bÅ«ti ateityje.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} gali bÅ«ti tik abÄ—cÄ—lÄ—s simboliai.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} gali bÅ«ti tik raidÄ—s ir skaiÄiai.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} gali bÅ«ti tik raidÄ—s ir tarpai.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} turi bÅ«ti abÄ—cÄ—lÄ—s simbolių.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} turi bÅ«ti raidžių arba skaiÄių.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} turi bÅ«ti raidžių arba tarpų.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} turi bÅ«ti simbolių.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} turi bÅ«ti didžioji raidÄ—.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} turi bÅ«ti mažoji raidÄ—.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} turi bÅ«ti skaiÄių.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} turi bÅ«ti simbolis.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} turi bÅ«ti tik didžiosios raidÄ—s.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} turi bÅ«ti tik mažosios raidÄ—s.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} turi bÅ«ti prieÅ¡ ${date(args[0])}.`;\n }\n return `${sentence(name)} turi bÅ«ti praeityje.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Å is laukas buvo sukonfigÅ«ruotas neteisingai ir jo negalima pateikti.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} turi bÅ«ti tarp ${a} ir ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} nesutampa.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} nÄ—ra tinkama data, naudokite formatÄ… ${args[0]}`;\n }\n return \"Å is laukas buvo sukonfigÅ«ruotas neteisingai ir jo negalima pateikti\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} turi bÅ«ti tarp ${date(args[0])} ir ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Ä®veskite teisingÄ… el. paÅ¡to adresÄ….\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} nesibaigia su ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} nÄ—ra leistina reikÅ¡mÄ—.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} turi bÅ«ti bent vienas simbolis.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} turi bÅ«ti mažiau arba lygiai ${max} ${getByQuantity(\n max,\n \"simbolis\",\n \"simboliai\",\n \"simbolių\"\n )}.`;\n }\n if (min === max) {\n return `${sentence(name)} turi bÅ«ti iÅ¡ ${max} ${getByQuantity(\n max,\n \"simbolio\",\n \"simbolių\",\n \"simbolių\"\n )}.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} turi bÅ«ti daugiau arba lygiai ${min} ${getByQuantity(\n min,\n \"simbolis\",\n \"simboliai\",\n \"simbolių\"\n )}.`;\n }\n return `${sentence(name)} turi bÅ«ti tarp ${min} ir ${max} simbolių.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} nÄ—ra leistina reikÅ¡mÄ—.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Negali turÄ—ti daugiau nei ${args[0]} ${name}.`;\n }\n return `${sentence(name)} turi bÅ«ti mažiau arba lygiai ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Neleidžiami jokie failų formatai.\";\n }\n return `${sentence(name)} turi bÅ«ti tokio tipo: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Negali turÄ—ti mažiau nei ${args[0]} ${name}.`;\n }\n return `Turi bÅ«ti bent ${args[0]} ${name} .`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†nÄ—ra leidžiamas ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} turi bÅ«ti skaiÄius.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" arba \")} yra privaloma.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} yra privaloma.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} neprasideda su ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Ä®veskite teisingÄ… URL.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Pasirinkta data yra netinkama.\"\n};\nvar lt = { ui: ui25, validation: validation25 };\n\n// packages/i18n/src/locales/lv.ts\nvar ui26 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"Pievienot\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Noņemt\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Noņemt visus\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Piedodiet, visi lauki nav aizpildÄ«ti.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Iesniegt\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Nav izvÄ“lÄ“ts fails\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Uz augÅ¡u\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Uz leju\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"IelÄdÄ“jas...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"IelÄdÄ“t vÄ“l\",\n /**\n * Show on buttons that navigate state forward\n */\n next: \"TÄlÄk\",\n /**\n * Show on buttons that navigate state backward\n */\n prev: \"Atpakaļ\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Pievienot visas vÄ“rtÄ«bas\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Pievienojiet izvÄ“lÄ“to vÄ“rtÄ«bu\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Noņemt visas vÄ“rtÄ«bas\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Noņemt izvÄ“lÄ“tÄs vÄ“rtÄ«bas\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"IzvÄ“lieties datumu\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"MainÄ«t datumu\",\n /**\n * Shown when there is something to close\n */\n close: \"AizvÄ“rt\",\n /**\n * Shown when there is something to open.\n */\n open: \"AtvÄ“rt\"\n};\nvar validation26 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `LÅ«dzu apstipriniet ${name}`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${name} jÄbÅ«t pÄ“c ${date(args[0])}.`;\n }\n return `${name} jÄbÅ«t pÄ“c Å¡odienas datuma.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${name} var saturÄ“t tikai alfabÄ“tiskÄs rakstzÄ«mes.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${name} var saturÄ“t tikai burtus un ciparus.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${name} var saturÄ“t tikai burtus un atstarpes.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${name} jÄbÅ«t pirms ${date(args[0])}.`;\n }\n return `${name} jÄbÅ«t pirms Å¡odienas datuma.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Å is lauks tika aizpildÄ«ts nepareizi un nevar tikt iesniegts.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${name} jÄbÅ«t starp ${a} un ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${name} nesakrÄ«t.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${name} nav pareizs datums, lÅ«dzu lietojiet formÄtu ${args[0]}`;\n }\n return \"Å is lauks tika aizpildÄ«ts nepareizi un nevar tikt iesniegts.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${name} jÄbÅ«t starp ${date(args[0])} un ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"LÅ«dzu ierakstiet pareizu e-pasta adresi.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${name} nebeidzas ar ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${name} nav atļauta vÄ“rtÄ«ba.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${name} jÄbÅ«t vismaz vienam simbolam.`;\n }\n if (min == 0 && max) {\n return `${name} jÄbÅ«t mazÄk par vai ${max} simboliem.`;\n }\n if (min === max) {\n return `${name} jÄbÅ«t ${max} simbolu garumÄ.`;\n }\n if (min && max === Infinity) {\n return `${name} jÄbÅ«t vismaz ${min} simboliem.`;\n }\n return `${name} jÄbÅ«t starp ${min} un ${max} simboliem.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${name} nav atļauta vÄ“rtÄ«ba.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Nevar bÅ«t vairÄk par ${args[0]} ${name}.`;\n }\n return `${name} nevar bÅ«t mazÄk par ${args[0]} vai ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Atļauti nenoteikti faila formÄti.\";\n }\n return `${sentence(name)} faila formÄti var bÅ«t Å¡Ädi: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Nevar bÅ«t mazÄk par ${args[0]} ${name}.`;\n }\n return `JÄbÅ«t vismaz ${args[0]} ${name}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†nav atļauta vÄ“rtÄ«ba iekÅ¡ ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${name} jÄbÅ«t ciparam.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${name} ir obligÄti jÄaizpilda`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${name} nesÄkas ar ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `LÅ«dzu pievienojiet pareizu URL.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"IzvÄ“lÄ“tais datums ir nepareizs.\"\n};\nvar lv = { ui: ui26, validation: validation26 };\n\n// packages/i18n/src/locales/mn.ts\nvar ui27 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"ÐÑмÑÑ…\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"ХаÑах\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Бүгдийг хаÑах\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Уучлраарай, зарим нүдÑн дахь өгөгдөл дутуу байна.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"ИлгÑÑÑ…\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Файл Ñонгоогүй байна\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"ДÑÑшÑÑ\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Доошоо\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Ðчааллаж байна...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"ÐÑмж ачааллах\",\n /**\n * Show on buttons that navigate state forward\n */\n next: \"Дараагийн\",\n /**\n * Show on buttons that navigate state backward\n */\n prev: \"Өмнөх\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Бүх утгуудыг нÑмÑÑ…\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"СонгогдÑон утгуудыг нÑмÑÑ…\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Бүх утгуудыг уÑтгах\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"СонгогдÑон утгуудыг хаÑах\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Огноо Ñонгох\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Огноо өөрчлөх\",\n /**\n * Shown when there is something to close\n */\n close: \"Хаах\",\n /**\n * Shown when there is something to open.\n */\n open: \"ÐÑÑлттÑй\"\n};\nvar validation27 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `${name} утгыг зөвшөөрнө Ò¯Ò¯.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} нь ${date(args[0])}-ны дараа орох Ñ‘Ñтой.`;\n }\n return `${sentence(name)} утга ирÑÑдүйг заах Ñ‘Ñтой.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} зөвхөн Ò¯ÑÑг агуулах Ñ‘Ñтой.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} зөвхөн Ò¯ÑÑг болон тоог агуулах Ñ‘Ñтой.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} зөвхөн Ò¯ÑÑг болон зай агуулах Ñ‘Ñтой.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} нь ${date(args[0])}-ны өмнө байх Ñ‘Ñтой.`;\n }\n return `${sentence(name)} өнгөрÑөн огноо байх Ñ‘Ñтой.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `ÐÐ½Ñ Ð½Ò¯Ð´Ñн дÑÑ…ÑŒ өгөгдөл буруу ÑƒÑ‡Ñ€Ð°Ð°Ñ Ð¸Ð»Ð³ÑÑÑ… боломжгүй.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} нь заавал ${a}, ${b} хоёрын дунд байх Ñ‘Ñтой.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} таарахгүй байна.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} нь хүчинтÑй огноо биш тул ${args[0]} гÑÑÑн огноог ашиглаарай.`;\n }\n return \"ÐнÑÑ…Ò¯Ò¯ нүд буруу тул цааш илгÑÑÑ… боломжгүй.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} нь заавал ${date(args[0])}, ${date(\n args[1]\n )} хоёр огноон дунд байх Ñ‘Ñтой.`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Та хүчинтÑй имейл хаÑгаа оруулна уу.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} нь ${list(args)} гÑÑÑн утгаар төгÑөөгүй байна.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} нь зөвшөөрөгдөх утга биш.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} дÑÑÑ€ хаÑж нÑг Ò¯ÑÑг байх Ñ‘Ñтой`;\n }\n if (min == 0 && max) {\n return `${sentence(name)}-н урт нь ${max}-ÑÑÑ Ð¸Ñ…Ð³Ò¯Ð¹ байх Ñ‘Ñтой.`;\n }\n if (min === max) {\n return `${sentence(name)} нь ${max} урт байвал зүгÑÑÑ€.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)}-н урт нь ${min}-ÑÑÑ Ð¸Ñ… буюу Ñ‚Ñнцүү байж болно.`;\n }\n return `${sentence(name)}-н урт нь ${min}, ${max} хоёрын дунд байх Ñ‘Ñтой.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} нь зөвшөөрөгдөх утга биш.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${name} нь ${args[0]}-Ð°Ð°Ñ Ð¸Ñ… байж болохгүй.`;\n }\n return `${sentence(name)} нь ${args[0]}-тай Ñ‚Ñнцүү ÑÑвÑл бага байх Ñ‘Ñтой.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Файлын формат буруу.\";\n }\n return `${sentence(name)} төрөл нь ${args[0]} байх Ñ‘Ñтой.`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${name} нь ${args[0]}-Ð°Ð°Ñ Ð¸Ñ… байж болохгүй.`;\n }\n return `${name} нь дор хаÑж ${args[0]}-тай Ñ‚Ñнцүү байх Ñ‘Ñтой.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†бол зөвшөөрөгдөх ${name} гÑÑÑн утга биш.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} зөвхөн тоо байх Ñ‘Ñтой.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} байх Ñ‘Ñтой.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} нь ${list(args)}-ÑÑÑ€ ÑхлÑÑгүй байна.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Хүчннтай URL оруулна уу.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"СонгоÑон огноо буруу байна.\"\n};\nvar mn = { ui: ui27, validation: validation27 };\nvar ui28 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"Legg til\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Fjern\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Fjern alle\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Beklager, noen felter er ikke fylt ut korrekt.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Send inn\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Ingen fil valgt\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Flytt opp\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Flytt ned\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Laster...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Last mer\",\n /**\n * Show on buttons that navigate state forward\n */\n next: \"Neste\",\n /**\n * Show on buttons that navigate state backward\n */\n prev: \"Forrige\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Legg til alle verdier\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Legg til valgte verdier\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Fjern alle verdier\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Fjern valgte verdier\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Velg dato\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Endre dato\"\n};\nvar validation28 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Vennligst aksepter ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} mÃ¥ være senere enn ${date(args[0])}.`;\n }\n return `${sentence(name)} mÃ¥ være i fremtiden.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} kan bare inneholde alfabetiske tegn.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} kan bare inneholde bokstaver og tall.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} kan bare inneholde bokstaver og mellomrom.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} must contain alphabetical characters.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} must contain letters and numbers.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} must contain letters and spaces.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} must contain symbol.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} must contain uppercase.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} must contain lowercase.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} must contain number.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} can only contain symbol.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} can only contain uppercase.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} can only contain lowercase.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} mÃ¥ være tidligere enn ${date(args[0])}.`;\n }\n return `${sentence(name)} mÃ¥ være i fortiden.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Dette feltet er feilkonfigurert og kan ikke innsendes.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} mÃ¥ være mellom ${a} og ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} stemmer ikke overens.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} er ikke en gyldig dato, vennligst bruk formatet ${args[0]}`;\n }\n return \"Dette feltet er feilkonfigurert og kan ikke innsendes.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} mÃ¥ være mellom ${date(args[0])} og ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Vennligst oppgi en gyldig epostadresse.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} slutter ikke med ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} er ikke en tillatt verdi.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} mÃ¥ ha minst ett tegn.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} mÃ¥ ha mindre enn eller nøyaktig ${max} tegn.`;\n }\n if (min === max) {\n return `${sentence(name)} skal være ${max} tegn langt.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} mÃ¥ ha mer enn eller nøyaktig ${min} tegn.`;\n }\n return `${sentence(name)} mÃ¥ ha mellom ${min} og ${max} tegn.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} er ikke en tillatt verdi.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Kan ikke ha mer enn ${args[0]} ${name}.`;\n }\n return `${sentence(name)} mÃ¥ være mindre enn eller nøyaktig ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Ingen tillatte filformater.\";\n }\n return `${sentence(name)} mÃ¥ være av typen: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Kan ikke ha mindre enn ${args[0]} ${name}.`;\n }\n return `${sentence(name)} mÃ¥ være minst ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†er ikke en tillatt ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} mÃ¥ være et tall.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" eller \")} er nødvendig.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} er pÃ¥krevd.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} starter ikke med ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Vennligst inkluder en gyldig url.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Den valgte datoen er ugyldig.\"\n};\nvar nb = { ui: ui28, validation: validation28 };\nvar ui29 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"Toevoegen\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Verwijderen\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Alles verwijderen\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Sorry, niet alle velden zijn correct ingevuld.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Versturen\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Geen bestand gekozen\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Naar boven gaan\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Naar beneden verplaatsen\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Aan het laden...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Meer laden\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Vervolgens\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Voorgaand\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Alle waarden toevoegen\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Geselecteerde waarden toevoegen\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Alle waarden verwijderen\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Geselecteerde waarden verwijderen\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Kies een datum\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Datum wijzigen\",\n /**\n * Shown when there is something to close\n */\n close: \"Sluiten\",\n /**\n * Shown when there is something to open.\n */\n open: \"Open\"\n};\nvar validation29 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Accepteer de ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} moet na ${date(args[0])} zijn.`;\n }\n return `${sentence(name)} moet in de toekomst liggen.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} mag alleen alfabetische tekens bevatten.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} mag alleen letters en cijfers bevatten.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} mag alleen letters en spaties bevatten.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} moet alfabetische tekens bevatten.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} moet letters of cijfers bevatten.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} moet letters of spaties bevatten.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} moet een symbool bevatten.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} moet hoofdletters bevatten.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} moet kleine letters bevatten.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} moet cijfers bevatten.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} moet een symbool zijn.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} mag alleen hoofdletters bevatten.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} mag alleen kleine letters bevatten.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} moet vóór ${date(args[0])} vallen.`;\n }\n return `${sentence(name)} moet in het verleden liggen.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Dit veld is onjuist geconfigureerd en kan niet worden verzonden.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} moet tussen ${a} en ${b} liggen.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} komt niet overeen.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} is geen geldige datum, gebruik de notatie ${args[0]}`;\n }\n return \"Dit veld is onjuist geconfigureerd en kan niet worden verzonden\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} moet tussen ${date(args[0])} en ${date(args[1])} liggen`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Vul een geldig e-mailadres in.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} eindigt niet met ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} is geen toegestane waarde.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} moet minimaal één teken zijn.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} mag maximaal ${max} tekens lang zijn.`;\n }\n if (min === max) {\n return `${sentence(name)} moet ${max} tekens lang zijn.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} moet minimaal ${min} tekens lang zijn.`;\n }\n return `${sentence(name)} moet tussen de ${min} en ${max} tekens zijn.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} is geen toegestane waarde.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Mag niet meer dan ${args[0]} ${name} hebben.`;\n }\n return `${sentence(name)} moet kleiner zijn dan of gelijk zijn aan ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Geen bestandsformaten toegestaan.\";\n }\n return `${sentence(name)} moet van het type: ${args[0]} zijn`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Mag niet minder dan ${args[0]} ${name} hebben.`;\n }\n return `${sentence(name)} moet minimaal ${args[0]} zijn.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `\"${value}\" is geen toegestane ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} moet een getal zijn.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" of \")} is vereist.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} is verplicht.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} begint niet met ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Voer een geldige URL in.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"De geselecteerde datum is ongeldig.\"\n};\nvar nl = { ui: ui29, validation: validation29 };\nvar ui30 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"Dodaj\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"UsuÅ„\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"UsuÅ„ wszystko\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Nie wszystkie pola zostaÅ‚y wypeÅ‚nione poprawnie.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"WyÅ›lij\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Nie wybrano pliku\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"PrzesuÅ„ w górÄ™\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"PrzesuÅ„ w dół\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Åadowanie...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"ZaÅ‚aduj wiÄ™cej\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Kolejny\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Poprzednia\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Dodaj wszystkie wartoÅ›ci\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Dodaj wybrane wartoÅ›ci\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"UsuÅ„ wszystkie wartoÅ›ci\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"UsuÅ„ wybrane wartoÅ›ci\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Wybierz datÄ™\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"ZmieÅ„ datÄ™\",\n /**\n * Shown when there is something to close\n */\n close: \"Zamknij\",\n /**\n * Shown when there is something to open.\n */\n open: \"Otwórz\"\n};\nvar validation30 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `ProszÄ™ zaakceptować ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} musi być po ${date(args[0])}.`;\n }\n return `${sentence(name)} musi być w przyszÅ‚oÅ›ci.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `Pole ${sentence(name)} może zawierać tylko znaki alfabetyczne.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `Pole ${sentence(name)} może zawierać tylko znaki alfanumeryczne.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `Pole ${sentence(name)} mogÄ… zawierać tylko litery i spacje.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} musi zawierać znaki alfabetyczne.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} musi zawierać litery lub cyfry.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} musi zawierać litery lub spacje.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} musi zawierać symbol.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} musi zawierać wielkie litery.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} musi zawierać maÅ‚e litery.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} musi zawierać liczby.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} musi być symbolem.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} może zawierać tylko wielkie litery.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} może zawierać tylko maÅ‚e litery.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} musi być przed ${date(args[0])}.`;\n }\n return `${sentence(name)} musi być w przeszÅ‚oÅ›ci.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Pole zostaÅ‚o wypeÅ‚nione niepoprawnie i nie może zostać wysÅ‚ane.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `Wartość pola ${sentence(name)} musi być pomiÄ™dzy ${a} i ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} nie pokrywa siÄ™.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `Wartość pola ${sentence(\n name\n )} nie jest poprawnÄ… datÄ…, proszÄ™ użyć formatu ${args[0]}`;\n }\n return \"To pole zostaÅ‚o wypeÅ‚nione niepoprawnie i nie może zostać wysÅ‚ane\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `Data w polu ${sentence(name)} musi być pomiÄ™dzy ${date(args[0])} i ${date(\n args[1]\n )}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"ProszÄ™ wpisać poprawny adres email.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `Pole ${sentence(name)} nie koÅ„czy siÄ™ na ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `Pole ${sentence(name)} nie jest dozwolonÄ… wartoÅ›ciÄ….`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `Pole ${sentence(name)} musi posiadać minimum jeden znak.`;\n }\n if (min == 0 && max) {\n return `Pole ${sentence(name)} musi zawierać ${max} lub mniej znaków.`;\n }\n if (min && max === Infinity) {\n return `Pole ${sentence(name)} musi zawierać ${min} lub wiÄ™cej znaków.`;\n }\n if (min === max) {\n return `Pole ${sentence(name)} musi mieć ${min} znaków.`;\n }\n return `Pole ${sentence(name)} musi mieć ${min}-${max} znaków.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `Pole ${sentence(name)} zawiera niedozwolone znaki.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Nie można mieć wiÄ™cej niż ${args[0]} ${name}.`;\n }\n return `Wartość pola ${sentence(name)} musi być mniejsza lub równa ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Nie podano dozwolonych typów plików.\";\n }\n return `${sentence(name)} musi być typem: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Musisz podać wiÄ™cej niż ${args[0]} ${name}.`;\n }\n return ` Musisz podać conajmniej ${args[0]} ${sentence(name)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name }) {\n return `Wartość pola ${name} jest niedozwolona.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} musi być numerem.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" lub \")} wymagany jest.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `Pole ${sentence(name)} jest wymagane.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `WartoÅ›c pola ${sentence(name)} nie zaczyna siÄ™ od ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Wprowadź prawidÅ‚owy adres URL.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Wybrana data jest nieprawidÅ‚owa.\"\n};\nvar pl = { ui: ui30, validation: validation30 };\nvar ui31 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"Incluir\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Remover\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Remover todos\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Desculpe, alguns campos não foram preenchidos corretamente.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Enviar\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Nenhum arquivo selecionado.\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Mover para cima\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Mover para baixo\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Carregando...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Carregar mais\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Próximo\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Anterior\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Adicione todos os valores\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Adicionar valores selecionados\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Remover todos os valores\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Remover valores selecionados\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Escolha a data\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Data da alteração\",\n /**\n * Shown when there is something to close\n */\n close: \"Fechar\",\n /**\n * Shown when there is something to open.\n */\n open: \"Aberto\"\n};\nvar validation31 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Por favor aceite o ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} precisa ser depois de ${date(args[0])}.`;\n }\n return `${sentence(name)} precisa ser no futuro.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} precisa conter apenas letras.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} pode conter apenas letras e números.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} pode conter apenas números e espaços.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} deve conter caracteres alfabéticos.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} deve conter letras ou números.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} deve conter letras ou espaços.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} deve conter um sÃmbolo.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} deve conter letras maiúsculas.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} deve conter letras minúsculas.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} deve conter números.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} deve ser um sÃmbolo.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} só pode conter letras maiúsculas.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} só pode conter letras minúsculas.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} precisa ser antes de ${date(args[0])}.`;\n }\n return `${sentence(name)} precisa ser no passado.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Este campo não foi configurado corretamente e não pode ser submetido.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} precisa ser entre ${a} e ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} não é igual.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} não é uma data válida, por favor use este formato ${args[0]}`;\n }\n return \"Este campo não foi configurado corretamente e não pode ser submetido.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} precisa ser entre ${date(args[0])} e ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Por favor, insira um endereço de email válido.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} não termina com ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} não é um valor permitido.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = first <= second ? first : second;\n const max = second >= first ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} precisa conter ao menos um caractere.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} precisa ser menor ou igual a ${max} caracteres.`;\n }\n if (min === max) {\n return `${sentence(name)} precisa conter ${max} caracteres.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} precisa ser maior ou igual a ${min} caracteres.`;\n }\n return `${sentence(name)} precisa ter entre ${min} e ${max} caracteres.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} não é um valor permitido.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Não pode ter mais de ${args[0]} ${name}.`;\n }\n return `${sentence(name)} precisa ser menor ou igual a ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Não há formatos de arquivos permitidos.\";\n }\n return `${sentence(name)} precisa ser do tipo: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Não pode ter menos de ${args[0]} ${name}.`;\n }\n return `${sentence(name)} precisa ser pelo menos ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†não é um(a) ${name} permitido(a).`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} precisa ser um número.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" ou \")} é necessário.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} é obrigatório.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} não começa com ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Por favor, insira uma url válida.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"A data selecionada é inválida.\"\n};\nvar pt = { ui: ui31, validation: validation31 };\nvar ui32 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"Adăugare\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Elimină\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Elimină tot\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Pare rău, unele câmpuri nu sunt corect completate.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Trimite\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Nu este selectat nici un fiÈ™ier\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Mutare în sus\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Mutare în jos\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Se încarcă...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"ÃŽncărcaÈ›i mai mult\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Urmatorul\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Precedent\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"AdăugaÈ›i toate valorile\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Adăugarea valorilor selectate\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"EliminaÈ›i toate valorile\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"EliminaÈ›i valorile selectate\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Alege data\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"ModificaÈ›i data\",\n /**\n * Shown when there is something to close\n */\n close: \"ÃŽnchide\",\n /**\n * Shown when there is something to open.\n */\n open: \"Deschis\"\n};\nvar validation32 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Te rog acceptă ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} trebuie să fie după ${date(args[0])}.`;\n }\n return `${sentence(name)} trebuie sa fie în viitor.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} poate conÈ›ine doar caractere alafetice.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} poate conÈ›ine doar litere È™i numere.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} poate conÈ›ine doar litere È™i spaÈ›ii.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} trebuie să conÈ›ină caractere alfabetice.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} trebuie să conÈ›ină litere sau numere.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} trebuie să conÈ›ină litere sau spaÈ›ii.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} trebuie să conÈ›ină simbol.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} trebuie să conÈ›ină majuscule.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} trebuie să conÈ›ină litere mici.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} trebuie să conÈ›ină numere.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} trebuie să fie un simbol.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} poate conÈ›ine doar litere mari.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} poate conÈ›ine doar litere mici.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} trebuie să preceadă ${date(args[0])}.`;\n }\n return `${sentence(name)} trebuie să fie în trecut.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Câmpul a fost configurat incorect È™i nu poate fi trimis.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} trebuie să fie între ${a} È™i ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} nu se potriveÈ™te.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} nu este validă, te rog foloÈ™te formatul ${args[0]}`;\n }\n return \"Câmpul a fost incorect configurat È™i nu poate fi trimis.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} trebuie să fie între ${date(args[0])} È™i ${date(\n args[1]\n )}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Te rog foloseÈ™te o adresă de email validă.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} nu se termină cu ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} nu este o valoare acceptată.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} trebuie sa conÈ›ină cel puÈ›in un caracter.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} trebuie sa aibă cel mult ${max} caractere.`;\n }\n if (min === max) {\n return `${sentence(name)} ar trebui să aibă ${max} caractere lungi.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} trebuie să aibă cel puÈ›in ${min} caractere.`;\n }\n return `${sentence(name)} trebuie să aibă între ${min} È™i ${max} caractere.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} nu este o valoare acceptată.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Nu poate avea mai mult decat ${args[0]} ${name}.`;\n }\n return `${sentence(name)} trebuie să fie cel mult egal cu ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Tipul de fiÈ™ier neacceptat.\";\n }\n return `${sentence(name)} trebuie să fie de tipul: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Nu poate avea mai puÈ›in decât ${args[0]} ${name}.`;\n }\n return `${sentence(name)} trebuie să fie cel puÈ›in ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†nu este o valoare acceptă pentru ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} trebuie să fie un număr.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" sau \")} este necesar.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} este necesar.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} nu începe cu ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `IntroduceÈ›i o adresă URL validă.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Data selectată este nevalidă.\"\n};\nvar ro = { ui: ui32, validation: validation32 };\nvar ui33 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"Добавить\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Удалить\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Убрать вÑе\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Извините, не вÑе Ð¿Ð¾Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ñ‹ верно.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Отправить\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Файл не выбран\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"ПеремеÑтить вверх\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"ПеремеÑтить вниз\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Загрузка...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Загрузить больше\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Следующий\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Предыдущий\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Добавить вÑе значениÑ\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Добавить выбранные значениÑ\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Удалить вÑе значениÑ\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Удалить выбранные значениÑ\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Выберите дату\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Изменить дату\",\n /**\n * Shown when there is something to close\n */\n close: \"Закрыть\",\n /**\n * Shown when there is something to open.\n */\n open: \"Открыть\"\n};\nvar validation33 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `ПожалуйÑта, примите ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `Дата ${sentence(name)} должна быть позже ${date(args[0])}.`;\n }\n return `Дата ${sentence(name)} должна быть в будущем.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `Поле ${sentence(name)} может Ñодержать только буквы.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `Поле ${sentence(name)} может Ñодержать только буквы и цифры.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} могут Ñодержать только буквы и пробелы.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} должен Ñодержать алфавитные Ñимволы.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} должен Ñодержать буквы или цифры.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} должно Ñодержать буквы или пробелы.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} должен Ñодержать Ñимвол.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} должно Ñодержать пропиÑные буквы.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} должно Ñодержать Ñтрочные буквы.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} должен Ñодержать чиÑла.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} должен быть Ñимволом.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} может Ñодержать только пропиÑные буквы.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} может Ñодержать только буквы нижнего региÑтра.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `Дата ${sentence(name)} должна быть раньше ${date(args[0])}.`;\n }\n return `Дата ${sentence(name)} должна быть в прошлом.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Ðто поле заполнено неверно и не может быть отправлено.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `Поле ${sentence(name)} должно быть между ${a} и ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `Поле ${sentence(name)} не Ñовпадает.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `Поле ${sentence(\n name\n )} имеет неверную дату. ПожалуйÑта, иÑпользуйте формат ${args[0]}`;\n }\n return \"Ðто поле заполнено неверно и не может быть отправлено.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `Дата ${sentence(name)} должна быть между ${date(args[0])} и ${date(\n args[1]\n )}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"ПожалуйÑта, введите дейÑтвительный Ñлектронный адреÑ.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `Поле ${sentence(name)} не должно заканчиватьÑÑ Ð½Ð° ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `Поле ${sentence(name)} имеет неподуÑтимое значение.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `Поле ${sentence(name)} должно Ñодержать минимум один Ñимвол.`;\n }\n if (min == 0 && max) {\n return `Длина Ð¿Ð¾Ð»Ñ ${sentence(\n name\n )} должна быть меньше или равна ${max} Ñимволам.`;\n }\n if (min === max) {\n return `Длина ${sentence(name)} должна ÑоÑтавлÑÑ‚ÑŒ ${max} Ñимволов.`;\n }\n if (min && max === Infinity) {\n return `Длина Ð¿Ð¾Ð»Ñ ${sentence(\n name\n )} должна быть больше или равна ${min} Ñимволам.`;\n }\n return `Длина Ð¿Ð¾Ð»Ñ ${sentence(name)} должна быть между ${min} и ${max} Ñимволами.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `Поле ${sentence(name)} имеет недопуÑтимое значение.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Ðе может быть выбрано больше, чем ${args[0]} ${name}.`;\n }\n return `Поле ${sentence(name)} должно быть меньше или равно ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Ðе указаны поддержиавемые форматы файла.\";\n }\n return `Формат файла в поле ${sentence(name)} должен быть: ${args[0]}.`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Ðе может быть выбрано меньше, чем ${args[0]} ${name}.`;\n }\n return `Поле ${sentence(name)} должно быть не менее, чем ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†не поддерживаетÑÑ Ð² поле ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `Поле ${sentence(name)} должно быть чиÑлом.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" или \")} требуетÑÑ.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `Поле ${sentence(name)} обÑзательно Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `Поле ${sentence(name)} должно начинатьÑÑ Ñ ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `ПожалуйÑта, введите дейÑтвительный URL-адреÑ.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ð´Ð°Ñ‚Ð° недейÑтвительна.\"\n};\nvar ru = { ui: ui33, validation: validation33 };\nvar ui34 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"PridaÅ¥\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"OdstrániÅ¥\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"OdstrániÅ¥ vÅ¡etko\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"PrepáÄte, ale nie vÅ¡etky polia sú vyplnené správne.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"OdoslaÅ¥\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Nebol vybraný žiadny súbor\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Posunúť hore\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Posunúť dole\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"NaÄÃtavanie...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"NaÄÃtaÅ¥ viac\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"ÄŽalÅ¡ie\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"PredoÅ¡lý\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Pridajte vÅ¡etky hodnoty\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Pridajte vybrané hodnoty\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"OdstrániÅ¥ vÅ¡etky hodnoty\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"OdstrániÅ¥ vybrané hodnoty\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Vyberte dátum\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Zmena dátumu\",\n /**\n * Shown when there is something to close\n */\n close: \"ZavrieÅ¥\",\n /**\n * Shown when there is something to open.\n */\n open: \"Otvorené\"\n};\nvar validation34 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `ProsÃm zaÅ¡krtnite ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} musà byÅ¥ za ${date(args[0])}.`;\n }\n return `${sentence(name)} musà byÅ¥ v budúcnosti.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} môže obsahovaÅ¥ iba pÃsmená.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} môže obsahovaÅ¥ iba pÃsmená a ÄÃsla.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} môže obsahovaÅ¥ iba pÃsmená a medzery.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} musà obsahovaÅ¥ abecedné znaky.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} musà obsahovaÅ¥ pÃsmená alebo ÄÃslice.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} musà obsahovaÅ¥ pÃsmená alebo medzery.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} musà obsahovaÅ¥ symbol.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} musà obsahovaÅ¥ veľké pÃsmená.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} musà obsahovaÅ¥ malé pÃsmená.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} musà obsahovaÅ¥ ÄÃsla.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} musà byÅ¥ symbol.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} môže obsahovaÅ¥ iba veľké pÃsmená.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} môže obsahovaÅ¥ len malé pÃsmená.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} musà byÅ¥ pred ${date(args[0])}.`;\n }\n return `${sentence(name)} musà byÅ¥ v minulosti.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Toto pole bolo nesprávne nakonfigurované a nemôže byÅ¥ odoslané.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} musà byÅ¥ medzi ${a} and ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} does not match.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} nie je platným dátumom, prosÃm, použite formát ${args[0]}`;\n }\n return \"Toto pole bolo nesprávne nakonfigurované a nemôže byÅ¥ odoslané.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} musà byÅ¥ medzi ${date(args[0])} a ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"ProsÃm, zadajte platnú emailovú adresu.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} nekonÄà na ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} nie je povolená hodnota.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} musà maÅ¥ najmenej jeden znak.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} musà byÅ¥ menÅ¡ie alebo rovné ako ${max} znakov.`;\n }\n if (min === max) {\n return `${sentence(name)} by mala maÅ¥ dĺžku ${max} znakov.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} musà byÅ¥ väÄÅ¡ie alebo rovné ako ${min} znakov.`;\n }\n return `${sentence(name)} musà byÅ¥ medzi ${min} až ${max} znakov.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} nie je povolená hodnota.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Nie je možné použiÅ¥ viac než ${args[0]} ${name}.`;\n }\n return `${sentence(name)} musà byÅ¥ menÅ¡ie alebo rovné ako ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Nie sú povolené formáty súborov.\";\n }\n return `${sentence(name)} musà byÅ¥ typu: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Nemôže byÅ¥ menej než ${args[0]} ${name}.`;\n }\n return `${sentence(name)} musà byÅ¥ minimálne ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†nie je povolené hodnota pre ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} musà byÅ¥ ÄÃslo.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" alebo \")} je potrebný.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} je povinné.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} nezaÄÃná s ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Zadajte platnú adresu URL.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Vybraný dátum je neplatný.\"\n};\nvar sk = { ui: ui34, validation: validation34 };\nvar ui35 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"Dodaj\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Odstrani\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Odstrani vse\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Nekatera polja niso pravilno izpolnjena.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"PoÅ¡lji\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Nobena datoteka ni izbrana\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Premakni se navzgor\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Premakni se navzdol\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Nalaganje...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Naloži veÄ\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Naslednji\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"PrejÅ¡nji\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Dodajte vse vrednosti\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Dodajanje izbranih vrednosti\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Odstranite vse vrednosti\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Odstrani izbrane vrednosti\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Izberite datum\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Spremeni datum\",\n /**\n * Shown when there is something to close\n */\n close: \"Zapri\",\n /**\n * Shown when there is something to open.\n */\n open: \"Odpri\"\n};\nvar validation35 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Prosimo popravite ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} mora biti po ${date(args[0])}.`;\n }\n return `${sentence(name)} mora biti v prihodnosti.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} lahko vsebuje samo znake abecede.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} lahko vsebuje samo Ärke in Å¡tevilke.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} lahko vsebuje samo Ärke in presledke.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} mora vsebovati abecedne znake.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} mora vsebovati Ärke ali Å¡tevilke.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} mora vsebovati Ärke ali presledke.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} mora vsebovati simbol.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} mora vsebovati velike Ärke.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} mora vsebovati male Ärke.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} mora vsebovati Å¡tevilke.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} mora biti simbol.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} lahko vsebuje le velike Ärke.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} lahko vsebuje le male Ärke.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} mora biti pred ${date(args[0])}.`;\n }\n return `${sentence(name)} mora biti v preteklosti.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `To polje je narobe nastavljeno in ne mora biti izpolnjeno.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} mora biti med ${a} in ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} se ne ujema.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} ni pravilen datum, prosimo uporabite format ${args[0]}`;\n }\n return \"To polje je narobe nastavljeno in ne mora biti izpolnjeno.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} mora biti med ${date(args[0])} in ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Vnesite veljaven e-poÅ¡tni naslov.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} se mora koÄati z ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} ni dovoljena vrednost.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} mora vsebovati vsaj en znak.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} mora vsebovati najveÄ ${max} znakov.`;\n }\n if (min === max) {\n return `${sentence(name)} mora biti dolg ${max} znakov.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} mora vsebovati vsaj ${min} znakov.`;\n }\n return `${sentence(name)} mora vsebovati med ${min} in ${max} znakov.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} ni dovoljena vrednost.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `NajveÄ je ${args[0]} ${name}.`;\n }\n return `${sentence(name)} je lahko najveÄ ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Nobena vrsta datoteke ni dovoljena.\";\n }\n return `${sentence(name)} mora biti tipa: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Najmanj ${args[0]} ${name} je dovoljenih.`;\n }\n return `${sentence(name)} mora biti vsaj ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†ni dovoljen(a/o) ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} mora biti Å¡tevilka.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" ali \")} zahtevan je.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} je zahtevan(o/a).`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} se mora zaÄeti z ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Vnesite veljaven URL.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Izbrani datum je neveljaven.\"\n};\nvar sl = { ui: ui35, validation: validation35 };\nvar ui36 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"Dodaj\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Ukloni\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Ukloni sve\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Pojedina polja nisu ispravno ispunjena.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"PoÅ¡alji\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Fajl nije odabran\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Pomerite se gore\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Pomeri se dole\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"UÄitavanje...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"UÄitaj viÅ¡e\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Sledeća\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Prethodna\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Dodajte sve vrednosti\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Dodajte izabrane vrednosti\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Uklonite sve vrednosti\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Uklonite izabrane vrednosti\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Izaberite datum\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Promenite datum\",\n /**\n * Shown when there is something to close\n */\n close: \"Zatvori\",\n /**\n * Shown when there is something to open.\n */\n open: \"Otvori\"\n};\nvar validation36 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Molimo prihvatite ${name}`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} mora biti posle ${date(args[0])}.`;\n }\n return `${sentence(name)} mora biti u buducÌnosti.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} može da sadrži samo abecedne znakove.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} može da sadrži samo slova i brojeve.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} može da sadrži samo slova i razmake.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} mora da sadrži abecedne znakove.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} mora da sadrži slova ili brojeve.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} mora da sadrži slova ili razmake.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} mora da sadrži simbol.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} mora da sadrži velika slova.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} mora da sadrži mala slova.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} mora da sadrži brojeve.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} mora biti simbol.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} može da sadrži samo velika slova.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} može da sadrži samo mala slova.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} mora biti pre ${date(args[0])}.`;\n }\n return `${sentence(name)} mora biti u proÅ¡losti.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Ovo polje je pogreÅ¡no konfigurisano i ne može se poslati.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} mora biti izmeÄ‘u ${a} i ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} se ne podudara.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} nije važecÌi datum, molimo Vas koristite format ${args[0]}`;\n }\n return \"Ovo polje je pogreÅ¡no konfigurisano i ne može se poslati\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} mora biti izmeÄ‘u ${date(args[0])} i ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Unesite ispravnu e-mail adresu.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} se ne zavrÅ¡ava sa ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} nije dozvoljena vrednost`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} mora biti najmanje jedan karakter.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} mora biti manji ili jednaki od ${max} karaktera.`;\n }\n if (min === max) {\n return `${sentence(name)} treba da bude ${max} znakova dugaÄak.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} mora biti vecÌi ili jednaki od ${min} karaktera.`;\n }\n return `${sentence(name)} mora biti izmeÄ‘u ${min} i ${max} karaktera.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} nije dozvoljena vrednost.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Ne može imati viÅ¡e od ${args[0]} ${name}.`;\n }\n return `${sentence(name)} mora biti manji ili jednaki od ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Nisu dozvoljeni formati datoteka.\";\n }\n return `${sentence(name)} mora biti tipa: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Ne može imati manje od ${args[0]} ${name}.`;\n }\n return `${sentence(name)} mora da ima najmanje ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†nije dozvoljeno ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} mora biti broj.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" или \")} потребан је.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} je obavezno polje.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} ne poÄinje sa ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Unesite važeću URL adresu.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Izabrani datum je nevažeći.\"\n};\nvar sr = { ui: ui36, validation: validation36 };\nvar ui37 = {\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Ta bort\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Ta bort alla\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Tyvärr är inte alla fält korrekt ifyllda\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Skicka\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Ingen fil vald\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Flytta upp\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Flytta ner\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Laddar...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Ladda mer\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Nästa\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"FöregÃ¥ende\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Lägg till alla värden\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Lägg till valda värden\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Ta bort alla värden\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Ta bort valda värden\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Välj datum\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Ändra datum\",\n /**\n * Shown when there is something to close\n */\n close: \"Stäng\",\n /**\n * Shown when there is something to open.\n */\n open: \"Öppna\"\n};\nvar validation37 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Var god acceptera ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} mÃ¥ste vara efter ${date(args[0])}.`;\n }\n return `${sentence(name)} mÃ¥ste vara framÃ¥t i tiden.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} kan enbart innehÃ¥lla bokstäver i alfabetet.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} kan bara innehÃ¥lla bokstäver och siffror.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} kan bara innehÃ¥lla bokstäver och blanksteg.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} mÃ¥ste innehÃ¥lla alfabetiska tecken.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} mÃ¥ste innehÃ¥lla bokstäver eller siffror.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} mÃ¥ste innehÃ¥lla bokstäver eller mellanslag.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} mÃ¥ste innehÃ¥lla symbol.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} mÃ¥ste innehÃ¥lla versaler.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} mÃ¥ste innehÃ¥lla gemener.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} mÃ¥ste innehÃ¥lla siffror.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} mÃ¥ste vara en symbol.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} kan bara innehÃ¥lla versaler.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} kan bara innehÃ¥lla smÃ¥ bokstäver.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} mÃ¥ste vara före ${date(args[0])}.`;\n }\n return `${sentence(name)} mÃ¥ste vara bakÃ¥t i tiden.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Det här fältet ställdes inte in korrekt och kan inte användas.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} mÃ¥ste vara mellan ${a} och ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} matchar inte.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} är inte ett giltigt datum, var god använd formatet ${args[0]}`;\n }\n return \"Det här fältet ställdes inte in korrekt och kan inte användas\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} mÃ¥ste vara mellan ${date(args[0])} och ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Var god fyll i en giltig e-postadress.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} slutar inte med ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} är inte ett godkänt värde.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} mÃ¥ste ha minst ett tecken.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} mÃ¥ste vara ${max} tecken eller färre.`;\n }\n if (min === max) {\n return `${sentence(name)} bör vara ${max} tecken lÃ¥nga.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} mÃ¥ste vara ${min} tecken eller fler.`;\n }\n return `${sentence(name)} mÃ¥ste vara mellan ${min} och ${max} tecken.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} är inte ett godkänt värde.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Kan inte ha mer än ${args[0]} ${name}.`;\n }\n return `${sentence(name)} mÃ¥ste vara ${args[0]} eller mindre.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Inga filtyper tillÃ¥tna.\";\n }\n return `${sentence(name)} mÃ¥ste vara av filtypen: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Kan inte ha mindre än ${args[0]} ${name}.`;\n }\n return `${sentence(name)} mÃ¥ste vara minst ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†är inte ett godkänt ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} mÃ¥ste vara en siffra.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" eller \")} krävs.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} är obligatoriskt.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} börjar inte med ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Ange en giltig URL.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Det valda datumet är ogiltigt.\"\n};\nvar sv = { ui: ui37, validation: validation37 };\n\n// packages/i18n/src/locales/tet.ts\nvar ui38 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"Aumenta\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Hasai\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Hasai Hotu\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Deskulpa, iha informasaun neebe sala iha formuláriu\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Submete\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Seidauk hili file\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Muda ba leten\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Muda ba kotuk\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Hein lai...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Foti tan\",\n /**\n * Show on buttons that navigate state forward\n */\n next: \"Ba oin\",\n /**\n * Show on buttons that navigate state backward\n */\n prev: \"Ba kotuk\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Aumenta hotu\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Aumenta buat neebe hili ona\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Hasai hotu\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Hasai buat neebe hili ona\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Hili data\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Troka data\"\n};\nvar validation38 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Favor ida simu ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} tenki depoid ${date(args[0])}.`;\n }\n return `${sentence(name)} tenki iha futuru.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} bele uza letra deit.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} bele uza letra ka numeru deit.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} bele uza letra ka numeru deit.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} tenki antes ${date(args[0])}.`;\n }\n return `${sentence(name)} tenki antes ohin loron.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Informasaun nee la loos no la bele submete.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} tenki iha klaran entre ${a} no ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} la hanesan.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} la loos, favor ida hakerek tuir ${args[0]}`;\n }\n return \"Informasaun nee la loos no la bele submete.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} tenki iha ${date(args[0])} no ${date(\n args[1]\n )} nia klaran`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Favor hakerek endresu email neebe loos.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} la remata ho ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `la bele uza ${sentence(name)}.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} tenki iha letra ida ka liu.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} tenki badak liu ${max} letra.`;\n }\n if (min === max) {\n return `${sentence(name)} tenki iha letra ${max}.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} tenki iha letra ${min} ka liu.`;\n }\n return `${sentence(name)} tenki iha letra ${min} too ${max}.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `la bele uza ${sentence(name)}.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `La bele iha ${args[0]} ka liu ${name}.`;\n }\n return `${sentence(name)} tenki kiik liu ka hanesan ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return `La bele simu 'format' ida.`;\n }\n return `${sentence(name)} tenki iha tipo: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Presiza ${args[0]} ${name} ka liu.`;\n }\n return `${name} tenki ${args[0]} ka liu.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `La bele uza “${value}†ba ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} tenki numeru.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `Presiza ${sentence(name)}.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} la komesa ho ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Favor hakerek URL neebe loos.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Data la loos.\"\n};\nvar tet = { ui: ui38, validation: validation38 };\nvar ui39 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"Илова кардан\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Хориҷ кардан\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Ҳамаро хориҷ кунед\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Бубахшед, на ҳама майдонҳо дуруÑÑ‚ пур карда шудаанд.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Пешниҳод кунед\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Ягон файл интихоб нашудааÑÑ‚\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Ба боло ҳаракат кунед\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Ба поён ҳаракат кунед\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Дар ҳоли боргузорӣ\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Бештар бор кунед\",\n /**\n * Show on buttons that navigate state forward\n */\n next: \"Баъдӣ\",\n /**\n * Show on buttons that navigate state backward\n */\n prev: \"Гузашта\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Ҳама арзишҳоро илова кунед\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Илова кардани арзишҳои интихобшуда\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Ҳама арзишҳоро хориҷ кунед\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Ðрзишҳои интихобшударо хориҷ кунед\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Сана интихоб кунед\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Тағйир додани Ñана\"\n};\nvar validation39 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Лутфан ${name}-ро қабул кунед`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} боÑд Ð¿Ð°Ñ Ð°Ð· ${date(args[0])} бошад.`;\n }\n return `${sentence(name)} боÑд дар оÑнда бошад.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} метавонад танҳо аломатҳои алифборо дар бар гирад.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} метавонад танҳо ҳарфҳо ва рақамҳоро дар бар гирад.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} метавонад танҳо ҳарфҳо ва фоÑилаҳоро дар бар гирад.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} must contain alphabetical characters.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} must contain letters and numbers.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} must contain letters and spaces.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} must contain symbol.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} must contain uppercase.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} must contain lowercase.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} must contain number.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} can only contain symbol.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} can only contain uppercase.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} can only contain lowercase.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} боÑд пеш аз ${date(args[0])} бошад.`;\n }\n return `${sentence(name)} боÑд дар гузашта бошад.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Ин майдон нодуруÑÑ‚ танзим шудааÑÑ‚ ва онро пешниҳод кардан ғайриимкон аÑÑ‚.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} боÑд дар байни ${a} ва ${b} бошад.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} мувофиқат намекунад.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} Ñанаи дуруÑÑ‚ неÑÑ‚, лутфан формати ${args[0]}-ро иÑтифода баред`;\n }\n return \"Ин майдон нодуруÑÑ‚ танзим шудааÑÑ‚ ва онро пешниҳод кардан ғайриимкон аÑÑ‚\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} боÑд дар байни ${date(args[0])} ва ${date(\n args[1]\n )} бошад`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Лутфан нишонаи имейли амалкунандаро ворид намоед.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} бо ${list(args)} ба охир намераÑад.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} арзиши иҷозатдодашуда неÑÑ‚.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} боÑд ҳадди аққал Ñк аломат бошад.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} боÑд аз ${max} аломат камтар Ñ‘ баробар бошад.`;\n }\n if (min === max) {\n return `${sentence(name)} боÑд ${max} аломат бошад.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} боÑд аз ${min} аломат зиёд Ñ‘ баробар бошад.`;\n }\n return `${sentence(name)} боÑд дар байни ${min} ва ${max} аломат бошад.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} арзиши иҷозатдодашуда неÑÑ‚.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Зиёда аз ${args[0]} ${name} дошта наметавонад.`;\n }\n return `${sentence(name)} боÑд аз ${args[0]} камтар Ñ‘ баробар бошад.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Ягон формати файл иҷозат дода намешавад.\";\n }\n return `${sentence(name)} боÑд чунин намуд бошад: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Камтар аз ${args[0]} ${name} дошта наметавонад.`;\n }\n return `${sentence(name)} боÑд ҳадди аққал ${args[0]} бошад.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `\"${value}\" ${name} иҷозат дода намешавад.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} боÑд рақам бошад.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" Ñ‘ \")} зарур а`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} лозим аÑÑ‚.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} бо ${list(args)} оғоз намешавад.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Лутфан URL-и дуруÑтро дохил кунед.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Санаи интихобшуда нодуруÑÑ‚ аÑÑ‚.\"\n};\nvar tg = { ui: ui39, validation: validation39 };\nvar ui40 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"เพิ่ม\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"เà¸à¸²à¸à¸à¸\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"เà¸à¸²à¸à¸à¸à¸—ั้งหมด\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"ขà¸à¸à¸ ัย ข้à¸à¸¡à¸¹à¸¥à¸šà¸²à¸‡à¸Šà¹ˆà¸à¸‡à¸—ี่à¸à¸£à¸à¸à¹„ม่ถูà¸à¸•à¹‰à¸à¸‡\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"ส่ง\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"ยังไม่ได้เลืà¸à¸à¹„ฟล์\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"เลื่à¸à¸™à¸‚ึ้น\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"เลื่à¸à¸™à¸¥à¸‡\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"à¸à¸³à¸¥à¸±à¸‡à¹‚หลด...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"โหลดเพิ่มเติม\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"ถัดไป\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"à¸à¹ˆà¸à¸™à¸«à¸™à¹‰à¸²\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"เพิ่มค่าทั้งหมด\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"เพิ่มค่าที่เลืà¸à¸\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"ลบค่าทั้งหมด\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"ลบค่าที่เลืà¸à¸\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"เลืà¸à¸à¸§à¸±à¸™à¸—ี่\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"เปลี่ยนวันที่\",\n /**\n * Shown when there is something to close\n */\n close: \"ปิด\",\n /**\n * Shown when there is something to open.\n */\n open: \"เปิด\"\n};\nvar validation40 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `à¸à¸£à¸¸à¸“ายà¸à¸¡à¸£à¸±à¸š ${name}`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} จะต้à¸à¸‡à¹€à¸›à¹‡à¸™à¸§à¸±à¸™à¸—ี่หลังจาภ${date(args[0])}`;\n }\n return `${sentence(name)} จะต้à¸à¸‡à¹€à¸›à¹‡à¸™à¸§à¸±à¸™à¸—ี่ที่ยังไม่มาถึง`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} สามารถเป็นได้à¹à¸„่ตัวà¸à¸±à¸à¸©à¸£à¹€à¸—่านั้น`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} สามารถเป็นได้à¹à¸„่ตัวà¸à¸±à¸à¸©à¸£à¹à¸¥à¸°à¸•à¸±à¸§à¹€à¸¥à¸‚เท่านั้น`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} สามารถเป็นได้à¹à¸„่ตัวà¸à¸±à¸à¸©à¸£à¹à¸¥à¸°à¹€à¸§à¹‰à¸™à¸§à¸£à¸£à¸„เท่านั้น`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} ต้à¸à¸‡à¸¡à¸µà¸•à¸±à¸§à¸à¸±à¸à¸©à¸£à¸•à¸±à¸§à¸à¸±à¸à¸©à¸£`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} ต้à¸à¸‡à¸¡à¸µà¸•à¸±à¸§à¸à¸±à¸à¸©à¸£à¸«à¸£à¸·à¸à¸•à¸±à¸§à¹€à¸¥à¸‚`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} ต้à¸à¸‡à¸¡à¸µà¸•à¸±à¸§à¸à¸±à¸à¸©à¸£à¸«à¸£à¸·à¸à¸Šà¹ˆà¸à¸‡à¸§à¹ˆà¸²à¸‡`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} ต้à¸à¸‡à¸¡à¸µà¸ªà¸±à¸à¸¥à¸±à¸à¸©à¸“์`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} ต้à¸à¸‡à¸¡à¸µà¸•à¸±à¸§à¸žà¸´à¸¡à¸žà¹Œà¹ƒà¸«à¸à¹ˆ`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} ต้à¸à¸‡à¸¡à¸µà¸•à¸±à¸§à¸žà¸´à¸¡à¸žà¹Œà¹€à¸¥à¹‡à¸`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} ต้à¸à¸‡à¸¡à¸µà¸•à¸±à¸§à¹€à¸¥à¸‚`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} จะต้à¸à¸‡à¹€à¸›à¹‡à¸™à¸ªà¸±à¸à¸¥à¸±à¸à¸©à¸“์`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} เท่านั้นที่สามารถมีตัวà¸à¸±à¸à¸©à¸£à¸•à¸±à¸§à¸žà¸´à¸¡à¸žà¹Œà¹ƒà¸«à¸à¹ˆ`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} เท่านั้นที่สามารถมีตัวà¸à¸±à¸à¸©à¸£à¸•à¸±à¸§à¸žà¸´à¸¡à¸žà¹Œà¹€à¸¥à¹‡à¸`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} จะต้à¸à¸‡à¹€à¸›à¹‡à¸™à¸§à¸±à¸™à¸—ี่ที่มาà¸à¹ˆà¸à¸™ ${date(args[0])}`;\n }\n return `${sentence(name)} จะต้à¸à¸‡à¹€à¸›à¹‡à¸™à¸§à¸±à¸™à¸—ี่ที่ผ่านมาà¹à¸¥à¹‰à¸§`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `ช่à¸à¸‡à¸™à¸µà¹‰à¸–ูà¸à¸•à¸±à¹‰à¸‡à¸„่าà¸à¸¢à¹ˆà¸²à¸‡à¹„ม่ถูà¸à¸•à¹‰à¸à¸‡ à¹à¸¥à¸°à¸ˆà¸°à¹„ม่สามารถส่งข้à¸à¸¡à¸¹à¸¥à¹„ด้`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} จะต้à¸à¸‡à¹€à¸›à¹‡à¸™à¸„่าระหว่าง ${a} à¹à¸¥à¸° ${b}`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} ไม่ตรงà¸à¸±à¸™`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} ไม่à¸à¸¢à¸¹à¹ˆà¹ƒà¸™à¸£à¸¹à¸›à¹à¸šà¸šà¸§à¸±à¸™à¸—ี่ที่ถูà¸à¸•à¹‰à¸à¸‡ à¸à¸£à¸¸à¸“าà¸à¸£à¸à¸à¸•à¸²à¸¡à¸£à¸¹à¸›à¹à¸šà¸š ${args[0]}`;\n }\n return \"ช่à¸à¸‡à¸™à¸µà¹‰à¸–ูà¸à¸•à¸±à¹‰à¸‡à¸„่าà¸à¸¢à¹ˆà¸²à¸‡à¹„ม่ถูà¸à¸•à¹‰à¸à¸‡ à¹à¸¥à¸°à¸ˆà¸°à¹„ม่สามารถส่งข้à¸à¸¡à¸¹à¸¥à¹„ด้\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} จะต้à¸à¸‡à¹€à¸›à¹‡à¸™à¸§à¸±à¸™à¸—ี่ระหว่าง ${date(args[0])} à¹à¸¥à¸° ${date(\n args[1]\n )}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"à¸à¸£à¸¸à¸“าà¸à¸£à¸à¸à¸—ี่à¸à¸¢à¸¹à¹ˆà¸à¸µà¹€à¸¡à¸¥à¸—ีถูà¸à¸•à¹‰à¸à¸‡\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} จะต้à¸à¸‡à¸¥à¸‡à¸—้ายด้วย ${list(args)}`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} ไม่ใช่ค่าที่à¸à¸™à¸¸à¸à¸²à¸•à¹ƒà¸«à¹‰à¸à¸£à¸à¸`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} จะต้à¸à¸‡à¸¡à¸µà¸„วามยาวà¸à¸¢à¹ˆà¸²à¸‡à¸™à¹‰à¸à¸¢à¸«à¸™à¸¶à¹ˆà¸‡à¸•à¸±à¸§à¸à¸±à¸à¸©à¸£`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} จะต้à¸à¸‡à¸¡à¸µà¸„วามยาวไม่เà¸à¸´à¸™ ${max} ตัวà¸à¸±à¸à¸©à¸£`;\n }\n if (min === max) {\n return `${sentence(name)} ควรจะเป็น ${max} ตัวà¸à¸±à¸à¸©à¸£à¸¢à¸²à¸§`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} จะต้à¸à¸‡à¸¡à¸µà¸„วามยาว ${min} ตัวà¸à¸±à¸à¸©à¸£à¸‚ึ้นไป`;\n }\n return `${sentence(name)} จะต้à¸à¸‡à¸¡à¸µà¸„วามยาวระหว่าง ${min} à¹à¸¥à¸° ${max} ตัวà¸à¸±à¸à¸©à¸£`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} ไม่ใช่ค่าที่à¸à¸™à¸¸à¸à¸²à¸•à¹ƒà¸«à¹‰à¸à¸£à¸à¸`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `ไม่สามารถเลืà¸à¸à¸¡à¸²à¸à¸à¸§à¹ˆà¸² ${args[0]} ${name} ได้`;\n }\n return `${sentence(name)} จะต้à¸à¸‡à¸¡à¸µà¸„่าไม่เà¸à¸´à¸™ ${args[0]}`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"ไม่มีประเภทขà¸à¸‡à¹„ฟล์ที่à¸à¸™à¸¸à¸à¸²à¸•\";\n }\n return `${sentence(name)} จะต้à¸à¸‡à¹€à¸›à¹‡à¸™à¹„ฟล์ประเภท ${args[0]} เท่านั้น`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `ไม่สามารถเลืà¸à¸à¸™à¹‰à¸à¸¢à¸à¸§à¹ˆà¸² ${args[0]} ${name} ได้`;\n }\n return `${sentence(name)} จะต้à¸à¸‡à¸¡à¸µà¸„่าà¸à¸¢à¹ˆà¸²à¸‡à¸™à¹‰à¸à¸¢ ${args[0]}`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†ไม่ใช่ค่า ${name} ที่à¸à¸™à¸¸à¸à¸²à¸•à¹ƒà¸«à¹‰à¸à¸£à¸à¸`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} จะต้à¸à¸‡à¹€à¸›à¹‡à¸™à¸•à¸±à¸§à¹€à¸¥à¸‚เท่านั้น`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" หรืภ\")} ต้à¸à¸‡à¸à¸²à¸£.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `à¸à¸£à¸¸à¸“าà¸à¸£à¸à¸ ${sentence(name)}`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} จะต้à¸à¸‡à¹€à¸£à¸´à¹ˆà¸¡à¸•à¹‰à¸™à¸”้วย ${list(args)}`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `à¸à¸£à¸¸à¸“าระบุที่à¸à¸¢à¸¹à¹ˆà¸¥à¸´à¸‡à¸à¹Œà¹ƒà¸«à¹‰à¸–ูà¸à¸•à¹‰à¸à¸‡`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"วันที่ที่เลืà¸à¸à¹„ม่ถูà¸à¸•à¹‰à¸à¸‡\"\n};\nvar th = { ui: ui40, validation: validation40 };\nvar ui41 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"Ekle\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Kaldır\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Hepsini kaldır\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Maalesef, tüm alanlar doÄŸru doldurulmadı.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Gönder\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Dosya yok\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Yukarı Taşı\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"AÅŸağı taşı\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Yükleniyor...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Daha fazla yükle\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Sonraki\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Önceki\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Tüm deÄŸerleri ekle\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Seçili deÄŸerleri ekle\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Tüm deÄŸerleri kaldır\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Seçili deÄŸerleri kaldır\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Tarih seçin\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Tarihi deÄŸiÅŸtir\",\n /**\n * Shown when there is something to close\n */\n close: \"Kapat\",\n /**\n * Shown when there is something to open.\n */\n open: \"Açık\"\n};\nvar validation41 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Lütfen ${name}'yi kabul edin.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} ${date(args[0])}'den sonra olmalıdır.`;\n }\n return `${sentence(name)} gelecekte bir zaman olmalıdır.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} sadece alfabetik karakterler içerebilir.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} sadece alfabetik karakterler ve sayı içerebilir.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} yalnızca harf ve boÅŸluk içerebilir.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} alfabetik karakterler içermelidir.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} harf veya rakamı içermelidir.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} harf veya boÅŸluk içermelidir.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} sembol içermelidir.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} büyük harf içermelidir.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} küçük harf içermelidir.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} sayı içermelidir.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} bir sembol olmalıdır.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} yalnızca büyük harfler içerebilir.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} yalnızca küçük harfler içerebilir.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} ${date(args[0])} tarihinden önce olmalı.`;\n }\n return `${sentence(name)} geçmiÅŸte olmalı.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Alan yanlış yapılandırılmış ve gönderilemez.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} ${a} ve ${b} aralığında olmalı.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} eÅŸleÅŸmiyor.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} geçerli bir tarih deÄŸil, lütfen ${args[0]} biçimini kullanın.`;\n }\n return \"Alan yanlış yapılandırılmış ve gönderilemez.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)}, ${date(args[0])} ve ${date(args[1])} aralığında olmalı.`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Lütfen geçerli bir e-mail adresi girin.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} ${list(args)} ile bitmiyor.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} izin verilen bir deÄŸer deÄŸil.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} en azından bir karakter uzunluÄŸunda olmalı.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} ${max}'e eÅŸit veya daha küçük olmalı.`;\n }\n if (min === max) {\n return `${sentence(name)} ${max} karakter uzunluÄŸunda olmalıdır.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} ${min}'e eÅŸit veya daha büyük olmalı.`;\n }\n return `${sentence(name)}, ${min} ve ${max} karakter uzunluÄŸu aralığında olmalı.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} izin verilen bir deÄŸer deÄŸil.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${name}'in uzunluÄŸu ${args[0]}'dan daha uzun olamaz.`;\n }\n return `${sentence(name)} en azından ${args[0]} uzunluÄŸunda veya ona eÅŸit olmalı.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Hiçbir dosya türüne izin verilmez.\";\n }\n return `${sentence(name)} ÅŸu tiplerden biri olmalı: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${name}'in uzunluÄŸu ${args[0]}'dan daha kısa olamaz.`;\n }\n return `${sentence(name)} en azından ${args[0]} uzunluÄŸunda olmalı.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†${name} olamaz.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} sayı olmalı.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" veya \")} gereklidir.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} gerekli.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} ${list(args)} ile baÅŸlamıyor.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Lütfen geçerli bir URL girin.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Seçilen tarih geçersiz.\"\n};\nvar tr = { ui: ui41, validation: validation41 };\nvar ui42 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"Додати\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Видалити\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Видалити вÑе\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Вибачте, не вÑÑ– Ð¿Ð¾Ð»Ñ Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ñ– правильно.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Відправити\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Файл не вибрано\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"РухатиÑÑ Ð²Ð³Ð¾Ñ€Ñƒ\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"ПереÑунути вниз\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"ЗавантаженнÑ...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Завантажте більше\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"ÐаÑтупний\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Попередній\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Додати вÑÑ– значеннÑ\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Додати вибрані значеннÑ\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Вилучити вÑÑ– значеннÑ\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Вилучити вибрані значеннÑ\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Виберіть дату\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Змінити дату\",\n /**\n * Shown when there is something to close\n */\n close: \"Закрити\",\n /**\n * Shown when there is something to open.\n */\n open: \"Відкрити\"\n};\nvar validation42 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Будь лаÑка, прийміть ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `Дата ${sentence(name)} повинна бути пізніше за ${date(args[0])}.`;\n }\n return `Дата ${sentence(name)} має бути в майбутньому.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `Поле ${sentence(name)} може міÑтити лише літери.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `Поле ${sentence(name)} може міÑтити лише літери та цифри.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `Поле ${sentence(name)} може міÑтити лише літери та пробіли.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} повинен міÑтити алфавітні Ñимволи.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} повинен міÑтити букви або цифри.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} повинен міÑтити літери або пробіли.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} повинен міÑтити Ñимвол.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} повинен міÑтити великі регіÑтри.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} повинен міÑтити малі регіÑтри.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} повинен міÑтити цифри.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} має бути Ñимволом.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} може міÑтити лише великі літери.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} може міÑтити лише малі літери.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `Дата ${sentence(name)} повинна бути раніше за ${date(args[0])}.`;\n }\n return `Дата ${sentence(name)} повинна бути в минулому.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Це поле заповнено неправильно Ñ– не може бути надіÑлано.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `Поле ${sentence(name)} повинно бути між ${a} та ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `Поле ${sentence(name)} не збігаєтьÑÑ.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `Поле ${sentence(\n name\n )} має неправильну дату. Будь лаÑка, викориÑтовуйте формат ${args[0]}.`;\n }\n return \"Це поле заповнено неправильно Ñ– не може бути надіÑлано.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `Дата ${sentence(name)} повинна бути між ${date(args[0])} та ${date(\n args[1]\n )}.`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Будь лаÑка, введіть дійÑну електронну адреÑу.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `Поле ${sentence(name)} не повинно закінчуватиÑÑ Ð½Ð° ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `Поле ${sentence(name)} має неприпуÑтиме значеннÑ.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `Поле ${sentence(name)} має міÑтити щонайменше один Ñимвол.`;\n }\n if (min == 0 && max) {\n return `Довжина Ð¿Ð¾Ð»Ñ ${sentence(\n name\n )} повинна бути меншою або дорівнювати ${max} Ñимволам.`;\n }\n if (min === max) {\n return `${sentence(name)} має бути довжиною ${max} Ñимволів.`;\n }\n if (min && max === Infinity) {\n return `Довжина Ð¿Ð¾Ð»Ñ ${sentence(\n name\n )} повинна бути більшою або дорівнювати ${min} Ñимволам.`;\n }\n return `Довжина Ð¿Ð¾Ð»Ñ ${sentence(\n name\n )} повинна бути між ${min} та ${max} Ñимволами.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `Поле ${sentence(name)} має неприпуÑтиме значеннÑ.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Ðе може бути вибрано більше ніж ${args[0]} ${name}.`;\n }\n return `Поле ${sentence(name)} має бути менше або дорівнювати ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Ðе вказано дозволені типи файлів.\";\n }\n return `Тип файлу в полі ${sentence(name)} має бути: ${args[0]}.`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `Ðе може бути вибрано менше ніж ${args[0]} ${name}.`;\n }\n return `Поле ${sentence(name)} має бути не менше ніж ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†не дозволено в полі ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `Поле ${sentence(name)} має бути чиÑлом.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" або \")} потрібно.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `Поле ${sentence(name)} Ñ” обов'Ñзковим.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `Поле ${sentence(name)} має починатиÑÑ Ð· ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Будь лаÑка, введіть коректну URL-адреÑу.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Вибрана дата недійÑна.\"\n};\nvar uk = { ui: ui42, validation: validation42 };\nvar ui43 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"Qo'shish\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"O'chirish\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Hammasini o'chirish\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Kechirasiz, barcha maydonlar to'g'ri to'ldirilmagan.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Yuborish\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"Hech qanday fayl tanlanmagan\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Yuqoriga ko’taring\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Pastga siljish\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Yuklanmoqda...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Ko’proq yuklang\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Keyingi\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"Oldingi\",\n /**\n * Shown when adding all values.\n */\n addAllValues: `Barcha qiymatlarni qo'shish`,\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: `Tanlangan qiymatlarni qoÊ»shish`,\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Barcha qiymatlarni olib tashlang\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Tanlangan qiymatlarni olib tashlash\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Sanani tanlang\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: `O'zgartirish sanasi`,\n /**\n * Shown when there is something to close\n */\n close: \"Yopish\",\n /**\n * Shown when there is something to open.\n */\n open: \"Ochiq\"\n};\nvar validation43 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `${name} ni qabul qiling.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} ${date(args[0])} dan keyin bo'lishi kerak.`;\n }\n return `${sentence(name)} kelajakda bo'lishi kerak.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(\n name\n )} faqat alifbo tartibidagi belgilardan iborat bo'lishi mumkin.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} faqat harflar va raqamlardan iborat bo'lishi mumkin.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} faqat harf va bo'shliqlardan iborat bo'lishi mumkin.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} alfavit belgilarini o'z ichiga olishi kerak.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} harflar yoki raqamlarni o'z ichiga olishi kerak.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} harflar yoki bo'shliqlar bo'lishi kerak.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} belgisi bo'lishi kerak.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} katta harfni o'z ichiga olishi kerak.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} kichik harflarni o'z ichiga olishi kerak.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} raqamlarini o'z ichiga olishi kerak.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} belgisi bo'lishi kerak.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} faqat katta harflarni o'z ichiga olishi mumkin.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} faqat kichik harflarni o'z ichiga olishi mumkin.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} ${date(args[0])} dan oldin bo'lishi kerak`;\n }\n return `${sentence(name)} o'tmishda bo'lishi kerak.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `Bu maydon noto'g'ri sozlangan va uni yuborib bo'lmaydi.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} ${a} va ${b} orasida bo'lishi kerak.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} mos emas.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} haqiqiy sana emas, iltimos ${args[0]} formatidan foydalaning`;\n }\n return \"Bu maydon noto'g'ri sozlangan va uni yuborib bo'lmaydi\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} ${date(args[0])} va ${date(\n args[1]\n )} oralig'ida bo'lishi kerak`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Iltimos amaldagi e-mail manzilingizni kiriting.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} ${list(args)} bilan tugamaydi.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} ruxsat etilgan qiymat emas.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} kamida bitta belgidan iborat bo'lishi kerak.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} ${max} ta belgidan kam yoki teng bo'lishi kerak.`;\n }\n if (min === max) {\n return `${sentence(name)} bo'lishi kerak ${max} belgilar uzun.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} ${min} ta belgidan ko'p yoki teng bo'lishi kerak.`;\n }\n return `${sentence(\n name\n )} ${min} va ${max} gacha belgilardan iborat bo'lishi kerak.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} ruxsat etilgan qiymat emas.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${args[0]} ${name} dan ortiq bo'lishi mumkin emas.`;\n }\n return `${sentence(name)} ${args[0]} dan kichik yoki teng bo'lishi kerak.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Fayl formatlariga ruxsat berilmagan.\";\n }\n return `${sentence(name)} quyidagi turdagi bo'lishi kerak: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${args[0]} ${name} dan kam bo'lmasligi kerak.`;\n }\n return `${sentence(name)} kamida ${args[0]} bo'lishi kerak.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `\"${value}\" ruxsat berilmagan ${name}.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} raqam bo'lishi kerak.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" yoki \")} kerak.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} talab qilinadi.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} ${list(args)} bilan boshlanmaydi.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Iltimos, tegishli URL manzilini kiriting.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Tanlangan sana yaroqsiz.\"\n};\nvar uz = { ui: ui43, validation: validation43 };\nvar ui44 = {\n /**\n * Shown on buttons for adding new items.\n */\n add: \"Thêm\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"Xoá\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"Xoá tất cả\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"Xin lá»—i, không phải tất cả các trÆ°á»ng Ä‘á»u được nháºp đúng.\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"Gá»i\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"ChÆ°a chá»n file\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"Di chuyển lên\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"Di chuyển xuống\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"Äang tải...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"Tải thêm\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"Tiếp\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"TrÆ°á»›c\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"Thêm tất cả các giá trị\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"Thêm các giá trị đã chá»n\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"Loại bá» tất cả các giá trị\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"Loại bá» các giá trị đã chá»n\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"Chá»n ngà y\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"Thay đổi ngà y\",\n /**\n * Shown when there is something to close\n */\n close: \"Äóng\",\n /**\n * Shown when there is something to open.\n */\n open: \"Mở\"\n};\nvar validation44 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `Hãy đồng ý vá»›i ${name}.`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} phải sau ${date(args[0])}.`;\n }\n return `${sentence(name)} phải trong tÆ°Æ¡ng lai.`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} có thể chỉ bao gồm các chữ cái alphabet.`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} có thể chỉ bao gồm các chữ cái và chữ số.`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} chỉ có thể chứa các chữ cái và khoảng trắng.`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} phải chứa các ký tá»± chữ cái.`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} phải chứa chữ cái hoặc số.`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} phải chứa chữ cái hoặc dấu cách.`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} phải chứa ký hiệu.`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} phải chứa chữ hoa.`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} phải chứa chữ thÆ°á»ng.`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} phải chứa số.`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} phải là má»™t ký hiệu.`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} chỉ có thể chứa chữ hoa.`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} chỉ có thể chứa chữ thÆ°á»ng.`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} phải trÆ°á»›c ${date(args[0])}.`;\n }\n return `${sentence(name)} phải trong quá khứ.`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `TrÆ°á»ng nà y đã được thiết láºp sai và không thể gá»i.`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} phải ở giữa ${a} và ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} không khá»›p.`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} không phải ngà y hợp lệ, hãy sá» dụng định dạng ${args[0]}`;\n }\n return \"TrÆ°á»ng nà y đã được thiết láºp sai và không thể gá»i.\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} phải ở giữa khoảng từ ${date(args[0])} đến ${date(\n args[1]\n )}.`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"Hãy nháºp má»™t địa chỉ email hợp lệ.\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} không kết thúc vá»›i ${list(args)}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} không phải má»™t giá trị được cho phép.`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} phải có Ä‘á»™ dà i tối thiểu má»™t ký tá»±.`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} phải có Ä‘á»™ dà i tối Ä‘a ${max} ký tá»±.`;\n }\n if (min === max) {\n return `${sentence(name)} nên dà i ${max} ký tá»±.`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} phải có Ä‘á»™ dà i tối thiểu ${min} ký tá»±.`;\n }\n return `${sentence(\n name\n )} phải có Ä‘á»™ dà i tối Ä‘a trong khoảng từ ${min} đến ${max} ký tá»±.`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} không phải má»™t giá trị được cho phép.`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${name} không thể lá»›n hÆ¡n ${args[0]}.`;\n }\n return `${sentence(name)} phải tối Ä‘a bằng ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"Äịnh dạng tệp tin nà y không được phép.\";\n }\n return `${sentence(name)} phải là má»™t trong các dạng: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${name} không thể nhá» hÆ¡n ${args[0]}.`;\n }\n return `${sentence(name)} phải tối thiểu bằng ${args[0]}.`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `\"${value}\" không phải giá trị ${name} được phép.`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} phải là má»™t số.`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\" hoặc \")} cần có.`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} là bắt buá»™c.`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} không bắt đầu vá»›i ${list(args)}.`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `Vui lòng nháºp má»™t URL hợp lệ.`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"Ngà y đã chá»n không hợp lệ.\"\n};\nvar vi = { ui: ui44, validation: validation44 };\nvar ui45 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"æ·»åŠ \",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"移除\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"移除全部\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"抱æ‰ï¼Œéƒ¨åˆ†å—段未被æ£ç¡®å¡«å†™ã€‚\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"æ交\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"未选择文件\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"上移\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"下移\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"åŠ è½½ä¸...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"åŠ è½½æ›´å¤š\",\n /**\n * Shown on buttons that navigate state forward\n */\n next: \"下一æ¥\",\n /**\n * Shown on buttons that navigate state backward\n */\n prev: \"上一æ¥\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"æ·»åŠ æ‰€æœ‰å€¼\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"æ·»åŠ æ‰€é€‰å€¼\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"移除所有值\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"移除所选值\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"选择日期\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"更改日期\",\n /**\n * Shown when there is something to close\n */\n close: \"å…³é—\",\n /**\n * Shown when there is something to open.\n */\n open: \"打开\"\n};\nvar validation45 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `请接å—${name}。`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)}必须晚于${date(args[0])}。`;\n }\n return `${sentence(name)}必须是未æ¥çš„日期。`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)}åªèƒ½åŒ…å«è‹±æ–‡å—æ¯ã€‚`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)}åªèƒ½åŒ…å«å—æ¯å’Œæ•°å—。`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)}åªèƒ½åŒ…å«å—æ¯å’Œç©ºæ ¼ã€‚`;\n },\n /**\n * The value have no letter.\n * @see {@link https://formkit.com/essentials/validation#contains_alpha}\n */\n contains_alpha({ name }) {\n return `${sentence(name)} 必须包å«å—æ¯å—符`;\n },\n /**\n * The value have no alphanumeric\n * @see {@link https://formkit.com/essentials/validation#contains_alphanumeric}\n */\n contains_alphanumeric({ name }) {\n return `${sentence(name)} 必须包å«å—æ¯æˆ–æ•°å—。`;\n },\n /**\n * The value have no letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#contains_alpha-spaces}\n */\n contains_alpha_spaces({ name }) {\n return `${sentence(name)} 必须包å«å—æ¯æˆ–ç©ºæ ¼ã€‚`;\n },\n /**\n * The value have no symbol\n * @see {@link https://formkit.com/essentials/validation#contains_symbol}\n */\n contains_symbol({ name }) {\n return `${sentence(name)} 必须包å«ç¬¦å·ã€‚`;\n },\n /**\n * The value have no uppercase\n * @see {@link https://formkit.com/essentials/validation#contains_uppercase}\n */\n contains_uppercase({ name }) {\n return `${sentence(name)} 必须包å«å¤§å†™å—æ¯ã€‚`;\n },\n /**\n * The value have no lowercase\n * @see {@link https://formkit.com/essentials/validation#contains_lowercase}\n */\n contains_lowercase({ name }) {\n return `${sentence(name)} 必须包å«å°å†™å—æ¯ã€‚`;\n },\n /**\n * The value have no numeric\n * @see {@link https://formkit.com/essentials/validation#contains_numeric}\n */\n contains_numeric({ name }) {\n return `${sentence(name)} 必须包å«æ•°å—。`;\n },\n /**\n * The value is not symbol\n * @see {@link https://formkit.com/essentials/validation#symbol}\n */\n symbol({ name }) {\n return `${sentence(name)} 必须是符å·ã€‚`;\n },\n /**\n * The value is not uppercase\n * @see {@link https://formkit.com/essentials/validation#uppercase}\n */\n uppercase({ name }) {\n return `${sentence(name)} åªèƒ½åŒ…å«å¤§å†™å—æ¯ã€‚`;\n },\n /**\n * The value is not lowercase\n * @see {@link https://formkit.com/essentials/validation#lowercase}\n */\n lowercase({ name }) {\n return `${sentence(name)} åªèƒ½åŒ…å«å°å†™å—æ¯ã€‚`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)}必须早于${date(args[0])}。`;\n }\n return `${sentence(name)}必须是过去的日期。`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `该å—段未被æ£ç¡®è®¾ç½®è€Œæ— 法æ交。`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)}必须在${a}å’Œ${b}之间。`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)}ä¸åŒ¹é…。`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)}ä¸æ˜¯åˆæ³•æ—¥æœŸï¼Œè¯·ä½¿ç”¨ ${args[0]} æ ¼å¼`;\n }\n return \"该å—段未被æ£ç¡®è®¾ç½®è€Œæ— 法æ交\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)}必须在${date(args[0])}å’Œ${date(args[1])}之间`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"请输入åˆæ³•çš„电å邮件地å€ã€‚\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)}必须以${list(args)}结尾。`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)}是ä¸å…许的。`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)}至少è¦æœ‰ä¸€ä¸ªå—符。`;\n }\n if (min == 0 && max) {\n return `${sentence(name)}必须少于或ç‰äºŽ${max}个å—符。`;\n }\n if (min === max) {\n return `${sentence(name)}必须包å«${max}个å—符。`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)}必须多于或ç‰äºŽ${min}个å—符。`;\n }\n return `${sentence(name)}必须介于${min}å’Œ${max}个å—符之间。`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)}是ä¸å…许的。`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${name}ä¸å¾—多于${args[0]}个值。`;\n }\n return `${name}ä¸å¾—大于${args[0]}。`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"没有å…è®¸çš„æ–‡ä»¶æ ¼å¼ã€‚\";\n }\n return `${sentence(name)}的类型必须为:${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `${name}ä¸å¾—少于${args[0]}个值。`;\n }\n return `${sentence(name)}ä¸å¾—å°äºŽ${args[0]}。`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `\"${value}\"ä¸æ˜¯ä¸€ä¸ªåˆæ³•çš„${name}。`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)}必须为数å—。`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\"或\")}${labels}需è¦ã€‚`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)}ä¸å¾—留空。`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)}必须以${list(args)}开头。`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `请输入有效的 URL。`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"æ‰€é€‰æ—¥æœŸæ— æ•ˆã€‚\"\n};\nvar zh = { ui: ui45, validation: validation45 };\nvar ui46 = {\n /**\n * Shown on a button for adding additional items.\n */\n add: \"新增\",\n /**\n * Shown when a button to remove items is visible.\n */\n remove: \"移除\",\n /**\n * Shown when there are multiple items to remove at the same time.\n */\n removeAll: \"移除全部\",\n /**\n * Shown when all fields are not filled out correctly.\n */\n incomplete: \"很抱æ‰ï¼Œéƒ¨åˆ†æ¬„ä½å¡«å¯«éŒ¯èª¤\",\n /**\n * Shown in a button inside a form to submit the form.\n */\n submit: \"æ交\",\n /**\n * Shown when no files are selected.\n */\n noFiles: \"尚未é¸å–檔案\",\n /**\n * Shown on buttons that move fields up in a list.\n */\n moveUp: \"上移\",\n /**\n * Shown on buttons that move fields down in a list.\n */\n moveDown: \"下移\",\n /**\n * Shown when something is actively loading.\n */\n isLoading: \"載入ä¸...\",\n /**\n * Shown when there is more to load.\n */\n loadMore: \"載入更多\",\n /**\n * Show on buttons that navigate state forward\n */\n next: \"下一個\",\n /**\n * Show on buttons that navigate state backward\n */\n prev: \"上一個\",\n /**\n * Shown when adding all values.\n */\n addAllValues: \"åŠ å…¥å…¨éƒ¨çš„å€¼\",\n /**\n * Shown when adding selected values.\n */\n addSelectedValues: \"åŠ å…¥é¸å–的值\",\n /**\n * Shown when removing all values.\n */\n removeAllValues: \"移除全部的值\",\n /**\n * Shown when removing selected values.\n */\n removeSelectedValues: \"移除é¸å–的值\",\n /**\n * Shown when there is a date to choose.\n */\n chooseDate: \"é¸æ“‡æ—¥æœŸ\",\n /**\n * Shown when there is a date to change.\n */\n changeDate: \"變更日期\",\n /**\n * Shown when there is something to close\n */\n close: \"關閉\",\n /**\n * Shown when there is something to open.\n */\n open: \"開放\"\n};\nvar validation46 = {\n /**\n * The value is not an accepted value.\n * @see {@link https://formkit.com/essentials/validation#accepted}\n */\n accepted({ name }) {\n return `è«‹æŽ¥å— ${name}`;\n },\n /**\n * The date is not after\n * @see {@link https://formkit.com/essentials/validation#date-after}\n */\n date_after({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} å¿…é ˆæ™šæ–¼ ${date(args[0])}`;\n }\n return `${sentence(name)} å¿…é ˆæ™šæ–¼ä»Šæ—¥`;\n },\n /**\n * The value is not a letter.\n * @see {@link https://formkit.com/essentials/validation#alpha}\n */\n alpha({ name }) {\n return `${sentence(name)} 欄ä½å„˜èƒ½å¡«å¯«è‹±æ–‡å—æ¯`;\n },\n /**\n * The value is not alphanumeric\n * @see {@link https://formkit.com/essentials/validation#alphanumeric}\n */\n alphanumeric({ name }) {\n return `${sentence(name)} 欄ä½åƒ…能填寫英文å—æ¯èˆ‡æ•¸å—`;\n },\n /**\n * The value is not letter and/or spaces\n * @see {@link https://formkit.com/essentials/validation#alpha-spaces}\n */\n alpha_spaces({ name }) {\n return `${sentence(name)} 欄ä½å„˜èƒ½å¡«å¯«è‹±æ–‡å—æ¯èˆ‡ç©ºç™½`;\n },\n /**\n * The date is not before\n * @see {@link https://formkit.com/essentials/validation#date-before}\n */\n date_before({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} å¿…é ˆæ—©æ–¼ ${date(args[0])}.`;\n }\n return `${sentence(name)} å¿…é ˆæ—©æ–¼ä»Šæ—¥`;\n },\n /**\n * The value is not between two numbers\n * @see {@link https://formkit.com/essentials/validation#between}\n */\n between({ name, args }) {\n if (isNaN(args[0]) || isNaN(args[1])) {\n return `欄ä½å€¼éŒ¯èª¤ï¼Œç„¡æ³•æ交`;\n }\n const [a, b] = order(args[0], args[1]);\n return `${sentence(name)} å¿…é ˆä»‹æ–¼ ${a} å’Œ ${b}.`;\n },\n /**\n * The confirmation field does not match\n * @see {@link https://formkit.com/essentials/validation#confirm}\n */\n confirm({ name }) {\n return `${sentence(name)} 與目標ä¸ä¸€è‡´`;\n },\n /**\n * The value is not a valid date\n * @see {@link https://formkit.com/essentials/validation#date-format}\n */\n date_format({ name, args }) {\n if (Array.isArray(args) && args.length) {\n return `${sentence(name)} ä¸æ˜¯æœ‰æ•ˆçš„日期,請使用 ${args[0]} æ ¼å¼`;\n }\n return \"欄ä½å€¼éŒ¯èª¤ï¼Œç„¡æ³•æ交\";\n },\n /**\n * Is not within expected date range\n * @see {@link https://formkit.com/essentials/validation#date-between}\n */\n date_between({ name, args }) {\n return `${sentence(name)} å¿…é ˆä»‹æ–¼ ${date(args[0])} å’Œ ${date(args[1])}`;\n },\n /**\n * Shown when the user-provided value is not a valid email address.\n * @see {@link https://formkit.com/essentials/validation#email}\n */\n email: \"請輸入有效的 email\",\n /**\n * Does not end with the specified value\n * @see {@link https://formkit.com/essentials/validation#ends-with}\n */\n ends_with({ name, args }) {\n return `${sentence(name)} çš„çµå°¾å¿…é ˆæ˜¯ ${list(args)}`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#is}\n */\n is({ name }) {\n return `${sentence(name)} 欄ä½çš„值ä¸åˆè¦å‰‡`;\n },\n /**\n * Does not match specified length\n * @see {@link https://formkit.com/essentials/validation#length}\n */\n length({ name, args: [first = 0, second = Infinity] }) {\n const min = Number(first) <= Number(second) ? first : second;\n const max = Number(second) >= Number(first) ? second : first;\n if (min == 1 && max === Infinity) {\n return `${sentence(name)} 欄ä½å¿…é ˆè‡³å°‘åŒ…å«ä¸€å€‹å—`;\n }\n if (min == 0 && max) {\n return `${sentence(name)} çš„å—æ•¸å¿…é ˆå°æ–¼ç‰æ–¼ ${max}`;\n }\n if (min === max) {\n return `${sentence(name)} çš„å—æ•¸å¿…é ˆç‚º ${max}`;\n }\n if (min && max === Infinity) {\n return `${sentence(name)} çš„å—æ•¸å¿…é ˆå¤§æ–¼ç‰æ–¼ ${min}`;\n }\n return `${sentence(name)} çš„å—æ•¸å¿…é ˆä»‹æ–¼ ${min} å’Œ ${max}`;\n },\n /**\n * Value is not a match\n * @see {@link https://formkit.com/essentials/validation#matches}\n */\n matches({ name }) {\n return `${sentence(name)} 欄ä½çš„值無效`;\n },\n /**\n * Exceeds maximum allowed value\n * @see {@link https://formkit.com/essentials/validation#max}\n */\n max({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `ä¸èƒ½è¶…éŽ ${args[0]} 個 ${name}.`;\n }\n return `${sentence(name)} å¿…é ˆå°æ–¼ç‰æ–¼ ${args[0]}.`;\n },\n /**\n * The (field-level) value does not match specified mime type\n * @see {@link https://formkit.com/essentials/validation#mime}\n */\n mime({ name, args }) {\n if (!args[0]) {\n return \"éžæœ‰æ•ˆçš„æª”æ¡ˆæ ¼å¼\";\n }\n return `${sentence(name)} å¯æŽ¥å—çš„æª”æ¡ˆæ ¼å¼ç‚º: ${args[0]}`;\n },\n /**\n * Does not fulfill minimum allowed value\n * @see {@link https://formkit.com/essentials/validation#min}\n */\n min({ name, node: { value }, args }) {\n if (Array.isArray(value)) {\n return `ä¸å¯å°‘æ–¼ ${args[0]} 個 ${name}`;\n }\n return `${name} å¿…é ˆå¤§æ–¼ç‰æ–¼ ${args[0]}`;\n },\n /**\n * Is not an allowed value\n * @see {@link https://formkit.com/essentials/validation#not}\n */\n not({ name, node: { value } }) {\n return `“${value}†ä¸æ˜¯ ${name} 欄ä½å¯æŽ¥å—的值`;\n },\n /**\n * Is not a number\n * @see {@link https://formkit.com/essentials/validation#number}\n */\n number({ name }) {\n return `${sentence(name)} 欄ä½å¿…é ˆæ˜¯æ•¸å—`;\n },\n /**\n * Require one field.\n * @see {@link https://formkit.com/essentials/validation#require-one}\n */\n require_one: ({ name, node, args: inputNames }) => {\n const labels = inputNames.map((name2) => {\n const dependentNode = node.at(name2);\n if (dependentNode) {\n return createMessageName(dependentNode);\n }\n return false;\n }).filter((name2) => !!name2);\n labels.unshift(name);\n return `${labels.join(\"或\")}${labels}需è¦ã€‚`;\n },\n /**\n * Required field.\n * @see {@link https://formkit.com/essentials/validation#required}\n */\n required({ name }) {\n return `${sentence(name)} 是必è¦æ¬„ä½`;\n },\n /**\n * Does not start with specified value\n * @see {@link https://formkit.com/essentials/validation#starts-with}\n */\n starts_with({ name, args }) {\n return `${sentence(name)} çš„é–‹é å¿…é ˆæ˜¯ ${list(args)}`;\n },\n /**\n * Is not a url\n * @see {@link https://formkit.com/essentials/validation#url}\n */\n url() {\n return `請輸入有效的 url`;\n },\n /**\n * Shown when the date is invalid.\n */\n invalidDate: \"é¸å–的日期無效\"\n};\nvar zhTW = { ui: ui46, validation: validation46 };\nvar i18nNodes = /* @__PURE__ */ new Set();\nvar activeLocale = null;\nfunction createI18nPlugin(registry) {\n return function i18nPlugin(node) {\n i18nNodes.add(node);\n if (activeLocale)\n node.config.locale = activeLocale;\n node.on(\"destroying\", () => i18nNodes.delete(node));\n let localeKey = parseLocale(node.config.locale, registry);\n let locale = localeKey ? registry[localeKey] : {};\n node.on(\"prop:locale\", ({ payload: lang }) => {\n localeKey = parseLocale(lang, registry);\n locale = localeKey ? registry[localeKey] : {};\n node.store.touch();\n });\n node.on(\"prop:label\", () => node.store.touch());\n node.on(\"prop:validationLabel\", () => node.store.touch());\n node.hook.text((fragment, next) => {\n const key = fragment.meta?.messageKey || fragment.key;\n if (has(locale, fragment.type) && has(locale[fragment.type], key)) {\n const t = locale[fragment.type][key];\n if (typeof t === \"function\") {\n fragment.value = Array.isArray(fragment.meta?.i18nArgs) ? t(...fragment.meta.i18nArgs) : t(fragment);\n } else {\n fragment.value = t;\n }\n }\n return next(fragment);\n });\n };\n}\nfunction parseLocale(locale, availableLocales) {\n if (has(availableLocales, locale)) {\n return locale;\n }\n const [lang] = locale.split(\"-\");\n if (has(availableLocales, lang)) {\n return lang;\n }\n for (const locale2 in availableLocales) {\n return locale2;\n }\n return false;\n}\nfunction changeLocale(locale) {\n activeLocale = locale;\n for (const node of i18nNodes) {\n node.config.locale = locale;\n }\n}\n\n// packages/i18n/src/index.ts\nvar locales = {\n ar,\n az,\n bg,\n bs,\n ca,\n cs,\n da,\n de,\n el,\n en,\n es,\n fa,\n fi,\n fr,\n fy,\n he,\n hr,\n hu,\n id,\n it,\n ja,\n kk,\n ko,\n lt,\n lv,\n nb,\n nl,\n pl,\n pt,\n ro,\n ru,\n sk,\n sl,\n sr,\n sv,\n tet,\n tg,\n th,\n tr,\n uk,\n uz,\n vi,\n zh,\n \"zh-TW\": zhTW,\n is,\n mn\n};\n\nexport { ar, az, bg, bs, ca, changeLocale, createI18nPlugin, cs, da, date, de, el, en, es, fa, fi, fr, fy, he, hr, hu, id, is, it, ja, kk, ko, list, locales, lt, lv, mn, nb, nl, order, pl, pt, ro, ru, sentence, sk, sl, sr, sv, tet, tg, th, tr, uk, uz, vi, zh, zhTW };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=index.mjs.map","import { extend, camel, has, slugify, undefine, eq, token, clone, isObject, isPojo } from '@formkit/utils';\nimport { createMessage, warn, isConditional, isComponent, isDOM } from '@formkit/core';\n\n// packages/inputs/src/plugin.ts\nfunction createLibraryPlugin(...libraries) {\n const library = libraries.reduce(\n (merged, lib) => extend(merged, lib),\n {}\n );\n const plugin = () => {\n };\n plugin.library = function(node) {\n const type = camel(node.props.type);\n if (has(library, type)) {\n node.define(library[type]);\n }\n };\n return plugin;\n}\n\n// packages/inputs/src/props.ts\nvar runtimeProps = [\n \"classes\",\n \"config\",\n \"delay\",\n \"errors\",\n \"id\",\n \"index\",\n \"inputErrors\",\n \"library\",\n \"modelValue\",\n \"onUpdate:modelValue\",\n \"name\",\n \"number\",\n \"parent\",\n \"plugins\",\n \"sectionsSchema\",\n \"type\",\n \"validation\",\n \"validationLabel\",\n \"validationMessages\",\n \"validationRules\",\n // Runtime event props:\n \"onInput\",\n \"onInputRaw\",\n \"onUpdate:modelValue\",\n \"onNode\",\n \"onSubmit\",\n \"onSubmitInvalid\",\n \"onSubmitRaw\"\n];\nfunction isGroupOption(option2) {\n return option2 && typeof option2 === \"object\" && \"group\" in option2 && Array.isArray(option2.options);\n}\nfunction normalizeOptions(options2, i = { count: 1 }) {\n if (Array.isArray(options2)) {\n return options2.map(\n (option2) => {\n if (typeof option2 === \"string\" || typeof option2 === \"number\") {\n return {\n label: String(option2),\n value: String(option2)\n };\n }\n if (typeof option2 == \"object\") {\n if (\"group\" in option2) {\n option2.options = normalizeOptions(option2.options || [], i);\n return option2;\n } else if (\"value\" in option2 && typeof option2.value !== \"string\") {\n Object.assign(option2, {\n value: `__mask_${i.count++}`,\n __original: option2.value\n });\n }\n }\n return option2;\n }\n );\n }\n return Object.keys(options2).map((value) => {\n return {\n label: options2[value],\n value\n };\n });\n}\nfunction optionValue(options2, value, undefinedIfNotFound = false) {\n if (Array.isArray(options2)) {\n for (const option2 of options2) {\n if (typeof option2 !== \"object\" && option2)\n continue;\n if (isGroupOption(option2)) {\n const found = optionValue(option2.options, value, true);\n if (found !== void 0) {\n return found;\n }\n } else if (value == option2.value) {\n return \"__original\" in option2 ? option2.__original : option2.value;\n }\n }\n }\n return undefinedIfNotFound ? void 0 : value;\n}\nfunction shouldSelect(valueA, valueB) {\n if (valueA === null && valueB === void 0 || valueA === void 0 && valueB === null)\n return false;\n if (valueA == valueB)\n return true;\n if (isPojo(valueA) && isPojo(valueB))\n return eq(valueA, valueB);\n return false;\n}\nfunction options(node) {\n node.hook.prop((prop, next) => {\n var _a;\n if (prop.prop === \"options\") {\n if (typeof prop.value === \"function\") {\n node.props.optionsLoader = prop.value;\n prop.value = [];\n } else {\n (_a = node.props)._normalizeCounter ?? (_a._normalizeCounter = { count: 1 });\n prop.value = normalizeOptions(prop.value, node.props._normalizeCounter);\n }\n }\n return next(prop);\n });\n}\n// @__NO_SIDE_EFFECTS__\nfunction createSection(section, el, fragment2 = false) {\n return (...children) => {\n const extendable = (extensions) => {\n const node = !el || typeof el === \"string\" ? { $el: el } : el();\n if (isDOM(node) || isComponent(node)) {\n if (!node.meta) {\n node.meta = { section };\n } else {\n node.meta.section = section;\n }\n if (children.length && !node.children) {\n node.children = [\n ...children.map(\n (child) => typeof child === \"function\" ? child(extensions) : child\n )\n ];\n }\n if (isDOM(node)) {\n node.attrs = {\n class: `$classes.${section}`,\n ...node.attrs || {}\n };\n }\n }\n return {\n if: `$slots.${section}`,\n then: `$slots.${section}`,\n else: section in extensions ? /* @__PURE__ */ extendSchema(node, extensions[section]) : node\n };\n };\n extendable._s = section;\n return fragment2 ? /* @__PURE__ */ createRoot(extendable) : extendable;\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction createRoot(rootSection) {\n return (extensions) => {\n return [rootSection(extensions)];\n };\n}\nfunction isSchemaObject(schema) {\n return !!(schema && typeof schema === \"object\" && (\"$el\" in schema || \"$cmp\" in schema || \"$formkit\" in schema));\n}\n// @__NO_SIDE_EFFECTS__\nfunction extendSchema(schema, extension = {}) {\n if (typeof schema === \"string\") {\n return isSchemaObject(extension) || typeof extension === \"string\" ? extension : schema;\n } else if (Array.isArray(schema)) {\n return isSchemaObject(extension) ? extension : schema;\n }\n return extend(schema, extension);\n}\n\n// packages/inputs/src/sections/actions.ts\nvar actions = createSection(\"actions\", () => ({\n $el: \"div\",\n if: \"$actions\"\n}));\n\n// packages/inputs/src/sections/box.ts\nvar box = createSection(\"input\", () => ({\n $el: \"input\",\n bind: \"$attrs\",\n attrs: {\n type: \"$type\",\n name: \"$node.props.altName || $node.name\",\n disabled: \"$option.attrs.disabled || $disabled\",\n onInput: \"$handlers.toggleChecked\",\n checked: \"$fns.eq($_value, $onValue)\",\n onBlur: \"$handlers.blur\",\n value: \"$: true\",\n id: \"$id\",\n \"aria-describedby\": {\n if: \"$options.length\",\n then: {\n if: \"$option.help\",\n then: '$: \"help-\" + $option.attrs.id',\n else: void 0\n },\n else: {\n if: \"$help\",\n then: '$: \"help-\" + $id',\n else: void 0\n }\n }\n }\n}));\n\n// packages/inputs/src/sections/boxHelp.ts\nvar boxHelp = createSection(\"optionHelp\", () => ({\n $el: \"div\",\n if: \"$option.help\",\n attrs: {\n id: '$: \"help-\" + $option.attrs.id'\n }\n}));\n\n// packages/inputs/src/sections/boxInner.ts\nvar boxInner = createSection(\"inner\", \"span\");\n\n// packages/inputs/src/sections/boxLabel.ts\nvar boxLabel = createSection(\"label\", \"span\");\n\n// packages/inputs/src/sections/boxOption.ts\nvar boxOption = createSection(\"option\", () => ({\n $el: \"li\",\n for: [\"option\", \"$options\"],\n attrs: {\n \"data-disabled\": \"$option.attrs.disabled || $disabled || undefined\"\n }\n}));\n\n// packages/inputs/src/sections/boxOptions.ts\nvar boxOptions = createSection(\"options\", \"ul\");\n\n// packages/inputs/src/sections/boxWrapper.ts\nvar boxWrapper = createSection(\"wrapper\", () => ({\n $el: \"label\",\n attrs: {\n \"data-disabled\": {\n if: \"$options.length\",\n then: void 0,\n else: \"$disabled || undefined\"\n },\n \"data-checked\": {\n if: \"$options == undefined\",\n then: \"$fns.eq($_value, $onValue) || undefined\",\n else: \"$fns.isChecked($option.value) || undefined\"\n }\n }\n}));\n\n// packages/inputs/src/sections/buttonInput.ts\nvar buttonInput = createSection(\"input\", () => ({\n $el: \"button\",\n bind: \"$attrs\",\n attrs: {\n type: \"$type\",\n disabled: \"$disabled\",\n name: \"$node.name\",\n id: \"$id\"\n }\n}));\n\n// packages/inputs/src/sections/buttonLabel.ts\nvar buttonLabel = createSection(\"default\", null);\n\n// packages/inputs/src/sections/decorator.ts\nvar decorator = createSection(\"decorator\", () => ({\n $el: \"span\",\n attrs: {\n \"aria-hidden\": \"true\"\n }\n}));\n\n// packages/inputs/src/sections/fieldset.ts\nvar fieldset = createSection(\"fieldset\", () => ({\n $el: \"fieldset\",\n attrs: {\n id: \"$id\",\n \"aria-describedby\": {\n if: \"$help\",\n then: '$: \"help-\" + $id',\n else: void 0\n }\n }\n}));\n\n// packages/inputs/src/sections/fileInput.ts\nvar fileInput = createSection(\"input\", () => ({\n $el: \"input\",\n bind: \"$attrs\",\n attrs: {\n type: \"file\",\n disabled: \"$disabled\",\n name: \"$node.name\",\n onChange: \"$handlers.files\",\n onBlur: \"$handlers.blur\",\n id: \"$id\",\n \"aria-describedby\": \"$describedBy\",\n \"aria-required\": \"$state.required || undefined\"\n }\n}));\n\n// packages/inputs/src/sections/fileItem.ts\nvar fileItem = createSection(\"fileItem\", () => ({\n $el: \"li\",\n for: [\"file\", \"$value\"]\n}));\n\n// packages/inputs/src/sections/fileList.ts\nvar fileList = createSection(\"fileList\", () => ({\n $el: \"ul\",\n if: \"$value.length\",\n attrs: {\n \"data-has-multiple\": \"$_hasMultipleFiles\"\n }\n}));\n\n// packages/inputs/src/sections/fileName.ts\nvar fileName = createSection(\"fileName\", () => ({\n $el: \"span\",\n attrs: {\n class: \"$classes.fileName\"\n }\n}));\n\n// packages/inputs/src/sections/fileRemove.ts\nvar fileRemove = createSection(\"fileRemove\", () => ({\n $el: \"button\",\n attrs: {\n type: \"button\",\n onClick: \"$handlers.resetFiles\"\n }\n}));\n\n// packages/inputs/src/sections/formInput.ts\nvar formInput = createSection(\"form\", () => ({\n $el: \"form\",\n bind: \"$attrs\",\n meta: {\n autoAnimate: true\n },\n attrs: {\n id: \"$id\",\n name: \"$node.name\",\n onSubmit: \"$handlers.submit\",\n \"data-loading\": \"$state.loading || undefined\"\n }\n}));\n\n// packages/inputs/src/sections/fragment.ts\nvar fragment = createSection(\"wrapper\", null, true);\n\n// packages/inputs/src/sections/help.ts\nvar help = createSection(\"help\", () => ({\n $el: \"div\",\n if: \"$help\",\n attrs: {\n id: '$: \"help-\" + $id'\n }\n}));\n\n// packages/inputs/src/sections/icon.ts\nvar icon = (sectionKey, el) => {\n return createSection(`${sectionKey}Icon`, () => {\n const rawIconProp = `_raw${sectionKey.charAt(0).toUpperCase()}${sectionKey.slice(1)}Icon`;\n return {\n if: `$${sectionKey}Icon && $${rawIconProp}`,\n $el: `${el ? el : \"span\"}`,\n attrs: {\n class: `$classes.${sectionKey}Icon + \" \" + $classes.icon`,\n innerHTML: `$${rawIconProp}`,\n onClick: `$handlers.iconClick(${sectionKey})`,\n role: `$fns.iconRole(${sectionKey})`,\n tabindex: `$fns.iconRole(${sectionKey}) === \"button\" && \"0\" || undefined`,\n for: {\n if: `${el === \"label\"}`,\n then: \"$id\"\n }\n }\n };\n })();\n};\n\n// packages/inputs/src/sections/inner.ts\nvar inner = createSection(\"inner\", \"div\");\n\n// packages/inputs/src/sections/label.ts\nvar label = createSection(\"label\", () => ({\n $el: \"label\",\n if: \"$label\",\n attrs: {\n for: \"$id\"\n }\n}));\n\n// packages/inputs/src/sections/legend.ts\nvar legend = createSection(\"legend\", () => ({\n $el: \"legend\",\n if: \"$label\"\n}));\n\n// packages/inputs/src/sections/message.ts\nvar message = createSection(\"message\", () => ({\n $el: \"li\",\n for: [\"message\", \"$messages\"],\n attrs: {\n key: \"$message.key\",\n id: `$id + '-' + $message.key`,\n \"data-message-type\": \"$message.type\"\n }\n}));\n\n// packages/inputs/src/sections/messages.ts\nvar messages = createSection(\"messages\", () => ({\n $el: \"ul\",\n if: \"$defaultMessagePlacement && $fns.length($messages)\"\n}));\n\n// packages/inputs/src/sections/noFiles.ts\nvar noFiles = createSection(\"noFiles\", () => ({\n $el: \"span\",\n if: \"$value == null || $value.length == 0\"\n}));\n\n// packages/inputs/src/sections/optGroup.ts\nvar optGroup = createSection(\"optGroup\", () => ({\n $el: \"optgroup\",\n bind: \"$option.attrs\",\n attrs: {\n label: \"$option.group\"\n }\n}));\n\n// packages/inputs/src/sections/option.ts\nvar option = createSection(\"option\", () => ({\n $el: \"option\",\n bind: \"$option.attrs\",\n attrs: {\n class: \"$classes.option\",\n value: \"$option.value\",\n selected: \"$fns.isSelected($option)\"\n }\n}));\n\n// packages/inputs/src/sections/optionSlot.ts\nvar optionSlot = createSection(\"options\", () => ({\n $el: null,\n if: \"$options.length\",\n for: [\"option\", \"$option.options || $options\"]\n}));\n\n// packages/inputs/src/sections/outer.ts\nvar outer = createSection(\"outer\", () => ({\n $el: \"div\",\n meta: {\n autoAnimate: true\n },\n attrs: {\n key: \"$id\",\n \"data-family\": \"$family || undefined\",\n \"data-type\": \"$type\",\n \"data-multiple\": '$attrs.multiple || ($type != \"select\" && $options != undefined) || undefined',\n \"data-has-multiple\": \"$_hasMultipleFiles\",\n \"data-disabled\": '$: ($disabled !== \"false\" && $disabled) || undefined',\n \"data-empty\": \"$state.empty || undefined\",\n \"data-complete\": \"$state.complete || undefined\",\n \"data-invalid\": \"$state.invalid || undefined\",\n \"data-errors\": \"$state.errors || undefined\",\n \"data-submitted\": \"$state.submitted || undefined\",\n \"data-prefix-icon\": \"$_rawPrefixIcon !== undefined || undefined\",\n \"data-suffix-icon\": \"$_rawSuffixIcon !== undefined || undefined\",\n \"data-prefix-icon-click\": \"$onPrefixIconClick !== undefined || undefined\",\n \"data-suffix-icon-click\": \"$onSuffixIconClick !== undefined || undefined\"\n }\n}));\n\n// packages/inputs/src/sections/prefix.ts\nvar prefix = createSection(\"prefix\", null);\n\n// packages/inputs/src/sections/selectInput.ts\nvar selectInput = createSection(\"input\", () => ({\n $el: \"select\",\n bind: \"$attrs\",\n attrs: {\n id: \"$id\",\n \"data-placeholder\": \"$fns.showPlaceholder($_value, $placeholder)\",\n disabled: \"$disabled\",\n class: \"$classes.input\",\n name: \"$node.name\",\n onChange: \"$handlers.onChange\",\n onInput: \"$handlers.selectInput\",\n onBlur: \"$handlers.blur\",\n \"aria-describedby\": \"$describedBy\",\n \"aria-required\": \"$state.required || undefined\"\n }\n}));\n\n// packages/inputs/src/sections/submitInput.ts\nvar submitInput = createSection(\"submit\", () => ({\n $cmp: \"FormKit\",\n bind: \"$submitAttrs\",\n props: {\n type: \"submit\",\n label: \"$submitLabel\"\n }\n}));\n\n// packages/inputs/src/sections/suffix.ts\nvar suffix = createSection(\"suffix\", null);\n\n// packages/inputs/src/sections/textInput.ts\nvar textInput = createSection(\"input\", () => ({\n $el: \"input\",\n bind: \"$attrs\",\n attrs: {\n type: \"$type\",\n disabled: \"$disabled\",\n name: \"$node.name\",\n onInput: \"$handlers.DOMInput\",\n onBlur: \"$handlers.blur\",\n value: \"$_value\",\n id: \"$id\",\n \"aria-describedby\": \"$describedBy\",\n \"aria-required\": \"$state.required || undefined\"\n }\n}));\n\n// packages/inputs/src/sections/textareaInput.ts\nvar textareaInput = createSection(\"input\", () => ({\n $el: \"textarea\",\n bind: \"$attrs\",\n attrs: {\n disabled: \"$disabled\",\n name: \"$node.name\",\n onInput: \"$handlers.DOMInput\",\n onBlur: \"$handlers.blur\",\n value: \"$_value\",\n id: \"$id\",\n \"aria-describedby\": \"$describedBy\",\n \"aria-required\": \"$state.required || undefined\"\n },\n children: \"$initialValue\"\n}));\n\n// packages/inputs/src/sections/wrapper.ts\nvar wrapper = createSection(\"wrapper\", \"div\");\n\n// packages/inputs/src/features/renamesRadios.ts\nvar radioInstance = 0;\nfunction resetRadio() {\n radioInstance = 0;\n}\nfunction renamesRadios(node) {\n if (node.type === \"group\" || node.type === \"list\") {\n node.plugins.add(renamesRadiosPlugin);\n }\n}\nfunction renamesRadiosPlugin(node) {\n if (node.props.type === \"radio\") {\n node.addProps([\"altName\"]);\n node.props.altName = `${node.name}_${radioInstance++}`;\n }\n}\nfunction normalizeBoxes(node) {\n return function(prop, next) {\n if (prop.prop === \"options\" && Array.isArray(prop.value)) {\n prop.value = prop.value.map((option2) => {\n if (!option2.attrs?.id) {\n return extend(option2, {\n attrs: {\n id: `${node.props.id}-option-${slugify(String(option2.value))}`\n }\n });\n }\n return option2;\n });\n if (node.props.type === \"checkbox\" && !Array.isArray(node.value)) {\n if (node.isCreated) {\n node.input([], false);\n } else {\n node.on(\"created\", () => {\n if (!Array.isArray(node.value)) {\n node.input([], false);\n }\n });\n }\n }\n }\n return next(prop);\n };\n}\n\n// packages/inputs/src/features/checkboxes.ts\nfunction toggleChecked(node, e) {\n const el = e.target;\n if (el instanceof HTMLInputElement) {\n const value = Array.isArray(node.props.options) ? optionValue(node.props.options, el.value) : el.value;\n if (Array.isArray(node.props.options) && node.props.options.length) {\n if (!Array.isArray(node._value)) {\n node.input([value]);\n } else if (!node._value.some((existingValue) => shouldSelect(value, existingValue))) {\n node.input([...node._value, value]);\n } else {\n node.input(\n node._value.filter(\n (existingValue) => !shouldSelect(value, existingValue)\n )\n );\n }\n } else {\n if (el.checked) {\n node.input(node.props.onValue);\n } else {\n node.input(node.props.offValue);\n }\n }\n }\n}\nfunction isChecked(node, value) {\n node.context?.value;\n node.context?._value;\n if (Array.isArray(node._value)) {\n return node._value.some(\n (existingValue) => shouldSelect(optionValue(node.props.options, value), existingValue)\n );\n }\n return false;\n}\nfunction checkboxes(node) {\n node.on(\"created\", () => {\n if (node.context?.handlers) {\n node.context.handlers.toggleChecked = toggleChecked.bind(null, node);\n }\n if (node.context?.fns) {\n node.context.fns.isChecked = isChecked.bind(null, node);\n }\n if (!has(node.props, \"onValue\"))\n node.props.onValue = true;\n if (!has(node.props, \"offValue\"))\n node.props.offValue = false;\n });\n node.hook.prop(normalizeBoxes(node));\n}\n\n// packages/inputs/src/features/icon.ts\nfunction defaultIcon(sectionKey, defaultIcon2) {\n return (node) => {\n if (node.props[`${sectionKey}Icon`] === void 0) {\n node.props[`${sectionKey}Icon`] = defaultIcon2.startsWith(\"<svg\") ? defaultIcon2 : `default:${defaultIcon2}`;\n }\n };\n}\nfunction disables(node) {\n node.on(\"created\", () => {\n if (\"disabled\" in node.props) {\n node.props.disabled = undefine(node.props.disabled);\n node.config.disabled = undefine(node.props.disabled);\n }\n });\n node.hook.prop(({ prop, value }, next) => {\n value = prop === \"disabled\" ? undefine(value) : value;\n return next({ prop, value });\n });\n node.on(\"prop:disabled\", ({ payload: value }) => {\n node.config.disabled = undefine(value);\n });\n}\nfunction localize(key, value) {\n return (node) => {\n node.store.set(\n /* @__PURE__ */ createMessage({\n key,\n type: \"ui\",\n value: value || key,\n meta: {\n localize: true,\n i18nArgs: [node]\n }\n })\n );\n };\n}\n\n// packages/inputs/src/features/files.ts\nvar isBrowser = typeof window !== \"undefined\";\nfunction removeHover(e) {\n if (e.target instanceof HTMLElement && e.target.hasAttribute(\"data-file-hover\")) {\n e.target.removeAttribute(\"data-file-hover\");\n }\n}\nfunction preventStrayDrop(type, e) {\n if (!(e.target instanceof HTMLInputElement)) {\n e.preventDefault();\n } else if (type === \"dragover\") {\n e.target.setAttribute(\"data-file-hover\", \"true\");\n }\n if (type === \"drop\") {\n removeHover(e);\n }\n}\nfunction files(node) {\n localize(\"noFiles\", \"Select file\")(node);\n localize(\"removeAll\", \"Remove all\")(node);\n localize(\"remove\")(node);\n node.addProps([\"_hasMultipleFiles\"]);\n if (isBrowser) {\n if (!window._FormKit_File_Drop) {\n window.addEventListener(\n \"dragover\",\n preventStrayDrop.bind(null, \"dragover\")\n );\n window.addEventListener(\"drop\", preventStrayDrop.bind(null, \"drop\"));\n window.addEventListener(\"dragleave\", removeHover);\n window._FormKit_File_Drop = true;\n }\n }\n node.hook.input((value, next) => next(Array.isArray(value) ? value : []));\n node.on(\"input\", ({ payload: value }) => {\n node.props._hasMultipleFiles = Array.isArray(value) && value.length > 1 ? true : void 0;\n });\n node.on(\"reset\", () => {\n if (node.props.id && isBrowser) {\n const el = document.getElementById(node.props.id);\n if (el)\n el.value = \"\";\n }\n });\n node.on(\"created\", () => {\n if (!Array.isArray(node.value))\n node.input([], false);\n if (!node.context)\n return;\n node.context.handlers.resetFiles = (e) => {\n e.preventDefault();\n node.input([]);\n if (node.props.id && isBrowser) {\n const el = document.getElementById(node.props.id);\n if (el)\n el.value = \"\";\n el?.focus();\n }\n };\n node.context.handlers.files = (e) => {\n const files2 = [];\n if (e.target instanceof HTMLInputElement && e.target.files) {\n for (let i = 0; i < e.target.files.length; i++) {\n let file2;\n if (file2 = e.target.files.item(i)) {\n files2.push({ name: file2.name, file: file2 });\n }\n }\n node.input(files2);\n }\n if (node.context)\n node.context.files = files2;\n if (typeof node.props.attrs?.onChange === \"function\") {\n node.props.attrs?.onChange(e);\n }\n };\n });\n}\nvar loading = /* @__PURE__ */ createMessage({\n key: \"loading\",\n value: true,\n visible: false\n});\nasync function handleSubmit(node, submitEvent) {\n const submitNonce = Math.random();\n node.props._submitNonce = submitNonce;\n submitEvent.preventDefault();\n await node.settled;\n if (node.ledger.value(\"validating\")) {\n node.store.set(loading);\n await node.ledger.settled(\"validating\");\n node.store.remove(\"loading\");\n if (node.props._submitNonce !== submitNonce)\n return;\n }\n const setSubmitted = (n) => n.store.set(\n /* @__PURE__ */ createMessage({\n key: \"submitted\",\n value: true,\n visible: false\n })\n );\n node.walk(setSubmitted);\n setSubmitted(node);\n node.emit(\"submit-raw\");\n if (typeof node.props.onSubmitRaw === \"function\") {\n node.props.onSubmitRaw(submitEvent, node);\n }\n if (node.ledger.value(\"blocking\")) {\n if (typeof node.props.onSubmitInvalid === \"function\") {\n node.props.onSubmitInvalid(node);\n }\n if (node.props.incompleteMessage !== false) {\n setIncompleteMessage(node);\n }\n } else {\n if (typeof node.props.onSubmit === \"function\") {\n const retVal = node.props.onSubmit(\n node.hook.submit.dispatch(clone(node.value)),\n node\n );\n if (retVal instanceof Promise) {\n const autoDisable = node.props.disabled === void 0 && node.props.submitBehavior !== \"live\";\n if (autoDisable)\n node.props.disabled = true;\n node.store.set(loading);\n await retVal;\n if (autoDisable)\n node.props.disabled = false;\n node.store.remove(\"loading\");\n }\n } else {\n if (submitEvent.target instanceof HTMLFormElement) {\n submitEvent.target.submit();\n }\n }\n }\n}\nfunction setIncompleteMessage(node) {\n node.store.set(\n /* @__PURE__ */ createMessage({\n blocking: false,\n key: `incomplete`,\n meta: {\n localize: node.props.incompleteMessage === void 0,\n i18nArgs: [{ node }],\n showAsMessage: true\n },\n type: \"ui\",\n value: node.props.incompleteMessage || \"Form incomplete.\"\n })\n );\n}\nfunction form(node) {\n var _a;\n node.props.isForm = true;\n node.ledger.count(\"validating\", (m) => m.key === \"validating\");\n (_a = node.props).submitAttrs ?? (_a.submitAttrs = {\n disabled: node.props.disabled\n });\n node.on(\"prop:disabled\", ({ payload: disabled }) => {\n node.props.submitAttrs = { ...node.props.submitAttrs, disabled };\n });\n node.on(\"created\", () => {\n if (node.context?.handlers) {\n node.context.handlers.submit = handleSubmit.bind(null, node);\n }\n if (!has(node.props, \"actions\")) {\n node.props.actions = true;\n }\n });\n node.on(\"prop:incompleteMessage\", () => {\n if (node.store.incomplete)\n setIncompleteMessage(node);\n });\n node.on(\"settled:blocking\", () => node.store.remove(\"incomplete\"));\n}\n\n// packages/inputs/src/features/ignores.ts\nfunction ignore(node) {\n if (node.props.ignore === void 0) {\n node.props.ignore = true;\n node.parent = null;\n }\n}\n\n// packages/inputs/src/features/initialValue.ts\nfunction initialValue(node) {\n node.on(\"created\", () => {\n if (node.context) {\n node.context.initialValue = node.value || \"\";\n }\n });\n}\n\n// packages/inputs/src/features/casts.ts\nfunction casts(node) {\n if (typeof node.props.number === \"undefined\")\n return;\n const strict = [\"number\", \"range\", \"hidden\"].includes(node.props.type);\n node.hook.input((value, next) => {\n if (value === \"\")\n return next(void 0);\n const numericValue = node.props.number === \"integer\" ? parseInt(value) : parseFloat(value);\n if (!Number.isFinite(numericValue))\n return strict ? next(void 0) : next(value);\n return next(numericValue);\n });\n}\nfunction toggleChecked2(node, event) {\n if (event.target instanceof HTMLInputElement) {\n node.input(optionValue(node.props.options, event.target.value));\n }\n}\nfunction isChecked2(node, value) {\n node.context?.value;\n node.context?._value;\n return shouldSelect(optionValue(node.props.options, value), node._value);\n}\nfunction radios(node) {\n node.on(\"created\", () => {\n if (!Array.isArray(node.props.options)) {\n warn(350, {\n node,\n inputType: \"radio\"\n });\n }\n if (node.context?.handlers) {\n node.context.handlers.toggleChecked = toggleChecked2.bind(null, node);\n }\n if (node.context?.fns) {\n node.context.fns.isChecked = isChecked2.bind(null, node);\n }\n });\n node.hook.prop(normalizeBoxes(node));\n}\nfunction isSelected(node, option2) {\n if (isGroupOption(option2))\n return false;\n node.context && node.context.value;\n const optionValue2 = \"__original\" in option2 ? option2.__original : option2.value;\n return Array.isArray(node._value) ? node._value.some((optionA) => shouldSelect(optionA, optionValue2)) : (node._value === void 0 || node._value === null && !containsValue(node.props.options, null)) && option2.attrs && option2.attrs[\"data-is-placeholder\"] ? true : shouldSelect(optionValue2, node._value);\n}\nfunction containsValue(options2, value) {\n return options2.some((option2) => {\n if (isGroupOption(option2)) {\n return containsValue(option2.options, value);\n } else {\n return (\"__original\" in option2 ? option2.__original : option2.value) === value;\n }\n });\n}\nasync function deferChange(node, e) {\n if (typeof node.props.attrs?.onChange === \"function\") {\n await new Promise((r) => setTimeout(r, 0));\n await node.settled;\n node.props.attrs.onChange(e);\n }\n}\nfunction selectInput2(node, e) {\n const target = e.target;\n const value = target.hasAttribute(\"multiple\") ? Array.from(target.selectedOptions).map(\n (o) => optionValue(node.props.options, o.value)\n ) : optionValue(node.props.options, target.value);\n node.input(value);\n}\nfunction applyPlaceholder(options2, placeholder) {\n if (!options2.some(\n (option2) => option2.attrs && option2.attrs[\"data-is-placeholder\"]\n )) {\n return [\n {\n label: placeholder,\n value: \"\",\n attrs: {\n hidden: true,\n disabled: true,\n \"data-is-placeholder\": \"true\"\n }\n },\n ...options2\n ];\n }\n return options2;\n}\nfunction firstValue(options2) {\n const option2 = options2.length > 0 ? options2[0] : void 0;\n if (!option2)\n return void 0;\n if (isGroupOption(option2))\n return firstValue(option2.options);\n return \"__original\" in option2 ? option2.__original : option2.value;\n}\nfunction select(node) {\n node.on(\"created\", () => {\n const isMultiple = undefine(node.props.attrs?.multiple);\n if (!isMultiple && node.props.placeholder && Array.isArray(node.props.options)) {\n node.hook.prop(({ prop, value }, next) => {\n if (prop === \"options\") {\n value = applyPlaceholder(value, node.props.placeholder);\n }\n return next({ prop, value });\n });\n node.props.options = applyPlaceholder(\n node.props.options,\n node.props.placeholder\n );\n }\n if (isMultiple) {\n if (node.value === void 0) {\n node.input([], false);\n }\n } else if (node.context && !node.context.options) {\n node.props.attrs = Object.assign({}, node.props.attrs, {\n value: node._value\n });\n node.on(\"input\", ({ payload }) => {\n node.props.attrs = Object.assign({}, node.props.attrs, {\n value: payload\n });\n });\n }\n if (node.context?.handlers) {\n node.context.handlers.selectInput = selectInput2.bind(null, node);\n node.context.handlers.onChange = deferChange.bind(null, node);\n }\n if (node.context?.fns) {\n node.context.fns.isSelected = isSelected.bind(null, node);\n node.context.fns.showPlaceholder = (value, placeholder) => {\n if (!Array.isArray(node.props.options))\n return false;\n const hasMatchingValue = node.props.options.some(\n (option2) => {\n if (option2.attrs && \"data-is-placeholder\" in option2.attrs)\n return false;\n const optionValue2 = \"__original\" in option2 ? option2.__original : option2.value;\n return eq(value, optionValue2);\n }\n );\n return placeholder && !hasMatchingValue ? true : void 0;\n };\n }\n });\n node.hook.input((value, next) => {\n if (!node.props.placeholder && value === void 0 && Array.isArray(node.props?.options) && node.props.options.length && !undefine(node.props?.attrs?.multiple)) {\n value = firstValue(node.props.options);\n }\n return next(value);\n });\n}\n\n// packages/inputs/src/compose.ts\n// @__NO_SIDE_EFFECTS__\nfunction isSlotCondition(node) {\n if (isConditional(node) && node.if && node.if.startsWith(\"$slots.\") && typeof node.then === \"string\" && node.then.startsWith(\"$slots.\") && \"else\" in node) {\n return true;\n }\n return false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction findSection(schema, target) {\n return eachSection(\n schema,\n (section, sectionCondition, parent) => {\n if (section.meta?.section === target) {\n return [parent, sectionCondition];\n }\n return;\n },\n true\n ) ?? [false, false];\n}\nfunction eachSection(schema, callback, stopOnCallbackReturn = false, schemaParent) {\n if (Array.isArray(schema)) {\n for (const node of schema) {\n const callbackReturn = eachSection(\n node,\n callback,\n stopOnCallbackReturn,\n schema\n );\n if (callbackReturn && stopOnCallbackReturn) {\n return callbackReturn;\n }\n }\n return;\n }\n if (isSection(schema)) {\n const callbackReturn = callback(schema.else, schema, schemaParent);\n if (callbackReturn && stopOnCallbackReturn) {\n return callbackReturn;\n }\n return eachSection(schema.else, callback, stopOnCallbackReturn, schema);\n } else if ((isComponent(schema) || isDOM(schema)) && schema.children) {\n return eachSection(\n schema.children,\n callback,\n stopOnCallbackReturn\n );\n } else if (isConditional(schema)) {\n let callbackReturn = void 0;\n if (schema.then && typeof schema.then !== \"string\") {\n callbackReturn = eachSection(\n schema.then,\n callback,\n stopOnCallbackReturn,\n schema\n );\n }\n if (!callbackReturn && schema.else && typeof schema.else !== \"string\") {\n callbackReturn = eachSection(\n schema.else,\n callback,\n stopOnCallbackReturn,\n schema\n );\n }\n if (callbackReturn && stopOnCallbackReturn) {\n return callbackReturn;\n }\n }\n}\nfunction isSection(section) {\n if (isConditional(section) && typeof section.then === \"string\" && section.else && typeof section.else !== \"string\" && !Array.isArray(section.else) && !isConditional(section.else) && section.else.meta?.section) {\n return true;\n }\n return false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction useSchema(inputSection, sectionsSchema = {}) {\n const schema = /* @__PURE__ */ outer(\n /* @__PURE__ */ wrapper(\n /* @__PURE__ */ label(\"$label\"),\n /* @__PURE__ */ inner(/* @__PURE__ */ icon(\"prefix\"), /* @__PURE__ */ prefix(), inputSection(), /* @__PURE__ */ suffix(), /* @__PURE__ */ icon(\"suffix\"))\n ),\n /* @__PURE__ */ help(\"$help\"),\n /* @__PURE__ */ messages(/* @__PURE__ */ message(\"$message.value\"))\n );\n return (propSectionsSchema = {}) => schema(extend(sectionsSchema, propSectionsSchema));\n}\n// @__NO_SIDE_EFFECTS__\nfunction $attrs(attrs, section) {\n const extendable = (extensions) => {\n const node = section(extensions);\n const attributes = typeof attrs === \"function\" ? attrs() : attrs;\n if (!isObject(attributes))\n return node;\n if (/* @__PURE__ */ isSlotCondition(node) && isDOM(node.else)) {\n node.else.attrs = { ...node.else.attrs, ...attributes };\n } else if (isDOM(node)) {\n node.attrs = { ...node.attrs, ...attributes };\n }\n return node;\n };\n extendable._s = section._s;\n return extendable;\n}\n// @__NO_SIDE_EFFECTS__\nfunction $if(condition, then, otherwise) {\n const extendable = (extensions) => {\n const node = then(extensions);\n if (otherwise || isSchemaObject(node) && \"if\" in node || /* @__PURE__ */ isSlotCondition(node)) {\n const conditionalNode = {\n if: condition,\n then: node\n };\n if (otherwise) {\n conditionalNode.else = otherwise(extensions);\n }\n return conditionalNode;\n } else if (/* @__PURE__ */ isSlotCondition(node)) {\n Object.assign(node.else, { if: condition });\n } else if (isSchemaObject(node)) {\n Object.assign(node, { if: condition });\n }\n return node;\n };\n extendable._s = token();\n return extendable;\n}\n// @__NO_SIDE_EFFECTS__\nfunction $for(varName, inName, section) {\n return (extensions) => {\n const node = section(extensions);\n if (/* @__PURE__ */ isSlotCondition(node)) {\n Object.assign(node.else, { for: [varName, inName] });\n } else if (isSchemaObject(node)) {\n Object.assign(node, { for: [varName, inName] });\n }\n return node;\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction $extend(section, extendWith) {\n const extendable = (extensions) => {\n const node = section({});\n if (/* @__PURE__ */ isSlotCondition(node)) {\n if (Array.isArray(node.else))\n return node;\n node.else = extendSchema(\n extendSchema(node.else, extendWith),\n section._s ? extensions[section._s] : {}\n );\n return node;\n }\n return extendSchema(\n extendSchema(node, extendWith),\n section._s ? extensions[section._s] : {}\n );\n };\n extendable._s = section._s;\n return extendable;\n}\n// @__NO_SIDE_EFFECTS__\nfunction $root(section) {\n warn(800, \"$root\");\n return createRoot(section);\n}\nfunction resetCounts() {\n resetRadio();\n}\n\n// packages/inputs/src/inputs/button.ts\nvar button = {\n /**\n * The actual schema of the input, or a function that returns the schema.\n */\n schema: /* @__PURE__ */ outer(\n /* @__PURE__ */ messages(/* @__PURE__ */ message(\"$message.value\")),\n /* @__PURE__ */ wrapper(\n /* @__PURE__ */ buttonInput(\n /* @__PURE__ */ icon(\"prefix\"),\n /* @__PURE__ */ prefix(),\n /* @__PURE__ */ buttonLabel(\"$label || $ui.submit.value\"),\n /* @__PURE__ */ suffix(),\n /* @__PURE__ */ icon(\"suffix\")\n )\n ),\n /* @__PURE__ */ help(\"$help\")\n ),\n /**\n * The type of node, can be a list, group, or input.\n */\n type: \"input\",\n /**\n * The family of inputs this one belongs too. For example \"text\" and \"email\"\n * are both part of the \"text\" family. This is primary used for styling.\n */\n family: \"button\",\n /**\n * An array of extra props to accept for this input.\n */\n props: [],\n /**\n * Additional features that should be added to your input\n */\n features: [localize(\"submit\"), ignore],\n /**\n * A key to use for memoizing the schema. This is used to prevent the schema\n * from needing to be stringified when performing a memo lookup.\n */\n schemaMemoKey: \"h6st4epl3j8\"\n};\n\n// packages/inputs/src/inputs/checkbox.ts\nvar checkbox = {\n /**\n * The actual schema of the input, or a function that returns the schema.\n */\n schema: /* @__PURE__ */ outer(\n $if(\n \"$options == undefined\",\n /**\n * Single checkbox structure.\n */\n /* @__PURE__ */ boxWrapper(\n /* @__PURE__ */ boxInner(/* @__PURE__ */ prefix(), /* @__PURE__ */ box(), /* @__PURE__ */ decorator(/* @__PURE__ */ icon(\"decorator\")), /* @__PURE__ */ suffix()),\n $extend(/* @__PURE__ */ boxLabel(\"$label\"), {\n if: \"$label\"\n })\n ),\n /**\n * Multi checkbox structure.\n */\n /* @__PURE__ */ fieldset(\n /* @__PURE__ */ legend(\"$label\"),\n /* @__PURE__ */ help(\"$help\"),\n /* @__PURE__ */ boxOptions(\n /* @__PURE__ */ boxOption(\n /* @__PURE__ */ boxWrapper(\n /* @__PURE__ */ boxInner(\n /* @__PURE__ */ prefix(),\n $extend(/* @__PURE__ */ box(), {\n bind: \"$option.attrs\",\n attrs: {\n id: \"$option.attrs.id\",\n value: \"$option.value\",\n checked: \"$fns.isChecked($option.value)\"\n }\n }),\n /* @__PURE__ */ decorator(/* @__PURE__ */ icon(\"decorator\")),\n /* @__PURE__ */ suffix()\n ),\n $extend(/* @__PURE__ */ boxLabel(\"$option.label\"), {\n if: \"$option.label\"\n })\n ),\n /* @__PURE__ */ boxHelp(\"$option.help\")\n )\n )\n )\n ),\n // Help text only goes under the input when it is a single.\n $if(\"$options == undefined && $help\", /* @__PURE__ */ help(\"$help\")),\n /* @__PURE__ */ messages(/* @__PURE__ */ message(\"$message.value\"))\n ),\n /**\n * The type of node, can be a list, group, or input.\n */\n type: \"input\",\n /**\n * The family of inputs this one belongs too. For example \"text\" and \"email\"\n * are both part of the \"text\" family. This is primary used for styling.\n */\n family: \"box\",\n /**\n * An array of extra props to accept for this input.\n */\n props: [\"options\", \"onValue\", \"offValue\", \"optionsLoader\"],\n /**\n * Additional features that should be added to your input\n */\n features: [\n options,\n checkboxes,\n defaultIcon(\"decorator\", \"checkboxDecorator\")\n ],\n /**\n * The key used to memoize the schema.\n */\n schemaMemoKey: \"qje02tb3gu8\"\n};\n\n// packages/inputs/src/inputs/file.ts\nvar file = {\n /**\n * The actual schema of the input, or a function that returns the schema.\n */\n schema: /* @__PURE__ */ outer(\n /* @__PURE__ */ wrapper(\n /* @__PURE__ */ label(\"$label\"),\n /* @__PURE__ */ inner(\n /* @__PURE__ */ icon(\"prefix\", \"label\"),\n /* @__PURE__ */ prefix(),\n /* @__PURE__ */ fileInput(),\n /* @__PURE__ */ fileList(\n /* @__PURE__ */ fileItem(\n /* @__PURE__ */ icon(\"fileItem\"),\n /* @__PURE__ */ fileName(\"$file.name\"),\n $if(\n \"$value.length === 1\",\n /* @__PURE__ */ fileRemove(\n /* @__PURE__ */ icon(\"fileRemove\"),\n '$ui.remove.value + \" \" + $file.name'\n )\n )\n )\n ),\n $if(\"$value.length > 1\", /* @__PURE__ */ fileRemove(\"$ui.removeAll.value\")),\n /* @__PURE__ */ noFiles(/* @__PURE__ */ icon(\"noFiles\"), \"$ui.noFiles.value\"),\n /* @__PURE__ */ suffix(),\n /* @__PURE__ */ icon(\"suffix\")\n )\n ),\n /* @__PURE__ */ help(\"$help\"),\n /* @__PURE__ */ messages(/* @__PURE__ */ message(\"$message.value\"))\n ),\n /**\n * The type of node, can be a list, group, or input.\n */\n type: \"input\",\n /**\n * The family of inputs this one belongs too. For example \"text\" and \"email\"\n * are both part of the \"text\" family. This is primary used for styling.\n */\n family: \"text\",\n /**\n * An array of extra props to accept for this input.\n */\n props: [],\n /**\n * Additional features that should be added to your input\n */\n features: [\n files,\n defaultIcon(\"fileItem\", \"fileItem\"),\n defaultIcon(\"fileRemove\", \"fileRemove\"),\n defaultIcon(\"noFiles\", \"noFiles\")\n ],\n /**\n * The key used to memoize the schema.\n */\n schemaMemoKey: \"9kqc4852fv8\"\n};\n\n// packages/inputs/src/inputs/form.ts\nvar form2 = {\n /**\n * The actual schema of the input, or a function that returns the schema.\n */\n schema: /* @__PURE__ */ formInput(\n \"$slots.default\",\n /* @__PURE__ */ messages(/* @__PURE__ */ message(\"$message.value\")),\n /* @__PURE__ */ actions(/* @__PURE__ */ submitInput())\n ),\n /**\n * The type of node, can be a list, group, or input.\n */\n type: \"group\",\n /**\n * An array of extra props to accept for this input.\n */\n props: [\n \"actions\",\n \"submit\",\n \"submitLabel\",\n \"submitAttrs\",\n \"submitBehavior\",\n \"incompleteMessage\"\n ],\n /**\n * Additional features that should be added to your input\n */\n features: [form, disables],\n /**\n * The key used to memoize the schema.\n */\n schemaMemoKey: \"5bg016redjo\"\n};\n\n// packages/inputs/src/inputs/group.ts\nvar group = {\n /**\n * The actual schema of the input, or a function that returns the schema.\n */\n schema: /* @__PURE__ */ fragment(\"$slots.default\"),\n /**\n * The type of node, can be a list, group, or input.\n */\n type: \"group\",\n /**\n * An array of extra props to accept for this input.\n */\n props: [],\n /**\n * Additional features that should be added to your input\n */\n features: [disables, renamesRadios]\n};\n\n// packages/inputs/src/inputs/hidden.ts\nvar hidden = {\n /**\n * The actual schema of the input, or a function that returns the schema.\n */\n schema: /* @__PURE__ */ textInput(),\n /**\n * The type of node, can be a list, group, or input.\n */\n type: \"input\",\n /**\n * An array of extra props to accept for this input.\n */\n props: [],\n /**\n * Additional features that should be added to your input\n */\n features: [casts]\n};\n\n// packages/inputs/src/inputs/list.ts\nvar list = {\n /**\n * The actual schema of the input, or a function that returns the schema.\n */\n schema: /* @__PURE__ */ fragment(\"$slots.default\"),\n /**\n * The type of node, can be a list, group, or input.\n */\n type: \"list\",\n /**\n * An array of extra props to accept for this input.\n */\n props: [\"sync\", \"dynamic\"],\n /**\n * Additional features that should be added to your input\n */\n features: [disables, renamesRadios]\n};\n\n// packages/inputs/src/inputs/meta.ts\nvar meta = {\n /**\n * The actual schema of the input, or a function that returns the schema.\n */\n schema: /* @__PURE__ */ fragment(),\n /**\n * The type of node, can be a list, group, or input.\n */\n type: \"input\",\n /**\n * An array of extra props to accept for this input.\n */\n props: [],\n /**\n * Additional features that should be added to your input\n */\n features: []\n};\n\n// packages/inputs/src/inputs/radio.ts\nvar radio = {\n /**\n * The actual schema of the input, or a function that returns the schema.\n */\n schema: /* @__PURE__ */ outer(\n $if(\n \"$options == undefined\",\n /**\n * Single radio structure.\n */\n /* @__PURE__ */ boxWrapper(\n /* @__PURE__ */ boxInner(/* @__PURE__ */ prefix(), /* @__PURE__ */ box(), /* @__PURE__ */ decorator(/* @__PURE__ */ icon(\"decorator\")), /* @__PURE__ */ suffix()),\n $extend(/* @__PURE__ */ boxLabel(\"$label\"), {\n if: \"$label\"\n })\n ),\n /**\n * Multi radio structure.\n */\n /* @__PURE__ */ fieldset(\n /* @__PURE__ */ legend(\"$label\"),\n /* @__PURE__ */ help(\"$help\"),\n /* @__PURE__ */ boxOptions(\n /* @__PURE__ */ boxOption(\n /* @__PURE__ */ boxWrapper(\n /* @__PURE__ */ boxInner(\n /* @__PURE__ */ prefix(),\n $extend(/* @__PURE__ */ box(), {\n bind: \"$option.attrs\",\n attrs: {\n id: \"$option.attrs.id\",\n value: \"$option.value\",\n checked: \"$fns.isChecked($option.value)\"\n }\n }),\n /* @__PURE__ */ decorator(/* @__PURE__ */ icon(\"decorator\")),\n /* @__PURE__ */ suffix()\n ),\n $extend(/* @__PURE__ */ boxLabel(\"$option.label\"), {\n if: \"$option.label\"\n })\n ),\n /* @__PURE__ */ boxHelp(\"$option.help\")\n )\n )\n )\n ),\n // Help text only goes under the input when it is a single.\n $if(\"$options == undefined && $help\", /* @__PURE__ */ help(\"$help\")),\n /* @__PURE__ */ messages(/* @__PURE__ */ message(\"$message.value\"))\n ),\n /**\n * The type of node, can be a list, group, or input.\n */\n type: \"input\",\n /**\n * The family of inputs this one belongs too. For example \"text\" and \"email\"\n * are both part of the \"text\" family. This is primary used for styling.\n */\n family: \"box\",\n /**\n * An array of extra props to accept for this input.\n */\n props: [\"options\", \"onValue\", \"offValue\", \"optionsLoader\"],\n /**\n * Additional features that should be added to your input\n */\n features: [options, radios, defaultIcon(\"decorator\", \"radioDecorator\")],\n /**\n * The key used to memoize the schema.\n */\n schemaMemoKey: \"qje02tb3gu8\"\n};\n\n// packages/inputs/src/inputs/select.ts\nvar select2 = {\n /**\n * The actual schema of the input, or a function that returns the schema.\n */\n schema: /* @__PURE__ */ outer(\n /* @__PURE__ */ wrapper(\n /* @__PURE__ */ label(\"$label\"),\n /* @__PURE__ */ inner(\n /* @__PURE__ */ icon(\"prefix\"),\n /* @__PURE__ */ prefix(),\n /* @__PURE__ */ selectInput(\n $if(\n \"$slots.default\",\n () => \"$slots.default\",\n /* @__PURE__ */ optionSlot(\n $if(\n \"$option.group\",\n /* @__PURE__ */ optGroup(/* @__PURE__ */ optionSlot(/* @__PURE__ */ option(\"$option.label\"))),\n /* @__PURE__ */ option(\"$option.label\")\n )\n )\n )\n ),\n $if(\"$attrs.multiple !== undefined\", () => \"\", /* @__PURE__ */ icon(\"select\")),\n /* @__PURE__ */ suffix(),\n /* @__PURE__ */ icon(\"suffix\")\n )\n ),\n /* @__PURE__ */ help(\"$help\"),\n /* @__PURE__ */ messages(/* @__PURE__ */ message(\"$message.value\"))\n ),\n /**\n * The type of node, can be a list, group, or input.\n */\n type: \"input\",\n /**\n * An array of extra props to accept for this input.\n */\n props: [\"options\", \"placeholder\", \"optionsLoader\"],\n /**\n * Additional features that should be added to your input\n */\n features: [options, select, defaultIcon(\"select\", \"select\")],\n /**\n * The key used to memoize the schema.\n */\n schemaMemoKey: \"cb119h43krg\"\n};\n\n// packages/inputs/src/inputs/textarea.ts\nvar textarea = {\n /**\n * The actual schema of the input, or a function that returns the schema.\n */\n schema: /* @__PURE__ */ outer(\n /* @__PURE__ */ wrapper(\n /* @__PURE__ */ label(\"$label\"),\n /* @__PURE__ */ inner(\n /* @__PURE__ */ icon(\"prefix\", \"label\"),\n /* @__PURE__ */ prefix(),\n /* @__PURE__ */ textareaInput(),\n /* @__PURE__ */ suffix(),\n /* @__PURE__ */ icon(\"suffix\")\n )\n ),\n /* @__PURE__ */ help(\"$help\"),\n /* @__PURE__ */ messages(/* @__PURE__ */ message(\"$message.value\"))\n ),\n /**\n * The type of node, can be a list, group, or input.\n */\n type: \"input\",\n /**\n * An array of extra props to accept for this input.\n */\n props: [],\n /**\n * Additional features that should be added to your input\n */\n features: [initialValue],\n /**\n * The key used to memoize the schema.\n */\n schemaMemoKey: \"b1n0td79m9g\"\n};\n\n// packages/inputs/src/inputs/text.ts\nvar text = {\n /**\n * The actual schema of the input, or a function that returns the schema.\n */\n schema: /* @__PURE__ */ outer(\n /* @__PURE__ */ wrapper(\n /* @__PURE__ */ label(\"$label\"),\n /* @__PURE__ */ inner(\n /* @__PURE__ */ icon(\"prefix\", \"label\"),\n /* @__PURE__ */ prefix(),\n /* @__PURE__ */ textInput(),\n /* @__PURE__ */ suffix(),\n /* @__PURE__ */ icon(\"suffix\")\n )\n ),\n /* @__PURE__ */ help(\"$help\"),\n /* @__PURE__ */ messages(/* @__PURE__ */ message(\"$message.value\"))\n ),\n /**\n * The type of node, can be a list, group, or input.\n */\n type: \"input\",\n /**\n * The family of inputs this one belongs too. For example \"text\" and \"email\"\n * are both part of the \"text\" family. This is primary used for styling.\n */\n family: \"text\",\n /**\n * An array of extra props to accept for this input.\n */\n props: [],\n /**\n * Additional features that should be added to your input\n */\n features: [casts],\n /**\n * The key used to memoize the schema.\n */\n schemaMemoKey: \"c3cc4kflsg\"\n};\n\n// packages/inputs/src/index.ts\nvar inputs = {\n button,\n submit: button,\n checkbox,\n file,\n form: form2,\n group,\n hidden,\n list,\n meta,\n radio,\n select: select2,\n textarea,\n text,\n color: text,\n date: text,\n datetimeLocal: text,\n email: text,\n month: text,\n number: text,\n password: text,\n search: text,\n tel: text,\n time: text,\n url: text,\n week: text,\n range: text\n};\n\nexport { $attrs, $extend, $for, $if, $root, actions, box, boxHelp, boxInner, boxLabel, boxOption, boxOptions, boxWrapper, button, buttonInput, buttonLabel, casts, checkbox, checkboxes, text as color, createLibraryPlugin, createSection, text as date, text as datetimeLocal, decorator, defaultIcon, disables as disablesChildren, eachSection, text as email, extendSchema, fieldset, file, fileInput, fileItem, fileList, fileName, fileRemove, files, findSection, form2 as form, formInput, form as forms, fragment, group, help, hidden, icon, ignore as ignores, initialValue, inner, inputs, isGroupOption, isSchemaObject, isSlotCondition, label, legend, list, localize, message, messages, meta, text as month, noFiles, normalizeBoxes, normalizeOptions, text as number, optGroup, option, optionSlot, options, outer, text as password, prefix, radio, radios, text as range, renamesRadios, resetCounts, resetRadio, runtimeProps, text as search, select2 as select, selectInput, select as selects, button as submit, submitInput, suffix, text as tel, text, textInput, textarea, textareaInput, text as time, text as url, useSchema, text as week, wrapper };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=index.mjs.map","import { FORMKIT_VERSION } from '@formkit/core';\n\n// packages/themes/src/index.ts\nfunction generateClasses(classes) {\n const classesBySectionKey = {};\n Object.keys(classes).forEach((type) => {\n Object.keys(classes[type]).forEach((sectionKey) => {\n if (!classesBySectionKey[sectionKey]) {\n classesBySectionKey[sectionKey] = {\n [type]: classes[type][sectionKey]\n };\n } else {\n classesBySectionKey[sectionKey][type] = classes[type][sectionKey];\n }\n });\n });\n Object.keys(classesBySectionKey).forEach((sectionKey) => {\n const classesObject = classesBySectionKey[sectionKey];\n classesBySectionKey[sectionKey] = function(node, sectionKey2) {\n return addClassesBySection(node, sectionKey2, classesObject);\n };\n });\n return classesBySectionKey;\n}\nfunction addClassesBySection(node, _sectionKey, classesByType) {\n const type = node.props.type;\n const family = node.props.family;\n let classList = \"\";\n if (classesByType.global) {\n classList += classesByType.global + \" \";\n }\n if (classesByType[`family:${family}`]) {\n classList += classesByType[`family:${family}`] + \" \";\n }\n if (classesByType[type]) {\n classList += classesByType[type];\n }\n const listParts = classList.split(\"$reset\");\n if (listParts.length > 1) {\n return `$reset ${listParts[listParts.length - 1].trim()}`;\n }\n return listParts[0].trim();\n}\nvar documentStyles = void 0;\nvar documentThemeLinkTag = null;\nvar themeDidLoad;\nvar themeHasLoaded = false;\nvar themeWasRequested = false;\nvar themeLoaded = /* @__PURE__ */ new Promise((res) => {\n themeDidLoad = () => {\n themeHasLoaded = true;\n res();\n };\n});\nvar isClient = typeof window !== \"undefined\" && typeof fetch !== \"undefined\";\ndocumentStyles = isClient ? /* @__PURE__ */ getComputedStyle(document.documentElement) : void 0;\nvar iconRegistry = {};\nvar iconRequests = {};\nfunction createThemePlugin(theme, icons, iconLoaderUrl, iconLoader) {\n if (icons) {\n Object.assign(iconRegistry, icons);\n }\n if (isClient && !themeWasRequested && documentStyles?.getPropertyValue(\"--formkit-theme\")) {\n themeDidLoad();\n themeWasRequested = true;\n } else if (theme && !themeWasRequested && isClient) {\n loadTheme(theme);\n } else if (!themeWasRequested && isClient) {\n themeDidLoad();\n }\n const themePlugin = function themePlugin2(node) {\n node.addProps([\"iconLoader\", \"iconLoaderUrl\"]);\n node.props.iconHandler = createIconHandler(\n node.props?.iconLoader ? node.props.iconLoader : iconLoader,\n node.props?.iconLoaderUrl ? node.props.iconLoaderUrl : iconLoaderUrl\n );\n loadIconPropIcons(node, node.props.iconHandler);\n node.on(\"created\", () => {\n if (node?.context?.handlers) {\n node.context.handlers.iconClick = (sectionKey) => {\n const clickHandlerProp = `on${sectionKey.charAt(0).toUpperCase()}${sectionKey.slice(1)}IconClick`;\n const handlerFunction = node.props[clickHandlerProp];\n if (handlerFunction && typeof handlerFunction === \"function\") {\n return (e) => {\n return handlerFunction(node, e);\n };\n }\n return void 0;\n };\n }\n if (node?.context?.fns) {\n node.context.fns.iconRole = (sectionKey) => {\n const clickHandlerProp = `on${sectionKey.charAt(0).toUpperCase()}${sectionKey.slice(1)}IconClick`;\n return typeof node.props[clickHandlerProp] === \"function\" ? \"button\" : null;\n };\n }\n });\n };\n themePlugin.iconHandler = createIconHandler(iconLoader, iconLoaderUrl);\n return themePlugin;\n}\nfunction loadTheme(theme) {\n if (!theme || !isClient || typeof getComputedStyle !== \"function\") {\n return;\n }\n themeWasRequested = true;\n documentThemeLinkTag = document.getElementById(\"formkit-theme\");\n if (theme && // if we have a window object\n isClient && // we don't have an existing theme OR the theme being set up is different\n (!documentStyles?.getPropertyValue(\"--formkit-theme\") && !documentThemeLinkTag || documentThemeLinkTag?.getAttribute(\"data-theme\") && documentThemeLinkTag?.getAttribute(\"data-theme\") !== theme)) {\n const formkitVersion = FORMKIT_VERSION.startsWith(\"__\") ? \"latest\" : FORMKIT_VERSION;\n const themeUrl = `https://cdn.jsdelivr.net/npm/@formkit/themes@${formkitVersion}/dist/${theme}/theme.css`;\n const link = document.createElement(\"link\");\n link.type = \"text/css\";\n link.rel = \"stylesheet\";\n link.id = \"formkit-theme\";\n link.setAttribute(\"data-theme\", theme);\n link.onload = () => {\n documentStyles = getComputedStyle(document.documentElement);\n themeDidLoad();\n };\n document.head.appendChild(link);\n link.href = themeUrl;\n if (documentThemeLinkTag) {\n documentThemeLinkTag.remove();\n }\n }\n}\nfunction createIconHandler(iconLoader, iconLoaderUrl) {\n return (iconName) => {\n if (typeof iconName !== \"string\")\n return;\n if (iconName.startsWith(\"<svg\")) {\n return iconName;\n }\n const isDefault = iconName.startsWith(\"default:\");\n iconName = isDefault ? iconName.split(\":\")[1] : iconName;\n const iconWasAlreadyLoaded = iconName in iconRegistry;\n let loadedIcon = void 0;\n if (iconWasAlreadyLoaded) {\n return iconRegistry[iconName];\n } else if (!iconRequests[iconName]) {\n loadedIcon = getIconFromStylesheet(iconName);\n loadedIcon = isClient && typeof loadedIcon === \"undefined\" ? Promise.resolve(loadedIcon) : loadedIcon;\n if (loadedIcon instanceof Promise) {\n iconRequests[iconName] = loadedIcon.then((iconValue) => {\n if (!iconValue && typeof iconName === \"string\" && !isDefault) {\n return loadedIcon = typeof iconLoader === \"function\" ? iconLoader(iconName) : getRemoteIcon(iconName, iconLoaderUrl);\n }\n return iconValue;\n }).then((finalIcon) => {\n if (typeof iconName === \"string\") {\n iconRegistry[isDefault ? `default:${iconName}` : iconName] = finalIcon;\n }\n return finalIcon;\n });\n } else if (typeof loadedIcon === \"string\") {\n iconRegistry[isDefault ? `default:${iconName}` : iconName] = loadedIcon;\n return loadedIcon;\n }\n }\n return iconRequests[iconName];\n };\n}\nfunction getIconFromStylesheet(iconName) {\n if (!isClient)\n return;\n if (themeHasLoaded) {\n return loadStylesheetIcon(iconName);\n } else {\n return themeLoaded.then(() => {\n return loadStylesheetIcon(iconName);\n });\n }\n}\nfunction loadStylesheetIcon(iconName) {\n const cssVarIcon = documentStyles?.getPropertyValue(`--fk-icon-${iconName}`);\n if (cssVarIcon) {\n const icon = atob(cssVarIcon);\n if (icon.startsWith(\"<svg\")) {\n iconRegistry[iconName] = icon;\n return icon;\n }\n }\n return void 0;\n}\nfunction getRemoteIcon(iconName, iconLoaderUrl) {\n const formkitVersion = FORMKIT_VERSION.startsWith(\"__\") ? \"latest\" : FORMKIT_VERSION;\n const fetchUrl = typeof iconLoaderUrl === \"function\" ? iconLoaderUrl(iconName) : `https://cdn.jsdelivr.net/npm/@formkit/icons@${formkitVersion}/dist/icons/${iconName}.svg`;\n if (!isClient)\n return void 0;\n return fetch(`${fetchUrl}`).then(async (r) => {\n const icon = await r.text();\n if (icon.startsWith(\"<svg\")) {\n return icon;\n }\n return void 0;\n }).catch((e) => {\n console.error(e);\n return void 0;\n });\n}\nfunction loadIconPropIcons(node, iconHandler) {\n const iconRegex = /^[a-zA-Z-]+(?:-icon|Icon)$/;\n const iconProps = Object.keys(node.props).filter((prop) => {\n return iconRegex.test(prop);\n });\n iconProps.forEach((sectionKey) => {\n return loadPropIcon(node, iconHandler, sectionKey);\n });\n}\nfunction loadPropIcon(node, iconHandler, sectionKey) {\n const iconName = node.props[sectionKey];\n const loadedIcon = iconHandler(iconName);\n const rawIconProp = `_raw${sectionKey.charAt(0).toUpperCase()}${sectionKey.slice(1)}`;\n const clickHandlerProp = `on${sectionKey.charAt(0).toUpperCase()}${sectionKey.slice(1)}Click`;\n node.addProps([rawIconProp, clickHandlerProp]);\n node.on(`prop:${sectionKey}`, reloadIcon);\n if (loadedIcon instanceof Promise) {\n return loadedIcon.then((svg) => {\n node.props[rawIconProp] = svg;\n });\n } else {\n node.props[rawIconProp] = loadedIcon;\n }\n return;\n}\nfunction reloadIcon(event) {\n const node = event.origin;\n const iconName = event.payload;\n const iconHandler = node?.props?.iconHandler;\n const sectionKey = event.name.split(\":\")[1];\n const rawIconProp = `_raw${sectionKey.charAt(0).toUpperCase()}${sectionKey.slice(1)}`;\n if (iconHandler && typeof iconHandler === \"function\") {\n const loadedIcon = iconHandler(iconName);\n if (loadedIcon instanceof Promise) {\n return loadedIcon.then((svg) => {\n node.props[rawIconProp] = svg;\n });\n } else {\n node.props[rawIconProp] = loadedIcon;\n }\n }\n}\n\nexport { createIconHandler, createThemePlugin, generateClasses, iconRegistry };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=index.mjs.map","import { errorHandler, warningHandler } from '@formkit/core';\n\n// packages/dev/src/index.ts\nvar errors = {\n /**\n * FormKit errors:\n */\n 100: ({ data: node }) => `Only groups, lists, and forms can have children (${node.name}).`,\n 101: ({ data: node }) => `You cannot directly modify the store (${node.name}). See: https://formkit.com/advanced/core#message-store`,\n 102: ({\n data: [node, property]\n }) => `You cannot directly assign node.${property} (${node.name})`,\n 103: ({ data: [operator] }) => `Schema expressions cannot start with an operator (${operator})`,\n 104: ({ data: [operator, expression] }) => `Schema expressions cannot end with an operator (${operator} in \"${expression}\")`,\n 105: ({ data: expression }) => `Invalid schema expression: ${expression}`,\n 106: ({ data: name }) => `Cannot submit because (${name}) is not in a form.`,\n 107: ({ data: [node, value] }) => `Cannot set ${node.name} to non object value: ${value}`,\n 108: ({ data: [node, value] }) => `Cannot set ${node.name} to non array value: ${value}`,\n /**\n * Input specific errors:\n */\n 300: ({ data: [node] }) => `Cannot set behavior prop to overscroll (on ${node.name} input) when options prop is a function.`,\n /**\n * FormKit vue errors:\n */\n 600: ({ data: node }) => `Unknown input type${typeof node.props.type === \"string\" ? ' \"' + node.props.type + '\"' : \"\"} (\"${node.name}\")`,\n 601: ({ data: node }) => `Input definition${typeof node.props.type === \"string\" ? ' \"' + node.props.type + '\"' : \"\"} is missing a schema or component property (${node.name}).`\n};\nvar warnings = {\n /**\n * Core warnings:\n */\n 150: ({ data: fn }) => `Schema function \"${fn}()\" is not a valid function.`,\n 151: ({ data: id }) => `No form element with id: ${id}`,\n 152: ({ data: id }) => `No input element with id: ${id}`,\n /**\n * Input specific warnings:\n */\n 350: ({\n data: { node, inputType }\n }) => `Invalid options prop for ${node.name} input (${inputType}). See https://formkit.com/inputs/${inputType}`,\n /**\n * Vue warnings:\n */\n 650: 'Schema \"$get()\" must use the id of an input to access.',\n 651: ({ data: id }) => `Cannot setErrors() on \"${id}\" because no such id exists.`,\n 652: ({ data: id }) => `Cannot clearErrors() on \"${id}\" because no such id exists.`,\n /**\n * Deprecation warnings:\n */\n 800: ({ data: name }) => `${name} is deprecated.`\n};\nvar decodeErrors = (error, next) => {\n if (error.code in errors) {\n const err = errors[error.code];\n error.message = typeof err === \"function\" ? err(error) : err;\n }\n return next(error);\n};\nvar registered = false;\nfunction register() {\n if (!registered) {\n errorHandler(decodeErrors);\n warningHandler(decodeWarnings);\n registered = true;\n }\n}\nvar decodeWarnings = (warning, next) => {\n if (warning.code in warnings) {\n const warn = warnings[warning.code];\n warning.message = typeof warn === \"function\" ? warn(warning) : warn;\n }\n return next(warning);\n};\n\nexport { errors, register, warnings };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=index.mjs.map","import { defineComponent, getCurrentInstance, markRaw, watch, watchEffect, reactive, onMounted, onUnmounted, ref, provide, h, inject, computed, toRef, onBeforeUnmount, KeepAlive, Suspense, nextTick, triggerRef, isRef, isReactive, createTextVNode, resolveComponent } from 'vue';\nimport { createConfig, createNode, error, createMessage, getNode, watchRegistry, stopWatch, resetCount as resetCount$1, clearErrors, setErrors, submitForm, reset, createClasses, generateClassList, warn, isNode, sugar, isDOM, isComponent, isConditional, compile } from '@formkit/core';\nexport { clearErrors, errorHandler, reset, setErrors, submitForm } from '@formkit/core';\nimport { cloneAny, extend, undefine, camel, kebab, nodeProps, only, except, oncePerTick, slugify, shallowClone, eq, token, isObject, empty, has, isPojo } from '@formkit/utils';\nimport { createObserver } from '@formkit/observer';\nimport * as defaultRules from '@formkit/rules';\nimport { createValidationPlugin } from '@formkit/validation';\nimport { createI18nPlugin, en } from '@formkit/i18n';\nexport { changeLocale } from '@formkit/i18n';\nimport { createSection, useSchema, localize, resetCounts, createLibraryPlugin, inputs, runtimeProps } from '@formkit/inputs';\nimport { createIconHandler, createThemePlugin } from '@formkit/themes';\nimport { register } from '@formkit/dev';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar vueBindings, bindings_default;\nvar init_bindings = __esm({\n \"packages/vue/src/bindings.ts\"() {\n vueBindings = function vueBindings2(node) {\n node.ledger.count(\"blocking\", (m) => m.blocking);\n const isValid = ref(!node.ledger.value(\"blocking\"));\n node.ledger.count(\"errors\", (m) => m.type === \"error\");\n const hasErrors = ref(!!node.ledger.value(\"errors\"));\n let hasTicked = false;\n nextTick(() => {\n hasTicked = true;\n });\n const availableMessages = reactive(\n node.store.reduce((store, message3) => {\n if (message3.visible) {\n store[message3.key] = message3;\n }\n return store;\n }, {})\n );\n const validationVisibility = ref(\n node.props.validationVisibility || (node.props.type === \"checkbox\" ? \"dirty\" : \"blur\")\n );\n node.on(\"prop:validationVisibility\", ({ payload }) => {\n validationVisibility.value = payload;\n });\n const hasShownErrors = ref(validationVisibility.value === \"live\");\n const isRequired = ref(false);\n const checkForRequired = (parsedRules) => {\n isRequired.value = (parsedRules ?? []).some(\n (rule) => rule.name === \"required\"\n );\n };\n checkForRequired(node.props.parsedRules);\n node.on(\"prop:parsedRules\", ({ payload }) => checkForRequired(payload));\n const items = ref(node.children.map((child) => child.uid));\n const validationVisible = computed(() => {\n if (!context.state)\n return false;\n if (context.state.submitted)\n return true;\n if (!hasShownErrors.value && !context.state.settled) {\n return false;\n }\n switch (validationVisibility.value) {\n case \"live\":\n return true;\n case \"blur\":\n return context.state.blurred;\n case \"dirty\":\n return context.state.dirty;\n default:\n return false;\n }\n });\n const isInvalid = computed(() => {\n return context.state.failing && validationVisible.value;\n });\n const isComplete = computed(() => {\n return context && hasValidation.value ? isValid.value && !hasErrors.value : context.state.dirty && !empty(context.value);\n });\n const hasValidation = ref(\n Array.isArray(node.props.parsedRules) && node.props.parsedRules.length > 0\n );\n node.on(\"prop:parsedRules\", ({ payload: rules }) => {\n hasValidation.value = Array.isArray(rules) && rules.length > 0;\n });\n const messages3 = computed(() => {\n const visibleMessages = {};\n for (const key in availableMessages) {\n const message3 = availableMessages[key];\n if (message3.type !== \"validation\" || validationVisible.value) {\n visibleMessages[key] = message3;\n }\n }\n return visibleMessages;\n });\n const ui = reactive(\n node.store.reduce((messages4, message3) => {\n if (message3.type === \"ui\" && message3.visible)\n messages4[message3.key] = message3;\n return messages4;\n }, {})\n );\n const passing = computed(() => !context.state.failing);\n const cachedClasses = reactive({});\n const classes2 = new Proxy(cachedClasses, {\n get(...args) {\n if (!node)\n return \"\";\n const [target, property] = args;\n let className = Reflect.get(...args);\n if (!className && typeof property === \"string\") {\n if (!has(target, property) && !property.startsWith(\"__v\")) {\n const observedNode = createObserver(node);\n observedNode.watch((node2) => {\n const rootClasses = typeof node2.config.rootClasses === \"function\" ? node2.config.rootClasses(property, node2) : {};\n const globalConfigClasses = node2.config.classes ? createClasses(property, node2, node2.config.classes[property]) : {};\n const classesPropClasses = createClasses(\n property,\n node2,\n node2.props[`_${property}Class`]\n );\n const sectionPropClasses = createClasses(\n property,\n node2,\n node2.props[`${property}Class`]\n );\n className = generateClassList(\n node2,\n property,\n rootClasses,\n globalConfigClasses,\n classesPropClasses,\n sectionPropClasses\n );\n target[property] = className ?? \"\";\n });\n }\n }\n return className;\n }\n });\n node.on(\"prop:rootClasses\", () => {\n const keys = Object.keys(cachedClasses);\n for (const key of keys) {\n delete cachedClasses[key];\n }\n });\n const describedBy = computed(() => {\n if (!node)\n return void 0;\n const describers = [];\n if (context.help) {\n describers.push(`help-${node.props.id}`);\n }\n for (const key in messages3.value) {\n describers.push(`${node.props.id}-${key}`);\n }\n return describers.length ? describers.join(\" \") : void 0;\n });\n const value = ref(node.value);\n const _value = ref(node.value);\n const context = reactive({\n _value,\n attrs: node.props.attrs,\n disabled: node.props.disabled,\n describedBy,\n fns: {\n length: (obj) => Object.keys(obj).length,\n number: (value2) => Number(value2),\n string: (value2) => String(value2),\n json: (value2) => JSON.stringify(value2),\n eq: eq\n },\n handlers: {\n blur: (e) => {\n if (!node)\n return;\n node.store.set(\n /* @__PURE__ */ createMessage({ key: \"blurred\", visible: false, value: true })\n );\n if (typeof node.props.attrs.onBlur === \"function\") {\n node.props.attrs.onBlur(e);\n }\n },\n touch: () => {\n const doCompare = context.dirtyBehavior === \"compare\";\n if (node.store.dirty?.value && !doCompare)\n return;\n const isDirty = !eq(node.props._init, node._value);\n if (!isDirty && !doCompare)\n return;\n node.store.set(\n /* @__PURE__ */ createMessage({ key: \"dirty\", visible: false, value: isDirty })\n );\n },\n DOMInput: (e) => {\n node.input(e.target.value);\n node.emit(\"dom-input-event\", e);\n }\n },\n help: node.props.help,\n id: node.props.id,\n items,\n label: node.props.label,\n messages: messages3,\n didMount: false,\n node: markRaw(node),\n options: node.props.options,\n defaultMessagePlacement: true,\n slots: node.props.__slots,\n state: {\n blurred: false,\n complete: isComplete,\n dirty: false,\n empty: empty(value),\n submitted: false,\n settled: node.isSettled,\n valid: isValid,\n invalid: isInvalid,\n errors: hasErrors,\n rules: hasValidation,\n validationVisible,\n required: isRequired,\n failing: false,\n passing\n },\n type: node.props.type,\n family: node.props.family,\n ui,\n value,\n classes: classes2\n });\n node.on(\"created\", () => {\n if (!eq(context.value, node.value)) {\n _value.value = node.value;\n value.value = node.value;\n triggerRef(value);\n triggerRef(_value);\n }\n (async () => {\n await node.settled;\n if (node)\n node.props._init = cloneAny(node.value);\n })();\n });\n node.on(\"mounted\", () => {\n context.didMount = true;\n });\n node.on(\"settled\", ({ payload: isSettled }) => {\n context.state.settled = isSettled;\n });\n function observeProps(observe) {\n const propNames = Array.isArray(observe) ? observe : Object.keys(observe);\n propNames.forEach((prop) => {\n prop = camel(prop);\n if (!has(context, prop)) {\n context[prop] = node.props[prop];\n }\n node.on(`prop:${prop}`, ({ payload }) => {\n context[prop] = payload;\n });\n });\n }\n const rootProps = () => {\n const props = [\n \"__root\",\n \"help\",\n \"label\",\n \"disabled\",\n \"options\",\n \"type\",\n \"attrs\",\n \"preserve\",\n \"preserveErrors\",\n \"id\",\n \"dirtyBehavior\"\n ];\n const iconPattern = /^[a-zA-Z-]+(?:-icon|Icon)$/;\n const matchingProps = Object.keys(node.props).filter((prop) => {\n return iconPattern.test(prop);\n });\n return props.concat(matchingProps);\n };\n observeProps(rootProps());\n function definedAs(definition3) {\n if (definition3.props)\n observeProps(definition3.props);\n }\n node.props.definition && definedAs(node.props.definition);\n node.on(\"added-props\", ({ payload }) => observeProps(payload));\n node.on(\"input\", ({ payload }) => {\n if (node.type !== \"input\" && !isRef(payload) && !isReactive(payload)) {\n _value.value = shallowClone(payload);\n } else {\n _value.value = payload;\n triggerRef(_value);\n }\n });\n node.on(\"commitRaw\", ({ payload }) => {\n if (node.type !== \"input\" && !isRef(payload) && !isReactive(payload)) {\n value.value = _value.value = shallowClone(payload);\n } else {\n value.value = _value.value = payload;\n triggerRef(value);\n }\n node.emit(\"modelUpdated\");\n });\n node.on(\"commit\", ({ payload }) => {\n if ((!context.state.dirty || context.dirtyBehavior === \"compare\") && node.isCreated && hasTicked) {\n if (!node.store.validating?.value) {\n context.handlers.touch();\n } else {\n const receipt = node.on(\"message-removed\", ({ payload: message3 }) => {\n if (message3.key === \"validating\") {\n context.handlers.touch();\n node.off(receipt);\n }\n });\n }\n }\n if (isComplete && node.type === \"input\" && hasErrors.value && !undefine(node.props.preserveErrors)) {\n node.store.filter(\n (message3) => !(message3.type === \"error\" && message3.meta?.autoClear === true)\n );\n }\n if (node.type === \"list\" && node.sync) {\n items.value = node.children.map((child) => child.uid);\n }\n context.state.empty = empty(payload);\n });\n const updateState = async (message3) => {\n if (message3.type === \"ui\" && message3.visible && !message3.meta.showAsMessage) {\n ui[message3.key] = message3;\n } else if (message3.visible) {\n availableMessages[message3.key] = message3;\n } else if (message3.type === \"state\") {\n context.state[message3.key] = !!message3.value;\n }\n };\n node.on(\"message-added\", (e) => updateState(e.payload));\n node.on(\"message-updated\", (e) => updateState(e.payload));\n node.on(\"message-removed\", ({ payload: message3 }) => {\n delete ui[message3.key];\n delete availableMessages[message3.key];\n delete context.state[message3.key];\n });\n node.on(\"settled:blocking\", () => {\n isValid.value = true;\n });\n node.on(\"unsettled:blocking\", () => {\n isValid.value = false;\n });\n node.on(\"settled:errors\", () => {\n hasErrors.value = false;\n });\n node.on(\"unsettled:errors\", () => {\n hasErrors.value = true;\n });\n watch(validationVisible, (value2) => {\n if (value2) {\n hasShownErrors.value = true;\n }\n });\n node.context = context;\n node.emit(\"context\", node, false);\n node.on(\"destroyed\", () => {\n node.context = void 0;\n node = null;\n });\n };\n bindings_default = vueBindings;\n }\n});\n\n// packages/vue/src/defaultConfig.ts\nvar defaultConfig_exports = {};\n__export(defaultConfig_exports, {\n defaultConfig: () => defaultConfig\n});\nvar defaultConfig;\nvar init_defaultConfig = __esm({\n \"packages/vue/src/defaultConfig.ts\"() {\n init_bindings();\n defaultConfig = (options = {}) => {\n register();\n const {\n rules = {},\n locales = {},\n inputs: inputs$1 = {},\n messages: messages3 = {},\n locale = void 0,\n theme = void 0,\n iconLoaderUrl = void 0,\n iconLoader = void 0,\n icons = {},\n ...nodeOptions\n } = options;\n const validation = createValidationPlugin({\n ...defaultRules,\n ...rules || {}\n });\n const i18n = createI18nPlugin(\n extend({ en, ...locales || {} }, messages3)\n );\n const library = createLibraryPlugin(inputs, inputs$1);\n const themePlugin = createThemePlugin(theme, icons, iconLoaderUrl, iconLoader);\n return extend(\n {\n plugins: [library, themePlugin, bindings_default, i18n, validation],\n ...!locale ? {} : { config: { locale } }\n },\n nodeOptions || {},\n true\n );\n };\n }\n});\n\n// packages/vue/src/composables/onSSRComplete.ts\nvar isServer = typeof window === \"undefined\";\nvar ssrCompleteRegistry = /* @__PURE__ */ new Map();\nfunction ssrComplete(app) {\n if (!isServer)\n return;\n const callbacks = ssrCompleteRegistry.get(app);\n if (!callbacks)\n return;\n for (const callback of callbacks) {\n callback();\n }\n callbacks.clear();\n ssrCompleteRegistry.delete(app);\n}\nfunction onSSRComplete(app, callback) {\n if (!isServer || !app)\n return;\n if (!ssrCompleteRegistry.has(app))\n ssrCompleteRegistry.set(app, /* @__PURE__ */ new Set());\n ssrCompleteRegistry.get(app)?.add(callback);\n}\n\n// packages/vue/src/FormKitSchema.ts\nvar isServer2 = typeof window === \"undefined\";\nvar memo = {};\nvar memoKeys = {};\nvar instanceKey;\nvar instanceScopes = /* @__PURE__ */ new WeakMap();\nvar raw = \"__raw__\";\nvar isClassProp = /[a-zA-Z0-9\\-][cC]lass$/;\nfunction getRef(token3, data) {\n const value = ref(null);\n if (token3 === \"get\") {\n const nodeRefs = {};\n value.value = get.bind(null, nodeRefs);\n return value;\n }\n const path = token3.split(\".\");\n watchEffect(() => {\n value.value = getValue(\n isRef(data) ? data.value : data,\n path\n );\n });\n return value;\n}\nfunction getValue(set, path) {\n if (Array.isArray(set)) {\n for (const subset of set) {\n const value = subset !== false && getValue(subset, path);\n if (value !== void 0)\n return value;\n }\n return void 0;\n }\n let foundValue = void 0;\n let obj = set;\n for (const i in path) {\n const key = path[i];\n if (typeof obj !== \"object\" || obj === null) {\n foundValue = void 0;\n break;\n }\n const currentValue = obj[key];\n if (Number(i) === path.length - 1 && currentValue !== void 0) {\n foundValue = typeof currentValue === \"function\" ? currentValue.bind(obj) : currentValue;\n break;\n }\n obj = currentValue;\n }\n return foundValue;\n}\nfunction get(nodeRefs, id) {\n if (typeof id !== \"string\")\n return warn(650);\n if (!(id in nodeRefs))\n nodeRefs[id] = ref(void 0);\n if (nodeRefs[id].value === void 0) {\n nodeRefs[id].value = null;\n const root = getNode(id);\n if (root)\n nodeRefs[id].value = root.context;\n watchRegistry(id, ({ payload: node }) => {\n nodeRefs[id].value = isNode(node) ? node.context : node;\n });\n }\n return nodeRefs[id].value;\n}\nfunction parseSchema(library, schema, memoKey) {\n function parseCondition(library2, node) {\n const condition = provider(compile(node.if), { if: true });\n const children = createElements(library2, node.then);\n const alternate = node.else ? createElements(library2, node.else) : null;\n return [condition, children, alternate];\n }\n function parseConditionAttr(attr, _default) {\n const condition = provider(compile(attr.if));\n let b = () => _default;\n let a = () => _default;\n if (typeof attr.then === \"object\") {\n a = parseAttrs(attr.then, void 0);\n } else if (typeof attr.then === \"string\" && attr.then?.startsWith(\"$\")) {\n a = provider(compile(attr.then));\n } else {\n a = () => attr.then;\n }\n if (has(attr, \"else\")) {\n if (typeof attr.else === \"object\") {\n b = parseAttrs(attr.else);\n } else if (typeof attr.else === \"string\" && attr.else?.startsWith(\"$\")) {\n b = provider(compile(attr.else));\n } else {\n b = () => attr.else;\n }\n }\n return () => condition() ? a() : b();\n }\n function parseAttrs(unparsedAttrs, bindExp, _default = {}) {\n const explicitAttrs = new Set(Object.keys(unparsedAttrs || {}));\n const boundAttrs = bindExp ? provider(compile(bindExp)) : () => ({});\n const setters = [\n (attrs) => {\n const bound = boundAttrs();\n for (const attr in bound) {\n if (!explicitAttrs.has(attr)) {\n attrs[attr] = bound[attr];\n }\n }\n }\n ];\n if (unparsedAttrs) {\n if (isConditional(unparsedAttrs)) {\n const condition = parseConditionAttr(\n unparsedAttrs,\n _default\n );\n return condition;\n }\n for (let attr in unparsedAttrs) {\n const value = unparsedAttrs[attr];\n let getValue2;\n const isStr = typeof value === \"string\";\n if (attr.startsWith(raw)) {\n attr = attr.substring(7);\n getValue2 = () => value;\n } else if (isStr && value.startsWith(\"$\") && value.length > 1 && !(value.startsWith(\"$reset\") && isClassProp.test(attr))) {\n getValue2 = provider(compile(value));\n } else if (typeof value === \"object\" && isConditional(value)) {\n getValue2 = parseConditionAttr(value, void 0);\n } else if (typeof value === \"object\" && isPojo(value)) {\n getValue2 = parseAttrs(value);\n } else {\n getValue2 = () => value;\n }\n setters.push((attrs) => {\n attrs[attr] = getValue2();\n });\n }\n }\n return () => {\n const attrs = Array.isArray(unparsedAttrs) ? [] : {};\n setters.forEach((setter) => setter(attrs));\n return attrs;\n };\n }\n function parseNode(library2, _node) {\n let element = null;\n let attrs = () => null;\n let condition = false;\n let children = null;\n let alternate = null;\n let iterator = null;\n let resolve = false;\n const node = sugar(_node);\n if (isDOM(node)) {\n element = node.$el;\n attrs = node.$el !== \"text\" ? parseAttrs(node.attrs, node.bind) : () => null;\n } else if (isComponent(node)) {\n if (typeof node.$cmp === \"string\") {\n if (has(library2, node.$cmp)) {\n element = library2[node.$cmp];\n } else {\n element = node.$cmp;\n resolve = true;\n }\n } else {\n element = node.$cmp;\n }\n attrs = parseAttrs(node.props, node.bind);\n } else if (isConditional(node)) {\n [condition, children, alternate] = parseCondition(library2, node);\n }\n if (!isConditional(node) && \"if\" in node) {\n condition = provider(compile(node.if));\n } else if (!isConditional(node) && element === null) {\n condition = () => true;\n }\n if (\"children\" in node && node.children) {\n if (typeof node.children === \"string\") {\n if (node.children.startsWith(\"$slots.\")) {\n element = element === \"text\" ? \"slot\" : element;\n children = provider(compile(node.children));\n } else if (node.children.startsWith(\"$\") && node.children.length > 1) {\n const value = provider(compile(node.children));\n children = () => String(value());\n } else {\n children = () => String(node.children);\n }\n } else if (Array.isArray(node.children)) {\n children = createElements(library2, node.children);\n } else {\n const [childCondition, c, a] = parseCondition(library2, node.children);\n children = (iterationData) => childCondition && childCondition() ? c && c(iterationData) : a && a(iterationData);\n }\n }\n if (isComponent(node)) {\n if (children) {\n const produceChildren = children;\n children = (iterationData) => {\n return {\n default(slotData2, key) {\n const currentKey = instanceKey;\n if (key)\n instanceKey = key;\n if (slotData2)\n instanceScopes.get(instanceKey)?.unshift(slotData2);\n if (iterationData)\n instanceScopes.get(instanceKey)?.unshift(iterationData);\n const c = produceChildren(iterationData);\n if (slotData2)\n instanceScopes.get(instanceKey)?.shift();\n if (iterationData)\n instanceScopes.get(instanceKey)?.shift();\n instanceKey = currentKey;\n return c;\n }\n };\n };\n children.slot = true;\n } else {\n children = () => ({});\n }\n }\n if (\"for\" in node && node.for) {\n const values = node.for.length === 3 ? node.for[2] : node.for[1];\n const getValues = typeof values === \"string\" && values.startsWith(\"$\") ? provider(compile(values)) : () => values;\n iterator = [\n getValues,\n node.for[0],\n node.for.length === 3 ? String(node.for[1]) : null\n ];\n }\n return [condition, element, attrs, children, alternate, iterator, resolve];\n }\n function createSlots(children, iterationData) {\n const slots = children(iterationData);\n const currentKey = instanceKey;\n return Object.keys(slots).reduce((allSlots, slotName) => {\n const slotFn = slots && slots[slotName];\n allSlots[slotName] = (data) => {\n return slotFn && slotFn(data, currentKey) || null;\n };\n return allSlots;\n }, {});\n }\n function createElement(library2, node) {\n const [condition, element, attrs, children, alternate, iterator, resolve] = parseNode(library2, node);\n let createNodes = (iterationData) => {\n if (condition && element === null && children) {\n return condition() ? children(iterationData) : alternate && alternate(iterationData);\n }\n if (element && (!condition || condition())) {\n if (element === \"text\" && children) {\n return createTextVNode(String(children()));\n }\n if (element === \"slot\" && children)\n return children(iterationData);\n const el = resolve ? resolveComponent(element) : element;\n const slots = children?.slot ? createSlots(children, iterationData) : null;\n return h(\n el,\n attrs(),\n slots || (children ? children(iterationData) : [])\n );\n }\n return typeof alternate === \"function\" ? alternate(iterationData) : alternate;\n };\n if (iterator) {\n const repeatedNode = createNodes;\n const [getValues, valueName, keyName] = iterator;\n createNodes = () => {\n const _v = getValues();\n const values = Number.isFinite(_v) ? Array(Number(_v)).fill(0).map((_, i) => i) : _v;\n const fragment = [];\n if (typeof values !== \"object\")\n return null;\n const instanceScope = instanceScopes.get(instanceKey) || [];\n const isArray = Array.isArray(values);\n for (const key in values) {\n if (isArray && key in Array.prototype)\n continue;\n const iterationData = Object.defineProperty(\n {\n ...instanceScope.reduce(\n (previousIterationData, scopedData) => {\n if (previousIterationData.__idata) {\n return { ...previousIterationData, ...scopedData };\n }\n return scopedData;\n },\n {}\n ),\n [valueName]: values[key],\n ...keyName !== null ? { [keyName]: isArray ? Number(key) : key } : {}\n },\n \"__idata\",\n { enumerable: false, value: true }\n );\n instanceScope.unshift(iterationData);\n fragment.push(repeatedNode.bind(null, iterationData)());\n instanceScope.shift();\n }\n return fragment;\n };\n }\n return createNodes;\n }\n function createElements(library2, schema2) {\n if (Array.isArray(schema2)) {\n const els = schema2.map(createElement.bind(null, library2));\n return (iterationData) => els.map((element2) => element2(iterationData));\n }\n const element = createElement(library2, schema2);\n return (iterationData) => element(iterationData);\n }\n const providers = [];\n function provider(compiled, hints = {}) {\n const compiledFns = /* @__PURE__ */ new WeakMap();\n providers.push((callback, key) => {\n compiledFns.set(\n key,\n compiled.provide((tokens) => callback(tokens, hints))\n );\n });\n return () => compiledFns.get(instanceKey)();\n }\n function createInstance(providerCallback, key) {\n memoKey ?? (memoKey = toMemoKey(schema));\n const [render, compiledProviders] = has(memo, memoKey) ? memo[memoKey] : [createElements(library, schema), providers];\n if (!isServer2) {\n memoKeys[memoKey] ?? (memoKeys[memoKey] = 0);\n memoKeys[memoKey]++;\n memo[memoKey] = [render, compiledProviders];\n }\n compiledProviders.forEach((compiledProvider) => {\n compiledProvider(providerCallback, key);\n });\n return () => {\n instanceKey = key;\n return render();\n };\n }\n return createInstance;\n}\nfunction useScope(token3, defaultValue) {\n const scopedData = instanceScopes.get(instanceKey) || [];\n let scopedValue = void 0;\n if (scopedData.length) {\n scopedValue = getValue(scopedData, token3.split(\".\"));\n }\n return scopedValue === void 0 ? defaultValue : scopedValue;\n}\nfunction slotData(data, key) {\n return new Proxy(data, {\n get(...args) {\n let data2 = void 0;\n const property = args[1];\n if (typeof property === \"string\") {\n const prevKey = instanceKey;\n instanceKey = key;\n data2 = useScope(property, void 0);\n instanceKey = prevKey;\n }\n return data2 !== void 0 ? data2 : Reflect.get(...args);\n }\n });\n}\nfunction createRenderFn(instanceCreator, data, instanceKey2) {\n return instanceCreator(\n (requirements, hints = {}) => {\n return requirements.reduce((tokens, token3) => {\n if (token3.startsWith(\"slots.\")) {\n const slot = token3.substring(6);\n const hasSlot = () => data.slots && has(data.slots, slot) && typeof data.slots[slot] === \"function\";\n if (hints.if) {\n tokens[token3] = hasSlot;\n } else if (data.slots) {\n const scopedData = slotData(data, instanceKey2);\n tokens[token3] = () => hasSlot() ? data.slots[slot](scopedData) : null;\n }\n } else {\n const value = getRef(token3, data);\n tokens[token3] = () => useScope(token3, value.value);\n }\n return tokens;\n }, {});\n },\n instanceKey2\n );\n}\nfunction clean(schema, memoKey, instanceKey2) {\n memoKey ?? (memoKey = toMemoKey(schema));\n memoKeys[memoKey]--;\n if (memoKeys[memoKey] === 0) {\n delete memoKeys[memoKey];\n const [, providers] = memo[memoKey];\n delete memo[memoKey];\n providers.length = 0;\n }\n instanceScopes.delete(instanceKey2);\n}\nfunction toMemoKey(schema) {\n return JSON.stringify(schema, (_, value) => {\n if (typeof value === \"function\") {\n return value.toString();\n }\n return value;\n });\n}\nvar FormKitSchema = /* @__PURE__ */ defineComponent({\n name: \"FormKitSchema\",\n props: {\n schema: {\n type: [Array, Object],\n required: true\n },\n data: {\n type: Object,\n default: () => ({})\n },\n library: {\n type: Object,\n default: () => ({})\n },\n memoKey: {\n type: String,\n required: false\n }\n },\n emits: [\"mounted\"],\n setup(props, context) {\n const instance = getCurrentInstance();\n let instanceKey2 = {};\n instanceScopes.set(instanceKey2, []);\n const library = { FormKit: markRaw(FormKit_default), ...props.library };\n let provider = parseSchema(library, props.schema, props.memoKey);\n let render;\n let data;\n if (!isServer2) {\n watch(\n () => props.schema,\n (newSchema, oldSchema) => {\n const oldKey = instanceKey2;\n instanceKey2 = {};\n instanceScopes.set(instanceKey2, []);\n provider = parseSchema(library, props.schema, props.memoKey);\n render = createRenderFn(provider, data, instanceKey2);\n if (newSchema === oldSchema) {\n (instance?.proxy?.$forceUpdate)();\n }\n clean(props.schema, props.memoKey, oldKey);\n },\n { deep: true }\n );\n }\n watchEffect(() => {\n data = Object.assign(reactive(props.data ?? {}), {\n slots: context.slots\n });\n context.slots;\n render = createRenderFn(provider, data, instanceKey2);\n });\n function cleanUp() {\n clean(props.schema, props.memoKey, instanceKey2);\n if (data) {\n if (data.node)\n data.node.destroy();\n data.slots = null;\n data = null;\n }\n render = null;\n }\n onMounted(() => context.emit(\"mounted\"));\n onUnmounted(cleanUp);\n onSSRComplete(getCurrentInstance()?.appContext.app, cleanUp);\n return () => render ? render() : null;\n }\n});\nvar FormKitSchema_default = FormKitSchema;\nvar isServer3 = typeof window === \"undefined\";\nvar parentSymbol = Symbol(\"FormKitParent\");\nvar componentSymbol = Symbol(\"FormKitComponentCallback\");\nvar currentSchemaNode = null;\nvar getCurrentSchemaNode = () => currentSchemaNode;\nfunction FormKit(props, context) {\n const node = useInput(props, context);\n if (!node.props.definition)\n error(600, node);\n if (node.props.definition.component) {\n return () => h(\n node.props.definition?.component,\n {\n context: node.context\n },\n { ...context.slots }\n );\n }\n const schema = ref([]);\n let memoKey = node.props.definition.schemaMemoKey;\n const generateSchema = () => {\n const schemaDefinition = node.props?.definition?.schema;\n if (!schemaDefinition)\n error(601, node);\n if (typeof schemaDefinition === \"function\") {\n currentSchemaNode = node;\n schema.value = schemaDefinition({ ...props.sectionsSchema || {} });\n currentSchemaNode = null;\n if (memoKey && props.sectionsSchema || \"memoKey\" in schemaDefinition && typeof schemaDefinition.memoKey === \"string\") {\n memoKey = (memoKey ?? schemaDefinition?.memoKey) + JSON.stringify(props.sectionsSchema);\n }\n } else {\n schema.value = schemaDefinition;\n }\n };\n generateSchema();\n if (!isServer3) {\n node.on(\"schema\", () => {\n memoKey += \"â™»ï¸\";\n generateSchema();\n });\n }\n context.emit(\"node\", node);\n const definitionLibrary = node.props.definition.library;\n const library = {\n FormKit: markRaw(formkitComponent),\n ...definitionLibrary,\n ...props.library ?? {}\n };\n function didMount() {\n node.emit(\"mounted\");\n }\n context.expose({ node });\n return () => h(\n FormKitSchema,\n {\n schema: schema.value,\n data: node.context,\n onMounted: didMount,\n library,\n memoKey\n },\n { ...context.slots }\n );\n}\nvar formkitComponent = /* @__PURE__ */ defineComponent(\n FormKit,\n {\n props: runtimeProps,\n inheritAttrs: false\n }\n);\nvar FormKit_default = formkitComponent;\nvar rootSymbol = Symbol();\nvar FormKitRoot = /* @__PURE__ */ defineComponent((_p, context) => {\n const boundary = ref(null);\n const showBody = ref(false);\n const shadowRoot = ref(void 0);\n const stopWatch2 = watch(boundary, (el) => {\n let parent = el;\n let root = null;\n while (parent = parent?.parentNode) {\n root = parent;\n if (root instanceof ShadowRoot || root instanceof Document) {\n foundRoot(root);\n break;\n }\n }\n stopWatch2();\n showBody.value = true;\n });\n provide(rootSymbol, shadowRoot);\n function foundRoot(root) {\n shadowRoot.value = root;\n }\n return () => showBody.value && context.slots.default ? context.slots.default() : h(\"template\", { ref: boundary });\n});\nfunction createPlugin(app, options) {\n app.component(options.alias || \"FormKit\", FormKit_default).component(options.schemaAlias || \"FormKitSchema\", FormKitSchema_default);\n return {\n get: getNode,\n setLocale: (locale) => {\n if (options.config?.rootConfig) {\n options.config.rootConfig.locale = locale;\n }\n },\n clearErrors,\n setErrors,\n submit: submitForm,\n reset\n };\n}\nvar optionsSymbol = Symbol.for(\"FormKitOptions\");\nvar configSymbol = Symbol.for(\"FormKitConfig\");\nvar plugin = {\n install(app, _options) {\n const options = Object.assign(\n {\n alias: \"FormKit\",\n schemaAlias: \"FormKitSchema\"\n },\n typeof _options === \"function\" ? _options() : _options\n );\n const rootConfig = createConfig(options.config || {});\n options.config = { rootConfig };\n app.config.globalProperties.$formkit = createPlugin(app, options);\n app.provide(optionsSymbol, options);\n app.provide(configSymbol, rootConfig);\n if (typeof window !== \"undefined\") {\n globalThis.__FORMKIT_CONFIGS__ = (globalThis.__FORMKIT_CONFIGS__ || []).concat([rootConfig]);\n }\n }\n};\n\n// packages/vue/src/composables/useInput.ts\nvar isBrowser = typeof window !== \"undefined\";\nvar pseudoProps = [\n // Boolean props\n \"ignore\",\n \"disabled\",\n \"preserve\",\n // String props\n \"help\",\n \"label\",\n /^preserve(-e|E)rrors/,\n /^[a-z]+(?:-visibility|Visibility|-behavior|Behavior)$/,\n /^[a-zA-Z-]+(?:-class|Class)$/,\n \"prefixIcon\",\n \"suffixIcon\",\n /^[a-zA-Z-]+(?:-icon|Icon)$/\n];\nvar boolProps = [\"disabled\", \"ignore\", \"preserve\"];\nfunction classesToNodeProps(node, props) {\n if (props.classes) {\n Object.keys(props.classes).forEach(\n (key) => {\n if (typeof key === \"string\") {\n node.props[`_${key}Class`] = props.classes[key];\n if (isObject(props.classes[key]) && key === \"inner\")\n Object.values(props.classes[key]);\n }\n }\n );\n }\n}\nfunction onlyListeners(props) {\n if (!props)\n return {};\n const knownListeners = [\"Submit\", \"SubmitRaw\", \"SubmitInvalid\"].reduce(\n (listeners, listener) => {\n const name = `on${listener}`;\n if (name in props) {\n if (typeof props[name] === \"function\") {\n listeners[name] = props[name];\n }\n }\n return listeners;\n },\n {}\n );\n return knownListeners;\n}\nfunction useInput(props, context, options = {}) {\n const config = Object.assign({}, inject(optionsSymbol) || {}, options);\n const __root = inject(rootSymbol, ref(isBrowser ? document : void 0));\n const __cmpCallback = inject(componentSymbol, () => {\n });\n const instance = getCurrentInstance();\n const listeners = onlyListeners(instance?.vnode.props);\n const isVModeled = [\"modelValue\", \"model-value\"].some(\n (prop) => prop in (instance?.vnode.props ?? {})\n );\n let isMounted = false;\n onMounted(() => {\n isMounted = true;\n });\n const value = props.modelValue !== void 0 ? props.modelValue : cloneAny(context.attrs.value);\n function createInitialProps() {\n const initialProps2 = {\n ...nodeProps(props),\n ...listeners,\n type: props.type ?? \"text\",\n __root: __root.value,\n __slots: context.slots\n };\n const attrs = except(nodeProps(context.attrs), pseudoProps);\n if (!attrs.key)\n attrs.key = token();\n initialProps2.attrs = attrs;\n const propValues = only(nodeProps(context.attrs), pseudoProps);\n for (const propName in propValues) {\n if (boolProps.includes(propName) && propValues[propName] === \"\") {\n propValues[propName] = true;\n }\n initialProps2[camel(propName)] = propValues[propName];\n }\n const classesProps = { props: {} };\n classesToNodeProps(classesProps, props);\n Object.assign(initialProps2, classesProps.props);\n if (typeof initialProps2.type !== \"string\") {\n initialProps2.definition = initialProps2.type;\n delete initialProps2.type;\n }\n return initialProps2;\n }\n const initialProps = createInitialProps();\n const parent = initialProps.ignore ? null : props.parent || inject(parentSymbol, null);\n const node = createNode(\n extend(\n config || {},\n {\n name: props.name || void 0,\n value,\n parent,\n plugins: (config.plugins || []).concat(props.plugins ?? []),\n config: props.config || {},\n props: initialProps,\n index: props.index,\n sync: !!undefine(context.attrs.sync || context.attrs.dynamic)\n },\n false,\n true\n )\n );\n __cmpCallback(node);\n if (!node.props.definition)\n error(600, node);\n const lateBoundProps = ref(\n new Set(\n Array.isArray(node.props.__propDefs) ? node.props.__propDefs : Object.keys(node.props.__propDefs ?? {})\n )\n );\n node.on(\n \"added-props\",\n ({ payload: lateProps }) => {\n const propNames = Array.isArray(lateProps) ? lateProps : Object.keys(lateProps ?? {});\n propNames.forEach((newProp) => lateBoundProps.value.add(newProp));\n }\n );\n const pseudoPropNames = computed(\n () => pseudoProps.concat([...lateBoundProps.value]).reduce((names, prop) => {\n if (typeof prop === \"string\") {\n names.push(camel(prop));\n names.push(kebab(prop));\n } else {\n names.push(prop);\n }\n return names;\n }, [])\n );\n watchEffect(() => classesToNodeProps(node, props));\n const passThrough = nodeProps(props);\n for (const prop in passThrough) {\n watch(\n () => props[prop],\n () => {\n if (props[prop] !== void 0) {\n node.props[prop] = props[prop];\n }\n }\n );\n }\n watchEffect(() => {\n node.props.__root = __root.value;\n });\n const attributeWatchers = /* @__PURE__ */ new Set();\n const possibleProps = nodeProps(context.attrs);\n watchEffect(() => {\n watchAttributes(only(possibleProps, pseudoPropNames.value));\n });\n function watchAttributes(attrProps) {\n attributeWatchers.forEach((stop) => {\n stop();\n attributeWatchers.delete(stop);\n });\n for (const prop in attrProps) {\n const camelName = camel(prop);\n attributeWatchers.add(\n watch(\n () => context.attrs[prop],\n () => {\n node.props[camelName] = context.attrs[prop];\n }\n )\n );\n }\n }\n watchEffect(() => {\n const attrs = except(nodeProps(context.attrs), pseudoPropNames.value);\n if (\"multiple\" in attrs)\n attrs.multiple = undefine(attrs.multiple);\n if (typeof attrs.onBlur === \"function\") {\n attrs.onBlur = oncePerTick(attrs.onBlur);\n }\n node.props.attrs = Object.assign({}, node.props.attrs || {}, attrs);\n });\n watchEffect(() => {\n const messages3 = (props.errors ?? []).map(\n (error3) => /* @__PURE__ */ createMessage({\n key: slugify(error3),\n type: \"error\",\n value: error3,\n meta: { source: \"prop\" }\n })\n );\n node.store.apply(\n messages3,\n (message3) => message3.type === \"error\" && message3.meta.source === \"prop\"\n );\n });\n if (node.type !== \"input\") {\n const sourceKey = `${node.name}-prop`;\n watchEffect(() => {\n const inputErrors = props.inputErrors ?? {};\n const keys = Object.keys(inputErrors);\n if (!keys.length)\n node.clearErrors(true, sourceKey);\n const messages3 = keys.reduce((messages4, key) => {\n let value2 = inputErrors[key];\n if (typeof value2 === \"string\")\n value2 = [value2];\n if (Array.isArray(value2)) {\n messages4[key] = value2.map(\n (error3) => /* @__PURE__ */ createMessage({\n key: error3,\n type: \"error\",\n value: error3,\n meta: { source: sourceKey }\n })\n );\n }\n return messages4;\n }, {});\n node.store.apply(\n messages3,\n (message3) => message3.type === \"error\" && message3.meta.source === sourceKey\n );\n });\n }\n watchEffect(() => Object.assign(node.config, props.config));\n if (node.type !== \"input\") {\n provide(parentSymbol, node);\n }\n let clonedValueBeforeVmodel = void 0;\n node.on(\"modelUpdated\", () => {\n context.emit(\"inputRaw\", node.context?.value, node);\n if (isMounted) {\n context.emit(\"input\", node.context?.value, node);\n }\n if (isVModeled && node.context) {\n clonedValueBeforeVmodel = cloneAny(node.value);\n context.emit(\"update:modelValue\", shallowClone(node.value));\n }\n });\n if (isVModeled) {\n watch(\n toRef(props, \"modelValue\"),\n (value2) => {\n if (!eq(clonedValueBeforeVmodel, value2)) {\n node.input(value2, false);\n }\n },\n { deep: true }\n );\n if (node.value !== value) {\n node.emit(\"modelUpdated\");\n }\n }\n onBeforeUnmount(() => node.destroy());\n return node;\n}\nvar totalCreated = 1;\nfunction isComponent2(obj) {\n return typeof obj === \"function\" && obj.length === 2 || typeof obj === \"object\" && !Array.isArray(obj) && !(\"$el\" in obj) && !(\"$cmp\" in obj) && !(\"if\" in obj);\n}\nfunction createInput(schemaOrComponent, definitionOptions = {}, sectionsSchema = {}) {\n const definition3 = {\n type: \"input\",\n ...definitionOptions\n };\n let schema;\n if (isComponent2(schemaOrComponent)) {\n const cmpName = `SchemaComponent${totalCreated++}`;\n schema = createSection(\"input\", () => ({\n $cmp: cmpName,\n props: {\n context: \"$node.context\"\n }\n }));\n definition3.library = { [cmpName]: markRaw(schemaOrComponent) };\n } else if (typeof schemaOrComponent === \"function\") {\n schema = schemaOrComponent;\n } else {\n schema = createSection(\"input\", () => cloneAny(schemaOrComponent));\n }\n definition3.schema = useSchema(schema || \"Schema undefined\", sectionsSchema);\n if (!definition3.schemaMemoKey) {\n definition3.schemaMemoKey = `${Math.random()}`;\n }\n return definition3;\n}\n\n// packages/vue/src/composables/defineFormKitConfig.ts\nfunction defineFormKitConfig(config) {\n return () => typeof config === \"function\" ? config() : config;\n}\nvar inputList = {};\nvar schemas = {};\nvar classes = {\n container: `\n formkit-kitchen-sink \n p-8\n `,\n tabs: `\n formkit-tabs \n mt-4 \n mr-[min(350px,25vw)]\n `,\n tab: `\n formkit-kitchen-sink-tab\n inline-block\n mb-4\n -mr-px\n cursor-pointer\n px-4\n py-2\n border\n border-neutral-200\n text-neutral-800\n data-[active]:bg-neutral-800\n data-[active]:border-neutral-800\n data-[active]:text-neutral-50\n hover:bg-neutral-100\n hover:text-neutral-900\n dark:border-neutral-700\n dark:text-neutral-50\n dark:data-[active]:bg-neutral-100\n dark:data-[active]:border-neutral-100\n dark:data-[active]:text-neutral-800\n dark:hover:bg-neutral-800\n dark:hover:text-neutral-50\n `,\n filterContainer: `\n formkit-filter-container\n grid\n grid-cols-[repeat(auto-fit,300px)]\n mr-[min(350px,25vw)]\n -mt-4\n mb-8\n px-4\n pt-8\n pb-4\n border\n relative\n -translate-y-px\n max-w-[1000px]\n border-neutral-200\n dark:border-neutral-700\n `,\n filterGroup: `\n formkit-filter-group\n mr-8\n mb-8\n [&_legend]:text-lg\n [&_ul]:columns-2\n [&_ul>li:first-child]:[column-span:all]\n [&_ul>li:first-child]:mt-2\n [&_ul>li:first-child]:mb-2\n [&_ul>li:first-child]:pb-2\n [&_ul>li:first-child]:border-b\n [&_ul>li:first-child]:border-neutral-200\n dark:[&_ul>li:first-child]:border-neutral-700\n `,\n formContainer: `\n formkit-form-container\n w-full\n bg-white\n rounded\n border\n border-neutral-100\n shadow-lg\n max-w-[800px]\n p-[min(5vw,5rem)]\n dark:bg-neutral-900\n dark:border-neutral-800\n dark:shadow-3xl\n [&_form>h1]:text-2xl\n [&_form>h1]:mb-4\n [&_form>h1]:font-bold\n [&_form>h1+p]:text-base\n [&_form>h1+p]:mb-4\n [&_form>h1+p]:-mt-2\n [&_form_.double]:flex\n [&_form_.double>*]:w-1/2\n [&_form_.double>*:first-child]:mr-2\n [&_form_.triple]:flex\n [&_form_.triple>*]:w-1/3\n [&_form_.triple>*:first-child]:mr-2\n [&_form_.triple>*:last-child]:ml-2\n `,\n inputs: `formkit-inputs`,\n specimen: `\n formkit-specimen \n flex \n flex-col \n p-2 \n max-w-[75vw]\n `,\n inputSection: `\n group/section\n formkit-input-section \n mr-[min(325px,25vw)]\n `,\n specimenGroup: `\n formkit-specimen-group\n grid\n mb-16\n grid-cols-[repeat(auto-fit,400px)]\n group-data-[type=\"transferlist\"]/section:grid-cols-[repeat(auto-fit,650px)]\n group-data-[type=\"multi-step\"]/section:grid-cols-[repeat(auto-fit,550px)]\n `,\n inputType: `\n formkit-input-type\n block\n font-bold\n text-neutral-900\n border-b\n border-neutral-100\n text-3xl\n mb-8\n pb-2\n capitalize\n dark:border-neutral-800 \n dark:text-neutral-50\n `\n};\nasync function fetchInputList() {\n const response = await fetch(\n \"https://raw.githubusercontent.com/formkit/input-schemas/master/index.json\"\n );\n const json = await response.json();\n return json;\n}\nasync function fetchInputSchema(input) {\n try {\n const response = await fetch(\n `https://raw.githubusercontent.com/formkit/input-schemas/master/schemas/${input}.json`\n );\n const json = await response.json();\n return json;\n } catch (error3) {\n console.error(error3);\n }\n}\nvar FormKitKitchenSink = /* @__PURE__ */ defineComponent({\n name: \"FormKitKitchenSink\",\n props: {\n schemas: {\n type: Array,\n required: false\n },\n pro: {\n type: Boolean,\n default: true\n },\n addons: {\n type: Boolean,\n default: true\n },\n forms: {\n type: Boolean,\n default: true\n },\n navigation: {\n type: Boolean,\n default: true\n }\n },\n async setup(props) {\n onMounted(() => {\n const filterNode = getNode(\"filter-checkboxes\");\n data.filters = computed(() => {\n if (!filterNode?.context)\n return [];\n const filters = filterNode.context.value;\n const filterValues = [];\n Object.keys(filters).forEach((key) => {\n filterValues.push(...filters[key]);\n });\n return filterValues;\n });\n });\n inputList = Object.keys(inputList).length ? inputList : await fetchInputList();\n const promises = [];\n const activeTab = ref(\"\");\n const inputCheckboxes = computed(() => {\n const inputGroups = {\n core: { label: \"Inputs\", name: \"core\", inputs: inputList.core }\n };\n if (props.pro) {\n inputGroups.pro = {\n label: \"Pro Inputs\",\n name: \"pro\",\n inputs: inputList.pro\n };\n }\n if (props.addons) {\n inputGroups.addons = {\n label: \"Add-ons\",\n name: \"addons\",\n inputs: inputList.addons\n };\n }\n return inputGroups;\n });\n if (!props.schemas) {\n const coreInputPromises = inputList.core.map(async (schema) => {\n const response = await fetchInputSchema(schema);\n schemas[schema] = response;\n });\n promises.push(...coreInputPromises);\n if (props.forms) {\n const formsPromises = inputList.forms.map(async (schema) => {\n const schemaName = `form/${schema}`;\n const response = await fetchInputSchema(schemaName);\n schemas[schemaName] = response;\n });\n promises.push(...formsPromises);\n }\n if (props.pro) {\n const proInputPromises = inputList.pro.map(async (schema) => {\n const response = await fetchInputSchema(schema);\n schemas[schema] = response;\n });\n promises.push(...proInputPromises);\n }\n if (props.addons) {\n const addonPromises = inputList.addons.map(async (schema) => {\n const response = await fetchInputSchema(schema);\n schemas[schema] = response;\n });\n promises.push(...addonPromises);\n }\n } else {\n const schemaPromises = props.schemas.map(async (schema) => {\n const response = await fetchInputSchema(`${schema}`);\n schemas[`${schema}`] = response;\n });\n promises.push(...schemaPromises);\n }\n const selectAll = (node) => {\n let previousValue = [];\n let skip = false;\n if (node.props.type !== \"checkbox\")\n return;\n node.on(\"created\", () => {\n const currentValue = node.value;\n if (Array.isArray(currentValue) && currentValue.length === 1 && currentValue[0] === \"all\") {\n node.input(\n node.props.options.map((option) => {\n if (typeof option !== \"string\")\n return option.value;\n return option;\n })\n );\n }\n previousValue = Array.isArray(node.value) ? node.value : [];\n });\n node.on(\"commit\", ({ payload }) => {\n if (skip) {\n skip = false;\n return;\n }\n if (!Array.isArray(payload))\n return;\n const previousValueHadAll = previousValue.includes(\"all\");\n const currentValueHasAll = payload.includes(\"all\");\n if (!previousValueHadAll && currentValueHasAll) {\n const computedOptions = node.props.options.map(\n (option) => {\n if (typeof option !== \"string\")\n return option.value;\n return option;\n }\n );\n node.input(computedOptions);\n previousValue = computedOptions;\n return;\n }\n if (previousValueHadAll && !currentValueHasAll) {\n node.input([]);\n previousValue = [];\n return;\n }\n const valueMinusAll = payload.filter((value) => value !== \"all\");\n if (valueMinusAll.length < node.props.options.length - 1 && currentValueHasAll) {\n node.input(valueMinusAll);\n previousValue = valueMinusAll;\n skip = true;\n return;\n }\n if (valueMinusAll.length === node.props.options.length - 1 && !currentValueHasAll) {\n const computedOptions = node.props.options.map(\n (option) => {\n if (typeof option !== \"string\")\n return option.value;\n return option;\n }\n );\n node.input(computedOptions);\n previousValue = Array.isArray(node.value) ? node.value : [];\n return;\n }\n });\n };\n const data = reactive({\n twClasses: classes,\n basicOptions: Array.from({ length: 15 }, (_, i) => `Option ${i + 1}`),\n asyncLoader: async () => {\n return await new Promise(() => {\n });\n },\n paginatedLoader: async ({\n page,\n hasNextPage\n }) => {\n const base = (page - 1) * 10;\n hasNextPage();\n return Array.from({ length: 10 }, (_, i) => `Option ${base + i + 1}`);\n },\n formSubmitHandler: async (data2) => {\n await new Promise((resolve) => setTimeout(resolve, 1e3));\n alert(\"Form submitted (fake) — check console for data object\");\n console.log(\"Form data:\", data2);\n },\n includes: (array, value) => {\n if (!Array.isArray(array))\n return false;\n return array.includes(value);\n },\n checkboxPlugins: [selectAll],\n filters: []\n });\n await Promise.all(promises);\n const inputKeys = Object.keys(schemas);\n const formNames = inputKeys.map((key) => {\n if (key.startsWith(\"form/\")) {\n switch (key) {\n case \"form/tshirt\":\n return {\n id: key,\n name: \"Order Form\"\n };\n default:\n const name = key.replace(\"form/\", \"\");\n return {\n id: key,\n name: name.charAt(0).toUpperCase() + name.slice(1) + \" Form\"\n };\n }\n }\n return {\n id: key,\n name: \"\"\n };\n });\n const filteredFormNames = formNames.filter((form) => form.name !== \"\");\n const forms = inputKeys.filter((schema) => {\n return schema.startsWith(\"form/\");\n });\n const inputs = inputKeys.filter(\n (schema) => !schema.startsWith(\"form/\")\n );\n const tabs = [];\n if (inputs.length) {\n tabs.push({\n id: \"kitchen-sink\",\n name: \"Kitchen Sink\"\n });\n }\n if (forms.length) {\n tabs.push(...filteredFormNames.sort((a, b) => a.name > b.name ? 1 : -1));\n }\n if (tabs.length) {\n activeTab.value = tabs[0].id;\n }\n const kitchenSinkRenders = computed(() => {\n inputs.sort();\n const schemaDefinitions = inputs.reduce(\n (schemaDefinitions2, inputName) => {\n const schemaDefinition = schemas[inputName];\n schemaDefinitions2.push({\n $el: \"div\",\n if: '$includes($filters, \"' + inputName + '\")',\n attrs: {\n key: inputName,\n class: \"$twClasses.inputSection\",\n \"data-type\": inputName\n },\n children: [\n {\n $el: \"h2\",\n attrs: {\n class: \"$twClasses.inputType\"\n },\n children: inputName\n },\n {\n $el: \"div\",\n attrs: {\n class: \"$twClasses.specimenGroup\"\n },\n children: [\n ...(Array.isArray(schemaDefinition) ? schemaDefinition : [schemaDefinition]).map((specimen) => {\n return {\n $el: \"div\",\n attrs: {\n class: \"$twClasses.specimen\"\n },\n children: [specimen]\n };\n })\n ]\n }\n ]\n });\n return schemaDefinitions2;\n },\n []\n );\n return h(\n KeepAlive,\n {},\n {\n default: () => {\n return activeTab.value === \"kitchen-sink\" ? h(FormKitSchema, { schema: schemaDefinitions, data }) : null;\n }\n }\n );\n });\n const formRenders = computed(() => {\n return filteredFormNames.map((form) => {\n const schemaDefinition = schemas[form.id];\n return h(\n \"div\",\n {\n key: form.id\n },\n activeTab.value === form.id ? [\n h(\n \"div\",\n {\n class: classes.formContainer\n },\n [\n h(FormKitSchema, {\n schema: schemaDefinition[0],\n data\n })\n ]\n )\n ] : \"\"\n );\n }).filter((form) => form.children);\n });\n const tabBar = computed(() => {\n return h(\n \"div\",\n {\n key: \"tab-bar\",\n class: classes.tabs\n },\n tabs.map((tab) => {\n return h(\n \"span\",\n {\n class: classes.tab,\n key: tab.id,\n \"data-tab\": tab.id,\n \"data-active\": activeTab.value === tab.id || void 0,\n onClick: () => {\n activeTab.value = tab.id;\n }\n },\n tab.name\n );\n })\n );\n });\n const filterCheckboxes = computed(() => {\n const createCheckboxSchema = (inputGroup) => {\n return {\n $el: \"div\",\n attrs: {\n class: \"$twClasses.filterGroup\"\n },\n children: [\n {\n $formkit: \"checkbox\",\n name: inputGroup.name,\n label: inputGroup.label,\n plugins: \"$checkboxPlugins\",\n value: [\"all\"],\n options: [\n {\n label: \"All\",\n value: \"all\"\n },\n ...Array.isArray(inputGroup.inputs) ? inputGroup.inputs : []\n ]\n }\n ]\n };\n };\n const filterSchema = h(FormKitSchema, {\n key: \"filter-checkboxes\",\n data,\n schema: {\n $formkit: \"group\",\n id: \"filter-checkboxes\",\n children: [\n {\n $el: \"div\",\n attrs: {\n class: \"$twClasses.filterContainer\"\n },\n children: Object.keys(inputCheckboxes.value).map((key) => {\n const inputGroup = inputCheckboxes.value[key];\n return createCheckboxSchema(inputGroup);\n })\n }\n ]\n }\n });\n return h(\n KeepAlive,\n {},\n {\n default: () => {\n if (!(tabs.find((tab) => tab.id === \"kitchen-sink\") && activeTab.value === \"kitchen-sink\")) {\n return null;\n }\n return filterSchema;\n }\n }\n );\n });\n return () => {\n return h(\n \"div\",\n {\n class: classes.container\n },\n [\n tabs.length > 1 ? tabBar.value : void 0,\n filterCheckboxes.value,\n ...formRenders.value,\n kitchenSinkRenders.value\n ]\n );\n };\n }\n});\nvar messages = createSection(\"messages\", () => ({\n $el: \"ul\",\n if: \"$fns.length($messages)\"\n}));\nvar message = createSection(\"message\", () => ({\n $el: \"li\",\n for: [\"message\", \"$messages\"],\n attrs: {\n key: \"$message.key\",\n id: `$id + '-' + $message.key`,\n \"data-message-type\": \"$message.type\"\n }\n}));\nvar definition = messages(message(\"$message.value\"));\nvar FormKitMessages = /* @__PURE__ */ defineComponent({\n props: {\n node: {\n type: Object,\n required: false\n },\n sectionsSchema: {\n type: Object,\n default: {}\n },\n defaultPosition: {\n type: [String, Boolean],\n default: false\n },\n library: {\n type: Object,\n default: () => ({})\n }\n },\n setup(props, context) {\n const node = computed(() => {\n return props.node || inject(parentSymbol, void 0);\n });\n watch(\n node,\n () => {\n if (node.value?.context && !undefine(props.defaultPosition)) {\n node.value.context.defaultMessagePlacement = false;\n }\n },\n { immediate: true }\n );\n const schema = definition(props.sectionsSchema || {});\n const data = computed(() => {\n return {\n messages: node.value?.context?.messages || {},\n fns: node.value?.context?.fns || {},\n classes: node.value?.context?.classes || {}\n };\n });\n return () => node.value?.context ? h(\n FormKitSchema_default,\n { schema, data: data.value, library: props.library },\n { ...context.slots }\n ) : null;\n }\n});\nfunction useConfig(config) {\n const options = Object.assign(\n {\n alias: \"FormKit\",\n schemaAlias: \"FormKitSchema\"\n },\n typeof config === \"function\" ? config() : config\n );\n const rootConfig = createConfig(options.config || {});\n options.config = { rootConfig };\n provide(optionsSymbol, options);\n provide(configSymbol, rootConfig);\n if (typeof window !== \"undefined\") {\n globalThis.__FORMKIT_CONFIGS__ = (globalThis.__FORMKIT_CONFIGS__ || []).concat([rootConfig]);\n }\n}\nvar FormKitProvider = /* @__PURE__ */ defineComponent(\n function FormKitProvider2(props, { slots, attrs }) {\n const options = {};\n if (props.config) {\n useConfig(props.config);\n }\n return () => slots.default ? slots.default(options).map((vnode) => {\n return h(vnode, {\n ...attrs,\n ...vnode.props\n });\n }) : null;\n },\n { props: [\"config\"], name: \"FormKitProvider\", inheritAttrs: false }\n);\nvar FormKitConfigLoader = /* @__PURE__ */ defineComponent(\n async function FormKitConfigLoader2(props, context) {\n let config = {};\n if (props.configFile) {\n const configFile = await import(\n /*@__formkit.config.ts__*/\n /* @vite-ignore */\n /* webpackIgnore: true */\n props.configFile\n );\n config = \"default\" in configFile ? configFile.default : configFile;\n }\n if (typeof config === \"function\") {\n config = config();\n }\n const useDefaultConfig = props.defaultConfig ?? true;\n if (useDefaultConfig) {\n const { defaultConfig: defaultConfig2 } = await Promise.resolve().then(() => (init_defaultConfig(), defaultConfig_exports));\n config = /* @__PURE__ */ defaultConfig2(config);\n }\n return () => h(FormKitProvider, { ...context.attrs, config }, context.slots);\n },\n {\n props: [\"defaultConfig\", \"configFile\"],\n inheritAttrs: false\n }\n);\nvar FormKitLazyProvider = /* @__PURE__ */ defineComponent(\n function FormKitLazyProvider2(props, context) {\n const config = inject(optionsSymbol, null);\n const passthru = (vnode) => {\n return h(vnode, {\n ...context.attrs,\n ...vnode.props\n });\n };\n if (config) {\n return () => context.slots?.default ? context.slots.default().map(passthru) : null;\n }\n const instance = getCurrentInstance();\n if (instance.suspense) {\n return () => h(FormKitConfigLoader, props, {\n default: () => context.slots?.default ? context.slots.default().map(passthru) : null\n });\n }\n return () => h(Suspense, null, {\n ...context.slots,\n default: () => h(FormKitConfigLoader, { ...context.attrs, ...props }, context.slots)\n });\n },\n {\n props: [\"defaultConfig\", \"configFile\"],\n inheritAttrs: false\n }\n);\nfunction useFormKitContext(addressOrEffect, optionalEffect) {\n const address = typeof addressOrEffect === \"string\" ? addressOrEffect : void 0;\n const effect = typeof addressOrEffect === \"function\" ? addressOrEffect : optionalEffect;\n const context = ref();\n const parentNode = inject(parentSymbol, null);\n if (parentNode) {\n if (address) {\n context.value = parentNode.at(address)?.context;\n const root = parentNode.at(\"$root\");\n if (root) {\n const receipt = root.on(\"child.deep\", () => {\n const targetNode = parentNode.at(address);\n if (targetNode && targetNode.context !== context.value) {\n context.value = targetNode.context;\n if (effect)\n effect(context.value);\n }\n });\n onUnmounted(() => {\n root.off(receipt);\n });\n }\n } else {\n context.value = parentNode?.context;\n }\n }\n if (context.value && effect)\n effect(context.value);\n return context;\n}\nfunction useFormKitContextById(id, effect) {\n const context = ref();\n const targetNode = getNode(id);\n if (targetNode)\n context.value = targetNode.context;\n if (!targetNode) {\n const receipt = watchRegistry(id, ({ payload: node }) => {\n if (node) {\n context.value = node.context;\n stopWatch(receipt);\n if (effect)\n effect(context.value);\n }\n });\n }\n if (context.value && effect)\n effect(context.value);\n return context;\n}\nfunction useFormKitNodeById(id, effect) {\n const nodeRef = ref();\n const targetNode = getNode(id);\n if (targetNode)\n nodeRef.value = targetNode;\n if (!targetNode) {\n const receipt = watchRegistry(id, ({ payload: node }) => {\n if (node) {\n nodeRef.value = node;\n stopWatch(receipt);\n if (effect)\n effect(node);\n }\n });\n }\n if (nodeRef.value && effect)\n effect(nodeRef.value);\n return nodeRef;\n}\nvar summary = createSection(\"summary\", () => ({\n $el: \"div\",\n attrs: {\n \"aria-live\": \"polite\"\n }\n}));\nvar summaryInner = createSection(\"summaryInner\", () => ({\n $el: \"div\",\n if: \"$summaries.length && $showSummaries\"\n}));\nvar messages2 = createSection(\"messages\", () => ({\n $el: \"ul\",\n if: \"$summaries.length && $showSummaries\"\n}));\nvar message2 = createSection(\"message\", () => ({\n $el: \"li\",\n for: [\"summary\", \"$summaries\"],\n attrs: {\n key: \"$summary.key\",\n \"data-message-type\": \"$summary.type\"\n }\n}));\nvar summaryHeader = createSection(\"summaryHeader\", () => ({\n $el: \"h2\",\n attrs: {\n id: \"$id\"\n }\n}));\nvar messageLink = createSection(\"messageLink\", () => ({\n $el: \"a\",\n attrs: {\n id: \"$summary.key\",\n href: '$: \"#\" + $summary.id',\n onClick: \"$jumpLink\"\n }\n}));\nvar definition2 = summary(\n summaryInner(\n summaryHeader(\"$summaryHeader\"),\n messages2(message2(messageLink(\"$summary.message\")))\n )\n);\nvar FormKitSummary = /* @__PURE__ */ defineComponent({\n props: {\n node: {\n type: Object,\n required: false\n },\n forceShow: {\n type: Boolean,\n default: false\n },\n sectionsSchema: {\n type: Object,\n default: {}\n }\n },\n emits: {\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\n show: (_summaries) => true\n },\n setup(props, context) {\n const id = `summary-${token()}`;\n const node = computed(() => {\n return props.node || inject(parentSymbol, void 0);\n });\n if (!node)\n throw new Error(\n \"FormKitSummary must have a FormKit parent or use the node prop.\"\n );\n const summaryContexts = ref([]);\n const showSummaries = ref(false);\n const summaries = computed(() => {\n const summarizedMessages = [];\n summaryContexts.value.forEach((context2) => {\n for (const idx in context2.messages) {\n const message3 = context2.messages[idx];\n if (typeof message3.value !== \"string\")\n continue;\n summarizedMessages.push({\n message: message3.value,\n id: context2.id,\n key: `${context2.id}-${message3.key}`,\n type: message3.type\n });\n }\n });\n return summarizedMessages;\n });\n const addContexts = () => {\n summaryContexts.value = [];\n node.value?.walk(\n (child) => child.context && summaryContexts.value.push(child.context)\n );\n };\n node.value?.on(\"submit-raw\", async () => {\n addContexts();\n if (summaries.value.length === 0)\n return;\n context.emit(\"show\", summaries.value);\n showSummaries.value = true;\n await nextTick();\n if (typeof window !== \"undefined\") {\n document.getElementById(id)?.scrollIntoView({ behavior: \"smooth\" });\n if (summaries.value[0]) {\n document.getElementById(summaries.value[0].key)?.focus();\n }\n }\n });\n node.value?.on(\"child\", addContexts);\n function jumpLink(e) {\n if (e.target instanceof HTMLAnchorElement) {\n e.preventDefault();\n const id2 = e.target.getAttribute(\"href\")?.substring(1);\n if (id2) {\n document.getElementById(id2)?.scrollIntoView({ behavior: \"smooth\" });\n document.getElementById(id2)?.focus();\n }\n }\n }\n localize(\"summaryHeader\", \"There were errors in your form.\")(node.value);\n const schema = definition2(props.sectionsSchema || {});\n const data = computed(() => {\n return {\n id,\n fns: node.value?.context?.fns || {},\n classes: node.value?.context?.classes || {},\n summaries: summaries.value,\n showSummaries: props.forceShow || showSummaries.value,\n summaryHeader: node.value?.context?.ui?.summaryHeader?.value || \"\",\n jumpLink\n };\n });\n return () => node.value?.context ? h(FormKitSchema_default, { schema, data: data.value }, { ...context.slots }) : null;\n }\n});\n\n// packages/vue/src/index.ts\ninit_defaultConfig();\ninit_bindings();\nvar FormKitIcon = /* @__PURE__ */ defineComponent({\n name: \"FormKitIcon\",\n props: {\n icon: {\n type: String,\n default: \"\"\n },\n iconLoader: {\n type: Function,\n default: null\n },\n iconLoaderUrl: {\n type: Function,\n default: null\n }\n },\n setup(props) {\n const icon = ref(void 0);\n const config = inject(optionsSymbol, {});\n const parent = inject(parentSymbol, null);\n let iconHandler = void 0;\n function loadIcon() {\n if (!iconHandler || typeof iconHandler !== \"function\")\n return;\n const iconOrPromise = iconHandler(props.icon);\n if (iconOrPromise instanceof Promise) {\n iconOrPromise.then((iconValue) => {\n icon.value = iconValue;\n });\n } else {\n icon.value = iconOrPromise;\n }\n }\n if (props.iconLoader && typeof props.iconLoader === \"function\") {\n iconHandler = createIconHandler(props.iconLoader);\n } else if (parent && parent.props?.iconLoader) {\n iconHandler = createIconHandler(parent.props.iconLoader);\n } else if (props.iconLoaderUrl && typeof props.iconLoaderUrl === \"function\") {\n iconHandler = createIconHandler(iconHandler, props.iconLoaderUrl);\n } else {\n const iconPlugin = config?.plugins?.find((plugin2) => {\n return typeof plugin2.iconHandler === \"function\";\n });\n if (iconPlugin) {\n iconHandler = iconPlugin.iconHandler;\n }\n }\n watch(\n () => props.icon,\n () => {\n loadIcon();\n },\n { immediate: true }\n );\n return () => {\n if (props.icon && icon.value) {\n return h(\"span\", {\n class: \"formkit-icon\",\n innerHTML: icon.value\n });\n }\n return null;\n };\n }\n});\nfunction resetCount() {\n resetCounts();\n resetCount$1();\n}\n\nexport { FormKit_default as FormKit, FormKitIcon, FormKitKitchenSink, FormKitLazyProvider, FormKitMessages, FormKitProvider, FormKitRoot, FormKitSchema, FormKitSummary, bindings_default as bindings, componentSymbol, configSymbol, createInput, defaultConfig, defineFormKitConfig, getCurrentSchemaNode, onSSRComplete, optionsSymbol, parentSymbol, plugin, resetCount, rootSymbol, ssrComplete, useConfig, useFormKitContext, useFormKitContextById, useFormKitNodeById, useInput };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=index.mjs.map","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}","import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day?\n *\n * @description\n * Are the given dates in the same day?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * var result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n */\n\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}","export default function buildFormatLongFn(args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchPatternFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var matchResult = string.match(args.matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n\n if (!parseResult) {\n return null;\n }\n\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}","export default function buildMatchFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var value;\n\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n}","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\n\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toInteger from \"../toInteger/index.js\";\nimport getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import lightFormatters from \"../lightFormatters/index.js\";\nimport getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n /*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\n};\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (dirtyObject.hasOwnProperty(property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\n\nexport default function getHours(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var hours = date.getHours();\n return hours;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\n\nexport default function getMinutes(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\n\nexport default function getTime(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n return timestamp;\n}","import getTime from \"../getTime/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getUnixTime\n * @category Timestamp Helpers\n * @summary Get the seconds timestamp of the given date.\n *\n * @description\n * Get the seconds timestamp of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05 CET:\n * const result = getUnixTime(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 1330512305\n */\n\nexport default function getUnixTime(dirtyDate) {\n requiredArgs(1, arguments);\n return Math.floor(getTime(dirtyDate) / 1000);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nvar timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern(pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n var value = parseInt(matchResult[0], 10);\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // User for validation\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\n\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function (string, token, match, _options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(string, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(string, {\n width: 'wide'\n }) || match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n }\n },\n set: function (date, flags, value, _options) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['R', 'u', 't', 'T']\n },\n // Year\n y: {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback);\n\n case 'yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, _options) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback);\n\n case 'Yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (_date, _flags, value, _options) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n },\n incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Extended year\n u: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Quarter\n Q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Month\n M: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone month\n L: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Local week of year\n w: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'wo':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week of year\n I: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'Io':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Day of the month\n d: {\n priority: 90,\n subPriority: 1,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string);\n\n case 'do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Day of year\n D: {\n priority: 90,\n subPriority: 1,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n case 'Do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n },\n // Day of week\n E: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n },\n // Local day of week\n e: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'eo':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'eee':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n },\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'co':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'ccc':\n return match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n },\n // ISO day of week\n i: {\n priority: 90,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, string);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(string, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // T\n\n case 'iiiii':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tu\n\n case 'iiiiii':\n return match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tuesday\n\n case 'iiii':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 7;\n },\n set: function (date, _flags, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n },\n // AM or PM\n a: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['b', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 't', 'T']\n },\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string);\n\n case 'ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 12;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n },\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string);\n\n case 'Ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 23;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n },\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string);\n\n case 'Ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'k', 't', 'T']\n },\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string);\n\n case 'ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 24;\n },\n set: function (date, _flags, value, _options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n },\n // Minute\n m: {\n priority: 60,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string);\n\n case 'mo':\n return match.ordinalNumber(string, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Second\n s: {\n priority: 50,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string);\n\n case 'so':\n return match.ordinalNumber(string, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCSeconds(value, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Fraction of second\n S: {\n priority: 30,\n parse: function (string, token, _match, _options) {\n var valueCallback = function (value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return parseNDigits(token.length, string, valueCallback);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMilliseconds(value);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'x']\n },\n // Timezone (ISO-8601)\n x: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'X']\n },\n // Seconds timestamp\n t: {\n priority: 40,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n },\n // Milliseconds timestamp\n T: {\n priority: 20,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n }\n};\nexport default parsers;","import defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport parsers from \"./_lib/parsers/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar TIMEZONE_UNIT_PRIORITY = 10; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 0001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n * Now `parse` is a new function which parses a string using a provided format.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward (toDate no longer accepts a string)\n * toDate(1392098430000) // Unix to timestamp\n * toDate(new Date(2014, 1, 11, 11, 30, 30)) // Cloning the date\n * parse('2016-01-01', 'yyyy-MM-dd', new Date())\n * ```\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, dirtyOptions) {\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale // If timezone isn't specified, it will be set to the system timezone\n\n };\n var setters = [{\n priority: TIMEZONE_UNIT_PRIORITY,\n subPriority: -1,\n set: dateToSystemTimezone,\n index: 0\n }];\n var i;\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, subFnOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = void 0;\n\n for (var _i = 0; _i < usedTokens.length; _i++) {\n var usedToken = usedTokens[_i].token;\n\n if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n incompatibleToken = usedTokens[_i];\n break;\n }\n }\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return new Date(NaN);\n }\n\n setters.push({\n priority: parser.priority,\n subPriority: parser.subPriority || 0,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN);\n }\n }\n } // Check if the remaining input contains something other than whitespace\n\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n\n if (isNaN(date)) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n if (result[0]) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n\n return utcDate;\n}\n\nfunction dateToSystemTimezone(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import isSameDay from \"../isSameDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isToday\n * @category Day Helpers\n * @summary Is the given date today?\n * @pure false\n *\n * @description\n * Is the given date today?\n *\n * > âš ï¸ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is today\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * var result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\n\nexport default function isToday(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameDay(dirtyDate, Date.now());\n}","import isSameDay from \"../isSameDay/index.js\";\nimport subDays from \"../subDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isYesterday\n * @category Day Helpers\n * @summary Is the given date yesterday?\n * @pure false\n *\n * @description\n * Is the given date yesterday?\n *\n * > âš ï¸ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is yesterday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 5 October 14:00:00 yesterday?\n * var result = isYesterday(new Date(2014, 9, 5, 14, 0))\n * //=> true\n */\n\nexport default function isYesterday(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameDay(dirtyDate, subDays(Date.now(), 1));\n}","import { computed, unref } from 'vue';\nimport { getCurrentInstance } from 'vue';\n\nexport const useStore = () => {\n const vm = getCurrentInstance();\n if (!vm) throw new Error('must be called in setup');\n return vm.proxy.$store;\n};\n\nexport const useStoreGetters = () => {\n const store = useStore();\n return Object.fromEntries(\n Object.keys(store.getters).map(getter => [\n getter,\n computed(() => store.getters[getter]),\n ])\n );\n};\n\nexport const useMapGetter = key => {\n const store = useStore();\n return computed(() => store.getters[key]);\n};\n\nexport const useFunctionGetter = (key, ...args) => {\n const store = useStore();\n return computed(() => {\n const unrefedArgs = args.map(arg => unref(arg));\n return store.getters[key](...unrefedArgs);\n });\n};\n","(function(global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([ \"exports\" ], factory) : factory(global.ActionCable = {});\n})(this, function(exports) {\n \"use strict\";\n var adapters = {\n logger: self.console,\n WebSocket: self.WebSocket\n };\n var logger = {\n log: function log() {\n if (this.enabled) {\n var _adapters$logger;\n for (var _len = arguments.length, messages = Array(_len), _key = 0; _key < _len; _key++) {\n messages[_key] = arguments[_key];\n }\n messages.push(Date.now());\n (_adapters$logger = adapters.logger).log.apply(_adapters$logger, [ \"[ActionCable]\" ].concat(messages));\n }\n }\n };\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var classCallCheck = function(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n var createClass = function() {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function(Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var now = function now() {\n return new Date().getTime();\n };\n var secondsSince = function secondsSince(time) {\n return (now() - time) / 1e3;\n };\n var clamp = function clamp(number, min, max) {\n return Math.max(min, Math.min(max, number));\n };\n var ConnectionMonitor = function() {\n function ConnectionMonitor(connection) {\n classCallCheck(this, ConnectionMonitor);\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n ConnectionMonitor.prototype.start = function start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor started. pollInterval = \" + this.getPollInterval() + \" ms\");\n }\n };\n ConnectionMonitor.prototype.stop = function stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n };\n ConnectionMonitor.prototype.isRunning = function isRunning() {\n return this.startedAt && !this.stoppedAt;\n };\n ConnectionMonitor.prototype.recordPing = function recordPing() {\n this.pingedAt = now();\n };\n ConnectionMonitor.prototype.recordConnect = function recordConnect() {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n };\n ConnectionMonitor.prototype.recordDisconnect = function recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n };\n ConnectionMonitor.prototype.startPolling = function startPolling() {\n this.stopPolling();\n this.poll();\n };\n ConnectionMonitor.prototype.stopPolling = function stopPolling() {\n clearTimeout(this.pollTimeout);\n };\n ConnectionMonitor.prototype.poll = function poll() {\n var _this = this;\n this.pollTimeout = setTimeout(function() {\n _this.reconnectIfStale();\n _this.poll();\n }, this.getPollInterval());\n };\n ConnectionMonitor.prototype.getPollInterval = function getPollInterval() {\n var _constructor$pollInte = this.constructor.pollInterval, min = _constructor$pollInte.min, max = _constructor$pollInte.max, multiplier = _constructor$pollInte.multiplier;\n var interval = multiplier * Math.log(this.reconnectAttempts + 1);\n return Math.round(clamp(interval, min, max) * 1e3);\n };\n ConnectionMonitor.prototype.reconnectIfStale = function reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(\"ConnectionMonitor detected stale connection. reconnectAttempts = \" + this.reconnectAttempts + \", pollInterval = \" + this.getPollInterval() + \" ms, time disconnected = \" + secondsSince(this.disconnectedAt) + \" s, stale threshold = \" + this.constructor.staleThreshold + \" s\");\n this.reconnectAttempts++;\n if (this.disconnectedRecently()) {\n logger.log(\"ConnectionMonitor skipping reopening recent disconnect\");\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n };\n ConnectionMonitor.prototype.connectionIsStale = function connectionIsStale() {\n return secondsSince(this.pingedAt ? this.pingedAt : this.startedAt) > this.constructor.staleThreshold;\n };\n ConnectionMonitor.prototype.disconnectedRecently = function disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n };\n ConnectionMonitor.prototype.visibilityDidChange = function visibilityDidChange() {\n var _this2 = this;\n if (document.visibilityState === \"visible\") {\n setTimeout(function() {\n if (_this2.connectionIsStale() || !_this2.connection.isOpen()) {\n logger.log(\"ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = \" + document.visibilityState);\n _this2.connection.reopen();\n }\n }, 200);\n }\n };\n return ConnectionMonitor;\n }();\n ConnectionMonitor.pollInterval = {\n min: 3,\n max: 30,\n multiplier: 5\n };\n ConnectionMonitor.staleThreshold = 6;\n var INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\"\n },\n default_mount_path: \"/cable\",\n protocols: [ \"actioncable-v1-json\", \"actioncable-unsupported\" ]\n };\n var message_types = INTERNAL.message_types, protocols = INTERNAL.protocols;\n var supportedProtocols = protocols.slice(0, protocols.length - 1);\n var indexOf = [].indexOf;\n var Connection = function() {\n function Connection(consumer) {\n classCallCheck(this, Connection);\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n Connection.prototype.send = function send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n };\n Connection.prototype.open = function open() {\n if (this.isActive()) {\n logger.log(\"Attempted to open WebSocket, but existing socket is \" + this.getState());\n return false;\n } else {\n logger.log(\"Opening WebSocket, current state is \" + this.getState() + \", subprotocols: \" + protocols);\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n this.webSocket = new adapters.WebSocket(this.consumer.url, protocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n };\n Connection.prototype.close = function close() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n allowReconnect: true\n }, allowReconnect = _ref.allowReconnect;\n if (!allowReconnect) {\n this.monitor.stop();\n }\n if (this.isActive()) {\n return this.webSocket.close();\n }\n };\n Connection.prototype.reopen = function reopen() {\n logger.log(\"Reopening WebSocket, current state is \" + this.getState());\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(\"Reopening WebSocket in \" + this.constructor.reopenDelay + \"ms\");\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n };\n Connection.prototype.getProtocol = function getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n };\n Connection.prototype.isOpen = function isOpen() {\n return this.isState(\"open\");\n };\n Connection.prototype.isActive = function isActive() {\n return this.isState(\"open\", \"connecting\");\n };\n Connection.prototype.isProtocolSupported = function isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n };\n Connection.prototype.isState = function isState() {\n for (var _len = arguments.length, states = Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n return indexOf.call(states, this.getState()) >= 0;\n };\n Connection.prototype.getState = function getState() {\n if (this.webSocket) {\n for (var state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n return null;\n };\n Connection.prototype.installEventHandlers = function installEventHandlers() {\n for (var eventName in this.events) {\n var handler = this.events[eventName].bind(this);\n this.webSocket[\"on\" + eventName] = handler;\n }\n };\n Connection.prototype.uninstallEventHandlers = function uninstallEventHandlers() {\n for (var eventName in this.events) {\n this.webSocket[\"on\" + eventName] = function() {};\n }\n };\n return Connection;\n }();\n Connection.reopenDelay = 500;\n Connection.prototype.events = {\n message: function message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n var _JSON$parse = JSON.parse(event.data), identifier = _JSON$parse.identifier, message = _JSON$parse.message, reason = _JSON$parse.reason, reconnect = _JSON$parse.reconnect, type = _JSON$parse.type;\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n\n case message_types.disconnect:\n logger.log(\"Disconnecting. Reason: \" + reason);\n return this.close({\n allowReconnect: reconnect\n });\n\n case message_types.ping:\n return this.monitor.recordPing();\n\n case message_types.confirmation:\n return this.subscriptions.notify(identifier, \"connected\");\n\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open: function open() {\n logger.log(\"WebSocket onopen event, using '\" + this.getProtocol() + \"' subprotocol\");\n this.disconnected = false;\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close: function close(event) {\n logger.log(\"WebSocket onclose event\");\n if (this.disconnected) {\n return;\n }\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error: function error() {\n logger.log(\"WebSocket onerror event\");\n }\n };\n var extend = function extend(object, properties) {\n if (properties != null) {\n for (var key in properties) {\n var value = properties[key];\n object[key] = value;\n }\n }\n return object;\n };\n var Subscription = function() {\n function Subscription(consumer) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var mixin = arguments[2];\n classCallCheck(this, Subscription);\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n Subscription.prototype.perform = function perform(action) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n data.action = action;\n return this.send(data);\n };\n Subscription.prototype.send = function send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n };\n Subscription.prototype.unsubscribe = function unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n };\n return Subscription;\n }();\n var Subscriptions = function() {\n function Subscriptions(consumer) {\n classCallCheck(this, Subscriptions);\n this.consumer = consumer;\n this.subscriptions = [];\n }\n Subscriptions.prototype.create = function create(channelName, mixin) {\n var channel = channelName;\n var params = (typeof channel === \"undefined\" ? \"undefined\" : _typeof(channel)) === \"object\" ? channel : {\n channel: channel\n };\n var subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n };\n Subscriptions.prototype.add = function add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.sendCommand(subscription, \"subscribe\");\n return subscription;\n };\n Subscriptions.prototype.remove = function remove(subscription) {\n this.forget(subscription);\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n return subscription;\n };\n Subscriptions.prototype.reject = function reject(identifier) {\n var _this = this;\n return this.findAll(identifier).map(function(subscription) {\n _this.forget(subscription);\n _this.notify(subscription, \"rejected\");\n return subscription;\n });\n };\n Subscriptions.prototype.forget = function forget(subscription) {\n this.subscriptions = this.subscriptions.filter(function(s) {\n return s !== subscription;\n });\n return subscription;\n };\n Subscriptions.prototype.findAll = function findAll(identifier) {\n return this.subscriptions.filter(function(s) {\n return s.identifier === identifier;\n });\n };\n Subscriptions.prototype.reload = function reload() {\n var _this2 = this;\n return this.subscriptions.map(function(subscription) {\n return _this2.sendCommand(subscription, \"subscribe\");\n });\n };\n Subscriptions.prototype.notifyAll = function notifyAll(callbackName) {\n var _this3 = this;\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return this.subscriptions.map(function(subscription) {\n return _this3.notify.apply(_this3, [ subscription, callbackName ].concat(args));\n });\n };\n Subscriptions.prototype.notify = function notify(subscription, callbackName) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n var subscriptions = void 0;\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [ subscription ];\n }\n return subscriptions.map(function(subscription) {\n return typeof subscription[callbackName] === \"function\" ? subscription[callbackName].apply(subscription, args) : undefined;\n });\n };\n Subscriptions.prototype.sendCommand = function sendCommand(subscription, command) {\n var identifier = subscription.identifier;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n };\n return Subscriptions;\n }();\n var Consumer = function() {\n function Consumer(url) {\n classCallCheck(this, Consumer);\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n }\n Consumer.prototype.send = function send(data) {\n return this.connection.send(data);\n };\n Consumer.prototype.connect = function connect() {\n return this.connection.open();\n };\n Consumer.prototype.disconnect = function disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n };\n Consumer.prototype.ensureActiveConnection = function ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n };\n createClass(Consumer, [ {\n key: \"url\",\n get: function get$$1() {\n return createWebSocketURL(this._url);\n }\n } ]);\n return Consumer;\n }();\n function createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n if (url && !/^wss?:/i.test(url)) {\n var a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n }\n function createConsumer() {\n var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getConfig(\"url\") || INTERNAL.default_mount_path;\n return new Consumer(url);\n }\n function getConfig(name) {\n var element = document.head.querySelector(\"meta[name='action-cable-\" + name + \"']\");\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n exports.Connection = Connection;\n exports.ConnectionMonitor = ConnectionMonitor;\n exports.Consumer = Consumer;\n exports.INTERNAL = INTERNAL;\n exports.Subscription = Subscription;\n exports.Subscriptions = Subscriptions;\n exports.adapters = adapters;\n exports.createWebSocketURL = createWebSocketURL;\n exports.logger = logger;\n exports.createConsumer = createConsumer;\n exports.getConfig = getConfig;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});\n","import { createConsumer } from '@rails/actioncable';\n\nconst PRESENCE_INTERVAL = 20000;\nconst RECONNECT_INTERVAL = 1000;\n\nclass BaseActionCableConnector {\n static isDisconnected = false;\n\n constructor(app, pubsubToken, websocketHost = '') {\n const websocketURL = websocketHost ? `${websocketHost}/cable` : undefined;\n\n this.consumer = createConsumer(websocketURL);\n this.subscription = this.consumer.subscriptions.create(\n {\n channel: 'RoomChannel',\n pubsub_token: pubsubToken,\n account_id: app.$store.getters.getCurrentAccountId,\n user_id: app.$store.getters.getCurrentUserID,\n },\n {\n updatePresence() {\n this.perform('update_presence');\n },\n received: this.onReceived,\n disconnected: () => {\n BaseActionCableConnector.isDisconnected = true;\n this.onDisconnected();\n this.initReconnectTimer();\n },\n }\n );\n this.app = app;\n this.events = {};\n this.reconnectTimer = null;\n this.isAValidEvent = () => true;\n this.triggerPresenceInterval = () => {\n setTimeout(() => {\n this.subscription.updatePresence();\n this.triggerPresenceInterval();\n }, PRESENCE_INTERVAL);\n };\n this.triggerPresenceInterval();\n }\n\n checkConnection() {\n const isConnectionActive = this.consumer.connection.isOpen();\n const isReconnected =\n BaseActionCableConnector.isDisconnected && isConnectionActive;\n if (isReconnected) {\n this.clearReconnectTimer();\n this.onReconnect();\n BaseActionCableConnector.isDisconnected = false;\n } else {\n this.initReconnectTimer();\n }\n }\n\n clearReconnectTimer = () => {\n if (this.reconnectTimer) {\n clearTimeout(this.reconnectTimer);\n this.reconnectTimer = null;\n }\n };\n\n initReconnectTimer = () => {\n this.clearReconnectTimer();\n this.reconnectTimer = setTimeout(() => {\n this.checkConnection();\n }, RECONNECT_INTERVAL);\n };\n\n // eslint-disable-next-line class-methods-use-this\n onReconnect = () => {};\n\n // eslint-disable-next-line class-methods-use-this\n onDisconnected = () => {};\n\n disconnect() {\n this.consumer.disconnect();\n }\n\n onReceived = ({ event, data } = {}) => {\n if (this.isAValidEvent(data)) {\n if (this.events[event] && typeof this.events[event] === 'function') {\n this.events[event](data);\n }\n }\n };\n}\n\nexport default BaseActionCableConnector;\n","const getUuid = () =>\n 'xxxxxxxx4xxx'.replace(/[xy]/g, c => {\n // eslint-disable-next-line\n const r = (Math.random() * 16) | 0;\n // eslint-disable-next-line\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n\nexport default getUuid;\n","import ar from './locale/ar.json';\nimport ca from './locale/ca.json';\nimport cs from './locale/cs.json';\nimport da from './locale/da.json';\nimport de from './locale/de.json';\nimport el from './locale/el.json';\nimport en from './locale/en.json';\nimport es from './locale/es.json';\nimport fa from './locale/fa.json';\nimport fi from './locale/fi.json';\nimport fr from './locale/fr.json';\nimport he from './locale/he.json';\nimport hi from './locale/hi.json';\nimport hu from './locale/hu.json';\nimport id from './locale/id.json';\nimport is from './locale/is.json';\nimport it from './locale/it.json';\nimport ja from './locale/ja.json';\nimport ko from './locale/ko.json';\nimport lt from './locale/lt.json';\nimport lv from './locale/lv.json';\nimport ml from './locale/ml.json';\nimport nl from './locale/nl.json';\nimport no from './locale/no.json';\nimport pl from './locale/pl.json';\nimport pt from './locale/pt.json';\nimport pt_BR from './locale/pt_BR.json';\nimport ro from './locale/ro.json';\nimport ru from './locale/ru.json';\nimport sk from './locale/sk.json';\nimport sr from './locale/sr.json';\nimport sv from './locale/sv.json';\nimport ta from './locale/ta.json';\nimport th from './locale/th.json';\nimport tr from './locale/tr.json';\nimport uk from './locale/uk.json';\nimport vi from './locale/vi.json';\nimport zh_CN from './locale/zh_CN.json';\nimport zh_TW from './locale/zh_TW.json';\n\nexport default {\n ar,\n ca,\n cs,\n da,\n de,\n el,\n en,\n es,\n fa,\n fi,\n fr,\n he,\n hi,\n hu,\n id,\n is,\n it,\n ja,\n ko,\n lt,\n lv,\n ml,\n nl,\n no,\n pl,\n pt_BR,\n pt,\n ro,\n ru,\n sk,\n sr,\n sv,\n ta,\n th,\n tr,\n uk,\n vi,\n zh_CN,\n zh_TW,\n};\n","import parse from 'date-fns/parse';\nimport getHours from 'date-fns/getHours';\nimport getMinutes from 'date-fns/getMinutes';\nimport timeZoneData from './timezones.json';\n\nexport const defaultTimeSlot = [\n {\n day: 0,\n to: '',\n from: '',\n valid: false,\n },\n {\n day: 1,\n to: '',\n from: '',\n valid: false,\n },\n {\n day: 2,\n to: '',\n from: '',\n valid: false,\n },\n {\n day: 3,\n to: '',\n from: '',\n valid: false,\n },\n {\n day: 4,\n to: '',\n from: '',\n valid: false,\n },\n {\n day: 5,\n to: '',\n from: '',\n valid: false,\n },\n {\n day: 6,\n to: '',\n from: '',\n valid: false,\n },\n];\n\nexport const generateTimeSlots = (step = 15) => {\n /* \n Generates a list of time strings from 12:00 AM to next 24 hours. Each new string\n will be generated by adding `step` minutes to the previous one.\n The list is generated by starting with a random day and adding step minutes till end of the same day.\n */\n const date = new Date(1970, 1, 1);\n const slots = [];\n while (date.getDate() === 1) {\n slots.push(\n date.toLocaleTimeString('en-US', {\n hour: '2-digit',\n minute: '2-digit',\n hour12: true,\n })\n );\n date.setMinutes(date.getMinutes() + step);\n }\n return slots;\n};\n\nexport const getTime = (hour, minute) => {\n const merdian = hour > 11 ? 'PM' : 'AM';\n const modHour = hour > 12 ? hour % 12 : hour || 12;\n const parsedHour = modHour < 10 ? `0${modHour}` : modHour;\n const parsedMinute = minute < 10 ? `0${minute}` : minute;\n return `${parsedHour}:${parsedMinute} ${merdian}`;\n};\n\nexport const timeSlotParse = timeSlots => {\n return timeSlots.map(slot => {\n const {\n day_of_week: day,\n open_hour: openHour,\n open_minutes: openMinutes,\n close_hour: closeHour,\n close_minutes: closeMinutes,\n closed_all_day: closedAllDay,\n open_all_day: openAllDay,\n } = slot;\n const from = closedAllDay ? '' : getTime(openHour, openMinutes);\n const to = closedAllDay ? '' : getTime(closeHour, closeMinutes);\n\n return {\n day,\n to,\n from,\n valid: !closedAllDay,\n openAllDay,\n };\n });\n};\n\nexport const timeSlotTransform = timeSlots => {\n return timeSlots.map(slot => {\n const closed = slot.openAllDay ? false : !(slot.to && slot.from);\n const openAllDay = slot.openAllDay;\n let fromDate = '';\n let toDate = '';\n let openHour = '';\n let openMinutes = '';\n let closeHour = '';\n let closeMinutes = '';\n\n if (!closed) {\n fromDate = parse(slot.from, 'hh:mm a', new Date());\n toDate = parse(slot.to, 'hh:mm a', new Date());\n openHour = getHours(fromDate);\n openMinutes = getMinutes(fromDate);\n closeHour = getHours(toDate);\n closeMinutes = getMinutes(toDate);\n }\n\n return {\n day_of_week: slot.day,\n closed_all_day: closed,\n open_hour: openHour,\n open_minutes: openMinutes,\n close_hour: closeHour,\n close_minutes: closeMinutes,\n open_all_day: openAllDay,\n };\n });\n};\n\nexport const timeZoneOptions = () => {\n return Object.keys(timeZoneData).map(key => ({\n label: key,\n value: timeZoneData[key],\n }));\n};\n","import fromUnixTime from 'date-fns/fromUnixTime';\nimport format from 'date-fns/format';\nimport isToday from 'date-fns/isToday';\nimport isYesterday from 'date-fns/isYesterday';\nimport { endOfDay, getUnixTime, startOfDay, differenceInDays } from 'date-fns';\n\nexport const formatUnixDate = (date, dateFormat = 'MMM dd, yyyy') => {\n const unixDate = fromUnixTime(date);\n return format(unixDate, dateFormat);\n};\n\nexport const formatDate = ({ date, todayText, yesterdayText }) => {\n const dateValue = new Date(date);\n if (isToday(dateValue)) return todayText;\n if (isYesterday(dateValue)) return yesterdayText;\n return date;\n};\n\nexport const formatDigitToString = val => {\n return val > 9 ? `${val}` : `0${val}`;\n};\n\nexport const isTimeAfter = (h1, m1, h2, m2) => {\n if (h1 < h2) {\n return false;\n }\n\n if (h1 === h2) {\n return m1 >= m2;\n }\n\n return true;\n};\n\n/** Get start of day as a UNIX timestamp */\nexport const getUnixStartOfDay = date => getUnixTime(startOfDay(date));\n\n/** Get end of day as a UNIX timestamp */\nexport const getUnixEndOfDay = date => getUnixTime(endOfDay(date));\n\nexport const generateRelativeTime = (value, unit, languageCode) => {\n const code = languageCode?.replace(/_/g, '-'); // Hacky fix we need to handle it from source\n const rtf = new Intl.RelativeTimeFormat(code, {\n numeric: 'auto',\n });\n return rtf.format(value, unit);\n};\n\nexport const getDayDifferenceFromNow = (now, timestampInSeconds) => {\n const date = new Date(timestampInSeconds * 1000);\n return differenceInDays(now, date);\n};\n","export const set = (state, data) => {\n state.records = data;\n};\n\nexport const create = (state, data) => {\n state.records.push(data);\n};\n\nexport const setSingleRecord = (state, data) => {\n const recordIndex = state.records.findIndex(record => record.id === data.id);\n if (recordIndex > -1) {\n state.records[recordIndex] = data;\n } else {\n create(state, data);\n }\n};\n\nexport const update = (state, data) => {\n state.records.forEach((element, index) => {\n if (element.id === data.id) {\n state.records[index] = data;\n }\n });\n};\n\n/* when you don't want to overwrite the whole object */\nexport const updateAttributes = (state, data) => {\n state.records.forEach((element, index) => {\n if (element.id === data.id) {\n state.records[index] = { ...state.records[index], ...data };\n }\n });\n};\n\nexport const updatePresence = (state, data) => {\n state.records.forEach((element, index) => {\n const availabilityStatus = data[element.id];\n state.records[index].availability_status = availabilityStatus || 'offline';\n });\n};\n\nexport const updateSingleRecordPresence = (\n records,\n { id, availabilityStatus }\n) => {\n const [selectedRecord] = records.filter(record => record.id === Number(id));\n if (selectedRecord) {\n selectedRecord.availability_status = availabilityStatus;\n }\n};\n\nexport const destroy = (state, id) => {\n state.records = state.records.filter(record => record.id !== id);\n};\n","export const isAFormMessage = message => message.content_type === 'form';\nexport const isASubmittedFormMessage = (message = {}) =>\n isAFormMessage(message) && !!message.content_attributes?.submitted_values;\n\nexport const MESSAGE_MAX_LENGTH = {\n GENERAL: 10000,\n FACEBOOK: 1000,\n TWILIO_SMS: 320,\n TWILIO_WHATSAPP: 1600,\n EMAIL: 25000,\n};\n","var R=class{type=3;name=\"\";prefix=\"\";value=\"\";suffix=\"\";modifier=3;constructor(t,r,n,o,c,l){this.type=t,this.name=r,this.prefix=n,this.value=o,this.suffix=c,this.modifier=l}hasCustomName(){return this.name!==\"\"&&typeof this.name!=\"number\"}},be=/[$_\\p{ID_Start}]/u,Pe=/[$_\\u200C\\u200D\\p{ID_Continue}]/u,M=\".*\";function Re(e,t){return(t?/^[\\x00-\\xFF]*$/:/^[\\x00-\\x7F]*$/).test(e)}function v(e,t=!1){let r=[],n=0;for(;n<e.length;){let o=e[n],c=function(l){if(!t)throw new TypeError(l);r.push({type:\"INVALID_CHAR\",index:n,value:e[n++]})};if(o===\"*\"){r.push({type:\"ASTERISK\",index:n,value:e[n++]});continue}if(o===\"+\"||o===\"?\"){r.push({type:\"OTHER_MODIFIER\",index:n,value:e[n++]});continue}if(o===\"\\\\\"){r.push({type:\"ESCAPED_CHAR\",index:n++,value:e[n++]});continue}if(o===\"{\"){r.push({type:\"OPEN\",index:n,value:e[n++]});continue}if(o===\"}\"){r.push({type:\"CLOSE\",index:n,value:e[n++]});continue}if(o===\":\"){let l=\"\",s=n+1;for(;s<e.length;){let i=e.substr(s,1);if(s===n+1&&be.test(i)||s!==n+1&&Pe.test(i)){l+=e[s++];continue}break}if(!l){c(`Missing parameter name at ${n}`);continue}r.push({type:\"NAME\",index:n,value:l}),n=s;continue}if(o===\"(\"){let l=1,s=\"\",i=n+1,a=!1;if(e[i]===\"?\"){c(`Pattern cannot start with \"?\" at ${i}`);continue}for(;i<e.length;){if(!Re(e[i],!1)){c(`Invalid character '${e[i]}' at ${i}.`),a=!0;break}if(e[i]===\"\\\\\"){s+=e[i++]+e[i++];continue}if(e[i]===\")\"){if(l--,l===0){i++;break}}else if(e[i]===\"(\"&&(l++,e[i+1]!==\"?\")){c(`Capturing groups are not allowed at ${i}`),a=!0;break}s+=e[i++]}if(a)continue;if(l){c(`Unbalanced pattern at ${n}`);continue}if(!s){c(`Missing pattern at ${n}`);continue}r.push({type:\"REGEX\",index:n,value:s}),n=i;continue}r.push({type:\"CHAR\",index:n,value:e[n++]})}return r.push({type:\"END\",index:n,value:\"\"}),r}function D(e,t={}){let r=v(e);t.delimiter??=\"/#?\",t.prefixes??=\"./\";let n=`[^${S(t.delimiter)}]+?`,o=[],c=0,l=0,s=\"\",i=new Set,a=h=>{if(l<r.length&&r[l].type===h)return r[l++].value},f=()=>a(\"OTHER_MODIFIER\")??a(\"ASTERISK\"),d=h=>{let u=a(h);if(u!==void 0)return u;let{type:p,index:A}=r[l];throw new TypeError(`Unexpected ${p} at ${A}, expected ${h}`)},T=()=>{let h=\"\",u;for(;u=a(\"CHAR\")??a(\"ESCAPED_CHAR\");)h+=u;return h},Se=h=>h,L=t.encodePart||Se,I=\"\",U=h=>{I+=h},$=()=>{I.length&&(o.push(new R(3,\"\",\"\",L(I),\"\",3)),I=\"\")},V=(h,u,p,A,Y)=>{let g=3;switch(Y){case\"?\":g=1;break;case\"*\":g=0;break;case\"+\":g=2;break}if(!u&&!p&&g===3){U(h);return}if($(),!u&&!p){if(!h)return;o.push(new R(3,\"\",\"\",L(h),\"\",g));return}let m;p?p===\"*\"?m=M:m=p:m=n;let O=2;m===n?(O=1,m=\"\"):m===M&&(O=0,m=\"\");let P;if(u?P=u:p&&(P=c++),i.has(P))throw new TypeError(`Duplicate name '${P}'.`);i.add(P),o.push(new R(O,P,L(h),m,L(A),g))};for(;l<r.length;){let h=a(\"CHAR\"),u=a(\"NAME\"),p=a(\"REGEX\");if(!u&&!p&&(p=a(\"ASTERISK\")),u||p){let g=h??\"\";t.prefixes.indexOf(g)===-1&&(U(g),g=\"\"),$();let m=f();V(g,u,p,\"\",m);continue}let A=h??a(\"ESCAPED_CHAR\");if(A){U(A);continue}if(a(\"OPEN\")){let g=T(),m=a(\"NAME\"),O=a(\"REGEX\");!m&&!O&&(O=a(\"ASTERISK\"));let P=T();d(\"CLOSE\");let xe=f();V(g,m,O,P,xe);continue}$(),d(\"END\")}return o}function S(e){return e.replace(/([.+*?^${}()[\\]|/\\\\])/g,\"\\\\$1\")}function X(e){return e&&e.ignoreCase?\"ui\":\"u\"}function Z(e,t,r){return F(D(e,r),t,r)}function k(e){switch(e){case 0:return\"*\";case 1:return\"?\";case 2:return\"+\";case 3:return\"\"}}function F(e,t,r={}){r.delimiter??=\"/#?\",r.prefixes??=\"./\",r.sensitive??=!1,r.strict??=!1,r.end??=!0,r.start??=!0,r.endsWith=\"\";let n=r.start?\"^\":\"\";for(let s of e){if(s.type===3){s.modifier===3?n+=S(s.value):n+=`(?:${S(s.value)})${k(s.modifier)}`;continue}t&&t.push(s.name);let i=`[^${S(r.delimiter)}]+?`,a=s.value;if(s.type===1?a=i:s.type===0&&(a=M),!s.prefix.length&&!s.suffix.length){s.modifier===3||s.modifier===1?n+=`(${a})${k(s.modifier)}`:n+=`((?:${a})${k(s.modifier)})`;continue}if(s.modifier===3||s.modifier===1){n+=`(?:${S(s.prefix)}(${a})${S(s.suffix)})`,n+=k(s.modifier);continue}n+=`(?:${S(s.prefix)}`,n+=`((?:${a})(?:`,n+=S(s.suffix),n+=S(s.prefix),n+=`(?:${a}))*)${S(s.suffix)})`,s.modifier===0&&(n+=\"?\")}let o=`[${S(r.endsWith)}]|$`,c=`[${S(r.delimiter)}]`;if(r.end)return r.strict||(n+=`${c}?`),r.endsWith.length?n+=`(?=${o})`:n+=\"$\",new RegExp(n,X(r));r.strict||(n+=`(?:${c}(?=${o}))?`);let l=!1;if(e.length){let s=e[e.length-1];s.type===3&&s.modifier===3&&(l=r.delimiter.indexOf(s)>-1)}return l||(n+=`(?=${c}|${o})`),new RegExp(n,X(r))}var x={delimiter:\"\",prefixes:\"\",sensitive:!0,strict:!0},B={delimiter:\".\",prefixes:\"\",sensitive:!0,strict:!0},q={delimiter:\"/\",prefixes:\"/\",sensitive:!0,strict:!0};function J(e,t){return e.length?e[0]===\"/\"?!0:!t||e.length<2?!1:(e[0]==\"\\\\\"||e[0]==\"{\")&&e[1]==\"/\":!1}function Q(e,t){return e.startsWith(t)?e.substring(t.length,e.length):e}function Ee(e,t){return e.endsWith(t)?e.substr(0,e.length-t.length):e}function W(e){return!e||e.length<2?!1:e[0]===\"[\"||(e[0]===\"\\\\\"||e[0]===\"{\")&&e[1]===\"[\"}var ee=[\"ftp\",\"file\",\"http\",\"https\",\"ws\",\"wss\"];function N(e){if(!e)return!0;for(let t of ee)if(e.test(t))return!0;return!1}function te(e,t){if(e=Q(e,\"#\"),t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.hash=e,r.hash?r.hash.substring(1,r.hash.length):\"\"}function re(e,t){if(e=Q(e,\"?\"),t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.search=e,r.search?r.search.substring(1,r.search.length):\"\"}function ne(e,t){return t||e===\"\"?e:W(e)?j(e):z(e)}function se(e,t){if(t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.password=e,r.password}function ie(e,t){if(t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.username=e,r.username}function ae(e,t,r){if(r||e===\"\")return e;if(t&&!ee.includes(t))return new URL(`${t}:${e}`).pathname;let n=e[0]==\"/\";return e=new URL(n?e:\"/-\"+e,\"https://example.com\").pathname,n||(e=e.substring(2,e.length)),e}function oe(e,t,r){return _(t)===e&&(e=\"\"),r||e===\"\"?e:K(e)}function ce(e,t){return e=Ee(e,\":\"),t||e===\"\"?e:y(e)}function _(e){switch(e){case\"ws\":case\"http\":return\"80\";case\"wws\":case\"https\":return\"443\";case\"ftp\":return\"21\";default:return\"\"}}function y(e){if(e===\"\")return e;if(/^[-+.A-Za-z0-9]*$/.test(e))return e.toLowerCase();throw new TypeError(`Invalid protocol '${e}'.`)}function le(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.username=e,t.username}function fe(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.password=e,t.password}function z(e){if(e===\"\")return e;if(/[\\t\\n\\r #%/:<>?@[\\]^\\\\|]/g.test(e))throw new TypeError(`Invalid hostname '${e}'`);let t=new URL(\"https://example.com\");return t.hostname=e,t.hostname}function j(e){if(e===\"\")return e;if(/[^0-9a-fA-F[\\]:]/g.test(e))throw new TypeError(`Invalid IPv6 hostname '${e}'`);return e.toLowerCase()}function K(e){if(e===\"\"||/^[0-9]*$/.test(e)&&parseInt(e)<=65535)return e;throw new TypeError(`Invalid port '${e}'.`)}function he(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.pathname=e[0]!==\"/\"?\"/-\"+e:e,e[0]!==\"/\"?t.pathname.substring(2,t.pathname.length):t.pathname}function ue(e){return e===\"\"?e:new URL(`data:${e}`).pathname}function de(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.search=e,t.search.substring(1,t.search.length)}function pe(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.hash=e,t.hash.substring(1,t.hash.length)}var H=class{#i;#n=[];#t={};#e=0;#s=1;#l=0;#o=0;#d=0;#p=0;#g=!1;constructor(t){this.#i=t}get result(){return this.#t}parse(){for(this.#n=v(this.#i,!0);this.#e<this.#n.length;this.#e+=this.#s){if(this.#s=1,this.#n[this.#e].type===\"END\"){if(this.#o===0){this.#b(),this.#f()?this.#r(9,1):this.#h()?this.#r(8,1):this.#r(7,0);continue}else if(this.#o===2){this.#u(5);continue}this.#r(10,0);break}if(this.#d>0)if(this.#A())this.#d-=1;else continue;if(this.#T()){this.#d+=1;continue}switch(this.#o){case 0:this.#P()&&this.#u(1);break;case 1:if(this.#P()){this.#C();let t=7,r=1;this.#E()?(t=2,r=3):this.#g&&(t=2),this.#r(t,r)}break;case 2:this.#S()?this.#u(3):(this.#x()||this.#h()||this.#f())&&this.#u(5);break;case 3:this.#O()?this.#r(4,1):this.#S()&&this.#r(5,1);break;case 4:this.#S()&&this.#r(5,1);break;case 5:this.#y()?this.#p+=1:this.#w()&&(this.#p-=1),this.#k()&&!this.#p?this.#r(6,1):this.#x()?this.#r(7,0):this.#h()?this.#r(8,1):this.#f()&&this.#r(9,1);break;case 6:this.#x()?this.#r(7,0):this.#h()?this.#r(8,1):this.#f()&&this.#r(9,1);break;case 7:this.#h()?this.#r(8,1):this.#f()&&this.#r(9,1);break;case 8:this.#f()&&this.#r(9,1);break;case 9:break;case 10:break}}this.#t.hostname!==void 0&&this.#t.port===void 0&&(this.#t.port=\"\")}#r(t,r){switch(this.#o){case 0:break;case 1:this.#t.protocol=this.#c();break;case 2:break;case 3:this.#t.username=this.#c();break;case 4:this.#t.password=this.#c();break;case 5:this.#t.hostname=this.#c();break;case 6:this.#t.port=this.#c();break;case 7:this.#t.pathname=this.#c();break;case 8:this.#t.search=this.#c();break;case 9:this.#t.hash=this.#c();break;case 10:break}this.#o!==0&&t!==10&&([1,2,3,4].includes(this.#o)&&[6,7,8,9].includes(t)&&(this.#t.hostname??=\"\"),[1,2,3,4,5,6].includes(this.#o)&&[8,9].includes(t)&&(this.#t.pathname??=this.#g?\"/\":\"\"),[1,2,3,4,5,6,7].includes(this.#o)&&t===9&&(this.#t.search??=\"\")),this.#R(t,r)}#R(t,r){this.#o=t,this.#l=this.#e+r,this.#e+=r,this.#s=0}#b(){this.#e=this.#l,this.#s=0}#u(t){this.#b(),this.#o=t}#m(t){return t<0&&(t=this.#n.length-t),t<this.#n.length?this.#n[t]:this.#n[this.#n.length-1]}#a(t,r){let n=this.#m(t);return n.value===r&&(n.type===\"CHAR\"||n.type===\"ESCAPED_CHAR\"||n.type===\"INVALID_CHAR\")}#P(){return this.#a(this.#e,\":\")}#E(){return this.#a(this.#e+1,\"/\")&&this.#a(this.#e+2,\"/\")}#S(){return this.#a(this.#e,\"@\")}#O(){return this.#a(this.#e,\":\")}#k(){return this.#a(this.#e,\":\")}#x(){return this.#a(this.#e,\"/\")}#h(){if(this.#a(this.#e,\"?\"))return!0;if(this.#n[this.#e].value!==\"?\")return!1;let t=this.#m(this.#e-1);return t.type!==\"NAME\"&&t.type!==\"REGEX\"&&t.type!==\"CLOSE\"&&t.type!==\"ASTERISK\"}#f(){return this.#a(this.#e,\"#\")}#T(){return this.#n[this.#e].type==\"OPEN\"}#A(){return this.#n[this.#e].type==\"CLOSE\"}#y(){return this.#a(this.#e,\"[\")}#w(){return this.#a(this.#e,\"]\")}#c(){let t=this.#n[this.#e],r=this.#m(this.#l).index;return this.#i.substring(r,t.index)}#C(){let t={};Object.assign(t,x),t.encodePart=y;let r=Z(this.#c(),void 0,t);this.#g=N(r)}};var G=[\"protocol\",\"username\",\"password\",\"hostname\",\"port\",\"pathname\",\"search\",\"hash\"],E=\"*\";function ge(e,t){if(typeof e!=\"string\")throw new TypeError(\"parameter 1 is not of type 'string'.\");let r=new URL(e,t);return{protocol:r.protocol.substring(0,r.protocol.length-1),username:r.username,password:r.password,hostname:r.hostname,port:r.port,pathname:r.pathname,search:r.search!==\"\"?r.search.substring(1,r.search.length):void 0,hash:r.hash!==\"\"?r.hash.substring(1,r.hash.length):void 0}}function b(e,t){return t?C(e):e}function w(e,t,r){let n;if(typeof t.baseURL==\"string\")try{n=new URL(t.baseURL),t.protocol===void 0&&(e.protocol=b(n.protocol.substring(0,n.protocol.length-1),r)),!r&&t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.username===void 0&&(e.username=b(n.username,r)),!r&&t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.username===void 0&&t.password===void 0&&(e.password=b(n.password,r)),t.protocol===void 0&&t.hostname===void 0&&(e.hostname=b(n.hostname,r)),t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&(e.port=b(n.port,r)),t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.pathname===void 0&&(e.pathname=b(n.pathname,r)),t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.pathname===void 0&&t.search===void 0&&(e.search=b(n.search.substring(1,n.search.length),r)),t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.pathname===void 0&&t.search===void 0&&t.hash===void 0&&(e.hash=b(n.hash.substring(1,n.hash.length),r))}catch{throw new TypeError(`invalid baseURL '${t.baseURL}'.`)}if(typeof t.protocol==\"string\"&&(e.protocol=ce(t.protocol,r)),typeof t.username==\"string\"&&(e.username=ie(t.username,r)),typeof t.password==\"string\"&&(e.password=se(t.password,r)),typeof t.hostname==\"string\"&&(e.hostname=ne(t.hostname,r)),typeof t.port==\"string\"&&(e.port=oe(t.port,e.protocol,r)),typeof t.pathname==\"string\"){if(e.pathname=t.pathname,n&&!J(e.pathname,r)){let o=n.pathname.lastIndexOf(\"/\");o>=0&&(e.pathname=b(n.pathname.substring(0,o+1),r)+e.pathname)}e.pathname=ae(e.pathname,e.protocol,r)}return typeof t.search==\"string\"&&(e.search=re(t.search,r)),typeof t.hash==\"string\"&&(e.hash=te(t.hash,r)),e}function C(e){return e.replace(/([+*?:{}()\\\\])/g,\"\\\\$1\")}function Oe(e){return e.replace(/([.+*?^${}()[\\]|/\\\\])/g,\"\\\\$1\")}function ke(e,t){t.delimiter??=\"/#?\",t.prefixes??=\"./\",t.sensitive??=!1,t.strict??=!1,t.end??=!0,t.start??=!0,t.endsWith=\"\";let r=\".*\",n=`[^${Oe(t.delimiter)}]+?`,o=/[$_\\u200C\\u200D\\p{ID_Continue}]/u,c=\"\";for(let l=0;l<e.length;++l){let s=e[l];if(s.type===3){if(s.modifier===3){c+=C(s.value);continue}c+=`{${C(s.value)}}${k(s.modifier)}`;continue}let i=s.hasCustomName(),a=!!s.suffix.length||!!s.prefix.length&&(s.prefix.length!==1||!t.prefixes.includes(s.prefix)),f=l>0?e[l-1]:null,d=l<e.length-1?e[l+1]:null;if(!a&&i&&s.type===1&&s.modifier===3&&d&&!d.prefix.length&&!d.suffix.length)if(d.type===3){let T=d.value.length>0?d.value[0]:\"\";a=o.test(T)}else a=!d.hasCustomName();if(!a&&!s.prefix.length&&f&&f.type===3){let T=f.value[f.value.length-1];a=t.prefixes.includes(T)}a&&(c+=\"{\"),c+=C(s.prefix),i&&(c+=`:${s.name}`),s.type===2?c+=`(${s.value})`:s.type===1?i||(c+=`(${n})`):s.type===0&&(!i&&(!f||f.type===3||f.modifier!==3||a||s.prefix!==\"\")?c+=\"*\":c+=`(${r})`),s.type===1&&i&&s.suffix.length&&o.test(s.suffix[0])&&(c+=\"\\\\\"),c+=C(s.suffix),a&&(c+=\"}\"),s.modifier!==3&&(c+=k(s.modifier))}return c}var me=class{#i;#n={};#t={};#e={};#s={};#l=!1;constructor(t={},r,n){try{let o;if(typeof r==\"string\"?o=r:n=r,typeof t==\"string\"){let i=new H(t);if(i.parse(),t=i.result,o===void 0&&typeof t.protocol!=\"string\")throw new TypeError(\"A base URL must be provided for a relative constructor string.\");t.baseURL=o}else{if(!t||typeof t!=\"object\")throw new TypeError(\"parameter 1 is not of type 'string' and cannot convert to dictionary.\");if(o)throw new TypeError(\"parameter 1 is not of type 'string'.\")}typeof n>\"u\"&&(n={ignoreCase:!1});let c={ignoreCase:n.ignoreCase===!0},l={pathname:E,protocol:E,username:E,password:E,hostname:E,port:E,search:E,hash:E};this.#i=w(l,t,!0),_(this.#i.protocol)===this.#i.port&&(this.#i.port=\"\");let s;for(s of G){if(!(s in this.#i))continue;let i={},a=this.#i[s];switch(this.#t[s]=[],s){case\"protocol\":Object.assign(i,x),i.encodePart=y;break;case\"username\":Object.assign(i,x),i.encodePart=le;break;case\"password\":Object.assign(i,x),i.encodePart=fe;break;case\"hostname\":Object.assign(i,B),W(a)?i.encodePart=j:i.encodePart=z;break;case\"port\":Object.assign(i,x),i.encodePart=K;break;case\"pathname\":N(this.#n.protocol)?(Object.assign(i,q,c),i.encodePart=he):(Object.assign(i,x,c),i.encodePart=ue);break;case\"search\":Object.assign(i,x,c),i.encodePart=de;break;case\"hash\":Object.assign(i,x,c),i.encodePart=pe;break}try{this.#s[s]=D(a,i),this.#n[s]=F(this.#s[s],this.#t[s],i),this.#e[s]=ke(this.#s[s],i),this.#l=this.#l||this.#s[s].some(f=>f.type===2)}catch{throw new TypeError(`invalid ${s} pattern '${this.#i[s]}'.`)}}}catch(o){throw new TypeError(`Failed to construct 'URLPattern': ${o.message}`)}}test(t={},r){let n={pathname:\"\",protocol:\"\",username:\"\",password:\"\",hostname:\"\",port:\"\",search:\"\",hash:\"\"};if(typeof t!=\"string\"&&r)throw new TypeError(\"parameter 1 is not of type 'string'.\");if(typeof t>\"u\")return!1;try{typeof t==\"object\"?n=w(n,t,!1):n=w(n,ge(t,r),!1)}catch{return!1}let o;for(o of G)if(!this.#n[o].exec(n[o]))return!1;return!0}exec(t={},r){let n={pathname:\"\",protocol:\"\",username:\"\",password:\"\",hostname:\"\",port:\"\",search:\"\",hash:\"\"};if(typeof t!=\"string\"&&r)throw new TypeError(\"parameter 1 is not of type 'string'.\");if(typeof t>\"u\")return;try{typeof t==\"object\"?n=w(n,t,!1):n=w(n,ge(t,r),!1)}catch{return null}let o={};r?o.inputs=[t,r]:o.inputs=[t];let c;for(c of G){let l=this.#n[c].exec(n[c]);if(!l)return null;let s={};for(let[i,a]of this.#t[c].entries())if(typeof a==\"string\"||typeof a==\"number\"){let f=l[i+1];s[a]=f}o[c]={input:n[c]??\"\",groups:s}}return o}static compareComponent(t,r,n){let o=(i,a)=>{for(let f of[\"type\",\"modifier\",\"prefix\",\"value\",\"suffix\"]){if(i[f]<a[f])return-1;if(i[f]===a[f])continue;return 1}return 0},c=new R(3,\"\",\"\",\"\",\"\",3),l=new R(0,\"\",\"\",\"\",\"\",3),s=(i,a)=>{let f=0;for(;f<Math.min(i.length,a.length);++f){let d=o(i[f],a[f]);if(d)return d}return i.length===a.length?0:o(i[f]??c,a[f]??c)};return!r.#e[t]&&!n.#e[t]?0:r.#e[t]&&!n.#e[t]?s(r.#s[t],[l]):!r.#e[t]&&n.#e[t]?s([l],n.#s[t]):s(r.#s[t],n.#s[t])}get protocol(){return this.#e.protocol}get username(){return this.#e.username}get password(){return this.#e.password}get hostname(){return this.#e.hostname}get port(){return this.#e.port}get pathname(){return this.#e.pathname}get search(){return this.#e.search}get hash(){return this.#e.hash}get hasRegExpGroups(){return this.#l}};export{me as URLPattern};\n","import { URLPattern } from \"./dist/urlpattern.js\";\n\nexport { URLPattern };\n\nif (!globalThis.URLPattern) {\n globalThis.URLPattern = URLPattern;\n}\n"],"names":["explicitKeys","token","dedupe","arr1","arr2","has","obj","property","eq","valA","valB","deep","explicit","eqRegExp","k","key","x","y","empty","value","type","_i","escapeExp","string","regexForFormat","format","escaped","formats","tokens","regex","format2","isRecord","o","isObject","isPojo","ctor","prot","extend","original","additional","extendArrays","ignoreUndefined","merged","isQuotedString","str","quoteType","p","rmEscapes","clean","lastChar","char","nodeProps","sets","valid","props","name","modelValue","config","plugins","validProps","parseArgs","args","arg","depth","quote","except","toRemove","exps","n","keysToRemove","exp","only","include","camel","_s","g","kebab","trail","cap","shallowClone","returnObject","applyExplicit","clone","newObj","cloneAny","getAt","addr","segments","i","segment","undefine","init","slugify","oncePerTick","fn","called","boolGetter","createDispatcher","middleware","currentIndex","use2","dispatchable","dispatch","payload","current","explicitPayload","index","createEmitter","listeners","receipts2","buffer","emitter","node","event","wrapper","eventName","listener","pos","modifiers","receipt","_a","eventListeners","child","events","node2","emit","context","bubble2","meta","bubble","_context","isNode","on","_node","off","errorHandler","error2","next","warningHandler","warning","result","warn","code","data","error","createMessage","conf","storeTraps","applyMessages","setMessage","removeMessage","filterMessages","reduceMessages","releaseBuffer","touchMessages","createStore","_buffer","messages","_b","_m","_r","store","_target","_t","prop","releaseMissed","messageStore","message","previous","e","buffered","m","callback","_store","reducer","accumulator","_messageStore","clear","applied","address","missed","createMessages","errors","sourceKey","make","errorSet","errors2","misses","createLedger","ledger","createCounter","add","merge","counterName","condition","increment","parseCondition","counter","sum","count","initial","post","r","delta","parent","remove","originalParent","registry","reflected","emit2","register","deregister","id","getNode","watchRegistry","configChange","usingFallback","createConfig","options","nodes","target","t","submitForm","root","formElement","clearState","reset","resetTo","resetValue2","defaultConfig","useIndex","valueRemoved","valueMoved","valueInserted","isList","invalidSetter","traps","trap","getContext","addChild","addProps","getAddress","getNode2","clearErrors","calm","define","disturb","destroy","hydrate","getIndex","setIndex","input","eachChild","find","setParent","removeChild","getRoot","resetValue","resetConfig","setErrors","submit","text","use","getName","walkTree","createTraps","getter","setter","curryGetter","createHooks","hooks","_","nameCount","idCount","createName","createValue","async","validateInput","commit","calm2","hydrate2","partial","from","insert","_value","syncListNodes","childValue","newChildren","unused","placeholderValues","indexes","emptyIndexes","createPlaceholder","isPlaceholder","resolve","shouldHydrate","definition","clonedDef","mergeProps","feature","propNames","defaults","defaults2","attrs","attr","camelName","mergedProps","toPropsObj","props2","newProps","extend$1","parentContext","listIndex","existingNode","_property","childIndex","preserve","stopIfFalse","skipSubtreeOnFalse","val","createConfig2","plugin","run","library","setIndex2","children","oldIndex","locator","first","pointer","c","select","selector","matches","action","argStr","searchTerm","searcher","bfs","tree","searchValue","searchGoal","search","stack","localValue","parentVal","rootValue","didSet","fragment","localErrors","childErrors","clearChildErrors","createProps","isEmitting","propDefs","_c","_d","originalValue","receiver","trap2","findDefinition","createContext","nodeInit","hasInitialId","createNode","ops","isDOM","isComponent","isConditional","isSugar","sugar","iterator","bind","compile","expr","provideTokens","requirements","operand","operatorRegistry","l","operatorSymbols","s","operatorChars","getOp","symbols","expression","candidates","symbol","getStep","direction","reversed","start","char2","operators","getTail","tail","length","parseLogicals","step","op","left","operation","parenthetical","parenQuote","startP","addTo","depth2","hasTail","lStep","rStep","evaluate","v","fnToken","userFuncReturn","tailCall","userFunc","subTokens","rootTokens","tokenSet","token3","cleaned","compiled","reqs","provide","createClasses","propertyKey","sectionClassList","generateClassList","combinedClassList","finalClassList","currentClassList","handleNegativeClasses","$reset","classList","removalToken","hasNegativeClassValue","applicableClasses","className","negativeClass","targetClass","setErrors2","clearErrors2","clearChildren","FORMKIT_VERSION","revokedObservers","createObserver","dependencies","deps","receipts","addDependency","observeProps","observeLedger","observe","observed","revoke","block","after","watch","old","newDeps","removeListeners","subArgs","subValue","applyListeners","toAdd","depNode","events2","nodeReceipts","doAfterObservation","res2","diffDeps","oldDeps","res","eventsToAdd","previousEvents","eventsToRemove","newEvents","isKilled","accepted","accepted_default","date_after","compare","timestamp","fieldValue","date_after_default","date_after_or_equal","date_after_or_equal_default","date_after_node","foreignValue","date_after_node_default","alpha","set","selectedSet","alpha_default","alpha_spaces","alpha_spaces_default","alphanumeric","alphanumeric_default","date_before","date_before_default","date_before_node","date_before_node_default","date_before_or_equal","date_before_or_equal_default","between","to","a","b","between_default","hasConfirm","confirm","comparison","confirm_default","contains_alpha","contains_alpha_default","contains_alpha_spaces","contains_alpha_spaces_default","contains_alphanumeric","contains_alphanumeric_default","contains_lowercase","contains_lowercase_default","contains_numeric","contains_numeric_default","contains_symbol","contains_symbol_default","contains_uppercase","contains_uppercase_default","date_between","dateA","dateB","compareTo","date_between_default","date_format","date_format_default","email","email_default","ends_with","item","ends_with_default","is","is_default","second","min3","max3","length3","length_default","lowercase","lowercase_default","pattern","matches_default","max","maximum","max_default","min","minimum","min_default","not","not_default","number2","number_default","require_one","inputNames","require_one_default","required","required_default","starts_with","starts_with_default","symbol_default","uppercase","uppercase_default","url","protocols","url3","url_default","validatingMessage","createValidationPlugin","baseRules","propRules","availableRules","state","validation","reboot","newValidation","newRules","validation2","parseRules","validate","validations","removeImmediately","complete","currentRun","diff","createFailedMessage","nextValidation","runRule","createI18nArgs","i18nArgs","customMessage","createCustomMessage","createMessageName","hintPattern","rulePattern","ruleExtractor","hintExtractor","debounceExtractor","hasDebounce","defaultHints","rules","extractRules","rule","hints","ruleName","parsedHints","parseHints","fnHints","parsedRule","parseRule","trimmed","map","hintGroups","hints2","group","hint","existingHints","sentence","list","items","conjunction","oxford","date","date2","dateTime","order","ui10","validation10","postfix","labels","name2","dependentNode","en","i18nNodes","createI18nPlugin","localeKey","parseLocale","locale","lang","availableLocales","locale2","createLibraryPlugin","libraries","lib","runtimeProps","isGroupOption","option2","normalizeOptions","options2","optionValue","undefinedIfNotFound","found","shouldSelect","valueA","valueB","createSection","section","el","fragment2","extendable","extensions","extendSchema","createRoot","rootSection","isSchemaObject","schema","extension","actions","box","boxHelp","boxInner","boxLabel","boxOption","boxOptions","boxWrapper","buttonInput","buttonLabel","decorator","fieldset","fileInput","fileItem","fileList","fileName","fileRemove","formInput","help","icon","sectionKey","rawIconProp","inner","label","legend","noFiles","optGroup","option","optionSlot","outer","prefix","selectInput","submitInput","suffix","textInput","textareaInput","radioInstance","renamesRadios","renamesRadiosPlugin","normalizeBoxes","toggleChecked","existingValue","isChecked","checkboxes","defaultIcon","defaultIcon2","disables","localize","isBrowser","removeHover","preventStrayDrop","files","files2","file2","loading","handleSubmit","submitEvent","submitNonce","setSubmitted","setIncompleteMessage","retVal","autoDisable","form","disabled","ignore","initialValue","casts","strict","numericValue","toggleChecked2","isChecked2","radios","isSelected","optionValue2","optionA","containsValue","deferChange","selectInput2","applyPlaceholder","placeholder","firstValue","isMultiple","hasMatchingValue","isSlotCondition","useSchema","inputSection","sectionsSchema","propSectionsSchema","$if","then","otherwise","conditionalNode","$extend","extendWith","button","checkbox","file","form2","hidden","radio","select2","textarea","inputs","documentStyles","documentThemeLinkTag","themeDidLoad","themeHasLoaded","themeWasRequested","themeLoaded","isClient","iconRegistry","iconRequests","createThemePlugin","theme","icons","iconLoaderUrl","iconLoader","loadTheme","themePlugin","createIconHandler","loadIconPropIcons","clickHandlerProp","handlerFunction","themeUrl","link","iconName","isDefault","iconWasAlreadyLoaded","loadedIcon","getIconFromStylesheet","iconValue","getRemoteIcon","finalIcon","loadStylesheetIcon","cssVarIcon","formkitVersion","fetchUrl","iconHandler","iconRegex","loadPropIcon","reloadIcon","svg","operator","warnings","inputType","decodeErrors","err","registered","decodeWarnings","__defProp","__getOwnPropNames","__esm","__export","all","vueBindings","bindings_default","init_bindings","isValid","ref","hasErrors","hasTicked","nextTick","availableMessages","reactive","message3","validationVisibility","hasShownErrors","isRequired","checkForRequired","parsedRules","validationVisible","computed","isInvalid","isComplete","hasValidation","messages3","visibleMessages","ui","messages4","passing","cachedClasses","classes2","rootClasses","globalConfigClasses","classesPropClasses","sectionPropClasses","keys","describedBy","describers","value2","doCompare","isDirty","markRaw","triggerRef","isSettled","iconPattern","matchingProps","definedAs","definition3","isRef","isReactive","updateState","defaultConfig_exports","init_defaultConfig","locales","inputs$1","nodeOptions","defaultRules","i18n","isServer","ssrCompleteRegistry","onSSRComplete","app","isServer2","memo","memoKeys","instanceKey","instanceScopes","raw","isClassProp","getRef","nodeRefs","get","path","watchEffect","getValue","subset","foundValue","currentValue","parseSchema","memoKey","library2","provider","createElements","alternate","parseConditionAttr","_default","parseAttrs","unparsedAttrs","bindExp","explicitAttrs","boundAttrs","setters","bound","getValue2","isStr","parseNode","element","childCondition","iterationData","produceChildren","slotData2","currentKey","values","createSlots","slots","allSlots","slotName","slotFn","createElement","createNodes","createTextVNode","resolveComponent","h","repeatedNode","getValues","valueName","keyName","_v","instanceScope","isArray","previousIterationData","scopedData","schema2","els","element2","providers","compiledFns","createInstance","providerCallback","toMemoKey","render","compiledProviders","compiledProvider","useScope","defaultValue","scopedValue","slotData","data2","prevKey","createRenderFn","instanceCreator","instanceKey2","slot","hasSlot","FormKitSchema","defineComponent","instance","getCurrentInstance","FormKit_default","newSchema","oldSchema","oldKey","cleanUp","onMounted","onUnmounted","FormKitSchema_default","isServer3","parentSymbol","componentSymbol","FormKit","useInput","generateSchema","schemaDefinition","definitionLibrary","formkitComponent","didMount","rootSymbol","createPlugin","optionsSymbol","configSymbol","_options","rootConfig","pseudoProps","boolProps","classesToNodeProps","onlyListeners","inject","__root","__cmpCallback","isVModeled","isMounted","createInitialProps","initialProps2","propValues","propName","classesProps","initialProps","lateBoundProps","lateProps","newProp","pseudoPropNames","names","passThrough","attributeWatchers","possibleProps","watchAttributes","attrProps","stop","error3","inputErrors","clonedValueBeforeVmodel","toRef","onBeforeUnmount","totalCreated","isComponent2","createInput","schemaOrComponent","definitionOptions","cmpName","summary","summaryInner","messages2","message2","summaryHeader","messageLink","addDays","dirtyDate","dirtyAmount","requiredArgs","toDate","amount","toInteger","isSameDay","dirtyDateLeft","dirtyDateRight","dateLeftStartOfDay","startOfDay","dateRightStartOfDay","endOfDay","formatDistanceLocale","formatDistance","buildFormatLongFn","dirtyOptions","width","dateFormats","timeFormats","dateTimeFormats","formatLong","formatRelativeLocale","formatRelative","_date","_baseDate","buildLocalizeFn","dirtyIndex","valuesArray","defaultWidth","_defaultWidth","_width","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_dirtyOptions","number","rem100","quarter","buildMatchPatternFn","dirtyString","matchResult","matchedString","parseResult","buildMatchFn","matchPattern","parsePatterns","findIndex","findKey","object","predicate","array","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","match","subMilliseconds","addMilliseconds","addLeadingZeros","targetLength","sign","output","formatters","signedYear","year","month","dayPeriodEnumValue","numberOfDigits","milliseconds","fractionalSeconds","MILLISECONDS_IN_DAY","getUTCDayOfYear","startOfYearTimestamp","difference","startOfUTCISOWeek","weekStartsOn","day","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","getUTCISOWeek","startOfUTCWeek","localeWeekStartsOn","defaultWeekStartsOn","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","getUTCWeek","dayPeriodEnum","era","lightFormatters","signedWeekYear","weekYear","twoDigitYear","isoWeekYear","week","isoWeek","dayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","hours","_localize","originalDate","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","offset","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","longFormatters","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","formatStr","defaultLocale","getTimezoneOffsetInMilliseconds","utcDate","formatterOptions","substring","firstCharacter","longFormatter","cleanEscapedString","formatter","assign","dirtyObject","getHours","getMinutes","getTime","getUnixTime","subDays","setUTCDay","dirtyDay","currentDay","remainder","dayIndex","setUTCISODay","setUTCISOWeek","dirtyISOWeek","setUTCWeek","dirtyWeek","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE","MILLISECONDS_IN_SECOND","numericPatterns","timezonePatterns","parseNumericPattern","valueCallback","parseTimezonePattern","seconds","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","enumValue","normalizeTwoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","isLeapYearIndex","parsers","flags","normalizedTwoDigitYear","_match","_flags","firstWeekOfYear","isLeapYear","wholeWeekDays","isPM","_token","TIMEZONE_UNIT_PRIORITY","notWhitespaceRegExp","parse","dirtyDateString","dirtyFormatString","dirtyReferenceDate","dateString","formatString","subFnOptions","dateToSystemTimezone","usedTokens","parser","incompatibleTokens","incompatibleToken","usedToken","uniquePrioritySetters","priority","setterArray","convertedDate","isToday","isYesterday","useStore","vm","useStoreGetters","useMapGetter","useFunctionGetter","unrefedArgs","unref","global","factory","exports","this","adapters","logger","_adapters$logger","_len","_key","_typeof","classCallCheck","Constructor","createClass","defineProperties","descriptor","protoProps","staticProps","now","secondsSince","time","clamp","ConnectionMonitor","connection","_this","_constructor$pollInte","multiplier","interval","_this2","INTERNAL","message_types","supportedProtocols","indexOf","Connection","consumer","_ref","allowReconnect","states","handler","_JSON$parse","identifier","reason","reconnect","properties","Subscription","params","mixin","Subscriptions","channelName","channel","subscription","callbackName","_this3","_len2","_key2","subscriptions","command","Consumer","createWebSocketURL","createConsumer","getConfig","PRESENCE_INTERVAL","RECONNECT_INTERVAL","_BaseActionCableConnector","pubsubToken","websocketHost","__publicField","websocketURL","isConnectionActive","BaseActionCableConnector","getUuid","i18nMessages","ar","ca","cs","da","de","es","fa","fi","fr","he","hi","hu","it","ja","ko","lt","lv","ml","nl","no","pl","pt_BR","pt","ro","ru","sk","sr","sv","ta","th","tr","uk","vi","zh_CN","zh_TW","defaultTimeSlot","generateTimeSlots","hour","minute","merdian","modHour","parsedHour","parsedMinute","timeSlotParse","timeSlots","openHour","openMinutes","closeHour","closeMinutes","closedAllDay","openAllDay","timeSlotTransform","closed","fromDate","timeZoneOptions","timeZoneData","formatUnixDate","dateFormat","unixDate","fromUnixTime","formatDate","todayText","yesterdayText","dateValue","isTimeAfter","h1","m1","h2","m2","getUnixStartOfDay","getUnixEndOfDay","generateRelativeTime","unit","languageCode","getDayDifferenceFromNow","timestampInSeconds","differenceInDays","create","setSingleRecord","recordIndex","record","update","updateAttributes","updatePresence","availabilityStatus","updateSingleRecordPresence","records","selectedRecord","isAFormMessage","isASubmittedFormMessage","MESSAGE_MAX_LENGTH","R","be","Pe","M","Re","D","S","f","d","u","A","T","Se","L","I","U","$","V","Y","O","P","xe","X","Z","F","B","q","J","Q","Ee","W","ee","N","te","re","ne","j","z","se","ie","ae","oe","K","ce","le","fe","ue","pe","H","__privateAdd","_H_instances","_n","_e","_l","_o","_p","_g","__privateSet","__privateGet","__privateMethod","b_fn","f_fn","r_fn","h_fn","u_fn","A_fn","T_fn","P_fn","C_fn","E_fn","S_fn","x_fn","O_fn","y_fn","w_fn","k_fn","c_fn","R_fn","m_fn","a_fn","G","E","ge","C","w","Oe","ke","me","URLPattern"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,63,64]}