@prototyp/skeletor 1.3.0-beta1 → 1.3.0-beta2

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.
@@ -2,7 +2,7 @@
2
2
  "name": "@prototyp/skeleform",
3
3
  "description": "React/React-Native form management utility",
4
4
  "author": "Luka Buljan <luka@prototyp.digital>",
5
- "version": "1.0.2",
5
+ "version": "1.0.3-beta0",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/prototypdigital/skeleform",
8
8
  "repository": {
@@ -6,6 +6,21 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useForm = useForm;
7
7
  exports.useFormUtils = useFormUtils;
8
8
  var _react = require("react");
9
+ function deepEqual(a, b) {
10
+ if (a === b) return true;
11
+ if (a instanceof Date && b instanceof Date) return +a === +b;
12
+ if (a === null || b === null) return false;
13
+ if (typeof a !== "object" || typeof b !== "object") return false;
14
+ if (Array.isArray(a) !== Array.isArray(b)) return false;
15
+ if (Array.isArray(a) && Array.isArray(b)) {
16
+ if (a.length !== b.length) return false;
17
+ return a.every((item, i) => deepEqual(item, b[i]));
18
+ }
19
+ const keysA = Object.keys(a);
20
+ if (keysA.length !== Object.keys(b).length) return false;
21
+ return keysA.every(key => deepEqual(a[key], b[key]));
22
+ }
23
+
9
24
  /** One-fits-all solution to manage state changes, field validation and optional entries within a form.
10
25
  * @example <caption>Simple use case:</caption>
11
26
  * const { state, validation, update } = useForm({ email: '', password: '', });
@@ -55,9 +70,12 @@ function useForm(values, config) {
55
70
  ...s,
56
71
  [key]: value
57
72
  }));
58
- setValidation(s => ({
59
- ...s,
60
- [key]: shouldValidate ? fieldValidation(key, value, state) : undefined
73
+ setValidation(validation => ({
74
+ ...validation,
75
+ [key]: shouldValidate ? fieldValidation(key, value, {
76
+ ...state,
77
+ [key]: value
78
+ }) : undefined
61
79
  }));
62
80
  }
63
81
  function validate(key) {
@@ -74,7 +92,7 @@ function useForm(values, config) {
74
92
  const formValidationState = stateValidation(state);
75
93
  setValidation(formValidationState.validation);
76
94
  return formValidationState.valid;
77
- }, [state]);
95
+ }, [stateValidation, state]);
78
96
 
79
97
  /** Boolean value of whether the form is valid (ie can be submitted). Use this to disable/enable form submission.
80
98
  * Only use when validating fields separately, has no value when valiating on form submit. */
@@ -115,9 +133,9 @@ function useForm(values, config) {
115
133
  return initialValue instanceof Date ? +value !== +initialValue : true;
116
134
  }
117
135
 
118
- /** Check object values in a crude manner. Deep compares are expensive, this works but is sensitive to prop order. Could potentially provide a false positive if objects are the same, but values are ordered differently (ie two arrays, same values but at different indexes == different arrays.) */
136
+ /** Deep equality check for objects and arrays. */
119
137
  if (state[key] instanceof Object) {
120
- return JSON.stringify(state[key]) !== JSON.stringify(initialState[key]);
138
+ return !deepEqual(state[key], initialState[key]);
121
139
  }
122
140
 
123
141
  /** Primitive value check. */
@@ -138,24 +156,24 @@ function useForm(values, config) {
138
156
  resetInitialValues
139
157
  };
140
158
  }
159
+ function doesValueExist(value) {
160
+ if (value === undefined || value === null) {
161
+ return false;
162
+ }
163
+ if (typeof value === "string") {
164
+ return value !== "";
165
+ }
166
+ if (typeof value === "number") {
167
+ return value >= 0 || value < 0 || !Number.isNaN(value);
168
+ }
169
+ if (value instanceof Date) {
170
+ return !Number.isNaN(value.valueOf());
171
+ }
172
+ return true;
173
+ }
141
174
 
142
175
  /** Helper hook to validate form state outside of the scope of useForm. */
143
176
  function useFormUtils(config) {
144
- function doesValueExist(value) {
145
- if (value === undefined || value === null) {
146
- return false;
147
- }
148
- if (typeof value === "string") {
149
- return value !== "";
150
- }
151
- if (typeof value === "number") {
152
- return value >= 0 || value < 0 || !Number.isNaN(value);
153
- }
154
- if (value instanceof Date) {
155
- return !Number.isNaN(value.valueOf());
156
- }
157
- return true;
158
- }
159
177
  const isOptional = (0, _react.useCallback)(key => config?.optional?.includes(key) || false, [config]);
160
178
 
161
179
  /** Validate by custom validation rule. If the rule does not exist, returns undefined. */
@@ -168,7 +186,7 @@ function useFormUtils(config) {
168
186
  * 1. If there is a custom validation rule, always use that to preserve all possible type values
169
187
  * 2. If there is no value (is a falsy value), check if the field is optional
170
188
  * 3. Fallback to simple truthy value check if all other checks are not triggered. */
171
- function fieldValidation(key, value, state) {
189
+ const fieldValidation = (0, _react.useCallback)((key, value, state) => {
172
190
  const hasValue = doesValueExist(value);
173
191
  const optional = isOptional(key);
174
192
 
@@ -182,8 +200,8 @@ function useFormUtils(config) {
182
200
  }
183
201
  // Fallback, simple check if value exists
184
202
  return hasValue;
185
- }
186
- function stateValidation(state) {
203
+ }, [isOptional, validateByRule, config]);
204
+ const stateValidation = (0, _react.useCallback)(state => {
187
205
  const keys = Object.keys(state).map(key => key);
188
206
  const validation = {};
189
207
  keys.forEach(key => {
@@ -195,7 +213,7 @@ function useFormUtils(config) {
195
213
  valid: !keys.some(key => !validation[key]),
196
214
  validation
197
215
  };
198
- }
216
+ }, [fieldValidation]);
199
217
  return {
200
218
  doesValueExist,
201
219
  validateByRule,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","useForm","values","config","keys","useMemo","Object","validation","setValidation","useState","initialState","setInitialState","state","setState","fieldValidation","stateValidation","isOptional","useFormUtils","useEffect","changed","filter","key","length","updatedState","forEach","update","value","shouldValidate","s","undefined","validate","validateForm","useCallback","formValidationState","valid","isFormValid","some","resetState","resetInitialValues","resetValidation","clearForm","hasStateChanged","initialValue","Date","JSON","stringify","doesValueExist","Number","isNaN","valueOf","optional","includes","validateByRule","rules","hasValue","map"],"sourceRoot":"../../../../../src","sources":["hooks/skeleform/src/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","deepEqual","a","b","Date","Array","isArray","length","every","item","i","keysA","Object","keys","key","useForm","values","config","useMemo","validation","setValidation","useState","initialState","setInitialState","state","setState","fieldValidation","stateValidation","isOptional","useFormUtils","useEffect","changed","filter","updatedState","forEach","update","value","shouldValidate","s","undefined","validate","validateForm","useCallback","formValidationState","valid","isFormValid","some","resetState","resetInitialValues","resetValidation","clearForm","hasStateChanged","initialValue","doesValueExist","Number","isNaN","valueOf","optional","includes","validateByRule","rules","hasValue","map"],"sourceRoot":"../../../../../src","sources":["hooks/skeleform/src/index.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAsBA,SAASC,SAASA,CAACC,CAAU,EAAEC,CAAU,EAAW;EACnD,IAAID,CAAC,KAAKC,CAAC,EAAE,OAAO,IAAI;EACxB,IAAID,CAAC,YAAYE,IAAI,IAAID,CAAC,YAAYC,IAAI,EAAE,OAAO,CAACF,CAAC,KAAK,CAACC,CAAC;EAC5D,IAAID,CAAC,KAAK,IAAI,IAAIC,CAAC,KAAK,IAAI,EAAE,OAAO,KAAK;EAC1C,IAAI,OAAOD,CAAC,KAAK,QAAQ,IAAI,OAAOC,CAAC,KAAK,QAAQ,EAAE,OAAO,KAAK;EAChE,IAAIE,KAAK,CAACC,OAAO,CAACJ,CAAC,CAAC,KAAKG,KAAK,CAACC,OAAO,CAACH,CAAC,CAAC,EAAE,OAAO,KAAK;EACvD,IAAIE,KAAK,CAACC,OAAO,CAACJ,CAAC,CAAC,IAAIG,KAAK,CAACC,OAAO,CAACH,CAAC,CAAC,EAAE;IACzC,IAAID,CAAC,CAACK,MAAM,KAAKJ,CAAC,CAACI,MAAM,EAAE,OAAO,KAAK;IACvC,OAAOL,CAAC,CAACM,KAAK,CAAC,CAACC,IAAI,EAAEC,CAAC,KAAKT,SAAS,CAACQ,IAAI,EAAEN,CAAC,CAACO,CAAC,CAAC,CAAC,CAAC;EACnD;EACA,MAAMC,KAAK,GAAGC,MAAM,CAACC,IAAI,CAACX,CAAW,CAAC;EACtC,IAAIS,KAAK,CAACJ,MAAM,KAAKK,MAAM,CAACC,IAAI,CAACV,CAAW,CAAC,CAACI,MAAM,EAAE,OAAO,KAAK;EAClE,OAAOI,KAAK,CAACH,KAAK,CAAEM,GAAG,IACtBb,SAAS,CACPC,CAAC,CAA6BY,GAAG,CAAC,EAClCX,CAAC,CAA6BW,GAAG,CACnC,CACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,OAAOA,CAAIC,MAAiB,EAAEC,MAAsB,EAAE;EACrE,MAAMJ,IAAI,GAAG,IAAAK,cAAO,EAAC,MAAMN,MAAM,CAACC,IAAI,CAACG,MAAM,CAAmB,EAAE,CAACA,MAAM,CAAC,CAAC;EAC3E,MAAM,CAACG,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAgB,CAAC,CAAC,CAAC;EAC/D,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAF,eAAQ,EAACL,MAAM,CAAC;EACxD,MAAM,CAACQ,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAJ,eAAQ,EAACL,MAAM,CAAC;EAC1C,MAAM;IAAEU,eAAe;IAAEC,eAAe;IAAEC;EAAW,CAAC,GAAGC,YAAY,CAACZ,MAAM,CAAC;;EAE7E;EACA,IAAAa,gBAAS,EAAC,MAAM;IACf,MAAMC,OAAO,GAAGlB,IAAI,CAACmB,MAAM,CAAElB,GAAG,IAAKE,MAAM,CAACF,GAAG,CAAC,KAAKQ,YAAY,CAACR,GAAG,CAAC,CAAC;IACvE,IAAI,CAACiB,OAAO,CAACxB,MAAM,EAAE;MACpB;IACD;IAEA,MAAM0B,YAAY,GAAG;MAAE,GAAGT;IAAM,CAAC;IACjCO,OAAO,CAACG,OAAO,CAAEpB,GAAG,IAAK;MACxBmB,YAAY,CAACnB,GAAG,CAAC,GAAGE,MAAM,CAACF,GAAG,CAAC;IAChC,CAAC,CAAC;IAEFS,eAAe,CAAC;MAAE,GAAGP,MAAM;MAAE,GAAGiB;IAAa,CAAC,CAAC;IAC/CR,QAAQ,CAACQ,YAAY,CAAC;EACvB,CAAC,EAAE,CAACjB,MAAM,CAAC,CAAC;;EAEZ;AACD;AACA;AACA;EACC,SAASmB,MAAMA,CACdrB,GAAM,EACNsB,KAAmB,EACnBC,cAAwB,EACvB;IACDZ,QAAQ,CAAEa,CAAC,KAAM;MAAE,GAAGA,CAAC;MAAE,CAACxB,GAAG,GAAGsB;IAAM,CAAC,CAAC,CAAC;IACzChB,aAAa,CAAED,UAAU,KAAM;MAC9B,GAAGA,UAAU;MACb,CAACL,GAAG,GAAGuB,cAAc,GAClBX,eAAe,CAACZ,GAAG,EAAEsB,KAAK,EAAE;QAAE,GAAGZ,KAAK;QAAE,CAACV,GAAG,GAAGsB;MAAM,CAAC,CAAC,GACvDG;IACJ,CAAC,CAAC,CAAC;EACJ;EAEA,SAASC,QAAQA,CAAoB1B,GAAM,EAAE;IAC5CM,aAAa,CAAEkB,CAAC,KAAM;MACrB,GAAGA,CAAC;MACJ,CAACxB,GAAG,GAAGY,eAAe,CAACZ,GAAG,EAAEU,KAAK,CAACV,GAAG,CAAC,EAAEU,KAAK;IAC9C,CAAC,CAAC,CAAC;EACJ;;EAEA;AACD;AACA;EACC,MAAMiB,YAAY,GAAG,IAAAC,kBAAW,EAAC,MAAM;IACtC,MAAMC,mBAAmB,GAAGhB,eAAe,CAACH,KAAK,CAAC;IAClDJ,aAAa,CAACuB,mBAAmB,CAACxB,UAAU,CAAC;IAC7C,OAAOwB,mBAAmB,CAACC,KAAK;EACjC,CAAC,EAAE,CAACjB,eAAe,EAAEH,KAAK,CAAC,CAAC;;EAE5B;AACD;EACC,MAAMqB,WAAW,GAAG,IAAAH,kBAAW,EAAC,MAAM;IACrC,OAAO,CAAC7B,IAAI,CAACiC,IAAI,CAAEhC,GAAG,IACrBc,UAAU,CAACd,GAAG,CAAC,GAAGK,UAAU,CAACL,GAAG,CAAC,KAAK,KAAK,GAAG,CAACK,UAAU,CAACL,GAAG,CAC9D,CAAC;EACF,CAAC,EAAE,CAACK,UAAU,EAAEF,MAAM,CAAC,CAAC;;EAExB;EACA,SAAS8B,UAAUA,CAAA,EAAG;IACrBtB,QAAQ,CAACT,MAAM,CAAC;EACjB;;EAEA;EACA,SAASgC,kBAAkBA,CAAA,EAAG;IAC7BzB,eAAe,CAACP,MAAM,CAAC;EACxB;;EAEA;EACA,SAASiC,eAAeA,CAAA,EAAG;IAC1B7B,aAAa,CAAC,CAAC,CAAC,CAAC;EAClB;;EAEA;EACA,SAAS8B,SAASA,CAAA,EAAG;IACpBF,kBAAkB,CAAC,CAAC;IACpBD,UAAU,CAAC,CAAC;IACZE,eAAe,CAAC,CAAC;EAClB;;EAEA;EACA,MAAME,eAAe,GAAG,IAAAT,kBAAW,EAAC,MAAM;IACzC,OAAO7B,IAAI,CAACiC,IAAI,CAAEhC,GAAG,IAAK;MACzB,MAAMsB,KAAK,GAAGZ,KAAK,CAACV,GAAG,CAAC;MACxB,MAAMsC,YAA0B,GAAG9B,YAAY,CAACR,GAAG,CAAC;;MAEpD;MACA,IAAIsB,KAAK,YAAYhC,IAAI,EAAE;QAC1B,OAAOgD,YAAY,YAAYhD,IAAI,GAAG,CAACgC,KAAK,KAAK,CAACgB,YAAY,GAAG,IAAI;MACtE;;MAEA;MACA,IAAI5B,KAAK,CAACV,GAAG,CAAC,YAAYF,MAAM,EAAE;QACjC,OAAO,CAACX,SAAS,CAACuB,KAAK,CAACV,GAAG,CAAC,EAAEQ,YAAY,CAACR,GAAG,CAAC,CAAC;MACjD;;MAEA;MACA,OAAOsB,KAAK,KAAKgB,YAAY;IAC9B,CAAC,CAAC;EACH,CAAC,EAAE,CAAC5B,KAAK,EAAEF,YAAY,CAAC,CAAC;EAEzB,OAAO;IACNE,KAAK;IACLL,UAAU;IACVgB,MAAM;IACNK,QAAQ;IACRC,YAAY;IACZI,WAAW;IACXM,eAAe;IACfD,SAAS;IACTH,UAAU;IACVE,eAAe;IACfD;EACD,CAAC;AACF;AAEA,SAASK,cAAcA,CAAIjB,KAAQ,EAAyC;EAC3E,IAAIA,KAAK,KAAKG,SAAS,IAAIH,KAAK,KAAK,IAAI,EAAE;IAC1C,OAAO,KAAK;EACb;EAEA,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC9B,OAAOA,KAAK,KAAK,EAAE;EACpB;EAEA,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC9B,OAAOA,KAAK,IAAI,CAAC,IAAIA,KAAK,GAAG,CAAC,IAAI,CAACkB,MAAM,CAACC,KAAK,CAACnB,KAAK,CAAC;EACvD;EAEA,IAAIA,KAAK,YAAYhC,IAAI,EAAE;IAC1B,OAAO,CAACkD,MAAM,CAACC,KAAK,CAACnB,KAAK,CAACoB,OAAO,CAAC,CAAC,CAAC;EACtC;EAEA,OAAO,IAAI;AACZ;;AAEA;AACO,SAAS3B,YAAYA,CAAIZ,MAAsB,EAAE;EACvD,MAAMW,UAAU,GAAG,IAAAc,kBAAW,EAC5B5B,GAAY,IAAKG,MAAM,EAAEwC,QAAQ,EAAEC,QAAQ,CAAC5C,GAAG,CAAC,IAAI,KAAK,EAC1D,CAACG,MAAM,CACR,CAAC;;EAED;EACA,MAAM0C,cAAc,GAAG,IAAAjB,kBAAW,EACjC,CAAoB5B,GAAM,EAAEsB,KAAW,EAAEZ,KAAgB,KAAK;IAC7D,OAAOP,MAAM,EAAE2C,KAAK,GAAG9C,GAAG,CAAC,GAAGsB,KAAK,EAAEZ,KAAK,EAAEI,UAAU,CAACd,GAAG,CAAC,CAAC;EAC7D,CAAC,EACD,CAACG,MAAM,CACR,CAAC;;EAED;AACD;AACA;AACA;AACA;EACC,MAAMS,eAAe,GAAG,IAAAgB,kBAAW,EAClC,CAAC5B,GAAY,EAAEsB,KAAiB,EAAEZ,KAAgB,KAAK;IACtD,MAAMqC,QAAQ,GAAGR,cAAc,CAACjB,KAAK,CAAC;IACtC,MAAMqB,QAAQ,GAAG7B,UAAU,CAACd,GAAG,CAAC;;IAEhC;IACA,IAAIG,MAAM,EAAE2C,KAAK,GAAG9C,GAAG,CAAC,EAAE;MACzB,OAAO6C,cAAc,CAAC7C,GAAG,EAAEsB,KAAK,EAAEZ,KAAK,CAAC;IACzC;IACA;IACA,IAAI,CAACqC,QAAQ,EAAE;MACd,OAAO,CAAC,CAACJ,QAAQ;IAClB;IACA;IACA,OAAOI,QAAQ;EAChB,CAAC,EACD,CAACjC,UAAU,EAAE+B,cAAc,EAAE1C,MAAM,CACpC,CAAC;EAED,MAAMU,eAAe,GAAG,IAAAe,kBAAW,EACjClB,KAAgB,IAAK;IACrB,MAAMX,IAAI,GAAGD,MAAM,CAACC,IAAI,CAACW,KAAK,CAAC,CAACsC,GAAG,CAAEhD,GAAG,IAAKA,GAAc,CAAC;IAC5D,MAAMK,UAAyB,GAAG,CAAC,CAAC;IAEpCN,IAAI,CAACqB,OAAO,CAAEpB,GAAG,IAAK;MACrB,MAAMsB,KAAK,GAAGZ,KAAK,CAACV,GAAG,CAAC;MACxB;MACAK,UAAU,CAACL,GAAG,CAAC,GAAGY,eAAe,CAACZ,GAAG,EAAEsB,KAAK,EAAEZ,KAAK,CAAC,IAAI,KAAK;IAC9D,CAAC,CAAC;IAEF,OAAO;MACNoB,KAAK,EAAE,CAAC/B,IAAI,CAACiC,IAAI,CAAEhC,GAAG,IAAK,CAACK,UAAU,CAACL,GAAG,CAAC,CAAC;MAC5CK;IACD,CAAC;EACF,CAAC,EACD,CAACO,eAAe,CACjB,CAAC;EAED,OAAO;IACN2B,cAAc;IACdM,cAAc;IACd/B,UAAU;IACVF,eAAe;IACfC;EACD,CAAC;AACF","ignoreList":[]}
@@ -34,8 +34,9 @@ function hashString(str) {
34
34
  function valueKey(value) {
35
35
  if (value && typeof value === "object") {
36
36
  if (!ObjectIds.has(value)) {
37
- GlobalObjectId += 1;
37
+ GlobalObjectId = (GlobalObjectId + 1) % Number.MAX_SAFE_INTEGER;
38
38
  ObjectIds.set(value, GlobalObjectId);
39
+ return `ref#${GlobalObjectId}`;
39
40
  }
40
41
  return `ref#${ObjectIds.get(value)}`;
41
42
  }
@@ -1 +1 @@
1
- {"version":3,"names":["styleCache","Map","GlobalObjectId","ObjectIds","WeakMap","hashString","str","hash","i","length","char","charCodeAt","valueKey","value","has","set","get","String","memoizeStyle","obj","key","Object","entries","map","k","v","join","cached","style","freeze"],"sourceRoot":"../../../src","sources":["utils/memoize-styles.ts"],"mappings":";;;;;;AAAA;;AAGA;;AAQA;AACA,MAAMA,UAAU,GAAG,IAAIC,GAAG,CAAqB,CAAC;AAEhD,IAAIC,cAAc,GAAG,CAAC,CAAC,CAAC;AACxB,MAAMC,SAAS,GAAG,IAAIC,OAAO,CAAiB,CAAC;;AAE/C;AACA;AACA;AACA,SAASC,UAAUA,CAACC,GAAW,EAAU;EACxC,IAAIC,IAAI,GAAG,CAAC;EACZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,GAAG,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;IACpC,MAAME,IAAI,GAAGJ,GAAG,CAACK,UAAU,CAACH,CAAC,CAAC;IAC9BD,IAAI,GAAG,CAACA,IAAI,IAAI,CAAC,IAAIA,IAAI,GAAGG,IAAI;IAChCH,IAAI,GAAGA,IAAI,GAAGA,IAAI,CAAC,CAAC;EACrB;EACA,OAAOA,IAAI,KAAK,CAAC,CAAC,CAAC;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASK,QAAQA,CAACC,KAAc,EAAU;EACzC,IAAIA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACvC,IAAI,CAACV,SAAS,CAACW,GAAG,CAACD,KAAe,CAAC,EAAE;MACpCX,cAAc,IAAI,CAAC;MACnBC,SAAS,CAACY,GAAG,CAACF,KAAK,EAAYX,cAAc,CAAC;IAC/C;IACA,OAAO,OAAOC,SAAS,CAACa,GAAG,CAACH,KAAe,CAAC,EAAE;EAC/C;EACA,OAAOI,MAAM,CAACJ,KAAK,CAAC;AACrB;;AAEA;AACA;AACA;AACA;AACO,SAASK,YAAYA,CAAsBC,GAAM,EAAK;EAC5D;EACA,MAAMC,GAAG,GAAGC,MAAM,CAACC,OAAO,CAACH,GAAG,CAAC,CAC7BI,GAAG,CAAC,CAAC,CAACC,CAAC,EAAEC,CAAC,CAAC,KAAK,GAAGD,CAAC,IAAIZ,QAAQ,CAACa,CAAC,CAAC,EAAE,CAAC,CACtCC,IAAI,CAAC,GAAG,CAAC;;EAEX;EACA,MAAMnB,IAAI,GAAGF,UAAU,CAACe,GAAG,CAAC;EAC5B,MAAMO,MAAM,GAAG3B,UAAU,CAACgB,GAAG,CAACT,IAAI,CAAC;;EAEnC;EACA,IAAIoB,MAAM,IAAIA,MAAM,CAACP,GAAG,KAAKA,GAAG,EAAE;IACjC,OAAOO,MAAM,CAACC,KAAK;EACpB;;EAEA;EACA,MAAMA,KAAK,GAAGP,MAAM,CAACQ,MAAM,CAAC;IAAE,GAAGV;EAAI,CAAC,CAAM;EAC5CnB,UAAU,CAACe,GAAG,CAACR,IAAI,EAAE;IAAEa,GAAG;IAAEQ;EAAM,CAAC,CAAC;EAEpC,OAAOA,KAAK;AACb","ignoreList":[]}
1
+ {"version":3,"names":["styleCache","Map","GlobalObjectId","ObjectIds","WeakMap","hashString","str","hash","i","length","char","charCodeAt","valueKey","value","has","Number","MAX_SAFE_INTEGER","set","get","String","memoizeStyle","obj","key","Object","entries","map","k","v","join","cached","style","freeze"],"sourceRoot":"../../../src","sources":["utils/memoize-styles.ts"],"mappings":";;;;;;AAAA;;AAGA;;AAQA;AACA,MAAMA,UAAU,GAAG,IAAIC,GAAG,CAAqB,CAAC;AAEhD,IAAIC,cAAc,GAAG,CAAC,CAAC,CAAC;AACxB,MAAMC,SAAS,GAAG,IAAIC,OAAO,CAAiB,CAAC;;AAE/C;AACA;AACA;AACA,SAASC,UAAUA,CAACC,GAAW,EAAU;EACxC,IAAIC,IAAI,GAAG,CAAC;EACZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,GAAG,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;IACpC,MAAME,IAAI,GAAGJ,GAAG,CAACK,UAAU,CAACH,CAAC,CAAC;IAC9BD,IAAI,GAAG,CAACA,IAAI,IAAI,CAAC,IAAIA,IAAI,GAAGG,IAAI;IAChCH,IAAI,GAAGA,IAAI,GAAGA,IAAI,CAAC,CAAC;EACrB;EACA,OAAOA,IAAI,KAAK,CAAC,CAAC,CAAC;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASK,QAAQA,CAACC,KAAc,EAAU;EACzC,IAAIA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACvC,IAAI,CAACV,SAAS,CAACW,GAAG,CAACD,KAAe,CAAC,EAAE;MACpCX,cAAc,GAAG,CAACA,cAAc,GAAG,CAAC,IAAIa,MAAM,CAACC,gBAAgB;MAC/Db,SAAS,CAACc,GAAG,CAACJ,KAAK,EAAYX,cAAc,CAAC;MAC9C,OAAO,OAAOA,cAAc,EAAE;IAC/B;IACA,OAAO,OAAOC,SAAS,CAACe,GAAG,CAACL,KAAe,CAAC,EAAE;EAC/C;EACA,OAAOM,MAAM,CAACN,KAAK,CAAC;AACrB;;AAEA;AACA;AACA;AACA;AACO,SAASO,YAAYA,CAAsBC,GAAM,EAAK;EAC5D;EACA,MAAMC,GAAG,GAAGC,MAAM,CAACC,OAAO,CAACH,GAAG,CAAC,CAC7BI,GAAG,CAAC,CAAC,CAACC,CAAC,EAAEC,CAAC,CAAC,KAAK,GAAGD,CAAC,IAAId,QAAQ,CAACe,CAAC,CAAC,EAAE,CAAC,CACtCC,IAAI,CAAC,GAAG,CAAC;;EAEX;EACA,MAAMrB,IAAI,GAAGF,UAAU,CAACiB,GAAG,CAAC;EAC5B,MAAMO,MAAM,GAAG7B,UAAU,CAACkB,GAAG,CAACX,IAAI,CAAC;;EAEnC;EACA,IAAIsB,MAAM,IAAIA,MAAM,CAACP,GAAG,KAAKA,GAAG,EAAE;IACjC,OAAOO,MAAM,CAACC,KAAK;EACpB;;EAEA;EACA,MAAMA,KAAK,GAAGP,MAAM,CAACQ,MAAM,CAAC;IAAE,GAAGV;EAAI,CAAC,CAAM;EAC5CrB,UAAU,CAACiB,GAAG,CAACV,IAAI,EAAE;IAAEe,GAAG;IAAEQ;EAAM,CAAC,CAAC;EAEpC,OAAOA,KAAK;AACb","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
  "name": "@prototyp/skeleform",
3
3
  "description": "React/React-Native form management utility",
4
4
  "author": "Luka Buljan <luka@prototyp.digital>",
5
- "version": "1.0.2",
5
+ "version": "1.0.3-beta0",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/prototypdigital/skeleform",
8
8
  "repository": {
@@ -1,6 +1,21 @@
1
1
  "use strict";
2
2
 
3
3
  import { useCallback, useEffect, useMemo, useState } from "react";
4
+ function deepEqual(a, b) {
5
+ if (a === b) return true;
6
+ if (a instanceof Date && b instanceof Date) return +a === +b;
7
+ if (a === null || b === null) return false;
8
+ if (typeof a !== "object" || typeof b !== "object") return false;
9
+ if (Array.isArray(a) !== Array.isArray(b)) return false;
10
+ if (Array.isArray(a) && Array.isArray(b)) {
11
+ if (a.length !== b.length) return false;
12
+ return a.every((item, i) => deepEqual(item, b[i]));
13
+ }
14
+ const keysA = Object.keys(a);
15
+ if (keysA.length !== Object.keys(b).length) return false;
16
+ return keysA.every(key => deepEqual(a[key], b[key]));
17
+ }
18
+
4
19
  /** One-fits-all solution to manage state changes, field validation and optional entries within a form.
5
20
  * @example <caption>Simple use case:</caption>
6
21
  * const { state, validation, update } = useForm({ email: '', password: '', });
@@ -50,9 +65,12 @@ export function useForm(values, config) {
50
65
  ...s,
51
66
  [key]: value
52
67
  }));
53
- setValidation(s => ({
54
- ...s,
55
- [key]: shouldValidate ? fieldValidation(key, value, state) : undefined
68
+ setValidation(validation => ({
69
+ ...validation,
70
+ [key]: shouldValidate ? fieldValidation(key, value, {
71
+ ...state,
72
+ [key]: value
73
+ }) : undefined
56
74
  }));
57
75
  }
58
76
  function validate(key) {
@@ -69,7 +87,7 @@ export function useForm(values, config) {
69
87
  const formValidationState = stateValidation(state);
70
88
  setValidation(formValidationState.validation);
71
89
  return formValidationState.valid;
72
- }, [state]);
90
+ }, [stateValidation, state]);
73
91
 
74
92
  /** Boolean value of whether the form is valid (ie can be submitted). Use this to disable/enable form submission.
75
93
  * Only use when validating fields separately, has no value when valiating on form submit. */
@@ -110,9 +128,9 @@ export function useForm(values, config) {
110
128
  return initialValue instanceof Date ? +value !== +initialValue : true;
111
129
  }
112
130
 
113
- /** Check object values in a crude manner. Deep compares are expensive, this works but is sensitive to prop order. Could potentially provide a false positive if objects are the same, but values are ordered differently (ie two arrays, same values but at different indexes == different arrays.) */
131
+ /** Deep equality check for objects and arrays. */
114
132
  if (state[key] instanceof Object) {
115
- return JSON.stringify(state[key]) !== JSON.stringify(initialState[key]);
133
+ return !deepEqual(state[key], initialState[key]);
116
134
  }
117
135
 
118
136
  /** Primitive value check. */
@@ -133,24 +151,24 @@ export function useForm(values, config) {
133
151
  resetInitialValues
134
152
  };
135
153
  }
154
+ function doesValueExist(value) {
155
+ if (value === undefined || value === null) {
156
+ return false;
157
+ }
158
+ if (typeof value === "string") {
159
+ return value !== "";
160
+ }
161
+ if (typeof value === "number") {
162
+ return value >= 0 || value < 0 || !Number.isNaN(value);
163
+ }
164
+ if (value instanceof Date) {
165
+ return !Number.isNaN(value.valueOf());
166
+ }
167
+ return true;
168
+ }
136
169
 
137
170
  /** Helper hook to validate form state outside of the scope of useForm. */
138
171
  export function useFormUtils(config) {
139
- function doesValueExist(value) {
140
- if (value === undefined || value === null) {
141
- return false;
142
- }
143
- if (typeof value === "string") {
144
- return value !== "";
145
- }
146
- if (typeof value === "number") {
147
- return value >= 0 || value < 0 || !Number.isNaN(value);
148
- }
149
- if (value instanceof Date) {
150
- return !Number.isNaN(value.valueOf());
151
- }
152
- return true;
153
- }
154
172
  const isOptional = useCallback(key => config?.optional?.includes(key) || false, [config]);
155
173
 
156
174
  /** Validate by custom validation rule. If the rule does not exist, returns undefined. */
@@ -163,7 +181,7 @@ export function useFormUtils(config) {
163
181
  * 1. If there is a custom validation rule, always use that to preserve all possible type values
164
182
  * 2. If there is no value (is a falsy value), check if the field is optional
165
183
  * 3. Fallback to simple truthy value check if all other checks are not triggered. */
166
- function fieldValidation(key, value, state) {
184
+ const fieldValidation = useCallback((key, value, state) => {
167
185
  const hasValue = doesValueExist(value);
168
186
  const optional = isOptional(key);
169
187
 
@@ -177,8 +195,8 @@ export function useFormUtils(config) {
177
195
  }
178
196
  // Fallback, simple check if value exists
179
197
  return hasValue;
180
- }
181
- function stateValidation(state) {
198
+ }, [isOptional, validateByRule, config]);
199
+ const stateValidation = useCallback(state => {
182
200
  const keys = Object.keys(state).map(key => key);
183
201
  const validation = {};
184
202
  keys.forEach(key => {
@@ -190,7 +208,7 @@ export function useFormUtils(config) {
190
208
  valid: !keys.some(key => !validation[key]),
191
209
  validation
192
210
  };
193
- }
211
+ }, [fieldValidation]);
194
212
  return {
195
213
  doesValueExist,
196
214
  validateByRule,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useState","useForm","values","config","keys","Object","validation","setValidation","initialState","setInitialState","state","setState","fieldValidation","stateValidation","isOptional","useFormUtils","changed","filter","key","length","updatedState","forEach","update","value","shouldValidate","s","undefined","validate","validateForm","formValidationState","valid","isFormValid","some","resetState","resetInitialValues","resetValidation","clearForm","hasStateChanged","initialValue","Date","JSON","stringify","doesValueExist","Number","isNaN","valueOf","optional","includes","validateByRule","rules","hasValue","map"],"sourceRoot":"../../../../../src","sources":["hooks/skeleform/src/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useState","deepEqual","a","b","Date","Array","isArray","length","every","item","i","keysA","Object","keys","key","useForm","values","config","validation","setValidation","initialState","setInitialState","state","setState","fieldValidation","stateValidation","isOptional","useFormUtils","changed","filter","updatedState","forEach","update","value","shouldValidate","s","undefined","validate","validateForm","formValidationState","valid","isFormValid","some","resetState","resetInitialValues","resetValidation","clearForm","hasStateChanged","initialValue","doesValueExist","Number","isNaN","valueOf","optional","includes","validateByRule","rules","hasValue","map"],"sourceRoot":"../../../../../src","sources":["hooks/skeleform/src/index.ts"],"mappings":"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","ignoreList":[]}
@@ -30,8 +30,9 @@ function hashString(str) {
30
30
  function valueKey(value) {
31
31
  if (value && typeof value === "object") {
32
32
  if (!ObjectIds.has(value)) {
33
- GlobalObjectId += 1;
33
+ GlobalObjectId = (GlobalObjectId + 1) % Number.MAX_SAFE_INTEGER;
34
34
  ObjectIds.set(value, GlobalObjectId);
35
+ return `ref#${GlobalObjectId}`;
35
36
  }
36
37
  return `ref#${ObjectIds.get(value)}`;
37
38
  }
@@ -1 +1 @@
1
- {"version":3,"names":["styleCache","Map","GlobalObjectId","ObjectIds","WeakMap","hashString","str","hash","i","length","char","charCodeAt","valueKey","value","has","set","get","String","memoizeStyle","obj","key","Object","entries","map","k","v","join","cached","style","freeze"],"sourceRoot":"../../../src","sources":["utils/memoize-styles.ts"],"mappings":";;AAAA;;AAGA;;AAQA;AACA,MAAMA,UAAU,GAAG,IAAIC,GAAG,CAAqB,CAAC;AAEhD,IAAIC,cAAc,GAAG,CAAC,CAAC,CAAC;AACxB,MAAMC,SAAS,GAAG,IAAIC,OAAO,CAAiB,CAAC;;AAE/C;AACA;AACA;AACA,SAASC,UAAUA,CAACC,GAAW,EAAU;EACxC,IAAIC,IAAI,GAAG,CAAC;EACZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,GAAG,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;IACpC,MAAME,IAAI,GAAGJ,GAAG,CAACK,UAAU,CAACH,CAAC,CAAC;IAC9BD,IAAI,GAAG,CAACA,IAAI,IAAI,CAAC,IAAIA,IAAI,GAAGG,IAAI;IAChCH,IAAI,GAAGA,IAAI,GAAGA,IAAI,CAAC,CAAC;EACrB;EACA,OAAOA,IAAI,KAAK,CAAC,CAAC,CAAC;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASK,QAAQA,CAACC,KAAc,EAAU;EACzC,IAAIA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACvC,IAAI,CAACV,SAAS,CAACW,GAAG,CAACD,KAAe,CAAC,EAAE;MACpCX,cAAc,IAAI,CAAC;MACnBC,SAAS,CAACY,GAAG,CAACF,KAAK,EAAYX,cAAc,CAAC;IAC/C;IACA,OAAO,OAAOC,SAAS,CAACa,GAAG,CAACH,KAAe,CAAC,EAAE;EAC/C;EACA,OAAOI,MAAM,CAACJ,KAAK,CAAC;AACrB;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASK,YAAYA,CAAsBC,GAAM,EAAK;EAC5D;EACA,MAAMC,GAAG,GAAGC,MAAM,CAACC,OAAO,CAACH,GAAG,CAAC,CAC7BI,GAAG,CAAC,CAAC,CAACC,CAAC,EAAEC,CAAC,CAAC,KAAK,GAAGD,CAAC,IAAIZ,QAAQ,CAACa,CAAC,CAAC,EAAE,CAAC,CACtCC,IAAI,CAAC,GAAG,CAAC;;EAEX;EACA,MAAMnB,IAAI,GAAGF,UAAU,CAACe,GAAG,CAAC;EAC5B,MAAMO,MAAM,GAAG3B,UAAU,CAACgB,GAAG,CAACT,IAAI,CAAC;;EAEnC;EACA,IAAIoB,MAAM,IAAIA,MAAM,CAACP,GAAG,KAAKA,GAAG,EAAE;IACjC,OAAOO,MAAM,CAACC,KAAK;EACpB;;EAEA;EACA,MAAMA,KAAK,GAAGP,MAAM,CAACQ,MAAM,CAAC;IAAE,GAAGV;EAAI,CAAC,CAAM;EAC5CnB,UAAU,CAACe,GAAG,CAACR,IAAI,EAAE;IAAEa,GAAG;IAAEQ;EAAM,CAAC,CAAC;EAEpC,OAAOA,KAAK;AACb","ignoreList":[]}
1
+ {"version":3,"names":["styleCache","Map","GlobalObjectId","ObjectIds","WeakMap","hashString","str","hash","i","length","char","charCodeAt","valueKey","value","has","Number","MAX_SAFE_INTEGER","set","get","String","memoizeStyle","obj","key","Object","entries","map","k","v","join","cached","style","freeze"],"sourceRoot":"../../../src","sources":["utils/memoize-styles.ts"],"mappings":";;AAAA;;AAGA;;AAQA;AACA,MAAMA,UAAU,GAAG,IAAIC,GAAG,CAAqB,CAAC;AAEhD,IAAIC,cAAc,GAAG,CAAC,CAAC,CAAC;AACxB,MAAMC,SAAS,GAAG,IAAIC,OAAO,CAAiB,CAAC;;AAE/C;AACA;AACA;AACA,SAASC,UAAUA,CAACC,GAAW,EAAU;EACxC,IAAIC,IAAI,GAAG,CAAC;EACZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,GAAG,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;IACpC,MAAME,IAAI,GAAGJ,GAAG,CAACK,UAAU,CAACH,CAAC,CAAC;IAC9BD,IAAI,GAAG,CAACA,IAAI,IAAI,CAAC,IAAIA,IAAI,GAAGG,IAAI;IAChCH,IAAI,GAAGA,IAAI,GAAGA,IAAI,CAAC,CAAC;EACrB;EACA,OAAOA,IAAI,KAAK,CAAC,CAAC,CAAC;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASK,QAAQA,CAACC,KAAc,EAAU;EACzC,IAAIA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACvC,IAAI,CAACV,SAAS,CAACW,GAAG,CAACD,KAAe,CAAC,EAAE;MACpCX,cAAc,GAAG,CAACA,cAAc,GAAG,CAAC,IAAIa,MAAM,CAACC,gBAAgB;MAC/Db,SAAS,CAACc,GAAG,CAACJ,KAAK,EAAYX,cAAc,CAAC;MAC9C,OAAO,OAAOA,cAAc,EAAE;IAC/B;IACA,OAAO,OAAOC,SAAS,CAACe,GAAG,CAACL,KAAe,CAAC,EAAE;EAC/C;EACA,OAAOM,MAAM,CAACN,KAAK,CAAC;AACrB;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASO,YAAYA,CAAsBC,GAAM,EAAK;EAC5D;EACA,MAAMC,GAAG,GAAGC,MAAM,CAACC,OAAO,CAACH,GAAG,CAAC,CAC7BI,GAAG,CAAC,CAAC,CAACC,CAAC,EAAEC,CAAC,CAAC,KAAK,GAAGD,CAAC,IAAId,QAAQ,CAACe,CAAC,CAAC,EAAE,CAAC,CACtCC,IAAI,CAAC,GAAG,CAAC;;EAEX;EACA,MAAMrB,IAAI,GAAGF,UAAU,CAACiB,GAAG,CAAC;EAC5B,MAAMO,MAAM,GAAG7B,UAAU,CAACkB,GAAG,CAACX,IAAI,CAAC;;EAEnC;EACA,IAAIsB,MAAM,IAAIA,MAAM,CAACP,GAAG,KAAKA,GAAG,EAAE;IACjC,OAAOO,MAAM,CAACC,KAAK;EACpB;;EAEA;EACA,MAAMA,KAAK,GAAGP,MAAM,CAACQ,MAAM,CAAC;IAAE,GAAGV;EAAI,CAAC,CAAM;EAC5CrB,UAAU,CAACiB,GAAG,CAACV,IAAI,EAAE;IAAEe,GAAG;IAAEQ;EAAM,CAAC,CAAC;EAEpC,OAAOA,KAAK;AACb","ignoreList":[]}
@@ -36,9 +36,10 @@ export declare function useForm<T>(values: Values<T>, config?: FormConfig<T>): {
36
36
  resetValidation: () => void;
37
37
  resetInitialValues: () => void;
38
38
  };
39
+ declare function doesValueExist<T>(value: T): value is Exclude<T, null | undefined>;
39
40
  /** Helper hook to validate form state outside of the scope of useForm. */
40
41
  export declare function useFormUtils<T>(config?: FormConfig<T>): {
41
- doesValueExist: (value: T[keyof T]) => value is Exclude<T[keyof T], null | undefined>;
42
+ doesValueExist: typeof doesValueExist;
42
43
  validateByRule: <K extends keyof T>(key: K, value: T[K], state: Values<T>) => boolean | undefined;
43
44
  isOptional: (key: keyof T) => boolean;
44
45
  fieldValidation: (key: keyof T, value: T[keyof T], state: Values<T>) => boolean | undefined;
@@ -47,4 +48,5 @@ export declare function useFormUtils<T>(config?: FormConfig<T>): {
47
48
  validation: Validation<T>;
48
49
  };
49
50
  };
51
+ export {};
50
52
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/skeleform/src/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO;CAAE,CAAC;AAClE,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;KACrB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAChB,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EACX,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,OAAO,KACb,OAAO,GAAG,SAAS;CACxB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI;KACtB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC3B,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1B,2UAA2U;IAC3U,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;CACjB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;;;aA2BnD,CAAC,SAAS,MAAM,CAAC,OAC3B,CAAC,SACC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBACF,OAAO;eASP,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC;;;;;;;;EAgF3C;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;4BAE7C,CAAC,CAAC,MAAM,CAAC,CAAC,KACf,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;qBA2B/C,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC;sBANnD,MAAM,CAAC;2BAiBgB,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC;6BAgB1C,MAAM,CAAC,CAAC,CAAC;;;;EAuBzC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/skeleform/src/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO;CAAE,CAAC;AAClE,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;KACrB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAChB,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EACX,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,OAAO,KACb,OAAO,GAAG,SAAS;CACxB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI;KACtB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC3B,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1B,2UAA2U;IAC3U,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;CACjB,CAAC;AAsBF;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;;;aA2BnD,CAAC,SAAS,MAAM,CAAC,OAC3B,CAAC,SACC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBACF,OAAO;eAWP,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC;;;;;;;;EAgF3C;AAED,iBAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,CAkB1E;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;;qBAQnD,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC;sBANnD,MAAM,CAAC;2BAkBP,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC;6BAmB1C,MAAM,CAAC,CAAC,CAAC;;;;EAyBlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"memoize-styles.d.ts","sourceRoot":"","sources":["../../../../src/utils/memoize-styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA6C9C;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAoB3D"}
1
+ {"version":3,"file":"memoize-styles.d.ts","sourceRoot":"","sources":["../../../../src/utils/memoize-styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA8C9C;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAoB3D"}
@@ -36,9 +36,10 @@ export declare function useForm<T>(values: Values<T>, config?: FormConfig<T>): {
36
36
  resetValidation: () => void;
37
37
  resetInitialValues: () => void;
38
38
  };
39
+ declare function doesValueExist<T>(value: T): value is Exclude<T, null | undefined>;
39
40
  /** Helper hook to validate form state outside of the scope of useForm. */
40
41
  export declare function useFormUtils<T>(config?: FormConfig<T>): {
41
- doesValueExist: (value: T[keyof T]) => value is Exclude<T[keyof T], null | undefined>;
42
+ doesValueExist: typeof doesValueExist;
42
43
  validateByRule: <K extends keyof T>(key: K, value: T[K], state: Values<T>) => boolean | undefined;
43
44
  isOptional: (key: keyof T) => boolean;
44
45
  fieldValidation: (key: keyof T, value: T[keyof T], state: Values<T>) => boolean | undefined;
@@ -47,4 +48,5 @@ export declare function useFormUtils<T>(config?: FormConfig<T>): {
47
48
  validation: Validation<T>;
48
49
  };
49
50
  };
51
+ export {};
50
52
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/skeleform/src/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO;CAAE,CAAC;AAClE,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;KACrB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAChB,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EACX,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,OAAO,KACb,OAAO,GAAG,SAAS;CACxB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI;KACtB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC3B,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1B,2UAA2U;IAC3U,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;CACjB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;;;aA2BnD,CAAC,SAAS,MAAM,CAAC,OAC3B,CAAC,SACC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBACF,OAAO;eASP,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC;;;;;;;;EAgF3C;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;4BAE7C,CAAC,CAAC,MAAM,CAAC,CAAC,KACf,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;qBA2B/C,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC;sBANnD,MAAM,CAAC;2BAiBgB,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC;6BAgB1C,MAAM,CAAC,CAAC,CAAC;;;;EAuBzC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/skeleform/src/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO;CAAE,CAAC;AAClE,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;KACrB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAChB,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EACX,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,OAAO,KACb,OAAO,GAAG,SAAS;CACxB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI;KACtB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC3B,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1B,2UAA2U;IAC3U,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;CACjB,CAAC;AAsBF;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;;;aA2BnD,CAAC,SAAS,MAAM,CAAC,OAC3B,CAAC,SACC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBACF,OAAO;eAWP,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC;;;;;;;;EAgF3C;AAED,iBAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,CAkB1E;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;;qBAQnD,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC;sBANnD,MAAM,CAAC;2BAkBP,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC;6BAmB1C,MAAM,CAAC,CAAC,CAAC;;;;EAyBlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"memoize-styles.d.ts","sourceRoot":"","sources":["../../../../src/utils/memoize-styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA6C9C;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAoB3D"}
1
+ {"version":3,"file":"memoize-styles.d.ts","sourceRoot":"","sources":["../../../../src/utils/memoize-styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA8C9C;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAoB3D"}
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "Luka Buljan <luka@prototyp.digital>",
7
7
  "Vlatko Vlahek <vlatko@prototyp.digital>"
8
8
  ],
9
- "version": "1.3.0-beta1",
9
+ "version": "1.3.0-beta2",
10
10
  "license": "MIT",
11
11
  "main": "./lib/commonjs/index.js",
12
12
  "module": "./lib/module/index.js",