TInput = function(param) { return { html: `
BBBinfoBBB
`, objName: param.objName, blockName: param.blockName, elementName: param.elementName, elementType: param.elementType, infoId: param.infoId, header: param.header, title: param.title, valueMask: param.valueMask, placeholder: param.placeholder, dopAttribute: param.dopAttribute, isRequired: (('isRequired' in param) ? param.isRequired : false), getHtml: function(){ let infoIdContent = ''; let infoIdDom = document.getElementById(this.infoId); if (infoIdDom) { infoIdContent = infoIdDom.innerHTML; } let labelDop = ((this.header) ? '' : 'style="display:none;"'); let commentDop = ((infoIdContent) ? '' : 'style="display:none;"'); return this.html .replace(new RegExp('BBBobjNameBBB', 'gim'), this.objName) .replace(new RegExp('BBBblockNameBBB', 'gim'), this.blockName) .replace(new RegExp('BBBelementNameBBB', 'gim'), this.elementName) .replace(new RegExp('BBBelementObjBBB', 'gim'), this.objName) .replace(new RegExp('BBBelementTypeBBB', 'gim'), this.elementType) .replace(new RegExp('BBBinfoBBB', 'gim'), infoIdContent) .replace(new RegExp('BBBheaderBBB', 'gim'), this.header) .replace(new RegExp('BBBtitleBBB', 'gim'), this.title) .replace(new RegExp('BBBvalueMaskBBB', 'gim'), this.valueMask) .replace(new RegExp('BBBplaceholderBBB', 'gim'), this.placeholder) .replace(new RegExp('BBBdopAttributeBBB', 'gim'), this.dopAttribute) .replace(new RegExp('BBBlabelDopBBB', 'gim'), labelDop) .replace(new RegExp('BBBcommentDopBBB', 'gim'), commentDop) .replace(new RegExp('BBBdatasetValueBBB', 'gim'), ((param.datasetValue) ? param.datasetValue : '')) .replace(new RegExp('BBBdatasetTxtValueBBB', 'gim'), ((param.datasetTxtValue) ? param.datasetTxtValue : '')) .replace(new RegExp('BBBdisabledBBB', 'gim'), ((param.disabled) ? param.disabled : '')) ; }, input: function(ev, t){ t.dataset.value = encodeURIComponent(JSON.stringify({ id: t.value, name: t.value, })); let e = new CustomEvent(this.blockName + 'SetData', { bubbles: true, cancelable: true, composed: true, detail: { 'event': ev, 'blockName': this.blockName, 'elementName':this.elementName, 'elementType':this.elementType, 'element': t, }, }); document.dispatchEvent(e); }, focus: function(ev, t){ t.classList.remove('input-error'); t.select(); }, blur: function(ev, t){ window.setTimeout(() => { if ((!t.value) && (this.isRequired)) { t.classList.add('input-error'); } }, 500); }, click: function (ev, t){ }, keydown: function (ev, t){ }, }; };