peryl 1.5.26 → 1.5.28
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/demo/hsml-app-form_demo.ts +42 -18
- package/dist/browser-esmodule/hsml-app.js +234 -195
- package/dist/browser-esmodule/hsml-app.js.map +1 -1
- package/dist/browser-esmodule/hsml-dom.js.map +1 -1
- package/dist/browser-esmodule/hsml-html.js.map +1 -1
- package/dist/browser-esmodule/hsml-idom.js.map +1 -1
- package/dist/browser-esmodule/hsml.js.map +1 -1
- package/dist/browser-esmodule/index.js +233 -195
- package/dist/browser-esmodule/index.js.map +1 -1
- package/dist/browser-umd/hsml-app.js +1 -1
- package/dist/browser-umd/hsml-app.js.map +1 -1
- package/dist/browser-umd/hsml-dom.js.map +1 -1
- package/dist/browser-umd/hsml-html.js.map +1 -1
- package/dist/browser-umd/hsml-idom.js.map +1 -1
- package/dist/browser-umd/hsml.js.map +1 -1
- package/dist/browser-umd/index.js +1 -1
- package/dist/browser-umd/index.js.map +1 -1
- package/dist/demo/hsml-app-bysquare_demo.html +1 -1
- package/dist/demo/hsml-app-form-validation_demo.html +1 -1
- package/dist/demo/hsml-app-form_demo.00e63a5d.js +2 -0
- package/dist/demo/hsml-app-form_demo.00e63a5d.js.map +1 -0
- package/dist/demo/hsml-app-form_demo.3eb308db.js +2 -0
- package/dist/demo/hsml-app-form_demo.3eb308db.js.map +1 -0
- package/dist/demo/hsml-app-form_demo.html +1 -1
- package/dist/demo/hsml-app-test_demo.html +1 -1
- package/dist/demo/hsml-app-tictactoe_demo.html +1 -1
- package/dist/demo/hsml-app_demo.html +1 -1
- package/dist/demo/hsml-appel_demo.html +1 -1
- package/dist/demo/hsml-appi_demo.64afacb3.js +9 -0
- package/dist/demo/hsml-appi_demo.64afacb3.js.map +1 -0
- package/dist/demo/hsml-appi_demo.aba6f095.js +9 -0
- package/dist/demo/hsml-appi_demo.aba6f095.js.map +1 -0
- package/dist/demo/hsml-appi_demo.html +1 -1
- package/dist/demo/hsml_demo.5e354955.js +2 -0
- package/dist/demo/hsml_demo.5e354955.js.map +1 -0
- package/dist/demo/hsml_demo.8bd00dc0.js +2 -0
- package/dist/demo/hsml_demo.8bd00dc0.js.map +1 -0
- package/dist/demo/hsml_demo.html +1 -1
- package/dist/hsml-app.d.ts +1 -1
- package/dist/hsml-app.js +259 -207
- package/dist/hsml-app.js.map +1 -1
- package/dist/hsml.d.ts +2 -0
- package/dist/hsml.js.map +1 -1
- package/package.json +1 -1
- package/src/hsml-app.ts +73 -11
- package/src/hsml.ts +3 -0
- package/dist/demo/hsml-app-form_demo.945f4cb8.js +0 -3
- package/dist/demo/hsml-app-form_demo.945f4cb8.js.map +0 -1
- package/dist/demo/hsml-app-form_demo.a519fe16.js +0 -3
- package/dist/demo/hsml-app-form_demo.a519fe16.js.map +0 -1
- package/dist/demo/hsml-appi_demo.64f70501.js +0 -2
- package/dist/demo/hsml-appi_demo.64f70501.js.map +0 -1
- package/dist/demo/hsml-appi_demo.9a157181.js +0 -2
- package/dist/demo/hsml-appi_demo.9a157181.js.map +0 -1
- package/dist/demo/hsml_demo.11dae6c9.js +0 -2
- package/dist/demo/hsml_demo.11dae6c9.js.map +0 -1
- package/dist/demo/hsml_demo.c2b93717.js +0 -2
- package/dist/demo/hsml_demo.c2b93717.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HElement, hjoin } from "../src/hsml";
|
|
2
|
-
import { HApp, HAppActions, HDispatcher, HFormData, HFormInputData, HState, HView
|
|
2
|
+
import { HApp, HAppActions, HDispatcher, HFormData, HFormInputData, HState, HView } from "../src/hsml-app";
|
|
3
3
|
|
|
4
4
|
interface FormData {
|
|
5
5
|
name: string;
|
|
@@ -9,11 +9,14 @@ interface FormData {
|
|
|
9
9
|
married: boolean;
|
|
10
10
|
gender: string;
|
|
11
11
|
sport: string;
|
|
12
|
+
file: string;
|
|
12
13
|
}
|
|
13
14
|
|
|
15
|
+
type Nullable<T> = { [P in keyof T]: T[P] | null };
|
|
16
|
+
|
|
14
17
|
interface State {
|
|
15
18
|
title: string;
|
|
16
|
-
form: HFormData<FormData
|
|
19
|
+
form: HFormData<Nullable<FormData>>;
|
|
17
20
|
genders: {
|
|
18
21
|
label: string;
|
|
19
22
|
value: string;
|
|
@@ -33,7 +36,8 @@ const state: HState<State> = function () {
|
|
|
33
36
|
children: 0,
|
|
34
37
|
married: false,
|
|
35
38
|
gender: "female",
|
|
36
|
-
sport: "gymnastics"
|
|
39
|
+
sport: "gymnastics",
|
|
40
|
+
file: ""
|
|
37
41
|
},
|
|
38
42
|
validation: {},
|
|
39
43
|
// valid: false
|
|
@@ -52,7 +56,8 @@ const state: HState<State> = function () {
|
|
|
52
56
|
enum Actions {
|
|
53
57
|
change = "form-change",
|
|
54
58
|
submit = "form-submit",
|
|
55
|
-
cancel = "form-cancel"
|
|
59
|
+
cancel = "form-cancel",
|
|
60
|
+
rmfile = "form-rmfile"
|
|
56
61
|
}
|
|
57
62
|
|
|
58
63
|
const view: HView<State, Actions> = function (state) {
|
|
@@ -202,13 +207,28 @@ const view: HView<State, Actions> = function (state) {
|
|
|
202
207
|
]],
|
|
203
208
|
["p", [
|
|
204
209
|
["label", ["Data",
|
|
205
|
-
["input.w3-input", {
|
|
210
|
+
["input.w3-input~file", {
|
|
206
211
|
type: "file",
|
|
207
212
|
name: "file",
|
|
208
213
|
accept: "application/json,.json",
|
|
209
|
-
multiple: false
|
|
214
|
+
multiple: false,
|
|
215
|
+
maxsize: 500,
|
|
216
|
+
convert: "text"
|
|
210
217
|
}]
|
|
211
|
-
]]
|
|
218
|
+
]],
|
|
219
|
+
["div.w3-text-red", state.form.validation.file],
|
|
220
|
+
" ",
|
|
221
|
+
state.form.data.file
|
|
222
|
+
? ["a.w3-btn",
|
|
223
|
+
{
|
|
224
|
+
href: "javascript:void(0)",
|
|
225
|
+
accesskey: "c",
|
|
226
|
+
title: "alt-c",
|
|
227
|
+
on: ["click", Actions.rmfile]
|
|
228
|
+
},
|
|
229
|
+
"Remove"
|
|
230
|
+
]
|
|
231
|
+
: null
|
|
212
232
|
]],
|
|
213
233
|
["button.w3-btn.w3-blue", "Submit"],
|
|
214
234
|
" ",
|
|
@@ -240,22 +260,25 @@ const view: HView<State, Actions> = function (state) {
|
|
|
240
260
|
];
|
|
241
261
|
};
|
|
242
262
|
|
|
243
|
-
const dispatcher: HDispatcher<State, Actions> = async function (action, state) {
|
|
263
|
+
const dispatcher: HDispatcher<State, Actions> = async function (this, action, state) {
|
|
244
264
|
switch (action.type) {
|
|
245
|
-
|
|
246
265
|
case HAppActions.init:
|
|
247
266
|
case HAppActions.mount:
|
|
248
267
|
case HAppActions.umount:
|
|
249
|
-
case HAppActions.attribute:
|
|
268
|
+
case HAppActions.attribute: {
|
|
250
269
|
break;
|
|
251
|
-
|
|
252
|
-
case Actions.
|
|
270
|
+
}
|
|
271
|
+
case Actions.rmfile: {
|
|
272
|
+
this.refs["file"].value = null;
|
|
273
|
+
break;
|
|
274
|
+
}
|
|
275
|
+
case Actions.change: {
|
|
253
276
|
console.log("FormActions.change", action.data);
|
|
254
277
|
const input = action.data as HFormInputData;
|
|
255
278
|
state.form.data[input.name!] = input.value;
|
|
256
279
|
state.form.validation[input.name!] = input.validation;
|
|
257
|
-
if (action.data.
|
|
258
|
-
const file = action.data.
|
|
280
|
+
if (action.data.value instanceof File) {
|
|
281
|
+
const file = action.data.value as File;
|
|
259
282
|
// Read the file as text
|
|
260
283
|
console.log("FormActions.change file text:", await file.text());
|
|
261
284
|
// Abuse response to read json data
|
|
@@ -265,11 +288,11 @@ const dispatcher: HDispatcher<State, Actions> = async function (action, state) {
|
|
|
265
288
|
// Read the file as base64
|
|
266
289
|
console.log("FormActions.change file base64:", Buffer.from(await file.arrayBuffer()).toString("base64"));
|
|
267
290
|
// Read large data chunk by chunk
|
|
268
|
-
console.log("FormActions.change file stream:", file.stream());
|
|
291
|
+
console.log("FormActions.change file stream:", await new Response(file.stream()).text());
|
|
269
292
|
}
|
|
270
293
|
break;
|
|
271
|
-
|
|
272
|
-
case Actions.submit:
|
|
294
|
+
}
|
|
295
|
+
case Actions.submit: {
|
|
273
296
|
const form = action.data as HFormData<FormData>;
|
|
274
297
|
const formData = JSON.stringify(form, null, 4);
|
|
275
298
|
console.log("FormActions.submit", formData);
|
|
@@ -278,7 +301,8 @@ const dispatcher: HDispatcher<State, Actions> = async function (action, state) {
|
|
|
278
301
|
// Process data
|
|
279
302
|
// alert(`Form submit: \n${formData}`);
|
|
280
303
|
}
|
|
281
|
-
|
|
304
|
+
break;
|
|
305
|
+
}
|
|
282
306
|
}
|
|
283
307
|
};
|
|
284
308
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import {Buffer as $6oE1Z$Buffer} from "buffer";
|
|
2
|
+
|
|
1
3
|
function $parcel$export(e, n, v, s) {
|
|
2
4
|
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
|
|
3
5
|
}
|
|
@@ -8,10 +10,6 @@ $parcel$export($9adf8bc2f1ba310f$exports, "HDispatchScopes", function () { retur
|
|
|
8
10
|
$parcel$export($9adf8bc2f1ba310f$exports, "happ", function () { return $9adf8bc2f1ba310f$export$eb8950696418f795; }, function (v) { return $9adf8bc2f1ba310f$export$eb8950696418f795 = v; });
|
|
9
11
|
$parcel$export($9adf8bc2f1ba310f$exports, "HApp", function () { return $9adf8bc2f1ba310f$export$8cfef5dc37c46888; }, function (v) { return $9adf8bc2f1ba310f$export$8cfef5dc37c46888 = v; });
|
|
10
12
|
$parcel$export($9adf8bc2f1ba310f$exports, "happel", function () { return $9adf8bc2f1ba310f$export$1cfc54b3834d3c50; }, function (v) { return $9adf8bc2f1ba310f$export$1cfc54b3834d3c50 = v; });
|
|
11
|
-
var $32c8c7b45dace799$exports = {};
|
|
12
|
-
|
|
13
|
-
$parcel$export($32c8c7b45dace799$exports, "hsml2idomPatch", function () { return $32c8c7b45dace799$export$c539705c0f97f623; });
|
|
14
|
-
$parcel$export($32c8c7b45dace799$exports, "hsmls2idomPatch", function () { return $32c8c7b45dace799$export$ccb3a8beff05eea9; });
|
|
15
13
|
var $a15669afd069c056$exports = {};
|
|
16
14
|
|
|
17
15
|
$parcel$export($a15669afd069c056$exports, "NBSP", function () { return $a15669afd069c056$export$4442f9d5f627adc8; });
|
|
@@ -112,6 +110,11 @@ function $a15669afd069c056$export$7427c8b17ccb408c(hsmls, sep) {
|
|
|
112
110
|
}
|
|
113
111
|
|
|
114
112
|
|
|
113
|
+
var $32c8c7b45dace799$exports = {};
|
|
114
|
+
|
|
115
|
+
$parcel$export($32c8c7b45dace799$exports, "hsml2idomPatch", function () { return $32c8c7b45dace799$export$c539705c0f97f623; });
|
|
116
|
+
$parcel$export($32c8c7b45dace799$exports, "hsmls2idomPatch", function () { return $32c8c7b45dace799$export$ccb3a8beff05eea9; });
|
|
117
|
+
|
|
115
118
|
const $490b05c9343fc137$export$3f32c2013f0dcc1e = true;
|
|
116
119
|
|
|
117
120
|
|
|
@@ -952,6 +955,8 @@ function $32c8c7b45dace799$export$ccb3a8beff05eea9(node, hsmlFr, ctx) {
|
|
|
952
955
|
}
|
|
953
956
|
|
|
954
957
|
|
|
958
|
+
|
|
959
|
+
var $9adf8bc2f1ba310f$require$Buffer = $6oE1Z$Buffer;
|
|
955
960
|
var $9adf8bc2f1ba310f$var$__awaiter = undefined && undefined.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
956
961
|
function adopt(value) {
|
|
957
962
|
return value instanceof P ? value : new P(function(resolve) {
|
|
@@ -1067,14 +1072,14 @@ class $9adf8bc2f1ba310f$export$8cfef5dc37c46888 {
|
|
|
1067
1072
|
return hsmls !== null && hsmls !== void 0 ? hsmls : [];
|
|
1068
1073
|
}
|
|
1069
1074
|
};
|
|
1070
|
-
this.actionCb = (actionType, data, event)
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1075
|
+
this.actionCb = (actionType, data, event)=>$9adf8bc2f1ba310f$var$__awaiter(this, void 0, void 0, function*() {
|
|
1076
|
+
data = (data === null || data === void 0 ? void 0 : data.constructor) === Function ? data(event) : data;
|
|
1077
|
+
if (data === undefined && event) {
|
|
1078
|
+
if (event instanceof CustomEvent) data = event.detail;
|
|
1079
|
+
else data = yield $9adf8bc2f1ba310f$var$formData(event);
|
|
1080
|
+
}
|
|
1081
|
+
this._dispatchAction(actionType, data, event);
|
|
1082
|
+
});
|
|
1078
1083
|
this.mount = (e)=>{
|
|
1079
1084
|
const el = typeof e === "string" ? document.getElementById(e) : e;
|
|
1080
1085
|
if (el && el[$9adf8bc2f1ba310f$var$HAPP]) {
|
|
@@ -1237,25 +1242,37 @@ function $9adf8bc2f1ba310f$var$elementDispatchCustomEvent(el, type, data) {
|
|
|
1237
1242
|
}));
|
|
1238
1243
|
}
|
|
1239
1244
|
function $9adf8bc2f1ba310f$var$formData(e) {
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
if (
|
|
1245
|
+
return $9adf8bc2f1ba310f$var$__awaiter(this, void 0, void 0, function*() {
|
|
1246
|
+
const el = e.target;
|
|
1247
|
+
switch(el.nodeName){
|
|
1248
|
+
case "FORM":
|
|
1249
|
+
e.preventDefault();
|
|
1250
|
+
const form = {
|
|
1251
|
+
data: {},
|
|
1252
|
+
validation: {},
|
|
1253
|
+
valid: true
|
|
1254
|
+
};
|
|
1255
|
+
const els = el.elements;
|
|
1256
|
+
for(let i = 0; i < els.length; i++){
|
|
1257
|
+
const inputData = yield $9adf8bc2f1ba310f$var$formInputData(els[i]);
|
|
1258
|
+
if (inputData && inputData.name) {
|
|
1259
|
+
const formData = form.data;
|
|
1260
|
+
const name = inputData.name;
|
|
1261
|
+
const value = inputData.value;
|
|
1262
|
+
if (formData[name] === undefined) formData[name] = value;
|
|
1263
|
+
else if (typeof formData[name] === "string" || formData[name] instanceof String) {
|
|
1264
|
+
if (value instanceof Array) formData[name] = [
|
|
1265
|
+
formData[name],
|
|
1266
|
+
...value
|
|
1267
|
+
];
|
|
1268
|
+
else formData[name] = [
|
|
1269
|
+
formData[name],
|
|
1270
|
+
value
|
|
1271
|
+
];
|
|
1272
|
+
} else if (formData[name] instanceof Array) {
|
|
1273
|
+
if (value instanceof Array) formData[name] = formData[name].concat(value);
|
|
1274
|
+
else formData[name].push(value);
|
|
1275
|
+
} else if (value instanceof Array) formData[name] = [
|
|
1259
1276
|
formData[name],
|
|
1260
1277
|
...value
|
|
1261
1278
|
];
|
|
@@ -1263,185 +1280,207 @@ function $9adf8bc2f1ba310f$var$formData(e) {
|
|
|
1263
1280
|
formData[name],
|
|
1264
1281
|
value
|
|
1265
1282
|
];
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
];
|
|
1273
|
-
else formData[name] = [
|
|
1274
|
-
formData[name],
|
|
1275
|
-
value
|
|
1276
|
-
];
|
|
1277
|
-
if (formData[name] instanceof Array) {
|
|
1278
|
-
formData[name] = formData[name].filter((d)=>d !== null);
|
|
1279
|
-
if (els[i].type === "radio") formData[name] = formData[name].length ? formData[name][0] : null;
|
|
1283
|
+
if (formData[name] instanceof Array) {
|
|
1284
|
+
formData[name] = formData[name].filter((d)=>d !== null);
|
|
1285
|
+
if (els[i].type === "radio") formData[name] = formData[name].length ? formData[name][0] : null;
|
|
1286
|
+
}
|
|
1287
|
+
if (inputData.validation) form.validation[name] = inputData.validation;
|
|
1288
|
+
if (!inputData.valid) form.valid = false;
|
|
1280
1289
|
}
|
|
1281
|
-
if (inputData.validation) form.validation[name] = inputData.validation;
|
|
1282
|
-
if (!inputData.valid) form.valid = false;
|
|
1283
1290
|
}
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
}
|
|
1291
|
+
return form;
|
|
1292
|
+
default:
|
|
1293
|
+
return yield $9adf8bc2f1ba310f$var$formInputData(el);
|
|
1294
|
+
}
|
|
1295
|
+
});
|
|
1289
1296
|
}
|
|
1290
1297
|
function $9adf8bc2f1ba310f$var$formInputData(el) {
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
if (
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1298
|
+
return $9adf8bc2f1ba310f$var$__awaiter(this, void 0, void 0, function*() {
|
|
1299
|
+
const vel = el;
|
|
1300
|
+
if (vel.willValidate) {
|
|
1301
|
+
let valid = true;
|
|
1302
|
+
for(const key in vel.validity){
|
|
1303
|
+
if (key !== "customError" && key !== "valid") {
|
|
1304
|
+
if (vel.validity[key]) {
|
|
1305
|
+
const msgs = vel["validation"];
|
|
1306
|
+
if (msgs) {
|
|
1307
|
+
const msg = msgs[key];
|
|
1308
|
+
if (msg) {
|
|
1309
|
+
vel.setCustomValidity(msg);
|
|
1310
|
+
valid = false;
|
|
1311
|
+
break;
|
|
1312
|
+
} else {
|
|
1313
|
+
vel.setCustomValidity("");
|
|
1314
|
+
break;
|
|
1315
|
+
}
|
|
1307
1316
|
}
|
|
1308
1317
|
}
|
|
1309
1318
|
}
|
|
1310
1319
|
}
|
|
1320
|
+
if (valid) vel.setCustomValidity("");
|
|
1311
1321
|
}
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1322
|
+
let data;
|
|
1323
|
+
switch(el.nodeName){
|
|
1324
|
+
case "INPUT":
|
|
1325
|
+
const iel = el;
|
|
1326
|
+
switch(iel.type){
|
|
1327
|
+
case "text":
|
|
1328
|
+
case "hidden":
|
|
1329
|
+
case "password":
|
|
1330
|
+
case "email":
|
|
1331
|
+
case "search":
|
|
1332
|
+
case "url":
|
|
1333
|
+
case "tel":
|
|
1334
|
+
case "color":
|
|
1335
|
+
case "submit":
|
|
1336
|
+
case "button":
|
|
1337
|
+
data = {
|
|
1338
|
+
name: iel.name,
|
|
1339
|
+
value: iel.value === "" ? null : iel.value,
|
|
1340
|
+
validation: iel.validationMessage,
|
|
1341
|
+
valid: iel.validity.valid
|
|
1342
|
+
};
|
|
1343
|
+
break;
|
|
1344
|
+
case "number":
|
|
1345
|
+
case "range":
|
|
1346
|
+
data = {
|
|
1347
|
+
name: iel.name,
|
|
1348
|
+
value: isNaN(iel.valueAsNumber) ? null : iel.valueAsNumber,
|
|
1349
|
+
valueString: iel.value,
|
|
1350
|
+
validation: iel.validationMessage,
|
|
1351
|
+
valid: iel.validity.valid
|
|
1352
|
+
};
|
|
1353
|
+
break;
|
|
1354
|
+
case "datetime-local":
|
|
1355
|
+
data = {
|
|
1356
|
+
name: iel.name,
|
|
1357
|
+
value: iel.value === "" ? null : iel.value,
|
|
1358
|
+
valueNumber: isNaN(iel.valueAsNumber) ? null : iel.valueAsNumber,
|
|
1359
|
+
valueDate: isNaN(iel.valueAsNumber) ? null : new Date(iel.valueAsNumber),
|
|
1360
|
+
validation: iel.validationMessage,
|
|
1361
|
+
valid: iel.validity.valid
|
|
1362
|
+
};
|
|
1363
|
+
break;
|
|
1364
|
+
case "date":
|
|
1365
|
+
case "month":
|
|
1366
|
+
case "time":
|
|
1367
|
+
case "week":
|
|
1368
|
+
data = {
|
|
1369
|
+
name: iel.name,
|
|
1370
|
+
value: iel.value === "" ? null : iel.value,
|
|
1371
|
+
valueNumber: isNaN(iel.valueAsNumber) ? null : iel.valueAsNumber,
|
|
1372
|
+
valueDate: iel.valueAsDate,
|
|
1373
|
+
validation: iel.validationMessage,
|
|
1374
|
+
valid: iel.validity.valid
|
|
1375
|
+
};
|
|
1376
|
+
break;
|
|
1377
|
+
case "radio":
|
|
1378
|
+
data = {
|
|
1379
|
+
name: iel.name,
|
|
1380
|
+
value: iel.checked ? iel.value : null,
|
|
1381
|
+
valueString: iel.value,
|
|
1382
|
+
validation: iel.validationMessage,
|
|
1383
|
+
valid: iel.validity.valid
|
|
1384
|
+
};
|
|
1385
|
+
break;
|
|
1386
|
+
case "checkbox":
|
|
1387
|
+
if (iel.value === "on") data = {
|
|
1388
|
+
name: iel.name,
|
|
1389
|
+
value: iel.checked,
|
|
1390
|
+
valueString: iel.value,
|
|
1391
|
+
validation: iel.validationMessage,
|
|
1392
|
+
valid: iel.validity.valid
|
|
1393
|
+
};
|
|
1394
|
+
else data = {
|
|
1395
|
+
name: iel.name,
|
|
1396
|
+
value: iel.checked ? String(iel.value) : null,
|
|
1397
|
+
valueString: iel.value,
|
|
1398
|
+
validation: iel.validationMessage,
|
|
1399
|
+
valid: iel.validity.valid
|
|
1400
|
+
};
|
|
1401
|
+
break;
|
|
1402
|
+
case "file":
|
|
1403
|
+
const files = iel.files;
|
|
1404
|
+
let converted = [];
|
|
1405
|
+
switch(iel.getAttribute("convert")){
|
|
1406
|
+
case "text":
|
|
1407
|
+
for (const file of files)converted.push((yield file.text()));
|
|
1408
|
+
break;
|
|
1409
|
+
case "json":
|
|
1410
|
+
for (const file of files)converted.push((yield new Response(file).json()));
|
|
1411
|
+
break;
|
|
1412
|
+
case "base64":
|
|
1413
|
+
for (const file of files)converted.push($9adf8bc2f1ba310f$require$Buffer.from((yield file.arrayBuffer())).toString("base64"));
|
|
1414
|
+
break;
|
|
1415
|
+
default:
|
|
1416
|
+
converted = files;
|
|
1417
|
+
break;
|
|
1418
|
+
}
|
|
1419
|
+
const value = iel.multiple ? converted[0] : converted.length === 1 ? converted[0] : null;
|
|
1420
|
+
data = {
|
|
1421
|
+
name: iel.name,
|
|
1422
|
+
value: value,
|
|
1423
|
+
valueFiles: files,
|
|
1424
|
+
valueString: iel.value,
|
|
1425
|
+
validation: iel.validationMessage,
|
|
1426
|
+
valid: iel.validity.valid
|
|
1427
|
+
};
|
|
1428
|
+
const maxsize = Number(iel.getAttribute("maxsize"));
|
|
1429
|
+
if (maxsize) {
|
|
1430
|
+
for (const file of files)if (file.size > maxsize) {
|
|
1431
|
+
data.validation = `Max ${$9adf8bc2f1ba310f$var$unit(maxsize)}, file ${$9adf8bc2f1ba310f$var$unit(file.size)}`;
|
|
1432
|
+
data.valid = false;
|
|
1433
|
+
}
|
|
1434
|
+
}
|
|
1435
|
+
break;
|
|
1436
|
+
}
|
|
1437
|
+
break;
|
|
1438
|
+
case "SELECT":
|
|
1439
|
+
const sel = el;
|
|
1440
|
+
if (sel.multiple) {
|
|
1441
|
+
const values = Array.from(sel.selectedOptions).map((o)=>o.value);
|
|
1397
1442
|
data = {
|
|
1398
|
-
name:
|
|
1399
|
-
value:
|
|
1400
|
-
valueString:
|
|
1401
|
-
validation:
|
|
1402
|
-
valid:
|
|
1443
|
+
name: sel.name,
|
|
1444
|
+
value: values,
|
|
1445
|
+
valueString: sel.value,
|
|
1446
|
+
validation: sel.validationMessage,
|
|
1447
|
+
valid: sel.validity.valid
|
|
1403
1448
|
};
|
|
1404
|
-
|
|
1405
|
-
}
|
|
1406
|
-
break;
|
|
1407
|
-
case "SELECT":
|
|
1408
|
-
const sel = el;
|
|
1409
|
-
if (sel.multiple) {
|
|
1410
|
-
const values = Array.from(sel.selectedOptions).map((o)=>o.value);
|
|
1411
|
-
data = {
|
|
1449
|
+
} else data = {
|
|
1412
1450
|
name: sel.name,
|
|
1413
|
-
value:
|
|
1414
|
-
valueString: sel.value,
|
|
1451
|
+
value: sel.value === "" ? null : sel.value,
|
|
1415
1452
|
validation: sel.validationMessage,
|
|
1416
1453
|
valid: sel.validity.valid
|
|
1417
1454
|
};
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
return
|
|
1455
|
+
break;
|
|
1456
|
+
case "TEXTAREA":
|
|
1457
|
+
const tel = el;
|
|
1458
|
+
data = {
|
|
1459
|
+
name: tel.name,
|
|
1460
|
+
value: tel.value === "" ? null : tel.value,
|
|
1461
|
+
validation: tel.validationMessage,
|
|
1462
|
+
valid: tel.validity.valid
|
|
1463
|
+
};
|
|
1464
|
+
break;
|
|
1465
|
+
case "BUTTON":
|
|
1466
|
+
const bel = el;
|
|
1467
|
+
data = {
|
|
1468
|
+
name: bel.name,
|
|
1469
|
+
value: bel.value === "" ? null : bel.value,
|
|
1470
|
+
validation: bel.validationMessage,
|
|
1471
|
+
valid: bel.validity.valid
|
|
1472
|
+
};
|
|
1473
|
+
break;
|
|
1474
|
+
}
|
|
1475
|
+
return data;
|
|
1476
|
+
});
|
|
1477
|
+
}
|
|
1478
|
+
function $9adf8bc2f1ba310f$var$unit(num) {
|
|
1479
|
+
const mb = 1e6;
|
|
1480
|
+
const kb = 1e3;
|
|
1481
|
+
if (num >= mb) return `${(num / mb).toFixed(3)}${0, $a15669afd069c056$export$76bbc0cf5037aeea}MB`;
|
|
1482
|
+
else if (num >= kb) return `${(num / kb).toFixed(0)}${0, $a15669afd069c056$export$76bbc0cf5037aeea}kB`;
|
|
1483
|
+
else return `${num.toFixed(0)}${0, $a15669afd069c056$export$76bbc0cf5037aeea}B`;
|
|
1445
1484
|
}
|
|
1446
1485
|
|
|
1447
1486
|
|