This commit is contained in:
2026-01-29 03:53:09 +02:00
parent 3e4992b0f7
commit 55f638b7f7
+44 -83
View File
@@ -514,27 +514,36 @@ export class Render {
*/
static setInputAttr(input, field) {
input.name = field.name;
Ut.each(field, (val, key) => {
if (field.title) {
input.title = field.title;
if (key == 'readonly') {
key = 'readOnly';
val = Boolean(val);
}
if (field.id) {
input.id = field.id;
if (field.maxlength) {
key = 'maxLength';
val = Boolean(val);
}
if (field.dataid) {
if (key === 'required' || key === 'disabled') {
val = Boolean(val);
}
if (input.constructor.prototype) {
if (key === 'type') {
return;
}
if (key === 'dataid') {
input.dataset.id = field.dataid;
return;
}
if (field.readonly == '1') {
input.readOnly = true;
}
if (field.required == '1') {
input.required = true;
input[ key ] = val;
}
});
}
/**
@@ -609,35 +618,22 @@ export class Render {
const input = El('input', { type: field.type, className: 'sp-form-control' });
if (field.value) {
input.value = field.value;
}
if (field.type != 'hidden' && field.placeholder) {
if (field.type !== 'hidden' && field.placeholder) {
input.placeholder = field.placeholder;
}
if (field.type != 'hidden' && field.autocomplete) {
if (field.type !== 'hidden' && field.autocomplete) {
input.setAttribute('autocomplete', field.autocomplete || 'off');
}
if (field.disabled == '1') {
input.disabled = true;
}
Render.setInputAttr(input, field);
let wrapper = Render.makeFieldWrapper(field, parent);
wrapper.appendChild(input);
Render.makeFieldWrapper(field, parent).append(input);
if (field.cancelable == '1') {
if (field.cancelable === '1') {
new Cancelable(input);
}
if (field.maxlength) {
input.maxLength = field.maxlength;
}
if (field['max-chars']) {
input.Counter({ limit: field['max-chars'] });
}
@@ -652,9 +648,7 @@ export class Render {
let elem = El('input', { type: 'password', className: 'sp-form-control' });
if (field.placeholder) {
elem.placeholder = field.placeholder;
}
Render.setInputAttr(elem, field);
@@ -747,36 +741,6 @@ export class Render {
});
}
/**
* Make Range Element
*/
static makeInputRangeElement(field, parent) {
let elem = El('input', { type: 'range' });
if (field.min) {
elem.setAttribute('min', field.min);
}
if (field.max) {
elem.setAttribute('max', field.max);
}
if (field.step) {
elem.setAttribute('step', field.step);
}
if (field.value) {
elem.value = field.value;
}
Render.setInputAttr(elem, field);
Render.makeFieldWrapper(field, parent).append(elem);
return elem;
}
/**
* Make Input Color Element
*/
@@ -809,6 +773,18 @@ export class Render {
return input;
}
/**
* Make Default Input Element
*/
static makeDefaultInputElement(field, parent) {
const input = El('input', { type: field.type, className: 'sp-form-control' });
Render.setInputAttr(input, field);
return Render.makeFieldWrapper(field, parent).appendChild(input);
}
/**
* Make Select Element
*/
@@ -816,15 +792,13 @@ export class Render {
let elem = El('select', { className: 'sp-form-control' });
if (field.multiple == '1') {
if (field.multiple === '1') {
elem.multiple = true;
}
if (field.option) {
Ut.each (field.option, (text, val) => {
elem.append(new Option(text, val, val == field.value));
});
Ut.each (field.option, (text, val) => elem.append(new Option(text, val, val == field.value)) );
if (field.value) {
elem.value = field.value;
@@ -833,10 +807,6 @@ export class Render {
Render.setInputAttr(elem, field);
if (field.cancelable == '1') {
new Cancelable(elem);
}
Render.makeFieldWrapper(field, parent).append(elem);
return elem;
@@ -996,17 +966,7 @@ export class Render {
const input = parent.appendChild(El('input', { type: 'hidden' }));
if (field.name) {
input.name = field.name;
}
if (field.id) {
input.id = field.id;
}
if (field.value) {
input.value = field.value;
}
Ut.each(field, (val, key) => (key in HTMLInputElement.prototype) && (input[ key ] = val))
return input;
}
@@ -1042,9 +1002,10 @@ export class Render {
switch (field.type) {
case 'text': return Render.makeInputElement(field, parent);
case 'password': return Render.makeInputPwdElement(field, parent);
case 'password': return Render.makeDefaultInputElement(field, parent);
case 'textarea': return Render.makeTextareaElement(field, parent);
case 'range': return Render.makeInputRangeElement(field, parent);
case 'number': return Render.makeDefaultInputElement(field, parent);
case 'range': return Render.makeDefaultInputElement(field, parent);
case 'color': return Render.makeInputColorElement(field, parent);
case 'datepicker': return Render.makeDatePickerElement(field, parent);
case 'twodatepicker': return Render.makeTwoDatePickerElement(field, parent);