AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 3.135.211.85
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/dist/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/bitrix/www/bitrix/js/fileman/userfield/address_widget/dist/address_widget.bundle.js
this.BX = this.BX || {};
this.BX.Fileman = this.BX.Fileman || {};
(function (exports,main_core_events,location_core,location_widget,main_core) {
	'use strict';

	var _wrapper = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("wrapper");
	class BaseView {
	  constructor(params) {
	    Object.defineProperty(this, _wrapper, {
	      writable: true,
	      value: null
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _wrapper)[_wrapper] = params.wrapper;
	  }
	  getWrapper() {
	    return babelHelpers.classPrivateFieldLooseBase(this, _wrapper)[_wrapper];
	  }
	  layout() {
	    throw new Error('please implement the layout() method');
	  }
	}

	let _ = t => t,
	  _t,
	  _t2,
	  _t3,
	  _t4,
	  _t5,
	  _t6,
	  _t7,
	  _t8,
	  _t9,
	  _t10,
	  _t11;
	var _widget = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("widget");
	var _nodes = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("nodes");
	var _wrapper$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("wrapper");
	var _address = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("address");
	var _fieldName = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("fieldName");
	var _fieldFormName = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("fieldFormName");
	var _showMap = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("showMap");
	var _enableRemoveButton = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("enableRemoveButton");
	var _isCompactMode = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("isCompactMode");
	var _initialAddressId = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("initialAddressId");
	var _areDetailsShown = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("areDetailsShown");
	var _isLoading = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("isLoading");
	var _isDropdownLoading = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("isDropdownLoading");
	var _isDestroyed = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("isDestroyed");
	class EditEntry extends main_core_events.EventEmitter {
	  constructor(props) {
	    super();
	    Object.defineProperty(this, _widget, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _nodes, {
	      writable: true,
	      value: {}
	    });
	    Object.defineProperty(this, _wrapper$1, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _address, {
	      writable: true,
	      value: null
	    });
	    Object.defineProperty(this, _fieldName, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _fieldFormName, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _showMap, {
	      writable: true,
	      value: true
	    });
	    Object.defineProperty(this, _enableRemoveButton, {
	      writable: true,
	      value: false
	    });
	    Object.defineProperty(this, _isCompactMode, {
	      writable: true,
	      value: false
	    });
	    Object.defineProperty(this, _initialAddressId, {
	      writable: true,
	      value: null
	    });
	    Object.defineProperty(this, _areDetailsShown, {
	      writable: true,
	      value: false
	    });
	    Object.defineProperty(this, _isLoading, {
	      writable: true,
	      value: false
	    });
	    Object.defineProperty(this, _isDropdownLoading, {
	      writable: true,
	      value: false
	    });
	    Object.defineProperty(this, _isDestroyed, {
	      writable: true,
	      value: false
	    });
	    this.setEventNamespace('Fileman.EditEntry');
	    babelHelpers.classPrivateFieldLooseBase(this, _wrapper$1)[_wrapper$1] = props.wrapper;
	    babelHelpers.classPrivateFieldLooseBase(this, _fieldName)[_fieldName] = props.fieldName;
	    babelHelpers.classPrivateFieldLooseBase(this, _fieldFormName)[_fieldFormName] = props.fieldFormName;
	    babelHelpers.classPrivateFieldLooseBase(this, _enableRemoveButton)[_enableRemoveButton] = props.enableRemoveButton;
	    babelHelpers.classPrivateFieldLooseBase(this, _initialAddressId)[_initialAddressId] = props.initialAddressId;
	    babelHelpers.classPrivateFieldLooseBase(this, _showMap)[_showMap] = props.showMap;
	    if (props.address) {
	      babelHelpers.classPrivateFieldLooseBase(this, _address)[_address] = props.address;
	    }
	    if (props.isCompactMode) {
	      babelHelpers.classPrivateFieldLooseBase(this, _isCompactMode)[_isCompactMode] = props.isCompactMode;
	    }
	  }
	  layout() {
	    const factory = new location_widget.Factory();
	    babelHelpers.classPrivateFieldLooseBase(this, _widget)[_widget] = factory.createAddressWidget({
	      address: babelHelpers.classPrivateFieldLooseBase(this, _address)[_address],
	      mode: location_core.ControlMode.edit,
	      popupOptions: {
	        offsetLeft: 14
	      },
	      popupBindOptions: {
	        forceBindPosition: true,
	        position: 'right'
	      },
	      mapBehavior: 'auto',
	      useFeatures: {
	        fields: true,
	        map: babelHelpers.classPrivateFieldLooseBase(this, _showMap)[_showMap],
	        autocomplete: true
	      }
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].userInput = main_core.Tag.render(_t || (_t = _`<input type="text" class="ui-ctl-element" />`));
	    babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].fieldsContainer = main_core.Tag.render(_t2 || (_t2 = _`<div class="location-fields-control-block"></div>`));
	    babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].detailsToggle = main_core.Tag.render(_t3 || (_t3 = _`<span class="ui-link ui-link-secondary address-control-mode-switch">${0}</span>`), main_core.Loc.getMessage('ADDRESS_USERFIELD_DETAILS'));
	    main_core.Event.bind(babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].detailsToggle, 'click', this.onDetailsToggleClick.bind(this));
	    let inputValue = this.getInitialAddressFieldValue();
	    babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].fieldValueInput = main_core.Tag.render(_t4 || (_t4 = _`<input type="hidden" name="${0}" value="${0}" />`), babelHelpers.classPrivateFieldLooseBase(this, _fieldFormName)[_fieldFormName], inputValue);
	    babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].inputIcon = main_core.Tag.render(_t5 || (_t5 = _`<button type="button" class="ui-ctl-after ui-ctl-icon-clear"></button>`));
	    main_core.Event.bind(babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].inputIcon, 'click', this.onInputIconClick.bind(this));
	    babelHelpers.classPrivateFieldLooseBase(this, _widget)[_widget].subscribeOnAddressChangedEvent(this.onAddressChanged.bind(this));
	    babelHelpers.classPrivateFieldLooseBase(this, _widget)[_widget].subscribeOnStateChangedEvent(this.onWidgetStateChangedEvent.bind(this));
	    babelHelpers.classPrivateFieldLooseBase(this, _widget)[_widget].subscribeOnFeatureEvent(this.onFeatureEvent.bind(this));
	    babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].entryWrapper = main_core.Tag.render(_t6 || (_t6 = _`
			<div class="edit-entry-input-wrapper">
				<div class="fields address field-item edit ui-ctl ui-ctl-after-icon ${0}">
					${0}
					${0}
					${0}
				</div>
			</div>
		`), this.getUserInputSizeClass(), babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].userInput, babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].fieldsContainer, babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].inputIcon);

	    // a workaround for bizproc conditionals; their conditionals popup seems to use the topmost <input>'s value
	    const hiddenFormattedInputValue = babelHelpers.classPrivateFieldLooseBase(this, _address)[_address] ? this.getRawValueForHiddenFormattedInput(babelHelpers.classPrivateFieldLooseBase(this, _address)[_address]) : '';
	    babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].hiddenFormattedAddressInput = main_core.Tag.render(_t7 || (_t7 = _`<input type="hidden" name="${0}_formatted" value="${0}" />`), babelHelpers.classPrivateFieldLooseBase(this, _fieldName)[_fieldName], hiddenFormattedInputValue);

	    // a flag used to identify values set manually by the user
	    const manualEditFlagNode = main_core.Tag.render(_t8 || (_t8 = _`<input type="hidden" name="${0}_manual_edit" value="Y">`), babelHelpers.classPrivateFieldLooseBase(this, _fieldName)[_fieldName]);
	    babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].layout = main_core.Tag.render(_t9 || (_t9 = _`
			<div class="edit-entry-layout-wrapper ${0}">
				<div class="address-control-mode-switch-wrapper">
					${0}
				</div>
				${0}
				${0}
				${0}
			</div>
		`), this.getLayoutSizeClass(), babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].detailsToggle, babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].hiddenFormattedAddressInput, babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].entryWrapper, manualEditFlagNode);
	    if (babelHelpers.classPrivateFieldLooseBase(this, _enableRemoveButton)[_enableRemoveButton]) {
	      main_core.Dom.append(this.getRemoveInputButton(babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].layout), babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].entryWrapper);
	    }
	    main_core.Dom.append(babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].fieldValueInput, babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].layout);
	    babelHelpers.classPrivateFieldLooseBase(this, _widget)[_widget].render({
	      inputNode: babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].userInput,
	      mapBindElement: babelHelpers.classPrivateFieldLooseBase(this, _wrapper$1)[_wrapper$1],
	      controlWrapper: babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].layout,
	      fieldsContainer: babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].fieldsContainer
	    });
	    return babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].layout;
	  }
	  getUserInputSizeClass() {
	    return babelHelpers.classPrivateFieldLooseBase(this, _isCompactMode)[_isCompactMode] ? 'ui-ctl-wd' : 'ui-ctl-w100';
	  }
	  getLayoutSizeClass() {
	    return babelHelpers.classPrivateFieldLooseBase(this, _isCompactMode)[_isCompactMode] ? 'compact' : '';
	  }
	  getRemoveInputButton(layout) {
	    const removeInputButton = main_core.Tag.render(_t10 || (_t10 = _`
			<span class="uf-address-search-input-remove"></span>
		`));
	    main_core.Event.bind(removeInputButton, 'click', event => {
	      this.emit(EditEntry.onRemoveInputButtonClickedEvent);
	    });
	    return removeInputButton;
	  }
	  destroy() {
	    if (!babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].layout) {
	      return;
	    }
	    if (babelHelpers.classPrivateFieldLooseBase(this, _widget)[_widget]) {
	      babelHelpers.classPrivateFieldLooseBase(this, _widget)[_widget].destroy();
	    }
	    if (babelHelpers.classPrivateFieldLooseBase(this, _address)[_address] && babelHelpers.classPrivateFieldLooseBase(this, _address)[_address].id > 0) {
	      main_core.Dom.clean(babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].layout);
	      const input = main_core.Tag.render(_t11 || (_t11 = _`<input type="hidden" name="${0}" value="${0}_del" />`), babelHelpers.classPrivateFieldLooseBase(this, _fieldFormName)[_fieldFormName], babelHelpers.classPrivateFieldLooseBase(this, _address)[_address].id);
	      main_core.Dom.append(input, babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].layout);
	      this.emitFieldChangedEvent();
	    } else {
	      main_core.Dom.remove(babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].layout);
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _isDestroyed)[_isDestroyed] = true;
	  }
	  isDestroyed() {
	    return babelHelpers.classPrivateFieldLooseBase(this, _isDestroyed)[_isDestroyed];
	  }
	  onAddressChanged(event) {
	    const initialAddressId = parseInt(babelHelpers.classPrivateFieldLooseBase(this, _initialAddressId)[_initialAddressId]);
	    /** @type {AddressEntity} */
	    const address = event.data.address;
	    if (!address) {
	      return;
	    }

	    // when we clear the input, the address' id becomes 0, and because of it a new address is created upon
	    // saving. we can set the address's id to the old id to edit the old address instead
	    if (initialAddressId && parseInt(address.id) !== initialAddressId) {
	      address.id = initialAddressId;
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].fieldValueInput.value = this.getChangedAddressFieldValue(address);
	    babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].hiddenFormattedAddressInput.value = this.getRawValueForHiddenFormattedInput(address);
	    this.emitFieldChangedEvent();
	  }
	  onWidgetStateChangedEvent(event) {
	    const state = event.data.state;
	    babelHelpers.classPrivateFieldLooseBase(this, _isLoading)[_isLoading] = state === location_widget.State.DATA_LOADING;
	    this.refreshInputIcon();
	  }
	  onFeatureEvent(event) {
	    if (event.data.feature instanceof location_widget.AutocompleteFeature) {
	      babelHelpers.classPrivateFieldLooseBase(this, _isDropdownLoading)[_isDropdownLoading] = event.data.eventCode === location_widget.AutocompleteFeature.searchStartedEvent;
	      this.refreshInputIcon();
	    }
	  }
	  isInputLoading() {
	    return babelHelpers.classPrivateFieldLooseBase(this, _isLoading)[_isLoading] || babelHelpers.classPrivateFieldLooseBase(this, _isDropdownLoading)[_isDropdownLoading];
	  }
	  refreshInputIcon() {
	    if (!babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].inputIcon) {
	      return;
	    }
	    if (this.isInputLoading()) {
	      main_core.Dom.removeClass(babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].inputIcon, 'ui-ctl-icon-clear');
	      main_core.Dom.addClass(babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].inputIcon, 'ui-ctl-icon-loader');
	    } else {
	      main_core.Dom.removeClass(babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].inputIcon, 'ui-ctl-icon-loader');
	      main_core.Dom.addClass(babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].inputIcon, 'ui-ctl-icon-clear');
	    }
	  }
	  getInitialAddressFieldValue() {
	    var _babelHelpers$classPr, _babelHelpers$classPr2;
	    let inputValue = '';
	    if (((_babelHelpers$classPr = babelHelpers.classPrivateFieldLooseBase(this, _address)[_address]) == null ? void 0 : _babelHelpers$classPr.id) == 0) {
	      if (babelHelpers.classPrivateFieldLooseBase(this, _address)[_address].location) {
	        // JSON has probably been passed as the component's value; we need to create a new address
	        inputValue = main_core.Text.encode(babelHelpers.classPrivateFieldLooseBase(this, _address)[_address].toJson());
	      } else {
	        // for compatibility with the format used before the switch to location module's addresses
	        inputValue = `${babelHelpers.classPrivateFieldLooseBase(this, _address)[_address].getFieldValue(location_core.AddressType.ADDRESS_LINE_2)}|${babelHelpers.classPrivateFieldLooseBase(this, _address)[_address].latitude};${babelHelpers.classPrivateFieldLooseBase(this, _address)[_address].longitude}`;
	      }
	    } else if (((_babelHelpers$classPr2 = babelHelpers.classPrivateFieldLooseBase(this, _address)[_address]) == null ? void 0 : _babelHelpers$classPr2.id) > 0) {
	      inputValue = `${this.getFormattedAddress(babelHelpers.classPrivateFieldLooseBase(this, _address)[_address])}|${babelHelpers.classPrivateFieldLooseBase(this, _address)[_address].latitude};${babelHelpers.classPrivateFieldLooseBase(this, _address)[_address].longitude}|${babelHelpers.classPrivateFieldLooseBase(this, _address)[_address].id}`;
	    }
	    return inputValue;
	  }
	  getChangedAddressFieldValue(address) {
	    return address.toJson();
	  }
	  getFormattedAddress(address) {
	    var _address$toString;
	    const format = new location_core.Format(JSON.parse(BX.message('LOCATION_WIDGET_DEFAULT_FORMAT')));
	    return (_address$toString = address.toString(format, location_core.AddressStringConverter.STRATEGY_TYPE_TEMPLATE_COMMA)) != null ? _address$toString : '';
	  }
	  getRawValueForHiddenFormattedInput(address) {
	    const formattedAddress = this.getFormattedAddress(address);
	    if ((parseInt(address.latitude) !== 0 || parseInt(address.longitude) !== 0) && address.latitude !== '' && address.longitude !== '') {
	      return `${formattedAddress}|${address.latitude};${address.longitude}`;
	    }
	    return formattedAddress;
	  }
	  onInputIconClick() {
	    if (this.isInputLoading()) {
	      return;
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].userInput.focus();
	    babelHelpers.classPrivateFieldLooseBase(this, _widget)[_widget].resetView();
	    babelHelpers.classPrivateFieldLooseBase(this, _widget)[_widget].address = null;
	    if (babelHelpers.classPrivateFieldLooseBase(this, _address)[_address] && babelHelpers.classPrivateFieldLooseBase(this, _address)[_address].id > 0) {
	      babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].fieldValueInput.value = babelHelpers.classPrivateFieldLooseBase(this, _address)[_address].id + '_del';
	    } else {
	      babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].fieldValueInput.value = '';
	    }
	    this.emitFieldChangedEvent();
	  }
	  onDetailsToggleClick() {
	    if (!babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].fieldsContainer || !babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].detailsToggle) {
	      return;
	    }
	    const fieldsContainer = babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].fieldsContainer;
	    const detailsToggle = babelHelpers.classPrivateFieldLooseBase(this, _nodes)[_nodes].detailsToggle;
	    if (babelHelpers.classPrivateFieldLooseBase(this, _areDetailsShown)[_areDetailsShown] && main_core.Dom.hasClass(fieldsContainer, 'visible')) {
	      main_core.Dom.removeClass(fieldsContainer, 'visible');
	      detailsToggle.innerText = main_core.Loc.getMessage('ADDRESS_USERFIELD_DETAILS');
	    } else {
	      main_core.Dom.addClass(fieldsContainer, 'visible');
	      detailsToggle.innerText = main_core.Loc.getMessage('ADDRESS_USERFIELD_NO_DETAILS');
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _areDetailsShown)[_areDetailsShown] = !babelHelpers.classPrivateFieldLooseBase(this, _areDetailsShown)[_areDetailsShown];
	  }
	  emitFieldChangedEvent() {
	    BX.onCustomEvent(window, 'onUIEntityEditorUserFieldExternalChanged', [babelHelpers.classPrivateFieldLooseBase(this, _fieldName)[_fieldName]]);
	    BX.onCustomEvent(window, 'onCrmEntityEditorUserFieldExternalChanged', [babelHelpers.classPrivateFieldLooseBase(this, _fieldName)[_fieldName]]);
	  }
	}
	EditEntry.onRemoveInputButtonClickedEvent = 'onRemoveInputButtonClicked';

	let _$1 = t => t,
	  _t$1,
	  _t2$1,
	  _t3$1;
	var _fieldName$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("fieldName");
	var _fieldFormName$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("fieldFormName");
	var _addresses = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("addresses");
	var _inputsWrapper = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("inputsWrapper");
	var _isMultiple = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("isMultiple");
	var _isCompactMode$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("isCompactMode");
	var _showMap$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("showMap");
	var _inputs = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("inputs");
	class Edit extends BaseView {
	  constructor(params) {
	    super(params);
	    Object.defineProperty(this, _fieldName$1, {
	      writable: true,
	      value: ''
	    });
	    Object.defineProperty(this, _fieldFormName$1, {
	      writable: true,
	      value: ''
	    });
	    Object.defineProperty(this, _addresses, {
	      writable: true,
	      value: []
	    });
	    Object.defineProperty(this, _inputsWrapper, {
	      writable: true,
	      value: null
	    });
	    Object.defineProperty(this, _isMultiple, {
	      writable: true,
	      value: false
	    });
	    Object.defineProperty(this, _isCompactMode$1, {
	      writable: true,
	      value: false
	    });
	    Object.defineProperty(this, _showMap$1, {
	      writable: true,
	      value: true
	    });
	    Object.defineProperty(this, _inputs, {
	      writable: true,
	      value: []
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _fieldName$1)[_fieldName$1] = params.fieldName;
	    babelHelpers.classPrivateFieldLooseBase(this, _fieldFormName$1)[_fieldFormName$1] = params.fieldFormName;
	    babelHelpers.classPrivateFieldLooseBase(this, _addresses)[_addresses] = params.addresses;
	    babelHelpers.classPrivateFieldLooseBase(this, _isMultiple)[_isMultiple] = params.isMultiple;
	    babelHelpers.classPrivateFieldLooseBase(this, _isCompactMode$1)[_isCompactMode$1] = params.compactMode;
	    babelHelpers.classPrivateFieldLooseBase(this, _showMap$1)[_showMap$1] = params.showMap;
	  }
	  layout() {
	    const layout = main_core.Tag.render(_t$1 || (_t$1 = _$1`<div class="address-edit-wrapper"></div>`));
	    const inputsWrapper = main_core.Tag.render(_t2$1 || (_t2$1 = _$1`<div class="address-inputs-wrapper"></div>`));
	    if (babelHelpers.classPrivateFieldLooseBase(this, _addresses)[_addresses].length > 0) {
	      babelHelpers.classPrivateFieldLooseBase(this, _addresses)[_addresses].forEach(address => {
	        const input = this.createInputForAddress(address);
	        main_core.Dom.append(input.layout(), inputsWrapper);
	      });
	    } else {
	      const input = this.createInputForAddress();
	      main_core.Dom.append(input.layout(), inputsWrapper);
	    }
	    main_core.Dom.append(inputsWrapper, layout);
	    babelHelpers.classPrivateFieldLooseBase(this, _inputsWrapper)[_inputsWrapper] = inputsWrapper;
	    if (babelHelpers.classPrivateFieldLooseBase(this, _isMultiple)[_isMultiple]) {
	      const addInputElement = main_core.Tag.render(_t3$1 || (_t3$1 = _$1`<input type="button" value="${0}" />`), main_core.Loc.getMessage('ADDRESS_USERFIELD_ADD_INPUT'));
	      main_core.Event.bind(addInputElement, 'click', this.addInput.bind(this));
	      main_core.Dom.append(addInputElement, layout);
	    }
	    main_core.Dom.append(layout, this.getWrapper());
	    return this.getWrapper();
	  }
	  addInput() {
	    if (!babelHelpers.classPrivateFieldLooseBase(this, _inputsWrapper)[_inputsWrapper]) {
	      return;
	    }
	    const input = this.createInputForAddress();
	    main_core.Dom.append(input.layout(), babelHelpers.classPrivateFieldLooseBase(this, _inputsWrapper)[_inputsWrapper]);
	  }
	  createInputForAddress(address) {
	    var _parseInt;
	    const entry = new EditEntry({
	      wrapper: this.getWrapper(),
	      address: address,
	      fieldName: babelHelpers.classPrivateFieldLooseBase(this, _fieldName$1)[_fieldName$1],
	      fieldFormName: babelHelpers.classPrivateFieldLooseBase(this, _fieldFormName$1)[_fieldFormName$1],
	      enableRemoveButton: babelHelpers.classPrivateFieldLooseBase(this, _isMultiple)[_isMultiple],
	      initialAddressId: (_parseInt = parseInt(address == null ? void 0 : address.id)) != null ? _parseInt : null,
	      isCompactMode: babelHelpers.classPrivateFieldLooseBase(this, _isCompactMode$1)[_isCompactMode$1],
	      showMap: babelHelpers.classPrivateFieldLooseBase(this, _showMap$1)[_showMap$1]
	    });
	    main_core_events.EventEmitter.subscribe(entry, EditEntry.onRemoveInputButtonClickedEvent, this.removeInput.bind(this, entry));
	    babelHelpers.classPrivateFieldLooseBase(this, _inputs)[_inputs].push(entry);
	    return entry;
	  }
	  removeInput(input) {
	    const activeInputsCount = babelHelpers.classPrivateFieldLooseBase(this, _inputs)[_inputs].filter(input => {
	      return !input.isDestroyed();
	    }).length;
	    if (activeInputsCount > 1) {
	      input.destroy();
	    }
	  }
	}

	let _$2 = t => t,
	  _t$2;
	var _addresses$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("addresses");
	var _widgets = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("widgets");
	class View extends BaseView {
	  constructor(params) {
	    super(params);
	    Object.defineProperty(this, _addresses$1, {
	      writable: true,
	      value: []
	    });
	    Object.defineProperty(this, _widgets, {
	      writable: true,
	      value: []
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _addresses$1)[_addresses$1] = params.addresses;
	  }
	  destroyWidgets() {
	    babelHelpers.classPrivateFieldLooseBase(this, _widgets)[_widgets].forEach(widget => {
	      widget.destroy();
	    });
	  }
	  layout() {
	    const layout = new DocumentFragment();
	    babelHelpers.classPrivateFieldLooseBase(this, _addresses$1)[_addresses$1].forEach(address => {
	      layout.append(this.getLayoutForAddress(address));
	    });
	    main_core.Dom.append(layout, this.getWrapper());
	    return this.getWrapper();
	  }
	  getLayoutForAddress(address) {
	    const factory = new location_widget.Factory();
	    const widget = factory.createAddressWidget({
	      address: address,
	      mode: location_core.ControlMode.view,
	      popupOptions: {
	        offsetLeft: 14
	      },
	      popupBindOptions: {
	        forceBindPosition: true,
	        position: 'right'
	      },
	      mapBehavior: 'auto',
	      useFeatures: {
	        fields: false,
	        map: true,
	        autocomplete: false
	      }
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _widgets)[_widgets].push(widget);
	    const addressLayout = main_core.Tag.render(_t$2 || (_t$2 = _$2`
			<span class="fields address field-item view" data-id="${0}">
				<span class="ui-link ui-link-dark ui-link-dotted">${0}</span>
			</span>
		`), address.id, this.getFormattedAddress(address));
	    widget.render({
	      mapBindElement: addressLayout,
	      controlWrapper: addressLayout
	    });
	    return addressLayout;
	  }
	  getFormattedAddress(address) {
	    var _address$toString;
	    const format = new location_core.Format(JSON.parse(BX.message('LOCATION_WIDGET_DEFAULT_FORMAT')));
	    return (_address$toString = address.toString(format, location_core.AddressStringConverter.STRATEGY_TYPE_TEMPLATE_COMMA)) != null ? _address$toString : '';
	  }
	}

	var _mode = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("mode");
	var _wrapper$2 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("wrapper");
	var _addresses$2 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("addresses");
	var _isMultiple$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("isMultiple");
	var _showMap$2 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("showMap");
	var _fieldConfig = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("fieldConfig");
	var _additionalProperties = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("additionalProperties");
	class AddressField {
	  static init(params) {
	    var _params$showMap;
	    const mode = params.mode;
	    const wrapper = document.getElementById(params.wrapperId);
	    if (!wrapper) {
	      return;
	    }
	    let addresses = [];
	    const addressData = params.addressData;
	    addressData.forEach(addressFields => {
	      if (main_core.Type.isObject(addressFields)) {
	        addresses.push(new location_core.Address(addressFields));
	      }
	    });
	    const showMap = (_params$showMap = params.showMap) != null ? _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();
	    main_core_events.EventEmitter.emit(this, 'BX.Fileman.UserField.AddressField:onInitiated', addressFieldParams);
	  }
	  constructor(params) {
	    Object.defineProperty(this, _mode, {
	      writable: true,
	      value: AddressField.VIEW_MODE
	    });
	    Object.defineProperty(this, _wrapper$2, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _addresses$2, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _isMultiple$1, {
	      writable: true,
	      value: false
	    });
	    Object.defineProperty(this, _showMap$2, {
	      writable: true,
	      value: true
	    });
	    Object.defineProperty(this, _fieldConfig, {
	      writable: true,
	      value: {}
	    });
	    Object.defineProperty(this, _additionalProperties, {
	      writable: true,
	      value: {}
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _mode)[_mode] = params.mode;
	    babelHelpers.classPrivateFieldLooseBase(this, _wrapper$2)[_wrapper$2] = params.wrapper;
	    babelHelpers.classPrivateFieldLooseBase(this, _addresses$2)[_addresses$2] = params.addresses;
	    babelHelpers.classPrivateFieldLooseBase(this, _fieldConfig)[_fieldConfig] = params.fieldConfig;
	    babelHelpers.classPrivateFieldLooseBase(this, _isMultiple$1)[_isMultiple$1] = params.isMultiple;
	    babelHelpers.classPrivateFieldLooseBase(this, _showMap$2)[_showMap$2] = params.showMap;
	    if (params.additionalProperties) {
	      babelHelpers.classPrivateFieldLooseBase(this, _additionalProperties)[_additionalProperties] = params.additionalProperties;
	    }
	  }
	  layout() {
	    /** @type BaseView */
	    let view = null;
	    if (babelHelpers.classPrivateFieldLooseBase(this, _mode)[_mode] === AddressField.VIEW_MODE) {
	      view = new View({
	        wrapper: babelHelpers.classPrivateFieldLooseBase(this, _wrapper$2)[_wrapper$2],
	        addresses: babelHelpers.classPrivateFieldLooseBase(this, _addresses$2)[_addresses$2]
	      });
	    }
	    if (babelHelpers.classPrivateFieldLooseBase(this, _mode)[_mode] === AddressField.EDIT_MODE) {
	      var _babelHelpers$classPr;
	      view = new Edit({
	        wrapper: babelHelpers.classPrivateFieldLooseBase(this, _wrapper$2)[_wrapper$2],
	        fieldName: babelHelpers.classPrivateFieldLooseBase(this, _fieldConfig)[_fieldConfig].fieldName,
	        fieldFormName: babelHelpers.classPrivateFieldLooseBase(this, _fieldConfig)[_fieldConfig].fieldFormName,
	        addresses: babelHelpers.classPrivateFieldLooseBase(this, _addresses$2)[_addresses$2],
	        isMultiple: babelHelpers.classPrivateFieldLooseBase(this, _isMultiple$1)[_isMultiple$1],
	        compactMode: (_babelHelpers$classPr = babelHelpers.classPrivateFieldLooseBase(this, _additionalProperties)[_additionalProperties].compactMode) != null ? _babelHelpers$classPr : false,
	        showMap: babelHelpers.classPrivateFieldLooseBase(this, _showMap$2)[_showMap$2]
	      });
	    }
	    if (view) {
	      view.layout();
	    }
	  }
	}
	AddressField.VIEW_MODE = 'view';
	AddressField.EDIT_MODE = 'edit';
	const namespace = main_core.Reflection.namespace('BX.Fileman.UserField');
	namespace.AddressField = AddressField;

}((this.BX.Fileman.Userfield = this.BX.Fileman.Userfield || {}),BX.Event,BX.Location.Core,BX.Location.Widget,BX));
//# sourceMappingURL=address_widget.bundle.js.map

Anon7 - 2022
AnonSec Team