AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 18.117.106.130
Web Server : Apache
System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
User : bitrix ( 600)
PHP Version : 8.1.27
Disable Function : NONE
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/bitrix/www/bitrix/js/fileman/userfield/address_widget/src/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/bitrix/www/bitrix/js/fileman/userfield/address_widget/src/address_widget.js
import { Address as AddressEntity } from 'location.core';
import { Reflection, Type } from 'main.core';
import { EventEmitter } from 'main.core.events';
import { Edit } from './view/edit';

import { View } from './view/view';

class AddressField
{
	static VIEW_MODE = 'view';
	static EDIT_MODE = 'edit';

	#mode = AddressField.VIEW_MODE;
	#wrapper: Element;
	#addresses: [];
	#isMultiple: boolean = false;
	#showMap: boolean = true;

	#fieldConfig = {};
	#additionalProperties = {};

	static init(params: Object)
	{
		const mode = params.mode;
		const wrapper = document.getElementById(params.wrapperId);
		if (!wrapper)
		{
			return;
		}

		let addresses = [];
		const addressData = params.addressData;
		addressData.forEach((addressFields) => {
			if (Type.isObject(addressFields))
			{
				addresses.push(new AddressEntity(addressFields));
			}
		});

		const showMap = params.showMap ?? true;
		let addressFieldParams = {
			addresses: addresses,
			wrapper: wrapper,
			mode: mode,
			fieldConfig: {
				fieldName: params.fieldName,
				fieldFormName: params.fieldFormName,
			},
			isMultiple: params.isMultiple,
			showMap,
		};

		if (params.additionalProperties)
		{
			addressFieldParams.additionalProperties = params.additionalProperties;
		}

		const addressField = new AddressField(addressFieldParams);
		addressField.layout();

		EventEmitter.emit(this, 'BX.Fileman.UserField.AddressField:onInitiated', addressFieldParams);
	}

	constructor(params: Object)
	{
		this.#mode = params.mode;
		this.#wrapper = params.wrapper;
		this.#addresses = params.addresses;
		this.#fieldConfig = params.fieldConfig;
		this.#isMultiple = params.isMultiple;
		this.#showMap = params.showMap;
		if (params.additionalProperties)
		{
			this.#additionalProperties = params.additionalProperties;
		}
	}

	layout()
	{
		/** @type BaseView */
		let view = null;

		if (this.#mode === AddressField.VIEW_MODE)
		{
			view = new View({
				wrapper: this.#wrapper,
				addresses: this.#addresses,
			});
		}

		if (this.#mode === AddressField.EDIT_MODE)
		{
			view = new Edit({
				wrapper: this.#wrapper,
				fieldName: this.#fieldConfig.fieldName,
				fieldFormName: this.#fieldConfig.fieldFormName,
				addresses: this.#addresses,
				isMultiple: this.#isMultiple,
				compactMode: this.#additionalProperties.compactMode ?? false,
				showMap: this.#showMap,
			});
		}

		if (view)
		{
			view.layout()
		}
	}
}

const namespace = Reflection.namespace('BX.Fileman.UserField');
namespace.AddressField = AddressField;

Anon7 - 2022
AnonSec Team