meraproject/lib/js/bws/react/form/class/input.js

437 lines
13 KiB
JavaScript
Raw Normal View History

var INPUT_TYPE, Input;
import '../select.js';
import '../datepicker.js';
import '../contacts.js';
import '../switchios.js';
import '../ImagePicker.js';
import '../PropValues.js';
import '../ShopItemPropValues.js';
import '../CategoryChoose.js';
import '../textarea.js';
import autoBind from 'react-autobind';
window.INPUT_TYPE = INPUT_TYPE = function () {
class INPUT_TYPE {}
;
INPUT_TYPE.HIDDEN = 1;
INPUT_TYPE.TEXT = 2;
INPUT_TYPE.SELECT = 3;
INPUT_TYPE.DATE = 4;
INPUT_TYPE.SELECT_SEARCH = 5;
INPUT_TYPE.SUBMIT = 6;
INPUT_TYPE.SELECT_MULTI = 7;
INPUT_TYPE.DATE_RANGE_TIME = 8;
INPUT_TYPE.DATE_TIME = 9;
INPUT_TYPE.TEXTAREA = 10;
INPUT_TYPE.CHECKBOX = 11;
INPUT_TYPE.YANDEX_COUNTRY_CITY = 12;
INPUT_TYPE.SWITCH_IOS = 13;
INPUT_TYPE.COLOR_PICKER = 14;
INPUT_TYPE.AVATAR_PICKER = 15;
INPUT_TYPE.SELECT_AJAX = 16;
INPUT_TYPE.CANCEL = 17;
INPUT_TYPE.EMAIL = 18;
INPUT_TYPE.SCRIPT = 19;
INPUT_TYPE.HTML = 20;
INPUT_TYPE.IMAGE = 21;
INPUT_TYPE.RADIO = 22;
INPUT_TYPE.VIDEO = 23;
INPUT_TYPE.CONTACTS = 24;
INPUT_TYPE.SUBMIT_AND_CLOSE = 25;
INPUT_TYPE.SHOP_ITEM_VALUES = 26;
INPUT_TYPE.CATEGORY_CHOOSE = 27;
INPUT_TYPE.PASSWORD = 28;
INPUT_TYPE.DSEK_FILES = 30;
INPUT_TYPE.KPTRACKING_FILE = 31;
INPUT_TYPE.TIME = 34; // Поле ввода выбора вложенных категорий
return INPUT_TYPE;
}.call(this);
export default window.Input = Input = function () {
class Input extends React.Component {
constructor(props) {
var ref;
super(props);
this.state = {
data: props.data != null ? props.data : props.data = {},
value: props.value != null ? props.value : props.value = null,
show: true,
name: (ref = props.name) != null ? ref : ''
};
this.input = null;
this.type = null;
autoBind(this);
}
show() {
return this.setState({
show: true
});
}
hide() {
return this.setState({
show: false
});
}
onChange(x) {
var base, name;
({
name
} = this.state);
return typeof (base = this.props).onChange === "function" ? base.onChange(name) : void 0;
}
onKeyUp() {
var base, name;
({
name
} = this.state);
return typeof (base = this.props).onKeyUp === "function" ? base.onKeyUp(name) : void 0;
}
getValue() {
var res;
res = null;
if (this.input != null) {
if (this.input.getValue != null) {
res = this.input.getValue();
} else {
res = this.input.value;
}
}
return res;
}
render() {
var _this = this;
var checked, col, controller, css_class, data, isInputWrap, label, name, options, placeholder, ref, ref1, ref10, ref11, ref12, ref13, ref14, ref15, ref16, ref17, ref18, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, res, show, src, style, type, value;
isInputWrap = true;
({
show
} = this.state);
data = (ref = this.state.data) != null ? ref : {};
options = (ref1 = data[Form.INPUT_OPT]) != null ? ref1 : data;
type = (ref2 = (ref3 = data[Form.TYPE]) != null ? ref3 : options[Input.TYPE]) != null ? ref2 : data[Input.TYPE]; //placeholder = data.placeholder ?= ''
placeholder = (ref4 = options[Input.PLACEHOLDER]) != null ? ref4 : '';
name = (ref5 = (ref6 = options[Input.NAME]) != null ? ref6 : data[Form.KEY_VALUE]) != null ? ref5 : '';
label = (ref7 = options[Input.LABEL]) != null ? ref7 : '';
value = (ref8 = options[Input.VALUE]) != null ? ref8 : this.state.value;
checked = (ref9 = options[Input.CHECKED]) != null ? ref9 : false;
src = (ref10 = options[Input.SRC]) != null ? ref10 : '';
controller = (ref11 = options[Input.CONTROLLER]) != null ? ref11 : '';
css_class = (ref12 = options[Input.CSS_CLASS]) != null ? ref12 : '';
col = 'c ' + ((ref13 = data[Form.COL_CLASSES]) != null ? ref13 : 'c-100');
if (data[Form.COL_CLASSES] != null && data[Form.COL_CLASSES] === '') {
col = '';
}
style = {};
if (!show) {
style = {
display: 'none'
};
}
switch (type) {
case INPUT_TYPE.TEXT:
type = 'text';
break;
case INPUT_TYPE.PASSWORD:
type = 'password';
break;
case INPUT_TYPE.TIME:
type = 'time';
}
if (type === null) {
return null;
}
switch (type) {
case INPUT_TYPE.SCRIPT:
case INPUT_TYPE.HTML:
return null;
case INPUT_TYPE.SHOP_ITEM_VALUES:
label = '';
res = /*#__PURE__*/React.createElement(ShopItemPropValues, {
ref: function (i) {
return _this.input = i;
},
value: value,
data: (ref14 = options[Input.OPTIONS]) != null ? ref14 : {}
});
break;
case INPUT_TYPE.CATEGORY_CHOOSE:
label = '';
res = /*#__PURE__*/React.createElement(CategoryChoose, {
ref: function (i) {
return _this.input = i;
},
value: value,
data: (ref15 = options[Input.OPTIONS]) != null ? ref15 : {}
});
break;
case INPUT_TYPE.IMAGE:
res = /*#__PURE__*/React.createElement(ImagePicker, {
ref: function (i) {
return _this.input = i;
},
value: value,
src: src
});
break;
case INPUT_TYPE.SUBMIT:
res = /*#__PURE__*/React.createElement("button", {
className: "btn " + css_class,
ref: function (i) {
return _this.input = i;
},
onClick: this.props.onSubmit,
type: "button"
}, label);
label = '';
isInputWrap = false;
col = 'cc';
break;
case INPUT_TYPE.SUBMIT_AND_CLOSE:
if (this.props.hideSubmitAndClose === true) {
return null;
}
res = /*#__PURE__*/React.createElement("button", {
className: "btn " + css_class,
ref: function (i) {
return _this.input = i;
},
onClick: this.props.onSubmitAndClose,
type: "button"
}, label);
label = '';
isInputWrap = false;
break;
case INPUT_TYPE.DSEK_FILES:
res = /*#__PURE__*/React.createElement(DsekFiles, {
ref: function (i) {
return _this.input = i;
},
label: placeholder,
value: value
});
break;
case INPUT_TYPE.KPTRACKING_FILE:
res = /*#__PURE__*/React.createElement(KPTrackingFiles, {
ref: function (i) {
return _this.input = i;
},
label: placeholder,
value: value
});
break;
case INPUT_TYPE.SWITCH_IOS:
case INPUT_TYPE.CHECKBOX:
res = /*#__PURE__*/React.createElement(SwitchIOS, {
ref: function (i) {
return _this.input = i;
},
checked: checked,
label: placeholder
});
break;
case INPUT_TYPE.CONTACTS:
res = /*#__PURE__*/React.createElement(Contacts, {
ref: function (i) {
return _this.input = i;
},
value: value
});
break;
case INPUT_TYPE.DATE:
res = /*#__PURE__*/React.createElement(Datepicker, {
ref: function (i) {
return _this.input = i;
},
value: value,
placeholder: placeholder
});
break;
case INPUT_TYPE.DATE_TIME:
res = /*#__PURE__*/React.createElement(Datepicker, {
ref: function (i) {
return _this.input = i;
},
value: value,
timepicker: true,
placeholder: placeholder
});
break;
case INPUT_TYPE.SELECT:
res = /*#__PURE__*/React.createElement(Select, {
ref: function (i) {
return _this.input = i;
},
id: value,
data: (ref16 = options[Input.OPTIONS]) != null ? ref16 : {},
placeholder: placeholder
});
break;
case INPUT_TYPE.SELECT_SEARCH:
res = /*#__PURE__*/React.createElement(Select, {
ref: function (i) {
return _this.input = i;
},
id: value,
data: (ref17 = options[Input.OPTIONS]) != null ? ref17 : {},
placeholder: placeholder,
search: true
});
break;
case INPUT_TYPE.SELECT_AJAX:
res = /*#__PURE__*/React.createElement(Select, {
ref: function (i) {
return _this.input = i;
},
id: value,
data: (ref18 = options[Input.OPTIONS]) != null ? ref18 : {},
ajax: true,
controller: controller,
placeholder: placeholder
});
break;
case INPUT_TYPE.TEXTAREA:
res = /*#__PURE__*/React.createElement(Textarea, {
ref: function (i) {
return _this.input = i;
},
value: value,
label: label,
placeholder: placeholder,
className: "i c-100"
});
label = '';
break;
case INPUT_TYPE.HIDDEN:
label = '';
isInputWrap = false;
res = /*#__PURE__*/React.createElement("input", {
ref: function (i) {
return _this.input = i;
},
type: "hidden",
name: name,
defaultValue: value
});
break;
default:
res = /*#__PURE__*/React.createElement("input", {
ref: function (i) {
return _this.input = i;
},
type: type,
name: name,
defaultValue: value,
placeholder: placeholder,
className: "i c-100",
autoComplete: "off",
onKeyUp: this.onKeyUp,
onChange: this.onChange
});
}
if (label !== '') {
label = /*#__PURE__*/React.createElement("div", {
className: "label",
dangerouslySetInnerHTML: {
__html: label
}
});
} else {
label = null;
}
if (isInputWrap) {
res = /*#__PURE__*/React.createElement("div", {
className: "input_wrap"
}, label, res);
}
if (col !== '') {
return /*#__PURE__*/React.createElement("div", {
style: style,
className: col
}, res);
} else {
return res;
}
}
}
;
Input.NAME = 1; // Аттрибут Name поля ввода
Input.VALUE = 2; // Значение поля ввода
Input.LABEL = 3; // Значение Label для поля ввода
Input.PLACEHOLDER = 4; // Значение placeholder для поля ввода
Input.OPTIONS = 5; // Заданные значения, для таких типов как например SELECT
Input.CONTROLLER = 6; // Название контроллера к которму обращать полю ввода. Изначальано сделано для SELECT_SEARCH
Input.CSS_CLASS = 7; // свой класс для поля ввода
Input.DATA = 8; // дополнительные данные, который нужно передать полю вводу - выведится в аттрибут data-data в Json формате
Input.LINK = 9; // адрес ссылки, изначальано для поля ввода cancel
Input.WITHNULLROW = 10; // Параметр для Select , который , если Истинна - Вставляет в Slect строку "Выбрать" с 0 значение
Input.ONLY_ADD_VALUE = 11; // Парамерт для SELECT, который показывает только ROW сущности, ID которой передали в форму
Input.THEME = 12; // Тема для отображения
Input.VALIDATION = 13; // Валидация данных в поле ввода
Input.RULES = 14; // Правила для поля ввода. Например отобразить/скрыть
Input.CHECKED = 15; // Для поля ввода checkbox
Input.DISABLED = 16; // Поле не доступно для редактирования
Input.SRC = 17; // Поле не доступно для редактирования
Input.TYPE = 18;
return Input;
}.call(this);
//# sourceMappingURL=input.js.map