@cjdevstudios/bumblevue-forms 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/LICENSE.md +22 -0
  2. package/README.md +1 -0
  3. package/form/BaseForm.vue +42 -0
  4. package/form/Form.vue +54 -0
  5. package/form/index.d.ts +339 -0
  6. package/form/index.mjs +115 -0
  7. package/form/index.mjs.map +1 -0
  8. package/form/package.json +11 -0
  9. package/form/style/index.d.ts +17 -0
  10. package/form/style/index.mjs +12 -0
  11. package/form/style/index.mjs.map +1 -0
  12. package/form/style/package.json +6 -0
  13. package/formfield/BaseFormField.vue +54 -0
  14. package/formfield/FormField.vue +51 -0
  15. package/formfield/index.d.ts +224 -0
  16. package/formfield/index.mjs +122 -0
  17. package/formfield/index.mjs.map +1 -0
  18. package/formfield/package.json +11 -0
  19. package/formfield/style/index.d.ts +17 -0
  20. package/formfield/style/index.mjs +12 -0
  21. package/formfield/style/index.mjs.map +1 -0
  22. package/formfield/style/package.json +6 -0
  23. package/index.d.ts +11 -0
  24. package/index.mjs +9 -0
  25. package/index.mjs.map +1 -0
  26. package/package.json +50 -0
  27. package/resolvers/joi/index.d.ts +1 -0
  28. package/resolvers/joi/index.mjs +2 -0
  29. package/resolvers/joi/index.mjs.map +1 -0
  30. package/resolvers/joi/package.json +5 -0
  31. package/resolvers/superstruct/index.d.ts +1 -0
  32. package/resolvers/superstruct/index.mjs +2 -0
  33. package/resolvers/superstruct/index.mjs.map +1 -0
  34. package/resolvers/superstruct/package.json +5 -0
  35. package/resolvers/valibot/index.d.ts +1 -0
  36. package/resolvers/valibot/index.mjs +2 -0
  37. package/resolvers/valibot/index.mjs.map +1 -0
  38. package/resolvers/valibot/package.json +5 -0
  39. package/resolvers/yup/index.d.ts +1 -0
  40. package/resolvers/yup/index.mjs +2 -0
  41. package/resolvers/yup/index.mjs.map +1 -0
  42. package/resolvers/yup/package.json +5 -0
  43. package/resolvers/zod/index.d.ts +1 -0
  44. package/resolvers/zod/index.mjs +2 -0
  45. package/resolvers/zod/index.mjs.map +1 -0
  46. package/resolvers/zod/package.json +5 -0
  47. package/types.d.ts +9 -0
  48. package/useform/index.d.ts +73 -0
  49. package/useform/index.mjs +420 -0
  50. package/useform/index.mjs.map +1 -0
  51. package/useform/package.json +5 -0
@@ -0,0 +1,5 @@
1
+ {
2
+ "main": "./index.mjs",
3
+ "module": "./index.mjs",
4
+ "types": "./index.d.ts"
5
+ }
@@ -0,0 +1 @@
1
+ export * from '@primeuix/forms/resolvers/zod';
@@ -0,0 +1,2 @@
1
+ export * from '@primeuix/forms/resolvers/zod';
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ {
2
+ "main": "./index.mjs",
3
+ "module": "./index.mjs",
4
+ "types": "./index.d.ts"
5
+ }
package/types.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * From primevue/passthrough/index.d.ts
3
+ */
4
+ export declare type PassThroughMergePropsType = ((...args: any) => object | undefined) | boolean | undefined;
5
+
6
+ export interface PassThroughOptions {
7
+ mergeSections?: boolean | undefined;
8
+ mergeProps?: PassThroughMergePropsType;
9
+ }
@@ -0,0 +1,73 @@
1
+ export interface useFormFieldState {
2
+ value: any;
3
+ touched: boolean;
4
+ dirty: boolean;
5
+ pristine: boolean;
6
+ valid: boolean;
7
+ invalid: boolean;
8
+ error: any;
9
+ errors: any[];
10
+ }
11
+
12
+ export interface useFormFieldOptions {
13
+ initialValue?: any;
14
+ props?: Record<string, any> | ((state: useFormFieldState) => Record<string, any>);
15
+ validateOnBlur?: boolean;
16
+ validateOnValueUpdate?: boolean;
17
+ resolver?: (options: { values: any; value: any; name: string }) => Promise<Record<string, any>> | Record<string, any> | undefined;
18
+ onBlur?: (event: Event) => void;
19
+ onInput?: (event: Event | any) => void;
20
+ onChange?: (event: Event | any) => void;
21
+ onInvalid?: (errors: any[]) => void;
22
+ [key: string]: any;
23
+ }
24
+
25
+ export interface useFormFieldProps {
26
+ name: string;
27
+ onBlur: (event: Event) => void;
28
+ onInput: (event: Event | any) => void;
29
+ onChange: (event: Event | any) => void;
30
+ onInvalid: (errors: any[]) => void;
31
+ [key: string]: any;
32
+ }
33
+
34
+ export interface useFormFieldInstance {
35
+ props: useFormFieldProps;
36
+ states: useFormFieldState;
37
+ options?: useFormFieldOptions;
38
+ _watcher: {
39
+ stop: () => void;
40
+ pause: () => void;
41
+ resume: () => void;
42
+ };
43
+ }
44
+
45
+ export interface useFormReturn {
46
+ defineField: (field: string, options?: useFormFieldOptions) => { state: useFormFieldState; props: useFormFieldProps };
47
+ setFieldValue: (field: string, value: any) => void;
48
+ getFieldState: (field: string) => useFormFieldState | undefined;
49
+ handleSubmit: (event: any) => any;
50
+ handleReset: (event: any) => any;
51
+ validate: (field: string) => any;
52
+ setValues: (values: Record<string, any>) => void;
53
+ reset: () => void;
54
+ valid: boolean;
55
+ states: Record<string, useFormFieldState>;
56
+ fields: Record<string, useFormFieldInstance>;
57
+ }
58
+
59
+ export interface useFormResolverOptions {
60
+ values: Record<string, any>;
61
+ names: string[] | undefined;
62
+ }
63
+
64
+ export interface useFormOptions {
65
+ resolver?: (e: useFormResolverOptions) => Promise<Record<string, any>> | Record<string, any> | undefined;
66
+ initialValues?: Record<string, any> | undefined;
67
+ validateOnValueUpdate?: boolean | string[];
68
+ validateOnBlur?: boolean | string[];
69
+ validateOnMount?: boolean | string[];
70
+ validateOnSubmit?: boolean | string[];
71
+ }
72
+
73
+ export declare function useForm(options: useFormOptions): useFormReturn;
@@ -0,0 +1,420 @@
1
+ import { resolve, isNotEmpty, isArray, mergeKeys, isEmpty } from '@primeuix/utils';
2
+ import { reactive, computed, mergeProps, getCurrentInstance, onMounted, nextTick, ref, watch, toValue } from 'vue';
3
+
4
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
5
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
9
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = false, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = true, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), true), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
11
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
12
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
13
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
14
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
15
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
17
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
18
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = true, o = false; try { if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = true, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
19
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
20
+ function tryOnMounted(fn) {
21
+ var sync = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
22
+ if (getCurrentInstance()) onMounted(fn);else if (sync) fn();else nextTick(fn);
23
+ }
24
+ function watchPausable(source, callback, options) {
25
+ var isActive = ref(true);
26
+ var stop = watch(source, function (newValue, oldValue) {
27
+ if (!isActive.value) return;
28
+ callback(newValue, oldValue);
29
+ }, options);
30
+ return {
31
+ stop: stop,
32
+ pause: function pause() {
33
+ isActive.value = false;
34
+ },
35
+ resume: function resume() {
36
+ isActive.value = true;
37
+ }
38
+ };
39
+ }
40
+
41
+ // @todo: move to utils
42
+ function groupKeys(obj) {
43
+ return Object.entries(obj).reduce(function (result, _ref) {
44
+ var _ref2 = _slicedToArray(_ref, 2),
45
+ key = _ref2[0],
46
+ value = _ref2[1];
47
+ /* eslint-disable-next-line no-useless-escape */
48
+ key.split(/[\.\[\]]+/).filter(Boolean).reduce(function (acc, curr, idx, arr) {
49
+ var _acc$curr;
50
+ return (_acc$curr = acc[curr]) !== null && _acc$curr !== void 0 ? _acc$curr : acc[curr] = isNaN(arr[idx + 1]) ? idx === arr.length - 1 ? value : {} : [];
51
+ }, result);
52
+ return result;
53
+ }, {});
54
+ }
55
+ function getValueByPath(obj, path) {
56
+ if (!obj || !path) {
57
+ // short circuit if there is nothing to resolve
58
+ return null;
59
+ }
60
+ try {
61
+ var value = obj[path];
62
+ if (isNotEmpty(value)) return value;
63
+ } catch (_unused) {
64
+ // do nothing and continue to other methods to resolve path data
65
+ }
66
+
67
+ /* eslint-disable-next-line no-useless-escape */
68
+ var keys = path.split(/[\.\[\]]+/).filter(Boolean);
69
+ return keys.reduce(function (acc, key) {
70
+ return acc && acc[key] !== undefined ? acc[key] : undefined;
71
+ }, obj);
72
+ }
73
+ var useForm = function useForm() {
74
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
75
+ var _states = reactive({});
76
+ var fields = reactive({});
77
+ var valid = computed(function () {
78
+ return Object.values(_states).every(function (field) {
79
+ return !field.invalid;
80
+ });
81
+ });
82
+ var states = computed(function () {
83
+ return groupKeys(_states);
84
+ });
85
+ var getInitialState = function getInitialState(field, initialValue) {
86
+ return {
87
+ value: initialValue !== null && initialValue !== void 0 ? initialValue : getValueByPath(options.initialValues, field),
88
+ touched: false,
89
+ dirty: false,
90
+ pristine: true,
91
+ valid: true,
92
+ invalid: false,
93
+ error: null,
94
+ errors: []
95
+ };
96
+ };
97
+ var isFieldValidate = function isFieldValidate(field, validateOn) {
98
+ var value = resolve(validateOn, field);
99
+ return value === true || isArray(value) && value.includes(field);
100
+ };
101
+ var validateOn = /*#__PURE__*/function () {
102
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(option, defaultValue) {
103
+ var _options$option;
104
+ var results, fieldArr, _t, _t2;
105
+ return _regenerator().w(function (_context) {
106
+ while (1) switch (_context.n) {
107
+ case 0:
108
+ results = {};
109
+ if (!isArray(options[option])) {
110
+ _context.n = 2;
111
+ break;
112
+ }
113
+ _context.n = 1;
114
+ return validate(options[option]);
115
+ case 1:
116
+ results = _context.v;
117
+ _context.n = 4;
118
+ break;
119
+ case 2:
120
+ _t = (_options$option = options[option]) !== null && _options$option !== void 0 ? _options$option : defaultValue;
121
+ if (!_t) {
122
+ _context.n = 4;
123
+ break;
124
+ }
125
+ _context.n = 3;
126
+ return validate();
127
+ case 3:
128
+ results = _context.v;
129
+ case 4:
130
+ fieldArr = Object.keys(fields).filter(function (field) {
131
+ var _fields$field;
132
+ return (_fields$field = fields[field]) === null || _fields$field === void 0 || (_fields$field = _fields$field.options) === null || _fields$field === void 0 ? void 0 : _fields$field[option];
133
+ }) || [];
134
+ _t2 = isNotEmpty(fieldArr);
135
+ if (!_t2) {
136
+ _context.n = 6;
137
+ break;
138
+ }
139
+ _context.n = 5;
140
+ return validate(fieldArr);
141
+ case 5:
142
+ results = _context.v;
143
+ case 6:
144
+ return _context.a(2, results);
145
+ }
146
+ }, _callee);
147
+ }));
148
+ return function validateOn(_x, _x2) {
149
+ return _ref3.apply(this, arguments);
150
+ };
151
+ }();
152
+ var validateFieldOn = function validateFieldOn(field, fieldOptions, option, defaultValue) {
153
+ var _fieldOptions$option, _options$option2;
154
+ ((_fieldOptions$option = fieldOptions === null || fieldOptions === void 0 ? void 0 : fieldOptions[option]) !== null && _fieldOptions$option !== void 0 ? _fieldOptions$option : isFieldValidate(field, (_options$option2 = options[option]) !== null && _options$option2 !== void 0 ? _options$option2 : defaultValue)) && validate(field);
155
+ };
156
+ var defineField = function defineField(field, fieldOptions) {
157
+ var _fields$field2, _resolve;
158
+ if (!field) {
159
+ //console.warn('The `name` attribute is required for the field definition.');
160
+
161
+ return []; // prevent errors
162
+ }
163
+ (_fields$field2 = fields[field]) === null || _fields$field2 === void 0 || _fields$field2._watcher.stop();
164
+ _states[field] || (_states[field] = getInitialState(field, fieldOptions === null || fieldOptions === void 0 ? void 0 : fieldOptions.initialValue));
165
+ var props = mergeProps((_resolve = resolve(fieldOptions, _states[field])) === null || _resolve === void 0 ? void 0 : _resolve.props, resolve(fieldOptions === null || fieldOptions === void 0 ? void 0 : fieldOptions.props, _states[field]), {
166
+ name: field,
167
+ onBlur: function onBlur() {
168
+ _states[field].touched = true;
169
+ validateFieldOn(field, fieldOptions, 'validateOnBlur');
170
+ },
171
+ onInput: function onInput(event) {
172
+ _states[field].value = event && Object.hasOwn(event, 'value') ? event.value : event.target.value;
173
+ },
174
+ onChange: function onChange(event) {
175
+ _states[field].value = event && Object.hasOwn(event, 'value') ? event.value : event.target.type === 'checkbox' || event.target.type === 'radio' ? event.target.checked : event.target.value;
176
+ },
177
+ onInvalid: function onInvalid(errors) {
178
+ var _errors$;
179
+ _states[field].invalid = true;
180
+ _states[field].errors = errors;
181
+ _states[field].error = (_errors$ = errors === null || errors === void 0 ? void 0 : errors[0]) !== null && _errors$ !== void 0 ? _errors$ : null;
182
+ }
183
+ });
184
+ var _watcher = watchPausable(function () {
185
+ return _states[field].value;
186
+ }, function (newValue, oldValue) {
187
+ if (_states[field].pristine) {
188
+ _states[field].pristine = false;
189
+ }
190
+ if (newValue !== oldValue) {
191
+ _states[field].dirty = true;
192
+ }
193
+ validateFieldOn(field, fieldOptions, 'validateOnValueUpdate', true);
194
+ });
195
+ fields[field] = {
196
+ props: props,
197
+ states: _states[field],
198
+ options: fieldOptions,
199
+ _watcher: _watcher
200
+ };
201
+ return [_states[field], props];
202
+ };
203
+ var handleSubmit = function handleSubmit(callback) {
204
+ return /*#__PURE__*/function () {
205
+ var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(event) {
206
+ var results;
207
+ return _regenerator().w(function (_context2) {
208
+ while (1) switch (_context2.n) {
209
+ case 0:
210
+ _context2.n = 1;
211
+ return validateOn('validateOnSubmit', true);
212
+ case 1:
213
+ results = _context2.v;
214
+ return _context2.a(2, callback(_objectSpread({
215
+ originalEvent: event,
216
+ valid: toValue(valid),
217
+ states: toValue(states),
218
+ reset: reset
219
+ }, results)));
220
+ }
221
+ }, _callee2);
222
+ }));
223
+ return function (_x3) {
224
+ return _ref4.apply(this, arguments);
225
+ };
226
+ }();
227
+ };
228
+ var handleReset = function handleReset(callback) {
229
+ return /*#__PURE__*/function () {
230
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(event) {
231
+ return _regenerator().w(function (_context3) {
232
+ while (1) switch (_context3.n) {
233
+ case 0:
234
+ reset();
235
+ return _context3.a(2, callback({
236
+ originalEvent: event
237
+ }));
238
+ }
239
+ }, _callee3);
240
+ }));
241
+ return function (_x4) {
242
+ return _ref5.apply(this, arguments);
243
+ };
244
+ }();
245
+ };
246
+ var validate = /*#__PURE__*/function () {
247
+ var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(field) {
248
+ var _yield$options$resolv, _options$resolver, _result, _result$errors;
249
+ var resolverOptions, _ref9, names, values, result, flattenFields, _i, _Object$entries, _Object$entries$_i, fieldName, fieldInst, _fieldInst$options, _getValueByPath, _errors$2, fieldResolver, _yield$fieldResolver, fieldValue, fieldResult, errors, _t3, _t4, _t5, _t6, _t7, _t8;
250
+ return _regenerator().w(function (_context4) {
251
+ while (1) switch (_context4.n) {
252
+ case 0:
253
+ resolverOptions = Object.entries(_states).reduce(function (acc, _ref7) {
254
+ var _ref8 = _slicedToArray(_ref7, 2),
255
+ key = _ref8[0],
256
+ val = _ref8[1];
257
+ acc.names.push(key);
258
+ acc.values[key] = val.value;
259
+ return acc;
260
+ }, {
261
+ names: [],
262
+ values: {}
263
+ });
264
+ _ref9 = [resolverOptions.names, groupKeys(resolverOptions.values)], names = _ref9[0], values = _ref9[1];
265
+ _context4.n = 1;
266
+ return (_options$resolver = options.resolver) === null || _options$resolver === void 0 ? void 0 : _options$resolver.call(options, {
267
+ names: names,
268
+ values: values
269
+ });
270
+ case 1:
271
+ _t4 = _yield$options$resolv = _context4.v;
272
+ _t3 = _t4 !== null;
273
+ if (!_t3) {
274
+ _context4.n = 2;
275
+ break;
276
+ }
277
+ _t3 = _yield$options$resolv !== void 0;
278
+ case 2:
279
+ if (!_t3) {
280
+ _context4.n = 3;
281
+ break;
282
+ }
283
+ _t5 = _yield$options$resolv;
284
+ _context4.n = 4;
285
+ break;
286
+ case 3:
287
+ _t5 = {
288
+ values: values
289
+ };
290
+ case 4:
291
+ result = _t5;
292
+ (_result$errors = (_result = result).errors) !== null && _result$errors !== void 0 ? _result$errors : _result.errors = {};
293
+ flattenFields = [field].flat();
294
+ _i = 0, _Object$entries = Object.entries(fields);
295
+ case 5:
296
+ if (!(_i < _Object$entries.length)) {
297
+ _context4.n = 12;
298
+ break;
299
+ }
300
+ _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2), fieldName = _Object$entries$_i[0], fieldInst = _Object$entries$_i[1];
301
+ if (!(flattenFields.includes(fieldName) || !field || isEmpty(result.errors))) {
302
+ _context4.n = 11;
303
+ break;
304
+ }
305
+ fieldResolver = (_fieldInst$options = fieldInst.options) === null || _fieldInst$options === void 0 ? void 0 : _fieldInst$options.resolver;
306
+ if (!fieldResolver) {
307
+ _context4.n = 10;
308
+ break;
309
+ }
310
+ fieldValue = fieldInst.states.value;
311
+ _context4.n = 6;
312
+ return fieldResolver({
313
+ values: fieldValue,
314
+ value: fieldValue,
315
+ name: fieldName
316
+ });
317
+ case 6:
318
+ _t7 = _yield$fieldResolver = _context4.v;
319
+ _t6 = _t7 !== null;
320
+ if (!_t6) {
321
+ _context4.n = 7;
322
+ break;
323
+ }
324
+ _t6 = _yield$fieldResolver !== void 0;
325
+ case 7:
326
+ if (!_t6) {
327
+ _context4.n = 8;
328
+ break;
329
+ }
330
+ _t8 = _yield$fieldResolver;
331
+ _context4.n = 9;
332
+ break;
333
+ case 8:
334
+ _t8 = {
335
+ values: fieldValue
336
+ };
337
+ case 9:
338
+ fieldResult = _t8;
339
+ isArray(fieldResult.errors) && (fieldResult.errors = _defineProperty({}, fieldName, fieldResult.errors));
340
+ result = mergeKeys(result, fieldResult);
341
+ case 10:
342
+ errors = (_getValueByPath = getValueByPath(result.errors, fieldName)) !== null && _getValueByPath !== void 0 ? _getValueByPath : []; //const value = result.values?.[fieldName] ?? _states[sField].value;
343
+ _states[fieldName].invalid = errors.length > 0;
344
+ _states[fieldName].valid = !_states[fieldName].invalid;
345
+ _states[fieldName].errors = errors;
346
+ _states[fieldName].error = (_errors$2 = errors === null || errors === void 0 ? void 0 : errors[0]) !== null && _errors$2 !== void 0 ? _errors$2 : null;
347
+ //states[fieldName].value = value;
348
+ case 11:
349
+ _i++;
350
+ _context4.n = 5;
351
+ break;
352
+ case 12:
353
+ return _context4.a(2, _objectSpread(_objectSpread({}, result), {}, {
354
+ errors: groupKeys(result.errors)
355
+ }));
356
+ }
357
+ }, _callee4);
358
+ }));
359
+ return function validate(_x5) {
360
+ return _ref6.apply(this, arguments);
361
+ };
362
+ }();
363
+ var reset = function reset() {
364
+ Object.keys(_states).forEach(/*#__PURE__*/function () {
365
+ var _ref0 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(field) {
366
+ var _fields$field3;
367
+ var watcher;
368
+ return _regenerator().w(function (_context5) {
369
+ while (1) switch (_context5.n) {
370
+ case 0:
371
+ watcher = fields[field]._watcher;
372
+ watcher.pause();
373
+ fields[field].states = _states[field] = getInitialState(field, (_fields$field3 = fields[field]) === null || _fields$field3 === void 0 || (_fields$field3 = _fields$field3.options) === null || _fields$field3 === void 0 ? void 0 : _fields$field3.initialValue);
374
+ _context5.n = 1;
375
+ return nextTick();
376
+ case 1:
377
+ watcher.resume();
378
+ case 2:
379
+ return _context5.a(2);
380
+ }
381
+ }, _callee5);
382
+ }));
383
+ return function (_x6) {
384
+ return _ref0.apply(this, arguments);
385
+ };
386
+ }());
387
+ };
388
+ var setFieldValue = function setFieldValue(field, value) {
389
+ if (_states[field] !== undefined) _states[field].value = value;
390
+ };
391
+ var getFieldState = function getFieldState(field) {
392
+ var _fields$field4;
393
+ return (_fields$field4 = fields[field]) === null || _fields$field4 === void 0 ? void 0 : _fields$field4.states;
394
+ };
395
+ var setValues = function setValues(values) {
396
+ Object.keys(values).forEach(function (field) {
397
+ return setFieldValue(field, values[field]);
398
+ });
399
+ };
400
+ var validateOnMounted = function validateOnMounted() {
401
+ validateOn('validateOnMount');
402
+ };
403
+ tryOnMounted(validateOnMounted);
404
+ return {
405
+ defineField: defineField,
406
+ setFieldValue: setFieldValue,
407
+ getFieldState: getFieldState,
408
+ handleSubmit: handleSubmit,
409
+ handleReset: handleReset,
410
+ validate: validate,
411
+ setValues: setValues,
412
+ reset: reset,
413
+ valid: valid,
414
+ states: states,
415
+ fields: fields
416
+ };
417
+ };
418
+
419
+ export { useForm };
420
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/useform/index.js"],"sourcesContent":["import { isArray, isEmpty, isNotEmpty, mergeKeys, resolve } from '@primeuix/utils';\nimport { computed, getCurrentInstance, mergeProps, nextTick, onMounted, reactive, ref, toValue, watch } from 'vue';\n\nfunction tryOnMounted(fn, sync = true) {\n if (getCurrentInstance()) onMounted(fn);\n else if (sync) fn();\n else nextTick(fn);\n}\n\nfunction watchPausable(source, callback, options) {\n const isActive = ref(true);\n\n const stop = watch(\n source,\n (newValue, oldValue) => {\n if (!isActive.value) return;\n callback(newValue, oldValue);\n },\n options\n );\n\n return {\n stop,\n pause: () => {\n isActive.value = false;\n },\n resume: () => {\n isActive.value = true;\n }\n };\n}\n\n// @todo: move to utils\nfunction groupKeys(obj) {\n return Object.entries(obj).reduce((result, [key, value]) => {\n /* eslint-disable-next-line no-useless-escape */\n key.split(/[\\.\\[\\]]+/)\n .filter(Boolean)\n .reduce((acc, curr, idx, arr) => (acc[curr] ??= isNaN(arr[idx + 1]) ? (idx === arr.length - 1 ? value : {}) : []), result);\n\n return result;\n }, {});\n}\n\nfunction getValueByPath(obj, path) {\n if (!obj || !path) {\n // short circuit if there is nothing to resolve\n return null;\n }\n\n try {\n const value = obj[path];\n\n if (isNotEmpty(value)) return value;\n } catch {\n // do nothing and continue to other methods to resolve path data\n }\n\n /* eslint-disable-next-line no-useless-escape */\n const keys = path.split(/[\\.\\[\\]]+/).filter(Boolean);\n\n return keys.reduce((acc, key) => (acc && acc[key] !== undefined ? acc[key] : undefined), obj);\n}\n\nexport const useForm = (options = {}) => {\n const _states = reactive({});\n const fields = reactive({});\n const valid = computed(() => Object.values(_states).every((field) => !field.invalid));\n const states = computed(() => groupKeys(_states));\n\n const getInitialState = (field, initialValue) => {\n return {\n value: initialValue ?? getValueByPath(options.initialValues, field),\n touched: false,\n dirty: false,\n pristine: true,\n valid: true,\n invalid: false,\n error: null,\n errors: []\n };\n };\n\n const isFieldValidate = (field, validateOn) => {\n const value = resolve(validateOn, field);\n\n return value === true || (isArray(value) && value.includes(field));\n };\n\n const validateOn = async (option, defaultValue) => {\n let results = {};\n\n isArray(options[option]) ? (results = await validate(options[option])) : (options[option] ?? defaultValue) && (results = await validate());\n const fieldArr = Object.keys(fields).filter((field) => fields[field]?.options?.[option]) || [];\n\n isNotEmpty(fieldArr) && (results = await validate(fieldArr));\n\n return results;\n };\n\n const validateFieldOn = (field, fieldOptions, option, defaultValue) => {\n (fieldOptions?.[option] ?? isFieldValidate(field, options[option] ?? defaultValue)) && validate(field);\n };\n\n const defineField = (field, fieldOptions) => {\n if (!field) {\n //console.warn('The `name` attribute is required for the field definition.');\n\n return []; // prevent errors\n }\n\n fields[field]?._watcher.stop();\n\n _states[field] ||= getInitialState(field, fieldOptions?.initialValue);\n\n const props = mergeProps(resolve(fieldOptions, _states[field])?.props, resolve(fieldOptions?.props, _states[field]), {\n name: field,\n onBlur: () => {\n _states[field].touched = true;\n validateFieldOn(field, fieldOptions, 'validateOnBlur');\n },\n onInput: (event) => {\n _states[field].value = event && Object.hasOwn(event, 'value') ? event.value : event.target.value;\n },\n onChange: (event) => {\n _states[field].value = event && Object.hasOwn(event, 'value') ? event.value : event.target.type === 'checkbox' || event.target.type === 'radio' ? event.target.checked : event.target.value;\n },\n onInvalid: (errors) => {\n _states[field].invalid = true;\n _states[field].errors = errors;\n _states[field].error = errors?.[0] ?? null;\n }\n });\n\n const _watcher = watchPausable(\n () => _states[field].value,\n (newValue, oldValue) => {\n if (_states[field].pristine) {\n _states[field].pristine = false;\n }\n\n if (newValue !== oldValue) {\n _states[field].dirty = true;\n }\n\n validateFieldOn(field, fieldOptions, 'validateOnValueUpdate', true);\n }\n );\n\n fields[field] = { props, states: _states[field], options: fieldOptions, _watcher };\n\n return [_states[field], props];\n };\n\n const handleSubmit = (callback) => {\n return async (event) => {\n const results = await validateOn('validateOnSubmit', true);\n\n return callback({\n originalEvent: event,\n valid: toValue(valid),\n states: toValue(states),\n reset,\n ...results\n });\n };\n };\n\n const handleReset = (callback) => {\n return async (event) => {\n reset();\n\n return callback({\n originalEvent: event\n });\n };\n };\n\n const validate = async (field) => {\n const resolverOptions = Object.entries(_states).reduce(\n (acc, [key, val]) => {\n acc.names.push(key);\n acc.values[key] = val.value;\n\n return acc;\n },\n { names: [], values: {} }\n );\n\n const [names, values] = [resolverOptions.names, groupKeys(resolverOptions.values)];\n\n let result = (await options.resolver?.({ names, values })) ?? { values };\n\n result.errors ??= {};\n\n const flattenFields = [field].flat();\n\n for (const [fieldName, fieldInst] of Object.entries(fields)) {\n if (flattenFields.includes(fieldName) || !field || isEmpty(result.errors)) {\n const fieldResolver = fieldInst.options?.resolver;\n\n if (fieldResolver) {\n const fieldValue = fieldInst.states.value;\n const fieldResult = (await fieldResolver({ values: fieldValue, value: fieldValue, name: fieldName })) ?? { values: fieldValue };\n\n isArray(fieldResult.errors) && (fieldResult.errors = { [fieldName]: fieldResult.errors });\n\n result = mergeKeys(result, fieldResult);\n }\n\n const errors = getValueByPath(result.errors, fieldName) ?? [];\n\n //const value = result.values?.[fieldName] ?? _states[sField].value;\n _states[fieldName].invalid = errors.length > 0;\n _states[fieldName].valid = !_states[fieldName].invalid;\n _states[fieldName].errors = errors;\n _states[fieldName].error = errors?.[0] ?? null;\n //states[fieldName].value = value;\n }\n }\n\n return {\n ...result,\n errors: groupKeys(result.errors)\n };\n };\n\n const reset = () => {\n Object.keys(_states).forEach(async (field) => {\n const watcher = fields[field]._watcher;\n\n watcher.pause();\n fields[field].states = _states[field] = getInitialState(field, fields[field]?.options?.initialValue);\n await nextTick();\n watcher.resume();\n });\n };\n\n const setFieldValue = (field, value) => {\n if (_states[field] !== undefined) _states[field].value = value;\n };\n\n const getFieldState = (field) => {\n return fields[field]?.states;\n };\n\n const setValues = (values) => {\n Object.keys(values).forEach((field) => setFieldValue(field, values[field]));\n };\n\n const validateOnMounted = () => {\n validateOn('validateOnMount');\n };\n\n tryOnMounted(validateOnMounted);\n\n return {\n defineField,\n setFieldValue,\n getFieldState,\n handleSubmit,\n handleReset,\n validate,\n setValues,\n reset,\n valid,\n states,\n fields\n };\n};\n"],"names":["e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","next","push","isArray","tryOnMounted","fn","sync","undefined","getCurrentInstance","onMounted","nextTick","watchPausable","source","callback","options","isActive","ref","stop","watch","newValue","oldValue","pause","resume","groupKeys","obj","entries","reduce","result","_ref","_ref2","key","split","filter","Boolean","acc","curr","idx","arr","_acc$curr","isNaN","getValueByPath","path","isNotEmpty","_unused","keys","useForm","_states","reactive","fields","valid","computed","values","every","field","invalid","states","getInitialState","initialValue","initialValues","touched","dirty","pristine","error","errors","isFieldValidate","validateOn","includes","_ref3","_callee","option","defaultValue","_options$option","results","fieldArr","_t","_t2","_context","validate","_fields$field","_x","_x2","validateFieldOn","fieldOptions","_fieldOptions$option","_options$option2","defineField","_fields$field2","_resolve","_watcher","props","mergeProps","onBlur","onInput","event","hasOwn","target","onChange","type","checked","onInvalid","_errors$","handleSubmit","_ref4","_callee2","_context2","_objectSpread","originalEvent","toValue","reset","_x3","handleReset","_ref5","_callee3","_context3","_x4","_ref6","_callee4","_yield$options$resolv","_options$resolver","_result","_result$errors","resolverOptions","_ref9","names","flattenFields","_i","_Object$entries","_Object$entries$_i","fieldName","fieldInst","_fieldInst$options","_getValueByPath","_errors$2","fieldResolver","_yield$fieldResolver","fieldValue","fieldResult","_t3","_t4","_t5","_t6","_t7","_t8","_context4","_ref7","_ref8","val","resolver","flat","isEmpty","_defineProperty","mergeKeys","_x5","forEach","_ref0","_callee5","_fields$field3","watcher","_context5","_x6","setFieldValue","getFieldState","_fields$field4","setValues","validateOnMounted"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ {
2
+ "main": "./index.mjs",
3
+ "module": "./index.mjs",
4
+ "types": "./index.d.ts"
5
+ }