@progress/kendo-vue-form 5.3.0-dev.202410141143 → 5.3.0-develop.2
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.
- package/Field.js +8 -0
- package/Field.mjs +124 -0
- package/FieldArray.js +8 -0
- package/FieldArray.mjs +102 -0
- package/FieldWrapper.js +8 -0
- package/FieldWrapper.mjs +37 -0
- package/Form.js +8 -0
- package/Form.mjs +294 -0
- package/FormElement.js +8 -0
- package/FormElement.mjs +58 -0
- package/README.md +24 -25
- package/dist/cdn/js/kendo-vue-form.js +8 -1
- package/index.d.mts +921 -0
- package/index.d.ts +921 -0
- package/index.js +8 -0
- package/index.mjs +19 -0
- package/package-metadata.js +8 -0
- package/package-metadata.mjs +18 -0
- package/package.json +21 -48
- package/dist/es/Field.d.ts +0 -44
- package/dist/es/Field.js +0 -160
- package/dist/es/FieldArray.d.ts +0 -50
- package/dist/es/FieldArray.js +0 -128
- package/dist/es/FieldWrapper.d.ts +0 -61
- package/dist/es/FieldWrapper.js +0 -46
- package/dist/es/Form.d.ts +0 -62
- package/dist/es/Form.js +0 -424
- package/dist/es/FormContext.d.ts +0 -45
- package/dist/es/FormContext.js +0 -1
- package/dist/es/FormElement.d.ts +0 -75
- package/dist/es/FormElement.js +0 -70
- package/dist/es/additionalTypes.ts +0 -21
- package/dist/es/interfaces/FieldArrayProps.d.ts +0 -24
- package/dist/es/interfaces/FieldArrayProps.js +0 -1
- package/dist/es/interfaces/FieldArrayRenderProps.d.ts +0 -85
- package/dist/es/interfaces/FieldArrayRenderProps.js +0 -1
- package/dist/es/interfaces/FieldInjectedProps.d.ts +0 -156
- package/dist/es/interfaces/FieldInjectedProps.js +0 -1
- package/dist/es/interfaces/FieldProps.d.ts +0 -36
- package/dist/es/interfaces/FieldProps.js +0 -1
- package/dist/es/interfaces/FieldRenderProps.d.ts +0 -61
- package/dist/es/interfaces/FieldRenderProps.js +0 -1
- package/dist/es/interfaces/FieldValidator.d.ts +0 -14
- package/dist/es/interfaces/FieldValidator.js +0 -1
- package/dist/es/interfaces/FormProps.d.ts +0 -48
- package/dist/es/interfaces/FormProps.js +0 -1
- package/dist/es/interfaces/FormRenderProps.d.ts +0 -75
- package/dist/es/interfaces/FormRenderProps.js +0 -1
- package/dist/es/interfaces/FormSubmitClickEvent.d.ts +0 -23
- package/dist/es/interfaces/FormSubmitClickEvent.js +0 -1
- package/dist/es/interfaces/FormValidator.d.ts +0 -11
- package/dist/es/interfaces/FormValidator.js +0 -1
- package/dist/es/interfaces/KeyValue.d.ts +0 -6
- package/dist/es/interfaces/KeyValue.js +0 -1
- package/dist/es/main.d.ts +0 -17
- package/dist/es/main.js +0 -6
- package/dist/es/package-metadata.d.ts +0 -5
- package/dist/es/package-metadata.js +0 -11
- package/dist/esm/Field.d.ts +0 -44
- package/dist/esm/Field.js +0 -160
- package/dist/esm/FieldArray.d.ts +0 -50
- package/dist/esm/FieldArray.js +0 -128
- package/dist/esm/FieldWrapper.d.ts +0 -61
- package/dist/esm/FieldWrapper.js +0 -46
- package/dist/esm/Form.d.ts +0 -62
- package/dist/esm/Form.js +0 -424
- package/dist/esm/FormContext.d.ts +0 -45
- package/dist/esm/FormContext.js +0 -1
- package/dist/esm/FormElement.d.ts +0 -75
- package/dist/esm/FormElement.js +0 -70
- package/dist/esm/additionalTypes.ts +0 -21
- package/dist/esm/interfaces/FieldArrayProps.d.ts +0 -24
- package/dist/esm/interfaces/FieldArrayProps.js +0 -1
- package/dist/esm/interfaces/FieldArrayRenderProps.d.ts +0 -85
- package/dist/esm/interfaces/FieldArrayRenderProps.js +0 -1
- package/dist/esm/interfaces/FieldInjectedProps.d.ts +0 -156
- package/dist/esm/interfaces/FieldInjectedProps.js +0 -1
- package/dist/esm/interfaces/FieldProps.d.ts +0 -36
- package/dist/esm/interfaces/FieldProps.js +0 -1
- package/dist/esm/interfaces/FieldRenderProps.d.ts +0 -61
- package/dist/esm/interfaces/FieldRenderProps.js +0 -1
- package/dist/esm/interfaces/FieldValidator.d.ts +0 -14
- package/dist/esm/interfaces/FieldValidator.js +0 -1
- package/dist/esm/interfaces/FormProps.d.ts +0 -48
- package/dist/esm/interfaces/FormProps.js +0 -1
- package/dist/esm/interfaces/FormRenderProps.d.ts +0 -75
- package/dist/esm/interfaces/FormRenderProps.js +0 -1
- package/dist/esm/interfaces/FormSubmitClickEvent.d.ts +0 -23
- package/dist/esm/interfaces/FormSubmitClickEvent.js +0 -1
- package/dist/esm/interfaces/FormValidator.d.ts +0 -11
- package/dist/esm/interfaces/FormValidator.js +0 -1
- package/dist/esm/interfaces/KeyValue.d.ts +0 -6
- package/dist/esm/interfaces/KeyValue.js +0 -1
- package/dist/esm/main.d.ts +0 -17
- package/dist/esm/main.js +0 -6
- package/dist/esm/package-metadata.d.ts +0 -5
- package/dist/esm/package-metadata.js +0 -11
- package/dist/esm/package.json +0 -3
- package/dist/npm/Field.d.ts +0 -44
- package/dist/npm/Field.js +0 -167
- package/dist/npm/FieldArray.d.ts +0 -50
- package/dist/npm/FieldArray.js +0 -135
- package/dist/npm/FieldWrapper.d.ts +0 -61
- package/dist/npm/FieldWrapper.js +0 -53
- package/dist/npm/Form.d.ts +0 -62
- package/dist/npm/Form.js +0 -431
- package/dist/npm/FormContext.d.ts +0 -45
- package/dist/npm/FormContext.js +0 -2
- package/dist/npm/FormElement.d.ts +0 -75
- package/dist/npm/FormElement.js +0 -77
- package/dist/npm/additionalTypes.ts +0 -21
- package/dist/npm/interfaces/FieldArrayProps.d.ts +0 -24
- package/dist/npm/interfaces/FieldArrayProps.js +0 -2
- package/dist/npm/interfaces/FieldArrayRenderProps.d.ts +0 -85
- package/dist/npm/interfaces/FieldArrayRenderProps.js +0 -2
- package/dist/npm/interfaces/FieldInjectedProps.d.ts +0 -156
- package/dist/npm/interfaces/FieldInjectedProps.js +0 -2
- package/dist/npm/interfaces/FieldProps.d.ts +0 -36
- package/dist/npm/interfaces/FieldProps.js +0 -2
- package/dist/npm/interfaces/FieldRenderProps.d.ts +0 -61
- package/dist/npm/interfaces/FieldRenderProps.js +0 -2
- package/dist/npm/interfaces/FieldValidator.d.ts +0 -14
- package/dist/npm/interfaces/FieldValidator.js +0 -2
- package/dist/npm/interfaces/FormProps.d.ts +0 -48
- package/dist/npm/interfaces/FormProps.js +0 -2
- package/dist/npm/interfaces/FormRenderProps.d.ts +0 -75
- package/dist/npm/interfaces/FormRenderProps.js +0 -2
- package/dist/npm/interfaces/FormSubmitClickEvent.d.ts +0 -23
- package/dist/npm/interfaces/FormSubmitClickEvent.js +0 -2
- package/dist/npm/interfaces/FormValidator.d.ts +0 -11
- package/dist/npm/interfaces/FormValidator.js +0 -2
- package/dist/npm/interfaces/KeyValue.d.ts +0 -6
- package/dist/npm/interfaces/KeyValue.js +0 -2
- package/dist/npm/main.d.ts +0 -17
- package/dist/npm/main.js +0 -18
- package/dist/npm/package-metadata.d.ts +0 -5
- package/dist/npm/package-metadata.js +0 -14
package/dist/esm/Form.js
DELETED
|
@@ -1,424 +0,0 @@
|
|
|
1
|
-
var __assign = this && this.__assign || function () {
|
|
2
|
-
__assign = Object.assign || function (t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) {
|
|
6
|
-
if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
|
|
14
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
15
|
-
if (ar || !(i in from)) {
|
|
16
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
17
|
-
ar[i] = from[i];
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
21
|
-
};
|
|
22
|
-
import { canUseDOM, clone, cloneObject, guid, validatePackage } from '@progress/kendo-vue-common';
|
|
23
|
-
import { packageMetadata } from './package-metadata.js';
|
|
24
|
-
// @ts-ignore
|
|
25
|
-
import * as Vue from 'vue';
|
|
26
|
-
var allVue = Vue;
|
|
27
|
-
var gh = allVue.h;
|
|
28
|
-
var isV3 = allVue.version && allVue.version[0] === '3';
|
|
29
|
-
import { getDefaultSlots } from '@progress/kendo-vue-common';
|
|
30
|
-
/**
|
|
31
|
-
* @hidden
|
|
32
|
-
*/
|
|
33
|
-
var FORCEUPDATE_ACCUMULATOR_TIMEOUT = 0;
|
|
34
|
-
/**
|
|
35
|
-
* @hidden
|
|
36
|
-
*/
|
|
37
|
-
var FormVue2 = {
|
|
38
|
-
name: 'KendoForm',
|
|
39
|
-
inheritAttrs: false,
|
|
40
|
-
props: {
|
|
41
|
-
renderForm: [Object, Function],
|
|
42
|
-
initialValues: Object,
|
|
43
|
-
validator: Function,
|
|
44
|
-
ignoreModified: Boolean
|
|
45
|
-
},
|
|
46
|
-
// @ts-ignore
|
|
47
|
-
emits: {
|
|
48
|
-
submitclick: null,
|
|
49
|
-
submit: null
|
|
50
|
-
},
|
|
51
|
-
created: function created() {
|
|
52
|
-
this._accumulatorTimeout = undefined;
|
|
53
|
-
validatePackage(packageMetadata);
|
|
54
|
-
this.form.values = clone(this.$props.initialValues);
|
|
55
|
-
},
|
|
56
|
-
mounted: function mounted() {
|
|
57
|
-
this.form.errors = this.getErrors();
|
|
58
|
-
this.form.allowSubmit = this.allowSubmit();
|
|
59
|
-
this.form.valid = this.isValid();
|
|
60
|
-
},
|
|
61
|
-
destroyed: !!isV3 ? undefined : function () {
|
|
62
|
-
this.onDestroy();
|
|
63
|
-
},
|
|
64
|
-
// @ts-ignore
|
|
65
|
-
unmounted: function unmounted() {
|
|
66
|
-
this.onDestroy();
|
|
67
|
-
},
|
|
68
|
-
data: function data() {
|
|
69
|
-
return {
|
|
70
|
-
validatorsByField: {},
|
|
71
|
-
fields: [],
|
|
72
|
-
unmounted: false,
|
|
73
|
-
form: {
|
|
74
|
-
id: this.id,
|
|
75
|
-
errors: {},
|
|
76
|
-
values: {},
|
|
77
|
-
modifiedByField: {},
|
|
78
|
-
touchedByField: {},
|
|
79
|
-
visitedByField: {},
|
|
80
|
-
valid: false,
|
|
81
|
-
modified: false,
|
|
82
|
-
touched: false,
|
|
83
|
-
visited: false,
|
|
84
|
-
submitted: false,
|
|
85
|
-
valueGetter: this.valueGetter,
|
|
86
|
-
allowSubmit: false,
|
|
87
|
-
validate: this.validate,
|
|
88
|
-
onChange: this.onChange,
|
|
89
|
-
onSubmit: this.onSubmit,
|
|
90
|
-
onFormReset: this.resetForm,
|
|
91
|
-
registerField: this.onFieldRegister,
|
|
92
|
-
onFocus: this.onFocus,
|
|
93
|
-
onBlur: this.onBlur,
|
|
94
|
-
onUnshift: this.onUnshift,
|
|
95
|
-
onPush: this.onPush,
|
|
96
|
-
onInsert: this.onInsert,
|
|
97
|
-
onPop: this.onPop,
|
|
98
|
-
onRemove: this.onRemove,
|
|
99
|
-
onReplace: this.onReplace,
|
|
100
|
-
onMove: this.onMove
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
},
|
|
104
|
-
provide: function provide() {
|
|
105
|
-
return {
|
|
106
|
-
kendoForm: this.$data.form
|
|
107
|
-
};
|
|
108
|
-
},
|
|
109
|
-
watch: {
|
|
110
|
-
'form.values': function formValues() {
|
|
111
|
-
this.form.errors = this.getErrors();
|
|
112
|
-
this.form.allowSubmit = this.allowSubmit();
|
|
113
|
-
this.form.valid = this.isValid();
|
|
114
|
-
},
|
|
115
|
-
'form.touchedByField': function formTouchedByField(newValue) {
|
|
116
|
-
this.form.touched = this.isFormTouched(newValue, this.fields);
|
|
117
|
-
this.form.allowSubmit = this.allowSubmit();
|
|
118
|
-
},
|
|
119
|
-
'form.modifiedByField': function formModifiedByField(newValue) {
|
|
120
|
-
this.form.modified = this.isFormModified(newValue, this.fields);
|
|
121
|
-
this.form.allowSubmit = this.allowSubmit();
|
|
122
|
-
},
|
|
123
|
-
'form.visitedByField': function formVisitedByField(newValue) {
|
|
124
|
-
this.form.visited = this.isFormVisited(newValue, this.fields);
|
|
125
|
-
}
|
|
126
|
-
},
|
|
127
|
-
methods: {
|
|
128
|
-
isValid: function isValid() {
|
|
129
|
-
return this.isFormValid(this.form.errors);
|
|
130
|
-
},
|
|
131
|
-
formErrors: function formErrors() {
|
|
132
|
-
if (this.$props.validator) {
|
|
133
|
-
return this.$props.validator(this.form.values, this.valueGetter);
|
|
134
|
-
}
|
|
135
|
-
},
|
|
136
|
-
getErrors: function getErrors() {
|
|
137
|
-
var _this = this;
|
|
138
|
-
var errors = {};
|
|
139
|
-
var validatorsByField = this.validatorsByField;
|
|
140
|
-
Object.keys(this.fields).forEach(function (fieldName) {
|
|
141
|
-
errors[fieldName] = '';
|
|
142
|
-
if (validatorsByField[fieldName]) {
|
|
143
|
-
var validators_1 = [];
|
|
144
|
-
validatorsByField[fieldName].forEach(function (validator) {
|
|
145
|
-
if (Array.isArray(validator)) {
|
|
146
|
-
validators_1.push.apply(validators_1, validator);
|
|
147
|
-
} else {
|
|
148
|
-
validators_1.push(validator);
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
// find first validation error
|
|
152
|
-
validators_1.find(function (validator) {
|
|
153
|
-
if (validator) {
|
|
154
|
-
var result = validator(_this.valueGetter(fieldName), _this.valueGetter, {
|
|
155
|
-
name: fieldName
|
|
156
|
-
});
|
|
157
|
-
if (result) {
|
|
158
|
-
errors[fieldName] = result;
|
|
159
|
-
return true;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
return false;
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
var formErrors = this.formErrors();
|
|
167
|
-
if (formErrors) {
|
|
168
|
-
cloneObject(this.formErrors(), errors);
|
|
169
|
-
}
|
|
170
|
-
return errors;
|
|
171
|
-
},
|
|
172
|
-
/**
|
|
173
|
-
* @hidden
|
|
174
|
-
*/
|
|
175
|
-
accumulatedForceUpdate: function accumulatedForceUpdate() {
|
|
176
|
-
var _this = this;
|
|
177
|
-
// IMPORTANT:
|
|
178
|
-
// Should only be used for updates not coming from editors as it
|
|
179
|
-
// will cause cursor jump as vue will reset the editor to old value
|
|
180
|
-
if (this._accumulatorTimeout) {
|
|
181
|
-
clearTimeout(this._accumulatorTimeout);
|
|
182
|
-
}
|
|
183
|
-
if (canUseDOM) {
|
|
184
|
-
this._accumulatorTimeout = window.setTimeout(function () {
|
|
185
|
-
_this._accumulatorTimeout = undefined;
|
|
186
|
-
}, FORCEUPDATE_ACCUMULATOR_TIMEOUT);
|
|
187
|
-
}
|
|
188
|
-
},
|
|
189
|
-
/**
|
|
190
|
-
* @hidden
|
|
191
|
-
*/
|
|
192
|
-
resetForm: function resetForm() {
|
|
193
|
-
this.form.values = clone(this.$props.initialValues);
|
|
194
|
-
this.id = guid();
|
|
195
|
-
this.form.touchedByField = {};
|
|
196
|
-
this.form.visitedByField = {};
|
|
197
|
-
this.form.modifiedByField = {};
|
|
198
|
-
// this.validatorsByField = {};
|
|
199
|
-
// this.fields = [];
|
|
200
|
-
this.form.submitted = false;
|
|
201
|
-
},
|
|
202
|
-
/**
|
|
203
|
-
* Method for resetting the form state outside the form component.
|
|
204
|
-
*
|
|
205
|
-
* > Use `onReset` only if you cannot achieve the desired behavior
|
|
206
|
-
* through the Field component or by FormRenderProps.
|
|
207
|
-
*/
|
|
208
|
-
onReset: function onReset() {
|
|
209
|
-
this.resetForm();
|
|
210
|
-
},
|
|
211
|
-
addField: function addField(field) {
|
|
212
|
-
this.fields[field] = true;
|
|
213
|
-
},
|
|
214
|
-
validate: function validate(fields) {
|
|
215
|
-
var touchedVisited = {};
|
|
216
|
-
var fieldsToValidate = fields || this.fields;
|
|
217
|
-
Object.keys(fieldsToValidate).forEach(function (fieldName) {
|
|
218
|
-
touchedVisited[fieldName] = true;
|
|
219
|
-
});
|
|
220
|
-
this.form.touchedByField = __assign({}, touchedVisited);
|
|
221
|
-
},
|
|
222
|
-
onSubmit: function onSubmit(event) {
|
|
223
|
-
var touchedVisited = {};
|
|
224
|
-
var fields = this.fields;
|
|
225
|
-
if (event) {
|
|
226
|
-
if (typeof event.preventDefault === 'function') {
|
|
227
|
-
event.preventDefault();
|
|
228
|
-
}
|
|
229
|
-
if (typeof event.stopPropagation === 'function') {
|
|
230
|
-
event.stopPropagation();
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
Object.keys(fields).forEach(function (fieldName) {
|
|
234
|
-
touchedVisited[fieldName] = true;
|
|
235
|
-
});
|
|
236
|
-
// show validations
|
|
237
|
-
this.form.visitedByField = __assign({}, touchedVisited);
|
|
238
|
-
this.form.touchedByField = __assign({}, touchedVisited);
|
|
239
|
-
var values = this.form.values;
|
|
240
|
-
var isValid = this.isValid();
|
|
241
|
-
var isModified = this.isFormModified(this.form.modifiedByField, fields);
|
|
242
|
-
this.$emit('submitclick', {
|
|
243
|
-
values: values,
|
|
244
|
-
isValid: isValid,
|
|
245
|
-
isModified: isModified,
|
|
246
|
-
event: event
|
|
247
|
-
});
|
|
248
|
-
if (isValid && (this.$props.ignoreModified || isModified)) {
|
|
249
|
-
this.form.submitted = true;
|
|
250
|
-
this.$emit('submit', values, event);
|
|
251
|
-
}
|
|
252
|
-
},
|
|
253
|
-
/**
|
|
254
|
-
* Method for emitting changes to a specific field outside the form component.
|
|
255
|
-
*
|
|
256
|
-
* > Use `onChange` only if you cannot achieve the desired behavior
|
|
257
|
-
* through the Field component by FormRenderProps.
|
|
258
|
-
*/
|
|
259
|
-
onChange: function onChange(name, options) {
|
|
260
|
-
var _a;
|
|
261
|
-
var value = options.value;
|
|
262
|
-
this.addField(name);
|
|
263
|
-
if (!this.form.modifiedByField[name]) {
|
|
264
|
-
this.form.modifiedByField = __assign(__assign({}, this.form.modifiedByField), (_a = {}, _a[name] = true, _a));
|
|
265
|
-
}
|
|
266
|
-
this.valueSetter(name, value);
|
|
267
|
-
},
|
|
268
|
-
onFocus: function onFocus(name) {
|
|
269
|
-
var _a;
|
|
270
|
-
if (this.form.visitedByField[name]) {
|
|
271
|
-
return;
|
|
272
|
-
}
|
|
273
|
-
this.form.visitedByField = __assign(__assign({}, this.form.visitedByField), (_a = {}, _a[name] = true, _a));
|
|
274
|
-
},
|
|
275
|
-
onBlur: function onBlur(name) {
|
|
276
|
-
var _a;
|
|
277
|
-
if (this.form.touchedByField[name]) {
|
|
278
|
-
return;
|
|
279
|
-
}
|
|
280
|
-
this.onFocus(name);
|
|
281
|
-
this.form.touchedByField = __assign(__assign({}, this.form.touchedByField), (_a = {}, _a[name] = true, _a));
|
|
282
|
-
},
|
|
283
|
-
onFieldRegister: function onFieldRegister(name, validator) {
|
|
284
|
-
var _a;
|
|
285
|
-
var _this = this;
|
|
286
|
-
this.addField(name);
|
|
287
|
-
// The sole reason for using class props over state - nextIndex, needed for destroying validators
|
|
288
|
-
var oldValidators = this.validatorsByField[name] || [];
|
|
289
|
-
var nextIndex = oldValidators.length;
|
|
290
|
-
this.validatorsByField = __assign(__assign({}, this.validatorsByField), (_a = {}, _a[name] = __spreadArray(__spreadArray([], oldValidators, true), [validator], false), _a));
|
|
291
|
-
this.accumulatedForceUpdate();
|
|
292
|
-
return function () {
|
|
293
|
-
var _a;
|
|
294
|
-
// onFieldUnregister:
|
|
295
|
-
if (_this._unmounted) {
|
|
296
|
-
return;
|
|
297
|
-
}
|
|
298
|
-
var newValidators = __spreadArray([], _this.validatorsByField[name] || [], true);
|
|
299
|
-
var validatorIsUnregistered = Boolean(newValidators[nextIndex]);
|
|
300
|
-
newValidators[nextIndex] = undefined;
|
|
301
|
-
_this.validatorsByField = __assign(__assign({}, _this.validatorsByField), (_a = {}, _a[name] = newValidators, _a));
|
|
302
|
-
if (validatorIsUnregistered) {
|
|
303
|
-
_this.accumulatedForceUpdate();
|
|
304
|
-
}
|
|
305
|
-
};
|
|
306
|
-
},
|
|
307
|
-
isFormValid: function isFormValid(errors) {
|
|
308
|
-
return !Object.keys(errors).some(function (fieldName) {
|
|
309
|
-
return Boolean(errors[fieldName]);
|
|
310
|
-
});
|
|
311
|
-
},
|
|
312
|
-
isFormModified: function isFormModified(modified, fields) {
|
|
313
|
-
return Object.keys(fields).some(function (fieldName) {
|
|
314
|
-
return modified[fieldName];
|
|
315
|
-
});
|
|
316
|
-
},
|
|
317
|
-
isFormHasNotTouched: function isFormHasNotTouched(touched, fields) {
|
|
318
|
-
return Object.keys(fields).some(function (fieldName) {
|
|
319
|
-
return !touched[fieldName];
|
|
320
|
-
});
|
|
321
|
-
},
|
|
322
|
-
isFormTouched: function isFormTouched(touched, fields) {
|
|
323
|
-
return Object.keys(fields).some(function (fieldName) {
|
|
324
|
-
return touched[fieldName];
|
|
325
|
-
});
|
|
326
|
-
},
|
|
327
|
-
isFormVisited: function isFormVisited(visited, fields) {
|
|
328
|
-
return Object.keys(fields).some(function (fieldName) {
|
|
329
|
-
return visited[fieldName];
|
|
330
|
-
});
|
|
331
|
-
},
|
|
332
|
-
formHasNotTouched: function formHasNotTouched() {
|
|
333
|
-
return this.isFormHasNotTouched(this.form.touchedByField, this.fields);
|
|
334
|
-
},
|
|
335
|
-
// 1. The form is not touched, but has errors - allow submit to force validation.
|
|
336
|
-
// 2. The form is valid and modified - if not modified, disable submit.
|
|
337
|
-
allowSubmit: function allowSubmit() {
|
|
338
|
-
return this.formHasNotTouched() && !this.isValid() || this.isValid() && (this.$props.ignoreModified || this.isFormModified(this.form.modifiedByField, this.fields));
|
|
339
|
-
},
|
|
340
|
-
valueGetter: function valueGetter(fieldName) {
|
|
341
|
-
return this.form.values[fieldName];
|
|
342
|
-
},
|
|
343
|
-
valueSetter: function valueSetter(fieldName, value) {
|
|
344
|
-
var _a;
|
|
345
|
-
this.form.values = __assign(__assign({}, this.form.values), (_a = {}, _a[fieldName] = value, _a));
|
|
346
|
-
},
|
|
347
|
-
onArrayAction: function onArrayAction(name) {
|
|
348
|
-
var _a;
|
|
349
|
-
this.addField(name);
|
|
350
|
-
if (!this.form.modifiedByField[name]) {
|
|
351
|
-
this.form.modifiedByField = __assign(__assign({}, this.form.modifiedByField), (_a = {}, _a[name] = true, _a));
|
|
352
|
-
}
|
|
353
|
-
this.onBlur(name, true);
|
|
354
|
-
},
|
|
355
|
-
onInsert: function onInsert(name, options) {
|
|
356
|
-
this.onArrayAction(name);
|
|
357
|
-
var newArray = __spreadArray([], this.valueGetter(name) || [], true);
|
|
358
|
-
newArray.splice(options.index, 0, options.value);
|
|
359
|
-
this.valueSetter(name, newArray);
|
|
360
|
-
},
|
|
361
|
-
onUnshift: function onUnshift(name, options) {
|
|
362
|
-
this.onInsert(name, {
|
|
363
|
-
value: options.value,
|
|
364
|
-
index: 0
|
|
365
|
-
});
|
|
366
|
-
},
|
|
367
|
-
onPush: function onPush(name, options) {
|
|
368
|
-
this.onArrayAction(name);
|
|
369
|
-
var newArray = __spreadArray(__spreadArray([], this.valueGetter(name) || [], true), [options.value], false);
|
|
370
|
-
this.valueSetter(name, newArray);
|
|
371
|
-
},
|
|
372
|
-
onPop: function onPop(name) {
|
|
373
|
-
this.onArrayAction(name);
|
|
374
|
-
var newArray = __spreadArray([], this.valueGetter(name) || [], true);
|
|
375
|
-
var value = newArray.pop();
|
|
376
|
-
this.valueSetter(name, newArray);
|
|
377
|
-
return value;
|
|
378
|
-
},
|
|
379
|
-
onRemove: function onRemove(name, options) {
|
|
380
|
-
this.onArrayAction(name);
|
|
381
|
-
var newArray = __spreadArray([], this.valueGetter(name) || [], true);
|
|
382
|
-
var value = newArray.splice(options.index, 1);
|
|
383
|
-
this.valueSetter(name, newArray);
|
|
384
|
-
return value;
|
|
385
|
-
},
|
|
386
|
-
onReplace: function onReplace(name, options) {
|
|
387
|
-
this.onArrayAction(name);
|
|
388
|
-
var newArray = __spreadArray([], this.valueGetter(name) || [], true);
|
|
389
|
-
newArray.splice(options.index, 1, options.value);
|
|
390
|
-
this.valueSetter(name, newArray);
|
|
391
|
-
},
|
|
392
|
-
onMove: function onMove(name, options) {
|
|
393
|
-
this.onArrayAction(name);
|
|
394
|
-
var newArray = __spreadArray([], this.valueGetter(name) || [], true);
|
|
395
|
-
var value = newArray[options.prevIndex];
|
|
396
|
-
newArray.splice(options.prevIndex, 1);
|
|
397
|
-
newArray.splice(options.nextIndex, 0, value);
|
|
398
|
-
this.valueSetter(name, newArray);
|
|
399
|
-
},
|
|
400
|
-
onDestroy: function onDestroy() {
|
|
401
|
-
this.unmounted = true;
|
|
402
|
-
if (this._accumulatorTimeout) {
|
|
403
|
-
clearTimeout(this._accumulatorTimeout);
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
},
|
|
407
|
-
// @ts-ignore
|
|
408
|
-
setup: !isV3 ? undefined : function () {
|
|
409
|
-
var v3 = !!isV3;
|
|
410
|
-
return {
|
|
411
|
-
v3: v3
|
|
412
|
-
};
|
|
413
|
-
},
|
|
414
|
-
render: function render(createElement) {
|
|
415
|
-
var h = gh || createElement;
|
|
416
|
-
var defaultSlots = getDefaultSlots(this);
|
|
417
|
-
return defaultSlots;
|
|
418
|
-
}
|
|
419
|
-
};
|
|
420
|
-
/**
|
|
421
|
-
* @hidden
|
|
422
|
-
*/
|
|
423
|
-
var Form = FormVue2;
|
|
424
|
-
export { Form, FormVue2 };
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { FieldValidatorType } from './interfaces/FieldValidator';
|
|
2
|
-
/** @hidden */
|
|
3
|
-
export declare type FormContextType = {
|
|
4
|
-
onSubmit: (event: any) => void;
|
|
5
|
-
onChange: (name: string, options: {
|
|
6
|
-
value: any;
|
|
7
|
-
}) => void;
|
|
8
|
-
onFocus: (name: string) => void;
|
|
9
|
-
onBlur: (name: string) => void;
|
|
10
|
-
onUnshift: (name: string, options: {}) => void;
|
|
11
|
-
onPush: (name: string, options: {
|
|
12
|
-
value: any;
|
|
13
|
-
}) => void;
|
|
14
|
-
onInsert: (name: string, options: {
|
|
15
|
-
index: number;
|
|
16
|
-
value: any;
|
|
17
|
-
}) => void;
|
|
18
|
-
onPop: (name: string) => any;
|
|
19
|
-
onRemove: (name: string, options: {
|
|
20
|
-
index: number;
|
|
21
|
-
}) => any;
|
|
22
|
-
onReplace: (name: string, options: {
|
|
23
|
-
index: number;
|
|
24
|
-
value: any;
|
|
25
|
-
}) => void;
|
|
26
|
-
onMove: (name: string, options: {
|
|
27
|
-
prevIndex: number;
|
|
28
|
-
nextIndex: number;
|
|
29
|
-
}) => void;
|
|
30
|
-
registerField: (name: string, validator: FieldValidatorType | FieldValidatorType[] | undefined) => void;
|
|
31
|
-
valueGetter: (name: string) => any;
|
|
32
|
-
errors: {
|
|
33
|
-
[name: string]: string;
|
|
34
|
-
};
|
|
35
|
-
touched: {
|
|
36
|
-
[name: string]: boolean;
|
|
37
|
-
};
|
|
38
|
-
visited: {
|
|
39
|
-
[name: string]: boolean;
|
|
40
|
-
};
|
|
41
|
-
modified: {
|
|
42
|
-
[name: string]: boolean;
|
|
43
|
-
};
|
|
44
|
-
id: string;
|
|
45
|
-
};
|
package/dist/esm/FormContext.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { DefineComponent, RecordPropsDefinition, ComponentOptions, Vue2type } from './additionalTypes';
|
|
2
|
-
declare type DefaultData<V> = object | ((this: V) => {});
|
|
3
|
-
declare type DefaultMethods<V> = {
|
|
4
|
-
[key: string]: (this: V, ...args: any[]) => any;
|
|
5
|
-
};
|
|
6
|
-
import { FormContextType } from './FormContext';
|
|
7
|
-
/**
|
|
8
|
-
* Represents the props of the Kendo U for Vue FormElement component.
|
|
9
|
-
*/
|
|
10
|
-
export interface FormElementProps {
|
|
11
|
-
/**
|
|
12
|
-
* Configures the `size` of the Form.
|
|
13
|
-
*
|
|
14
|
-
* The available options are:
|
|
15
|
-
* - small
|
|
16
|
-
* - medium
|
|
17
|
-
* - large
|
|
18
|
-
* - null—Does not set a size `class`.
|
|
19
|
-
*
|
|
20
|
-
* @default `medium`
|
|
21
|
-
*/
|
|
22
|
-
size?: null | 'small' | 'medium' | 'large' | string;
|
|
23
|
-
/**
|
|
24
|
-
* If set to `true` enable the horizontal layout of the form editors.
|
|
25
|
-
*/
|
|
26
|
-
horizontal?: boolean;
|
|
27
|
-
/**
|
|
28
|
-
* @hidden
|
|
29
|
-
*/
|
|
30
|
-
[customProp: string]: any;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Represent the `ref` of the FormElement component.
|
|
34
|
-
*/
|
|
35
|
-
export interface FormElementHandle {
|
|
36
|
-
props: FormElementProps;
|
|
37
|
-
element: HTMLFormElement | null;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* @hidden
|
|
41
|
-
*/
|
|
42
|
-
interface FormElementState {
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* @hidden
|
|
46
|
-
*/
|
|
47
|
-
interface FormElementData {
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* @hidden
|
|
51
|
-
*/
|
|
52
|
-
export interface FormElementMethods {
|
|
53
|
-
[key: string]: any;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* @hidden
|
|
57
|
-
*/
|
|
58
|
-
export interface FormElementComputed {
|
|
59
|
-
[key: string]: any;
|
|
60
|
-
formElementClassName: object;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* @hidden
|
|
64
|
-
*/
|
|
65
|
-
export interface FormElementAll extends FormElementMethods, FormElementState, FormElementData, FormElementComputed, FormContextType, Vue2type {
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* @hidden
|
|
69
|
-
*/
|
|
70
|
-
declare const FormElementVue2: ComponentOptions<Vue2type, DefaultData<FormElementData>, DefaultMethods<FormElementAll>, FormElementComputed, RecordPropsDefinition<FormElementProps>>;
|
|
71
|
-
/**
|
|
72
|
-
* @hidden
|
|
73
|
-
*/
|
|
74
|
-
declare let FormElement: DefineComponent<FormElementProps, any, FormElementData, FormElementComputed, FormElementMethods, {}, {}, {}, string, FormElementProps, FormElementProps, {}>;
|
|
75
|
-
export { FormElement, FormElementVue2 };
|
package/dist/esm/FormElement.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
// @ts-ignore
|
|
2
|
-
import * as Vue from 'vue';
|
|
3
|
-
var allVue = Vue;
|
|
4
|
-
var gh = allVue.h;
|
|
5
|
-
var isV3 = allVue.version && allVue.version[0] === '3';
|
|
6
|
-
import { packageMetadata } from './package-metadata.js';
|
|
7
|
-
import { getDefaultSlots, kendoThemeMaps, validatePackage } from '@progress/kendo-vue-common';
|
|
8
|
-
/**
|
|
9
|
-
* @hidden
|
|
10
|
-
*/
|
|
11
|
-
var FormElementVue2 = {
|
|
12
|
-
name: 'KendoFormElement',
|
|
13
|
-
props: {
|
|
14
|
-
horizontal: Boolean,
|
|
15
|
-
size: {
|
|
16
|
-
type: String,
|
|
17
|
-
default: 'medium',
|
|
18
|
-
validator: function validator(value) {
|
|
19
|
-
return [null, 'small', 'medium', 'large'].includes(value);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
|
-
created: function created() {
|
|
24
|
-
validatePackage(packageMetadata);
|
|
25
|
-
},
|
|
26
|
-
inject: {
|
|
27
|
-
kendoForm: {
|
|
28
|
-
default: null
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
computed: {
|
|
32
|
-
formElementClassName: function formElementClassName() {
|
|
33
|
-
var _a;
|
|
34
|
-
var size = this.$props.size;
|
|
35
|
-
return _a = {
|
|
36
|
-
'k-form': true
|
|
37
|
-
}, _a["k-form-".concat(kendoThemeMaps.sizeMap[size] || size)] = size, _a['k-form-horizontal'] = this.$props.horizontal === true, _a;
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
methods: {
|
|
41
|
-
handleSubmit: function handleSubmit(e) {
|
|
42
|
-
if (this.kendoForm) {
|
|
43
|
-
this.kendoForm.onSubmit(e);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
// @ts-ignore
|
|
48
|
-
setup: !isV3 ? undefined : function () {
|
|
49
|
-
var v3 = !!isV3;
|
|
50
|
-
return {
|
|
51
|
-
v3: v3
|
|
52
|
-
};
|
|
53
|
-
},
|
|
54
|
-
render: function render(createElement) {
|
|
55
|
-
var h = gh || createElement;
|
|
56
|
-
var defaultSlots = getDefaultSlots(this);
|
|
57
|
-
return h("form", {
|
|
58
|
-
"class": this.formElementClassName,
|
|
59
|
-
onSubmit: this.handleSubmit,
|
|
60
|
-
on: this.v3 ? undefined : {
|
|
61
|
-
"submit": this.handleSubmit
|
|
62
|
-
}
|
|
63
|
-
}, [defaultSlots]);
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
/**
|
|
67
|
-
* @hidden
|
|
68
|
-
*/
|
|
69
|
-
var FormElement = FormElementVue2;
|
|
70
|
-
export { FormElement, FormElementVue2 };
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// @ts-ignore
|
|
2
|
-
import { DefineComponent } from 'vue';
|
|
3
|
-
// @ts-ignore
|
|
4
|
-
import * as Vue from 'vue';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @hidden
|
|
8
|
-
*/
|
|
9
|
-
// @ts-ignore
|
|
10
|
-
type Vue2type = Vue.default;
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @hidden
|
|
14
|
-
*/
|
|
15
|
-
// @ts-ignore
|
|
16
|
-
import { RecordPropsDefinition, ComponentOptions } from 'vue/types/options';
|
|
17
|
-
/**
|
|
18
|
-
* @hidden
|
|
19
|
-
*/
|
|
20
|
-
// @ts-ignore
|
|
21
|
-
export { DefineComponent, RecordPropsDefinition, ComponentOptions, Vue2type };
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { FieldValidatorType } from './FieldValidator';
|
|
2
|
-
/**
|
|
3
|
-
* Represents the props of the FieldArray component that is used inside the Kendo U for Vue Form component.
|
|
4
|
-
*/
|
|
5
|
-
export interface FieldArrayProps {
|
|
6
|
-
/**
|
|
7
|
-
* The name of the field in the Form state.
|
|
8
|
-
*/
|
|
9
|
-
name: string;
|
|
10
|
-
/**
|
|
11
|
-
* Can be set to a Vue component.
|
|
12
|
-
* [`FieldArrayRenderProps`]({% slug api_form_fieldarrayprops %}).
|
|
13
|
-
*/
|
|
14
|
-
component: any;
|
|
15
|
-
/**
|
|
16
|
-
* The validation functions for the FieldArray level.
|
|
17
|
-
* Currently, `validator` supports only synchronous functions.
|
|
18
|
-
*/
|
|
19
|
-
validator?: FieldValidatorType | FieldValidatorType[];
|
|
20
|
-
/**
|
|
21
|
-
* @hidden
|
|
22
|
-
*/
|
|
23
|
-
[customProp: string]: any;
|
|
24
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|