{"version":3,"file":"mmstack-form-validation.mjs","sources":["../tmp-esm2022/lib/date/util.js","../tmp-esm2022/lib/merge-validators.js","../tmp-esm2022/lib/array/max-length.js","../tmp-esm2022/lib/array/min-length.js","../tmp-esm2022/lib/array/index.js","../tmp-esm2022/lib/boolean/must-be-true.js","../tmp-esm2022/lib/boolean/index.js","../tmp-esm2022/lib/general/must-be.js","../tmp-esm2022/lib/general/not.js","../tmp-esm2022/lib/general/not-one-of.js","../tmp-esm2022/lib/general/one-of.js","../tmp-esm2022/lib/general/required.js","../tmp-esm2022/lib/general/index.js","../tmp-esm2022/lib/date/is-date.js","../tmp-esm2022/lib/date/max-date.js","../tmp-esm2022/lib/date/min-date.js","../tmp-esm2022/lib/date/index.js","../tmp-esm2022/lib/date/date-range.js","../tmp-esm2022/lib/file/accepts.js","../tmp-esm2022/lib/file/max-size.js","../tmp-esm2022/lib/file/rejects.js","../tmp-esm2022/lib/file/index.js","../tmp-esm2022/lib/number/integer.js","../tmp-esm2022/lib/number/is-number.js","../tmp-esm2022/lib/number/max.js","../tmp-esm2022/lib/number/min.js","../tmp-esm2022/lib/number/multiple-of.js","../tmp-esm2022/lib/number/index.js","../tmp-esm2022/lib/string/email.js","../tmp-esm2022/lib/string/is-string.js","../tmp-esm2022/lib/string/max-chars.js","../tmp-esm2022/lib/string/min-chars.js","../tmp-esm2022/lib/string/pattern.js","../tmp-esm2022/lib/string/trimmed.js","../tmp-esm2022/lib/string/uri.js","../tmp-esm2022/lib/string/index.js","../tmp-esm2022/lib/validators.js","../tmp-esm2022/mmstack-form-validation.js"],"sourcesContent":["import { formatDate } from '@angular/common';\nfunction isLuxonLike(date) {\n    if (!date)\n        return false;\n    return ('toJSDate' in date &&\n        'toUnixInteger' in date &&\n        typeof date.toJSDate === 'function' &&\n        typeof date.toUnixInteger === 'function');\n}\nfunction isMomentLike(date) {\n    if (!date)\n        return false;\n    return ('toDate' in date &&\n        'unix' in date &&\n        typeof date.toDate === 'function' &&\n        typeof date.unix === 'function');\n}\nexport function defaultToDate(date) {\n    if (date instanceof Date)\n        return date;\n    if (typeof date === 'string' || typeof date === 'number')\n        return new Date(date);\n    if (!date)\n        return new Date();\n    if (typeof date !== 'object')\n        throw new Error('Date is not number, string, null, undefined or object');\n    if (isMomentLike(date))\n        return date.toDate();\n    if (isLuxonLike(date))\n        return date.toJSDate();\n    return new Date();\n}\nexport function defaultFormatDate(date, locale, format = 'mediumDate') {\n    return formatDate(date, format, locale);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm0vdmFsaWRhdGlvbi9zcmMvbGliL2RhdGUvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFZN0MsU0FBUyxXQUFXLENBQUMsSUFBWTtJQUMvQixJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRXhCLE9BQU8sQ0FDTCxVQUFVLElBQUksSUFBSTtRQUNsQixlQUFlLElBQUksSUFBSTtRQUN2QixPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUNuQyxPQUFPLElBQUksQ0FBQyxhQUFhLEtBQUssVUFBVSxDQUN6QyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLElBQVk7SUFDaEMsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUN4QixPQUFPLENBQ0wsUUFBUSxJQUFJLElBQUk7UUFDaEIsTUFBTSxJQUFJLElBQUk7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssVUFBVTtRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUNoQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQVEsSUFBb0I7SUFDdkQsSUFBSSxJQUFJLFlBQVksSUFBSTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRXRDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFDdEQsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV4QixJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUU3QixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0lBRTNFLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBRTdDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRTlDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixJQUFVLEVBQ1YsTUFBYyxFQUNkLE1BQU0sR0FBRyxZQUFZO0lBRXJCLE9BQU8sVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxudHlwZSBMdXhvbkRhdGVUaW1lTGlrZSA9IHtcclxuICB0b0pTRGF0ZSgpOiBEYXRlO1xyXG4gIHRvVW5peEludGVnZXIoKTogbnVtYmVyO1xyXG59O1xyXG5cclxudHlwZSBNb21lbnREYXRlVGltZUxpa2UgPSB7XHJcbiAgdG9EYXRlKCk6IERhdGU7XHJcbiAgdW5peCgpOiBudW1iZXI7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBpc0x1eG9uTGlrZShkYXRlOiBvYmplY3QpOiBkYXRlIGlzIEx1eG9uRGF0ZVRpbWVMaWtlIHtcclxuICBpZiAoIWRhdGUpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgICd0b0pTRGF0ZScgaW4gZGF0ZSAmJlxyXG4gICAgJ3RvVW5peEludGVnZXInIGluIGRhdGUgJiZcclxuICAgIHR5cGVvZiBkYXRlLnRvSlNEYXRlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICB0eXBlb2YgZGF0ZS50b1VuaXhJbnRlZ2VyID09PSAnZnVuY3Rpb24nXHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNNb21lbnRMaWtlKGRhdGU6IG9iamVjdCk6IGRhdGUgaXMgTW9tZW50RGF0ZVRpbWVMaWtlIHtcclxuICBpZiAoIWRhdGUpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gKFxyXG4gICAgJ3RvRGF0ZScgaW4gZGF0ZSAmJlxyXG4gICAgJ3VuaXgnIGluIGRhdGUgJiZcclxuICAgIHR5cGVvZiBkYXRlLnRvRGF0ZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgdHlwZW9mIGRhdGUudW5peCA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0VG9EYXRlPFREYXRlPihkYXRlOiBURGF0ZSB8IHN0cmluZyk6IERhdGUge1xyXG4gIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIGRhdGU7XHJcblxyXG4gIGlmICh0eXBlb2YgZGF0ZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGRhdGUgPT09ICdudW1iZXInKVxyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpO1xyXG5cclxuICBpZiAoIWRhdGUpIHJldHVybiBuZXcgRGF0ZSgpO1xyXG5cclxuICBpZiAodHlwZW9mIGRhdGUgIT09ICdvYmplY3QnKVxyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdEYXRlIGlzIG5vdCBudW1iZXIsIHN0cmluZywgbnVsbCwgdW5kZWZpbmVkIG9yIG9iamVjdCcpO1xyXG5cclxuICBpZiAoaXNNb21lbnRMaWtlKGRhdGUpKSByZXR1cm4gZGF0ZS50b0RhdGUoKTtcclxuXHJcbiAgaWYgKGlzTHV4b25MaWtlKGRhdGUpKSByZXR1cm4gZGF0ZS50b0pTRGF0ZSgpO1xyXG5cclxuICByZXR1cm4gbmV3IERhdGUoKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRGb3JtYXREYXRlKFxyXG4gIGRhdGU6IERhdGUsXHJcbiAgbG9jYWxlOiBzdHJpbmcsXHJcbiAgZm9ybWF0ID0gJ21lZGl1bURhdGUnLFxyXG4pIHtcclxuICByZXR1cm4gZm9ybWF0RGF0ZShkYXRlLCBmb3JtYXQsIGxvY2FsZSk7XHJcbn1cclxuIl19","const INTERNAL_ERROR_MERGE_DELIM = '::INTERNAL_MMSTACK_MERGE_DELIM::';\nexport function defaultMergeMessage(errors) {\n    const first = errors.at(0);\n    if (!first)\n        return {\n            error: '',\n            tooltip: '',\n        };\n    if (errors.length === 1) {\n        if (first.length > 60) {\n            return {\n                error: `${first.slice(0, 60)}...`,\n                tooltip: first,\n            };\n        }\n        return {\n            error: first,\n            tooltip: '',\n        };\n    }\n    if (first.length > 40) {\n        return {\n            error: `${first.slice(0, 40)}..., +${errors.length - 1} issues`,\n            tooltip: errors.join('\\n'),\n        };\n    }\n    return {\n        error: `${first}, +${errors.length - 1} issues`,\n        tooltip: errors.join('\\n'),\n    };\n}\nfunction toTooltipFn(merge) {\n    return (errors) => {\n        const result = merge(errors);\n        if (typeof result === 'string') {\n            return {\n                error: result,\n                tooltip: '',\n                merged: errors.join(INTERNAL_ERROR_MERGE_DELIM),\n            };\n        }\n        return result;\n    };\n}\nexport function mergeValidators(...validators) {\n    if (!validators.length)\n        return () => [];\n    return (value) => validators.map((val) => val(value)).filter(Boolean);\n}\nexport function createMergeValidators(merge) {\n    const mergeFn = merge ? toTooltipFn(merge) : defaultMergeMessage;\n    return (validators) => {\n        const validate = mergeValidators(...validators);\n        const fn = ((value) => validate(value).join(INTERNAL_ERROR_MERGE_DELIM));\n        fn.resolve = (mergedError) => {\n            return mergeFn(mergedError.split(INTERNAL_ERROR_MERGE_DELIM));\n        };\n        return fn;\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtdmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm0vdmFsaWRhdGlvbi9zcmMvbGliL21lcmdlLXZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSwwQkFBMEIsR0FBRyxrQ0FBa0MsQ0FBQztBQUV0RSxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBZ0I7SUFJbEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUzQixJQUFJLENBQUMsS0FBSztRQUNSLE9BQU87WUFDTCxLQUFLLEVBQUUsRUFBRTtZQUNULE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztJQUVKLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QixJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDdEIsT0FBTztnQkFDTCxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSztnQkFDakMsT0FBTyxFQUFFLEtBQUs7YUFDZixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU87WUFDTCxLQUFLLEVBQUUsS0FBSztZQUNaLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDdEIsT0FBTztZQUNMLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxTQUFTO1lBQy9ELE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUMzQixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU87UUFDTCxLQUFLLEVBQUUsR0FBRyxLQUFLLE1BQU0sTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLFNBQVM7UUFDL0MsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0tBQzNCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxXQUFXLENBQ2xCLEtBQXdFO0lBRXhFLE9BQU8sQ0FBQyxNQUFnQixFQUFFLEVBQUU7UUFDMUIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0IsT0FBTztnQkFDTCxLQUFLLEVBQUUsTUFBTTtnQkFDYixPQUFPLEVBQUUsRUFBRTtnQkFDWCxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQzthQUNoRCxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUM3QixHQUFHLFVBQTBCO0lBRTdCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTtRQUFFLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBRXhDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBU0QsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxLQUtLO0lBRUwsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO0lBRWpFLE9BQU8sQ0FBSSxVQUEwQixFQUFFLEVBQUU7UUFDdkMsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7UUFFaEQsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQVEsRUFBRSxFQUFFLENBQ3ZCLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBZSxDQUFDO1FBRWxFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxXQUFtQixFQUFFLEVBQUU7WUFDbkMsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUM7UUFDaEUsQ0FBQyxDQUFDO1FBRUYsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi92YWxpZGF0b3IudHlwZSc7XHJcblxyXG5jb25zdCBJTlRFUk5BTF9FUlJPUl9NRVJHRV9ERUxJTSA9ICc6OklOVEVSTkFMX01NU1RBQ0tfTUVSR0VfREVMSU06Oic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdE1lcmdlTWVzc2FnZShlcnJvcnM6IHN0cmluZ1tdKToge1xyXG4gIGVycm9yOiBzdHJpbmc7XHJcbiAgdG9vbHRpcDogc3RyaW5nO1xyXG59IHtcclxuICBjb25zdCBmaXJzdCA9IGVycm9ycy5hdCgwKTtcclxuXHJcbiAgaWYgKCFmaXJzdClcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGVycm9yOiAnJyxcclxuICAgICAgdG9vbHRpcDogJycsXHJcbiAgICB9O1xyXG5cclxuICBpZiAoZXJyb3JzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgaWYgKGZpcnN0Lmxlbmd0aCA+IDYwKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZXJyb3I6IGAke2ZpcnN0LnNsaWNlKDAsIDYwKX0uLi5gLFxyXG4gICAgICAgIHRvb2x0aXA6IGZpcnN0LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGVycm9yOiBmaXJzdCxcclxuICAgICAgdG9vbHRpcDogJycsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgaWYgKGZpcnN0Lmxlbmd0aCA+IDQwKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBlcnJvcjogYCR7Zmlyc3Quc2xpY2UoMCwgNDApfS4uLiwgKyR7ZXJyb3JzLmxlbmd0aCAtIDF9IGlzc3Vlc2AsXHJcbiAgICAgIHRvb2x0aXA6IGVycm9ycy5qb2luKCdcXG4nKSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICByZXR1cm4ge1xyXG4gICAgZXJyb3I6IGAke2ZpcnN0fSwgKyR7ZXJyb3JzLmxlbmd0aCAtIDF9IGlzc3Vlc2AsXHJcbiAgICB0b29sdGlwOiBlcnJvcnMuam9pbignXFxuJyksXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gdG9Ub29sdGlwRm4oXHJcbiAgbWVyZ2U6IChlcnJvcnM6IHN0cmluZ1tdKSA9PiBzdHJpbmcgfCB7IHRvb2x0aXA6IHN0cmluZzsgZXJyb3I6IHN0cmluZyB9LFxyXG4pIHtcclxuICByZXR1cm4gKGVycm9yczogc3RyaW5nW10pID0+IHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IG1lcmdlKGVycm9ycyk7XHJcbiAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBlcnJvcjogcmVzdWx0LFxyXG4gICAgICAgIHRvb2x0aXA6ICcnLFxyXG4gICAgICAgIG1lcmdlZDogZXJyb3JzLmpvaW4oSU5URVJOQUxfRVJST1JfTUVSR0VfREVMSU0pLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlVmFsaWRhdG9yczxUPihcclxuICAuLi52YWxpZGF0b3JzOiBWYWxpZGF0b3I8VD5bXVxyXG4pOiAodmFsdWU6IFQpID0+IHN0cmluZ1tdIHtcclxuICBpZiAoIXZhbGlkYXRvcnMubGVuZ3RoKSByZXR1cm4gKCkgPT4gW107XHJcblxyXG4gIHJldHVybiAodmFsdWUpID0+IHZhbGlkYXRvcnMubWFwKCh2YWwpID0+IHZhbCh2YWx1ZSkpLmZpbHRlcihCb29sZWFuKTtcclxufVxyXG5cclxudHlwZSBNZXJnZUZuPFQ+ID0gKCh2YWx1ZTogVCkgPT4gc3RyaW5nKSAmIHtcclxuICByZXNvbHZlOiAobWVyZ2VkRXJyb3I6IHN0cmluZykgPT4ge1xyXG4gICAgZXJyb3I6IHN0cmluZztcclxuICAgIHRvb2x0aXA6IHN0cmluZztcclxuICB9O1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1lcmdlVmFsaWRhdG9ycyhcclxuICBtZXJnZT86IChlcnJvcnM6IHN0cmluZ1tdKSA9PlxyXG4gICAgfCBzdHJpbmdcclxuICAgIHwge1xyXG4gICAgICAgIHRvb2x0aXA6IHN0cmluZztcclxuICAgICAgICBlcnJvcjogc3RyaW5nO1xyXG4gICAgICB9LFxyXG4pIHtcclxuICBjb25zdCBtZXJnZUZuID0gbWVyZ2UgPyB0b1Rvb2x0aXBGbihtZXJnZSkgOiBkZWZhdWx0TWVyZ2VNZXNzYWdlO1xyXG5cclxuICByZXR1cm4gPFQ+KHZhbGlkYXRvcnM6IFZhbGlkYXRvcjxUPltdKSA9PiB7XHJcbiAgICBjb25zdCB2YWxpZGF0ZSA9IG1lcmdlVmFsaWRhdG9ycyguLi52YWxpZGF0b3JzKTtcclxuXHJcbiAgICBjb25zdCBmbiA9ICgodmFsdWU6IFQpID0+XHJcbiAgICAgIHZhbGlkYXRlKHZhbHVlKS5qb2luKElOVEVSTkFMX0VSUk9SX01FUkdFX0RFTElNKSkgYXMgTWVyZ2VGbjxUPjtcclxuXHJcbiAgICBmbi5yZXNvbHZlID0gKG1lcmdlZEVycm9yOiBzdHJpbmcpID0+IHtcclxuICAgICAgcmV0dXJuIG1lcmdlRm4obWVyZ2VkRXJyb3Iuc3BsaXQoSU5URVJOQUxfRVJST1JfTUVSR0VfREVMSU0pKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGZuO1xyXG4gIH07XHJcbn1cclxuIl19","export function defaultMaxLengthMessageFactory(max, elementsLabel) {\n    return `Max ${max} ${elementsLabel}`;\n}\nexport function createMaxLengthValidator(createMsg) {\n    return (max, elementsLabel = 'items') => {\n        const msg = createMsg(max, elementsLabel);\n        return (value) => {\n            const length = value?.length ?? 0;\n            if (length > max)\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LWxlbmd0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm0vdmFsaWRhdGlvbi9zcmMvbGliL2FycmF5L21heC1sZW5ndGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLDhCQUE4QixDQUM1QyxHQUFXLEVBQ1gsYUFBc0I7SUFFdEIsT0FBTyxPQUFPLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxTQUEwRDtJQUsxRCxPQUFPLENBQUMsR0FBRyxFQUFFLGFBQWEsR0FBRyxPQUFPLEVBQUUsRUFBRTtRQUN0QyxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1lBRWxDLElBQUksTUFBTSxHQUFHLEdBQUc7Z0JBQUUsT0FBTyxHQUFHLENBQUM7WUFDN0IsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi4vdmFsaWRhdG9yLnR5cGUnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRNYXhMZW5ndGhNZXNzYWdlRmFjdG9yeShcclxuICBtYXg6IG51bWJlcixcclxuICBlbGVtZW50c0xhYmVsPzogc3RyaW5nLFxyXG4pIHtcclxuICByZXR1cm4gYE1heCAke21heH0gJHtlbGVtZW50c0xhYmVsfWA7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNYXhMZW5ndGhWYWxpZGF0b3IoXHJcbiAgY3JlYXRlTXNnOiAobWF4OiBudW1iZXIsIGVsZW1lbnRzTGFiZWw/OiBzdHJpbmcpID0+IHN0cmluZyxcclxuKTogPFQgZXh0ZW5kcyBzdHJpbmcgfCBhbnlbXSB8IG51bGw+KFxyXG4gIG1heDogbnVtYmVyLFxyXG4gIGVsZW1lbnRzTGFiZWw/OiBzdHJpbmcsXHJcbikgPT4gVmFsaWRhdG9yPFQ+IHtcclxuICByZXR1cm4gKG1heCwgZWxlbWVudHNMYWJlbCA9ICdpdGVtcycpID0+IHtcclxuICAgIGNvbnN0IG1zZyA9IGNyZWF0ZU1zZyhtYXgsIGVsZW1lbnRzTGFiZWwpO1xyXG4gICAgcmV0dXJuICh2YWx1ZSkgPT4ge1xyXG4gICAgICBjb25zdCBsZW5ndGggPSB2YWx1ZT8ubGVuZ3RoID8/IDA7XHJcblxyXG4gICAgICBpZiAobGVuZ3RoID4gbWF4KSByZXR1cm4gbXNnO1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9O1xyXG4gIH07XHJcbn1cclxuIl19","export function defaultMinLengthMessageFactory(min, elementsLabel) {\n    return `Min ${min} ${elementsLabel}`;\n}\nexport function createMinLengthValidator(createMsg) {\n    return (min, elementsLabel = 'items') => {\n        const msg = createMsg(min, elementsLabel);\n        return (value) => {\n            const length = value?.length ?? 0;\n            if (length < min)\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluLWxlbmd0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm0vdmFsaWRhdGlvbi9zcmMvbGliL2FycmF5L21pbi1sZW5ndGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLDhCQUE4QixDQUM1QyxHQUFXLEVBQ1gsYUFBc0I7SUFFdEIsT0FBTyxPQUFPLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxTQUEwRDtJQUsxRCxPQUFPLENBQUMsR0FBRyxFQUFFLGFBQWEsR0FBRyxPQUFPLEVBQUUsRUFBRTtRQUN0QyxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1lBRWxDLElBQUksTUFBTSxHQUFHLEdBQUc7Z0JBQUUsT0FBTyxHQUFHLENBQUM7WUFDN0IsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi4vdmFsaWRhdG9yLnR5cGUnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRNaW5MZW5ndGhNZXNzYWdlRmFjdG9yeShcclxuICBtaW46IG51bWJlcixcclxuICBlbGVtZW50c0xhYmVsPzogc3RyaW5nLFxyXG4pIHtcclxuICByZXR1cm4gYE1pbiAke21pbn0gJHtlbGVtZW50c0xhYmVsfWA7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNaW5MZW5ndGhWYWxpZGF0b3IoXHJcbiAgY3JlYXRlTXNnOiAobWluOiBudW1iZXIsIGVsZW1lbnRzTGFiZWw/OiBzdHJpbmcpID0+IHN0cmluZyxcclxuKTogPFQgZXh0ZW5kcyBzdHJpbmcgfCBhbnlbXSB8IG51bGw+KFxyXG4gIG1pbjogbnVtYmVyLFxyXG4gIGVsZW1lbnRzTGFiZWw/OiBzdHJpbmcsXHJcbikgPT4gVmFsaWRhdG9yPFQ+IHtcclxuICByZXR1cm4gKG1pbiwgZWxlbWVudHNMYWJlbCA9ICdpdGVtcycpID0+IHtcclxuICAgIGNvbnN0IG1zZyA9IGNyZWF0ZU1zZyhtaW4sIGVsZW1lbnRzTGFiZWwpO1xyXG4gICAgcmV0dXJuICh2YWx1ZSkgPT4ge1xyXG4gICAgICBjb25zdCBsZW5ndGggPSB2YWx1ZT8ubGVuZ3RoID8/IDA7XHJcblxyXG4gICAgICBpZiAobGVuZ3RoIDwgbWluKSByZXR1cm4gbXNnO1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9O1xyXG4gIH07XHJcbn1cclxuIl19","import { createMergeValidators } from '../merge-validators';\nimport { createMaxLengthValidator, defaultMaxLengthMessageFactory, } from './max-length';\nimport { createMinLengthValidator, defaultMinLengthMessageFactory, } from './min-length';\nconst DEFAULT_MESSAGES = {\n    minLength: defaultMinLengthMessageFactory,\n    maxLength: defaultMaxLengthMessageFactory,\n};\nexport function createArrayValidators(factories, merger = createMergeValidators()) {\n    const t = { ...DEFAULT_MESSAGES, ...factories };\n    const base = {\n        minLength: createMinLengthValidator(t.minLength),\n        maxLength: createMaxLengthValidator(t.maxLength),\n    };\n    return {\n        ...base,\n        all: (opt) => {\n            const validators = [];\n            if (opt.minLength !== undefined)\n                validators.push(base.minLength(opt.minLength, typeof opt.elementsLabel === 'function'\n                    ? opt.elementsLabel(opt.minLength)\n                    : opt.elementsLabel));\n            if (opt.maxLength !== undefined)\n                validators.push(base.maxLength(opt.maxLength, typeof opt.elementsLabel === 'function'\n                    ? opt.elementsLabel(opt.maxLength)\n                    : opt.elementsLabel));\n            return merger(validators);\n        },\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mb3JtL3ZhbGlkYXRpb24vc3JjL2xpYi9hcnJheS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDhCQUE4QixHQUMvQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDhCQUE4QixHQUMvQixNQUFNLGNBQWMsQ0FBQztBQU90QixNQUFNLGdCQUFnQixHQUEwQjtJQUM5QyxTQUFTLEVBQUUsOEJBQThCO0lBQ3pDLFNBQVMsRUFBRSw4QkFBOEI7Q0FDMUMsQ0FBQztBQTZCRixNQUFNLFVBQVUscUJBQXFCLENBQ25DLFNBQTBDLEVBQzFDLE1BQU0sR0FBRyxxQkFBcUIsRUFBRTtJQUVoQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUNoRCxNQUFNLElBQUksR0FBRztRQUNYLFNBQVMsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hELFNBQVMsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0tBQ2pELENBQUM7SUFFRixPQUFPO1FBQ0wsR0FBRyxJQUFJO1FBQ1AsR0FBRyxFQUFFLENBQWtCLEdBQTBCLEVBQUUsRUFBRTtZQUNuRCxNQUFNLFVBQVUsR0FBbUIsRUFBRSxDQUFDO1lBRXRDLElBQUksR0FBRyxDQUFDLFNBQVMsS0FBSyxTQUFTO2dCQUM3QixVQUFVLENBQUMsSUFBSSxDQUNiLElBQUksQ0FBQyxTQUFTLENBQ1osR0FBRyxDQUFDLFNBQVMsRUFDYixPQUFPLEdBQUcsQ0FBQyxhQUFhLEtBQUssVUFBVTtvQkFDckMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztvQkFDbEMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQ3RCLENBQ0YsQ0FBQztZQUNKLElBQUksR0FBRyxDQUFDLFNBQVMsS0FBSyxTQUFTO2dCQUM3QixVQUFVLENBQUMsSUFBSSxDQUNiLElBQUksQ0FBQyxTQUFTLENBQ1osR0FBRyxDQUFDLFNBQVMsRUFDYixPQUFPLEdBQUcsQ0FBQyxhQUFhLEtBQUssVUFBVTtvQkFDckMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztvQkFDbEMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQ3RCLENBQ0YsQ0FBQztZQUVKLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZU1lcmdlVmFsaWRhdG9ycyB9IGZyb20gJy4uL21lcmdlLXZhbGlkYXRvcnMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tICcuLi92YWxpZGF0b3IudHlwZSc7XHJcbmltcG9ydCB7XHJcbiAgY3JlYXRlTWF4TGVuZ3RoVmFsaWRhdG9yLFxyXG4gIGRlZmF1bHRNYXhMZW5ndGhNZXNzYWdlRmFjdG9yeSxcclxufSBmcm9tICcuL21heC1sZW5ndGgnO1xyXG5pbXBvcnQge1xyXG4gIGNyZWF0ZU1pbkxlbmd0aFZhbGlkYXRvcixcclxuICBkZWZhdWx0TWluTGVuZ3RoTWVzc2FnZUZhY3RvcnksXHJcbn0gZnJvbSAnLi9taW4tbGVuZ3RoJztcclxuXHJcbmV4cG9ydCB0eXBlIEFycmF5TWVzc2FnZUZhY3RvcmllcyA9IHtcclxuICBtaW5MZW5ndGg6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZU1pbkxlbmd0aFZhbGlkYXRvcj5bMF07XHJcbiAgbWF4TGVuZ3RoOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVNYXhMZW5ndGhWYWxpZGF0b3I+WzBdO1xyXG59O1xyXG5cclxuY29uc3QgREVGQVVMVF9NRVNTQUdFUzogQXJyYXlNZXNzYWdlRmFjdG9yaWVzID0ge1xyXG4gIG1pbkxlbmd0aDogZGVmYXVsdE1pbkxlbmd0aE1lc3NhZ2VGYWN0b3J5LFxyXG4gIG1heExlbmd0aDogZGVmYXVsdE1heExlbmd0aE1lc3NhZ2VGYWN0b3J5LFxyXG59O1xyXG5cclxuLyoqXHJcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgY3JlYXRpbmcgYSBjb21iaW5lZCBhcnJheSB2YWxpZGF0b3IgdXNpbmcgdGhlXHJcbiAqIGAuYWxsKClgIG1ldGhvZCByZXR1cm5lZCBieSBgY3JlYXRlQXJyYXlWYWxpZGF0b3JzYCAoYWNjZXNzZWQgdmlhIGBpbmplY3RWYWxpZGF0b3JzKCkuYXJyYXkuYWxsYCkuXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBBcnJheVZhbGlkYXRvck9wdGlvbnMgPSB7XHJcbiAgLyoqXHJcbiAgICogTWluaW11bSBhbGxvd2VkIGFycmF5IGxlbmd0aC5cclxuICAgKiBWYWxpZGF0aW9uIGZhaWxzIGlmIHRoZSBhcnJheSBoYXMgZmV3ZXIgZWxlbWVudHMgdGhhbiB0aGlzIG51bWJlci5cclxuICAgKiBAZXhhbXBsZSB7IG1pbkxlbmd0aDogMSB9IC8vIEFycmF5IG11c3Qgbm90IGJlIGVtcHR5XHJcbiAgICovXHJcbiAgbWluTGVuZ3RoPzogbnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBNYXhpbXVtIGFsbG93ZWQgYXJyYXkgbGVuZ3RoLlxyXG4gICAqIFZhbGlkYXRpb24gZmFpbHMgaWYgdGhlIGFycmF5IGhhcyBtb3JlIGVsZW1lbnRzIHRoYW4gdGhpcyBudW1iZXIuXHJcbiAgICogQGV4YW1wbGUgeyBtYXhMZW5ndGg6IDUgfSAvLyBBcnJheSBjYW4gaGF2ZSBhdCBtb3N0IDUgaXRlbXNcclxuICAgKi9cclxuICBtYXhMZW5ndGg/OiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wdGlvbmFsIGxhYmVsIGZvciB0aGUgYXJyYXkgZWxlbWVudHMgdXNlZCBpbiBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXNcclxuICAgKiAoZS5nLiwgJ2l0ZW1zJywgJ3VzZXJzJywgJ3RhZ3MnKS4gRGVmYXVsdHMgdHlwaWNhbGx5IHRvICdpdGVtcycuXHJcbiAgICogQGV4YW1wbGUgeyBtaW5MZW5ndGg6IDIsIGVsZW1lbnRzTGFiZWw6ICd0YWdzJyB9IC8vIEVycm9yIG1pZ2h0IGJlIFwiTWluIDIgdGFnc1wiXHJcbiAgICovXHJcbiAgZWxlbWVudHNMYWJlbD86IHN0cmluZyB8ICgobnVtOiBudW1iZXIpID0+IHN0cmluZyk7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQXJyYXlWYWxpZGF0b3JzKFxyXG4gIGZhY3Rvcmllcz86IFBhcnRpYWw8QXJyYXlNZXNzYWdlRmFjdG9yaWVzPixcclxuICBtZXJnZXIgPSBjcmVhdGVNZXJnZVZhbGlkYXRvcnMoKSxcclxuKSB7XHJcbiAgY29uc3QgdCA9IHsgLi4uREVGQVVMVF9NRVNTQUdFUywgLi4uZmFjdG9yaWVzIH07XHJcbiAgY29uc3QgYmFzZSA9IHtcclxuICAgIG1pbkxlbmd0aDogY3JlYXRlTWluTGVuZ3RoVmFsaWRhdG9yKHQubWluTGVuZ3RoKSxcclxuICAgIG1heExlbmd0aDogY3JlYXRlTWF4TGVuZ3RoVmFsaWRhdG9yKHQubWF4TGVuZ3RoKSxcclxuICB9O1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgLi4uYmFzZSxcclxuICAgIGFsbDogPFQgZXh0ZW5kcyBhbnlbXT4ob3B0OiBBcnJheVZhbGlkYXRvck9wdGlvbnMpID0+IHtcclxuICAgICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yPFQ+W10gPSBbXTtcclxuXHJcbiAgICAgIGlmIChvcHQubWluTGVuZ3RoICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFxyXG4gICAgICAgICAgYmFzZS5taW5MZW5ndGgoXHJcbiAgICAgICAgICAgIG9wdC5taW5MZW5ndGgsXHJcbiAgICAgICAgICAgIHR5cGVvZiBvcHQuZWxlbWVudHNMYWJlbCA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICAgICAgICAgICAgID8gb3B0LmVsZW1lbnRzTGFiZWwob3B0Lm1pbkxlbmd0aClcclxuICAgICAgICAgICAgICA6IG9wdC5lbGVtZW50c0xhYmVsLFxyXG4gICAgICAgICAgKSxcclxuICAgICAgICApO1xyXG4gICAgICBpZiAob3B0Lm1heExlbmd0aCAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHZhbGlkYXRvcnMucHVzaChcclxuICAgICAgICAgIGJhc2UubWF4TGVuZ3RoKFxyXG4gICAgICAgICAgICBvcHQubWF4TGVuZ3RoLFxyXG4gICAgICAgICAgICB0eXBlb2Ygb3B0LmVsZW1lbnRzTGFiZWwgPT09ICdmdW5jdGlvbidcclxuICAgICAgICAgICAgICA/IG9wdC5lbGVtZW50c0xhYmVsKG9wdC5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgICAgOiBvcHQuZWxlbWVudHNMYWJlbCxcclxuICAgICAgICAgICksXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgIHJldHVybiBtZXJnZXIodmFsaWRhdG9ycyk7XHJcbiAgICB9LFxyXG4gIH07XHJcbn1cclxuIl19","export function defaultMustBeTreFactory() {\n    return `Must be true`;\n}\nexport function createMustBeTrueValidator(createMsg) {\n    return () => {\n        const msg = createMsg();\n        return (value) => {\n            if (value !== true)\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVzdC1iZS10cnVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZm9ybS92YWxpZGF0aW9uL3NyYy9saWIvYm9vbGVhbi9tdXN0LWJlLXRydWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLHVCQUF1QjtJQUNyQyxPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxTQUF1QjtJQUV2QixPQUFPLEdBQUcsRUFBRTtRQUNWLE1BQU0sR0FBRyxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLElBQUksS0FBSyxLQUFLLElBQUk7Z0JBQUUsT0FBTyxHQUFHLENBQUM7WUFDL0IsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi4vdmFsaWRhdG9yLnR5cGUnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRNdXN0QmVUcmVGYWN0b3J5KCkge1xyXG4gIHJldHVybiBgTXVzdCBiZSB0cnVlYDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU11c3RCZVRydWVWYWxpZGF0b3IoXHJcbiAgY3JlYXRlTXNnOiAoKSA9PiBzdHJpbmcsXHJcbik6ICgpID0+IFZhbGlkYXRvcjxib29sZWFuPiB7XHJcbiAgcmV0dXJuICgpID0+IHtcclxuICAgIGNvbnN0IG1zZyA9IGNyZWF0ZU1zZygpO1xyXG4gICAgcmV0dXJuICh2YWx1ZSkgPT4ge1xyXG4gICAgICBpZiAodmFsdWUgIT09IHRydWUpIHJldHVybiBtc2c7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH07XHJcbiAgfTtcclxufVxyXG4iXX0=","import { createMustBeTrueValidator, defaultMustBeTreFactory, } from './must-be-true';\nconst DEFAULT_MESSAGES = {\n    mustBeTrue: defaultMustBeTreFactory,\n};\nexport function createBooleanValidators(factories) {\n    const t = { ...DEFAULT_MESSAGES, ...factories };\n    return {\n        mustBeTrue: createMustBeTrueValidator(t.mustBeTrue),\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mb3JtL3ZhbGlkYXRpb24vc3JjL2xpYi9ib29sZWFuL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsdUJBQXVCLEdBQ3hCLE1BQU0sZ0JBQWdCLENBQUM7QUFNeEIsTUFBTSxnQkFBZ0IsR0FBNEI7SUFDaEQsVUFBVSxFQUFFLHVCQUF1QjtDQUNwQyxDQUFDO0FBRUYsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxTQUE0QztJQUU1QyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUVoRCxPQUFPO1FBQ0wsVUFBVSxFQUFFLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7S0FDcEQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGNyZWF0ZU11c3RCZVRydWVWYWxpZGF0b3IsXHJcbiAgZGVmYXVsdE11c3RCZVRyZUZhY3RvcnksXHJcbn0gZnJvbSAnLi9tdXN0LWJlLXRydWUnO1xyXG5cclxuZXhwb3J0IHR5cGUgQm9vbGVhbk1lc3NhZ2VGYWN0b3JpZXMgPSB7XHJcbiAgbXVzdEJlVHJ1ZTogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlTXVzdEJlVHJ1ZVZhbGlkYXRvcj5bMF07XHJcbn07XHJcblxyXG5jb25zdCBERUZBVUxUX01FU1NBR0VTOiBCb29sZWFuTWVzc2FnZUZhY3RvcmllcyA9IHtcclxuICBtdXN0QmVUcnVlOiBkZWZhdWx0TXVzdEJlVHJlRmFjdG9yeSxcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCb29sZWFuVmFsaWRhdG9ycyhcclxuICBmYWN0b3JpZXM/OiBQYXJ0aWFsPEJvb2xlYW5NZXNzYWdlRmFjdG9yaWVzPixcclxuKSB7XHJcbiAgY29uc3QgdCA9IHsgLi4uREVGQVVMVF9NRVNTQUdFUywgLi4uZmFjdG9yaWVzIH07XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBtdXN0QmVUcnVlOiBjcmVhdGVNdXN0QmVUcnVlVmFsaWRhdG9yKHQubXVzdEJlVHJ1ZSksXHJcbiAgfTtcclxufVxyXG4iXX0=","export function defaultMustBeMessageFactory(valueLabel) {\n    return `Must be ${valueLabel}`;\n}\nexport function createMustBeValidator(createMessage) {\n    return (value, valueLabel = `${value}`, matcher = Object.is) => {\n        const msg = createMessage(valueLabel);\n        return (currentValue) => {\n            if (!matcher(value, currentValue))\n                return msg;\n            return '';\n        };\n    };\n}\nexport function defaultMustBeEmptyMessageFactory() {\n    return defaultMustBeMessageFactory('empty');\n}\nexport function createMustBeEmptyValidator(createMessage) {\n    return () => createMustBeValidator(createMessage)(null);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVzdC1iZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm0vdmFsaWRhdGlvbi9zcmMvbGliL2dlbmVyYWwvbXVzdC1iZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsMkJBQTJCLENBQUMsVUFBa0I7SUFDNUQsT0FBTyxXQUFXLFVBQVUsRUFBRSxDQUFDO0FBQ2pDLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLGFBQTZDO0lBRTdDLE9BQU8sQ0FDTCxLQUFRLEVBQ1IsVUFBVSxHQUFHLEdBQUcsS0FBSyxFQUFFLEVBQ3ZCLFVBQW1DLE1BQU0sQ0FBQyxFQUFFLEVBQzlCLEVBQUU7UUFDaEIsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXRDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUM7Z0JBQUUsT0FBTyxHQUFHLENBQUM7WUFDOUMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGdDQUFnQztJQUM5QyxPQUFPLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsYUFBMkI7SUFDcEUsT0FBTyxHQUFNLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsQ0FBSSxJQUFTLENBQUMsQ0FBQztBQUNyRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi4vdmFsaWRhdG9yLnR5cGUnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRNdXN0QmVNZXNzYWdlRmFjdG9yeSh2YWx1ZUxhYmVsOiBzdHJpbmcpIHtcclxuICByZXR1cm4gYE11c3QgYmUgJHt2YWx1ZUxhYmVsfWA7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNdXN0QmVWYWxpZGF0b3IoXHJcbiAgY3JlYXRlTWVzc2FnZTogKHZhbHVlTGFiZWw6IHN0cmluZykgPT4gc3RyaW5nLFxyXG4pIHtcclxuICByZXR1cm4gPFQ+KFxyXG4gICAgdmFsdWU6IFQsXHJcbiAgICB2YWx1ZUxhYmVsID0gYCR7dmFsdWV9YCxcclxuICAgIG1hdGNoZXI6IChhOiBULCBiOiBUKSA9PiBib29sZWFuID0gT2JqZWN0LmlzLFxyXG4gICk6IFZhbGlkYXRvcjxUPiA9PiB7XHJcbiAgICBjb25zdCBtc2cgPSBjcmVhdGVNZXNzYWdlKHZhbHVlTGFiZWwpO1xyXG5cclxuICAgIHJldHVybiAoY3VycmVudFZhbHVlKSA9PiB7XHJcbiAgICAgIGlmICghbWF0Y2hlcih2YWx1ZSwgY3VycmVudFZhbHVlKSkgcmV0dXJuIG1zZztcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfTtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdE11c3RCZUVtcHR5TWVzc2FnZUZhY3RvcnkoKSB7XHJcbiAgcmV0dXJuIGRlZmF1bHRNdXN0QmVNZXNzYWdlRmFjdG9yeSgnZW1wdHknKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU11c3RCZUVtcHR5VmFsaWRhdG9yKGNyZWF0ZU1lc3NhZ2U6ICgpID0+IHN0cmluZykge1xyXG4gIHJldHVybiA8VD4oKSA9PiBjcmVhdGVNdXN0QmVWYWxpZGF0b3IoY3JlYXRlTWVzc2FnZSk8VD4obnVsbCBhcyBUKTtcclxufVxyXG4iXX0=","export function defaultNotMessageFactory(valueLabel) {\n    return `Cannot be ${valueLabel}`;\n}\nexport function createNotValidator(createMessage) {\n    return (value, valueLabel = `${value}`, matcher = Object.is) => {\n        const msg = createMessage(valueLabel);\n        return (currentValue) => {\n            if (matcher(value, currentValue))\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZm9ybS92YWxpZGF0aW9uL3NyYy9saWIvZ2VuZXJhbC9ub3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLHdCQUF3QixDQUFDLFVBQWtCO0lBQ3pELE9BQU8sYUFBYSxVQUFVLEVBQUUsQ0FBQztBQUNuQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxhQUE2QztJQUU3QyxPQUFPLENBQ0wsS0FBUSxFQUNSLFVBQVUsR0FBRyxHQUFHLEtBQUssRUFBRSxFQUN2QixVQUFtQyxNQUFNLENBQUMsRUFBRSxFQUM5QixFQUFFO1FBQ2hCLE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV0QyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUM3QyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tICcuLi92YWxpZGF0b3IudHlwZSc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdE5vdE1lc3NhZ2VGYWN0b3J5KHZhbHVlTGFiZWw6IHN0cmluZykge1xyXG4gIHJldHVybiBgQ2Fubm90IGJlICR7dmFsdWVMYWJlbH1gO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTm90VmFsaWRhdG9yKFxyXG4gIGNyZWF0ZU1lc3NhZ2U6ICh2YWx1ZUxhYmVsOiBzdHJpbmcpID0+IHN0cmluZyxcclxuKSB7XHJcbiAgcmV0dXJuIDxUPihcclxuICAgIHZhbHVlOiBULFxyXG4gICAgdmFsdWVMYWJlbCA9IGAke3ZhbHVlfWAsXHJcbiAgICBtYXRjaGVyOiAoYTogVCwgYjogVCkgPT4gYm9vbGVhbiA9IE9iamVjdC5pcyxcclxuICApOiBWYWxpZGF0b3I8VD4gPT4ge1xyXG4gICAgY29uc3QgbXNnID0gY3JlYXRlTWVzc2FnZSh2YWx1ZUxhYmVsKTtcclxuXHJcbiAgICByZXR1cm4gKGN1cnJlbnRWYWx1ZSkgPT4ge1xyXG4gICAgICBpZiAobWF0Y2hlcih2YWx1ZSwgY3VycmVudFZhbHVlKSkgcmV0dXJuIG1zZztcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfTtcclxuICB9O1xyXG59XHJcbiJdfQ==","export function defaultNotOneOfMessageFactory(values) {\n    return `Cannot be one of: ${values}`;\n}\nfunction defaultToLabel(value) {\n    return `${value}`;\n}\nexport function createNotOneOfValidator(createMessage) {\n    return (values, toLabel = defaultToLabel, identity = defaultToLabel, delimiter = ', ') => {\n        const valuesLabel = values.map(toLabel).join(delimiter);\n        const msg = createMessage(valuesLabel);\n        const map = new Map(values.map((v) => [identity(v), v]));\n        return (currentValue) => {\n            if (map.has(identity(currentValue)))\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90LW9uZS1vZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm0vdmFsaWRhdGlvbi9zcmMvbGliL2dlbmVyYWwvbm90LW9uZS1vZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsNkJBQTZCLENBQUMsTUFBYztJQUMxRCxPQUFPLHFCQUFxQixNQUFNLEVBQUUsQ0FBQztBQUN2QyxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUksS0FBUTtJQUNqQyxPQUFPLEdBQUcsS0FBSyxFQUFFLENBQUM7QUFDcEIsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsYUFBeUM7SUFFekMsT0FBTyxDQUNMLE1BQVcsRUFDWCxVQUFnQyxjQUFjLEVBQzlDLFdBQTZCLGNBQWMsRUFDM0MsU0FBUyxHQUFHLElBQUksRUFDRixFQUFFO1FBQ2hCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV2QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekQsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ3RCLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQUUsT0FBTyxHQUFHLENBQUM7WUFDaEQsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi4vdmFsaWRhdG9yLnR5cGUnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHROb3RPbmVPZk1lc3NhZ2VGYWN0b3J5KHZhbHVlczogc3RyaW5nKSB7XHJcbiAgcmV0dXJuIGBDYW5ub3QgYmUgb25lIG9mOiAke3ZhbHVlc31gO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkZWZhdWx0VG9MYWJlbDxUPih2YWx1ZTogVCk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIGAke3ZhbHVlfWA7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOb3RPbmVPZlZhbGlkYXRvcihcclxuICBjcmVhdGVNZXNzYWdlOiAodmFsdWVzOiBzdHJpbmcpID0+IHN0cmluZyxcclxuKSB7XHJcbiAgcmV0dXJuIDxUPihcclxuICAgIHZhbHVlczogVFtdLFxyXG4gICAgdG9MYWJlbDogKHZhbHVlOiBUKSA9PiBzdHJpbmcgPSBkZWZhdWx0VG9MYWJlbCxcclxuICAgIGlkZW50aXR5OiAoYTogVCkgPT4gc3RyaW5nID0gZGVmYXVsdFRvTGFiZWwsXHJcbiAgICBkZWxpbWl0ZXIgPSAnLCAnLFxyXG4gICk6IFZhbGlkYXRvcjxUPiA9PiB7XHJcbiAgICBjb25zdCB2YWx1ZXNMYWJlbCA9IHZhbHVlcy5tYXAodG9MYWJlbCkuam9pbihkZWxpbWl0ZXIpO1xyXG4gICAgY29uc3QgbXNnID0gY3JlYXRlTWVzc2FnZSh2YWx1ZXNMYWJlbCk7XHJcblxyXG4gICAgY29uc3QgbWFwID0gbmV3IE1hcCh2YWx1ZXMubWFwKCh2KSA9PiBbaWRlbnRpdHkodiksIHZdKSk7XHJcblxyXG4gICAgcmV0dXJuIChjdXJyZW50VmFsdWUpID0+IHtcclxuICAgICAgaWYgKG1hcC5oYXMoaWRlbnRpdHkoY3VycmVudFZhbHVlKSkpIHJldHVybiBtc2c7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH07XHJcbiAgfTtcclxufVxyXG4iXX0=","export function defaultOneOfMessageFactory(values) {\n    return `Must be one of: ${values}`;\n}\nfunction defaultToLabel(value) {\n    return `${value}`;\n}\nexport function createOneOfValidator(createMessage) {\n    return (values, toLabel = defaultToLabel, identity = defaultToLabel, delimiter = ', ') => {\n        const valuesLabel = values.map(toLabel).join(delimiter);\n        const msg = createMessage(valuesLabel);\n        const map = new Map(values.map((v) => [identity(v), v]));\n        return (currentValue) => {\n            if (!map.has(identity(currentValue)))\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLW9mLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZm9ybS92YWxpZGF0aW9uL3NyYy9saWIvZ2VuZXJhbC9vbmUtb2YudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLDBCQUEwQixDQUFDLE1BQWM7SUFDdkQsT0FBTyxtQkFBbUIsTUFBTSxFQUFFLENBQUM7QUFDckMsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFJLEtBQVE7SUFDakMsT0FBTyxHQUFHLEtBQUssRUFBRSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLGFBQXlDO0lBRXpDLE9BQU8sQ0FDTCxNQUFXLEVBQ1gsVUFBZ0MsY0FBYyxFQUM5QyxXQUE2QixjQUFjLEVBQzNDLFNBQVMsR0FBRyxJQUFJLEVBQ0YsRUFBRTtRQUNoQixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RCxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXpELE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQUUsT0FBTyxHQUFHLENBQUM7WUFDakQsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi4vdmFsaWRhdG9yLnR5cGUnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRPbmVPZk1lc3NhZ2VGYWN0b3J5KHZhbHVlczogc3RyaW5nKSB7XHJcbiAgcmV0dXJuIGBNdXN0IGJlIG9uZSBvZjogJHt2YWx1ZXN9YDtcclxufVxyXG5cclxuZnVuY3Rpb24gZGVmYXVsdFRvTGFiZWw8VD4odmFsdWU6IFQpOiBzdHJpbmcge1xyXG4gIHJldHVybiBgJHt2YWx1ZX1gO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlT25lT2ZWYWxpZGF0b3IoXHJcbiAgY3JlYXRlTWVzc2FnZTogKHZhbHVlczogc3RyaW5nKSA9PiBzdHJpbmcsXHJcbikge1xyXG4gIHJldHVybiA8VD4oXHJcbiAgICB2YWx1ZXM6IFRbXSxcclxuICAgIHRvTGFiZWw6ICh2YWx1ZTogVCkgPT4gc3RyaW5nID0gZGVmYXVsdFRvTGFiZWwsXHJcbiAgICBpZGVudGl0eTogKGE6IFQpID0+IHN0cmluZyA9IGRlZmF1bHRUb0xhYmVsLFxyXG4gICAgZGVsaW1pdGVyID0gJywgJyxcclxuICApOiBWYWxpZGF0b3I8VD4gPT4ge1xyXG4gICAgY29uc3QgdmFsdWVzTGFiZWwgPSB2YWx1ZXMubWFwKHRvTGFiZWwpLmpvaW4oZGVsaW1pdGVyKTtcclxuICAgIGNvbnN0IG1zZyA9IGNyZWF0ZU1lc3NhZ2UodmFsdWVzTGFiZWwpO1xyXG5cclxuICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAodmFsdWVzLm1hcCgodikgPT4gW2lkZW50aXR5KHYpLCB2XSkpO1xyXG5cclxuICAgIHJldHVybiAoY3VycmVudFZhbHVlKSA9PiB7XHJcbiAgICAgIGlmICghbWFwLmhhcyhpZGVudGl0eShjdXJyZW50VmFsdWUpKSkgcmV0dXJuIG1zZztcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfTtcclxuICB9O1xyXG59XHJcbiJdfQ==","export function defaultRequiredMessageFactory(label = 'Field') {\n    return `${label} is required`;\n}\nfunction requiredNumber(value) {\n    return value !== null && value !== undefined;\n}\nexport function createRequiredValidator(createMsg) {\n    return (label = 'Field') => {\n        const msg = createMsg(label);\n        return (value) => {\n            if (typeof value === 'number' && !requiredNumber(value))\n                return msg;\n            if (!value)\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mb3JtL3ZhbGlkYXRpb24vc3JjL2xpYi9nZW5lcmFsL3JlcXVpcmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxLQUFLLEdBQUcsT0FBTztJQUMzRCxPQUFPLEdBQUcsS0FBSyxjQUFjLENBQUM7QUFDaEMsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLEtBQWE7SUFDbkMsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0MsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsU0FBcUM7SUFFckMsT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLEVBQUUsRUFBRTtRQUN6QixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0IsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2YsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU8sR0FBRyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxLQUFLO2dCQUFFLE9BQU8sR0FBRyxDQUFDO1lBQ3ZCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gJy4uL3ZhbGlkYXRvci50eXBlJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0UmVxdWlyZWRNZXNzYWdlRmFjdG9yeShsYWJlbCA9ICdGaWVsZCcpIHtcclxuICByZXR1cm4gYCR7bGFiZWx9IGlzIHJlcXVpcmVkYDtcclxufVxyXG5cclxuZnVuY3Rpb24gcmVxdWlyZWROdW1iZXIodmFsdWU6IG51bWJlcikge1xyXG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVxdWlyZWRWYWxpZGF0b3IoXHJcbiAgY3JlYXRlTXNnOiAobGFiZWw/OiBzdHJpbmcpID0+IHN0cmluZyxcclxuKTogPFQ+KGxhYmVsPzogc3RyaW5nKSA9PiBWYWxpZGF0b3I8VD4ge1xyXG4gIHJldHVybiAobGFiZWwgPSAnRmllbGQnKSA9PiB7XHJcbiAgICBjb25zdCBtc2cgPSBjcmVhdGVNc2cobGFiZWwpO1xyXG5cclxuICAgIHJldHVybiAodmFsdWUpID0+IHtcclxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIXJlcXVpcmVkTnVtYmVyKHZhbHVlKSkgcmV0dXJuIG1zZztcclxuICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuIG1zZztcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfTtcclxuICB9O1xyXG59XHJcbiJdfQ==","import { createMustBeEmptyValidator, createMustBeValidator, defaultMustBeEmptyMessageFactory, defaultMustBeMessageFactory, } from './must-be';\nimport { createNotValidator, defaultNotMessageFactory } from './not';\nimport { createNotOneOfValidator, defaultNotOneOfMessageFactory, } from './not-one-of';\nimport { createOneOfValidator, defaultOneOfMessageFactory } from './one-of';\nimport { createRequiredValidator, defaultRequiredMessageFactory, } from './required';\nconst DEFAULT_MESSAGES = {\n    required: defaultRequiredMessageFactory,\n    mustBe: defaultMustBeMessageFactory,\n    mustBeNull: defaultMustBeEmptyMessageFactory,\n    not: defaultNotMessageFactory,\n    oneOf: defaultOneOfMessageFactory,\n    notOneOf: defaultNotOneOfMessageFactory,\n};\n/**\n * Represents the consolidated object containing all available validator generators,\n * configured with appropriate localization and date handling for the specified `TDate` type.\n *\n * Obtain this object using `injectValidators()` within an Angular injection context.\n * Use the nested `.all()` methods (e.g., `validators.string.all({...})`) with their\n * corresponding options types (e.g., `StringValidatorOptions`) to create combined\n * validator functions for your form controls.\n *\n * Individual validators (e.g., `validators.general.required()`) are also available.\n *\n * @template TDate The type used for date values (e.g., Date, Luxon DateTime). Defaults to `Date`.\n */\nexport function createGeneralValidators(factories) {\n    const t = { ...DEFAULT_MESSAGES, ...factories };\n    const mustBeNull = createMustBeEmptyValidator(t.mustBeNull);\n    return {\n        required: createRequiredValidator(t.required),\n        mustBe: createMustBeValidator(t.mustBe),\n        mustBeNull: createMustBeEmptyValidator(t.mustBeNull),\n        not: createNotValidator(t.not),\n        oneOf: (values, toLabel, identity, delimiter) => {\n            if (!values.length)\n                return mustBeNull();\n            return createOneOfValidator(t.oneOf)(values, toLabel, identity, delimiter);\n        },\n        notOneOf: createNotOneOfValidator(t.notOneOf),\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mb3JtL3ZhbGlkYXRpb24vc3JjL2xpYi9nZW5lcmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIscUJBQXFCLEVBQ3JCLGdDQUFnQyxFQUNoQywyQkFBMkIsR0FDNUIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3JFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsNkJBQTZCLEdBQzlCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDZCQUE2QixHQUM5QixNQUFNLFlBQVksQ0FBQztBQVdwQixNQUFNLGdCQUFnQixHQUE0QjtJQUNoRCxRQUFRLEVBQUUsNkJBQTZCO0lBQ3ZDLE1BQU0sRUFBRSwyQkFBMkI7SUFDbkMsVUFBVSxFQUFFLGdDQUFnQztJQUM1QyxHQUFHLEVBQUUsd0JBQXdCO0lBQzdCLEtBQUssRUFBRSwwQkFBMEI7SUFDakMsUUFBUSxFQUFFLDZCQUE2QjtDQUN4QyxDQUFDO0FBRUY7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxTQUE0QztJQUU1QyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUVoRCxNQUFNLFVBQVUsR0FBRywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFNUQsT0FBTztRQUNMLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQzdDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3ZDLFVBQVUsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ3BELEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQzlCLEtBQUssRUFBRSxDQUNMLE1BQVcsRUFDWCxPQUE4QixFQUM5QixRQUEyQixFQUMzQixTQUFrQixFQUNKLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO2dCQUFFLE9BQU8sVUFBVSxFQUFLLENBQUM7WUFFM0MsT0FBTyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQ2xDLE1BQU0sRUFDTixPQUFPLEVBQ1AsUUFBUSxFQUNSLFNBQVMsQ0FDVixDQUFDO1FBQ0osQ0FBQztRQUNELFFBQVEsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0tBQzlDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi4vdmFsaWRhdG9yLnR5cGUnO1xyXG5pbXBvcnQge1xyXG4gIGNyZWF0ZU11c3RCZUVtcHR5VmFsaWRhdG9yLFxyXG4gIGNyZWF0ZU11c3RCZVZhbGlkYXRvcixcclxuICBkZWZhdWx0TXVzdEJlRW1wdHlNZXNzYWdlRmFjdG9yeSxcclxuICBkZWZhdWx0TXVzdEJlTWVzc2FnZUZhY3RvcnksXHJcbn0gZnJvbSAnLi9tdXN0LWJlJztcclxuaW1wb3J0IHsgY3JlYXRlTm90VmFsaWRhdG9yLCBkZWZhdWx0Tm90TWVzc2FnZUZhY3RvcnkgfSBmcm9tICcuL25vdCc7XHJcbmltcG9ydCB7XHJcbiAgY3JlYXRlTm90T25lT2ZWYWxpZGF0b3IsXHJcbiAgZGVmYXVsdE5vdE9uZU9mTWVzc2FnZUZhY3RvcnksXHJcbn0gZnJvbSAnLi9ub3Qtb25lLW9mJztcclxuaW1wb3J0IHsgY3JlYXRlT25lT2ZWYWxpZGF0b3IsIGRlZmF1bHRPbmVPZk1lc3NhZ2VGYWN0b3J5IH0gZnJvbSAnLi9vbmUtb2YnO1xyXG5pbXBvcnQge1xyXG4gIGNyZWF0ZVJlcXVpcmVkVmFsaWRhdG9yLFxyXG4gIGRlZmF1bHRSZXF1aXJlZE1lc3NhZ2VGYWN0b3J5LFxyXG59IGZyb20gJy4vcmVxdWlyZWQnO1xyXG5cclxuZXhwb3J0IHR5cGUgR2VuZXJhbE1lc3NhZ2VGYWN0b3JpZXMgPSB7XHJcbiAgcmVxdWlyZWQ6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZVJlcXVpcmVkVmFsaWRhdG9yPlswXTtcclxuICBtdXN0QmU6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZU11c3RCZVZhbGlkYXRvcj5bMF07XHJcbiAgbXVzdEJlTnVsbDogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlTXVzdEJlRW1wdHlWYWxpZGF0b3I+WzBdO1xyXG4gIG5vdDogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlTm90VmFsaWRhdG9yPlswXTtcclxuICBvbmVPZjogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlT25lT2ZWYWxpZGF0b3I+WzBdO1xyXG4gIG5vdE9uZU9mOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVOb3RPbmVPZlZhbGlkYXRvcj5bMF07XHJcbn07XHJcblxyXG5jb25zdCBERUZBVUxUX01FU1NBR0VTOiBHZW5lcmFsTWVzc2FnZUZhY3RvcmllcyA9IHtcclxuICByZXF1aXJlZDogZGVmYXVsdFJlcXVpcmVkTWVzc2FnZUZhY3RvcnksXHJcbiAgbXVzdEJlOiBkZWZhdWx0TXVzdEJlTWVzc2FnZUZhY3RvcnksXHJcbiAgbXVzdEJlTnVsbDogZGVmYXVsdE11c3RCZUVtcHR5TWVzc2FnZUZhY3RvcnksXHJcbiAgbm90OiBkZWZhdWx0Tm90TWVzc2FnZUZhY3RvcnksXHJcbiAgb25lT2Y6IGRlZmF1bHRPbmVPZk1lc3NhZ2VGYWN0b3J5LFxyXG4gIG5vdE9uZU9mOiBkZWZhdWx0Tm90T25lT2ZNZXNzYWdlRmFjdG9yeSxcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXByZXNlbnRzIHRoZSBjb25zb2xpZGF0ZWQgb2JqZWN0IGNvbnRhaW5pbmcgYWxsIGF2YWlsYWJsZSB2YWxpZGF0b3IgZ2VuZXJhdG9ycyxcclxuICogY29uZmlndXJlZCB3aXRoIGFwcHJvcHJpYXRlIGxvY2FsaXphdGlvbiBhbmQgZGF0ZSBoYW5kbGluZyBmb3IgdGhlIHNwZWNpZmllZCBgVERhdGVgIHR5cGUuXHJcbiAqXHJcbiAqIE9idGFpbiB0aGlzIG9iamVjdCB1c2luZyBgaW5qZWN0VmFsaWRhdG9ycygpYCB3aXRoaW4gYW4gQW5ndWxhciBpbmplY3Rpb24gY29udGV4dC5cclxuICogVXNlIHRoZSBuZXN0ZWQgYC5hbGwoKWAgbWV0aG9kcyAoZS5nLiwgYHZhbGlkYXRvcnMuc3RyaW5nLmFsbCh7Li4ufSlgKSB3aXRoIHRoZWlyXHJcbiAqIGNvcnJlc3BvbmRpbmcgb3B0aW9ucyB0eXBlcyAoZS5nLiwgYFN0cmluZ1ZhbGlkYXRvck9wdGlvbnNgKSB0byBjcmVhdGUgY29tYmluZWRcclxuICogdmFsaWRhdG9yIGZ1bmN0aW9ucyBmb3IgeW91ciBmb3JtIGNvbnRyb2xzLlxyXG4gKlxyXG4gKiBJbmRpdmlkdWFsIHZhbGlkYXRvcnMgKGUuZy4sIGB2YWxpZGF0b3JzLmdlbmVyYWwucmVxdWlyZWQoKWApIGFyZSBhbHNvIGF2YWlsYWJsZS5cclxuICpcclxuICogQHRlbXBsYXRlIFREYXRlIFRoZSB0eXBlIHVzZWQgZm9yIGRhdGUgdmFsdWVzIChlLmcuLCBEYXRlLCBMdXhvbiBEYXRlVGltZSkuIERlZmF1bHRzIHRvIGBEYXRlYC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVHZW5lcmFsVmFsaWRhdG9ycyhcclxuICBmYWN0b3JpZXM/OiBQYXJ0aWFsPEdlbmVyYWxNZXNzYWdlRmFjdG9yaWVzPixcclxuKSB7XHJcbiAgY29uc3QgdCA9IHsgLi4uREVGQVVMVF9NRVNTQUdFUywgLi4uZmFjdG9yaWVzIH07XHJcblxyXG4gIGNvbnN0IG11c3RCZU51bGwgPSBjcmVhdGVNdXN0QmVFbXB0eVZhbGlkYXRvcih0Lm11c3RCZU51bGwpO1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgcmVxdWlyZWQ6IGNyZWF0ZVJlcXVpcmVkVmFsaWRhdG9yKHQucmVxdWlyZWQpLFxyXG4gICAgbXVzdEJlOiBjcmVhdGVNdXN0QmVWYWxpZGF0b3IodC5tdXN0QmUpLFxyXG4gICAgbXVzdEJlTnVsbDogY3JlYXRlTXVzdEJlRW1wdHlWYWxpZGF0b3IodC5tdXN0QmVOdWxsKSxcclxuICAgIG5vdDogY3JlYXRlTm90VmFsaWRhdG9yKHQubm90KSxcclxuICAgIG9uZU9mOiA8VD4oXHJcbiAgICAgIHZhbHVlczogVFtdLFxyXG4gICAgICB0b0xhYmVsPzogKHZhbHVlOiBUKSA9PiBzdHJpbmcsXHJcbiAgICAgIGlkZW50aXR5PzogKGE6IFQpID0+IHN0cmluZyxcclxuICAgICAgZGVsaW1pdGVyPzogc3RyaW5nLFxyXG4gICAgKTogVmFsaWRhdG9yPFQ+ID0+IHtcclxuICAgICAgaWYgKCF2YWx1ZXMubGVuZ3RoKSByZXR1cm4gbXVzdEJlTnVsbDxUPigpO1xyXG5cclxuICAgICAgcmV0dXJuIGNyZWF0ZU9uZU9mVmFsaWRhdG9yKHQub25lT2YpKFxyXG4gICAgICAgIHZhbHVlcyxcclxuICAgICAgICB0b0xhYmVsLFxyXG4gICAgICAgIGlkZW50aXR5LFxyXG4gICAgICAgIGRlbGltaXRlcixcclxuICAgICAgKTtcclxuICAgIH0sXHJcbiAgICBub3RPbmVPZjogY3JlYXRlTm90T25lT2ZWYWxpZGF0b3IodC5ub3RPbmVPZiksXHJcbiAgfTtcclxufVxyXG4iXX0=","export function defaultIsDateMessageFactory() {\n    return `Must be a valid date`;\n}\nexport function createIsDateValidator(createMsg, toDate) {\n    const msg = createMsg();\n    return () => {\n        return (value) => {\n            if (value === null)\n                return '';\n            const date = toDate(value);\n            if (isNaN(date.getTime()))\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm0vdmFsaWRhdGlvbi9zcmMvbGliL2RhdGUvaXMtZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsMkJBQTJCO0lBQ3pDLE9BQU8sc0JBQXNCLENBQUM7QUFDaEMsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsU0FBdUIsRUFDdkIsTUFBc0M7SUFFdEMsTUFBTSxHQUFHLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFDeEIsT0FBTyxHQUFHLEVBQUU7UUFDVixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDZixJQUFJLEtBQUssS0FBSyxJQUFJO2dCQUFFLE9BQU8sRUFBRSxDQUFDO1lBRTlCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQUUsT0FBTyxHQUFHLENBQUM7WUFFdEMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi4vdmFsaWRhdG9yLnR5cGUnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRJc0RhdGVNZXNzYWdlRmFjdG9yeSgpIHtcclxuICByZXR1cm4gYE11c3QgYmUgYSB2YWxpZCBkYXRlYDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUlzRGF0ZVZhbGlkYXRvcjxURGF0ZSA9IERhdGU+KFxyXG4gIGNyZWF0ZU1zZzogKCkgPT4gc3RyaW5nLFxyXG4gIHRvRGF0ZTogKGRhdGU6IFREYXRlIHwgc3RyaW5nKSA9PiBEYXRlLFxyXG4pOiAoKSA9PiBWYWxpZGF0b3I8VERhdGUgfCBzdHJpbmcgfCBudWxsPiB7XHJcbiAgY29uc3QgbXNnID0gY3JlYXRlTXNnKCk7XHJcbiAgcmV0dXJuICgpID0+IHtcclxuICAgIHJldHVybiAodmFsdWUpID0+IHtcclxuICAgICAgaWYgKHZhbHVlID09PSBudWxsKSByZXR1cm4gJyc7XHJcblxyXG4gICAgICBjb25zdCBkYXRlID0gdG9EYXRlKHZhbHVlKTtcclxuICAgICAgaWYgKGlzTmFOKGRhdGUuZ2V0VGltZSgpKSkgcmV0dXJuIG1zZztcclxuXHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH07XHJcbiAgfTtcclxufVxyXG4iXX0=","export function defaultMaxDateMessageFactory(dateLabel) {\n    return `Must be before ${dateLabel}`;\n}\nexport function createMaxDateValidator(createMsg, toDate, formatDate, locale) {\n    return (date) => {\n        const d = toDate(date);\n        const matchTime = d.getTime();\n        const msg = createMsg(formatDate(d, locale));\n        return (value) => {\n            if (value === null)\n                return '';\n            if (toDate(value).getTime() > matchTime)\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mb3JtL3ZhbGlkYXRpb24vc3JjL2xpYi9kYXRlL21heC1kYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxTQUFpQjtJQUM1RCxPQUFPLGtCQUFrQixTQUFTLEVBQUUsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxTQUF3QyxFQUN4QyxNQUFzQyxFQUN0QyxVQUFrRCxFQUNsRCxNQUFjO0lBRWQsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2QsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUU5QixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLElBQUksS0FBSyxLQUFLLElBQUk7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDOUIsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsU0FBUztnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUNwRCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tICcuLi92YWxpZGF0b3IudHlwZSc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdE1heERhdGVNZXNzYWdlRmFjdG9yeShkYXRlTGFiZWw6IHN0cmluZykge1xyXG4gIHJldHVybiBgTXVzdCBiZSBiZWZvcmUgJHtkYXRlTGFiZWx9YDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1heERhdGVWYWxpZGF0b3I8VERhdGUgPSBEYXRlPihcclxuICBjcmVhdGVNc2c6IChkYXRlTGFiZWw6IHN0cmluZykgPT4gc3RyaW5nLFxyXG4gIHRvRGF0ZTogKGRhdGU6IFREYXRlIHwgc3RyaW5nKSA9PiBEYXRlLFxyXG4gIGZvcm1hdERhdGU6IChkYXRlOiBEYXRlLCBsb2NhbGU6IHN0cmluZykgPT4gc3RyaW5nLFxyXG4gIGxvY2FsZTogc3RyaW5nLFxyXG4pOiAoZGF0ZTogVERhdGUgfCBzdHJpbmcpID0+IFZhbGlkYXRvcjxURGF0ZSB8IHN0cmluZyB8IG51bGw+IHtcclxuICByZXR1cm4gKGRhdGUpID0+IHtcclxuICAgIGNvbnN0IGQgPSB0b0RhdGUoZGF0ZSk7XHJcbiAgICBjb25zdCBtYXRjaFRpbWUgPSBkLmdldFRpbWUoKTtcclxuXHJcbiAgICBjb25zdCBtc2cgPSBjcmVhdGVNc2coZm9ybWF0RGF0ZShkLCBsb2NhbGUpKTtcclxuICAgIHJldHVybiAodmFsdWUpID0+IHtcclxuICAgICAgaWYgKHZhbHVlID09PSBudWxsKSByZXR1cm4gJyc7XHJcbiAgICAgIGlmICh0b0RhdGUodmFsdWUpLmdldFRpbWUoKSA+IG1hdGNoVGltZSkgcmV0dXJuIG1zZztcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfTtcclxuICB9O1xyXG59XHJcbiJdfQ==","export function defaultMinDateMessageFactory(dateLabel) {\n    return `Must be after ${dateLabel}`;\n}\nexport function createMinDateValidator(createMsg, toDate, formatDate, locale) {\n    return (date) => {\n        const d = toDate(date);\n        const matchTime = d.getTime();\n        const msg = createMsg(formatDate(d, locale));\n        return (value) => {\n            if (value === null)\n                return '';\n            if (toDate(value).getTime() < matchTime)\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluLWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mb3JtL3ZhbGlkYXRpb24vc3JjL2xpYi9kYXRlL21pbi1kYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxTQUFpQjtJQUM1RCxPQUFPLGlCQUFpQixTQUFTLEVBQUUsQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxTQUF3QyxFQUN4QyxNQUFzQyxFQUN0QyxVQUFrRCxFQUNsRCxNQUFjO0lBRWQsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2QsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUU5QixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLElBQUksS0FBSyxLQUFLLElBQUk7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDOUIsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsU0FBUztnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUNwRCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tICcuLi92YWxpZGF0b3IudHlwZSc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdE1pbkRhdGVNZXNzYWdlRmFjdG9yeShkYXRlTGFiZWw6IHN0cmluZykge1xyXG4gIHJldHVybiBgTXVzdCBiZSBhZnRlciAke2RhdGVMYWJlbH1gO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWluRGF0ZVZhbGlkYXRvcjxURGF0ZSA9IERhdGU+KFxyXG4gIGNyZWF0ZU1zZzogKGRhdGVMYWJlbDogc3RyaW5nKSA9PiBzdHJpbmcsXHJcbiAgdG9EYXRlOiAoZGF0ZTogVERhdGUgfCBzdHJpbmcpID0+IERhdGUsXHJcbiAgZm9ybWF0RGF0ZTogKGRhdGU6IERhdGUsIGxvY2FsZTogc3RyaW5nKSA9PiBzdHJpbmcsXHJcbiAgbG9jYWxlOiBzdHJpbmcsXHJcbik6IChkYXRlOiBURGF0ZSB8IHN0cmluZykgPT4gVmFsaWRhdG9yPFREYXRlIHwgc3RyaW5nIHwgbnVsbD4ge1xyXG4gIHJldHVybiAoZGF0ZSkgPT4ge1xyXG4gICAgY29uc3QgZCA9IHRvRGF0ZShkYXRlKTtcclxuICAgIGNvbnN0IG1hdGNoVGltZSA9IGQuZ2V0VGltZSgpO1xyXG5cclxuICAgIGNvbnN0IG1zZyA9IGNyZWF0ZU1zZyhmb3JtYXREYXRlKGQsIGxvY2FsZSkpO1xyXG4gICAgcmV0dXJuICh2YWx1ZSkgPT4ge1xyXG4gICAgICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiAnJztcclxuICAgICAgaWYgKHRvRGF0ZSh2YWx1ZSkuZ2V0VGltZSgpIDwgbWF0Y2hUaW1lKSByZXR1cm4gbXNnO1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9O1xyXG4gIH07XHJcbn1cclxuIl19","import { createGeneralValidators } from '../general';\nimport { createMergeValidators } from '../merge-validators';\nimport { createIsDateValidator, defaultIsDateMessageFactory } from './is-date';\nimport { createMaxDateValidator, defaultMaxDateMessageFactory, } from './max-date';\nimport { createMinDateValidator, defaultMinDateMessageFactory, } from './min-date';\nimport { defaultFormatDate, defaultToDate } from './util';\nexport const DEFAULT_DATE_MESSAGES = {\n    min: defaultMinDateMessageFactory,\n    max: defaultMaxDateMessageFactory,\n    isDate: defaultIsDateMessageFactory,\n};\nexport function createDateValidators(factories, toDate = (defaultToDate), formatDate = defaultFormatDate, locale = 'en-US', generalValidators = createGeneralValidators(), merger = createMergeValidators()) {\n    const t = { ...DEFAULT_DATE_MESSAGES, ...factories };\n    const base = {\n        min: createMinDateValidator(t.min, toDate, formatDate, locale),\n        max: createMaxDateValidator(t.max, toDate, formatDate, locale),\n        isDate: createIsDateValidator(t.isDate, toDate),\n    };\n    const toLabel = (d) => d ? formatDate(toDate(d), locale) : 'null';\n    return {\n        ...base,\n        all: (opt) => {\n            const validators = [];\n            if (opt.required)\n                validators.push(generalValidators.required(opt.messageOptions?.label));\n            validators.push(base.isDate());\n            if (opt.mustBe !== undefined) {\n                if (opt.mustBe === null)\n                    validators.push(generalValidators.mustBeNull());\n                else {\n                    const d = toDate(opt.mustBe);\n                    const formatted = formatDate(d, locale);\n                    validators.push(generalValidators.mustBe(d, formatted, (a, b) => {\n                        if (!a && !b)\n                            return true;\n                        if (!a || !b)\n                            return false;\n                        return toDate(a).getTime() === toDate(b).getTime();\n                    }));\n                }\n            }\n            if (opt.not !== undefined) {\n                if (opt.not === null)\n                    validators.push(generalValidators.not(null));\n                else {\n                    const d = toDate(opt.not);\n                    const formatted = formatDate(d, locale);\n                    validators.push(generalValidators.not(d, formatted, (a, b) => {\n                        if (!a && !b)\n                            return true;\n                        if (!a || !b)\n                            return false;\n                        return toDate(a).getTime() === toDate(b).getTime();\n                    }));\n                }\n            }\n            if (opt.min !== undefined)\n                validators.push(base.min(opt.min));\n            if (opt.max !== undefined)\n                validators.push(base.max(opt.max));\n            if (opt.oneOf) {\n                const dates = opt.oneOf.map((d) => (d ? toDate(d) : null));\n                validators.push(generalValidators.oneOf(dates, toLabel, (a) => a === null || a === undefined\n                    ? 'null'\n                    : toDate(a).getTime().toString()));\n            }\n            if (opt.notOneOf) {\n                const dates = opt.notOneOf.map((d) => (d ? toDate(d) : null));\n                validators.push(generalValidators.notOneOf(dates, toLabel, (a) => a === null || a === undefined\n                    ? 'null'\n                    : toDate(a).getTime().toString()));\n            }\n            return merger(validators);\n        },\n        util: {\n            toDate,\n            formatDate,\n        },\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mb3JtL3ZhbGlkYXRpb24vc3JjL2xpYi9kYXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0UsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qiw0QkFBNEIsR0FDN0IsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qiw0QkFBNEIsR0FDN0IsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQVExRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBeUI7SUFDekQsR0FBRyxFQUFFLDRCQUE0QjtJQUNqQyxHQUFHLEVBQUUsNEJBQTRCO0lBQ2pDLE1BQU0sRUFBRSwyQkFBMkI7Q0FDcEMsQ0FBQztBQTBHRixNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLFNBQXlDLEVBQ3pDLFNBQVMsQ0FBQSxhQUFvQixDQUFBLEVBQzdCLFVBQVUsR0FBRyxpQkFBaUIsRUFDOUIsTUFBTSxHQUFHLE9BQU8sRUFDaEIsaUJBQWlCLEdBQUcsdUJBQXVCLEVBQUUsRUFDN0MsTUFBTSxHQUFHLHFCQUFxQixFQUFFO0lBRWhDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxxQkFBcUIsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBQ3JELE1BQU0sSUFBSSxHQUFHO1FBQ1gsR0FBRyxFQUFFLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUM7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QUN4QixLQUFnQixFQUNoQixPQUFPLEVBQ1AsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVM7b0JBQzNCLENBQUMsQ0FBQyxNQUFNO29CQUNSLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQ3JDLENBQ0YsQ0FBQztZQUNKLENBQUM7WUFFRCxPQUFPLE1BQU0sQ0FBQyxVQUF1QyxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUNELElBQUksRUFBRTtZQUNKLE1BQU07WUFDTixVQUFVO1NBQ1g7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUdlbmVyYWxWYWxpZGF0b3JzIH0gZnJvbSAnLi4vZ2VuZXJhbCc7XHJcbmltcG9ydCB7IGNyZWF0ZU1lcmdlVmFsaWRhdG9ycyB9IGZyb20gJy4uL21lcmdlLXZhbGlkYXRvcnMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tICcuLi92YWxpZGF0b3IudHlwZSc7XHJcbmltcG9ydCB7IGNyZWF0ZUlzRGF0ZVZhbGlkYXRvciwgZGVmYXVsdElzRGF0ZU1lc3NhZ2VGYWN0b3J5IH0gZnJvbSAnLi9pcy1kYXRlJztcclxuaW1wb3J0IHtcclxuICBjcmVhdGVNYXhEYXRlVmFsaWRhdG9yLFxyXG4gIGRlZmF1bHRNYXhEYXRlTWVzc2FnZUZhY3RvcnksXHJcbn0gZnJvbSAnLi9tYXgtZGF0ZSc7XHJcbmltcG9ydCB7XHJcbiAgY3JlYXRlTWluRGF0ZVZhbGlkYXRvcixcclxuICBkZWZhdWx0TWluRGF0ZU1lc3NhZ2VGYWN0b3J5LFxyXG59IGZyb20gJy4vbWluLWRhdGUnO1xyXG5pbXBvcnQgeyBkZWZhdWx0Rm9ybWF0RGF0ZSwgZGVmYXVsdFRvRGF0ZSB9IGZyb20gJy4vdXRpbCc7XHJcblxyXG5leHBvcnQgdHlwZSBEYXRlTWVzc2FnZUZhY3RvcmllcyA9IHtcclxuICBtaW46IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZU1pbkRhdGVWYWxpZGF0b3I+WzBdO1xyXG4gIG1heDogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlTWF4RGF0ZVZhbGlkYXRvcj5bMF07XHJcbiAgaXNEYXRlOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVJc0RhdGVWYWxpZGF0b3I+WzBdO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfREFURV9NRVNTQUdFUzogRGF0ZU1lc3NhZ2VGYWN0b3JpZXMgPSB7XHJcbiAgbWluOiBkZWZhdWx0TWluRGF0ZU1lc3NhZ2VGYWN0b3J5LFxyXG4gIG1heDogZGVmYXVsdE1heERhdGVNZXNzYWdlRmFjdG9yeSxcclxuICBpc0RhdGU6IGRlZmF1bHRJc0RhdGVNZXNzYWdlRmFjdG9yeSxcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGNyZWF0aW5nIGEgY29tYmluZWQgZGF0ZSB2YWxpZGF0b3IgdXNpbmcgdGhlIGAuYWxsKClgXHJcbiAqIG1ldGhvZCByZXR1cm5lZCBieSBgY3JlYXRlRGF0ZVZhbGlkYXRvcnNgIChhY2Nlc3NlZCB2aWEgYGluamVjdFZhbGlkYXRvcnMoKS5kYXRlLmFsbGApLlxyXG4gKlxyXG4gKiBQYXNzIGFuIG9iamVjdCBvZiB0aGlzIHR5cGUgdG8gYHZhbGlkYXRvcnMuZGF0ZS5hbGwoey4uLn0pYCB0byBzcGVjaWZ5IHdoaWNoXHJcbiAqIGRhdGUtcmVsYXRlZCB2YWxpZGF0aW9ucyBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdGluZyB2YWxpZGF0b3IgZnVuY3Rpb24uXHJcbiAqIFRoZSBgdG9EYXRlYCBmdW5jdGlvbiBwcm92aWRlZCB2aWEgYHByb3ZpZGVWYWxpZGF0b3JDb25maWdgIHdpbGwgYmUgdXNlZCBpbnRlcm5hbGx5XHJcbiAqIHRvIGhhbmRsZSBjb21wYXJpc29ucyBpZiBgc3RyaW5nYCBvciBjdXN0b20gZGF0ZSBvYmplY3QgdHlwZXMgYXJlIHVzZWQgZm9yIHRoZSBvcHRpb25zXHJcbiAqIG9yIHRoZSBjb250cm9sJ3MgdmFsdWUuXHJcbiAqXHJcbiAqIFRoZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJldHVybmVkIGJ5IGAuYWxsKClgIGV4cGVjdHMgYW4gaW5wdXQgdmFsdWUgb2YgdHlwZSBgVERhdGUgfCBudWxsYCxcclxuICogd2hlcmUgYFREYXRlYCBtYXRjaGVzIHRoZSB0eXBlIGNvbmZpZ3VyZWQgdmlhIGBwcm92aWRlVmFsaWRhdG9yQ29uZmlnYC5cclxuICovXHJcbmV4cG9ydCB0eXBlIERhdGVWYWxpZGF0b3JPcHRpb25zID0ge1xyXG4gIC8qKlxyXG4gICAqIElmIGB0cnVlYCwgdGhlIGRhdGUgdmFsdWUgbXVzdCBub3QgYmUgYG51bGxgIG9yIGB1bmRlZmluZWRgLlxyXG4gICAqIFVzZXMgdGhlIGNvbmZpZ3VyZWQgJ3JlcXVpcmVkJyB2YWxpZGF0aW9uIG1lc3NhZ2UuXHJcbiAgICogQHNlZSBWYWxpZGF0b3JzLmdlbmVyYWwucmVxdWlyZWRcclxuICAgKiBAZXhhbXBsZVxyXG4gICAqIHsgcmVxdWlyZWQ6IHRydWUgfVxyXG4gICAqL1xyXG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogU3BlY2lmaWVzIHRoZSBtaW5pbXVtIGFsbG93ZWQgZGF0ZSAoaW5jbHVzaXZlKS5cclxuICAgKiBWYWxpZGF0aW9uIGZhaWxzIGlmIHRoZSBpbnB1dCBkYXRlIGlzIGVhcmxpZXIgdGhhbiB0aGlzIGRhdGUuXHJcbiAgICogQWNjZXB0cyBhIGBEYXRlYCBvYmplY3Qgb3IgYSBkYXRlIHN0cmluZyBwYXJzZWFibGUgYnkgdGhlIGNvbmZpZ3VyZWQgYHRvRGF0ZWAgZnVuY3Rpb24uXHJcbiAgICogVXNlcyB0aGUgY29uZmlndXJlZCAnbWluIGRhdGUnIHZhbGlkYXRpb24gbWVzc2FnZS5cclxuICAgKiBAZXhhbXBsZVxyXG4gICAqIHsgbWluOiBuZXcgRGF0ZSgnMjAyNC0wMS0wMScpIH1cclxuICAgKiB7IG1pbjogJzIwMjQtMDEtMDFUMDA6MDA6MDAuMDAwWicgfVxyXG4gICAqIEBzZWUgVmFsaWRhdG9ycy5kYXRlLm1pblxyXG4gICAqL1xyXG4gIG1pbj86IERhdGUgfCBzdHJpbmc7IC8vIEFjY2VwdHMgc3RyaW5nIG9yIERhdGUgZm9yIGNvbmZpZywgaW50ZXJuYWwgYHRvRGF0ZWAgaGFuZGxlcyBpdFxyXG5cclxuICAvKipcclxuICAgKiBTcGVjaWZpZXMgdGhlIG1heGltdW0gYWxsb3dlZCBkYXRlIChpbmNsdXNpdmUpLlxyXG4gICAqIFZhbGlkYXRpb24gZmFpbHMgaWYgdGhlIGlucHV0IGRhdGUgaXMgbGF0ZXIgdGhhbiB0aGlzIGRhdGUuXHJcbiAgICogQWNjZXB0cyBhIGBEYXRlYCBvYmplY3Qgb3IgYSBkYXRlIHN0cmluZyBwYXJzZWFibGUgYnkgdGhlIGNvbmZpZ3VyZWQgYHRvRGF0ZWAgZnVuY3Rpb24uXHJcbiAgICogVXNlcyB0aGUgY29uZmlndXJlZCAnbWF4IGRhdGUnIHZhbGlkYXRpb24gbWVzc2FnZS5cclxuICAgKiBAZXhhbXBsZVxyXG4gICAqIHsgbWF4OiAnMjAyNS0xMi0zMScgfVxyXG4gICAqIEBzZWUgVmFsaWRhdG9ycy5kYXRlLm1heFxyXG4gICAqL1xyXG4gIG1heD86IERhdGUgfCBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBkYXRlIHZhbHVlIG11c3QgYmUgZXhhY3RseSBlcXVhbCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlICh3aGljaCBjYW4gYmUgYG51bGxgKS5cclxuICAgKiBVc2VzIHRoZSBjb25maWd1cmVkIGBtdXN0QmVgIHZhbGlkYXRpb24gbWVzc2FnZS5cclxuICAgKiBEYXRlIGNvbXBhcmlzb24gdXNlcyB0aGUgY29uZmlndXJlZCBgdG9EYXRlYCBmdW5jdGlvbiBpbnRlcm5hbGx5LlxyXG4gICAqIEBleGFtcGxlXHJcbiAgICogeyBtdXN0QmU6IG5ldyBEYXRlKCcyMDI0LTA3LTA0JykgfSAvLyBNdXN0IGJlIGV4YWN0bHkgSnVseSA0dGgsIDIwMjRcclxuICAgKiB7IG11c3RCZTogbnVsbCB9ICAgICAgICAgICAgICAgICAvLyBNdXN0IGJlIGV4YWN0bHkgbnVsbFxyXG4gICAqIEBzZWUgVmFsaWRhdG9ycy5nZW5lcmFsLm11c3RCZVxyXG4gICAqIEBzZWUgVmFsaWRhdG9ycy5nZW5lcmFsLm11c3RCZU51bGxcclxuICAgKi9cclxuICBtdXN0QmU/OiBEYXRlIHwgc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGRhdGUgdmFsdWUgbXVzdCAqbm90KiBiZSBlcXVhbCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlICh3aGljaCBjYW4gYmUgYG51bGxgKS5cclxuICAgKiBVc2VzIHRoZSBjb25maWd1cmVkIGBub3RgIHZhbGlkYXRpb24gbWVzc2FnZS5cclxuICAgKiBEYXRlIGNvbXBhcmlzb24gdXNlcyB0aGUgY29uZmlndXJlZCBgdG9EYXRlYCBmdW5jdGlvbiBpbnRlcm5hbGx5LlxyXG4gICAqIEBleGFtcGxlXHJcbiAgICogeyBub3Q6IG5ldyBEYXRlKCcyMDAwLTAxLTAxJykgfSAvLyBDYW5ub3QgYmUgdGhlIHN0YXJ0IG9mIHRoZSBtaWxsZW5uaXVtXHJcbiAgICogQHNlZSBWYWxpZGF0b3JzLmdlbmVyYWwubm90XHJcbiAgICovXHJcbiAgbm90PzogRGF0ZSB8IHN0cmluZyB8IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBkYXRlIHZhbHVlIG11c3QgYmUgb25lIG9mIHRoZSBkYXRlcyAob3IgYG51bGxgKSBpbmNsdWRlZCBpbiB0aGUgc3BlY2lmaWVkIGFycmF5LlxyXG4gICAqIFVzZXMgdGhlIGNvbmZpZ3VyZWQgYG9uZU9mYCB2YWxpZGF0aW9uIG1lc3NhZ2UuXHJcbiAgICogRGF0ZSBjb21wYXJpc29uIHVzZXMgdGhlIGNvbmZpZ3VyZWQgYHRvRGF0ZWAgZnVuY3Rpb24gaW50ZXJuYWxseS5cclxuICAgKiBAZXhhbXBsZVxyXG4gICAqIHsgb25lT2Y6IFtuZXcgRGF0ZSgnMjAyNC0xMi0yNScpLCBudWxsXSB9IC8vIE11c3QgYmUgQ2hyaXN0bWFzIDIwMjQgb3IgbnVsbFxyXG4gICAqIEBzZWUgVmFsaWRhdG9ycy5nZW5lcmFsLm9uZU9mXHJcbiAgICovXHJcbiAgb25lT2Y/OiAoRGF0ZSB8IHN0cmluZyB8IG51bGwpW107XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBkYXRlIHZhbHVlIG11c3QgKm5vdCogYmUgYW55IG9mIHRoZSBkYXRlcyAob3IgYG51bGxgKSBpbmNsdWRlZCBpbiB0aGUgc3BlY2lmaWVkIGFycmF5LlxyXG4gICAqIFVzZXMgdGhlIGNvbmZpZ3VyZWQgYG5vdE9uZU9mYCB2YWxpZGF0aW9uIG1lc3NhZ2UuXHJcbiAgICogRGF0ZSBjb21wYXJpc29uIHVzZXMgdGhlIGNvbmZpZ3VyZWQgYHRvRGF0ZWAgZnVuY3Rpb24gaW50ZXJuYWxseS5cclxuICAgKiBAZXhhbXBsZVxyXG4gICAqIHsgbm90T25lT2Y6IFtuZXcgRGF0ZSgnMjAyNC0wNC0wMScpXSB9IC8vIENhbm5vdCBiZSBBcHJpbCBGb29sJ3MgRGF5IDIwMjRcclxuICAgKiBAc2VlIFZhbGlkYXRvcnMuZ2VuZXJhbC5ub3RPbmVPZlxyXG4gICAqL1xyXG4gIG5vdE9uZU9mPzogKERhdGUgfCBzdHJpbmcgfCBudWxsKVtdO1xyXG5cclxuICAvKipcclxuICAgKiBPcHRpb25hbCBjb25maWd1cmF0aW9uIHBhc3NlZCBkb3duIHRvIHNwZWNpZmljIG1lc3NhZ2UgZmFjdG9yaWVzLlxyXG4gICAqIEN1cnJlbnRseSBwcmltYXJpbHkgdXNlZCBieSB0aGUgYHJlcXVpcmVkYCB2YWxpZGF0b3IncyBtZXNzYWdlIGZhY3RvcnkuXHJcbiAgICovXHJcbiAgbWVzc2FnZU9wdGlvbnM/OiB7XHJcbiAgICAvKipcclxuICAgICAqIEFuIG9wdGlvbmFsIGxhYmVsIGZvciB0aGUgZmllbGQgKGUuZy4sICdTdGFydCBEYXRlJywgJ0VuZCBEYXRlJykuXHJcbiAgICAgKiBUaGlzIGNhbiBiZSBpbmNvcnBvcmF0ZWQgaW50byB0aGUgJ3JlcXVpcmVkJyBlcnJvciBtZXNzYWdlIGJ5IGl0cyBmYWN0b3J5XHJcbiAgICAgKiAoZS5nLiwgXCJTdGFydCBEYXRlIGlzIHJlcXVpcmVkXCIgaW5zdGVhZCBvZiBqdXN0IFwiRmllbGQgaXMgcmVxdWlyZWRcIikuXHJcbiAgICAgKiBAZXhhbXBsZVxyXG4gICAgICogeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZU9wdGlvbnM6IHsgbGFiZWw6ICdTdGFydCBEYXRlJyB9IH1cclxuICAgICAqL1xyXG4gICAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgfTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEYXRlVmFsaWRhdG9yczxURGF0ZSA9IERhdGU+KFxyXG4gIGZhY3Rvcmllcz86IFBhcnRpYWw8RGF0ZU1lc3NhZ2VGYWN0b3JpZXM+LFxyXG4gIHRvRGF0ZSA9IGRlZmF1bHRUb0RhdGU8VERhdGU+LFxyXG4gIGZvcm1hdERhdGUgPSBkZWZhdWx0Rm9ybWF0RGF0ZSxcclxuICBsb2NhbGUgPSAnZW4tVVMnLFxyXG4gIGdlbmVyYWxWYWxpZGF0b3JzID0gY3JlYXRlR2VuZXJhbFZhbGlkYXRvcnMoKSxcclxuICBtZXJnZXIgPSBjcmVhdGVNZXJnZVZhbGlkYXRvcnMoKSxcclxuKSB7XHJcbiAgY29uc3QgdCA9IHsgLi4uREVGQVVMVF9EQVRFX01FU1NBR0VTLCAuLi5mYWN0b3JpZXMgfTtcclxuICBjb25zdCBiYXNlID0ge1xyXG4gICAgbWluOiBjcmVhdGVNaW5EYXRlVmFsaWRhdG9yKHQubWluLCB0b0RhdGUsIGZvcm1hdERhdGUsIGxvY2FsZSksXHJcbiAgICBtYXg6IGNyZWF0ZU1heERhdGVWYWxpZGF0b3IodC5tYXgsIHRvRGF0ZSwgZm9ybWF0RGF0ZSwgbG9jYWxlKSxcclxuICAgIGlzRGF0ZTogY3JlYXRlSXNEYXRlVmFsaWRhdG9yKHQuaXNEYXRlLCB0b0RhdGUpLFxyXG4gIH07XHJcblxyXG4gIGNvbnN0IHRvTGFiZWwgPSAoZDogVERhdGUgfCBudWxsKSA9PlxyXG4gICAgZCA/IGZvcm1hdERhdGUodG9EYXRlKGQpLCBsb2NhbGUpIDogJ251bGwnO1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgLi4uYmFzZSxcclxuICAgIGFsbDogKG9wdDogRGF0ZVZhbGlkYXRvck9wdGlvbnMpID0+IHtcclxuICAgICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yPFREYXRlIHwgbnVsbD5bXSA9IFtdO1xyXG5cclxuICAgICAgaWYgKG9wdC5yZXF1aXJlZClcclxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goZ2VuZXJhbFZhbGlkYXRvcnMucmVxdWlyZWQob3B0Lm1lc3NhZ2VPcHRpb25zPy5sYWJlbCkpO1xyXG5cclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKGJhc2UuaXNEYXRlKCkpO1xyXG5cclxuICAgICAgaWYgKG9wdC5tdXN0QmUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmIChvcHQubXVzdEJlID09PSBudWxsKVxyXG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKGdlbmVyYWxWYWxpZGF0b3JzLm11c3RCZU51bGw8VERhdGUgfCBudWxsPigpKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IGQgPSB0b0RhdGUob3B0Lm11c3RCZSBhcyBURGF0ZSB8IHN0cmluZyk7XHJcbiAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXREYXRlKGQsIGxvY2FsZSk7XHJcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goXHJcbiAgICAgICAgICAgIGdlbmVyYWxWYWxpZGF0b3JzLm11c3RCZTxURGF0ZSB8IG51bGw+KFxyXG4gICAgICAgICAgICAgIGQgYXMgVERhdGUsXHJcbiAgICAgICAgICAgICAgZm9ybWF0dGVkLFxyXG4gICAgICAgICAgICAgIChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWEgJiYgIWIpIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFhIHx8ICFiKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRvRGF0ZShhKS5nZXRUaW1lKCkgPT09IHRvRGF0ZShiKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAob3B0Lm5vdCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgaWYgKG9wdC5ub3QgPT09IG51bGwpXHJcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goZ2VuZXJhbFZhbGlkYXRvcnMubm90PFREYXRlIHwgbnVsbD4obnVsbCkpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgZCA9IHRvRGF0ZShvcHQubm90IGFzIFREYXRlKTtcclxuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdERhdGUoZCwgbG9jYWxlKTtcclxuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChcclxuICAgICAgICAgICAgZ2VuZXJhbFZhbGlkYXRvcnMubm90PFREYXRlIHwgbnVsbD4oXHJcbiAgICAgICAgICAgICAgZCBhcyBURGF0ZSxcclxuICAgICAgICAgICAgICBmb3JtYXR0ZWQsXHJcbiAgICAgICAgICAgICAgKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghYSAmJiAhYikgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWEgfHwgIWIpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9EYXRlKGEpLmdldFRpbWUoKSA9PT0gdG9EYXRlKGIpLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChvcHQubWluICE9PSB1bmRlZmluZWQpIHZhbGlkYXRvcnMucHVzaChiYXNlLm1pbihvcHQubWluIGFzIFREYXRlKSk7XHJcbiAgICAgIGlmIChvcHQubWF4ICE9PSB1bmRlZmluZWQpIHZhbGlkYXRvcnMucHVzaChiYXNlLm1heChvcHQubWF4IGFzIFREYXRlKSk7XHJcblxyXG4gICAgICBpZiAob3B0Lm9uZU9mKSB7XHJcbiAgICAgICAgY29uc3QgZGF0ZXMgPSBvcHQub25lT2YubWFwKChkKSA9PiAoZCA/IHRvRGF0ZShkIGFzIFREYXRlKSA6IG51bGwpKTtcclxuXHJcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFxyXG4gICAgICAgICAgZ2VuZXJhbFZhbGlkYXRvcnMub25lT2Y8VERhdGUgfCBudWxsPihcclxuICAgICAgICAgICAgZGF0ZXMgYXMgVERhdGVbXSxcclxuICAgICAgICAgICAgdG9MYWJlbCxcclxuICAgICAgICAgICAgKGEpID0+XHJcbiAgICAgICAgICAgICAgYSA9PT0gbnVsbCB8fCBhID09PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgICAgID8gJ251bGwnXHJcbiAgICAgICAgICAgICAgICA6IHRvRGF0ZShhKS5nZXRUaW1lKCkudG9TdHJpbmcoKSxcclxuICAgICAgICAgICksXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKG9wdC5ub3RPbmVPZikge1xyXG4gICAgICAgIGNvbnN0IGRhdGVzID0gb3B0Lm5vdE9uZU9mLm1hcCgoZCkgPT4gKGQgPyB0b0RhdGUoZCBhcyBURGF0ZSkgOiBudWxsKSk7XHJcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFxyXG4gICAgICAgICAgZ2VuZXJhbFZhbGlkYXRvcnMubm90T25lT2Y8VERhdGUgfCBudWxsPihcclxuICAgICAgICAgICAgZGF0ZXMgYXMgVERhdGVbXSxcclxuICAgICAgICAgICAgdG9MYWJlbCxcclxuICAgICAgICAgICAgKGEpID0+XHJcbiAgICAgICAgICAgICAgYSA9PT0gbnVsbCB8fCBhID09PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgICAgID8gJ251bGwnXHJcbiAgICAgICAgICAgICAgICA6IHRvRGF0ZShhKS5nZXRUaW1lKCkudG9TdHJpbmcoKSxcclxuICAgICAgICAgICksXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIG1lcmdlcih2YWxpZGF0b3JzIGFzIFZhbGlkYXRvcjxURGF0ZSB8IG51bGw+W10pO1xyXG4gICAgfSxcclxuICAgIHV0aWw6IHtcclxuICAgICAgdG9EYXRlLFxyXG4gICAgICBmb3JtYXREYXRlLFxyXG4gICAgfSxcclxuICB9O1xyXG59XHJcbiJdfQ==","import { DEFAULT_DATE_MESSAGES, } from '.';\nimport { createGeneralValidators } from '../general';\nimport { createMergeValidators } from '../merge-validators';\nimport { createIsDateValidator } from './is-date';\nimport { createMaxDateValidator } from './max-date';\nimport { createMinDateValidator } from './min-date';\nimport { defaultFormatDate, defaultToDate } from './util';\nexport function createDateRangeValidators(factories, toDate = (defaultToDate), formatDate = defaultFormatDate, locale = 'en-US', generalValidators = createGeneralValidators(), merger = createMergeValidators()) {\n    const t = { ...DEFAULT_DATE_MESSAGES, ...factories };\n    const base = {\n        min: createMinDateValidator(t.min, toDate, formatDate, locale),\n        max: createMaxDateValidator(t.max, toDate, formatDate, locale),\n        isDate: createIsDateValidator(t.isDate, toDate),\n    };\n    return {\n        ...base,\n        all: (opt) => {\n            const validators = [];\n            if (opt.required) {\n                const val = generalValidators.required(opt.messageOptions?.label);\n                validators.push((value) => val(value.start) || val(value.end));\n            }\n            const isDateValidator = base.isDate();\n            validators.push((value) => isDateValidator(value.start) || isDateValidator(value.end));\n            if (opt.min !== undefined) {\n                const minVal = base.min(opt.min);\n                validators.push((value) => minVal(value.start));\n            }\n            if (opt.max !== undefined) {\n                const maxVal = base.max(opt.max);\n                validators.push((value) => maxVal(value.end));\n            }\n            validators.push((value) => {\n                if (value.start === null || value.end === null)\n                    return '';\n                const minVal = base.min(value.start);\n                const maxVal = base.max(value.end);\n                return minVal(value.end) || maxVal(value.start);\n            });\n            return merger(validators);\n        },\n        util: {\n            toDate,\n            formatDate,\n        },\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm0vdmFsaWRhdGlvbi9zcmMvbGliL2RhdGUvZGF0ZS1yYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wscUJBQXFCLEdBQ3RCLE1BQU0sR0FBRyxDQUFDO0FBQ1gsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFjMUQsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxTQUF5QyxFQUN6QyxTQUFTLENBQUEsYUFBb0IsQ0FBQSxFQUM3QixVQUFVLEdBQUcsaUJBQWlCLEVBQzlCLE1BQU0sR0FBRyxPQUFPLEVBQ2hCLGlCQUFpQixHQUFHLHVCQUF1QixFQUFFLEVBQzdDLE1BQU0sR0FBRyxxQkFBcUIsRUFBRTtJQUVoQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcscUJBQXFCLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUNyRCxNQUFNLElBQUksR0FBRztRQUNYLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDO1FBQzlELEdBQUcsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDO1FBQzlELE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztLQUNoRCxDQUFDO0lBRUYsT0FBTztRQUNMLEdBQUcsSUFBSTtRQUNQLEdBQUcsRUFBRSxDQUNILEdBR0MsRUFDRCxFQUFFO1lBQ0YsTUFBTSxVQUFVLEdBQWtDLEVBQUUsQ0FBQztZQUVyRCxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxHQUFHLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBRWxFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLENBQUM7WUFFRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFdEMsVUFBVSxDQUFDLElBQUksQ0FDYixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUN0RSxDQUFDO1lBRUYsSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFZLENBQUMsQ0FBQztnQkFDMUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUM7WUFFRCxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzFCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQVksQ0FBQyxDQUFDO2dCQUMxQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDaEQsQ0FBQztZQUVELFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDeEIsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUk7b0JBQUUsT0FBTyxFQUFFLENBQUM7Z0JBRTFELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFbkMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBQ0QsSUFBSSxFQUFFO1lBQ0osTUFBTTtZQUNOLFVBQVU7U0FDWDtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBEYXRlTWVzc2FnZUZhY3RvcmllcyxcclxuICBEYXRlVmFsaWRhdG9yT3B0aW9ucyxcclxuICBERUZBVUxUX0RBVEVfTUVTU0FHRVMsXHJcbn0gZnJvbSAnLic7XHJcbmltcG9ydCB7IGNyZWF0ZUdlbmVyYWxWYWxpZGF0b3JzIH0gZnJvbSAnLi4vZ2VuZXJhbCc7XHJcbmltcG9ydCB7IGNyZWF0ZU1lcmdlVmFsaWRhdG9ycyB9IGZyb20gJy4uL21lcmdlLXZhbGlkYXRvcnMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tICcuLi92YWxpZGF0b3IudHlwZSc7XHJcbmltcG9ydCB7IGNyZWF0ZUlzRGF0ZVZhbGlkYXRvciB9IGZyb20gJy4vaXMtZGF0ZSc7XHJcbmltcG9ydCB7IGNyZWF0ZU1heERhdGVWYWxpZGF0b3IgfSBmcm9tICcuL21heC1kYXRlJztcclxuaW1wb3J0IHsgY3JlYXRlTWluRGF0ZVZhbGlkYXRvciB9IGZyb20gJy4vbWluLWRhdGUnO1xyXG5pbXBvcnQgeyBkZWZhdWx0Rm9ybWF0RGF0ZSwgZGVmYXVsdFRvRGF0ZSB9IGZyb20gJy4vdXRpbCc7XHJcblxyXG4vKipcclxuICogUmVwcmVzZW50cyBhIGRhdGUgcmFuZ2Ugd2l0aCB0d28gZGF0ZSB2YWx1ZXM6IGBmcm9tYCBhbmQgYHRvYC5cclxuICogQm90aCB2YWx1ZXMgY2FuIGJlIGBudWxsYCB0byBpbmRpY2F0ZSBhbiBlbXB0eSByYW5nZS5cclxuICogQHRlbXBsYXRlIFREYXRlIFRoZSB0eXBlIG9mIHRoZSBkYXRlIHZhbHVlcyAoZS5nLiwgYERhdGVgLCBMdXhvbiBgRGF0ZVRpbWVgLCBNb21lbnQpLlxyXG4gKi9cclxuZXhwb3J0IHR5cGUgRGF0ZVJhbmdlPFREYXRlID0gRGF0ZT4gPSB7XHJcbiAgLyoqIFRoZSBzdGFydCBkYXRlIG9mIHRoZSByYW5nZS4gQ2FuIGJlIGBudWxsYCBpZiBub3Qgc2V0LiAqL1xyXG4gIHN0YXJ0OiBURGF0ZSB8IG51bGw7XHJcbiAgLyoqIFRoZSBlbmQgZGF0ZSBvZiB0aGUgcmFuZ2UuIENhbiBiZSBgbnVsbGAgaWYgbm90IHNldC4gKi9cclxuICBlbmQ6IFREYXRlIHwgbnVsbDtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEYXRlUmFuZ2VWYWxpZGF0b3JzPFREYXRlID0gRGF0ZT4oXHJcbiAgZmFjdG9yaWVzPzogUGFydGlhbDxEYXRlTWVzc2FnZUZhY3Rvcmllcz4sXHJcbiAgdG9EYXRlID0gZGVmYXVsdFRvRGF0ZTxURGF0ZT4sXHJcbiAgZm9ybWF0RGF0ZSA9IGRlZmF1bHRGb3JtYXREYXRlLFxyXG4gIGxvY2FsZSA9ICdlbi1VUycsXHJcbiAgZ2VuZXJhbFZhbGlkYXRvcnMgPSBjcmVhdGVHZW5lcmFsVmFsaWRhdG9ycygpLFxyXG4gIG1lcmdlciA9IGNyZWF0ZU1lcmdlVmFsaWRhdG9ycygpLFxyXG4pIHtcclxuICBjb25zdCB0ID0geyAuLi5ERUZBVUxUX0RBVEVfTUVTU0FHRVMsIC4uLmZhY3RvcmllcyB9O1xyXG4gIGNvbnN0IGJhc2UgPSB7XHJcbiAgICBtaW46IGNyZWF0ZU1pbkRhdGVWYWxpZGF0b3IodC5taW4sIHRvRGF0ZSwgZm9ybWF0RGF0ZSwgbG9jYWxlKSxcclxuICAgIG1heDogY3JlYXRlTWF4RGF0ZVZhbGlkYXRvcih0Lm1heCwgdG9EYXRlLCBmb3JtYXREYXRlLCBsb2NhbGUpLFxyXG4gICAgaXNEYXRlOiBjcmVhdGVJc0RhdGVWYWxpZGF0b3IodC5pc0RhdGUsIHRvRGF0ZSksXHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIC4uLmJhc2UsXHJcbiAgICBhbGw6IChcclxuICAgICAgb3B0OiBQaWNrPFxyXG4gICAgICAgIERhdGVWYWxpZGF0b3JPcHRpb25zLFxyXG4gICAgICAgICdyZXF1aXJlZCcgfCAnbWluJyB8ICdtYXgnIHwgJ21lc3NhZ2VPcHRpb25zJ1xyXG4gICAgICA+LFxyXG4gICAgKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvcjxEYXRlUmFuZ2U8VERhdGU+PltdID0gW107XHJcblxyXG4gICAgICBpZiAob3B0LnJlcXVpcmVkKSB7XHJcbiAgICAgICAgY29uc3QgdmFsID0gZ2VuZXJhbFZhbGlkYXRvcnMucmVxdWlyZWQob3B0Lm1lc3NhZ2VPcHRpb25zPy5sYWJlbCk7XHJcblxyXG4gICAgICAgIHZhbGlkYXRvcnMucHVzaCgodmFsdWUpID0+IHZhbCh2YWx1ZS5zdGFydCkgfHwgdmFsKHZhbHVlLmVuZCkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBpc0RhdGVWYWxpZGF0b3IgPSBiYXNlLmlzRGF0ZSgpO1xyXG5cclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFxyXG4gICAgICAgICh2YWx1ZSkgPT4gaXNEYXRlVmFsaWRhdG9yKHZhbHVlLnN0YXJ0KSB8fCBpc0RhdGVWYWxpZGF0b3IodmFsdWUuZW5kKSxcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmIChvcHQubWluICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjb25zdCBtaW5WYWwgPSBiYXNlLm1pbihvcHQubWluIGFzIFREYXRlKTtcclxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goKHZhbHVlKSA9PiBtaW5WYWwodmFsdWUuc3RhcnQpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKG9wdC5tYXggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGNvbnN0IG1heFZhbCA9IGJhc2UubWF4KG9wdC5tYXggYXMgVERhdGUpO1xyXG4gICAgICAgIHZhbGlkYXRvcnMucHVzaCgodmFsdWUpID0+IG1heFZhbCh2YWx1ZS5lbmQpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIGlmICh2YWx1ZS5zdGFydCA9PT0gbnVsbCB8fCB2YWx1ZS5lbmQgPT09IG51bGwpIHJldHVybiAnJztcclxuXHJcbiAgICAgICAgY29uc3QgbWluVmFsID0gYmFzZS5taW4odmFsdWUuc3RhcnQpO1xyXG4gICAgICAgIGNvbnN0IG1heFZhbCA9IGJhc2UubWF4KHZhbHVlLmVuZCk7XHJcblxyXG4gICAgICAgIHJldHVybiBtaW5WYWwodmFsdWUuZW5kKSB8fCBtYXhWYWwodmFsdWUuc3RhcnQpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJldHVybiBtZXJnZXIodmFsaWRhdG9ycyk7XHJcbiAgICB9LFxyXG4gICAgdXRpbDoge1xyXG4gICAgICB0b0RhdGUsXHJcbiAgICAgIGZvcm1hdERhdGUsXHJcbiAgICB9LFxyXG4gIH07XHJcbn1cclxuIl19","export function defaultAcceptsMessage(accepts) {\n    return `Must be: ${accepts.join(', ')}`;\n}\nexport function createAcceptsValidator(createMsg) {\n    return (accepts) => {\n        const lcs = accepts.map((a) => a.toLowerCase());\n        const wildcards = lcs\n            .filter((a) => a.endsWith('/*'))\n            .map((a) => a.slice(0, -1)); // image/* video/* -> image/ video/\n        const nonWildcards = new Set(lcs.filter((a) => !a.endsWith('/*')));\n        const msg = createMsg(accepts);\n        return (value) => {\n            if (!value)\n                return '';\n            const mimeType = value.type.toLowerCase();\n            if (nonWildcards.has(mimeType))\n                return '';\n            if (!wildcards.length)\n                return msg;\n            if (wildcards.some((a) => mimeType.startsWith(a)))\n                return '';\n            return msg;\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm0vdmFsaWRhdGlvbi9zcmMvbGliL2ZpbGUvYWNjZXB0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUscUJBQXFCLENBQUMsT0FBaUI7SUFDckQsT0FBTyxZQUFZLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUMxQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxTQUF3QztJQUV4QyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDakIsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDaEQsTUFBTSxTQUFTLEdBQUcsR0FBRzthQUNsQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDL0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQ0FBbUM7UUFDbEUsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVuRSxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFL0IsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDdEIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUUxQyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUFFLE9BQU8sRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTTtnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUVsQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFFN0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi4vdmFsaWRhdG9yLnR5cGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdEFjY2VwdHNNZXNzYWdlKGFjY2VwdHM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiBgTXVzdCBiZTogJHthY2NlcHRzLmpvaW4oJywgJyl9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFjY2VwdHNWYWxpZGF0b3IoXG4gIGNyZWF0ZU1zZzogKGFjY2VwdHM6IHN0cmluZ1tdKSA9PiBzdHJpbmcsXG4pOiA8VCBleHRlbmRzIEZpbGUgfCBudWxsPihhY2NlcHRzOiBzdHJpbmdbXSkgPT4gVmFsaWRhdG9yPFQ+IHtcbiAgcmV0dXJuIChhY2NlcHRzKSA9PiB7XG4gICAgY29uc3QgbGNzID0gYWNjZXB0cy5tYXAoKGEpID0+IGEudG9Mb3dlckNhc2UoKSk7XG4gICAgY29uc3Qgd2lsZGNhcmRzID0gbGNzXG4gICAgICAuZmlsdGVyKChhKSA9PiBhLmVuZHNXaXRoKCcvKicpKVxuICAgICAgLm1hcCgoYSkgPT4gYS5zbGljZSgwLCAtMSkpOyAvLyBpbWFnZS8qIHZpZGVvLyogLT4gaW1hZ2UvIHZpZGVvL1xuICAgIGNvbnN0IG5vbldpbGRjYXJkcyA9IG5ldyBTZXQobGNzLmZpbHRlcigoYSkgPT4gIWEuZW5kc1dpdGgoJy8qJykpKTtcblxuICAgIGNvbnN0IG1zZyA9IGNyZWF0ZU1zZyhhY2NlcHRzKTtcblxuICAgIHJldHVybiAodmFsdWUpID0+IHtcbiAgICAgIGlmICghdmFsdWUpIHJldHVybiAnJztcbiAgICAgIGNvbnN0IG1pbWVUeXBlID0gdmFsdWUudHlwZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBpZiAobm9uV2lsZGNhcmRzLmhhcyhtaW1lVHlwZSkpIHJldHVybiAnJztcbiAgICAgIGlmICghd2lsZGNhcmRzLmxlbmd0aCkgcmV0dXJuIG1zZztcblxuICAgICAgaWYgKHdpbGRjYXJkcy5zb21lKChhKSA9PiBtaW1lVHlwZS5zdGFydHNXaXRoKGEpKSkgcmV0dXJuICcnO1xuXG4gICAgICByZXR1cm4gbXNnO1xuICAgIH07XG4gIH07XG59XG4iXX0=","import { isDevMode } from '@angular/core';\nconst KNOWN_SIZE_TYPES = [\n    'b',\n    'kb',\n    'mb',\n    'gb',\n    'B',\n    'KB',\n    'MB',\n    'GB',\n];\nexport function defaultMaxSizeMessageFactory(max, type = 'b') {\n    return `Max size ${max} ${type}`;\n}\nconst MULTIPLIERS = {\n    b: 1,\n    B: 1,\n    kb: 1024,\n    KB: 1024,\n    mb: 1024 * 1024,\n    MB: 1024 * 1024,\n    gb: 1024 * 1024 * 1024,\n    GB: 1024 * 1024 * 1024,\n};\nfunction getSizeInBytes(size, type) {\n    const multiplier = MULTIPLIERS[type];\n    if (multiplier === undefined && isDevMode()) {\n        console.error(`Unknown size type \"${type}\". Expected one of: ${KNOWN_SIZE_TYPES.join(', ')}`);\n    }\n    return size * (multiplier ?? 1);\n}\nexport function createMaxSizeValidator(createMsg) {\n    return (max, type = 'b') => {\n        const sizeInBytes = getSizeInBytes(max, type);\n        const msg = createMsg(max, type);\n        return (value) => {\n            if (!value)\n                return '';\n            const fileSize = value.size;\n            if (fileSize > sizeInBytes)\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LXNpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mb3JtL3ZhbGlkYXRpb24vc3JjL2xpYi9maWxlL21heC1zaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUMsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixHQUFHO0lBQ0gsSUFBSTtJQUNKLElBQUk7SUFDSixJQUFJO0lBQ0osR0FBRztJQUNILElBQUk7SUFDSixJQUFJO0lBQ0osSUFBSTtDQUNJLENBQUM7QUFJWCxNQUFNLFVBQVUsNEJBQTRCLENBQzFDLEdBQVcsRUFDWCxPQUFzQixHQUFHO0lBRXpCLE9BQU8sWUFBWSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7QUFDbkMsQ0FBQztBQUVELE1BQU0sV0FBVyxHQUEyQztJQUMxRCxDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0lBQ0osRUFBRSxFQUFFLElBQUk7SUFDUixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJLEdBQUcsSUFBSTtJQUNmLEVBQUUsRUFBRSxJQUFJLEdBQUcsSUFBSTtJQUNmLEVBQUUsRUFBRSxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUk7SUFDdEIsRUFBRSxFQUFFLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSTtDQUN2QixDQUFDO0FBRUYsU0FBUyxjQUFjLENBQUMsSUFBWSxFQUFFLElBQW1CO0lBQ3ZELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxJQUFJLFVBQVUsS0FBSyxTQUFTLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUM1QyxPQUFPLENBQUMsS0FBSyxDQUNYLHNCQUFzQixJQUFJLHVCQUF1QixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDL0UsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLElBQUksR0FBRyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxTQUF3RDtJQUV4RCxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsRUFBRTtRQUN6QixNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlDLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFakMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDdEIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLFFBQVEsR0FBRyxXQUFXO2dCQUFFLE9BQU8sR0FBRyxDQUFDO1lBQ3ZDLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi4vdmFsaWRhdG9yLnR5cGUnO1xuXG5jb25zdCBLTk9XTl9TSVpFX1RZUEVTID0gW1xuICAnYicsXG4gICdrYicsXG4gICdtYicsXG4gICdnYicsXG4gICdCJyxcbiAgJ0tCJyxcbiAgJ01CJyxcbiAgJ0dCJyxcbl0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEtub3duU2l6ZVR5cGUgPSAodHlwZW9mIEtOT1dOX1NJWkVfVFlQRVMpW251bWJlcl07XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0TWF4U2l6ZU1lc3NhZ2VGYWN0b3J5KFxuICBtYXg6IG51bWJlcixcbiAgdHlwZTogS25vd25TaXplVHlwZSA9ICdiJyxcbikge1xuICByZXR1cm4gYE1heCBzaXplICR7bWF4fSAke3R5cGV9YDtcbn1cblxuY29uc3QgTVVMVElQTElFUlM6IFBhcnRpYWw8UmVjb3JkPEtub3duU2l6ZVR5cGUsIG51bWJlcj4+ID0ge1xuICBiOiAxLFxuICBCOiAxLFxuICBrYjogMTAyNCxcbiAgS0I6IDEwMjQsXG4gIG1iOiAxMDI0ICogMTAyNCxcbiAgTUI6IDEwMjQgKiAxMDI0LFxuICBnYjogMTAyNCAqIDEwMjQgKiAxMDI0LFxuICBHQjogMTAyNCAqIDEwMjQgKiAxMDI0LFxufTtcblxuZnVuY3Rpb24gZ2V0U2l6ZUluQnl0ZXMoc2l6ZTogbnVtYmVyLCB0eXBlOiBLbm93blNpemVUeXBlKSB7XG4gIGNvbnN0IG11bHRpcGxpZXIgPSBNVUxUSVBMSUVSU1t0eXBlXTtcbiAgaWYgKG11bHRpcGxpZXIgPT09IHVuZGVmaW5lZCAmJiBpc0Rldk1vZGUoKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBgVW5rbm93biBzaXplIHR5cGUgXCIke3R5cGV9XCIuIEV4cGVjdGVkIG9uZSBvZjogJHtLTk9XTl9TSVpFX1RZUEVTLmpvaW4oJywgJyl9YCxcbiAgICApO1xuICB9XG4gIHJldHVybiBzaXplICogKG11bHRpcGxpZXIgPz8gMSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNYXhTaXplVmFsaWRhdG9yKFxuICBjcmVhdGVNc2c6IChtYXg6IG51bWJlciwgdHlwZT86IEtub3duU2l6ZVR5cGUpID0+IHN0cmluZyxcbik6IDxUIGV4dGVuZHMgRmlsZSB8IG51bGw+KG1heDogbnVtYmVyLCB0eXBlPzogS25vd25TaXplVHlwZSkgPT4gVmFsaWRhdG9yPFQ+IHtcbiAgcmV0dXJuIChtYXgsIHR5cGUgPSAnYicpID0+IHtcbiAgICBjb25zdCBzaXplSW5CeXRlcyA9IGdldFNpemVJbkJ5dGVzKG1heCwgdHlwZSk7XG4gICAgY29uc3QgbXNnID0gY3JlYXRlTXNnKG1heCwgdHlwZSk7XG5cbiAgICByZXR1cm4gKHZhbHVlKSA9PiB7XG4gICAgICBpZiAoIXZhbHVlKSByZXR1cm4gJyc7XG4gICAgICBjb25zdCBmaWxlU2l6ZSA9IHZhbHVlLnNpemU7XG4gICAgICBpZiAoZmlsZVNpemUgPiBzaXplSW5CeXRlcykgcmV0dXJuIG1zZztcbiAgICAgIHJldHVybiAnJztcbiAgICB9O1xuICB9O1xufVxuIl19","export function defaultRejectsMessage(rejects) {\n    return `Must not be: ${rejects.join(', ')}`;\n}\nexport function createRejectsValidator(createMsg) {\n    return (rejects) => {\n        const lcs = rejects.map((a) => a.toLowerCase());\n        const wildcards = lcs\n            .filter((a) => a.endsWith('/*'))\n            .map((a) => a.slice(0, -1)); // image/* video/* -> image/ video/\n        const nonWildcards = new Set(lcs.filter((a) => !a.endsWith('/*')));\n        const msg = createMsg(rejects);\n        return (value) => {\n            if (!value)\n                return '';\n            const mimeType = value.type.toLowerCase();\n            if (nonWildcards.has(mimeType))\n                return msg;\n            if (!wildcards.length)\n                return '';\n            if (wildcards.some((a) => mimeType.startsWith(a)))\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVqZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm0vdmFsaWRhdGlvbi9zcmMvbGliL2ZpbGUvcmVqZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUscUJBQXFCLENBQUMsT0FBaUI7SUFDckQsT0FBTyxnQkFBZ0IsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0FBQzlDLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLFNBQXdDO0lBRXhDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNqQixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNoRCxNQUFNLFNBQVMsR0FBRyxHQUFHO2FBQ2xCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMvQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1DQUFtQztRQUNsRSxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRW5FLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUvQixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUN0QixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRTFDLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7Z0JBQUUsT0FBTyxHQUFHLENBQUM7WUFFM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNO2dCQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ2pDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUU5RCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tICcuLi92YWxpZGF0b3IudHlwZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0UmVqZWN0c01lc3NhZ2UocmVqZWN0czogc3RyaW5nW10pIHtcbiAgcmV0dXJuIGBNdXN0IG5vdCBiZTogJHtyZWplY3RzLmpvaW4oJywgJyl9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlamVjdHNWYWxpZGF0b3IoXG4gIGNyZWF0ZU1zZzogKHJlamVjdHM6IHN0cmluZ1tdKSA9PiBzdHJpbmcsXG4pOiA8VCBleHRlbmRzIEZpbGUgfCBudWxsPihyZWplY3RzOiBzdHJpbmdbXSkgPT4gVmFsaWRhdG9yPFQ+IHtcbiAgcmV0dXJuIChyZWplY3RzKSA9PiB7XG4gICAgY29uc3QgbGNzID0gcmVqZWN0cy5tYXAoKGEpID0+IGEudG9Mb3dlckNhc2UoKSk7XG4gICAgY29uc3Qgd2lsZGNhcmRzID0gbGNzXG4gICAgICAuZmlsdGVyKChhKSA9PiBhLmVuZHNXaXRoKCcvKicpKVxuICAgICAgLm1hcCgoYSkgPT4gYS5zbGljZSgwLCAtMSkpOyAvLyBpbWFnZS8qIHZpZGVvLyogLT4gaW1hZ2UvIHZpZGVvL1xuICAgIGNvbnN0IG5vbldpbGRjYXJkcyA9IG5ldyBTZXQobGNzLmZpbHRlcigoYSkgPT4gIWEuZW5kc1dpdGgoJy8qJykpKTtcblxuICAgIGNvbnN0IG1zZyA9IGNyZWF0ZU1zZyhyZWplY3RzKTtcblxuICAgIHJldHVybiAodmFsdWUpID0+IHtcbiAgICAgIGlmICghdmFsdWUpIHJldHVybiAnJztcbiAgICAgIGNvbnN0IG1pbWVUeXBlID0gdmFsdWUudHlwZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBpZiAobm9uV2lsZGNhcmRzLmhhcyhtaW1lVHlwZSkpIHJldHVybiBtc2c7XG5cbiAgICAgIGlmICghd2lsZGNhcmRzLmxlbmd0aCkgcmV0dXJuICcnO1xuICAgICAgaWYgKHdpbGRjYXJkcy5zb21lKChhKSA9PiBtaW1lVHlwZS5zdGFydHNXaXRoKGEpKSkgcmV0dXJuIG1zZztcblxuICAgICAgcmV0dXJuICcnO1xuICAgIH07XG4gIH07XG59XG4iXX0=","import { createGeneralValidators } from '../general';\nimport { createMergeValidators } from '../merge-validators';\nimport { createAcceptsValidator, defaultAcceptsMessage } from './accepts';\nimport { createMaxSizeValidator, defaultMaxSizeMessageFactory, } from './max-size';\nimport { createRejectsValidator, defaultRejectsMessage } from './rejects';\nconst DEFAULT_MESSAGES = {\n    accepts: defaultAcceptsMessage,\n    rejects: defaultRejectsMessage,\n    maxSize: defaultMaxSizeMessageFactory,\n};\nexport function createFileValidators(factories, generalValidators = createGeneralValidators(), merger = createMergeValidators()) {\n    const t = { ...DEFAULT_MESSAGES, ...factories };\n    const base = {\n        accepts: createAcceptsValidator(t.accepts),\n        rejects: createRejectsValidator(t.rejects),\n        maxSize: createMaxSizeValidator(t.maxSize),\n    };\n    return {\n        ...base,\n        all: (opt) => {\n            const validators = [];\n            if (opt.required)\n                validators.push(generalValidators.required(opt?.messageOptions?.label));\n            if (opt.accepts)\n                validators.push(base.accepts(typeof opt.accepts === 'string' ? [opt.accepts] : opt.accepts));\n            if (opt.rejects)\n                validators.push(base.rejects(typeof opt.rejects === 'string' ? [opt.rejects] : opt.rejects));\n            if (opt.maxSize !== undefined) {\n                validators.push(base.maxSize(typeof opt.maxSize === 'number' ? opt.maxSize : opt.maxSize.size, typeof opt.maxSize === 'number' ? undefined : opt.maxSize.type));\n            }\n            if (opt.custom)\n                validators.push(opt.custom);\n            return merger(validators);\n        },\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mb3JtL3ZhbGlkYXRpb24vc3JjL2xpYi9maWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUUsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qiw0QkFBNEIsR0FFN0IsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBUTFFLE1BQU0sZ0JBQWdCLEdBQXlCO0lBQzdDLE9BQU8sRUFBRSxxQkFBcUI7SUFDOUIsT0FBTyxFQUFFLHFCQUFxQjtJQUM5QixPQUFPLEVBQUUsNEJBQTRCO0NBQ3RDLENBQUM7QUFvRUYsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxTQUF5QyxFQUN6QyxpQkFBaUIsR0FBRyx1QkFBdUIsRUFBRSxFQUM3QyxNQUFNLEdBQUcscUJBQXFCLEVBQUU7SUFFaEMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLGdCQUFnQixFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFFaEQsTUFBTSxJQUFJLEdBQUc7UUFDWCxPQUFPLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUMxQyxPQUFPLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUMxQyxPQUFPLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztLQUMzQyxDQUFDO0lBRUYsT0FBTztRQUNMLEdBQUcsSUFBSTtRQUNQLEdBQUcsRUFBRSxDQUFDLEdBQXlCLEVBQUUsRUFBRTtZQUNqQyxNQUFNLFVBQVUsR0FBNkIsRUFBRSxDQUFDO1lBRWhELElBQUksR0FBRyxDQUFDLFFBQVE7Z0JBQ2QsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBRTFFLElBQUksR0FBRyxDQUFDLE9BQU87Z0JBQ2IsVUFBVSxDQUFDLElBQUksQ0FDYixJQUFJLENBQUMsT0FBTyxDQUNWLE9BQU8sR0FBRyxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUM5RCxDQUNGLENBQUM7WUFFSixJQUFJLEdBQUcsQ0FBQyxPQUFPO2dCQUNiLFVBQVUsQ0FBQyxJQUFJLENBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FDVixPQUFPLEdBQUcsQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FDOUQsQ0FDRixDQUFDO1lBRUosSUFBSSxHQUFHLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUM5QixVQUFVLENBQUMsSUFBSSxDQUNiLElBQUksQ0FBQyxPQUFPLENBQ1YsT0FBTyxHQUFHLENBQUMsT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQ2hFLE9BQU8sR0FBRyxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQy9ELENBQ0YsQ0FBQztZQUNKLENBQUM7WUFFRCxJQUFJLEdBQUcsQ0FBQyxNQUFNO2dCQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTVDLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUdlbmVyYWxWYWxpZGF0b3JzIH0gZnJvbSAnLi4vZ2VuZXJhbCc7XG5pbXBvcnQgeyBjcmVhdGVNZXJnZVZhbGlkYXRvcnMgfSBmcm9tICcuLi9tZXJnZS12YWxpZGF0b3JzJztcbmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gJy4uL3ZhbGlkYXRvci50eXBlJztcbmltcG9ydCB7IGNyZWF0ZUFjY2VwdHNWYWxpZGF0b3IsIGRlZmF1bHRBY2NlcHRzTWVzc2FnZSB9IGZyb20gJy4vYWNjZXB0cyc7XG5pbXBvcnQge1xuICBjcmVhdGVNYXhTaXplVmFsaWRhdG9yLFxuICBkZWZhdWx0TWF4U2l6ZU1lc3NhZ2VGYWN0b3J5LFxuICBLbm93blNpemVUeXBlLFxufSBmcm9tICcuL21heC1zaXplJztcbmltcG9ydCB7IGNyZWF0ZVJlamVjdHNWYWxpZGF0b3IsIGRlZmF1bHRSZWplY3RzTWVzc2FnZSB9IGZyb20gJy4vcmVqZWN0cyc7XG5cbmV4cG9ydCB0eXBlIEZpbGVNZXNzYWdlRmFjdG9yaWVzID0ge1xuICBhY2NlcHRzOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVBY2NlcHRzVmFsaWRhdG9yPlswXTtcbiAgcmVqZWN0czogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlUmVqZWN0c1ZhbGlkYXRvcj5bMF07XG4gIG1heFNpemU6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZU1heFNpemVWYWxpZGF0b3I+WzBdO1xufTtcblxuY29uc3QgREVGQVVMVF9NRVNTQUdFUzogRmlsZU1lc3NhZ2VGYWN0b3JpZXMgPSB7XG4gIGFjY2VwdHM6IGRlZmF1bHRBY2NlcHRzTWVzc2FnZSxcbiAgcmVqZWN0czogZGVmYXVsdFJlamVjdHNNZXNzYWdlLFxuICBtYXhTaXplOiBkZWZhdWx0TWF4U2l6ZU1lc3NhZ2VGYWN0b3J5LFxufTtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGNyZWF0aW5nIGEgY29tYmluZWQgZmlsZSB2YWxpZGF0b3IgdXNpbmcgdGhlXG4gKiBgLmFsbCgpYCBtZXRob2QgcmV0dXJuZWQgYnkgYGNyZWF0ZUZpbGVWYWxpZGF0b3JzYCAoYWNjZXNzZWQgdmlhIGBpbmplY3RWYWxpZGF0b3JzKCkuZmlsZS5hbGxgKS5cbiAqL1xuZXhwb3J0IHR5cGUgRmlsZVZhbGlkYXRvck9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHRoZSBzdHJpbmcgdmFsdWUgbXVzdCBub3QgYmUgYG51bGxgLCBgdW5kZWZpbmVkYCwgb3IgYW4gZW1wdHkgc3RyaW5nIChgJydgKS5cbiAgICogVXNlcyB0aGUgY29uZmlndXJlZCAncmVxdWlyZWQnIHZhbGlkYXRpb24gbWVzc2FnZS5cbiAgICogTm90ZTogVGhpcyBiZWhhdmlvciAoY2hlY2tpbmcgZm9yIGVtcHR5IHN0cmluZykgbWlnaHQgZGlmZmVyIGZyb20gYSBnZW5lcmljIGByZXF1aXJlZGBcbiAgICogY2hlY2sgb24gb3RoZXIgdHlwZXMuXG4gICAqIEBzZWUgVmFsaWRhdG9ycy5nZW5lcmFsLnJlcXVpcmVkXG4gICAqIEBleGFtcGxlIHsgcmVxdWlyZWQ6IHRydWUgfVxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIGZpbGUgdHlwZShzKSB0aGF0IGFyZSBhY2NlcHRlZC5cbiAgICogVmFsaWRhdGlvbiBmYWlscyBpZiB0aGUgZmlsZSB0eXBlIGlzIG5vdCBpbiB0aGlzIGxpc3QuXG4gICAqIEFjY2VwdHMgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAgICogU3VwcG9ydHMgTUlNRSB0eXBlcyBhbmQgZ2VuZXJpYyBmaWxlIHR5cGVzIChlLmcuLCAnaW1hZ2UvKicpLlxuICAgKiBAZXhhbXBsZSB7IGFjY2VwdHM6ICdpbWFnZS8qJyB9IC8vIEFjY2VwdHMgYWxsIGltYWdlIHR5cGVzXG4gICAqIEBleGFtcGxlIHsgYWNjZXB0czogWydpbWFnZS9wbmcnLCAnaW1hZ2UvanBlZyddIH0gLy8gQWNjZXB0cyBQTkcgYW5kIEpQRUdcbiAgICovXG4gIGFjY2VwdHM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFRoZSBmaWxlIHR5cGUocykgdGhhdCBhcmUgcmVqZWN0ZWQuXG4gICAqIFZhbGlkYXRpb24gZmFpbHMgaWYgdGhlIGZpbGUgdHlwZSBpcyBpbiB0aGlzIGxpc3QuXG4gICAqIEFjY2VwdHMgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAgICogU3VwcG9ydHMgTUlNRSB0eXBlcyBhbmQgZ2VuZXJpYyBmaWxlIHR5cGVzIChlLmcuLCAnaW1hZ2UvKicpLlxuICAgKiBAZXhhbXBsZSB7IHJlamVjdHM6ICdpbWFnZS8qJyB9IC8vIFJlamVjdHMgYWxsIGltYWdlIHR5cGVzXG4gICAqIEBleGFtcGxlIHsgcmVqZWN0czogWydpbWFnZS9wbmcnLCAnaW1hZ2UvanBlZyddIH0gLy8gUmVqZWN0cyBQTkcgYW5kIEpQRUdcbiAgICovXG4gIHJlamVjdHM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGFsbG93ZWQgZmlsZSBzaXplLlxuICAgKiBWYWxpZGF0aW9uIGZhaWxzIGlmIHRoZSBmaWxlIHNpemUgZXhjZWVkcyB0aGlzIGxpbWl0LlxuICAgKiBBY2NlcHRzIGEgbnVtYmVyIChpbiBieXRlcykgb3IgYW4gb2JqZWN0IHdpdGggYHNpemVgIGFuZCBgdHlwZWAgcHJvcGVydGllcy5cbiAgICogVGhlIGB0eXBlYCBwcm9wZXJ0eSBjYW4gYmUgb25lIG9mIHRoZSBrbm93biBzaXplIHR5cGVzIChlLmcuLCAnTUInLCAnR0InKS5cbiAgICogQGV4YW1wbGUgeyBtYXhTaXplOiA1ICogMTAyNCAqIDEwMjQgfSAvLyBNYXggc2l6ZSA1IE1CXG4gICAqIEBleGFtcGxlIHsgbWF4U2l6ZTogeyBzaXplOiAxLCB0eXBlOiAnR0InIH0gfSAvLyBNYXggc2l6ZSAxIEdCXG4gICAqL1xuICBtYXhTaXplPzpcbiAgICB8IG51bWJlclxuICAgIHwge1xuICAgICAgICBzaXplOiBudW1iZXI7XG4gICAgICAgIHR5cGU6IEtub3duU2l6ZVR5cGU7XG4gICAgICB9O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b20gdmFsaWRhdGlvbiBmdW5jdGlvblxuICAgKi9cbiAgY3VzdG9tPzogKHZhbHVlOiBGaWxlIHwgbnVsbCkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjb25maWd1cmF0aW9uIHBhc3NlZCBkb3duIHRvIHNwZWNpZmljIG1lc3NhZ2UgZmFjdG9yaWVzLlxuICAgKiBQcmltYXJpbHkgdXNlZCBieSB0aGUgYHJlcXVpcmVkYCB2YWxpZGF0b3IncyBtZXNzYWdlIGZhY3RvcnkuXG4gICAqL1xuICBtZXNzYWdlT3B0aW9ucz86IHtcbiAgICAvKipcbiAgICAgKiBBbiBvcHRpb25hbCBsYWJlbCBmb3IgdGhlIGZpZWxkIChlLmcuLCAnVXNlcm5hbWUnLCAnRW1haWwgQWRkcmVzcycpXG4gICAgICogd2hpY2ggY2FuIGJlIGluY29ycG9yYXRlZCBpbnRvIHRoZSAncmVxdWlyZWQnIGVycm9yIG1lc3NhZ2UgYnkgaXRzIGZhY3RvcnkuXG4gICAgICogQGV4YW1wbGUgeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZU9wdGlvbnM6IHsgbGFiZWw6ICdFbWFpbCBBZGRyZXNzJyB9IH0gLy8gRXJyb3IgbWlnaHQgYmUgXCJFbWFpbCBBZGRyZXNzIGlzIHJlcXVpcmVkXCJcbiAgICAgKi9cbiAgICBsYWJlbD86IHN0cmluZztcbiAgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGaWxlVmFsaWRhdG9ycyhcbiAgZmFjdG9yaWVzPzogUGFydGlhbDxGaWxlTWVzc2FnZUZhY3Rvcmllcz4sXG4gIGdlbmVyYWxWYWxpZGF0b3JzID0gY3JlYXRlR2VuZXJhbFZhbGlkYXRvcnMoKSxcbiAgbWVyZ2VyID0gY3JlYXRlTWVyZ2VWYWxpZGF0b3JzKCksXG4pIHtcbiAgY29uc3QgdCA9IHsgLi4uREVGQVVMVF9NRVNTQUdFUywgLi4uZmFjdG9yaWVzIH07XG5cbiAgY29uc3QgYmFzZSA9IHtcbiAgICBhY2NlcHRzOiBjcmVhdGVBY2NlcHRzVmFsaWRhdG9yKHQuYWNjZXB0cyksXG4gICAgcmVqZWN0czogY3JlYXRlUmVqZWN0c1ZhbGlkYXRvcih0LnJlamVjdHMpLFxuICAgIG1heFNpemU6IGNyZWF0ZU1heFNpemVWYWxpZGF0b3IodC5tYXhTaXplKSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIC4uLmJhc2UsXG4gICAgYWxsOiAob3B0OiBGaWxlVmFsaWRhdG9yT3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yPEZpbGUgfCBudWxsPltdID0gW107XG5cbiAgICAgIGlmIChvcHQucmVxdWlyZWQpXG4gICAgICAgIHZhbGlkYXRvcnMucHVzaChnZW5lcmFsVmFsaWRhdG9ycy5yZXF1aXJlZChvcHQ/Lm1lc3NhZ2VPcHRpb25zPy5sYWJlbCkpO1xuXG4gICAgICBpZiAob3B0LmFjY2VwdHMpXG4gICAgICAgIHZhbGlkYXRvcnMucHVzaChcbiAgICAgICAgICBiYXNlLmFjY2VwdHMoXG4gICAgICAgICAgICB0eXBlb2Ygb3B0LmFjY2VwdHMgPT09ICdzdHJpbmcnID8gW29wdC5hY2NlcHRzXSA6IG9wdC5hY2NlcHRzLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG5cbiAgICAgIGlmIChvcHQucmVqZWN0cylcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFxuICAgICAgICAgIGJhc2UucmVqZWN0cyhcbiAgICAgICAgICAgIHR5cGVvZiBvcHQucmVqZWN0cyA9PT0gJ3N0cmluZycgPyBbb3B0LnJlamVjdHNdIDogb3B0LnJlamVjdHMsXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcblxuICAgICAgaWYgKG9wdC5tYXhTaXplICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFxuICAgICAgICAgIGJhc2UubWF4U2l6ZShcbiAgICAgICAgICAgIHR5cGVvZiBvcHQubWF4U2l6ZSA9PT0gJ251bWJlcicgPyBvcHQubWF4U2l6ZSA6IG9wdC5tYXhTaXplLnNpemUsXG4gICAgICAgICAgICB0eXBlb2Ygb3B0Lm1heFNpemUgPT09ICdudW1iZXInID8gdW5kZWZpbmVkIDogb3B0Lm1heFNpemUudHlwZSxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0LmN1c3RvbSkgdmFsaWRhdG9ycy5wdXNoKG9wdC5jdXN0b20pO1xuXG4gICAgICByZXR1cm4gbWVyZ2VyKHZhbGlkYXRvcnMpO1xuICAgIH0sXG4gIH07XG59XG4iXX0=","export function defaultIntegerMessageFactory() {\n    return `Must be an integer`;\n}\nexport function createIntegerValidator(createMsg) {\n    return () => {\n        const msg = createMsg();\n        return (value) => {\n            if (value === null)\n                return '';\n            if (!Number.isInteger(value))\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm0vdmFsaWRhdGlvbi9zcmMvbGliL251bWJlci9pbnRlZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSw0QkFBNEI7SUFDMUMsT0FBTyxvQkFBb0IsQ0FBQztBQUM5QixDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxTQUF1QjtJQUV2QixPQUFPLEdBQUcsRUFBRTtRQUNWLE1BQU0sR0FBRyxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLElBQUksS0FBSyxLQUFLLElBQUk7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU8sR0FBRyxDQUFDO1lBQ3pDLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gJy4uL3ZhbGlkYXRvci50eXBlJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0SW50ZWdlck1lc3NhZ2VGYWN0b3J5KCkge1xyXG4gIHJldHVybiBgTXVzdCBiZSBhbiBpbnRlZ2VyYDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUludGVnZXJWYWxpZGF0b3IoXHJcbiAgY3JlYXRlTXNnOiAoKSA9PiBzdHJpbmcsXHJcbik6ICgpID0+IFZhbGlkYXRvcjxudW1iZXIgfCBudWxsPiB7XHJcbiAgcmV0dXJuICgpID0+IHtcclxuICAgIGNvbnN0IG1zZyA9IGNyZWF0ZU1zZygpO1xyXG4gICAgcmV0dXJuICh2YWx1ZSkgPT4ge1xyXG4gICAgICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiAnJztcclxuICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKSkgcmV0dXJuIG1zZztcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfTtcclxuICB9O1xyXG59XHJcbiJdfQ==","export function defaultIsNumberMessageFactory() {\n    return `Must be a number`;\n}\nexport function createIsNumberValidator(createMsg) {\n    return () => {\n        const msg = createMsg();\n        return (value) => {\n            if (value === null)\n                return '';\n            if (typeof value !== 'number' || isNaN(value))\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbnVtYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZm9ybS92YWxpZGF0aW9uL3NyYy9saWIvbnVtYmVyL2lzLW51bWJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsNkJBQTZCO0lBQzNDLE9BQU8sa0JBQWtCLENBQUM7QUFDNUIsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsU0FBdUI7SUFFdkIsT0FBTyxHQUFHLEVBQUU7UUFDVixNQUFNLEdBQUcsR0FBRyxTQUFTLEVBQUUsQ0FBQztRQUN4QixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDZixJQUFJLEtBQUssS0FBSyxJQUFJO2dCQUFFLE9BQU8sRUFBRSxDQUFDO1lBQzlCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxHQUFHLENBQUM7WUFDMUQsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi4vdmFsaWRhdG9yLnR5cGUnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRJc051bWJlck1lc3NhZ2VGYWN0b3J5KCkge1xyXG4gIHJldHVybiBgTXVzdCBiZSBhIG51bWJlcmA7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJc051bWJlclZhbGlkYXRvcihcclxuICBjcmVhdGVNc2c6ICgpID0+IHN0cmluZyxcclxuKTogKCkgPT4gVmFsaWRhdG9yPG51bWJlciB8IG51bGw+IHtcclxuICByZXR1cm4gKCkgPT4ge1xyXG4gICAgY29uc3QgbXNnID0gY3JlYXRlTXNnKCk7XHJcbiAgICByZXR1cm4gKHZhbHVlKSA9PiB7XHJcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuICcnO1xyXG4gICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJyB8fCBpc05hTih2YWx1ZSkpIHJldHVybiBtc2c7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH07XHJcbiAgfTtcclxufVxyXG4iXX0=","export function defaultMaxMessageFactory(max) {\n    return `Must be at most ${max}`;\n}\nexport function createMaxValidator(createMsg) {\n    return (max) => {\n        const msg = createMsg(max);\n        return (value) => {\n            if (value === null)\n                return '';\n            if (value > max)\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZm9ybS92YWxpZGF0aW9uL3NyYy9saWIvbnVtYmVyL21heC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsd0JBQXdCLENBQUMsR0FBVztJQUNsRCxPQUFPLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztBQUNsQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxTQUFrQztJQUVsQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDYixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2YsSUFBSSxLQUFLLEtBQUssSUFBSTtnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUM5QixJQUFJLEtBQUssR0FBRyxHQUFHO2dCQUFFLE9BQU8sR0FBRyxDQUFDO1lBQzVCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gJy4uL3ZhbGlkYXRvci50eXBlJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0TWF4TWVzc2FnZUZhY3RvcnkobWF4OiBudW1iZXIpIHtcclxuICByZXR1cm4gYE11c3QgYmUgYXQgbW9zdCAke21heH1gO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWF4VmFsaWRhdG9yKFxyXG4gIGNyZWF0ZU1zZzogKG1heDogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbik6IChtYXg6IG51bWJlcikgPT4gVmFsaWRhdG9yPG51bWJlciB8IG51bGw+IHtcclxuICByZXR1cm4gKG1heCkgPT4ge1xyXG4gICAgY29uc3QgbXNnID0gY3JlYXRlTXNnKG1heCk7XHJcbiAgICByZXR1cm4gKHZhbHVlKSA9PiB7XHJcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuICcnO1xyXG4gICAgICBpZiAodmFsdWUgPiBtYXgpIHJldHVybiBtc2c7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH07XHJcbiAgfTtcclxufVxyXG4iXX0=","export function defaultMinMessageFactory(min) {\n    return `Must be at least ${min}`;\n}\nexport function createMinValidator(createMsg) {\n    return (min) => {\n        const msg = createMsg(min);\n        return (value) => {\n            if (value === null)\n                return '';\n            if (value < min)\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZm9ybS92YWxpZGF0aW9uL3NyYy9saWIvbnVtYmVyL21pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsd0JBQXdCLENBQUMsR0FBVztJQUNsRCxPQUFPLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztBQUNuQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxTQUFrQztJQUVsQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDYixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2YsSUFBSSxLQUFLLEtBQUssSUFBSTtnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUM5QixJQUFJLEtBQUssR0FBRyxHQUFHO2dCQUFFLE9BQU8sR0FBRyxDQUFDO1lBQzVCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gJy4uL3ZhbGlkYXRvci50eXBlJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0TWluTWVzc2FnZUZhY3RvcnkobWluOiBudW1iZXIpIHtcclxuICByZXR1cm4gYE11c3QgYmUgYXQgbGVhc3QgJHttaW59YDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1pblZhbGlkYXRvcihcclxuICBjcmVhdGVNc2c6IChtaW46IG51bWJlcikgPT4gc3RyaW5nLFxyXG4pOiAobWluOiBudW1iZXIpID0+IFZhbGlkYXRvcjxudW1iZXIgfCBudWxsPiB7XHJcbiAgcmV0dXJuIChtaW4pID0+IHtcclxuICAgIGNvbnN0IG1zZyA9IGNyZWF0ZU1zZyhtaW4pO1xyXG4gICAgcmV0dXJuICh2YWx1ZSkgPT4ge1xyXG4gICAgICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiAnJztcclxuICAgICAgaWYgKHZhbHVlIDwgbWluKSByZXR1cm4gbXNnO1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9O1xyXG4gIH07XHJcbn1cclxuIl19","export function defaultMultipleOfMessageFactory(multipleOf) {\n    return `Must be a multiple of ${multipleOf}`;\n}\nexport function createMultipleOfValidator(createMsg) {\n    return (multipleOf) => {\n        const msg = createMsg(multipleOf);\n        return (value) => {\n            if (value === null)\n                return '';\n            if (value % multipleOf !== 0)\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtb2YuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mb3JtL3ZhbGlkYXRpb24vc3JjL2xpYi9udW1iZXIvbXVsdGlwbGUtb2YudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLCtCQUErQixDQUFDLFVBQWtCO0lBQ2hFLE9BQU8seUJBQXlCLFVBQVUsRUFBRSxDQUFDO0FBQy9DLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQ3ZDLFNBQXlDO0lBRXpDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRTtRQUNwQixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbEMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2YsSUFBSSxLQUFLLEtBQUssSUFBSTtnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUM5QixJQUFJLEtBQUssR0FBRyxVQUFVLEtBQUssQ0FBQztnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUN6QyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tICcuLi92YWxpZGF0b3IudHlwZSc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdE11bHRpcGxlT2ZNZXNzYWdlRmFjdG9yeShtdWx0aXBsZU9mOiBudW1iZXIpIHtcclxuICByZXR1cm4gYE11c3QgYmUgYSBtdWx0aXBsZSBvZiAke211bHRpcGxlT2Z9YDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU11bHRpcGxlT2ZWYWxpZGF0b3IoXHJcbiAgY3JlYXRlTXNnOiAobXVsdGlwbGVPZjogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbik6IChtdWx0aXBsZU9mOiBudW1iZXIpID0+IFZhbGlkYXRvcjxudW1iZXIgfCBudWxsPiB7XHJcbiAgcmV0dXJuIChtdWx0aXBsZU9mKSA9PiB7XHJcbiAgICBjb25zdCBtc2cgPSBjcmVhdGVNc2cobXVsdGlwbGVPZik7XHJcblxyXG4gICAgcmV0dXJuICh2YWx1ZSkgPT4ge1xyXG4gICAgICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiAnJztcclxuICAgICAgaWYgKHZhbHVlICUgbXVsdGlwbGVPZiAhPT0gMCkgcmV0dXJuIG1zZztcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfTtcclxuICB9O1xyXG59XHJcbiJdfQ==","import { createGeneralValidators } from '../general';\nimport { createMergeValidators } from '../merge-validators';\nimport { createIntegerValidator, defaultIntegerMessageFactory, } from './integer';\nimport { createIsNumberValidator, defaultIsNumberMessageFactory, } from './is-number';\nimport { createMaxValidator, defaultMaxMessageFactory } from './max';\nimport { createMinValidator, defaultMinMessageFactory } from './min';\nimport { createMultipleOfValidator, defaultMultipleOfMessageFactory, } from './multiple-of';\nconst DEFAULT_MESSAGES = {\n    min: defaultMinMessageFactory,\n    max: defaultMaxMessageFactory,\n    isNumber: defaultIsNumberMessageFactory,\n    multipleOf: defaultMultipleOfMessageFactory,\n    integer: defaultIntegerMessageFactory,\n};\nexport function createNumberValidators(factories, generalValidators = createGeneralValidators(), merger = createMergeValidators()) {\n    const t = { ...DEFAULT_MESSAGES, ...factories };\n    const base = {\n        min: createMinValidator(t.min),\n        max: createMaxValidator(t.max),\n        isNumber: createIsNumberValidator(t.isNumber),\n        multipleOf: createMultipleOfValidator(t.multipleOf),\n        integer: createIntegerValidator(t.integer),\n    };\n    return {\n        ...base,\n        all: (opt) => {\n            const validators = [];\n            if (opt.required)\n                validators.push(generalValidators.required(opt.messageOptions?.label));\n            validators.push(base.isNumber());\n            if (opt.mustBe !== undefined)\n                validators.push(generalValidators.mustBe(opt.mustBe));\n            if (opt.not !== undefined)\n                validators.push(generalValidators.not(opt.not));\n            if (opt.integer)\n                validators.push(base.integer());\n            if (opt.min !== undefined)\n                validators.push(base.min(opt.min));\n            if (opt.max !== undefined)\n                validators.push(base.max(opt.max));\n            if (opt.multipleOf !== undefined)\n                validators.push(base.multipleOf(opt.multipleOf));\n            if (opt.oneOf)\n                validators.push(generalValidators.oneOf(opt.oneOf));\n            if (opt.notOneOf)\n                validators.push(generalValidators.notOneOf(opt.notOneOf));\n            if (opt.custom)\n                validators.push(opt.custom);\n            return merger(validators);\n        },\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mb3JtL3ZhbGlkYXRpb24vc3JjL2xpYi9udW1iZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTVELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsNEJBQTRCLEdBQzdCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsNkJBQTZCLEdBQzlCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDckUsT0FBTyxFQUNMLHlCQUF5QixFQUN6QiwrQkFBK0IsR0FDaEMsTUFBTSxlQUFlLENBQUM7QUFVdkIsTUFBTSxnQkFBZ0IsR0FBMkI7SUFDL0MsR0FBRyxFQUFFLHdCQUF3QjtJQUM3QixHQUFHLEVBQUUsd0JBQXdCO0lBQzdCLFFBQVEsRUFBRSw2QkFBNkI7SUFDdkMsVUFBVSxFQUFFLCtCQUErQjtJQUMzQyxPQUFPLEVBQUUsNEJBQTRCO0NBQ3RDLENBQUM7QUE4R0YsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxTQUEyQyxFQUMzQyxpQkFBaUIsR0FBRyx1QkFBdUIsRUFBRSxFQUM3QyxNQUFNLEdBQUcscUJBQXFCLEVBQUU7SUFFaEMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLGdCQUFnQixFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFFaEQsTUFBTSxJQUFJLEdBQUc7UUFDWCxHQUFHLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUM5QixHQUFHLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUM5QixRQUFRLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUM3QyxVQUFVLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUNuRCxPQUFPLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztLQUMzQyxDQUFDO0lBRUYsT0FBTztRQUNMLEdBQUcsSUFBSTtRQUNQLEdBQUcsRUFBRSxDQUFDLEdBQTJCLEVBQUUsRUFBRTtZQUNuQyxNQUFNLFVBQVUsR0FBK0IsRUFBRSxDQUFDO1lBRWxELElBQUksR0FBRyxDQUFDLFFBQVE7Z0JBQ2QsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBRXpFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFFakMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLFNBQVM7Z0JBQzFCLFVBQVUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBRXhELElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxTQUFTO2dCQUN2QixVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUVsRCxJQUFJLEdBQUcsQ0FBQyxPQUFPO2dCQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFFakQsSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLFNBQVM7Z0JBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRTlELElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxTQUFTO2dCQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUU5RCxJQUFJLEdBQUcsQ0FBQyxVQUFVLEtBQUssU0FBUztnQkFDOUIsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBRW5ELElBQUksR0FBRyxDQUFDLEtBQUs7Z0JBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFFbkUsSUFBSSxHQUFHLENBQUMsUUFBUTtnQkFDZCxVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUU1RCxJQUFJLEdBQUcsQ0FBQyxNQUFNO2dCQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTVDLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUdlbmVyYWxWYWxpZGF0b3JzIH0gZnJvbSAnLi4vZ2VuZXJhbCc7XHJcbmltcG9ydCB7IGNyZWF0ZU1lcmdlVmFsaWRhdG9ycyB9IGZyb20gJy4uL21lcmdlLXZhbGlkYXRvcnMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tICcuLi92YWxpZGF0b3IudHlwZSc7XHJcbmltcG9ydCB7XHJcbiAgY3JlYXRlSW50ZWdlclZhbGlkYXRvcixcclxuICBkZWZhdWx0SW50ZWdlck1lc3NhZ2VGYWN0b3J5LFxyXG59IGZyb20gJy4vaW50ZWdlcic7XHJcbmltcG9ydCB7XHJcbiAgY3JlYXRlSXNOdW1iZXJWYWxpZGF0b3IsXHJcbiAgZGVmYXVsdElzTnVtYmVyTWVzc2FnZUZhY3RvcnksXHJcbn0gZnJvbSAnLi9pcy1udW1iZXInO1xyXG5pbXBvcnQgeyBjcmVhdGVNYXhWYWxpZGF0b3IsIGRlZmF1bHRNYXhNZXNzYWdlRmFjdG9yeSB9IGZyb20gJy4vbWF4JztcclxuaW1wb3J0IHsgY3JlYXRlTWluVmFsaWRhdG9yLCBkZWZhdWx0TWluTWVzc2FnZUZhY3RvcnkgfSBmcm9tICcuL21pbic7XHJcbmltcG9ydCB7XHJcbiAgY3JlYXRlTXVsdGlwbGVPZlZhbGlkYXRvcixcclxuICBkZWZhdWx0TXVsdGlwbGVPZk1lc3NhZ2VGYWN0b3J5LFxyXG59IGZyb20gJy4vbXVsdGlwbGUtb2YnO1xyXG5cclxuZXhwb3J0IHR5cGUgTnVtYmVyTWVzc2FnZUZhY3RvcmllcyA9IHtcclxuICBtaW46IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZU1pblZhbGlkYXRvcj5bMF07XHJcbiAgbWF4OiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVNYXhWYWxpZGF0b3I+WzBdO1xyXG4gIGlzTnVtYmVyOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVJc051bWJlclZhbGlkYXRvcj5bMF07XHJcbiAgbXVsdGlwbGVPZjogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlTXVsdGlwbGVPZlZhbGlkYXRvcj5bMF07XHJcbiAgaW50ZWdlcjogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlSW50ZWdlclZhbGlkYXRvcj5bMF07XHJcbn07XHJcblxyXG5jb25zdCBERUZBVUxUX01FU1NBR0VTOiBOdW1iZXJNZXNzYWdlRmFjdG9yaWVzID0ge1xyXG4gIG1pbjogZGVmYXVsdE1pbk1lc3NhZ2VGYWN0b3J5LFxyXG4gIG1heDogZGVmYXVsdE1heE1lc3NhZ2VGYWN0b3J5LFxyXG4gIGlzTnVtYmVyOiBkZWZhdWx0SXNOdW1iZXJNZXNzYWdlRmFjdG9yeSxcclxuICBtdWx0aXBsZU9mOiBkZWZhdWx0TXVsdGlwbGVPZk1lc3NhZ2VGYWN0b3J5LFxyXG4gIGludGVnZXI6IGRlZmF1bHRJbnRlZ2VyTWVzc2FnZUZhY3RvcnksXHJcbn07XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBjcmVhdGluZyBhIGNvbWJpbmVkIG51bWJlciB2YWxpZGF0b3IgdXNpbmcgdGhlIGAuYWxsKClgXHJcbiAqIG1ldGhvZCByZXR1cm5lZCBieSBgY3JlYXRlTnVtYmVyVmFsaWRhdG9yc2AgKGFjY2Vzc2VkIHZpYSBgaW5qZWN0VmFsaWRhdG9ycygpLm51bWJlci5hbGxgKS5cclxuICpcclxuICogUGFzcyBhbiBvYmplY3Qgb2YgdGhpcyB0eXBlIHRvIGB2YWxpZGF0b3JzLm51bWJlci5hbGwoey4uLn0pYCB0byBzcGVjaWZ5IHdoaWNoXHJcbiAqIG51bWJlci1yZWxhdGVkIHZhbGlkYXRpb25zIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0aW5nIHZhbGlkYXRvciBmdW5jdGlvbi5cclxuICogVGhlIHZhbGlkYXRpb24gZnVuY3Rpb24gcmV0dXJuZWQgYnkgYC5hbGwoKWAgZXhwZWN0cyBhbiBpbnB1dCB2YWx1ZSBvZiB0eXBlIGBudW1iZXIgfCBudWxsYC5cclxuICovXHJcbmV4cG9ydCB0eXBlIE51bWJlclZhbGlkYXRvck9wdGlvbnMgPSB7XHJcbiAgLyoqXHJcbiAgICogSWYgYHRydWVgLCB0aGUgbnVtYmVyIHZhbHVlIG11c3Qgbm90IGJlIGBudWxsYCBvciBgdW5kZWZpbmVkYC5cclxuICAgKiBVc2VzIHRoZSBjb25maWd1cmVkICdyZXF1aXJlZCcgdmFsaWRhdGlvbiBtZXNzYWdlLlxyXG4gICAqIEBzZWUgVmFsaWRhdG9ycy5nZW5lcmFsLnJlcXVpcmVkXHJcbiAgICogQGV4YW1wbGUgeyByZXF1aXJlZDogdHJ1ZSB9XHJcbiAgICovXHJcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBTcGVjaWZpZXMgdGhlIG1pbmltdW0gYWxsb3dlZCB2YWx1ZSAoaW5jbHVzaXZlKS5cclxuICAgKiBWYWxpZGF0aW9uIGZhaWxzIGlmIHRoZSBpbnB1dCBudW1iZXIgaXMgc3RyaWN0bHkgbGVzcyB0aGFuIGBtaW5gLlxyXG4gICAqIFVzZXMgdGhlIGNvbmZpZ3VyZWQgJ21pbiBudW1iZXInIHZhbGlkYXRpb24gbWVzc2FnZS5cclxuICAgKiBAZXhhbXBsZSB7IG1pbjogMCB9IC8vIE51bWJlciBtdXN0IGJlIDAgb3IgZ3JlYXRlclxyXG4gICAqIEBzZWUgVmFsaWRhdG9ycy5udW1iZXIubWluXHJcbiAgICovXHJcbiAgbWluPzogbnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBTcGVjaWZpZXMgdGhlIG1heGltdW0gYWxsb3dlZCB2YWx1ZSAoaW5jbHVzaXZlKS5cclxuICAgKiBWYWxpZGF0aW9uIGZhaWxzIGlmIHRoZSBpbnB1dCBudW1iZXIgaXMgc3RyaWN0bHkgZ3JlYXRlciB0aGFuIGBtYXhgLlxyXG4gICAqIFVzZXMgdGhlIGNvbmZpZ3VyZWQgJ21heCBudW1iZXInIHZhbGlkYXRpb24gbWVzc2FnZS5cclxuICAgKiBAZXhhbXBsZSB7IG1heDogMTAwIH0gLy8gTnVtYmVyIG11c3QgYmUgMTAwIG9yIGxlc3NcclxuICAgKiBAc2VlIFZhbGlkYXRvcnMubnVtYmVyLm1heFxyXG4gICAqL1xyXG4gIG1heD86IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogSWYgYHRydWVgLCB0aGUgbnVtYmVyIHZhbHVlIG11c3QgYmUgYW4gaW50ZWdlciAoaS5lLiwgaGF2ZSBubyBmcmFjdGlvbmFsIHBhcnQpLlxyXG4gICAqIFVzZXMgdGhlIGNvbmZpZ3VyZWQgJ2ludGVnZXInIHZhbGlkYXRpb24gbWVzc2FnZS5cclxuICAgKiBOb3RlOiBgbnVsbGAgb3IgYHVuZGVmaW5lZGAgdmFsdWVzIHR5cGljYWxseSBwYXNzIHRoaXMgY2hlY2s7IGNvbWJpbmUgd2l0aCBgcmVxdWlyZWQ6IHRydWVgIGlmIG5lZWRlZC5cclxuICAgKiBAZXhhbXBsZSB7IGludGVnZXI6IHRydWUgfVxyXG4gICAqIEBzZWUgVmFsaWRhdG9ycy5udW1iZXIuaW50ZWdlclxyXG4gICAqL1xyXG4gIGludGVnZXI/OiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbnVtYmVyIHZhbHVlIG11c3QgYmUgYSBtdWx0aXBsZSBvZiB0aGUgc3BlY2lmaWVkIG51bWJlciAoYG11bHRpcGxlT2ZgKS5cclxuICAgKiBGb3IgZXhhbXBsZSwgaWYgYG11bHRpcGxlT2ZgIGlzIDUsIHZhbGlkIG51bWJlcnMgYXJlIDAsIDUsIDEwLCAtNSwgZXRjLlxyXG4gICAqIFVzZXMgdGhlIGNvbmZpZ3VyZWQgJ211bHRpcGxlT2YnIHZhbGlkYXRpb24gbWVzc2FnZS5cclxuICAgKiBOb3RlOiBgbnVsbGAgb3IgYHVuZGVmaW5lZGAgdmFsdWVzIHR5cGljYWxseSBwYXNzIHRoaXMgY2hlY2suXHJcbiAgICogQGV4YW1wbGUgeyBtdWx0aXBsZU9mOiA1IH0gLy8gTXVzdCBiZSBhIG11bHRpcGxlIG9mIDVcclxuICAgKiBAZXhhbXBsZSB7IG11bHRpcGxlT2Y6IDAuMDEgfSAvLyBVc2VmdWwgZm9yIGN1cnJlbmN5IChtYXggMiBkZWNpbWFsIHBsYWNlcylcclxuICAgKiBAc2VlIFZhbGlkYXRvcnMubnVtYmVyLm11bHRpcGxlT2ZcclxuICAgKi9cclxuICBtdWx0aXBsZU9mPzogbnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbnVtYmVyIHZhbHVlIG11c3QgYmUgZXhhY3RseSBlcXVhbCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlIChvciBgbnVsbGApLlxyXG4gICAqIFVzZXMgdGhlIGNvbmZpZ3VyZWQgYG11c3RCZWAgdmFsaWRhdGlvbiBtZXNzYWdlLlxyXG4gICAqIEBleGFtcGxlIHsgbXVzdEJlOiA0MiB9IC8vIE11c3QgYmUgZXhhY3RseSA0MlxyXG4gICAqIEBleGFtcGxlIHsgbXVzdEJlOiBudWxsIH0gLy8gTXVzdCBiZSBleGFjdGx5IG51bGxcclxuICAgKiBAc2VlIFZhbGlkYXRvcnMuZ2VuZXJhbC5tdXN0QmVcclxuICAgKiBAc2VlIFZhbGlkYXRvcnMuZ2VuZXJhbC5tdXN0QmVOdWxsXHJcbiAgICovXHJcbiAgbXVzdEJlPzogbnVtYmVyIHwgbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG51bWJlciB2YWx1ZSBtdXN0ICpub3QqIGJlIGVxdWFsIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUgKG9yIGBudWxsYCkuXHJcbiAgICogVXNlcyB0aGUgY29uZmlndXJlZCBgbm90YCB2YWxpZGF0aW9uIG1lc3NhZ2UuXHJcbiAgICogQGV4YW1wbGUgeyBub3Q6IDAgfSAvLyBDYW5ub3QgYmUgemVyb1xyXG4gICAqIEBzZWUgVmFsaWRhdG9ycy5nZW5lcmFsLm5vdFxyXG4gICAqL1xyXG4gIG5vdD86IG51bWJlciB8IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBudW1iZXIgdmFsdWUgbXVzdCBiZSBvbmUgb2YgdGhlIG51bWJlcnMgKG9yIGBudWxsYCkgaW5jbHVkZWQgaW4gdGhlIHNwZWNpZmllZCBhcnJheS5cclxuICAgKiBVc2VzIHRoZSBjb25maWd1cmVkIGBvbmVPZmAgdmFsaWRhdGlvbiBtZXNzYWdlLlxyXG4gICAqIEBleGFtcGxlIHsgb25lT2Y6IFsxLCAzLCA1LCBudWxsXSB9IC8vIE11c3QgYmUgMSwgMywgNSwgb3IgbnVsbFxyXG4gICAqIEBzZWUgVmFsaWRhdG9ycy5nZW5lcmFsLm9uZU9mXHJcbiAgICovXHJcbiAgb25lT2Y/OiAobnVtYmVyIHwgbnVsbClbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG51bWJlciB2YWx1ZSBtdXN0ICpub3QqIGJlIGFueSBvZiB0aGUgbnVtYmVycyAob3IgYG51bGxgKSBpbmNsdWRlZCBpbiB0aGUgc3BlY2lmaWVkIGFycmF5LlxyXG4gICAqIFVzZXMgdGhlIGNvbmZpZ3VyZWQgYG5vdE9uZU9mYCB2YWxpZGF0aW9uIG1lc3NhZ2UuXHJcbiAgICogQGV4YW1wbGUgeyBub3RPbmVPZjogWzAsIDEzXSB9IC8vIENhbm5vdCBiZSAwIG9yIDEzXHJcbiAgICogQHNlZSBWYWxpZGF0b3JzLmdlbmVyYWwubm90T25lT2ZcclxuICAgKi9cclxuICBub3RPbmVPZj86IChudW1iZXIgfCBudWxsKVtdO1xyXG5cclxuICAvKipcclxuICAgKiBPcHRpb25hbCBjdXN0b20gdmFsaWRhdGlvbiBmdW5jdGlvblxyXG4gICAqL1xyXG4gIGN1c3RvbT86ICh2YWx1ZTogbnVtYmVyIHwgbnVsbCkgPT4gc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBPcHRpb25hbCBjb25maWd1cmF0aW9uIHBhc3NlZCBkb3duIHRvIHNwZWNpZmljIG1lc3NhZ2UgZmFjdG9yaWVzLlxyXG4gICAqIFByaW1hcmlseSB1c2VkIGJ5IHRoZSBgcmVxdWlyZWRgIHZhbGlkYXRvcidzIG1lc3NhZ2UgZmFjdG9yeS5cclxuICAgKi9cclxuICBtZXNzYWdlT3B0aW9ucz86IHtcclxuICAgIC8qKlxyXG4gICAgICogQW4gb3B0aW9uYWwgbGFiZWwgZm9yIHRoZSBmaWVsZCAoZS5nLiwgJ0FnZScsICdRdWFudGl0eScpXHJcbiAgICAgKiB3aGljaCBjYW4gYmUgaW5jb3Jwb3JhdGVkIGludG8gdGhlICdyZXF1aXJlZCcgZXJyb3IgbWVzc2FnZSBieSBpdHMgZmFjdG9yeS5cclxuICAgICAqIEBleGFtcGxlIHsgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2VPcHRpb25zOiB7IGxhYmVsOiAnUXVhbnRpdHknIH0gfSAvLyBFcnJvciBtaWdodCBiZSBcIlF1YW50aXR5IGlzIHJlcXVpcmVkXCJcclxuICAgICAqL1xyXG4gICAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgfTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOdW1iZXJWYWxpZGF0b3JzKFxyXG4gIGZhY3Rvcmllcz86IFBhcnRpYWw8TnVtYmVyTWVzc2FnZUZhY3Rvcmllcz4sXHJcbiAgZ2VuZXJhbFZhbGlkYXRvcnMgPSBjcmVhdGVHZW5lcmFsVmFsaWRhdG9ycygpLFxyXG4gIG1lcmdlciA9IGNyZWF0ZU1lcmdlVmFsaWRhdG9ycygpLFxyXG4pIHtcclxuICBjb25zdCB0ID0geyAuLi5ERUZBVUxUX01FU1NBR0VTLCAuLi5mYWN0b3JpZXMgfTtcclxuXHJcbiAgY29uc3QgYmFzZSA9IHtcclxuICAgIG1pbjogY3JlYXRlTWluVmFsaWRhdG9yKHQubWluKSxcclxuICAgIG1heDogY3JlYXRlTWF4VmFsaWRhdG9yKHQubWF4KSxcclxuICAgIGlzTnVtYmVyOiBjcmVhdGVJc051bWJlclZhbGlkYXRvcih0LmlzTnVtYmVyKSxcclxuICAgIG11bHRpcGxlT2Y6IGNyZWF0ZU11bHRpcGxlT2ZWYWxpZGF0b3IodC5tdWx0aXBsZU9mKSxcclxuICAgIGludGVnZXI6IGNyZWF0ZUludGVnZXJWYWxpZGF0b3IodC5pbnRlZ2VyKSxcclxuICB9O1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgLi4uYmFzZSxcclxuICAgIGFsbDogKG9wdDogTnVtYmVyVmFsaWRhdG9yT3B0aW9ucykgPT4ge1xyXG4gICAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3I8bnVtYmVyIHwgbnVsbD5bXSA9IFtdO1xyXG5cclxuICAgICAgaWYgKG9wdC5yZXF1aXJlZClcclxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goZ2VuZXJhbFZhbGlkYXRvcnMucmVxdWlyZWQob3B0Lm1lc3NhZ2VPcHRpb25zPy5sYWJlbCkpO1xyXG5cclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKGJhc2UuaXNOdW1iZXIoKSk7XHJcblxyXG4gICAgICBpZiAob3B0Lm11c3RCZSAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHZhbGlkYXRvcnMucHVzaChnZW5lcmFsVmFsaWRhdG9ycy5tdXN0QmUob3B0Lm11c3RCZSkpO1xyXG5cclxuICAgICAgaWYgKG9wdC5ub3QgIT09IHVuZGVmaW5lZClcclxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goZ2VuZXJhbFZhbGlkYXRvcnMubm90KG9wdC5ub3QpKTtcclxuXHJcbiAgICAgIGlmIChvcHQuaW50ZWdlcikgdmFsaWRhdG9ycy5wdXNoKGJhc2UuaW50ZWdlcigpKTtcclxuXHJcbiAgICAgIGlmIChvcHQubWluICE9PSB1bmRlZmluZWQpIHZhbGlkYXRvcnMucHVzaChiYXNlLm1pbihvcHQubWluKSk7XHJcblxyXG4gICAgICBpZiAob3B0Lm1heCAhPT0gdW5kZWZpbmVkKSB2YWxpZGF0b3JzLnB1c2goYmFzZS5tYXgob3B0Lm1heCkpO1xyXG5cclxuICAgICAgaWYgKG9wdC5tdWx0aXBsZU9mICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKGJhc2UubXVsdGlwbGVPZihvcHQubXVsdGlwbGVPZikpO1xyXG5cclxuICAgICAgaWYgKG9wdC5vbmVPZikgdmFsaWRhdG9ycy5wdXNoKGdlbmVyYWxWYWxpZGF0b3JzLm9uZU9mKG9wdC5vbmVPZikpO1xyXG5cclxuICAgICAgaWYgKG9wdC5ub3RPbmVPZilcclxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goZ2VuZXJhbFZhbGlkYXRvcnMubm90T25lT2Yob3B0Lm5vdE9uZU9mKSk7XHJcblxyXG4gICAgICBpZiAob3B0LmN1c3RvbSkgdmFsaWRhdG9ycy5wdXNoKG9wdC5jdXN0b20pO1xyXG5cclxuICAgICAgcmV0dXJuIG1lcmdlcih2YWxpZGF0b3JzKTtcclxuICAgIH0sXHJcbiAgfTtcclxufVxyXG4iXX0=","const EMAIL_REGEXP = /^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\nexport function defaultEmailMessageFactory() {\n    return `Must be a valid email`;\n}\nexport function createEmailValidator(createMsg) {\n    return () => {\n        const msg = createMsg();\n        return (value) => {\n            if (value === null)\n                return '';\n            if (!EMAIL_REGEXP.test(value))\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mb3JtL3ZhbGlkYXRpb24vc3JjL2xpYi9zdHJpbmcvZW1haWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxZQUFZLEdBQ2hCLG9NQUFvTSxDQUFDO0FBRXZNLE1BQU0sVUFBVSwwQkFBMEI7SUFDeEMsT0FBTyx1QkFBdUIsQ0FBQztBQUNqQyxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxTQUF1QjtJQUV2QixPQUFPLEdBQUcsRUFBRTtRQUNWLE1BQU0sR0FBRyxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBRXhCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLElBQUksS0FBSyxLQUFLLElBQUk7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU8sR0FBRyxDQUFDO1lBQzFDLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gJy4uL3ZhbGlkYXRvci50eXBlJztcclxuXHJcbmNvbnN0IEVNQUlMX1JFR0VYUCA9XHJcbiAgL14oPz0uezEsMjU0fSQpKD89LnsxLDY0fUApW2EtekEtWjAtOSEjJCUmJyorLz0/Xl9ge3x9fi1dKyg/OlxcLlthLXpBLVowLTkhIyQlJicqKy89P15fYHt8fX4tXSspKkBbYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8oPzpcXC5bYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8pKiQvO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRFbWFpbE1lc3NhZ2VGYWN0b3J5KCkge1xyXG4gIHJldHVybiBgTXVzdCBiZSBhIHZhbGlkIGVtYWlsYDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVtYWlsVmFsaWRhdG9yKFxyXG4gIGNyZWF0ZU1zZzogKCkgPT4gc3RyaW5nLFxyXG4pOiAoKSA9PiBWYWxpZGF0b3I8c3RyaW5nIHwgbnVsbD4ge1xyXG4gIHJldHVybiAoKSA9PiB7XHJcbiAgICBjb25zdCBtc2cgPSBjcmVhdGVNc2coKTtcclxuXHJcbiAgICByZXR1cm4gKHZhbHVlKSA9PiB7XHJcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuICcnO1xyXG4gICAgICBpZiAoIUVNQUlMX1JFR0VYUC50ZXN0KHZhbHVlKSkgcmV0dXJuIG1zZztcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfTtcclxuICB9O1xyXG59XHJcbiJdfQ==","export function defaultIsStringMessageFactory() {\n    return `Must be a string`;\n}\nexport function createIsStringValidator(createMsg) {\n    return () => {\n        const msg = createMsg();\n        return (value) => {\n            if (value === null)\n                return '';\n            if (typeof value !== 'string')\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtc3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZm9ybS92YWxpZGF0aW9uL3NyYy9saWIvc3RyaW5nL2lzLXN0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsNkJBQTZCO0lBQzNDLE9BQU8sa0JBQWtCLENBQUM7QUFDNUIsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsU0FBdUI7SUFFdkIsT0FBTyxHQUFHLEVBQUU7UUFDVixNQUFNLEdBQUcsR0FBRyxTQUFTLEVBQUUsQ0FBQztRQUN4QixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDZixJQUFJLEtBQUssS0FBSyxJQUFJO2dCQUFFLE9BQU8sRUFBRSxDQUFDO1lBQzlCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUMxQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tICcuLi92YWxpZGF0b3IudHlwZSc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdElzU3RyaW5nTWVzc2FnZUZhY3RvcnkoKSB7XHJcbiAgcmV0dXJuIGBNdXN0IGJlIGEgc3RyaW5nYDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUlzU3RyaW5nVmFsaWRhdG9yKFxyXG4gIGNyZWF0ZU1zZzogKCkgPT4gc3RyaW5nLFxyXG4pOiAoKSA9PiBWYWxpZGF0b3I8c3RyaW5nIHwgbnVsbD4ge1xyXG4gIHJldHVybiAoKSA9PiB7XHJcbiAgICBjb25zdCBtc2cgPSBjcmVhdGVNc2coKTtcclxuICAgIHJldHVybiAodmFsdWUpID0+IHtcclxuICAgICAgaWYgKHZhbHVlID09PSBudWxsKSByZXR1cm4gJyc7XHJcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSByZXR1cm4gbXNnO1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9O1xyXG4gIH07XHJcbn1cclxuIl19","import { createMaxLengthValidator as arrayCreateMaxValidator, defaultMaxLengthMessageFactory as arrayDefaultMessageFactory, } from '../array/max-length';\nexport function defaultMaxLengthMessageFactory(max) {\n    return arrayDefaultMessageFactory(max, 'characters');\n}\nexport function createMaxLengthValidator(createMsg) {\n    return arrayCreateMaxValidator((max) => createMsg(max));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LWNoYXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZm9ybS92YWxpZGF0aW9uL3NyYy9saWIvc3RyaW5nL21heC1jaGFycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsd0JBQXdCLElBQUksdUJBQXVCLEVBQ25ELDhCQUE4QixJQUFJLDBCQUEwQixHQUM3RCxNQUFNLHFCQUFxQixDQUFDO0FBRzdCLE1BQU0sVUFBVSw4QkFBOEIsQ0FBQyxHQUFXO0lBQ3hELE9BQU8sMEJBQTBCLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLFNBQWtDO0lBRWxDLE9BQU8sdUJBQXVCLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGNyZWF0ZU1heExlbmd0aFZhbGlkYXRvciBhcyBhcnJheUNyZWF0ZU1heFZhbGlkYXRvcixcclxuICBkZWZhdWx0TWF4TGVuZ3RoTWVzc2FnZUZhY3RvcnkgYXMgYXJyYXlEZWZhdWx0TWVzc2FnZUZhY3RvcnksXHJcbn0gZnJvbSAnLi4vYXJyYXkvbWF4LWxlbmd0aCc7XHJcbmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gJy4uL3ZhbGlkYXRvci50eXBlJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0TWF4TGVuZ3RoTWVzc2FnZUZhY3RvcnkobWF4OiBudW1iZXIpIHtcclxuICByZXR1cm4gYXJyYXlEZWZhdWx0TWVzc2FnZUZhY3RvcnkobWF4LCAnY2hhcmFjdGVycycpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWF4TGVuZ3RoVmFsaWRhdG9yKFxyXG4gIGNyZWF0ZU1zZzogKG1heDogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbik6IChtYXg6IG51bWJlcikgPT4gVmFsaWRhdG9yPHN0cmluZyB8IG51bGw+IHtcclxuICByZXR1cm4gYXJyYXlDcmVhdGVNYXhWYWxpZGF0b3IoKG1heCkgPT4gY3JlYXRlTXNnKG1heCkpO1xyXG59XHJcbiJdfQ==","import { createMinLengthValidator as arrayCreateMinValidator, defaultMinLengthMessageFactory as arrayDefaultMessageFactory, } from '../array/min-length';\nexport function defaultMinLengthMessageFactory(min) {\n    return arrayDefaultMessageFactory(min, 'characters');\n}\nexport function createMinLengthValidator(createMsg) {\n    return arrayCreateMinValidator((min) => createMsg(min));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluLWNoYXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZm9ybS92YWxpZGF0aW9uL3NyYy9saWIvc3RyaW5nL21pbi1jaGFycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsd0JBQXdCLElBQUksdUJBQXVCLEVBQ25ELDhCQUE4QixJQUFJLDBCQUEwQixHQUM3RCxNQUFNLHFCQUFxQixDQUFDO0FBRzdCLE1BQU0sVUFBVSw4QkFBOEIsQ0FBQyxHQUFXO0lBQ3hELE9BQU8sMEJBQTBCLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLFNBQWtDO0lBRWxDLE9BQU8sdUJBQXVCLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGNyZWF0ZU1pbkxlbmd0aFZhbGlkYXRvciBhcyBhcnJheUNyZWF0ZU1pblZhbGlkYXRvcixcclxuICBkZWZhdWx0TWluTGVuZ3RoTWVzc2FnZUZhY3RvcnkgYXMgYXJyYXlEZWZhdWx0TWVzc2FnZUZhY3RvcnksXHJcbn0gZnJvbSAnLi4vYXJyYXkvbWluLWxlbmd0aCc7XHJcbmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gJy4uL3ZhbGlkYXRvci50eXBlJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0TWluTGVuZ3RoTWVzc2FnZUZhY3RvcnkobWluOiBudW1iZXIpIHtcclxuICByZXR1cm4gYXJyYXlEZWZhdWx0TWVzc2FnZUZhY3RvcnkobWluLCAnY2hhcmFjdGVycycpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWluTGVuZ3RoVmFsaWRhdG9yKFxyXG4gIGNyZWF0ZU1zZzogKG1pbjogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbik6IChtaW46IG51bWJlcikgPT4gVmFsaWRhdG9yPHN0cmluZyB8IG51bGw+IHtcclxuICByZXR1cm4gYXJyYXlDcmVhdGVNaW5WYWxpZGF0b3IoKG1pbikgPT4gY3JlYXRlTXNnKG1pbikpO1xyXG59XHJcbiJdfQ==","export function defaultPatternMessageFactory(patternLabel) {\n    return `Must match pattern ${patternLabel}`;\n}\nexport function createPatternValidator(createMsg) {\n    return (pattern) => {\n        const regex = new RegExp(pattern);\n        const msg = createMsg(regex.source);\n        return (value) => {\n            if (value === null)\n                return '';\n            if (!regex.test(value))\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm0vdmFsaWRhdGlvbi9zcmMvbGliL3N0cmluZy9wYXR0ZXJuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxZQUFvQjtJQUMvRCxPQUFPLHNCQUFzQixZQUFZLEVBQUUsQ0FBQztBQUM5QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxTQUEyQztJQUUzQyxPQUFPLENBQUMsT0FBd0IsRUFBRSxFQUFFO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFcEMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2YsSUFBSSxLQUFLLEtBQUssSUFBSTtnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxHQUFHLENBQUM7WUFDbkMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnLi4vdmFsaWRhdG9yLnR5cGUnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRQYXR0ZXJuTWVzc2FnZUZhY3RvcnkocGF0dGVybkxhYmVsOiBzdHJpbmcpIHtcclxuICByZXR1cm4gYE11c3QgbWF0Y2ggcGF0dGVybiAke3BhdHRlcm5MYWJlbH1gO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGF0dGVyblZhbGlkYXRvcihcclxuICBjcmVhdGVNc2c6IChwYXR0ZXJuTGFiZWw6IHN0cmluZykgPT4gc3RyaW5nLFxyXG4pOiAocGF0dGVybjogc3RyaW5nIHwgUmVnRXhwKSA9PiBWYWxpZGF0b3I8c3RyaW5nIHwgbnVsbD4ge1xyXG4gIHJldHVybiAocGF0dGVybjogc3RyaW5nIHwgUmVnRXhwKSA9PiB7XHJcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAocGF0dGVybik7XHJcbiAgICBjb25zdCBtc2cgPSBjcmVhdGVNc2cocmVnZXguc291cmNlKTtcclxuXHJcbiAgICByZXR1cm4gKHZhbHVlKSA9PiB7XHJcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuICcnO1xyXG4gICAgICBpZiAoIXJlZ2V4LnRlc3QodmFsdWUpKSByZXR1cm4gbXNnO1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9O1xyXG4gIH07XHJcbn1cclxuIl19","export function defaultTrimmedMessageFactory() {\n    return `Cannot contain leading or trailing whitespace`;\n}\nexport function createTrimmedValidator(createMsg) {\n    return () => {\n        const msg = createMsg();\n        return (value) => {\n            if (value === null)\n                return '';\n            if (value.trim().length !== value.length)\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpbW1lZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm0vdmFsaWRhdGlvbi9zcmMvbGliL3N0cmluZy90cmltbWVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSw0QkFBNEI7SUFDMUMsT0FBTywrQ0FBK0MsQ0FBQztBQUN6RCxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxTQUF1QjtJQUV2QixPQUFPLEdBQUcsRUFBRTtRQUNWLE1BQU0sR0FBRyxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBRXhCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLElBQUksS0FBSyxLQUFLLElBQUk7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDOUIsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxNQUFNO2dCQUFFLE9BQU8sR0FBRyxDQUFDO1lBQ3JELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gJy4uL3ZhbGlkYXRvci50eXBlJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0VHJpbW1lZE1lc3NhZ2VGYWN0b3J5KCkge1xyXG4gIHJldHVybiBgQ2Fubm90IGNvbnRhaW4gbGVhZGluZyBvciB0cmFpbGluZyB3aGl0ZXNwYWNlYDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyaW1tZWRWYWxpZGF0b3IoXHJcbiAgY3JlYXRlTXNnOiAoKSA9PiBzdHJpbmcsXHJcbik6ICgpID0+IFZhbGlkYXRvcjxzdHJpbmcgfCBudWxsPiB7XHJcbiAgcmV0dXJuICgpID0+IHtcclxuICAgIGNvbnN0IG1zZyA9IGNyZWF0ZU1zZygpO1xyXG5cclxuICAgIHJldHVybiAodmFsdWUpID0+IHtcclxuICAgICAgaWYgKHZhbHVlID09PSBudWxsKSByZXR1cm4gJyc7XHJcbiAgICAgIGlmICh2YWx1ZS50cmltKCkubGVuZ3RoICE9PSB2YWx1ZS5sZW5ndGgpIHJldHVybiBtc2c7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH07XHJcbiAgfTtcclxufVxyXG4iXX0=","const URI_REGEXP = /^(https?|ftp):\\/\\/[^\\s/$.?#].[^\\s]*$/;\nexport function defaultURIMessageFactory() {\n    return `Must be a valid URI`;\n}\nexport function createURIValidator(createMsg) {\n    return () => {\n        const msg = createMsg();\n        return (value) => {\n            if (value === null)\n                return '';\n            if (!URI_REGEXP.test(value))\n                return msg;\n            return '';\n        };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZm9ybS92YWxpZGF0aW9uL3NyYy9saWIvc3RyaW5nL3VyaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsR0FBRyxzQ0FBc0MsQ0FBQztBQUUxRCxNQUFNLFVBQVUsd0JBQXdCO0lBQ3RDLE9BQU8scUJBQXFCLENBQUM7QUFDL0IsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsU0FBdUI7SUFFdkIsT0FBTyxHQUFHLEVBQUU7UUFDVixNQUFNLEdBQUcsR0FBRyxTQUFTLEVBQUUsQ0FBQztRQUV4QixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDZixJQUFJLEtBQUssS0FBSyxJQUFJO2dCQUFFLE9BQU8sRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUN4QyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tICcuLi92YWxpZGF0b3IudHlwZSc7XHJcblxyXG5jb25zdCBVUklfUkVHRVhQID0gL14oaHR0cHM/fGZ0cCk6XFwvXFwvW15cXHMvJC4/I10uW15cXHNdKiQvO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRVUklNZXNzYWdlRmFjdG9yeSgpIHtcclxuICByZXR1cm4gYE11c3QgYmUgYSB2YWxpZCBVUklgO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVVJJVmFsaWRhdG9yKFxyXG4gIGNyZWF0ZU1zZzogKCkgPT4gc3RyaW5nLFxyXG4pOiAoKSA9PiBWYWxpZGF0b3I8c3RyaW5nIHwgbnVsbD4ge1xyXG4gIHJldHVybiAoKSA9PiB7XHJcbiAgICBjb25zdCBtc2cgPSBjcmVhdGVNc2coKTtcclxuXHJcbiAgICByZXR1cm4gKHZhbHVlKSA9PiB7XHJcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuICcnO1xyXG4gICAgICBpZiAoIVVSSV9SRUdFWFAudGVzdCh2YWx1ZSkpIHJldHVybiBtc2c7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH07XHJcbiAgfTtcclxufVxyXG4iXX0=","import { createGeneralValidators } from '../general';\nimport { createMergeValidators } from '../merge-validators';\nimport { createEmailValidator, defaultEmailMessageFactory } from './email';\nimport { createIsStringValidator, defaultIsStringMessageFactory, } from './is-string';\nimport { createMaxLengthValidator, defaultMaxLengthMessageFactory, } from './max-chars';\nimport { createMinLengthValidator, defaultMinLengthMessageFactory, } from './min-chars';\nimport { createPatternValidator, defaultPatternMessageFactory, } from './pattern';\nimport { createTrimmedValidator, defaultTrimmedMessageFactory, } from './trimmed';\nimport { createURIValidator, defaultURIMessageFactory } from './uri';\nconst DEFAULT_MESSAGES = {\n    email: defaultEmailMessageFactory,\n    uri: defaultURIMessageFactory,\n    pattern: defaultPatternMessageFactory,\n    trimmed: defaultTrimmedMessageFactory,\n    isString: defaultIsStringMessageFactory,\n    minLength: defaultMinLengthMessageFactory,\n    maxLength: defaultMaxLengthMessageFactory,\n};\nexport function createStringValidators(factories, generalValidators = createGeneralValidators(), merger = createMergeValidators()) {\n    const t = { ...DEFAULT_MESSAGES, ...factories };\n    const base = {\n        email: createEmailValidator(t.email),\n        uri: createURIValidator(t.uri),\n        pattern: createPatternValidator(t.pattern),\n        trimmed: createTrimmedValidator(t.trimmed),\n        isString: createIsStringValidator(t.isString),\n        minLength: createMinLengthValidator(t.minLength),\n        maxLength: createMaxLengthValidator(t.maxLength),\n    };\n    return {\n        ...base,\n        all: (opt) => {\n            const validators = [];\n            if (opt.required)\n                validators.push(generalValidators.required(opt?.messageOptions?.label));\n            validators.push(base.isString());\n            if (opt.mustBe !== undefined)\n                validators.push(generalValidators.mustBe(opt.mustBe));\n            if (opt.not !== undefined)\n                validators.push(generalValidators.not(opt.not));\n            if (opt.trimmed)\n                validators.push(base.trimmed());\n            if (opt.minLength !== undefined)\n                validators.push(base.minLength(opt.minLength));\n            if (opt.maxLength)\n                validators.push(base.maxLength(opt.maxLength));\n            if (opt.pattern) {\n                switch (opt.pattern) {\n                    case 'email':\n                        validators.push(base.email());\n                        break;\n                    case 'uri':\n                        validators.push(base.uri());\n                        break;\n                    default:\n                        validators.push(base.pattern(opt.pattern));\n                        break;\n                }\n            }\n            if (opt.oneOf)\n                validators.push(generalValidators.oneOf(opt.oneOf));\n            if (opt.notOneOf)\n                validators.push(generalValidators.notOneOf(opt.notOneOf));\n            if (opt.custom)\n                validators.push(opt.custom);\n            return merger(validators);\n        },\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mb3JtL3ZhbGlkYXRpb24vc3JjL2xpYi9zdHJpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDZCQUE2QixHQUM5QixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDhCQUE4QixHQUMvQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDhCQUE4QixHQUMvQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLDRCQUE0QixHQUM3QixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLDRCQUE0QixHQUM3QixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFZckUsTUFBTSxnQkFBZ0IsR0FBMkI7SUFDL0MsS0FBSyxFQUFFLDBCQUEwQjtJQUNqQyxHQUFHLEVBQUUsd0JBQXdCO0lBQzdCLE9BQU8sRUFBRSw0QkFBNEI7SUFDckMsT0FBTyxFQUFFLDRCQUE0QjtJQUNyQyxRQUFRLEVBQUUsNkJBQTZCO0lBQ3ZDLFNBQVMsRUFBRSw4QkFBOEI7SUFDekMsU0FBUyxFQUFFLDhCQUE4QjtDQUMxQyxDQUFDO0FBMkhGLE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsU0FBMkMsRUFDM0MsaUJBQWlCLEdBQUcsdUJBQXVCLEVBQUUsRUFD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Q0FBQyxDQUFDO1lBRTVELElBQUksR0FBRyxDQUFDLE1BQU07Z0JBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFNUMsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUIsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlR2VuZXJhbFZhbGlkYXRvcnMgfSBmcm9tICcuLi9nZW5lcmFsJztcclxuaW1wb3J0IHsgY3JlYXRlTWVyZ2VWYWxpZGF0b3JzIH0gZnJvbSAnLi4vbWVyZ2UtdmFsaWRhdG9ycyc7XHJcbmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gJy4uL3ZhbGlkYXRvci50eXBlJztcclxuaW1wb3J0IHsgY3JlYXRlRW1haWxWYWxpZGF0b3IsIGRlZmF1bHRFbWFpbE1lc3NhZ2VGYWN0b3J5IH0gZnJvbSAnLi9lbWFpbCc7XHJcbmltcG9ydCB7XHJcbiAgY3JlYXRlSXNTdHJpbmdWYWxpZGF0b3IsXHJcbiAgZGVmYXVsdElzU3RyaW5nTWVzc2FnZUZhY3RvcnksXHJcbn0gZnJvbSAnLi9pcy1zdHJpbmcnO1xyXG5pbXBvcnQge1xyXG4gIGNyZWF0ZU1heExlbmd0aFZhbGlkYXRvcixcclxuICBkZWZhdWx0TWF4TGVuZ3RoTWVzc2FnZUZhY3RvcnksXHJcbn0gZnJvbSAnLi9tYXgtY2hhcnMnO1xyXG5pbXBvcnQge1xyXG4gIGNyZWF0ZU1pbkxlbmd0aFZhbGlkYXRvcixcclxuICBkZWZhdWx0TWluTGVuZ3RoTWVzc2FnZUZhY3RvcnksXHJcbn0gZnJvbSAnLi9taW4tY2hhcnMnO1xyXG5pbXBvcnQge1xyXG4gIGNyZWF0ZVBhdHRlcm5WYWxpZGF0b3IsXHJcbiAgZGVmYXVsdFBhdHRlcm5NZXNzYWdlRmFjdG9yeSxcclxufSBmcm9tICcuL3BhdHRlcm4nO1xyXG5pbXBvcnQge1xyXG4gIGNyZWF0ZVRyaW1tZWRWYWxpZGF0b3IsXHJcbiAgZGVmYXVsdFRyaW1tZWRNZXNzYWdlRmFjdG9yeSxcclxufSBmcm9tICcuL3RyaW1tZWQnO1xyXG5pbXBvcnQgeyBjcmVhdGVVUklWYWxpZGF0b3IsIGRlZmF1bHRVUklNZXNzYWdlRmFjdG9yeSB9IGZyb20gJy4vdXJpJztcclxuXHJcbmV4cG9ydCB0eXBlIFN0cmluZ01lc3NhZ2VGYWN0b3JpZXMgPSB7XHJcbiAgZW1haWw6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZUVtYWlsVmFsaWRhdG9yPlswXTtcclxuICB1cmk6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZVVSSVZhbGlkYXRvcj5bMF07XHJcbiAgcGF0dGVybjogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlUGF0dGVyblZhbGlkYXRvcj5bMF07XHJcbiAgdHJpbW1lZDogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlVHJpbW1lZFZhbGlkYXRvcj5bMF07XHJcbiAgaXNTdHJpbmc6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZUlzU3RyaW5nVmFsaWRhdG9yPlswXTtcclxuICBtaW5MZW5ndGg6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZU1pbkxlbmd0aFZhbGlkYXRvcj5bMF07XHJcbiAgbWF4TGVuZ3RoOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVNYXhMZW5ndGhWYWxpZGF0b3I+WzBdO1xyXG59O1xyXG5cclxuY29uc3QgREVGQVVMVF9NRVNTQUdFUzogU3RyaW5nTWVzc2FnZUZhY3RvcmllcyA9IHtcclxuICBlbWFpbDogZGVmYXVsdEVtYWlsTWVzc2FnZUZhY3RvcnksXHJcbiAgdXJpOiBkZWZhdWx0VVJJTWVzc2FnZUZhY3RvcnksXHJcbiAgcGF0dGVybjogZGVmYXVsdFBhdHRlcm5NZXNzYWdlRmFjdG9yeSxcclxuICB0cmltbWVkOiBkZWZhdWx0VHJpbW1lZE1lc3NhZ2VGYWN0b3J5LFxyXG4gIGlzU3RyaW5nOiBkZWZhdWx0SXNTdHJpbmdNZXNzYWdlRmFjdG9yeSxcclxuICBtaW5MZW5ndGg6IGRlZmF1bHRNaW5MZW5ndGhNZXNzYWdlRmFjdG9yeSxcclxuICBtYXhMZW5ndGg6IGRlZmF1bHRNYXhMZW5ndGhNZXNzYWdlRmFjdG9yeSxcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGNyZWF0aW5nIGEgY29tYmluZWQgc3RyaW5nIHZhbGlkYXRvciB1c2luZyB0aGUgYC5hbGwoKWBcclxuICogbWV0aG9kIHJldHVybmVkIGJ5IGBjcmVhdGVTdHJpbmdWYWxpZGF0b3JzYCAoYWNjZXNzZWQgdmlhIGBpbmplY3RWYWxpZGF0b3JzKCkuc3RyaW5nLmFsbGApLlxyXG4gKlxyXG4gKiBQYXNzIGFuIG9iamVjdCBvZiB0aGlzIHR5cGUgdG8gYHZhbGlkYXRvcnMuc3RyaW5nLmFsbCh7Li4ufSlgIHRvIHNwZWNpZnkgd2hpY2hcclxuICogc3RyaW5nLXJlbGF0ZWQgdmFsaWRhdGlvbnMgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSByZXN1bHRpbmcgdmFsaWRhdG9yIGZ1bmN0aW9uLlxyXG4gKiBUaGUgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXR1cm5lZCBieSBgLmFsbCgpYCBleHBlY3RzIGFuIGlucHV0IHZhbHVlIG9mIHR5cGUgYHN0cmluZyB8IG51bGxgLlxyXG4gKi9cclxuZXhwb3J0IHR5cGUgU3RyaW5nVmFsaWRhdG9yT3B0aW9ucyA9IHtcclxuICAvKipcclxuICAgKiBJZiBgdHJ1ZWAsIHRoZSBzdHJpbmcgdmFsdWUgbXVzdCBub3QgYmUgYG51bGxgLCBgdW5kZWZpbmVkYCwgb3IgYW4gZW1wdHkgc3RyaW5nIChgJydgKS5cclxuICAgKiBVc2VzIHRoZSBjb25maWd1cmVkICdyZXF1aXJlZCcgdmFsaWRhdGlvbiBtZXNzYWdlLlxyXG4gICAqIE5vdGU6IFRoaXMgYmVoYXZpb3IgKGNoZWNraW5nIGZvciBlbXB0eSBzdHJpbmcpIG1pZ2h0IGRpZmZlciBmcm9tIGEgZ2VuZXJpYyBgcmVxdWlyZWRgXHJcbiAgICogY2hlY2sgb24gb3RoZXIgdHlwZXMuXHJcbiAgICogQHNlZSBWYWxpZGF0b3JzLmdlbmVyYWwucmVxdWlyZWRcclxuICAgKiBAZXhhbXBsZSB7IHJlcXVpcmVkOiB0cnVlIH1cclxuICAgKi9cclxuICByZXF1aXJlZD86IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIFNwZWNpZmllcyB0aGUgbWluaW11bSBhbGxvd2VkIGxlbmd0aCBvZiB0aGUgc3RyaW5nIChpbmNsdXNpdmUpLlxyXG4gICAqIFZhbGlkYXRpb24gZmFpbHMgaWYgYHZhbHVlLmxlbmd0aCA8IG1pbkxlbmd0aGAuXHJcbiAgICogTm90ZTogQmVoYXZpb3Igd2l0aCBsZWFkaW5nL3RyYWlsaW5nIHdoaXRlc3BhY2UgZGVwZW5kcyBvbiB3aGV0aGVyIGB0cmltbWVkYCBpcyBhbHNvIHVzZWRcclxuICAgKiBvciBpZiB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiB0cmltcyBieSBkZWZhdWx0LiBBc3N1bWVkIHRvIG9wZXJhdGUgb24gcmF3IGxlbmd0aCB1bmxlc3Mgc3BlY2lmaWVkIG90aGVyd2lzZS5cclxuICAgKiBVc2VzIHRoZSBjb25maWd1cmVkICdtaW5MZW5ndGgnIHZhbGlkYXRpb24gbWVzc2FnZS5cclxuICAgKiBAZXhhbXBsZSB7IG1pbkxlbmd0aDogMyB9IC8vIE11c3QgYmUgYXQgbGVhc3QgMyBjaGFyYWN0ZXJzIGxvbmdcclxuICAgKiBAc2VlIFZhbGlkYXRvcnMuc3RyaW5nLm1pbkxlbmd0aFxyXG4gICAqL1xyXG4gIG1pbkxlbmd0aD86IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogU3BlY2lmaWVzIHRoZSBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgKGluY2x1c2l2ZSkuXHJcbiAgICogVmFsaWRhdGlvbiBmYWlscyBpZiBgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoYC5cclxuICAgKiBVc2VzIHRoZSBjb25maWd1cmVkICdtYXhMZW5ndGgnIHZhbGlkYXRpb24gbWVzc2FnZS5cclxuICAgKiBAZXhhbXBsZSB7IG1heExlbmd0aDogNTAgfSAvLyBDYW5ub3QgZXhjZWVkIDUwIGNoYXJhY3RlcnNcclxuICAgKiBAc2VlIFZhbGlkYXRvcnMuc3RyaW5nLm1heExlbmd0aFxyXG4gICAqL1xyXG4gIG1heExlbmd0aD86IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogSWYgYHRydWVgLCB0aGUgc3RyaW5nIHZhbHVlIG11c3Qgbm90IGhhdmUgbGVhZGluZyBvciB0cmFpbGluZyB3aGl0ZXNwYWNlLlxyXG4gICAqIFZhbGlkYXRpb24gZmFpbHMgaWYgYHZhbHVlICE9PSB2YWx1ZS50cmltKClgLlxyXG4gICAqIFVzZXMgdGhlIGNvbmZpZ3VyZWQgJ3RyaW1tZWQnIHZhbGlkYXRpb24gbWVzc2FnZS5cclxuICAgKiBAZXhhbXBsZSB7IHRyaW1tZWQ6IHRydWUgfSAvLyBWYWx1ZSBsaWtlIFwiIHRlc3QgXCIgd291bGQgYmUgaW52YWxpZFxyXG4gICAqIEBzZWUgVmFsaWRhdG9ycy5zdHJpbmcudHJpbW1lZFxyXG4gICAqL1xyXG4gIHRyaW1tZWQ/OiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBSZXF1aXJlcyB0aGUgc3RyaW5nIHRvIG1hdGNoIGEgc3BlY2lmaWMgcGF0dGVybi4gQWNjZXB0czpcclxuICAgKiAtIEEgYFJlZ0V4cGAgb2JqZWN0IGZvciBjdXN0b20gcGF0dGVybnMgKGUuZy4sIGAvXlthLXpdKyQvaWApLlxyXG4gICAqIC0gVGhlIHN0cmluZyBsaXRlcmFsIGAnZW1haWwnYCB0byB1c2UgYSBidWlsdC1pbiBlbWFpbCBmb3JtYXQgdmFsaWRhdG9yLlxyXG4gICAqIC0gVGhlIHN0cmluZyBsaXRlcmFsIGAndXJpJ2AgdG8gdXNlIGEgYnVpbHQtaW4gVVJJL1VSTCBmb3JtYXQgdmFsaWRhdG9yLlxyXG4gICAqIC0gUG90ZW50aWFsbHkgb3RoZXIgc3RyaW5nIHJlcHJlc2VudGF0aW9ucyBvZiByZWdleCBwYXR0ZXJucyAoaW1wbGVtZW50YXRpb24gZGVwZW5kZW50KS5cclxuICAgKiBVc2VzIHRoZSBjb25maWd1cmVkICdwYXR0ZXJuJywgJ2VtYWlsJywgb3IgJ3VyaScgdmFsaWRhdGlvbiBtZXNzYWdlLlxyXG4gICAqIEBleGFtcGxlIHsgcGF0dGVybjogL15cXGR7M30tXFxkezJ9LVxcZHs0fSQvIH0gLy8gU1NOIGZvcm1hdFxyXG4gICAqIEBleGFtcGxlIHsgcGF0dGVybjogJ2VtYWlsJyB9ICAgICAgICAgICAgIC8vIFN0YW5kYXJkIGVtYWlsIGZvcm1hdFxyXG4gICAqIEBleGFtcGxlIHsgcGF0dGVybjogJ3VyaScgfSAgICAgICAgICAgICAgIC8vIFN0YW5kYXJkIFVSSSBmb3JtYXRcclxuICAgKiBAc2VlIFZhbGlkYXRvcnMuc3RyaW5nLnBhdHRlcm5cclxuICAgKiBAc2VlIFZhbGlkYXRvcnMuc3RyaW5nLmVtYWlsXHJcbiAgICogQHNlZSBWYWxpZGF0b3JzLnN0cmluZy51cmlcclxuICAgKi9cclxuICBwYXR0ZXJuPzogUmVnRXhwIHwgJ2VtYWlsJyB8ICd1cmknIHwgT21pdDxzdHJpbmcsICdlbWFpbCcgfCAndXJpJz47XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBzdHJpbmcgdmFsdWUgbXVzdCBiZSBleGFjdGx5IGVxdWFsIHRvIHRoZSBzcGVjaWZpZWQgc3RyaW5nIChvciBgbnVsbGApLlxyXG4gICAqIENhc2Utc2Vuc2l0aXZlIGNvbXBhcmlzb24uXHJcbiAgICogVXNlcyB0aGUgY29uZmlndXJlZCBgbXVzdEJlYCB2YWxpZGF0aW9uIG1lc3NhZ2UuXHJcbiAgICogQGV4YW1wbGUgeyBtdXN0QmU6IFwiQ09ORklSTUVEXCIgfVxyXG4gICAqIEBleGFtcGxlIHsgbXVzdEJlOiBudWxsIH1cclxuICAgKiBAc2VlIFZhbGlkYXRvcnMuZ2VuZXJhbC5tdXN0QmVcclxuICAgKiBAc2VlIFZhbGlkYXRvcnMuZ2VuZXJhbC5tdXN0QmVOdWxsXHJcbiAgICovXHJcbiAgbXVzdEJlPzogc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHN0cmluZyB2YWx1ZSBtdXN0ICpub3QqIGJlIGVxdWFsIHRvIHRoZSBzcGVjaWZpZWQgc3RyaW5nIChvciBgbnVsbGApLlxyXG4gICAqIENhc2Utc2Vuc2l0aXZlIGNvbXBhcmlzb24uXHJcbiAgICogVXNlcyB0aGUgY29uZmlndXJlZCBgbm90YCB2YWxpZGF0aW9uIG1lc3NhZ2UuXHJcbiAgICogQGV4YW1wbGUgeyBub3Q6IFwicGFzc3dvcmRcIiB9IC8vIENhbm5vdCBiZSB0aGUgbGl0ZXJhbCBzdHJpbmcgXCJwYXNzd29yZFwiXHJcbiAgICogQHNlZSBWYWxpZGF0b3JzLmdlbmVyYWwubm90XHJcbiAgICovXHJcbiAgbm90Pzogc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHN0cmluZyB2YWx1ZSBtdXN0IGJlIG9uZSBvZiB0aGUgc3RyaW5ncyAob3IgYG51bGxgKSBpbmNsdWRlZCBpbiB0aGUgc3BlY2lmaWVkIGFycmF5LlxyXG4gICAqIENhc2Utc2Vuc2l0aXZlIGNvbXBhcmlzb24uXHJcbiAgICogVXNlcyB0aGUgY29uZmlndXJlZCBgb25lT2ZgIHZhbGlkYXRpb24gbWVzc2FnZS5cclxuICAgKiBAZXhhbXBsZSB7IG9uZU9mOiBbXCJQRU5ESU5HXCIsIFwiQVBQUk9WRURcIiwgXCJSRUpFQ1RFRFwiLCBudWxsXSB9XHJcbiAgICogQHNlZSBWYWxpZGF0b3JzLmdlbmVyYWwub25lT2ZcclxuICAgKi9cclxuICBvbmVPZj86IChzdHJpbmcgfCBudWxsKVtdO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgc3RyaW5nIHZhbHVlIG11c3QgKm5vdCogYmUgYW55IG9mIHRoZSBzdHJpbmdzIChvciBgbnVsbGApIGluY2x1ZGVkIGluIHRoZSBzcGVjaWZpZWQgYXJyYXkuXHJcbiAgICogQ2FzZS1zZW5zaXRpdmUgY29tcGFyaXNvbi5cclxuICAgKiBVc2VzIHRoZSBjb25maWd1cmVkIGBub3RPbmVPZmAgdmFsaWRhdGlvbiBtZXNzYWdlLlxyXG4gICAqIEBleGFtcGxlIHsgbm90T25lT2Y6IFtcImFkbWluXCIsIFwicm9vdFwiXSB9XHJcbiAgICogQHNlZSBWYWxpZGF0b3JzLmdlbmVyYWwubm90T25lT2ZcclxuICAgKi9cclxuICBub3RPbmVPZj86IChzdHJpbmcgfCBudWxsKVtdO1xyXG5cclxuICAvKipcclxuICAgKiBPcHRpb25hbCBjdXN0b20gdmFsaWRhdGlvbiBmdW5jdGlvblxyXG4gICAqL1xyXG4gIGN1c3RvbT86ICh2YWx1ZTogc3RyaW5nIHwgbnVsbCkgPT4gc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBPcHRpb25hbCBjb25maWd1cmF0aW9uIHBhc3NlZCBkb3duIHRvIHNwZWNpZmljIG1lc3NhZ2UgZmFjdG9yaWVzLlxyXG4gICAqIFByaW1hcmlseSB1c2VkIGJ5IHRoZSBgcmVxdWlyZWRgIHZhbGlkYXRvcidzIG1lc3NhZ2UgZmFjdG9yeS5cclxuICAgKi9cclxuICBtZXNzYWdlT3B0aW9ucz86IHtcclxuICAgIC8qKlxyXG4gICAgICogQW4gb3B0aW9uYWwgbGFiZWwgZm9yIHRoZSBmaWVsZCAoZS5nLiwgJ1VzZXJuYW1lJywgJ0VtYWlsIEFkZHJlc3MnKVxyXG4gICAgICogd2hpY2ggY2FuIGJlIGluY29ycG9yYXRlZCBpbnRvIHRoZSAncmVxdWlyZWQnIGVycm9yIG1lc3NhZ2UgYnkgaXRzIGZhY3RvcnkuXHJcbiAgICAgKiBAZXhhbXBsZSB7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlT3B0aW9uczogeyBsYWJlbDogJ0VtYWlsIEFkZHJlc3MnIH0gfSAvLyBFcnJvciBtaWdodCBiZSBcIkVtYWlsIEFkZHJlc3MgaXMgcmVxdWlyZWRcIlxyXG4gICAgICovXHJcbiAgICBsYWJlbD86IHN0cmluZztcclxuICB9O1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN0cmluZ1ZhbGlkYXRvcnMoXHJcbiAgZmFjdG9yaWVzPzogUGFydGlhbDxTdHJpbmdNZXNzYWdlRmFjdG9yaWVzPixcclxuICBnZW5lcmFsVmFsaWRhdG9ycyA9IGNyZWF0ZUdlbmVyYWxWYWxpZGF0b3JzKCksXHJcbiAgbWVyZ2VyID0gY3JlYXRlTWVyZ2VWYWxpZGF0b3JzKCksXHJcbikge1xyXG4gIGNvbnN0IHQgPSB7IC4uLkRFRkFVTFRfTUVTU0FHRVMsIC4uLmZhY3RvcmllcyB9O1xyXG5cclxuICBjb25zdCBiYXNlID0ge1xyXG4gICAgZW1haWw6IGNyZWF0ZUVtYWlsVmFsaWRhdG9yKHQuZW1haWwpLFxyXG4gICAgdXJpOiBjcmVhdGVVUklWYWxpZGF0b3IodC51cmkpLFxyXG4gICAgcGF0dGVybjogY3JlYXRlUGF0dGVyblZhbGlkYXRvcih0LnBhdHRlcm4pLFxyXG4gICAgdHJpbW1lZDogY3JlYXRlVHJpbW1lZFZhbGlkYXRvcih0LnRyaW1tZWQpLFxyXG4gICAgaXNTdHJpbmc6IGNyZWF0ZUlzU3RyaW5nVmFsaWRhdG9yKHQuaXNTdHJpbmcpLFxyXG4gICAgbWluTGVuZ3RoOiBjcmVhdGVNaW5MZW5ndGhWYWxpZGF0b3IodC5taW5MZW5ndGgpLFxyXG4gICAgbWF4TGVuZ3RoOiBjcmVhdGVNYXhMZW5ndGhWYWxpZGF0b3IodC5tYXhMZW5ndGgpLFxyXG4gIH07XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICAuLi5iYXNlLFxyXG4gICAgYWxsOiAob3B0OiBTdHJpbmdWYWxpZGF0b3JPcHRpb25zKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvcjxzdHJpbmcgfCBudWxsPltdID0gW107XHJcblxyXG4gICAgICBpZiAob3B0LnJlcXVpcmVkKVxyXG4gICAgICAgIHZhbGlkYXRvcnMucHVzaChnZW5lcmFsVmFsaWRhdG9ycy5yZXF1aXJlZChvcHQ/Lm1lc3NhZ2VPcHRpb25zPy5sYWJlbCkpO1xyXG5cclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKGJhc2UuaXNTdHJpbmcoKSk7XHJcblxyXG4gICAgICBpZiAob3B0Lm11c3RCZSAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHZhbGlkYXRvcnMucHVzaChnZW5lcmFsVmFsaWRhdG9ycy5tdXN0QmUob3B0Lm11c3RCZSkpO1xyXG5cclxuICAgICAgaWYgKG9wdC5ub3QgIT09IHVuZGVmaW5lZClcclxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goZ2VuZXJhbFZhbGlkYXRvcnMubm90KG9wdC5ub3QpKTtcclxuXHJcbiAgICAgIGlmIChvcHQudHJpbW1lZCkgdmFsaWRhdG9ycy5wdXNoKGJhc2UudHJpbW1lZCgpKTtcclxuXHJcbiAgICAgIGlmIChvcHQubWluTGVuZ3RoICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKGJhc2UubWluTGVuZ3RoKG9wdC5taW5MZW5ndGgpKTtcclxuXHJcbiAgICAgIGlmIChvcHQubWF4TGVuZ3RoKSB2YWxpZGF0b3JzLnB1c2goYmFzZS5tYXhMZW5ndGgob3B0Lm1heExlbmd0aCkpO1xyXG5cclxuICAgICAgaWYgKG9wdC5wYXR0ZXJuKSB7XHJcbiAgICAgICAgc3dpdGNoIChvcHQucGF0dGVybikge1xyXG4gICAgICAgICAgY2FzZSAnZW1haWwnOlxyXG4gICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goYmFzZS5lbWFpbCgpKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICd1cmknOlxyXG4gICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goYmFzZS51cmkoKSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKGJhc2UucGF0dGVybihvcHQucGF0dGVybiBhcyBSZWdFeHAgfCBzdHJpbmcpKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAob3B0Lm9uZU9mKSB2YWxpZGF0b3JzLnB1c2goZ2VuZXJhbFZhbGlkYXRvcnMub25lT2Yob3B0Lm9uZU9mKSk7XHJcblxyXG4gICAgICBpZiAob3B0Lm5vdE9uZU9mKVxyXG4gICAgICAgIHZhbGlkYXRvcnMucHVzaChnZW5lcmFsVmFsaWRhdG9ycy5ub3RPbmVPZihvcHQubm90T25lT2YpKTtcclxuXHJcbiAgICAgIGlmIChvcHQuY3VzdG9tKSB2YWxpZGF0b3JzLnB1c2gob3B0LmN1c3RvbSk7XHJcblxyXG4gICAgICByZXR1cm4gbWVyZ2VyKHZhbGlkYXRvcnMpO1xyXG4gICAgfSxcclxuICB9O1xyXG59XHJcbiJdfQ==","import { inject, InjectionToken, LOCALE_ID, } from '@angular/core';\nimport { createArrayValidators } from './array';\nimport { createBooleanValidators } from './boolean';\nimport { createDateValidators } from './date';\nimport { createDateRangeValidators } from './date/date-range';\nimport { defaultFormatDate, defaultToDate } from './date/util';\nimport { createFileValidators } from './file';\nimport { createGeneralValidators } from './general';\nimport { createMergeValidators } from './merge-validators';\nimport { createNumberValidators } from './number';\nimport { createStringValidators } from './string';\nconst token = new InjectionToken('INTERNAL_MMSTACK_VALIDATORS');\nlet defaultValidators = null;\nfunction createDefaultValidators() {\n    if (!defaultValidators) {\n        defaultValidators = createValidators({}, defaultToDate, defaultFormatDate, 'en-US');\n    }\n    return defaultValidators;\n}\nfunction createValidators(msg, toDate, formatDate, locale) {\n    const general = createGeneralValidators(msg?.general);\n    const merger = createMergeValidators(msg?.merge);\n    return {\n        general,\n        string: createStringValidators(msg?.string, general, merger),\n        number: createNumberValidators(msg?.number, general, merger),\n        date: createDateValidators(msg?.date, toDate, formatDate, locale, general, merger),\n        dateRange: createDateRangeValidators(msg?.date, toDate, formatDate, locale, general, merger),\n        file: createFileValidators(msg?.file, general, merger),\n        array: createArrayValidators(msg?.array, merger),\n        boolean: createBooleanValidators(msg?.boolean),\n    };\n}\n/**\n * Provides the configuration for the @mmstack/form-validation system within Angular's DI.\n *\n * Include the returned provider in your application's root providers (e.g., in `app.config.ts`)\n * or relevant feature/route providers to enable localization of validation error messages\n * and configure custom date handling.\n *\n * It automatically uses Angular's `LOCALE_ID` to determine which message factories to apply.\n *\n * @template TDate - The type used for date values throughout your application\n * (e.g., `Date`, Luxon `DateTime`, Moment). Defaults to `Date`. This generic ensures\n * type safety when providing custom `toDate` and `formatDate` functions.\n * @param messageFactoryProvider - A function that receives the current `LOCALE_ID` string\n * (e.g., 'en-US', 'de-DE') and should return an object containing optional custom\n * message factory functions for various validator types (`general`, `string`, `number`, `date`, `array`, `boolean`).\n * Only provide factories for the messages you want to override for that specific locale;\n * defaults will be used for any unspecified factories. Return `undefined` or an empty\n * object to use default messages for the locale.\n * @param toDate - Optional function to convert input values (of type `TDate` or `string`)\n * into standard JavaScript `Date` objects. This is used internally by date validators\n * for comparisons. Defaults to a helper supporting `Date`, `string`, `number`, and\n * common date library objects (Luxon, Moment).\n * **Provide this function if your application uses a date type other than native `Date`**.\n * @param formatDate - Optional function to format a `Date` object into a string suitable\n * for display in date-related error messages (e.g., min/max date errors), respecting\n * the provided `locale`. Defaults to using Angular's `formatDate` with 'mediumDate' format.\n * @returns An Angular `Provider` configuration object to be added to your providers array.\n *\n * @example\n * // In app.config.ts\n * import { ApplicationConfig } from '@angular/core';\n * import { provideValidatorConfig } from '@mmstack/form-validation';\n * // If using a custom date type like Luxon's DateTime\n * // import { DateTime } from 'luxon';\n * // import { defaultToDate } from '@mmstack/form-validation'; // Or your custom util path\n *\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideValidatorConfig((locale): Partial<MessageFactories> | void => {\n * console.log('Configuring validators for locale:', locale);\n * if (locale.startsWith('de')) { // Example for German\n * return {\n * general: { required: (label = 'Feld') => `${label} ist erforderlich.` },\n * string: { minLength: (min) => `Mindestens ${min} Zeichen.` }\n * // Only provide overrides needed for this locale\n * };\n * }\n * // Return undefined or {} to use default messages for other locales\n * })\n *\n * // Example if using Luxon DateTime:\n * // provideValidatorConfig<DateTime>(\n * //   (locale) => { ... }, // your message factories\n * //   // Custom toDate function for Luxon\n * //   (d) => (d instanceof DateTime ? d.toJSDate() : defaultToDate(d)),\n * //   // Custom formatDate function for Luxon\n * //   (d, l) => DateTime.fromJSDate(d).setLocale(l).toLocaleString(DateTime.DATE_MED)\n * // )\n * ]\n * };\n */\nexport function provideValidatorConfig(factory, toDate = (defaultToDate), formatDate = defaultFormatDate) {\n    return {\n        provide: token,\n        useFactory: (locale) => createValidators(factory(locale), toDate, formatDate, locale),\n        deps: [LOCALE_ID],\n    };\n}\n/**\n * Injects the configured `Validators` object within an Angular injection context.\n *\n * This function is the standard way to access the validation functions\n * (e.g., `validators.string.all`, `validators.number.min`) inside your Angular\n * components, services, directives, or form adapter factories.\n *\n * It ensures that you receive the set of validators configured with the appropriate\n * localization (via `provideValidatorConfig` and `LOCALE_ID`) and custom date handling,\n * if provided.\n *\n * If `provideValidatorConfig` was not used in the current or parent injectors,\n * this function gracefully falls back to a default set of validators using\n * English messages and default date handling (`Date` objects).\n *\n * @template TDate - The type used for date values in your application and configuration\n * (e.g., `Date`, Luxon `DateTime`, Moment). This should match the type argument\n * used in `provideValidatorConfig` if custom date handling was provided. Defaults to `Date`.\n * @param injector - Optional. A specific Angular `Injector` instance to use for resolving\n * the validators. If omitted, it uses the current injection context via `inject()`.\n * @returns The configured `Validators<TDate>` object, ready to use for creating\n * validator functions (e.g., `validators.string.all({ required: true })`).\n *\n * @example\n * // In an Angular component or service:\n * import { Component, inject } from '@angular/core';\n * import { injectValidators } from '@mmstack/form-validation';\n * import { formControl } from '@mmstack/form-core';\n * // Assuming form is configured for native Date objects (or default)\n *\n * @Component({...})\n * export class UserProfileComponent {\n * private validators = injectValidators(); // Inject the validators\n * // Or, if configured for Luxon DateTime:\n * // private validators = injectValidators<DateTime>();\n *\n * // Use the injected validators to define form controls\n * readonly emailControl = formControl('', {\n * label: () => 'Email Address',\n * validator: () => this.validators.string.all({ required: true, email: true })\n * });\n *\n * readonly birthDateControl = formControl<Date | null>(null, {\n * label: () => 'Date of Birth',\n * validator: () => this.validators.date.all({ required: false, max: new Date() })\n * });\n *\n * readonly numberOfPetsControl = formControl<number>(0, {\n * label: () => 'Number of Pets',\n * validator: () => this.validators.number.min(0, 'Pet count') // Using an individual validator\n * });\n * }\n */\nexport function injectValidators(injector) {\n    const validators = (injector\n        ? injector.get(token, null, {\n            optional: true,\n        })\n        : inject(token, { optional: true }));\n    return validators ?? createDefaultValidators();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm0vdmFsaWRhdGlvbi9zcmMvbGliL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE1BQU0sRUFDTixjQUFjLEVBRWQsU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBcUNsRCxNQUFNLEtBQUssR0FBRyxJQUFJLGNBQWMsQ0FBYSw2QkFBNkIsQ0FBQyxDQUFDO0FBRTVFLElBQUksaUJBQWlCLEdBQXNCLElBQUksQ0FBQztBQUVoRCxTQUFTLHVCQUF1QjtJQUM5QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN2QixpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FDbEMsRUFBRSxFQUNGLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsT0FBTyxDQUNNLENBQUM7SUFDbEIsQ0FBQztJQUVELE9BQU8saUJBQXNDLENBQUM7QUFDaEQsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQ3ZCLEdBQXFDLEVBQ3JDLE1BQXNDLEVBQ3RDLFVBQWtELEVBQ2xELE1BQWM7SUFFZCxNQUFNLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFdEQsTUFBTSxNQUFNLEdBQUcscUJBQXFCLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRWpELE9BQU87UUFDTCxPQUFPO1FBQ1AsTUFBTSxFQUFFLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQztRQUM1RCxNQUFNLEVBQUUsc0JBQXNCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQzVELElBQUksRUFBRSxvQkFBb0IsQ0FDeEIsR0FBRyxFQUFFLElBQUksRUFDVCxNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixPQUFPLEVBQ1AsTUFBTSxDQUNQO1FBQ0QsU0FBUyxFQUFFLHlCQUF5QixDQUNsQyxHQUFHLEVBQUUsSUFBSSxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLE9BQU8sRUFDUCxNQUFNLENBQ1A7UUFDRCxJQUFJLEVBQUUsb0JBQW9CLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQ3RELEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQztRQUNoRCxPQUFPLEVBQUUsdUJBQXVCLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQztLQUMvQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0REc7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLE9BQXlFLEVBQ3pFLFNBQXlDLENBQUEsYUFBb0IsQ0FBQSxFQUM3RCxhQUFxRCxpQkFBaUI7SUFFdEUsT0FBTztRQUNMLE9BQU8sRUFBRSxLQUFLO1FBQ2QsVUFBVSxFQUFFLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FDN0IsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDO1FBQy9ELElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQztLQUNsQixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixRQUFtQjtJQUVuQixNQUFNLFVBQVUsR0FBRyxDQUNqQixRQUFRO1FBQ04sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRTtZQUN4QixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFDSixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNWLENBQUM7SUFFOUIsT0FBTyxVQUFVLElBQUksdUJBQXVCLEVBQUUsQ0FBQztBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBpbmplY3QsXHJcbiAgSW5qZWN0aW9uVG9rZW4sXHJcbiAgSW5qZWN0b3IsXHJcbiAgTE9DQUxFX0lELFxyXG4gIFByb3ZpZGVyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjcmVhdGVBcnJheVZhbGlkYXRvcnMgfSBmcm9tICcuL2FycmF5JztcclxuaW1wb3J0IHsgY3JlYXRlQm9vbGVhblZhbGlkYXRvcnMgfSBmcm9tICcuL2Jvb2xlYW4nO1xyXG5pbXBvcnQgeyBjcmVhdGVEYXRlVmFsaWRhdG9ycyB9IGZyb20gJy4vZGF0ZSc7XHJcbmltcG9ydCB7IGNyZWF0ZURhdGVSYW5nZVZhbGlkYXRvcnMgfSBmcm9tICcuL2RhdGUvZGF0ZS1yYW5nZSc7XHJcbmltcG9ydCB7IGRlZmF1bHRGb3JtYXREYXRlLCBkZWZhdWx0VG9EYXRlIH0gZnJvbSAnLi9kYXRlL3V0aWwnO1xyXG5pbXBvcnQgeyBjcmVhdGVGaWxlVmFsaWRhdG9ycyB9IGZyb20gJy4vZmlsZSc7XHJcbmltcG9ydCB7IGNyZWF0ZUdlbmVyYWxWYWxpZGF0b3JzIH0gZnJvbSAnLi9nZW5lcmFsJztcclxuaW1wb3J0IHsgY3JlYXRlTWVyZ2VWYWxpZGF0b3JzIH0gZnJvbSAnLi9tZXJnZS12YWxpZGF0b3JzJztcclxuaW1wb3J0IHsgY3JlYXRlTnVtYmVyVmFsaWRhdG9ycyB9IGZyb20gJy4vbnVtYmVyJztcclxuaW1wb3J0IHsgY3JlYXRlU3RyaW5nVmFsaWRhdG9ycyB9IGZyb20gJy4vc3RyaW5nJztcclxuXHJcbnR5cGUgTWVzc2FnZUZhY3RvcmllcyA9IHtcclxuICBnZW5lcmFsOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVHZW5lcmFsVmFsaWRhdG9ycz5bMF07XHJcbiAgc3RyaW5nOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVTdHJpbmdWYWxpZGF0b3JzPlswXTtcclxuICBudW1iZXI6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZU51bWJlclZhbGlkYXRvcnM+WzBdO1xyXG4gIGRhdGU6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZURhdGVWYWxpZGF0b3JzPlswXTtcclxuICBhcnJheTogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlQXJyYXlWYWxpZGF0b3JzPlswXTtcclxuICBib29sZWFuOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVCb29sZWFuVmFsaWRhdG9ycz5bMF07XHJcbiAgZmlsZTogUGFyYW1ldGVyczx0eXBlb2YgY3JlYXRlRmlsZVZhbGlkYXRvcnM+WzBdO1xyXG4gIG1lcmdlOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVNZXJnZVZhbGlkYXRvcnM+WzBdO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgdGhlIGNvbnNvbGlkYXRlZCBvYmplY3QgY29udGFpbmluZyBhbGwgYXZhaWxhYmxlIHZhbGlkYXRvciBnZW5lcmF0b3JzLFxyXG4gKiBjb25maWd1cmVkIHdpdGggYXBwcm9wcmlhdGUgbG9jYWxpemF0aW9uIGFuZCBkYXRlIGhhbmRsaW5nIGZvciB0aGUgc3BlY2lmaWVkIGBURGF0ZWAgdHlwZS5cclxuICpcclxuICogT2J0YWluIHRoaXMgb2JqZWN0IHVzaW5nIGBpbmplY3RWYWxpZGF0b3JzKClgIHdpdGhpbiBhbiBBbmd1bGFyIGluamVjdGlvbiBjb250ZXh0LlxyXG4gKiBVc2UgdGhlIG5lc3RlZCBgLmFsbCgpYCBtZXRob2RzIChlLmcuLCBgdmFsaWRhdG9ycy5zdHJpbmcuYWxsKHsuLi59KWApIHdpdGggdGhlaXJcclxuICogY29ycmVzcG9uZGluZyBvcHRpb25zIHR5cGVzIChlLmcuLCBgU3RyaW5nVmFsaWRhdG9yT3B0aW9uc2ApIHRvIGNyZWF0ZSBjb21iaW5lZFxyXG4gKiB2YWxpZGF0b3IgZnVuY3Rpb25zIGZvciB5b3VyIGZvcm0gY29udHJvbHMuXHJcbiAqXHJcbiAqIEluZGl2aWR1YWwgdmFsaWRhdG9ycyAoZS5nLiwgYHZhbGlkYXRvcnMuZ2VuZXJhbC5yZXF1aXJlZCgpYCkgYXJlIGFsc28gYXZhaWxhYmxlLlxyXG4gKlxyXG4gKiBAdGVtcGxhdGUgVERhdGUgVGhlIHR5cGUgdXNlZCBmb3IgZGF0ZSB2YWx1ZXMgKGUuZy4sIERhdGUsIEx1eG9uIERhdGVUaW1lKS4gRGVmYXVsdHMgdG8gYERhdGVgLlxyXG4gKi9cclxuZXhwb3J0IHR5cGUgVmFsaWRhdG9yczxURGF0ZSA9IERhdGU+ID0ge1xyXG4gIGdlbmVyYWw6IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUdlbmVyYWxWYWxpZGF0b3JzPjtcclxuICBzdHJpbmc6IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZVN0cmluZ1ZhbGlkYXRvcnM+O1xyXG4gIG51bWJlcjogUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlTnVtYmVyVmFsaWRhdG9ycz47XHJcbiAgZGF0ZTogUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlRGF0ZVZhbGlkYXRvcnM8VERhdGU+PjtcclxuICBkYXRlUmFuZ2U6IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZURhdGVSYW5nZVZhbGlkYXRvcnM8VERhdGU+PjtcclxuICBhcnJheTogUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlQXJyYXlWYWxpZGF0b3JzPjtcclxuICBib29sZWFuOiBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVCb29sZWFuVmFsaWRhdG9ycz47XHJcbiAgZmlsZTogUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlRmlsZVZhbGlkYXRvcnM+O1xyXG59O1xyXG5cclxuY29uc3QgdG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48VmFsaWRhdG9ycz4oJ0lOVEVSTkFMX01NU1RBQ0tfVkFMSURBVE9SUycpO1xyXG5cclxubGV0IGRlZmF1bHRWYWxpZGF0b3JzOiBWYWxpZGF0b3JzIHwgbnVsbCA9IG51bGw7XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVEZWZhdWx0VmFsaWRhdG9yczxURGF0ZSA9IERhdGU+KCk6IFZhbGlkYXRvcnM8VERhdGU+IHtcclxuICBpZiAoIWRlZmF1bHRWYWxpZGF0b3JzKSB7XHJcbiAgICBkZWZhdWx0VmFsaWRhdG9ycyA9IGNyZWF0ZVZhbGlkYXRvcnM8VERhdGU+KFxyXG4gICAgICB7fSxcclxuICAgICAgZGVmYXVsdFRvRGF0ZSxcclxuICAgICAgZGVmYXVsdEZvcm1hdERhdGUsXHJcbiAgICAgICdlbi1VUycsXHJcbiAgICApIGFzIFZhbGlkYXRvcnM7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZGVmYXVsdFZhbGlkYXRvcnMgYXMgVmFsaWRhdG9yczxURGF0ZT47XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZVZhbGlkYXRvcnM8VERhdGUgPSBEYXRlPihcclxuICBtc2c6IFBhcnRpYWw8TWVzc2FnZUZhY3Rvcmllcz4gfCB2b2lkLFxyXG4gIHRvRGF0ZTogKGRhdGU6IFREYXRlIHwgc3RyaW5nKSA9PiBEYXRlLFxyXG4gIGZvcm1hdERhdGU6IChkYXRlOiBEYXRlLCBsb2NhbGU6IHN0cmluZykgPT4gc3RyaW5nLFxyXG4gIGxvY2FsZTogc3RyaW5nLFxyXG4pOiBWYWxpZGF0b3JzPFREYXRlPiB7XHJcbiAgY29uc3QgZ2VuZXJhbCA9IGNyZWF0ZUdlbmVyYWxWYWxpZGF0b3JzKG1zZz8uZ2VuZXJhbCk7XHJcblxyXG4gIGNvbnN0IG1lcmdlciA9IGNyZWF0ZU1lcmdlVmFsaWRhdG9ycyhtc2c/Lm1lcmdlKTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGdlbmVyYWwsXHJcbiAgICBzdHJpbmc6IGNyZWF0ZVN0cmluZ1ZhbGlkYXRvcnMobXNnPy5zdHJpbmcsIGdlbmVyYWwsIG1lcmdlciksXHJcbiAgICBudW1iZXI6IGNyZWF0ZU51bWJlclZhbGlkYXRvcnMobXNnPy5udW1iZXIsIGdlbmVyYWwsIG1lcmdlciksXHJcbiAgICBkYXRlOiBjcmVhdGVEYXRlVmFsaWRhdG9yczxURGF0ZT4oXHJcbiAgICAgIG1zZz8uZGF0ZSxcclxuICAgICAgdG9EYXRlLFxyXG4gICAgICBmb3JtYXREYXRlLFxyXG4gICAgICBsb2NhbGUsXHJcbiAgICAgIGdlbmVyYWwsXHJcbiAgICAgIG1lcmdlcixcclxuICAgICksXHJcbiAgICBkYXRlUmFuZ2U6IGNyZWF0ZURhdGVSYW5nZVZhbGlkYXRvcnM8VERhdGU+KFxyXG4gICAgICBtc2c/LmRhdGUsXHJcbiAgICAgIHRvRGF0ZSxcclxuICAgICAgZm9ybWF0RGF0ZSxcclxuICAgICAgbG9jYWxlLFxyXG4gICAgICBnZW5lcmFsLFxyXG4gICAgICBtZXJnZXIsXHJcbiAgICApLFxyXG4gICAgZmlsZTogY3JlYXRlRmlsZVZhbGlkYXRvcnMobXNnPy5maWxlLCBnZW5lcmFsLCBtZXJnZXIpLFxyXG4gICAgYXJyYXk6IGNyZWF0ZUFycmF5VmFsaWRhdG9ycyhtc2c/LmFycmF5LCBtZXJnZXIpLFxyXG4gICAgYm9vbGVhbjogY3JlYXRlQm9vbGVhblZhbGlkYXRvcnMobXNnPy5ib29sZWFuKSxcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogUHJvdmlkZXMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBAbW1zdGFjay9mb3JtLXZhbGlkYXRpb24gc3lzdGVtIHdpdGhpbiBBbmd1bGFyJ3MgREkuXHJcbiAqXHJcbiAqIEluY2x1ZGUgdGhlIHJldHVybmVkIHByb3ZpZGVyIGluIHlvdXIgYXBwbGljYXRpb24ncyByb290IHByb3ZpZGVycyAoZS5nLiwgaW4gYGFwcC5jb25maWcudHNgKVxyXG4gKiBvciByZWxldmFudCBmZWF0dXJlL3JvdXRlIHByb3ZpZGVycyB0byBlbmFibGUgbG9jYWxpemF0aW9uIG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXNcclxuICogYW5kIGNvbmZpZ3VyZSBjdXN0b20gZGF0ZSBoYW5kbGluZy5cclxuICpcclxuICogSXQgYXV0b21hdGljYWxseSB1c2VzIEFuZ3VsYXIncyBgTE9DQUxFX0lEYCB0byBkZXRlcm1pbmUgd2hpY2ggbWVzc2FnZSBmYWN0b3JpZXMgdG8gYXBwbHkuXHJcbiAqXHJcbiAqIEB0ZW1wbGF0ZSBURGF0ZSAtIFRoZSB0eXBlIHVzZWQgZm9yIGRhdGUgdmFsdWVzIHRocm91Z2hvdXQgeW91ciBhcHBsaWNhdGlvblxyXG4gKiAoZS5nLiwgYERhdGVgLCBMdXhvbiBgRGF0ZVRpbWVgLCBNb21lbnQpLiBEZWZhdWx0cyB0byBgRGF0ZWAuIFRoaXMgZ2VuZXJpYyBlbnN1cmVzXHJcbiAqIHR5cGUgc2FmZXR5IHdoZW4gcHJvdmlkaW5nIGN1c3RvbSBgdG9EYXRlYCBhbmQgYGZvcm1hdERhdGVgIGZ1bmN0aW9ucy5cclxuICogQHBhcmFtIG1lc3NhZ2VGYWN0b3J5UHJvdmlkZXIgLSBBIGZ1bmN0aW9uIHRoYXQgcmVjZWl2ZXMgdGhlIGN1cnJlbnQgYExPQ0FMRV9JRGAgc3RyaW5nXHJcbiAqIChlLmcuLCAnZW4tVVMnLCAnZGUtREUnKSBhbmQgc2hvdWxkIHJldHVybiBhbiBvYmplY3QgY29udGFpbmluZyBvcHRpb25hbCBjdXN0b21cclxuICogbWVzc2FnZSBmYWN0b3J5IGZ1bmN0aW9ucyBmb3IgdmFyaW91cyB2YWxpZGF0b3IgdHlwZXMgKGBnZW5lcmFsYCwgYHN0cmluZ2AsIGBudW1iZXJgLCBgZGF0ZWAsIGBhcnJheWAsIGBib29sZWFuYCkuXHJcbiAqIE9ubHkgcHJvdmlkZSBmYWN0b3JpZXMgZm9yIHRoZSBtZXNzYWdlcyB5b3Ugd2FudCB0byBvdmVycmlkZSBmb3IgdGhhdCBzcGVjaWZpYyBsb2NhbGU7XHJcbiAqIGRlZmF1bHRzIHdpbGwgYmUgdXNlZCBmb3IgYW55IHVuc3BlY2lmaWVkIGZhY3Rvcmllcy4gUmV0dXJuIGB1bmRlZmluZWRgIG9yIGFuIGVtcHR5XHJcbiAqIG9iamVjdCB0byB1c2UgZGVmYXVsdCBtZXNzYWdlcyBmb3IgdGhlIGxvY2FsZS5cclxuICogQHBhcmFtIHRvRGF0ZSAtIE9wdGlvbmFsIGZ1bmN0aW9uIHRvIGNvbnZlcnQgaW5wdXQgdmFsdWVzIChvZiB0eXBlIGBURGF0ZWAgb3IgYHN0cmluZ2ApXHJcbiAqIGludG8gc3RhbmRhcmQgSmF2YVNjcmlwdCBgRGF0ZWAgb2JqZWN0cy4gVGhpcyBpcyB1c2VkIGludGVybmFsbHkgYnkgZGF0ZSB2YWxpZGF0b3JzXHJcbiAqIGZvciBjb21wYXJpc29ucy4gRGVmYXVsdHMgdG8gYSBoZWxwZXIgc3VwcG9ydGluZyBgRGF0ZWAsIGBzdHJpbmdgLCBgbnVtYmVyYCwgYW5kXHJcbiAqIGNvbW1vbiBkYXRlIGxpYnJhcnkgb2JqZWN0cyAoTHV4b24sIE1vbWVudCkuXHJcbiAqICoqUHJvdmlkZSB0aGlzIGZ1bmN0aW9uIGlmIHlvdXIgYXBwbGljYXRpb24gdXNlcyBhIGRhdGUgdHlwZSBvdGhlciB0aGFuIG5hdGl2ZSBgRGF0ZWAqKi5cclxuICogQHBhcmFtIGZvcm1hdERhdGUgLSBPcHRpb25hbCBmdW5jdGlvbiB0byBmb3JtYXQgYSBgRGF0ZWAgb2JqZWN0IGludG8gYSBzdHJpbmcgc3VpdGFibGVcclxuICogZm9yIGRpc3BsYXkgaW4gZGF0ZS1yZWxhdGVkIGVycm9yIG1lc3NhZ2VzIChlLmcuLCBtaW4vbWF4IGRhdGUgZXJyb3JzKSwgcmVzcGVjdGluZ1xyXG4gKiB0aGUgcHJvdmlkZWQgYGxvY2FsZWAuIERlZmF1bHRzIHRvIHVzaW5nIEFuZ3VsYXIncyBgZm9ybWF0RGF0ZWAgd2l0aCAnbWVkaXVtRGF0ZScgZm9ybWF0LlxyXG4gKiBAcmV0dXJucyBBbiBBbmd1bGFyIGBQcm92aWRlcmAgY29uZmlndXJhdGlvbiBvYmplY3QgdG8gYmUgYWRkZWQgdG8geW91ciBwcm92aWRlcnMgYXJyYXkuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIC8vIEluIGFwcC5jb25maWcudHNcclxuICogaW1wb3J0IHsgQXBwbGljYXRpb25Db25maWcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuICogaW1wb3J0IHsgcHJvdmlkZVZhbGlkYXRvckNvbmZpZyB9IGZyb20gJ0BtbXN0YWNrL2Zvcm0tdmFsaWRhdGlvbic7XHJcbiAqIC8vIElmIHVzaW5nIGEgY3VzdG9tIGRhdGUgdHlwZSBsaWtlIEx1eG9uJ3MgRGF0ZVRpbWVcclxuICogLy8gaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XHJcbiAqIC8vIGltcG9ydCB7IGRlZmF1bHRUb0RhdGUgfSBmcm9tICdAbW1zdGFjay9mb3JtLXZhbGlkYXRpb24nOyAvLyBPciB5b3VyIGN1c3RvbSB1dGlsIHBhdGhcclxuICpcclxuICogZXhwb3J0IGNvbnN0IGFwcENvbmZpZzogQXBwbGljYXRpb25Db25maWcgPSB7XHJcbiAqIHByb3ZpZGVyczogW1xyXG4gKiBwcm92aWRlVmFsaWRhdG9yQ29uZmlnKChsb2NhbGUpOiBQYXJ0aWFsPE1lc3NhZ2VGYWN0b3JpZXM+IHwgdm9pZCA9PiB7XHJcbiAqIGNvbnNvbGUubG9nKCdDb25maWd1cmluZyB2YWxpZGF0b3JzIGZvciBsb2NhbGU6JywgbG9jYWxlKTtcclxuICogaWYgKGxvY2FsZS5zdGFydHNXaXRoKCdkZScpKSB7IC8vIEV4YW1wbGUgZm9yIEdlcm1hblxyXG4gKiByZXR1cm4ge1xyXG4gKiBnZW5lcmFsOiB7IHJlcXVpcmVkOiAobGFiZWwgPSAnRmVsZCcpID0+IGAke2xhYmVsfSBpc3QgZXJmb3JkZXJsaWNoLmAgfSxcclxuICogc3RyaW5nOiB7IG1pbkxlbmd0aDogKG1pbikgPT4gYE1pbmRlc3RlbnMgJHttaW59IFplaWNoZW4uYCB9XHJcbiAqIC8vIE9ubHkgcHJvdmlkZSBvdmVycmlkZXMgbmVlZGVkIGZvciB0aGlzIGxvY2FsZVxyXG4gKiB9O1xyXG4gKiB9XHJcbiAqIC8vIFJldHVybiB1bmRlZmluZWQgb3Ige30gdG8gdXNlIGRlZmF1bHQgbWVzc2FnZXMgZm9yIG90aGVyIGxvY2FsZXNcclxuICogfSlcclxuICpcclxuICogLy8gRXhhbXBsZSBpZiB1c2luZyBMdXhvbiBEYXRlVGltZTpcclxuICogLy8gcHJvdmlkZVZhbGlkYXRvckNvbmZpZzxEYXRlVGltZT4oXHJcbiAqIC8vICAgKGxvY2FsZSkgPT4geyAuLi4gfSwgLy8geW91ciBtZXNzYWdlIGZhY3Rvcmllc1xyXG4gKiAvLyAgIC8vIEN1c3RvbSB0b0RhdGUgZnVuY3Rpb24gZm9yIEx1eG9uXHJcbiAqIC8vICAgKGQpID0+IChkIGluc3RhbmNlb2YgRGF0ZVRpbWUgPyBkLnRvSlNEYXRlKCkgOiBkZWZhdWx0VG9EYXRlKGQpKSxcclxuICogLy8gICAvLyBDdXN0b20gZm9ybWF0RGF0ZSBmdW5jdGlvbiBmb3IgTHV4b25cclxuICogLy8gICAoZCwgbCkgPT4gRGF0ZVRpbWUuZnJvbUpTRGF0ZShkKS5zZXRMb2NhbGUobCkudG9Mb2NhbGVTdHJpbmcoRGF0ZVRpbWUuREFURV9NRUQpXHJcbiAqIC8vIClcclxuICogXVxyXG4gKiB9O1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVWYWxpZGF0b3JDb25maWc8VERhdGUgPSBEYXRlPihcclxuICBmYWN0b3J5OiAobG9jYWxlOiBzdHJpbmcpID0+IFBhcnRpYWw8TWVzc2FnZUZhY3Rvcmllcz4gfCB2b2lkIHwgdW5kZWZpbmVkLFxyXG4gIHRvRGF0ZTogKGRhdGU6IFREYXRlIHwgc3RyaW5nKSA9PiBEYXRlID0gZGVmYXVsdFRvRGF0ZTxURGF0ZT4sXHJcbiAgZm9ybWF0RGF0ZTogKGRhdGU6IERhdGUsIGxvY2FsZTogc3RyaW5nKSA9PiBzdHJpbmcgPSBkZWZhdWx0Rm9ybWF0RGF0ZSxcclxuKTogUHJvdmlkZXIge1xyXG4gIHJldHVybiB7XHJcbiAgICBwcm92aWRlOiB0b2tlbixcclxuICAgIHVzZUZhY3Rvcnk6IChsb2NhbGU6IHN0cmluZykgPT5cclxuICAgICAgY3JlYXRlVmFsaWRhdG9ycyhmYWN0b3J5KGxvY2FsZSksIHRvRGF0ZSwgZm9ybWF0RGF0ZSwgbG9jYWxlKSxcclxuICAgIGRlcHM6IFtMT0NBTEVfSURdLFxyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbmplY3RzIHRoZSBjb25maWd1cmVkIGBWYWxpZGF0b3JzYCBvYmplY3Qgd2l0aGluIGFuIEFuZ3VsYXIgaW5qZWN0aW9uIGNvbnRleHQuXHJcbiAqXHJcbiAqIFRoaXMgZnVuY3Rpb24gaXMgdGhlIHN0YW5kYXJkIHdheSB0byBhY2Nlc3MgdGhlIHZhbGlkYXRpb24gZnVuY3Rpb25zXHJcbiAqIChlLmcuLCBgdmFsaWRhdG9ycy5zdHJpbmcuYWxsYCwgYHZhbGlkYXRvcnMubnVtYmVyLm1pbmApIGluc2lkZSB5b3VyIEFuZ3VsYXJcclxuICogY29tcG9uZW50cywgc2VydmljZXMsIGRpcmVjdGl2ZXMsIG9yIGZvcm0gYWRhcHRlciBmYWN0b3JpZXMuXHJcbiAqXHJcbiAqIEl0IGVuc3VyZXMgdGhhdCB5b3UgcmVjZWl2ZSB0aGUgc2V0IG9mIHZhbGlkYXRvcnMgY29uZmlndXJlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZVxyXG4gKiBsb2NhbGl6YXRpb24gKHZpYSBgcHJvdmlkZVZhbGlkYXRvckNvbmZpZ2AgYW5kIGBMT0NBTEVfSURgKSBhbmQgY3VzdG9tIGRhdGUgaGFuZGxpbmcsXHJcbiAqIGlmIHByb3ZpZGVkLlxyXG4gKlxyXG4gKiBJZiBgcHJvdmlkZVZhbGlkYXRvckNvbmZpZ2Agd2FzIG5vdCB1c2VkIGluIHRoZSBjdXJyZW50IG9yIHBhcmVudCBpbmplY3RvcnMsXHJcbiAqIHRoaXMgZnVuY3Rpb24gZ3JhY2VmdWxseSBmYWxscyBiYWNrIHRvIGEgZGVmYXVsdCBzZXQgb2YgdmFsaWRhdG9ycyB1c2luZ1xyXG4gKiBFbmdsaXNoIG1lc3NhZ2VzIGFuZCBkZWZhdWx0IGRhdGUgaGFuZGxpbmcgKGBEYXRlYCBvYmplY3RzKS5cclxuICpcclxuICogQHRlbXBsYXRlIFREYXRlIC0gVGhlIHR5cGUgdXNlZCBmb3IgZGF0ZSB2YWx1ZXMgaW4geW91ciBhcHBsaWNhdGlvbiBhbmQgY29uZmlndXJhdGlvblxyXG4gKiAoZS5nLiwgYERhdGVgLCBMdXhvbiBgRGF0ZVRpbWVgLCBNb21lbnQpLiBUaGlzIHNob3VsZCBtYXRjaCB0aGUgdHlwZSBhcmd1bWVudFxyXG4gKiB1c2VkIGluIGBwcm92aWRlVmFsaWRhdG9yQ29uZmlnYCBpZiBjdXN0b20gZGF0ZSBoYW5kbGluZyB3YXMgcHJvdmlkZWQuIERlZmF1bHRzIHRvIGBEYXRlYC5cclxuICogQHBhcmFtIGluamVjdG9yIC0gT3B0aW9uYWwuIEEgc3BlY2lmaWMgQW5ndWxhciBgSW5qZWN0b3JgIGluc3RhbmNlIHRvIHVzZSBmb3IgcmVzb2x2aW5nXHJcbiAqIHRoZSB2YWxpZGF0b3JzLiBJZiBvbWl0dGVkLCBpdCB1c2VzIHRoZSBjdXJyZW50IGluamVjdGlvbiBjb250ZXh0IHZpYSBgaW5qZWN0KClgLlxyXG4gKiBAcmV0dXJucyBUaGUgY29uZmlndXJlZCBgVmFsaWRhdG9yczxURGF0ZT5gIG9iamVjdCwgcmVhZHkgdG8gdXNlIGZvciBjcmVhdGluZ1xyXG4gKiB2YWxpZGF0b3IgZnVuY3Rpb25zIChlLmcuLCBgdmFsaWRhdG9ycy5zdHJpbmcuYWxsKHsgcmVxdWlyZWQ6IHRydWUgfSlgKS5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogLy8gSW4gYW4gQW5ndWxhciBjb21wb25lbnQgb3Igc2VydmljZTpcclxuICogaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuICogaW1wb3J0IHsgaW5qZWN0VmFsaWRhdG9ycyB9IGZyb20gJ0BtbXN0YWNrL2Zvcm0tdmFsaWRhdGlvbic7XHJcbiAqIGltcG9ydCB7IGZvcm1Db250cm9sIH0gZnJvbSAnQG1tc3RhY2svZm9ybS1jb3JlJztcclxuICogLy8gQXNzdW1pbmcgZm9ybSBpcyBjb25maWd1cmVkIGZvciBuYXRpdmUgRGF0ZSBvYmplY3RzIChvciBkZWZhdWx0KVxyXG4gKlxyXG4gKiBAQ29tcG9uZW50KHsuLi59KVxyXG4gKiBleHBvcnQgY2xhc3MgVXNlclByb2ZpbGVDb21wb25lbnQge1xyXG4gKiBwcml2YXRlIHZhbGlkYXRvcnMgPSBpbmplY3RWYWxpZGF0b3JzKCk7IC8vIEluamVjdCB0aGUgdmFsaWRhdG9yc1xyXG4gKiAvLyBPciwgaWYgY29uZmlndXJlZCBmb3IgTHV4b24gRGF0ZVRpbWU6XHJcbiAqIC8vIHByaXZhdGUgdmFsaWRhdG9ycyA9IGluamVjdFZhbGlkYXRvcnM8RGF0ZVRpbWU+KCk7XHJcbiAqXHJcbiAqIC8vIFVzZSB0aGUgaW5qZWN0ZWQgdmFsaWRhdG9ycyB0byBkZWZpbmUgZm9ybSBjb250cm9sc1xyXG4gKiByZWFkb25seSBlbWFpbENvbnRyb2wgPSBmb3JtQ29udHJvbCgnJywge1xyXG4gKiBsYWJlbDogKCkgPT4gJ0VtYWlsIEFkZHJlc3MnLFxyXG4gKiB2YWxpZGF0b3I6ICgpID0+IHRoaXMudmFsaWRhdG9ycy5zdHJpbmcuYWxsKHsgcmVxdWlyZWQ6IHRydWUsIGVtYWlsOiB0cnVlIH0pXHJcbiAqIH0pO1xyXG4gKlxyXG4gKiByZWFkb25seSBiaXJ0aERhdGVDb250cm9sID0gZm9ybUNvbnRyb2w8RGF0ZSB8IG51bGw+KG51bGwsIHtcclxuICogbGFiZWw6ICgpID0+ICdEYXRlIG9mIEJpcnRoJyxcclxuICogdmFsaWRhdG9yOiAoKSA9PiB0aGlzLnZhbGlkYXRvcnMuZGF0ZS5hbGwoeyByZXF1aXJlZDogZmFsc2UsIG1heDogbmV3IERhdGUoKSB9KVxyXG4gKiB9KTtcclxuICpcclxuICogcmVhZG9ubHkgbnVtYmVyT2ZQZXRzQ29udHJvbCA9IGZvcm1Db250cm9sPG51bWJlcj4oMCwge1xyXG4gKiBsYWJlbDogKCkgPT4gJ051bWJlciBvZiBQZXRzJyxcclxuICogdmFsaWRhdG9yOiAoKSA9PiB0aGlzLnZhbGlkYXRvcnMubnVtYmVyLm1pbigwLCAnUGV0IGNvdW50JykgLy8gVXNpbmcgYW4gaW5kaXZpZHVhbCB2YWxpZGF0b3JcclxuICogfSk7XHJcbiAqIH1cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RWYWxpZGF0b3JzPFREYXRlID0gRGF0ZT4oXHJcbiAgaW5qZWN0b3I/OiBJbmplY3RvcixcclxuKTogVmFsaWRhdG9yczxURGF0ZT4ge1xyXG4gIGNvbnN0IHZhbGlkYXRvcnMgPSAoXHJcbiAgICBpbmplY3RvclxyXG4gICAgICA/IGluamVjdG9yLmdldCh0b2tlbiwgbnVsbCwge1xyXG4gICAgICAgICAgb3B0aW9uYWw6IHRydWUsXHJcbiAgICAgICAgfSlcclxuICAgICAgOiBpbmplY3QodG9rZW4sIHsgb3B0aW9uYWw6IHRydWUgfSlcclxuICApIGFzIFZhbGlkYXRvcnM8VERhdGU+IHwgbnVsbDtcclxuXHJcbiAgcmV0dXJuIHZhbGlkYXRvcnMgPz8gY3JlYXRlRGVmYXVsdFZhbGlkYXRvcnMoKTtcclxufVxyXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW1zdGFjay1mb3JtLXZhbGlkYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9mb3JtL3ZhbGlkYXRpb24vc3JjL21tc3RhY2stZm9ybS12YWxpZGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["defaultMaxLengthMessageFactory","createMaxLengthValidator","defaultMinLengthMessageFactory","createMinLengthValidator","DEFAULT_MESSAGES","defaultToLabel","arrayDefaultMessageFactory","arrayCreateMaxValidator","arrayCreateMinValidator"],"mappings":"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"}