feature-form 0.0.38 → 0.0.40

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 (59) hide show
  1. package/dist/cjs/create-form.js +1 -234
  2. package/dist/cjs/form-field/create-form-field-validation-context.js +1 -27
  3. package/dist/cjs/form-field/create-form-field.js +1 -108
  4. package/dist/cjs/form-field/create-status.js +1 -23
  5. package/dist/cjs/form-field/is-form-field-status.js +1 -7
  6. package/dist/cjs/form-field/is-form-field.js +1 -7
  7. package/dist/cjs/helper/from-validator.js +1 -23
  8. package/dist/cjs/helper/has-form-changed.js +1 -13
  9. package/dist/cjs/helper/reset-form-submitted.js +1 -12
  10. package/dist/cjs/index.js +1 -35
  11. package/dist/cjs/is-form-with-features.js +1 -7
  12. package/dist/cjs/types/form-field.js +1 -18
  13. package/dist/esm/create-form.js +1 -232
  14. package/dist/esm/form-field/create-form-field-validation-context.js +1 -25
  15. package/dist/esm/form-field/create-form-field.js +1 -106
  16. package/dist/esm/form-field/create-status.js +1 -21
  17. package/dist/esm/form-field/is-form-field-status.js +1 -5
  18. package/dist/esm/form-field/is-form-field.js +1 -5
  19. package/dist/esm/helper/from-validator.js +1 -21
  20. package/dist/esm/helper/has-form-changed.js +1 -11
  21. package/dist/esm/helper/reset-form-submitted.js +1 -10
  22. package/dist/esm/index.js +1 -11
  23. package/dist/esm/is-form-with-features.js +1 -5
  24. package/dist/esm/types/form-field.js +1 -15
  25. package/dist/types/create-form.d.ts +0 -1
  26. package/dist/types/form-field/create-form-field-validation-context.d.ts +0 -1
  27. package/dist/types/form-field/create-form-field.d.ts +0 -1
  28. package/dist/types/form-field/create-status.d.ts +0 -1
  29. package/dist/types/form-field/index.d.ts +0 -1
  30. package/dist/types/form-field/is-form-field-status.d.ts +0 -1
  31. package/dist/types/form-field/is-form-field.d.ts +0 -1
  32. package/dist/types/helper/from-validator.d.ts +0 -1
  33. package/dist/types/helper/has-form-changed.d.ts +0 -1
  34. package/dist/types/helper/index.d.ts +0 -1
  35. package/dist/types/helper/reset-form-submitted.d.ts +0 -1
  36. package/dist/types/index.d.ts +0 -1
  37. package/dist/types/is-form-with-features.d.ts +0 -1
  38. package/dist/types/types/features.d.ts +0 -1
  39. package/dist/types/types/form-field.d.ts +0 -1
  40. package/dist/types/types/form.d.ts +0 -1
  41. package/dist/types/types/index.d.ts +0 -1
  42. package/package.json +3 -3
  43. package/dist/types/create-form.d.ts.map +0 -1
  44. package/dist/types/form-field/create-form-field-validation-context.d.ts.map +0 -1
  45. package/dist/types/form-field/create-form-field.d.ts.map +0 -1
  46. package/dist/types/form-field/create-status.d.ts.map +0 -1
  47. package/dist/types/form-field/index.d.ts.map +0 -1
  48. package/dist/types/form-field/is-form-field-status.d.ts.map +0 -1
  49. package/dist/types/form-field/is-form-field.d.ts.map +0 -1
  50. package/dist/types/helper/from-validator.d.ts.map +0 -1
  51. package/dist/types/helper/has-form-changed.d.ts.map +0 -1
  52. package/dist/types/helper/index.d.ts.map +0 -1
  53. package/dist/types/helper/reset-form-submitted.d.ts.map +0 -1
  54. package/dist/types/index.d.ts.map +0 -1
  55. package/dist/types/is-form-with-features.d.ts.map +0 -1
  56. package/dist/types/types/features.d.ts.map +0 -1
  57. package/dist/types/types/form-field.d.ts.map +0 -1
  58. package/dist/types/types/form.d.ts.map +0 -1
  59. package/dist/types/types/index.d.ts.map +0 -1
@@ -1,234 +1 @@
1
- 'use strict';
2
-
3
- var utils = require('@blgc/utils');
4
- var featureState = require('feature-state');
5
- var createFormField = require('./form-field/create-form-field.js');
6
- var formField = require('./types/form-field.js');
7
-
8
- var __defProp = Object.defineProperty;
9
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
10
- var __hasOwnProp = Object.prototype.hasOwnProperty;
11
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
- var __spreadValues = (a, b) => {
14
- for (var prop in b || (b = {}))
15
- if (__hasOwnProp.call(b, prop))
16
- __defNormalProp(a, prop, b[prop]);
17
- if (__getOwnPropSymbols)
18
- for (var prop of __getOwnPropSymbols(b)) {
19
- if (__propIsEnum.call(b, prop))
20
- __defNormalProp(a, prop, b[prop]);
21
- }
22
- return a;
23
- };
24
- var __async = (__this, __arguments, generator) => {
25
- return new Promise((resolve, reject) => {
26
- var fulfilled = (value) => {
27
- try {
28
- step(generator.next(value));
29
- } catch (e) {
30
- reject(e);
31
- }
32
- };
33
- var rejected = (value) => {
34
- try {
35
- step(generator.throw(value));
36
- } catch (e) {
37
- reject(e);
38
- }
39
- };
40
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
41
- step((generator = generator.apply(__this, __arguments)).next());
42
- });
43
- };
44
- function createForm(config) {
45
- const {
46
- fields,
47
- collectErrorMode = "firstError",
48
- disabled = false,
49
- validateMode = utils.bitwiseFlag(formField.FormFieldValidateMode.OnSubmit),
50
- reValidateMode = utils.bitwiseFlag(formField.FormFieldReValidateMode.OnBlur),
51
- onValidSubmit,
52
- onInvalidSubmit,
53
- notifyOnStatusChange = true
54
- } = config;
55
- const form = {
56
- _features: [],
57
- _config: {
58
- collectErrorMode,
59
- disabled
60
- },
61
- _validSubmitCallbacks: onValidSubmit != null ? [onValidSubmit] : [],
62
- _invalidSubmitCallbacks: onInvalidSubmit != null ? [onInvalidSubmit] : [],
63
- fields: Object.fromEntries(
64
- Object.entries(fields).map(
65
- ([fieldKey, field]) => {
66
- var _a2, _b, _c, _d;
67
- return [
68
- fieldKey,
69
- createFormField.createFormField(field.defaultValue, {
70
- key: fieldKey,
71
- validator: field.validator,
72
- collectErrorMode: (_a2 = field.collectErrorMode) != null ? _a2 : collectErrorMode,
73
- validateMode: (_b = field.validateMode) != null ? _b : validateMode,
74
- reValidateMode: (_c = field.reValidateMode) != null ? _c : reValidateMode,
75
- editable: (_d = field.editable) != null ? _d : true,
76
- notifyOnStatusChange
77
- })
78
- ];
79
- }
80
- )
81
- ),
82
- isValid: featureState.createState(false),
83
- isValidating: featureState.createState(false),
84
- isSubmitted: featureState.createState(false),
85
- isSubmitting: featureState.createState(false),
86
- init() {
87
- for (const field of Object.values(this.fields)) {
88
- field.listen(
89
- (_0) => __async(this, [_0], function* ({ source }) {
90
- if (source === "set") {
91
- if (field.isSubmitted && field._config.reValidateMode.has(formField.FormFieldReValidateMode.OnChange) || !field.isSubmitted && field._config.validateMode.has(formField.FormFieldValidateMode.OnChange) || field._config.validateMode.has(formField.FormFieldValidateMode.OnTouched) && field.isTouched) {
92
- yield field.validate();
93
- }
94
- }
95
- }),
96
- { key: "form_validate" }
97
- );
98
- field.status.listen(
99
- () => __async(this, null, function* () {
100
- yield form._revalidate(true);
101
- }),
102
- { key: "form_revalidate" }
103
- );
104
- }
105
- delete this.init;
106
- return this;
107
- },
108
- _revalidate(cached = false) {
109
- return __async(this, null, function* () {
110
- const formFields = Object.values(this.fields);
111
- if (!cached) {
112
- this.isValidating.set(true);
113
- yield Promise.all(formFields.map((formField) => formField.validate()));
114
- this.isValidating.set(false);
115
- }
116
- this.isValid.set(formFields.every((formField) => formField.isValid()));
117
- return this.isValid.get();
118
- });
119
- },
120
- submit() {
121
- return __async(this, arguments, function* (options = {}) {
122
- const {
123
- context,
124
- assignToInitial = false,
125
- onInvalidSubmit: _onInvalidSubmit,
126
- onValidSubmit: _onValidSubmit,
127
- postSubmitCallback
128
- } = options;
129
- this.isSubmitting.set(true);
130
- const validationPromises = [];
131
- for (const formField$1 of Object.values(
132
- this.fields
133
- )) {
134
- formField$1.isSubmitting = true;
135
- if (formField$1.isSubmitted && formField$1._config.reValidateMode.has(formField.FormFieldReValidateMode.OnSubmit) || !formField$1.isSubmitted && formField$1._config.validateMode.has(formField.FormFieldValidateMode.OnSubmit)) {
136
- validationPromises.push(formField$1.validate());
137
- }
138
- }
139
- yield Promise.all(validationPromises);
140
- const data = this.getValidData();
141
- const submitCallbackPromises = [];
142
- if (data != null) {
143
- for (const callback of this._validSubmitCallbacks) {
144
- submitCallbackPromises.push(callback(data, context));
145
- }
146
- if (typeof _onValidSubmit === "function") {
147
- submitCallbackPromises.push(_onValidSubmit(data, context));
148
- }
149
- } else {
150
- const errors = this.getErrors();
151
- for (const callback of this._invalidSubmitCallbacks) {
152
- submitCallbackPromises.push(callback(errors, context));
153
- }
154
- if (typeof _onInvalidSubmit === "function") {
155
- submitCallbackPromises.push(_onInvalidSubmit(errors, context));
156
- }
157
- }
158
- let submitCallbackData = null;
159
- if (postSubmitCallback != null) {
160
- submitCallbackData = (yield Promise.all(submitCallbackPromises)).reduce((acc, result) => {
161
- if (result != null && typeof result === "object") {
162
- return __spreadValues(__spreadValues({}, acc), result);
163
- }
164
- return acc;
165
- }, {});
166
- } else {
167
- yield Promise.all(submitCallbackPromises);
168
- }
169
- for (const [fieldKey, formField] of Object.entries(this.fields)) {
170
- if (data != null && Object.prototype.hasOwnProperty.call(data, fieldKey)) {
171
- if (assignToInitial) {
172
- formField._intialValue = utils.deepCopy(data[fieldKey]);
173
- }
174
- }
175
- formField.isSubmitted = true;
176
- formField.isSubmitting = false;
177
- }
178
- this.isSubmitted.set(true);
179
- this.isSubmitting.set(false);
180
- postSubmitCallback == null ? void 0 : postSubmitCallback(this, submitCallbackData != null ? submitCallbackData : {});
181
- return this.isValid.get();
182
- });
183
- },
184
- validate() {
185
- return __async(this, null, function* () {
186
- return this._revalidate(false);
187
- });
188
- },
189
- getField(fieldKey) {
190
- return this.fields[fieldKey];
191
- },
192
- getValidData() {
193
- if (!this.isValid.get()) {
194
- return null;
195
- }
196
- const preparedData = {};
197
- for (const [fieldKey, formField] of Object.entries(this.fields)) {
198
- preparedData[fieldKey] = formField.get();
199
- }
200
- return preparedData;
201
- },
202
- getErrors() {
203
- const errors = {};
204
- for (const [fieldKey, formField] of Object.entries(this.fields)) {
205
- switch (formField.status._v.type) {
206
- case "INVALID":
207
- errors[fieldKey] = formField.status._v.errors;
208
- break;
209
- case "UNVALIDATED":
210
- errors[fieldKey] = [
211
- {
212
- code: "unvalidated",
213
- message: `${fieldKey.toString()} was not yet validated!`,
214
- path: fieldKey
215
- }
216
- ];
217
- break;
218
- }
219
- }
220
- return errors;
221
- },
222
- reset() {
223
- for (const formField of Object.values(
224
- this.fields
225
- )) {
226
- formField.reset();
227
- }
228
- this.isSubmitted.set(false);
229
- }
230
- };
231
- return form.init();
232
- }
233
-
234
- exports.createForm = createForm;
1
+ "use strict";var _=require("@blgc/utils"),g=require("feature-state"),P=require("./form-field/create-form-field.js"),p=require("./types/form-field.js"),k=Object.defineProperty,j=Object.getOwnPropertySymbols,C=Object.prototype.hasOwnProperty,I=Object.prototype.propertyIsEnumerable,E=(s,l,i)=>l in s?k(s,l,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[l]=i,w=(s,l)=>{for(var i in l||(l={}))C.call(l,i)&&E(s,i,l[i]);if(j)for(var i of j(l))I.call(l,i)&&E(s,i,l[i]);return s},y=(s,l,i)=>new Promise((V,v)=>{var O=o=>{try{u(i.next(o))}catch(d){v(d)}},S=o=>{try{u(i.throw(o))}catch(d){v(d)}},u=o=>o.done?V(o.value):Promise.resolve(o.value).then(O,S);u((i=i.apply(s,l)).next())});function D(s){const{fields:l,collectErrorMode:i="firstError",disabled:V=!1,validateMode:v=_.bitwiseFlag(p.FormFieldValidateMode.OnSubmit),reValidateMode:O=_.bitwiseFlag(p.FormFieldReValidateMode.OnBlur),onValidSubmit:S,onInvalidSubmit:u,notifyOnStatusChange:o=!0}=s,d={_features:[],_config:{collectErrorMode:i,disabled:V},_validSubmitCallbacks:S!=null?[S]:[],_invalidSubmitCallbacks:u!=null?[u]:[],fields:Object.fromEntries(Object.entries(l).map(([t,e])=>{var r,m,h,c;return[t,P.createFormField(e.defaultValue,{key:t,validator:e.validator,collectErrorMode:(r=e.collectErrorMode)!=null?r:i,validateMode:(m=e.validateMode)!=null?m:v,reValidateMode:(h=e.reValidateMode)!=null?h:O,editable:(c=e.editable)!=null?c:!0,notifyOnStatusChange:o})]})),isValid:g.createState(!1),isValidating:g.createState(!1),isSubmitted:g.createState(!1),isSubmitting:g.createState(!1),init(){for(const t of Object.values(this.fields))t.status.listen(()=>y(this,null,function*(){yield d._revalidate(!0)}),{key:"form_revalidate"});return delete this.init,this},_revalidate(t=!1){return y(this,null,function*(){const e=Object.values(this.fields);return t||(this.isValidating.set(!0),yield Promise.all(e.map(r=>r.validate())),this.isValidating.set(!1)),this.isValid.set(e.every(r=>r.isValid())),this.isValid.get()})},submit(){return y(this,arguments,function*(t={}){const{context:e,assignToInitial:r=!1,onInvalidSubmit:m,onValidSubmit:h,postSubmitCallback:c}=t;this.isSubmitting.set(!0);const M=[];for(const a of Object.values(this.fields))a.isSubmitting=!0,(a.isSubmitted&&a._config.reValidateMode.has(p.FormFieldReValidateMode.OnSubmit)||!a.isSubmitted&&a._config.validateMode.has(p.FormFieldValidateMode.OnSubmit))&&M.push(a.validate());yield Promise.all(M),this._revalidate(!0);const f=this.getValidData(),b=[];if(f!=null){for(const a of this._validSubmitCallbacks)b.push(a(f,e));typeof h=="function"&&b.push(h(f,e))}else{const a=this.getErrors();for(const n of this._invalidSubmitCallbacks)b.push(n(a,e));typeof m=="function"&&b.push(m(a,e))}let F=null;c!=null?F=(yield Promise.all(b)).reduce((a,n)=>n!=null&&typeof n=="object"?w(w({},a),n):a,{}):yield Promise.all(b);for(const[a,n]of Object.entries(this.fields))f!=null&&Object.prototype.hasOwnProperty.call(f,a)&&r&&(n._intialValue=_.deepCopy(f[a])),n.isSubmitted=!0,n.isSubmitting=!1;return this.isSubmitted.set(!0),this.isSubmitting.set(!1),c==null||c(this,F!=null?F:{}),this.isValid.get()})},validate(){return y(this,null,function*(){return this._revalidate(!1)})},getField(t){return this.fields[t]},getValidData(){if(!this.isValid.get())return null;const t={};for(const[e,r]of Object.entries(this.fields))t[e]=r.get();return t},getErrors(){const t={};for(const[e,r]of Object.entries(this.fields))switch(r.status._v.type){case"INVALID":t[e]=r.status._v.errors;break;case"UNVALIDATED":t[e]=[{code:"unvalidated",message:`${e.toString()} was not yet validated!`,path:e}];break}return t},reset(){for(const t of Object.values(this.fields))t.reset();this.isSubmitted.set(!1),this._revalidate(!0)}};return d.init()}exports.createForm=D;
@@ -1,27 +1 @@
1
- 'use strict';
2
-
3
- function createFormFieldValidationContext(formField) {
4
- return {
5
- config: {
6
- collectErrorMode: formField._config.collectErrorMode,
7
- name: formField.key
8
- },
9
- value: formField.get(),
10
- isValue(v) {
11
- return true;
12
- },
13
- hasError() {
14
- var _a;
15
- return ((_a = formField.status._nextValue) == null ? void 0 : _a.type) === "INVALID";
16
- },
17
- registerError(error) {
18
- formField.status.registerNextError({
19
- code: error.code,
20
- message: error.message,
21
- path: error.path
22
- });
23
- }
24
- };
25
- }
26
-
27
- exports.createFormFieldValidationContext = createFormFieldValidationContext;
1
+ "use strict";function t(r){return{config:{collectErrorMode:r._config.collectErrorMode,name:r.key},value:r.get(),isValue(e){return!0},hasError(){var e;return((e=r.status._nextValue)==null?void 0:e.type)==="INVALID"},registerError(e){r.status.registerNextError({code:e.code,message:e.message,path:e.path})}}}exports.createFormFieldValidationContext=t;
@@ -1,108 +1 @@
1
- 'use strict';
2
-
3
- var utils = require('@blgc/utils');
4
- var featureState = require('feature-state');
5
- var validationAdapter = require('validation-adapter');
6
- var formField = require('../types/form-field.js');
7
- var createFormFieldValidationContext = require('./create-form-field-validation-context.js');
8
- var createStatus = require('./create-status.js');
9
-
10
- var __async = (__this, __arguments, generator) => {
11
- return new Promise((resolve, reject) => {
12
- var fulfilled = (value) => {
13
- try {
14
- step(generator.next(value));
15
- } catch (e) {
16
- reject(e);
17
- }
18
- };
19
- var rejected = (value) => {
20
- try {
21
- step(generator.throw(value));
22
- } catch (e) {
23
- reject(e);
24
- }
25
- };
26
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
27
- step((generator = generator.apply(__this, __arguments)).next());
28
- });
29
- };
30
- function createFormField(initialValue, config) {
31
- const {
32
- key,
33
- validator = validationAdapter.createValidator([]),
34
- editable = true,
35
- reValidateMode = utils.bitwiseFlag(formField.FormFieldReValidateMode.OnBlur),
36
- validateMode = utils.bitwiseFlag(formField.FormFieldValidateMode.OnSubmit),
37
- collectErrorMode = "firstError",
38
- notifyOnStatusChange = true
39
- } = config;
40
- const baseState = featureState.createState(initialValue);
41
- const formFieldFeature = {
42
- _config: {
43
- editable,
44
- validateMode,
45
- reValidateMode,
46
- collectErrorMode
47
- },
48
- _intialValue: utils.deepCopy(baseState._v),
49
- _validator: validator,
50
- key,
51
- isTouched: false,
52
- isSubmitted: false,
53
- isSubmitting: false,
54
- isValidating: false,
55
- status: createStatus.createStatus({ type: "UNVALIDATED" }),
56
- validate() {
57
- return __async(this, null, function* () {
58
- const validationContext = createFormFieldValidationContext.createFormFieldValidationContext(this);
59
- this.isValidating = true;
60
- yield this._validator.validate(validationContext);
61
- this.isValidating = false;
62
- if (this.status._nextValue == null) {
63
- this.status.set({ type: "VALID" });
64
- } else {
65
- this.status.set(this.status._nextValue);
66
- }
67
- this.status._nextValue = void 0;
68
- return this.status.get().type === "VALID";
69
- });
70
- },
71
- isValid() {
72
- return this.status.get().type === "VALID";
73
- },
74
- blur() {
75
- if (this.isSubmitted && this._config.reValidateMode.has(formField.FormFieldReValidateMode.OnBlur) || !this.isSubmitted && (this._config.validateMode.has(formField.FormFieldValidateMode.OnBlur) || this._config.validateMode.has(formField.FormFieldValidateMode.OnTouched) && !this.isTouched)) {
76
- void this.validate();
77
- }
78
- this.isTouched = true;
79
- },
80
- reset() {
81
- this.set(this._intialValue, { listenerContext: { source: "form-field_reset" } });
82
- this.isTouched = false;
83
- this.isSubmitted = false;
84
- this.isSubmitting = false;
85
- this.status.set({ type: "UNVALIDATED" });
86
- }
87
- };
88
- const formField$1 = Object.assign(baseState, formFieldFeature, {
89
- init({ notifyOnStatusChange: notifyOnStatusChange2 }) {
90
- if (notifyOnStatusChange2) {
91
- this.status.listen(
92
- (data) => {
93
- baseState._notify({
94
- listenerContext: { source: "form-field_status-change", status: data.value }
95
- });
96
- },
97
- { key: "form-field_status-change" }
98
- );
99
- }
100
- delete this.init;
101
- return this;
102
- }
103
- });
104
- formField$1._features.push("form-field");
105
- return formField$1.init({ notifyOnStatusChange });
106
- }
107
-
108
- exports.createFormField = createFormField;
1
+ "use strict";var c=require("@blgc/utils"),F=require("feature-state"),g=require("validation-adapter"),t=require("../types/form-field.js"),_=require("./create-form-field-validation-context.js"),M=require("./create-status.js"),V=(r,d,a)=>new Promise((o,l)=>{var n=e=>{try{s(a.next(e))}catch(i){l(i)}},u=e=>{try{s(a.throw(e))}catch(i){l(i)}},s=e=>e.done?o(e.value):Promise.resolve(e.value).then(n,u);s((a=a.apply(r,d)).next())});function y(r,d){const{key:a,validator:o=g.createValidator([]),editable:l=!0,reValidateMode:n=c.bitwiseFlag(t.FormFieldReValidateMode.OnBlur),validateMode:u=c.bitwiseFlag(t.FormFieldValidateMode.OnSubmit),collectErrorMode:s="firstError",notifyOnStatusChange:e=!0}=d,i=F.createState(r),m={_config:{editable:l,validateMode:u,reValidateMode:n,collectErrorMode:s},_intialValue:c.deepCopy(i._v),_validator:o,key:a,isTouched:!1,isSubmitted:!1,isSubmitting:!1,isValidating:!1,status:M.createStatus({type:"UNVALIDATED"}),validate(){return V(this,null,function*(){const h=_.createFormFieldValidationContext(this);return this.isValidating=!0,yield this._validator.validate(h),this.isValidating=!1,this.status._nextValue==null?this.status.set({type:"VALID"}):this.status.set(this.status._nextValue),this.status._nextValue=void 0,this.status.get().type==="VALID"})},isValid(){return this.status.get().type==="VALID"},blur(){(this.isSubmitted&&this._config.reValidateMode.has(t.FormFieldReValidateMode.OnBlur)||!this.isSubmitted&&(this._config.validateMode.has(t.FormFieldValidateMode.OnBlur)||this._config.validateMode.has(t.FormFieldValidateMode.OnTouched)&&!this.isTouched))&&this.validate(),this.isTouched=!0},reset(){this.set(this._intialValue,{listenerContext:{source:"form-field_reset"}}),this.isTouched=!1,this.isSubmitted=!1,this.isSubmitting=!1,this.status.set({type:"UNVALIDATED"})}},f=Object.assign(i,m,{init({notifyOnStatusChange:h}){return h&&this.status.listen(v=>{i._notify({listenerContext:{source:"form-field_status-change",status:v.value}})},{key:"form-field_status-change"}),this.listen(()=>V(this,null,function*(){(this.isSubmitted&&this._config.reValidateMode.has(t.FormFieldReValidateMode.OnChange)||!this.isSubmitted&&this._config.validateMode.has(t.FormFieldValidateMode.OnChange)||this._config.validateMode.has(t.FormFieldValidateMode.OnTouched)&&this.isTouched)&&(yield this.validate())}),{key:"form-field_validate"}),delete this.init,this}});return f._features.push("form-field"),f.init({notifyOnStatusChange:e})}exports.createFormField=y;
@@ -1,23 +1 @@
1
- 'use strict';
2
-
3
- var featureState = require('feature-state');
4
-
5
- function createStatus(initialValue) {
6
- const baseState = featureState.createState(initialValue);
7
- const formFieldStatusFeature = {
8
- _nextValue: void 0,
9
- registerNextError(error) {
10
- var _a;
11
- if (((_a = this._nextValue) == null ? void 0 : _a.type) === "INVALID") {
12
- this._nextValue.errors.push(error);
13
- } else {
14
- this._nextValue = { type: "INVALID", errors: [error] };
15
- }
16
- }
17
- };
18
- const formFieldStatus = Object.assign(baseState, formFieldStatusFeature);
19
- formFieldStatus._features.push("form-field-status");
20
- return formFieldStatus;
21
- }
22
-
23
- exports.createStatus = createStatus;
1
+ "use strict";var u=require("feature-state");function i(s){const a=u.createState(s),t=Object.assign(a,{_nextValue:void 0,registerNextError(e){var r;((r=this._nextValue)==null?void 0:r.type)==="INVALID"?this._nextValue.errors.push(e):this._nextValue={type:"INVALID",errors:[e]}}});return t._features.push("form-field-status"),t}exports.createStatus=i;
@@ -1,7 +1 @@
1
- 'use strict';
2
-
3
- function isFormFieldStatus(value) {
4
- return typeof value === "object" && value != null && "_features" in value && Array.isArray(value._features) && value._features.includes("form-field-status");
5
- }
6
-
7
- exports.isFormFieldStatus = isFormFieldStatus;
1
+ "use strict";function r(e){return typeof e=="object"&&e!=null&&"_features"in e&&Array.isArray(e._features)&&e._features.includes("form-field-status")}exports.isFormFieldStatus=r;
@@ -1,7 +1 @@
1
- 'use strict';
2
-
3
- function isFormField(value) {
4
- return typeof value === "object" && value != null && "_features" in value && Array.isArray(value._features) && value._features.includes("form-field");
5
- }
6
-
7
- exports.isFormField = isFormField;
1
+ "use strict";function i(e){return typeof e=="object"&&e!=null&&"_features"in e&&Array.isArray(e._features)&&e._features.includes("form-field")}exports.isFormField=i;
@@ -1,23 +1 @@
1
- 'use strict';
2
-
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- function fromValidator(validator, config) {
20
- return __spreadValues({ validator }, config);
21
- }
22
-
23
- exports.fromValidator = fromValidator;
1
+ "use strict";var l=Object.defineProperty,a=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable,o=(e,r,t)=>r in e?l(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,u=(e,r)=>{for(var t in r||(r={}))i.call(r,t)&&o(e,t,r[t]);if(a)for(var t of a(r))n.call(r,t)&&o(e,t,r[t]);return e};function b(e,r){return u({validator:e},r)}exports.fromValidator=b;
@@ -1,13 +1 @@
1
- 'use strict';
2
-
3
- function hasFormChanged(form) {
4
- var _a, _b;
5
- for (const key in form.fields) {
6
- if (((_a = form.fields[key]) == null ? void 0 : _a.get()) !== ((_b = form.fields[key]) == null ? void 0 : _b._intialValue)) {
7
- return true;
8
- }
9
- }
10
- return false;
11
- }
12
-
13
- exports.hasFormChanged = hasFormChanged;
1
+ "use strict";function l(n){var i,r;for(const e in n.fields)if(((i=n.fields[e])==null?void 0:i.get())!==((r=n.fields[e])==null?void 0:r._intialValue))return!0;return!1}exports.hasFormChanged=l;
@@ -1,12 +1 @@
1
- 'use strict';
2
-
3
- function resetFormSubmitted(form) {
4
- form.isSubmitted.set(false);
5
- form.isSubmitting.set(false);
6
- for (const formField of Object.values(form.fields)) {
7
- formField.isSubmitted = false;
8
- formField.isSubmitting = false;
9
- }
10
- }
11
-
12
- exports.resetFormSubmitted = resetFormSubmitted;
1
+ "use strict";function s(e){e.isSubmitted.set(!1),e.isSubmitting.set(!1);for(const t of Object.values(e.fields))t.isSubmitted=!1,t.isSubmitting=!1}exports.resetFormSubmitted=s;
package/dist/cjs/index.js CHANGED
@@ -1,35 +1 @@
1
- 'use strict';
2
-
3
- var utils = require('@blgc/utils');
4
- var createForm = require('./create-form.js');
5
- var createFormField = require('./form-field/create-form-field.js');
6
- var createStatus = require('./form-field/create-status.js');
7
- var isFormField = require('./form-field/is-form-field.js');
8
- var isFormFieldStatus = require('./form-field/is-form-field-status.js');
9
- var fromValidator = require('./helper/from-validator.js');
10
- var hasFormChanged = require('./helper/has-form-changed.js');
11
- var resetFormSubmitted = require('./helper/reset-form-submitted.js');
12
- var isFormWithFeatures = require('./is-form-with-features.js');
13
- var formField = require('./types/form-field.js');
14
-
15
-
16
-
17
- Object.defineProperty(exports, "BitwiseFlag", {
18
- enumerable: true,
19
- get: function () { return utils.BitwiseFlag; }
20
- });
21
- Object.defineProperty(exports, "bitwiseFlag", {
22
- enumerable: true,
23
- get: function () { return utils.bitwiseFlag; }
24
- });
25
- exports.createForm = createForm.createForm;
26
- exports.createFormField = createFormField.createFormField;
27
- exports.createStatus = createStatus.createStatus;
28
- exports.isFormField = isFormField.isFormField;
29
- exports.isFormFieldStatus = isFormFieldStatus.isFormFieldStatus;
30
- exports.fromValidator = fromValidator.fromValidator;
31
- exports.hasFormChanged = hasFormChanged.hasFormChanged;
32
- exports.resetFormSubmitted = resetFormSubmitted.resetFormSubmitted;
33
- exports.isFormWithFeatures = isFormWithFeatures.isFormWithFeatures;
34
- exports.FormFieldReValidateMode = formField.FormFieldReValidateMode;
35
- exports.FormFieldValidateMode = formField.FormFieldValidateMode;
1
+ "use strict";var e=require("@blgc/utils"),t=require("./create-form.js"),i=require("./form-field/create-form-field.js"),a=require("./form-field/create-status.js"),F=require("./form-field/is-form-field.js"),o=require("./form-field/is-form-field-status.js"),m=require("./helper/from-validator.js"),d=require("./helper/has-form-changed.js"),u=require("./helper/reset-form-submitted.js"),s=require("./is-form-with-features.js"),r=require("./types/form-field.js");Object.defineProperty(exports,"BitwiseFlag",{enumerable:!0,get:function(){return e.BitwiseFlag}}),Object.defineProperty(exports,"bitwiseFlag",{enumerable:!0,get:function(){return e.bitwiseFlag}}),exports.createForm=t.createForm,exports.createFormField=i.createFormField,exports.createStatus=a.createStatus,exports.isFormField=F.isFormField,exports.isFormFieldStatus=o.isFormFieldStatus,exports.fromValidator=m.fromValidator,exports.hasFormChanged=d.hasFormChanged,exports.resetFormSubmitted=u.resetFormSubmitted,exports.isFormWithFeatures=s.isFormWithFeatures,exports.FormFieldReValidateMode=r.FormFieldReValidateMode,exports.FormFieldValidateMode=r.FormFieldValidateMode;
@@ -1,7 +1 @@
1
- 'use strict';
2
-
3
- function isFormWithFeatures(value, features) {
4
- return typeof value === "object" && value != null && "_features" in value && Array.isArray(value._features) && features.every((feature) => value._features.includes(feature));
5
- }
6
-
7
- exports.isFormWithFeatures = isFormWithFeatures;
1
+ "use strict";function s(r,e){return typeof r=="object"&&r!=null&&"_features"in r&&Array.isArray(r._features)&&e.every(t=>r._features.includes(t))}exports.isFormWithFeatures=s;
@@ -1,18 +1 @@
1
- 'use strict';
2
-
3
- var FormFieldValidateMode = /* @__PURE__ */ ((FormFieldValidateMode2) => {
4
- FormFieldValidateMode2[FormFieldValidateMode2["OnBlur"] = 1] = "OnBlur";
5
- FormFieldValidateMode2[FormFieldValidateMode2["OnChange"] = 2] = "OnChange";
6
- FormFieldValidateMode2[FormFieldValidateMode2["OnSubmit"] = 4] = "OnSubmit";
7
- FormFieldValidateMode2[FormFieldValidateMode2["OnTouched"] = 8] = "OnTouched";
8
- return FormFieldValidateMode2;
9
- })(FormFieldValidateMode || {});
10
- var FormFieldReValidateMode = /* @__PURE__ */ ((FormFieldReValidateMode2) => {
11
- FormFieldReValidateMode2[FormFieldReValidateMode2["OnBlur"] = 1] = "OnBlur";
12
- FormFieldReValidateMode2[FormFieldReValidateMode2["OnChange"] = 2] = "OnChange";
13
- FormFieldReValidateMode2[FormFieldReValidateMode2["OnSubmit"] = 4] = "OnSubmit";
14
- return FormFieldReValidateMode2;
15
- })(FormFieldReValidateMode || {});
16
-
17
- exports.FormFieldReValidateMode = FormFieldReValidateMode;
18
- exports.FormFieldValidateMode = FormFieldValidateMode;
1
+ "use strict";var e=(n=>(n[n.OnBlur=1]="OnBlur",n[n.OnChange=2]="OnChange",n[n.OnSubmit=4]="OnSubmit",n[n.OnTouched=8]="OnTouched",n))(e||{}),d=(n=>(n[n.OnBlur=1]="OnBlur",n[n.OnChange=2]="OnChange",n[n.OnSubmit=4]="OnSubmit",n))(d||{});exports.FormFieldReValidateMode=d,exports.FormFieldValidateMode=e;