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/ui/form-elements/field/src/ |
Upload File : |
import { BaseSettingsElement } from './base-settings-element'; import { BaseField } from 'ui.form-elements.view'; import { BaseEvent, EventEmitter } from 'main.core.events'; import { ErrorCollection } from './error-collection'; export class SettingsField extends BaseSettingsElement { #fieldView: BaseField; constructor(params) { super(params); if (!(params.fieldView instanceof BaseField)) { throw new Error(`Unexpected field type, expected "BaseField"`); } this.#fieldView = params.fieldView; EventEmitter.subscribe('BX.UI.FormElement.Field:onFailedSave', this.#onFailedSave.bind(this)); } getFieldView(): BaseField { return this.#fieldView; } render(): HTMLElement { return this.getFieldView().render(); } renderErrors(): HTMLElement { this.getFieldView().setErrors(this.getErrorCollection().getAll()); return this.getFieldView().renderErrors(); } #extractErrorsFromEvent(event: BaseEvent): Array<String> { let errors = {}; for (const type in event.data.errors) { errors = { ...errors, ...event.data.errors[type] }; } return errors[this.getFieldView().getName()] ?? []; } #onFailedSave(event: BaseEvent) { let fieldErrors = this.#extractErrorsFromEvent(event); this.getErrorCollection().clear(); this.setErrorCollection(new ErrorCollection(fieldErrors)); this.renderErrors(); } }