Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/rest/form-constructor/src/fields/ |
Upload File : |
import { Dom, Tag, Event, Type } from 'main.core'; import { BaseEvent } from 'main.core.events'; import { BaseField } from './base-field'; export class Input extends BaseField { renderFieldContainer(): HTMLElement { const wrapper = Tag.render` <div class="ui-ctl-container"/> `; if (this.options.label) { const inputTitle = Tag.render` <div class="ui-ctl-top"> <div class="ui-ctl-title">${this.options.label}</div> </div> `; Dom.append(inputTitle, wrapper); } const input = Tag.render` <div class="ui-ctl ui-ctl-textbox"> <input type="text" id="${this.getId()}" class="ui-ctl-element"> </div> `; const inputElement = input.querySelector('input'); if (this.options.placeholder) { Dom.attr(inputElement, { placeholder: this.options.placeholder, }); } if (this.options.value) { Dom.attr(inputElement, { value: this.options.value, }); } Event.bind(inputElement, 'paste', (event) => { setTimeout(() => { this.#onInput(wrapper, event); }, 0); }); Event.bind(inputElement, 'input', (event) => { this.#onInput(wrapper, event); }); Dom.append(input, wrapper); return wrapper; } #onInput(wrapper: HTMLElement, event: BaseEvent): void { Dom.hide(this.renderErrorsContainer()); if (Dom.hasClass(wrapper, 'ui-ctl-warning')) { Dom.removeClass(wrapper, 'ui-ctl-warning'); } if (Type.isNil(event.target.value) || event.target.value === '') { this.emit('onUnreadySave'); this.readySave = false; } else { this.emit('onReadySave'); this.readySave = true; } this.value = event.target.value; } }